fix(portable): Gemini keys, Telegram pairing UI, and config durability
Improve first-run and channel setup for non-technical users: detect newer Gemini key formats, pin Node 22.22.3, add Control Panel Telegram approve flow, and keep channels/models when config is rewritten. Persist uclaw wizard state via uclaw-meta.json so restarts skip language/persona prompts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
385
portable/skills/manifest.json
Normal file
385
portable/skills/manifest.json
Normal file
@@ -0,0 +1,385 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"comment": "Single source of truth for skill distribution and for what each persona gets. Installers read this file and copy or fetch only the listed skills — they contain no skill content of their own. Personas drive the first-run wizard: tier picks how much interface to show, channel is the chat app that persona is most likely to want. See skills/README.md.",
|
||||
"personas": [
|
||||
{
|
||||
"id": "developer",
|
||||
"tier": "expert",
|
||||
"emoji": "💻",
|
||||
"channel": null
|
||||
},
|
||||
{
|
||||
"id": "admin",
|
||||
"tier": "simple",
|
||||
"emoji": "📝",
|
||||
"channel": null
|
||||
},
|
||||
{
|
||||
"id": "sales",
|
||||
"tier": "simple",
|
||||
"emoji": "💬",
|
||||
"channel": "whatsapp"
|
||||
},
|
||||
{
|
||||
"id": "marketing",
|
||||
"tier": "standard",
|
||||
"emoji": "🎨",
|
||||
"channel": null
|
||||
},
|
||||
{
|
||||
"id": "finance",
|
||||
"tier": "standard",
|
||||
"emoji": "📊",
|
||||
"channel": null
|
||||
},
|
||||
{
|
||||
"id": "boss",
|
||||
"tier": "simple",
|
||||
"emoji": "👔",
|
||||
"channel": null
|
||||
},
|
||||
{
|
||||
"id": "general",
|
||||
"tier": "simple",
|
||||
"emoji": "🤷",
|
||||
"channel": null
|
||||
}
|
||||
],
|
||||
"skills": [
|
||||
{
|
||||
"id": "uclaw-help",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"uclaw"
|
||||
],
|
||||
"personas": [
|
||||
"developer",
|
||||
"admin",
|
||||
"sales",
|
||||
"marketing",
|
||||
"finance",
|
||||
"boss",
|
||||
"general"
|
||||
],
|
||||
"emoji": "🦞"
|
||||
},
|
||||
{
|
||||
"id": "excel-helper",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"office",
|
||||
"data"
|
||||
],
|
||||
"personas": [
|
||||
"admin",
|
||||
"finance",
|
||||
"boss",
|
||||
"general"
|
||||
],
|
||||
"emoji": "📊"
|
||||
},
|
||||
{
|
||||
"id": "word-writer",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"office",
|
||||
"writing"
|
||||
],
|
||||
"personas": [
|
||||
"admin",
|
||||
"sales",
|
||||
"boss",
|
||||
"general"
|
||||
],
|
||||
"emoji": "📝"
|
||||
},
|
||||
{
|
||||
"id": "ppt-designer",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"office",
|
||||
"writing"
|
||||
],
|
||||
"personas": [
|
||||
"admin",
|
||||
"sales",
|
||||
"marketing",
|
||||
"boss"
|
||||
],
|
||||
"emoji": "📽️"
|
||||
},
|
||||
{
|
||||
"id": "pdf-toolkit",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"files"
|
||||
],
|
||||
"personas": [
|
||||
"admin",
|
||||
"finance",
|
||||
"general"
|
||||
],
|
||||
"emoji": "📄"
|
||||
},
|
||||
{
|
||||
"id": "image-compress",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"files"
|
||||
],
|
||||
"personas": [
|
||||
"marketing",
|
||||
"general"
|
||||
],
|
||||
"emoji": "🖼️"
|
||||
},
|
||||
{
|
||||
"id": "qrcode-maker",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"files"
|
||||
],
|
||||
"personas": [
|
||||
"marketing",
|
||||
"sales",
|
||||
"general"
|
||||
],
|
||||
"emoji": "🔳"
|
||||
},
|
||||
{
|
||||
"id": "web-to-markdown",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"research"
|
||||
],
|
||||
"personas": [
|
||||
"developer",
|
||||
"marketing",
|
||||
"general"
|
||||
],
|
||||
"emoji": "🔗"
|
||||
},
|
||||
{
|
||||
"id": "linkedin-post",
|
||||
"status": "shipping",
|
||||
"replaces": "xiaohongshu-writer",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"social"
|
||||
],
|
||||
"personas": [
|
||||
"marketing",
|
||||
"sales",
|
||||
"boss"
|
||||
],
|
||||
"emoji": "💼"
|
||||
},
|
||||
{
|
||||
"id": "x-poster",
|
||||
"status": "shipping",
|
||||
"replaces": "weibo-poster",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"social"
|
||||
],
|
||||
"personas": [
|
||||
"marketing"
|
||||
],
|
||||
"emoji": "🐦"
|
||||
},
|
||||
{
|
||||
"id": "tiktok-script",
|
||||
"status": "shipping",
|
||||
"replaces": "douyin-script",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"social",
|
||||
"video"
|
||||
],
|
||||
"personas": [
|
||||
"marketing"
|
||||
],
|
||||
"emoji": "🎬"
|
||||
},
|
||||
{
|
||||
"id": "youtube-script",
|
||||
"status": "shipping",
|
||||
"replaces": "bilibili-helper",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"social",
|
||||
"video"
|
||||
],
|
||||
"personas": [
|
||||
"marketing"
|
||||
],
|
||||
"emoji": "📺"
|
||||
},
|
||||
{
|
||||
"id": "medium-writer",
|
||||
"status": "shipping",
|
||||
"replaces": "zhihu-writer",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"writing"
|
||||
],
|
||||
"personas": [
|
||||
"marketing",
|
||||
"developer"
|
||||
],
|
||||
"emoji": "✍️"
|
||||
},
|
||||
{
|
||||
"id": "email-campaign",
|
||||
"status": "shipping",
|
||||
"replaces": "wechat-article",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"writing",
|
||||
"social"
|
||||
],
|
||||
"personas": [
|
||||
"marketing",
|
||||
"sales"
|
||||
],
|
||||
"emoji": "✉️"
|
||||
},
|
||||
{
|
||||
"id": "web-search",
|
||||
"status": "shipping",
|
||||
"replaces": "china-search",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"research"
|
||||
],
|
||||
"personas": [
|
||||
"developer",
|
||||
"marketing",
|
||||
"general",
|
||||
"finance"
|
||||
],
|
||||
"emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "sg-weather",
|
||||
"status": "shipping",
|
||||
"replaces": "china-weather",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"local"
|
||||
],
|
||||
"personas": [
|
||||
"general",
|
||||
"sales"
|
||||
],
|
||||
"emoji": "🌦️"
|
||||
},
|
||||
{
|
||||
"id": "sea-translate",
|
||||
"status": "shipping",
|
||||
"replaces": "china-translate",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"language"
|
||||
],
|
||||
"personas": [
|
||||
"sales",
|
||||
"admin",
|
||||
"marketing",
|
||||
"general",
|
||||
"boss"
|
||||
],
|
||||
"emoji": "🌏"
|
||||
},
|
||||
{
|
||||
"id": "claude-helper",
|
||||
"status": "shipping",
|
||||
"replaces": "deepseek-helper",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"ai"
|
||||
],
|
||||
"personas": [
|
||||
"developer",
|
||||
"finance"
|
||||
],
|
||||
"emoji": "🤖"
|
||||
},
|
||||
{
|
||||
"id": "sg-transport",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"local"
|
||||
],
|
||||
"personas": [
|
||||
"general",
|
||||
"sales"
|
||||
],
|
||||
"emoji": "🚇"
|
||||
},
|
||||
{
|
||||
"id": "meeting-notes",
|
||||
"status": "shipping",
|
||||
"locales": [
|
||||
"en"
|
||||
],
|
||||
"categories": [
|
||||
"writing"
|
||||
],
|
||||
"personas": [
|
||||
"sales",
|
||||
"admin",
|
||||
"boss",
|
||||
"finance"
|
||||
],
|
||||
"emoji": "🗒️"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user