[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71F0S2X1SCDJ7YB2HC1AV6P":3,"skill-same:01M71F0S2X1SCDJ7YB2HC1AV6P":75},{"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":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M71F0S2X1SCDJ7YB2HC1AV6P","harness-recipes",null,"Install and configure ai-specs catalog recipes: list, add, init, and configure-recipes, then sync. Trigger: When enabling a recipe, inspecting recipe setup, configuring recipe fields or env, or choosing catalog capabilities for a project.","parada1104\u002Fai-specs-cli","parada1104","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F57575053?v=4","01M71EZZV71KAFZKJ47FQ99ZVS","01M71EZZW7JJBY2VAWA5HRD944",0,"MIT","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Fbundled-skills\u002Fharness-recipes\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"harness recipes","recipes","harness","install","sync","settings","read","run","recipe setup","capabilities","env","configure","when","recipe","init","catalog","trigger","project","for","brief","2026-11-10 10:12:30",false,"---\nname: harness-recipes\ndescription: >\n  Install and configure ai-specs catalog recipes: list, add, init, and\n  configure-recipes, then sync. Trigger: When enabling a recipe, inspecting\n  recipe setup, configuring recipe fields or env, or choosing catalog\n  capabilities for a project.\nlicense: MIT\nmetadata:\n  author: ai-specs\n  version: \"1.0\"\n  scope: [root]\n  auto_invoke:\n    - \"Add or install an ai-specs recipe\"\n    - \"List available or installed recipes\"\n    - \"Configure recipe settings or recipe env\"\n    - \"Run recipe init or read a recipe setup brief\"\n---\n\n# Harness recipes\n\nOperate **catalog recipes** through the public CLI. Lifecycle sync\u002Fdoctor live\nin `harness-lifecycle`. Skills\u002Fdeps live in `harness-skills-deps`.\n\n## Canonical install sequence\n\n```bash\nai-specs recipe list [path]           # see catalog + installed\nai-specs recipe add \u003Cid> [path]       # declare in ai-specs.toml (+ placeholders)\nai-specs recipe init \u003Cid> [path]      # read-only setup brief (optional but useful)\nai-specs configure-recipes [path]     # fill config \u002F CLI deps \u002F .envrc.example\nai-specs sync [path]                  # materialize skills, docs, brief fragments\n```\n\n`recipe add` alone does **not** fully materialize assets — **sync** does.\n`recipe init` is read-only guidance; it does not replace configure + sync.\n\n## Commands\n\n| Command | Role |\n|---|---|\n| `ai-specs recipe list` | Available catalog recipes and what the project has enabled. |\n| `ai-specs recipe add \u003Cid>` | Add recipe id to the manifest (declaration). |\n| `ai-specs recipe init \u003Cid>` | Print init brief for humans\u002Fagents (read-only). |\n| `ai-specs configure-recipes` | Interactive\u002Fconfig pass for recipe fields and deps. |\n\nAfter any add\u002Fconfig change: `ai-specs sync` (see `harness-lifecycle`).\n\n## Assisted non-interactive configure\n\nUse `ai-specs recipe configure \u003Cid> [path]` for an agent-assisted flow; this is\nadditive to (and does not replace) the interactive `configure-recipes` wizard.\nFollow the phases in order:\n\n1. **Inspect** — run `ai-specs recipe configure \u003Cid> [path] --inspect --json`.\n   Confirm the recipe id from `recipe list`, read the schema fields and current\n   config, and use the grounding signals (topology, MCP, and CLI dependencies).\n2. **Recommend** — show proposed schema-valid `KEY=VALUE` changes, keys left\n   unchanged, assumptions\u002Fquestions (especially `monorepo-apps` versus\n   `standalone` when no `.gitmodules` exists), and the planned sync\u002Fdoctor\n   verification. Do not mutate until the user gives explicit approval.\n3. **Apply** — after approval, run `--set KEY=VALUE` (repeatable), optionally\n   with `--dry-run`. The helper writes only `[recipes.\u003Cid>.config]`, preserves\n   comments and unmentioned keys, and leaves every `overrides\u002F` file untouched.\n   Never put literal tokens, passwords, API keys, or other secrets in a\n   command or report; use `${env:VAR}` references and redaction.\n4. **Sync\u002Fverify** — add `--sync` after approval. The helper runs sync and\n  doctor, forwards `--ignore-cli-version` only when explicitly requested, and\n  reports partial failure without claiming the project is complete. This is\n  the no-secret-literal rule: use `${env:VAR}` references and redaction.\n5. **Report** — retain the JSON report fields `status`, `applied.changed`,\n   `applied.unchanged`, `applied.preserved`, `preflight`, `sync`, `verify`,\n   `assumptions`, `drift`, and `gaps`. Exit 0 is success\u002Fno-op, 1 is\n   apply\u002Fsync failure or partial, 2 is usage, 3 is rejected input, and 4 is a\n   preflight block. Codes 3 and 4 guarantee no manifest write.\n\nThe deterministic helper is suitable for `worktree-flow` topology grounding\nwithout an `init.md`, `plan-build-flow` plain config, and\n`trello-mcp-workflow` MCP\u002Fsecrets\u002Finit guidance. `recipe init` remains\nread-only and does not invoke sync.\n\n## Mental model\n\n- Recipes declare **capabilities**, skills, docs, optional brief fragments, and\n  config schema.\n- Projects **bind** providers for capabilities in the manifest (see project\n  `docs\u002Fcapabilities.md` when present).\n- Conflicts \u002F tags \u002F CLI-bound catalog versions are enforced by sync — read\n  doctor output if materialize fails.\n\n## Pitfalls\n\n- **add without sync** — toml mentions the recipe but skills\u002Fdocs are missing.\n- **Skipping configure-recipes** — MCP\u002Fenv\u002Fconfig placeholders stay empty;\n  runtime fails later.\n- **Wrong recipe id** — use `recipe list`; do not invent ids.\n- **Expecting recipe add to vendor git deps** — external skills use\n  `ai-specs skills add` (`harness-skills-deps`), not `recipe add`.\n\n## Checklist\n\n- [ ] Confirmed id via `ai-specs recipe list`\n- [ ] `ai-specs recipe add \u003Cid>`\n- [ ] Read `ai-specs recipe init \u003Cid>` when unsure about setup\n- [ ] `ai-specs configure-recipes` for required fields\u002Fenv\n- [ ] `ai-specs sync` and verify materialized paths \u002F doctor\n","# Harness recipes\n\nOperate **catalog recipes** through the public CLI. Lifecycle sync\u002Fdoctor live\nin `harness-lifecycle`. Skills\u002Fdeps live in `harness-skills-deps`.\n\n## Canonical install sequence\n\n```bash\nai-specs recipe list [path]           # see catalog + installed\nai-specs recipe add \u003Cid> [path]       # declare in ai-specs.toml (+ placeholders)\nai-specs recipe init \u003Cid> [path]      # read-only setup brief (optional but useful)\nai-specs configure-recipes [path]     # fill config \u002F CLI deps \u002F .envrc.example\nai-specs sync [path]                  # materialize skills, docs, brief fragments\n```\n\n`recipe add` alone does **not** fully materialize assets — **sync** does.\n`recipe init` is read-only guidance; it does not replace configure + sync.\n\n## Commands\n\n| Command | Role |\n|---|---|\n| `ai-specs recipe list` | Available catalog recipes and what the project has enabled. |\n| `ai-specs recipe add \u003Cid>` | Add recipe id to the manifest (declaration). |\n| `ai-specs recipe init \u003Cid>` | Print init brief for humans\u002Fagents (read-only). |\n| `ai-specs configure-recipes` | Interactive\u002Fconfig pass for recipe fields and deps. |\n\nAfter any add\u002Fconfig change: `ai-specs sync` (see `harness-lifecycle`).\n\n## Assisted non-interactive configure\n\nUse `ai-specs recipe configure \u003Cid> [path]` for an agent-assisted flow; this is\nadditive to (and does not replace) the interactive `configure-recipes` wizard.\nFollow the phases in order:\n\n1. **Inspect** — run `ai-specs recipe configure \u003Cid> [path] --inspect --json`.\n   Confirm the recipe id from `recipe list`, read the schema fields and current\n   config, and use the grounding signals (topology, MCP, and CLI dependencies).\n2. **Recommend** — show proposed schema-valid `KEY=VALUE` changes, keys left\n   unchanged, assumptions\u002Fquestions (especially `monorepo-apps` versus\n   `standalone` when no `.gitmodules` exists), and the planned sync\u002Fdoctor\n   verification. Do not mutate until the user gives explicit approval.\n3. **Apply** — after approval, run `--set KEY=VALUE` (repeatable), optionally\n   with `--dry-run`. The helper writes only `[recipes.\u003Cid>.config]`, preserves\n   comments and unmentioned keys, and leaves every `overrides\u002F` file untouched.\n   Never put literal tokens, passwords, API keys, or other secrets in a\n   command or report; use `${env:VAR}` references and redaction.\n4. **Sync\u002Fverify** — add `--sync` after approval. The helper runs sync and\n  doctor, forwards `--ignore-cli-version` only when explicitly requested, and\n  reports partial failure without claiming the project is complete. This is\n  the no-secret-literal rule: use `${env:VAR}` references and redaction.\n5. **Report** — retain the JSON report fields `status`, `applied.changed`,\n   `applied.unchanged`, `applied.preserved`, `preflight`, `sync`, `verify`,\n   `assumptions`, `drift`, and `gaps`. Exit 0 is success\u002Fno-op, 1 is\n   apply\u002Fsync failure or partial, 2 is usage, 3 is rejected input, and 4 is a\n   preflight block. Codes 3 and 4 guarantee no manifest write.\n\nThe deterministic helper is suitable for `worktree-flow` topology grounding\nwithout an `init.md`, `plan-build-flow` plain config, and\n`trello-mcp-workflow` MCP\u002Fsecrets\u002Finit guidance. `recipe init` remains\nread-only and does not invoke sync.\n\n## Mental model\n\n- Recipes declare **capabilities**, skills, docs, optional brief fragments, and\n  config schema.\n- Projects **bind** providers for capabilities in the manifest (see project\n  `docs\u002Fcapabilities.md` when present).\n- Conflicts \u002F tags \u002F CLI-bound catalog versions are enforced by sync — read\n  doctor output if materialize fails.\n\n## Pitfalls\n\n- **add without sync** — toml mentions the recipe but skills\u002Fdocs are missing.\n- **Skipping configure-recipes** — MCP\u002Fenv\u002Fconfig placeholders stay empty;\n  runtime fails later.\n- **Wrong recipe id** — use `recipe list`; do not invent ids.\n- **Expecting recipe add to vendor git deps** — external skills use\n  `ai-specs skills add` (`harness-skills-deps`), not `recipe add`.\n\n## Checklist\n\n- [ ] Confirmed id via `ai-specs recipe list`\n- [ ] `ai-specs recipe add \u003Cid>`\n- [ ] Read `ai-specs recipe init \u003Cid>` when unsure about setup\n- [ ] `ai-specs configure-recipes` for required fields\u002Fenv\n- [ ] `ai-specs sync` and verify materialized paths \u002F doctor\n",{"name":5,"license":14,"metadata":43,"description":53},{"scope":44,"author":46,"version":47,"auto_invoke":48},[45],"root","ai-specs","1.0",[49,50,51,52],"Add or install an ai-specs recipe","List available or installed recipes","Configure recipe settings or recipe env","Run recipe init or read a recipe setup brief","Install and configure ai-specs catalog recipes: list, add, init, and configure-recipes, then sync. Trigger: When enabling a recipe, inspecting recipe setup, configuring recipe fields or env, or choosing catalog capabilities for a project.\n","main","c092fc1f51280350a4434827e2f6d6d99e3431ca","bundled-skills\u002Fharness-recipes",2,"https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli","https:\u002F\u002Fgithub.com\u002Fparada1104","2026-11-08 05:20:31",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add parada1104\u002Fai-specs-cli --skill harness-recipes",{"tool":67,"command":68},"bunx","bunx skills add parada1104\u002Fai-specs-cli --skill harness-recipes",{"tool":70,"command":71},"pnpm","pnpm dlx skills add parada1104\u002Fai-specs-cli --skill harness-recipes","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Fbundled-skills\u002Fharness-recipes\u002FSKILL.md",true,[],[76,96,110,119,128,141],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":90,"publishedAt":38},"01M71F2TF9TS9DNCJ68M7C3B5S","test-skill","Test skill for fixture purposes.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Frecipes\u002Ftest-fixture\u002Fskills\u002Ftest-skill\u002FSKILL.md",[82,87],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":88,"categoryName":89,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000023","Skill与智能体开发",[91,92,36,45,93,94,95],"Test Skill","test","fixtures","fixture","testing",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":105,"publishedAt":38},"01M71F2RTH94ZB7XEAW4P6ZG0D","obsidian-markdown","Fixture skill for obsidian-markdown.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fkepano-obsidian-skills\u002Fskills\u002Fobsidian-markdown\u002FSKILL.md",[102],{"categoryNo":103,"categoryName":104,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000002","文档处理",[106,107,108,36,94,109],"markdown","obsidian markdown","obsidian","fixture skill",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":38},"01M71F2R20CPTJXD9F7DP4JPP6","obsidian-cli","Fixture skill for obsidian-cli.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fkepano-obsidian-skills\u002Fskills\u002Fobsidian-cli\u002FSKILL.md",[],[117,108,118,36,94,109],"obsidian cli","cli",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":38},"01M71F2PCH4NWVTT1J57SHJX33","obsidian-bases","Fixture skill for obsidian-bases.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fkepano-obsidian-skills\u002Fskills\u002Fobsidian-bases\u002FSKILL.md",[],[126,127,108,36,94,109],"bases","obsidian bases",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":38},"01M71F2MSS6EVFEYVYAA1KBYCC","json-canvas","Fixture skill for json-canvas.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fkepano-obsidian-skills\u002Fskills\u002Fjson-canvas\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000015","视觉设计",[138,139,140,109,94,36],"json","json canvas","canvas",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":38},"01M71F2KY5QVNEN1Q3REFB0MQZ","defuddle","Fixture skill for defuddle.","https:\u002F\u002Fgithub.com\u002Fparada1104\u002Fai-specs-cli\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fkepano-obsidian-skills\u002Fskills\u002Fdefuddle\u002FSKILL.md",[],[143,109,94,36]]