[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JDQ826P99FH9P587PH3TYA":3,"skill-same:01M6JDQ826P99FH9P587PH3TYA":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6JDQ826P99FH9P587PH3TYA","kanban-worker",null,"Pitfalls, examples, and edge cases for Hermes Kanban workers. The lifecycle itself is auto-injected into every worker's system prompt as KANBAN_GUIDANCE (from agent\u002Fprompt_builder.py); this skill is what you load when you want deeper detail on specific scenarios.","S3YED\u002Fappie-kit","S3YED","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F62743867?v=4","01M6JBKBRRVP6KMS0VWZ27T3R6","01M6JBKBX0KG30284PW1DBYJT1",14,"MIT","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Ffleet\u002Fkanban-worker-auto\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"kanban worker","worker","kanban","for","workflow","load","pitfalls","you","system prompt","as","detail","deeper","builder","auto","orchestrator","multi-agent","system","lifecycle","edge","collaboration","2026-11-10 10:12:30",false,"---\nname: kanban-worker\ndescription: Pitfalls, examples, and edge cases for Hermes Kanban workers. The lifecycle itself is auto-injected into every worker's system prompt as KANBAN_GUIDANCE (from agent\u002Fprompt_builder.py); this skill is what you load when you want deeper detail on specific scenarios.\nversion: 2.0.0\nmetadata:\n  hermes:\n    tags: [kanban, multi-agent, collaboration, workflow, pitfalls]\n    related_skills: [kanban-orchestrator]\n---\n\n# Kanban Worker — Pitfalls and Examples\n\n> You're seeing this skill because the Hermes Kanban dispatcher spawned you as a worker with `--skills kanban-worker` — it's loaded automatically for every dispatched worker. The **lifecycle** (6 steps: orient → work → heartbeat → block\u002Fcomplete) also lives in the `KANBAN_GUIDANCE` block that's auto-injected into your system prompt. This skill is the deeper detail: good handoff shapes, retry diagnostics, edge cases.\n\n## Workspace handling\n\nYour workspace kind determines how you should behave inside `$HERMES_KANBAN_WORKSPACE`:\n\n| Kind | What it is | How to work |\n|---|---|---|\n| `scratch` | Fresh tmp dir, yours alone | Read\u002Fwrite freely; it gets GC'd when the task is archived. |\n| `dir:\u003Cpath>` | Shared persistent directory | Other runs will read what you write. Treat it like long-lived state. Path is guaranteed absolute (the kernel rejects relative paths). |\n| `worktree` | Git worktree at the resolved path | If `.git` doesn't exist, run `git worktree add \u003Cpath> \u003Cbranch>` from the main repo first, then cd and work normally. Commit work here. |\n\n## Tenant isolation\n\nIf `$HERMES_TENANT` is set, the task belongs to a tenant namespace. When reading or writing persistent memory, prefix memory entries with the tenant so context doesn't leak across tenants:\n\n- Good: `business-a: Acme is our biggest customer`\n- Bad (leaks): `Acme is our biggest customer`\n\n## Good summary + metadata shapes\n\nThe `kanban_complete(summary=..., metadata=...)` handoff is how downstream workers read what you did. Patterns that work:\n\n**Coding task:**\n```python\nkanban_complete(\n    summary=\"shipped rate limiter — token bucket, keys on user_id with IP fallback, 14 tests pass\",\n    metadata={\n        \"changed_files\": [\"rate_limiter.py\", \"tests\u002Ftest_rate_limiter.py\"],\n        \"tests_run\": 14,\n        \"tests_passed\": 14,\n        \"decisions\": [\"user_id primary, IP fallback for unauthenticated requests\"],\n    },\n)\n```\n\n**Research task:**\n```python\nkanban_complete(\n    summary=\"3 competing libraries reviewed; vLLM wins on throughput, SGLang on latency, Tensorrt-LLM on memory efficiency\",\n    metadata={\n        \"sources_read\": 12,\n        \"recommendation\": \"vLLM\",\n        \"benchmarks\": {\"vllm\": 1.0, \"sglang\": 0.87, \"trtllm\": 0.72},\n    },\n)\n```\n\n**Review task:**\n```python\nkanban_complete(\n    summary=\"reviewed PR #123; 2 blocking issues found (SQL injection in \u002Fsearch, missing CSRF on \u002Fsettings)\",\n    metadata={\n        \"pr_number\": 123,\n        \"findings\": [\n            {\"severity\": \"critical\", \"file\": \"api\u002Fsearch.py\", \"line\": 42, \"issue\": \"raw SQL concat\"},\n            {\"severity\": \"high\", \"file\": \"api\u002Fsettings.py\", \"issue\": \"missing CSRF middleware\"},\n        ],\n        \"approved\": False,\n    },\n)\n```\n\nShape `metadata` so downstream parsers (reviewers, aggregators, schedulers) can use it without re-reading your prose.\n\n## Claiming cards you actually created\n\nIf your run produced new kanban tasks (via `kanban_create`), pass the ids in `created_cards` on `kanban_complete`. The kernel verifies each id exists and was created by your profile; any phantom id blocks the completion with an error listing what went wrong, and the rejected attempt is permanently recorded on the task's event log. **Only list ids you captured from a successful `kanban_create` return value — never invent ids from prose, never paste ids from earlier runs, never claim cards another worker created.**\n\n```python\n# GOOD — capture return values, then claim them.\nc1 = kanban_create(title=\"remediate SQL injection\", assignee=\"security-worker\")\nc2 = kanban_create(title=\"fix CSRF middleware\", assignee=\"web-worker\")\n\nkanban_complete(\n    summary=\"Review done; spawned remediations for both findings.\",\n    metadata={\"pr_number\": 123, \"approved\": False},\n    created_cards=[c1[\"task_id\"], c2[\"task_id\"]],\n)\n```\n\n```python\n# BAD — claiming ids you don't have captured return values for.\nkanban_complete(\n    summary=\"Created remediation cards t_a1b2c3d4, t_deadbeef\",  # hallucinated\n    created_cards=[\"t_a1b2c3d4\", \"t_deadbeef\"],                   # → gate rejects\n)\n```\n\nIf a `kanban_create` call fails (exception, tool_error), the card was NOT created — do not include a phantom id for it. Retry the create, or omit the id and mention the failure in your summary. The prose-scan pass also catches `t_\u003Chex>` references in your free-form summary that don't resolve; these don't block the completion but show up as advisory warnings on the task in the dashboard.\n\n## Block reasons that get answered fast\n\nBad: `\"stuck\"` — the human has no context.\n\nGood: one sentence naming the specific decision you need. Leave longer context as a comment instead.\n\n```python\nkanban_comment(\n    task_id=os.environ[\"HERMES_KANBAN_TASK\"],\n    body=\"Full context: I have user IPs from Cloudflare headers but some users are behind NATs with thousands of peers. Keying on IP alone causes false positives.\",\n)\nkanban_block(reason=\"Rate limit key choice: IP (simple, NAT-unsafe) or user_id (requires auth, skips anonymous endpoints)?\")\n```\n\nThe block message is what appears in the dashboard \u002F gateway notifier. The comment is the deeper context a human reads when they open the task.\n\n## Heartbeats worth sending\n\nGood heartbeats name progress: `\"epoch 12\u002F50, loss 0.31\"`, `\"scanned 1.2M\u002F2.4M rows\"`, `\"uploaded 47\u002F120 videos\"`.\n\nBad heartbeats: `\"still working\"`, empty notes, sub-second intervals. Every few minutes max; skip entirely for tasks under ~2 minutes.\n\n## Retry scenarios\n\nIf you open the task and `kanban_show` returns `runs: [...]` with one or more closed runs, you're a retry. The prior runs' `outcome` \u002F `summary` \u002F `error` tell you what didn't work. Don't repeat that path. Typical retry diagnostics:\n\n- `outcome: \"timed_out\"` — the previous attempt hit `max_runtime_seconds`. You may need to chunk the work or shorten it.\n- `outcome: \"crashed\"` — OOM or segfault. Reduce memory footprint.\n- `outcome: \"spawn_failed\"` + `error: \"...\"` — usually a profile config issue (missing credential, bad PATH). Ask the human via `kanban_block` instead of retrying blindly.\n- `outcome: \"reclaimed\"` + `summary: \"task archived...\"` — operator archived the task out from under the previous run; you probably shouldn't be running at all, check status carefully.\n- `outcome: \"blocked\"` — a previous attempt blocked; the unblock comment should be in the thread by now.\n\n## Do NOT\n\n- Call `delegate_task` as a substitute for `kanban_create`. `delegate_task` is for short reasoning subtasks inside YOUR run; `kanban_create` is for cross-agent handoffs that outlive one API loop.\n- Modify files outside `$HERMES_KANBAN_WORKSPACE` unless the task body says to.\n- Create follow-up tasks assigned to yourself — assign to the right specialist.\n- Complete a task you didn't actually finish. Block it instead.\n\n## Pitfalls\n\n**Task state can change between dispatch and your startup.** Between when the dispatcher claimed and when your process actually booted, the task may have been blocked, reassigned, or archived. Always `kanban_show` first. If it reports `blocked` or `archived`, stop — you shouldn't be running.\n\n**Workspace may have stale artifacts.** Especially `dir:` and `worktree` workspaces can have files from previous runs. Read the comment thread — it usually explains why you're running again and what state the workspace is in.\n\n**Don't rely on the CLI when the guidance is available.** The `kanban_*` tools work across all terminal backends (Docker, Modal, SSH). `hermes kanban \u003Cverb>` from your terminal tool will fail in containerized backends because the CLI isn't installed there. When in doubt, use the tool.\n\n## CLI fallback (for scripting)\n\nEvery tool has a CLI equivalent for human operators and scripts:\n- `kanban_show` ↔ `hermes kanban show \u003Cid> --json`\n- `kanban_complete` ↔ `hermes kanban complete \u003Cid> --summary \"...\" --metadata '{...}'`\n- `kanban_block` ↔ `hermes kanban block \u003Cid> \"reason\"`\n- `kanban_create` ↔ `hermes kanban create \"title\" --assignee \u003Cprofile> [--parent \u003Cid>]`\n- etc.\n\nUse the tools from inside an agent; the CLI exists for the human at the terminal.\n","# Kanban Worker — Pitfalls and Examples\n\n> You're seeing this skill because the Hermes Kanban dispatcher spawned you as a worker with `--skills kanban-worker` — it's loaded automatically for every dispatched worker. The **lifecycle** (6 steps: orient → work → heartbeat → block\u002Fcomplete) also lives in the `KANBAN_GUIDANCE` block that's auto-injected into your system prompt. This skill is the deeper detail: good handoff shapes, retry diagnostics, edge cases.\n\n## Workspace handling\n\nYour workspace kind determines how you should behave inside `$HERMES_KANBAN_WORKSPACE`:\n\n| Kind | What it is | How to work |\n|---|---|---|\n| `scratch` | Fresh tmp dir, yours alone | Read\u002Fwrite freely; it gets GC'd when the task is archived. |\n| `dir:\u003Cpath>` | Shared persistent directory | Other runs will read what you write. Treat it like long-lived state. Path is guaranteed absolute (the kernel rejects relative paths). |\n| `worktree` | Git worktree at the resolved path | If `.git` doesn't exist, run `git worktree add \u003Cpath> \u003Cbranch>` from the main repo first, then cd and work normally. Commit work here. |\n\n## Tenant isolation\n\nIf `$HERMES_TENANT` is set, the task belongs to a tenant namespace. When reading or writing persistent memory, prefix memory entries with the tenant so context doesn't leak across tenants:\n\n- Good: `business-a: Acme is our biggest customer`\n- Bad (leaks): `Acme is our biggest customer`\n\n## Good summary + metadata shapes\n\nThe `kanban_complete(summary=..., metadata=...)` handoff is how downstream workers read what you did. Patterns that work:\n\n**Coding task:**\n```python\nkanban_complete(\n    summary=\"shipped rate limiter — token bucket, keys on user_id with IP fallback, 14 tests pass\",\n    metadata={\n        \"changed_files\": [\"rate_limiter.py\", \"tests\u002Ftest_rate_limiter.py\"],\n        \"tests_run\": 14,\n        \"tests_passed\": 14,\n        \"decisions\": [\"user_id primary, IP fallback for unauthenticated requests\"],\n    },\n)\n```\n\n**Research task:**\n```python\nkanban_complete(\n    summary=\"3 competing libraries reviewed; vLLM wins on throughput, SGLang on latency, Tensorrt-LLM on memory efficiency\",\n    metadata={\n        \"sources_read\": 12,\n        \"recommendation\": \"vLLM\",\n        \"benchmarks\": {\"vllm\": 1.0, \"sglang\": 0.87, \"trtllm\": 0.72},\n    },\n)\n```\n\n**Review task:**\n```python\nkanban_complete(\n    summary=\"reviewed PR #123; 2 blocking issues found (SQL injection in \u002Fsearch, missing CSRF on \u002Fsettings)\",\n    metadata={\n        \"pr_number\": 123,\n        \"findings\": [\n            {\"severity\": \"critical\", \"file\": \"api\u002Fsearch.py\", \"line\": 42, \"issue\": \"raw SQL concat\"},\n            {\"severity\": \"high\", \"file\": \"api\u002Fsettings.py\", \"issue\": \"missing CSRF middleware\"},\n        ],\n        \"approved\": False,\n    },\n)\n```\n\nShape `metadata` so downstream parsers (reviewers, aggregators, schedulers) can use it without re-reading your prose.\n\n## Claiming cards you actually created\n\nIf your run produced new kanban tasks (via `kanban_create`), pass the ids in `created_cards` on `kanban_complete`. The kernel verifies each id exists and was created by your profile; any phantom id blocks the completion with an error listing what went wrong, and the rejected attempt is permanently recorded on the task's event log. **Only list ids you captured from a successful `kanban_create` return value — never invent ids from prose, never paste ids from earlier runs, never claim cards another worker created.**\n\n```python\n# GOOD — capture return values, then claim them.\nc1 = kanban_create(title=\"remediate SQL injection\", assignee=\"security-worker\")\nc2 = kanban_create(title=\"fix CSRF middleware\", assignee=\"web-worker\")\n\nkanban_complete(\n    summary=\"Review done; spawned remediations for both findings.\",\n    metadata={\"pr_number\": 123, \"approved\": False},\n    created_cards=[c1[\"task_id\"], c2[\"task_id\"]],\n)\n```\n\n```python\n# BAD — claiming ids you don't have captured return values for.\nkanban_complete(\n    summary=\"Created remediation cards t_a1b2c3d4, t_deadbeef\",  # hallucinated\n    created_cards=[\"t_a1b2c3d4\", \"t_deadbeef\"],                   # → gate rejects\n)\n```\n\nIf a `kanban_create` call fails (exception, tool_error), the card was NOT created — do not include a phantom id for it. Retry the create, or omit the id and mention the failure in your summary. The prose-scan pass also catches `t_\u003Chex>` references in your free-form summary that don't resolve; these don't block the completion but show up as advisory warnings on the task in the dashboard.\n\n## Block reasons that get answered fast\n\nBad: `\"stuck\"` — the human has no context.\n\nGood: one sentence naming the specific decision you need. Leave longer context as a comment instead.\n\n```python\nkanban_comment(\n    task_id=os.environ[\"HERMES_KANBAN_TASK\"],\n    body=\"Full context: I have user IPs from Cloudflare headers but some users are behind NATs with thousands of peers. Keying on IP alone causes false positives.\",\n)\nkanban_block(reason=\"Rate limit key choice: IP (simple, NAT-unsafe) or user_id (requires auth, skips anonymous endpoints)?\")\n```\n\nThe block message is what appears in the dashboard \u002F gateway notifier. The comment is the deeper context a human reads when they open the task.\n\n## Heartbeats worth sending\n\nGood heartbeats name progress: `\"epoch 12\u002F50, loss 0.31\"`, `\"scanned 1.2M\u002F2.4M rows\"`, `\"uploaded 47\u002F120 videos\"`.\n\nBad heartbeats: `\"still working\"`, empty notes, sub-second intervals. Every few minutes max; skip entirely for tasks under ~2 minutes.\n\n## Retry scenarios\n\nIf you open the task and `kanban_show` returns `runs: [...]` with one or more closed runs, you're a retry. The prior runs' `outcome` \u002F `summary` \u002F `error` tell you what didn't work. Don't repeat that path. Typical retry diagnostics:\n\n- `outcome: \"timed_out\"` — the previous attempt hit `max_runtime_seconds`. You may need to chunk the work or shorten it.\n- `outcome: \"crashed\"` — OOM or segfault. Reduce memory footprint.\n- `outcome: \"spawn_failed\"` + `error: \"...\"` — usually a profile config issue (missing credential, bad PATH). Ask the human via `kanban_block` instead of retrying blindly.\n- `outcome: \"reclaimed\"` + `summary: \"task archived...\"` — operator archived the task out from under the previous run; you probably shouldn't be running at all, check status carefully.\n- `outcome: \"blocked\"` — a previous attempt blocked; the unblock comment should be in the thread by now.\n\n## Do NOT\n\n- Call `delegate_task` as a substitute for `kanban_create`. `delegate_task` is for short reasoning subtasks inside YOUR run; `kanban_create` is for cross-agent handoffs that outlive one API loop.\n- Modify files outside `$HERMES_KANBAN_WORKSPACE` unless the task body says to.\n- Create follow-up tasks assigned to yourself — assign to the right specialist.\n- Complete a task you didn't actually finish. Block it instead.\n\n## Pitfalls\n\n**Task state can change between dispatch and your startup.** Between when the dispatcher claimed and when your process actually booted, the task may have been blocked, reassigned, or archived. Always `kanban_show` first. If it reports `blocked` or `archived`, stop — you shouldn't be running.\n\n**Workspace may have stale artifacts.** Especially `dir:` and `worktree` workspaces can have files from previous runs. Read the comment thread — it usually explains why you're running again and what state the workspace is in.\n\n**Don't rely on the CLI when the guidance is available.** The `kanban_*` tools work across all terminal backends (Docker, Modal, SSH). `hermes kanban \u003Cverb>` from your terminal tool will fail in containerized backends because the CLI isn't installed there. When in doubt, use the tool.\n\n## CLI fallback (for scripting)\n\nEvery tool has a CLI equivalent for human operators and scripts:\n- `kanban_show` ↔ `hermes kanban show \u003Cid> --json`\n- `kanban_complete` ↔ `hermes kanban complete \u003Cid> --summary \"...\" --metadata '{...}'`\n- `kanban_block` ↔ `hermes kanban block \u003Cid> \"reason\"`\n- `kanban_create` ↔ `hermes kanban create \"title\" --assignee \u003Cprofile> [--parent \u003Cid>]`\n- etc.\n\nUse the tools from inside an agent; the CLI exists for the human at the terminal.\n",{"name":5,"version":48,"metadata":49,"description":7},"2.0.0",{"hermes":50},{"tags":51,"related_skills":52},[25,38,42,27,29],[53],"kanban-orchestrator","master","8ec37df6d71fb664ea19d32c079e7d3ff931a8e0","skills\u002Ffleet\u002Fkanban-worker-auto",3,"https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit","https:\u002F\u002Fweblyfe.ai","https:\u002F\u002Fgithub.com\u002FS3YED","2026-08-27 01:54:02",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add S3YED\u002Fappie-kit --skill kanban-worker",{"tool":68,"command":69},"bunx","bunx skills add S3YED\u002Fappie-kit --skill kanban-worker",{"tool":71,"command":72},"pnpm","pnpm dlx skills add S3YED\u002Fappie-kit --skill kanban-worker","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Ffleet\u002Fkanban-worker-auto\u002FSKILL.md",true,[],[77,109,143,169,200,223],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":90,"publishedAt":43},"01M6JFD4M6N4DSGC7TXEJ5R3J2","ai-music","AI music generation and audio tools: HeartMuLa lyrics-to-music generation, songwriting craft (+ Suno prompts), and audio spectrogram\u002Ffeature visualization.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fwethlete\u002Fai-music\u002FSKILL.md",[83,86,89],{"categoryNo":84,"categoryName":85,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":87,"categoryName":88,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108],"music","ai music","humanizer","visualization","Tools","Audio","hermes","hermes agent","songwriting","suno","lyrics","prompts","heartmula","craft","generation","feature","ai music generation","music generation",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":123,"publishedAt":43},"01M6JFCZE4XNFQFMNZDHKHT5V5","agentic-webdesign-design-system-ingestion","Use v0 Design Systems 2.0, Bolt Design System Agents, or Lovable to generate production UI from a client's real design system components — not generic Tailwind. Use when building a client website where brand consistency matters.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-design-system-ingestion\u002FSKILL.md",[115,118],{"categoryNo":116,"categoryName":117,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[124,125,126,39,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142],"design","agentic","design system","ingestion","webdesign","agentic webdesign design system ingestion","components","generate","design systems","website","ui","Tailwind","bolt","lovable","v0","design-system","wed","design system components","appie",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":151,"publishedAt":43},"01M6JFCVPX3913CFAS6QQJ33ZB","agentic-webdesign-agent-elements","Use 21st.dev Agent Elements — 25 shadcn\u002Fui components purpose-built for AI agent UIs. Tool cards (Bash, Edit, Search, Plan, Subagent, MCP), chat, input, streaming. Open source, shadcn-registry install, no runtime lock-in.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-agent-elements\u002FSKILL.md",[149,150],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[125,152,128,153,154,155,130,156,157,158,159,160,161,162,163,164,165,166,167,168],"elements","agentic webdesign agent elements","MCP","ai agent","registry","search","streaming","open source","open","Bash","plan","subagent","edit","install","input","lock","source",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":179,"publishedAt":43},"01M6JFCQC7H65M9QJ6TRE71BS1","vercel-deployment","Deploy static sites and frontends to Vercel — handles both CLI and REST API paths, including the CLI token sanitization workaround.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fvercel-deployment\u002FSKILL.md",[175,178],{"categoryNo":176,"categoryName":177,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199],"deployment","vercel deployment","vercel","macos","cli","linux","windows","deploy","vercel deploy","REST","api","site","deploy to vercel","token","rest api","host","sites","paths","sanitization","static site",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":207,"publishedAt":43},"01M6JFCM4SMTXBM5A01BK2YQG1","software-quality-workflows","Umbrella workflow for TDD, debugging, code simplification, spikes, pre-commit review, and debugger-assisted investigation.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fsoftware-quality-workflows\u002FSKILL.md",[206],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[208,209,210,211,212,213,27,214,215,216,217,218,219,220,221,222,26],"workflows","quality","software","software quality workflows","review","tdd","commit","debugging","code","debugger","pre-commit","investigation","code simplification","user","simplification",{"skillNo":224,"name":225,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":236,"publishedAt":43},"01M6JFCGD0M6CEATY01W7YN6DB","react-component-refactoring","Safely refactor large React components into smaller, maintainable pieces using proven patterns","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Freact-component-refactoring\u002FSKILL.md",[229,232,235],{"categoryNo":230,"categoryName":231,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":233,"categoryName":234,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[237,238,239,240,241,242,243,244,183,245,246,130,247,186,248,216,249,250,251,252],"react","component","refactoring","component refactoring","react component","react component refactoring","frontend","writing","safe","typescript","react components","modular","refactor","simplify","patterns","test-driven-development"]