[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GNGSWZ5TXP4TM34XREGJVP":3,"skill-same:01M6GNGSWZ5TXP4TM34XREGJVP":53},{"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":18,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":39,"install":40,"resources":52},"01M6GNGSWZ5TXP4TM34XREGJVP","loop",null,"Use when benchmarking and evolving prompt assets through a fixed-suite optimization loop","unclejobs-ai\u002Fsecond-claude-code","unclejobs-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F150198827?v=4","01M6GNFYGQ7354R1N04YF1B269","Unclejobs","01M6GNFYNCQEKYTVX572HB0F26",41,"MIT","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Floop\u002FSKILL.md",[],[5,19,20,21,22,23,24,25],"benchmarking","Optimization","assets","prompt","use","false","true","2026-11-10 10:12:30",false,"---\nname: loop\ndescription: \"Use when benchmarking and evolving prompt assets through a fixed-suite optimization loop\"\neffort: high\ndisable-model-invocation: true\nuser-invocable: false\n---\n\n[Resolve runtime paths](..\u002Fruntime-paths.md) before file or script operations.\n\n## Iron Law\n\n> **A loop without a benchmark is meaningless.**\n\n## Red Flags\n\n- \"Let's just run it and see what happens\" → STOP, because the Iron Law says a loop without a benchmark is meaningless — a fixed suite with numeric scoring must exist before any run.\n- \"The new variant feels better\" → STOP, because evaluator output must expose a numeric score that can be parsed deterministically — subjective improvement is not a valid promotion signal.\n- \"Baseline is close enough, let's promote the candidate\" → STOP, because winners are promoted only when the score beats baseline by at least `min_delta` — close is not enough.\n- \"I'll mutate the docs and test files too\" → STOP, because `.mjs`, `docs\u002F`, `README*`, and `tests\u002F` are excluded from mutation scope — only allowed targets in the suite allowlist may be changed.\n- \"One more generation might improve it\" → STOP, because the loop must stop when budget is exhausted, `min_delta` is not met, or scores plateau — open-ended iteration wastes tokens without measurable gain.\n\n# Loop\n\nRun a Karpathy-style optimization loop over the plugin's own prompt assets.\n\n## When to Use\n\n- Maintainers want to improve `skills\u002F**\u002FSKILL.md`, `agents\u002F*.md`, `commands\u002F*.md`, or `templates\u002F*.md`\n- A fixed benchmark suite with numeric scoring already exists\n- Candidate variants should compete under the same time budget and the best variant should be promoted to an isolated branch\n\n## Subcommands\n\n| Command | Purpose |\n|---------|---------|\n| `list-suites` | List bundled loop suites in `benchmarks\u002Floop\u002F` |\n| `show-suite \u003Cname>` | Inspect the validated suite manifest |\n| `run \u003Cname>` | Create an isolated run branch, score a baseline, generate candidates, and promote a winner if `min_delta` is met |\n| `resume \u003Crun_id>` | Reload the saved loop state from `.data\u002Fstate\u002Floop-active.json` |\n\n## Workflow\n\n1. Use `node scripts\u002Floop-runner.mjs show-suite \u003Cname>` to load the suite and verify the allowed targets.\n2. Use `node scripts\u002Floop-runner.mjs run \u003Cname> ...` to create the isolated `codex\u002Floop-...` branch and run worktree.\n3. Inside that run worktree, create 3-5 prompt variants only within the selected targets.\n4. Evaluate every candidate with the suite's fixed case commands. Parse scores from JSON or review-style output only.\n5. Keep the top 1-2 elite candidates per generation. Stop when budget is exhausted, `min_delta` is not met, or the loop plateaus.\n6. Only promote a winner when all hard gates pass and the score beats baseline by at least `min_delta`.\n\n## Hard Gates\n\n- Selected targets must stay within the suite allowlist and the global v1 mutation scope.\n- Contract\u002Fruntime smoke checks must still pass when those files exist in the repo.\n- Evaluator output must expose a numeric score that can be parsed deterministically.\n- Winners are promoted only into the run branch\u002Fworktree, never into the current workspace.\n\n## State\n\n- Active state: `\u003Cplugin-data>\u002Fstate\u002Floop-active.json`\n- Artifacts: `.captures\u002Floop-\u003Crun_id>\u002F`\n- Bundled suites: `benchmarks\u002Floop\u002F*.json`\n\n## Gotchas\n\n- Do not add routing for this skill in `prompt-detect.mjs` for v1. It is slash-command only.\n- Do not mutate `.mjs`, `docs\u002F`, `README*`, or `tests\u002F` as loop targets.\n- Do not declare a winner when baseline remains best or when `min_delta` is not met.\n- Do not write to the main worktree directly. The isolated loop branch is the output surface.\n","[Resolve runtime paths](..\u002Fruntime-paths.md) before file or script operations.\n\n## Iron Law\n\n> **A loop without a benchmark is meaningless.**\n\n## Red Flags\n\n- \"Let's just run it and see what happens\" → STOP, because the Iron Law says a loop without a benchmark is meaningless — a fixed suite with numeric scoring must exist before any run.\n- \"The new variant feels better\" → STOP, because evaluator output must expose a numeric score that can be parsed deterministically — subjective improvement is not a valid promotion signal.\n- \"Baseline is close enough, let's promote the candidate\" → STOP, because winners are promoted only when the score beats baseline by at least `min_delta` — close is not enough.\n- \"I'll mutate the docs and test files too\" → STOP, because `.mjs`, `docs\u002F`, `README*`, and `tests\u002F` are excluded from mutation scope — only allowed targets in the suite allowlist may be changed.\n- \"One more generation might improve it\" → STOP, because the loop must stop when budget is exhausted, `min_delta` is not met, or scores plateau — open-ended iteration wastes tokens without measurable gain.\n\n# Loop\n\nRun a Karpathy-style optimization loop over the plugin's own prompt assets.\n\n## When to Use\n\n- Maintainers want to improve `skills\u002F**\u002FSKILL.md`, `agents\u002F*.md`, `commands\u002F*.md`, or `templates\u002F*.md`\n- A fixed benchmark suite with numeric scoring already exists\n- Candidate variants should compete under the same time budget and the best variant should be promoted to an isolated branch\n\n## Subcommands\n\n| Command | Purpose |\n|---------|---------|\n| `list-suites` | List bundled loop suites in `benchmarks\u002Floop\u002F` |\n| `show-suite \u003Cname>` | Inspect the validated suite manifest |\n| `run \u003Cname>` | Create an isolated run branch, score a baseline, generate candidates, and promote a winner if `min_delta` is met |\n| `resume \u003Crun_id>` | Reload the saved loop state from `.data\u002Fstate\u002Floop-active.json` |\n\n## Workflow\n\n1. Use `node scripts\u002Floop-runner.mjs show-suite \u003Cname>` to load the suite and verify the allowed targets.\n2. Use `node scripts\u002Floop-runner.mjs run \u003Cname> ...` to create the isolated `codex\u002Floop-...` branch and run worktree.\n3. Inside that run worktree, create 3-5 prompt variants only within the selected targets.\n4. Evaluate every candidate with the suite's fixed case commands. Parse scores from JSON or review-style output only.\n5. Keep the top 1-2 elite candidates per generation. Stop when budget is exhausted, `min_delta` is not met, or the loop plateaus.\n6. Only promote a winner when all hard gates pass and the score beats baseline by at least `min_delta`.\n\n## Hard Gates\n\n- Selected targets must stay within the suite allowlist and the global v1 mutation scope.\n- Contract\u002Fruntime smoke checks must still pass when those files exist in the repo.\n- Evaluator output must expose a numeric score that can be parsed deterministically.\n- Winners are promoted only into the run branch\u002Fworktree, never into the current workspace.\n\n## State\n\n- Active state: `\u003Cplugin-data>\u002Fstate\u002Floop-active.json`\n- Artifacts: `.captures\u002Floop-\u003Crun_id>\u002F`\n- Bundled suites: `benchmarks\u002Floop\u002F*.json`\n\n## Gotchas\n\n- Do not add routing for this skill in `prompt-detect.mjs` for v1. It is slash-command only.\n- Do not mutate `.mjs`, `docs\u002F`, `README*`, or `tests\u002F` as loop targets.\n- Do not declare a winner when baseline remains best or when `min_delta` is not met.\n- Do not write to the main worktree directly. The isolated loop branch is the output surface.\n",{"name":5,"effort":31,"description":7,"user-invocable":27,"disable-model-invocation":32},"high",true,"main","3e2938e2698dc6fc652571205aad03aa1205ec3d","skills\u002Floop",9,"https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code","https:\u002F\u002Fgithub.com\u002Funclejobs-ai","2026-11-10 10:15:09",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":32},[42,45,48],{"tool":43,"command":44},"npx","npx skills add unclejobs-ai\u002Fsecond-claude-code --skill loop",{"tool":46,"command":47},"bunx","bunx skills add unclejobs-ai\u002Fsecond-claude-code --skill loop",{"tool":49,"command":50},"pnpm","pnpm dlx skills add unclejobs-ai\u002Fsecond-claude-code --skill loop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Floop\u002FSKILL.md",[],[54,65,81,93,104,116],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":26},"01M6GNHTFEKCG6X5Q0VCH0T2C1","write","Use when producing newsletters, articles, reports, shorts, or social content","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fwrite\u002FSKILL.md",[],[56,61,62,23,63,64,24],"content","social content","reports","social",{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":76,"publishedAt":26},"01M6GNHP58KN60BQ8T7QXCC43D","workflow","Use when chaining multiple \u002Fscc commands into a reusable workflow","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002FSKILL.md",[71],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[67,23,77,78,79,24,80,25],"chaining","reusable","commands","scc",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":26},"01M6GNHHQZJG8AVTCYPYPFYTNE","translate","Use when translating content between English and Korean with formatting preservation","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Ftranslate\u002FSKILL.md",[],[83,23,88,89,24,90,91,92,25,61],"korean","formatting","preservation","english","with",{"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":26},"01M6GNHD52AQE5YCZKRK6D71ZX","soul","Use when observing user patterns and synthesizing a persistent identity profile","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fsoul\u002FSKILL.md",[],[95,25,100,101,102,23,103,24],"identity","user","profile","patterns",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":26},"01M6GNH8AX5EGA8BWF2JTK5HR0","review","Use when benchmarking content, strategy, or code against a quality bar with parallel specialized reviewers","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Freview\u002FSKILL.md",[],[106,111,19,112,61,113,114,115,23,24,92],"specialized","code","parallel","quality","strategy",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":125,"publishedAt":26},"01M6GNH4QFZP7H5KA12DR5PCNJ","research","Use when finding sources through iterative web exploration and synthesis","https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000021","资料检索与研究",[118,126,23,127,128,24,129],"web","Synthesis","exploration","sources"]