[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS1S97WRF201V66YC8GPY8":3,"skill-same:01M6CS1S97WRF201V66YC8GPY8":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":6,"updatedAt":55,"install":56,"resources":68},"01M6CS1S97WRF201V66YC8GPY8","skill-creator",null,"Create, write, add, edit, update, or review a fir skill — author SKILL.md with frontmatter and agent-facing instructions, run the quality checklist, and tell the user to \u002Freload.","kfet\u002Ffir","kfet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14585?v=4","01M6CRZCB8P1V37WM3X0GB2DA6","Kalin Fetvadjiev","01M6CRZCFG1EW1WEN4RK84W1N5",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fskill-creator\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"creator","skill creator","instructions","author","frontmatter","true","with","add","checklist","user","edit","write","quality","author skill","update","run","create","review","2026-11-10 10:12:30",false,"---\nbuiltin: true\nname: skill-creator\ndescription: Create, write, add, edit, update, or review a fir skill — author SKILL.md with frontmatter and agent-facing instructions, run the quality checklist, and tell the user to \u002Freload.\noverride: true\n---\n\n# Skill Creator\n\nUse this skill whenever you are writing a new skill, editing an existing one, or just reviewing a SKILL.md for quality.\n\n> **Skill files target a smart AI, not a beginner. Skip anything obvious. Every sentence must earn its place.**\n\n## Location\n\nSkills live under `.fir\u002Fskills\u002F\u003Cname>\u002FSKILL.md`. The directory name must match the `name` key in frontmatter.\n\n## Format\n\nEvery `SKILL.md` starts with YAML frontmatter followed by Markdown instructions for the executing agent:\n\n```yaml\n---\nname: \u003Cskill-name>\ndescription: One-line, keyword-rich trigger statement used by the agent to decide when to load this skill.\n---\n```\n\n## Steps\n\n1. Create or open `.fir\u002Fskills\u002F\u003Cname>\u002FSKILL.md`.\n2. Write the frontmatter — `name` matching the directory, plus a keyword-rich `description`.\n3. Write clear, agent-facing Markdown instructions — no stubs, no TODOs, no user-facing fluff.\n4. Run the review checklist below and fix issues in place.\n5. Tell the user to `\u002Freload`.\n\n## Catalog pattern (umbrella skills)\n\nWhen several skills share the same trigger (e.g. four loop-style agents all about \"watch the project\"), collapse them into a single **catalog skill** to cut system-prompt bloat:\n\n- One real `SKILL.md` at `\u003Cname>\u002FSKILL.md` with a narrow keyword-rich `description` and a body that lists each child role and when to use it.\n- Children live as plain markdown under `\u003Cname>\u002Fdocs\u002F\u003Crole>.md` — **no frontmatter, not named `SKILL.md`** so the discovery walker silently skips them.\n- The catalog directs the agent to `Read` the relevant sub-doc on demand. Supporting scripts live under `\u003Cname>\u002Fscripts\u002F` at the skill root (not under `docs\u002F`), so they're easy to find and reference from any sub-doc.\n\nSee `project-ops` for a working example.\n\n## Review checklist\n\nApply this on every create or edit (including review-only passes on hand-edited files).\n\n### Frontmatter\n\n`description` is the sole trigger signal. It must be a single tight sentence naming the concrete action and the key nouns a user would say — precise and keyword-rich.\n\nGood:\n```yaml\nname: releaser\ndescription: Release a new version. Confirms reviews and tests pass, updates VERSION and CHANGELOG.md, commits, tags, and installs.\n```\n\n### Body\n\nCut anything vague, redundant, incomplete, or longer than necessary. Instructions must target the executing agent, not the user.\n\n**No project-root boilerplate.** The shell already starts in the project root. Remove any `git rev-parse --show-toplevel` calls and any `PROJECT_ROOT` \u002F `PROJECT` preambles that exist only to locate the repo. Use `$PWD` or relative paths directly.\n\n### Checklist\n\n- `name` matches the directory name\n- `description` is a one-sentence keyword-rich trigger\n- No stubs or TODOs\n- Agent-facing language throughout\n","# Skill Creator\n\nUse this skill whenever you are writing a new skill, editing an existing one, or just reviewing a SKILL.md for quality.\n\n> **Skill files target a smart AI, not a beginner. Skip anything obvious. Every sentence must earn its place.**\n\n## Location\n\nSkills live under `.fir\u002Fskills\u002F\u003Cname>\u002FSKILL.md`. The directory name must match the `name` key in frontmatter.\n\n## Format\n\nEvery `SKILL.md` starts with YAML frontmatter followed by Markdown instructions for the executing agent:\n\n```yaml\n---\nname: \u003Cskill-name>\ndescription: One-line, keyword-rich trigger statement used by the agent to decide when to load this skill.\n---\n```\n\n## Steps\n\n1. Create or open `.fir\u002Fskills\u002F\u003Cname>\u002FSKILL.md`.\n2. Write the frontmatter — `name` matching the directory, plus a keyword-rich `description`.\n3. Write clear, agent-facing Markdown instructions — no stubs, no TODOs, no user-facing fluff.\n4. Run the review checklist below and fix issues in place.\n5. Tell the user to `\u002Freload`.\n\n## Catalog pattern (umbrella skills)\n\nWhen several skills share the same trigger (e.g. four loop-style agents all about \"watch the project\"), collapse them into a single **catalog skill** to cut system-prompt bloat:\n\n- One real `SKILL.md` at `\u003Cname>\u002FSKILL.md` with a narrow keyword-rich `description` and a body that lists each child role and when to use it.\n- Children live as plain markdown under `\u003Cname>\u002Fdocs\u002F\u003Crole>.md` — **no frontmatter, not named `SKILL.md`** so the discovery walker silently skips them.\n- The catalog directs the agent to `Read` the relevant sub-doc on demand. Supporting scripts live under `\u003Cname>\u002Fscripts\u002F` at the skill root (not under `docs\u002F`), so they're easy to find and reference from any sub-doc.\n\nSee `project-ops` for a working example.\n\n## Review checklist\n\nApply this on every create or edit (including review-only passes on hand-edited files).\n\n### Frontmatter\n\n`description` is the sole trigger signal. It must be a single tight sentence naming the concrete action and the key nouns a user would say — precise and keyword-rich.\n\nGood:\n```yaml\nname: releaser\ndescription: Release a new version. Confirms reviews and tests pass, updates VERSION and CHANGELOG.md, commits, tags, and installs.\n```\n\n### Body\n\nCut anything vague, redundant, incomplete, or longer than necessary. Instructions must target the executing agent, not the user.\n\n**No project-root boilerplate.** The shell already starts in the project root. Remove any `git rev-parse --show-toplevel` calls and any `PROJECT_ROOT` \u002F `PROJECT` preambles that exist only to locate the repo. Use `$PWD` or relative paths directly.\n\n### Checklist\n\n- `name` matches the directory name\n- `description` is a one-sentence keyword-rich trigger\n- No stubs or TODOs\n- Agent-facing language throughout\n",{"name":5,"builtin":47,"override":47,"description":7},true,"main","76b360b35f87ec18e1776cf6feafc7a025bdea64","pkg\u002Fresources\u002Fbuiltin_skills\u002Fskill-creator",0,"https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir","https:\u002F\u002Fgithub.com\u002Fkfet","https:\u002F\u002Fgithub.com\u002Fkalin-sa","2026-11-12 01:36:05",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":47},[58,61,64],{"tool":59,"command":60},"npx","npx skills add kfet\u002Ffir --skill skill-creator",{"tool":62,"command":63},"bunx","bunx skills add kfet\u002Ffir --skill skill-creator",{"tool":65,"command":66},"pnpm","pnpm dlx skills add kfet\u002Ffir --skill skill-creator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fskill-creator\u002FSKILL.md",[],[70,93,112,135,152,178],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":42},"01M6CS290490SZNX8V35TF3N6X","wt","Spawn a fresh fir agent in its own tmux session on its own git worktree. Use whenever the user wants the work — or the conversation about the work — to happen over there, not here. If the user points at this skill, or has directly loaded it in the context, that alone is the cue — spawn, don't inline.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwt\u002FSKILL.md",[],[72,77,78,79,80,81,82,33,83,84,85,86,87,88,89,90,29,91,92],"tmux","git","worktree","git worktree","work","context","spawn","session","use","conversation","cue","fresh","it","about","at","inline",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":42},"01M6CS26KAKJ7VYRQ3RJ31SJ6S","wrap-up","Wrap up work on a project branch — review, fix, and simplify in a loop until clean, then ff-merge to main.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwrap-up\u002FSKILL.md",[],[100,101,102,41,103,104,105,106,81,107,108,109,48,110,111,29],"wrap up","up","wrap","merge","simplify","loop","work on","branch","fix","clean","merge to main","project",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":42},"01M6CS23P85MSVBX11XMFB29PF","tmux-observer","Attach a tmux window to an already-running fir session — observe its transcript and drive its input via tmux send-keys. Use when you need to watch or steer another fir agent.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-observer\u002FSKILL.md",[],[77,119,120,121,84,85,122,123,124,125,126,127,128,29,129,130,131,132,133,134],"tmux observer","observer","transcript","drive","observe","attach","watch","input","via","you","keys","steer","window","send","when","running",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":42},"01M6CS21ENQ3D7Z08TDKXHJRR6","tmux-driver","Drive interactive CLIs (python, gdb, etc.) via named tmux sessions with multi-window support. Falls back to fir's built-in PTY driver when tmux is unavailable.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-driver\u002FSKILL.md",[],[77,142,143,144,145,146,147,148,122,149,150,127,151,30,29,131,133],"tmux driver","driver","python","support","sessions","interactive","PTY","back","gdb","multi",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":42},"01M6CS1YWSAH2TQ7S4VK7VKJT6","telegram-bot-setup","Set up a new Telegram bot channel for a fir project — install the telegram MCP, create a per-project state dir, drop in the bot token, wire .fir\u002Fmcp.json with TELEGRAM_STATE_DIR, pair the user, and verify. Use when the user asks to add, configure, or onboard a Telegram bot for a fir worktree\u002Fproject.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftelegram-bot-setup\u002FSKILL.md",[158],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[160,161,162,163,164,165,40,166,79,167,168,169,170,171,172,173,174,85,101,175,111,30,29,176,133,177],"bot","setup","telegram bot","telegram","telegram bot setup","MCP","state","SET","verify","onboard","configure","json","pair","install","channel","drop","for","new",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":42},"01M6CS1VSW4C1W1QED8NDHBHZ9","sync","Sync with an upstream source repo — detect changed files, apply equivalent downstream edits, update the baseline, and report any new features or non-trivial changes picked up.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fsync\u002FSKILL.md",[],[180,38,185,186,187,101,188,189,190,30,29,191,192,193,194,177],"report","baseline","repo","files","upstream","detect","source","changes","features","apply"]