[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GNGKD40N3DRPVASWRBYBP9":3,"skill-same:01M6GNGKD40N3DRPVASWRBYBP9":56},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":42,"install":43,"resources":55},"01M6GNGKD40N3DRPVASWRBYBP9","evolve",null,"Use when a prompt asset keeps causing the same PDCA gate failure and you want to evolve it against a maintainer-authored structural check","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\u002Fevolve\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28],"prompt","check","use","gate","structural","false","asset","it","you","true","2026-11-10 10:12:30",false,"---\nname: evolve\ndescription: \"Use when a prompt asset keeps causing the same PDCA gate failure and you want to evolve it against a maintainer-authored structural check\"\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> **Every evolve check is hand-authored by the maintainer — never by the optimized model class — and it scores structural conformance of the prompt asset, not runtime behavior. The maintainer's merge review of `winner.diff` is the final behavioral gate.**\n\n## Red Flags\n\n- \"I'll write a check for what the asset should do\" → STOP. The agent must NEVER author the assertion. The maintainer hand-authors every regex; evolve only surfaces *which* asset is weak. A model-authored check is self-deception — the optimizer games a benchmark it invented.\n- \"This asset feels weak, evolve it\" → STOP. evolve only targets assets with a real, recurring logged gate failure (`recurrence ≥ 3`). No provenance, no target.\n- \"Lower min_delta so it promotes\" → STOP. Generated suites pin `min_delta` to the `0.02` floor; evolve refuses to run below it.\n- \"Score went up, so it's better\" → STOP. The score only proves the asset matches the maintainer's regex. Behavior is verified by reading `winner.diff` before merge.\n- \"It scored higher, merge it\" → STOP. Winners land on the isolated `codex\u002Floop-*` branch; merging to main is a manual maintainer decision.\n\n# Evolve\n\nThe ouroboros maintainer loop. It closes the self-improvement ring: PDCA runs → Check gate fails → failure logged → `evolve harvest` surfaces the weak asset → the maintainer authors a structural check → the unmodified `loop` engine evolves the asset on an isolated branch → the maintainer merges → the next PDCA run starts stronger.\n\nevolve is a **target-selection + check-authoring layer on top of `loop`**. It runs no optimizer of its own and relaxes no loop gate.\n\n## When to Use\n\n- The same PDCA gate (`sources_min_5`, `min_two_reviewers`, …) keeps failing across runs and the root cause is the *producing prompt asset*, not the individual run.\n- The maintainer can express the desired structure as static regexes.\n- A fixed loop engine + promotion gates already exist (they do).\n\n## v1 Scope — what can actually promote\n\nThe loop's mutations are five fixed text substitutions: `should`→`must`, `can`→`must`, a legacy command-prefix rewrite to `\u002Fscc:`, trailing-whitespace trim, blank-line collapse. **None add content.** A candidate beats baseline only when the maintainer's regex flips fail→pass *because a substitution fired* — i.e. the asset still holds a `should` \u002F `can` \u002F legacy-prefix token the regex wants rewritten.\n\nA check requiring **new** content the asset lacks (a missing heading, an added section) can never be satisfied by v1 mutations — every candidate stays byte-identical and the run ends `min_delta_not_met`. Those need manual editing or a future mutation set. Author assertions inside the promotable space.\n\n## Subcommands\n\n| Command | Purpose |\n|---------|---------|\n| `list-failures [--min-recurrence N] [--asset PATH]` | Scan real `gate_fail` events, surface assets that crossed the recurrence threshold. |\n| `show-failure \u003Cid>` | Inspect one provenance record + prior ratified checks for that asset. |\n| `harvest \u003Cid> --assertion '\u003Cregex>[,\u003Cregex>]' [--target PATH]` | Attach the **maintainer-authored** check and generate `benchmarks\u002Floop\u002Fevolve-\u003Cid>.json`. |\n| `run \u003Cname>` | Shell out to the unmodified `loop` engine, then report any holdout regression (advisory). |\n| `resume \u003Crun_id>` | Delegate to `loop-runner.mjs resume`. |\n\n## Workflow\n\n1. `node scripts\u002Fevolve-runner.mjs list-failures` — which assets recur. Provenance only, never a check.\n2. Decide the structural property, inside the v1 promotable space above. **The maintainer authors the regex.** The agent must not invent it.\n3. `node scripts\u002Fevolve-runner.mjs harvest \u003Cid> --assertion '\u002Fscc:'` — a normalization check (the legacy long command prefix is rewritten to the canonical `\u002Fscc:` namespace). Writes a validated suite with the check inline (base64) so the worktree needs no extra file.\n4. Commit `scripts\u002Fevolve-scorer.mjs` and the target asset, then `node scripts\u002Fevolve-runner.mjs run evolve-\u003Cid>` — runs the loop on an isolated branch; prior ratified checks ride along as weight-0 holdouts. (Refuses if either is missing from `HEAD`.)\n5. Read `.captures\u002Floop-\u003CrunId>\u002Fwinner.diff`. Merge to main manually only if genuinely better.\n\n## Hard Gates\n\n- **Maintainer authorship is a procedural control, not a code gate.** The runner stamps `check_author: \"maintainer\"` and refuses an empty `--assertion`, but cannot tell a human regex from a model one. The \"never model-authored\" guarantee rests on this skill plus your review — never let the agent invent the assertion.\n- Generated `min_delta` is pinned to `0.02`; `evolve run` refuses below it. (Invoking `loop-runner.mjs run evolve-*` directly bypasses this — always use `evolve run`.)\n- Targets stay in the v1 scope (`skills\u002F**\u002FSKILL.md`, `agents\u002F*.md`, `commands\u002F*.md`, `templates\u002F*.md`), restricted to a safe charset so they cannot carry shell metacharacters into the generated command.\n- Inherited loop gates (syntax, manifest, contract-smoke, allowed-targets, critic-output) apply unchanged — evolve edits no engine code. evolve does **not** validate a suite's case-command safety (a baseline loop property); only run suites evolve itself generated.\n\n## State\n\n- Provenance ledger: `\u003Cplugin-data>\u002Fevolve\u002Ffailures.jsonl` (local-only)\n- Asset attribution map: `config\u002Fevolve-asset-map.json`\n- Generated suites: `benchmarks\u002Floop\u002Fevolve-*.json`\n- Run artifacts: `.captures\u002Floop-\u003Crun_id>\u002F` (owned by the loop engine)\n\n## Gotchas\n\n- **Slash-only.** No `prompt-detect.mjs` routing. A self-mutating loop must never trigger autonomously, and is never daemon-scheduled.\n- **v1 scores structure, not behavior**, bounded by the loop's fixed mutations. Calling it \"failure reproduction\" would be false — it is structural-conformance evolution against a maintainer-authored check.\n- Do not author the assertion from a model's guess. Do not merge a winner without reading `winner.diff`.\n","[Resolve runtime paths](..\u002Fruntime-paths.md) before file or script operations.\n\n## Iron Law\n\n> **Every evolve check is hand-authored by the maintainer — never by the optimized model class — and it scores structural conformance of the prompt asset, not runtime behavior. The maintainer's merge review of `winner.diff` is the final behavioral gate.**\n\n## Red Flags\n\n- \"I'll write a check for what the asset should do\" → STOP. The agent must NEVER author the assertion. The maintainer hand-authors every regex; evolve only surfaces *which* asset is weak. A model-authored check is self-deception — the optimizer games a benchmark it invented.\n- \"This asset feels weak, evolve it\" → STOP. evolve only targets assets with a real, recurring logged gate failure (`recurrence ≥ 3`). No provenance, no target.\n- \"Lower min_delta so it promotes\" → STOP. Generated suites pin `min_delta` to the `0.02` floor; evolve refuses to run below it.\n- \"Score went up, so it's better\" → STOP. The score only proves the asset matches the maintainer's regex. Behavior is verified by reading `winner.diff` before merge.\n- \"It scored higher, merge it\" → STOP. Winners land on the isolated `codex\u002Floop-*` branch; merging to main is a manual maintainer decision.\n\n# Evolve\n\nThe ouroboros maintainer loop. It closes the self-improvement ring: PDCA runs → Check gate fails → failure logged → `evolve harvest` surfaces the weak asset → the maintainer authors a structural check → the unmodified `loop` engine evolves the asset on an isolated branch → the maintainer merges → the next PDCA run starts stronger.\n\nevolve is a **target-selection + check-authoring layer on top of `loop`**. It runs no optimizer of its own and relaxes no loop gate.\n\n## When to Use\n\n- The same PDCA gate (`sources_min_5`, `min_two_reviewers`, …) keeps failing across runs and the root cause is the *producing prompt asset*, not the individual run.\n- The maintainer can express the desired structure as static regexes.\n- A fixed loop engine + promotion gates already exist (they do).\n\n## v1 Scope — what can actually promote\n\nThe loop's mutations are five fixed text substitutions: `should`→`must`, `can`→`must`, a legacy command-prefix rewrite to `\u002Fscc:`, trailing-whitespace trim, blank-line collapse. **None add content.** A candidate beats baseline only when the maintainer's regex flips fail→pass *because a substitution fired* — i.e. the asset still holds a `should` \u002F `can` \u002F legacy-prefix token the regex wants rewritten.\n\nA check requiring **new** content the asset lacks (a missing heading, an added section) can never be satisfied by v1 mutations — every candidate stays byte-identical and the run ends `min_delta_not_met`. Those need manual editing or a future mutation set. Author assertions inside the promotable space.\n\n## Subcommands\n\n| Command | Purpose |\n|---------|---------|\n| `list-failures [--min-recurrence N] [--asset PATH]` | Scan real `gate_fail` events, surface assets that crossed the recurrence threshold. |\n| `show-failure \u003Cid>` | Inspect one provenance record + prior ratified checks for that asset. |\n| `harvest \u003Cid> --assertion '\u003Cregex>[,\u003Cregex>]' [--target PATH]` | Attach the **maintainer-authored** check and generate `benchmarks\u002Floop\u002Fevolve-\u003Cid>.json`. |\n| `run \u003Cname>` | Shell out to the unmodified `loop` engine, then report any holdout regression (advisory). |\n| `resume \u003Crun_id>` | Delegate to `loop-runner.mjs resume`. |\n\n## Workflow\n\n1. `node scripts\u002Fevolve-runner.mjs list-failures` — which assets recur. Provenance only, never a check.\n2. Decide the structural property, inside the v1 promotable space above. **The maintainer authors the regex.** The agent must not invent it.\n3. `node scripts\u002Fevolve-runner.mjs harvest \u003Cid> --assertion '\u002Fscc:'` — a normalization check (the legacy long command prefix is rewritten to the canonical `\u002Fscc:` namespace). Writes a validated suite with the check inline (base64) so the worktree needs no extra file.\n4. Commit `scripts\u002Fevolve-scorer.mjs` and the target asset, then `node scripts\u002Fevolve-runner.mjs run evolve-\u003Cid>` — runs the loop on an isolated branch; prior ratified checks ride along as weight-0 holdouts. (Refuses if either is missing from `HEAD`.)\n5. Read `.captures\u002Floop-\u003CrunId>\u002Fwinner.diff`. Merge to main manually only if genuinely better.\n\n## Hard Gates\n\n- **Maintainer authorship is a procedural control, not a code gate.** The runner stamps `check_author: \"maintainer\"` and refuses an empty `--assertion`, but cannot tell a human regex from a model one. The \"never model-authored\" guarantee rests on this skill plus your review — never let the agent invent the assertion.\n- Generated `min_delta` is pinned to `0.02`; `evolve run` refuses below it. (Invoking `loop-runner.mjs run evolve-*` directly bypasses this — always use `evolve run`.)\n- Targets stay in the v1 scope (`skills\u002F**\u002FSKILL.md`, `agents\u002F*.md`, `commands\u002F*.md`, `templates\u002F*.md`), restricted to a safe charset so they cannot carry shell metacharacters into the generated command.\n- Inherited loop gates (syntax, manifest, contract-smoke, allowed-targets, critic-output) apply unchanged — evolve edits no engine code. evolve does **not** validate a suite's case-command safety (a baseline loop property); only run suites evolve itself generated.\n\n## State\n\n- Provenance ledger: `\u003Cplugin-data>\u002Fevolve\u002Ffailures.jsonl` (local-only)\n- Asset attribution map: `config\u002Fevolve-asset-map.json`\n- Generated suites: `benchmarks\u002Floop\u002Fevolve-*.json`\n- Run artifacts: `.captures\u002Floop-\u003Crun_id>\u002F` (owned by the loop engine)\n\n## Gotchas\n\n- **Slash-only.** No `prompt-detect.mjs` routing. A self-mutating loop must never trigger autonomously, and is never daemon-scheduled.\n- **v1 scores structure, not behavior**, bounded by the loop's fixed mutations. Calling it \"failure reproduction\" would be false — it is structural-conformance evolution against a maintainer-authored check.\n- Do not author the assertion from a model's guess. Do not merge a winner without reading `winner.diff`.\n",{"name":5,"effort":34,"description":7,"user-invocable":30,"disable-model-invocation":35},"high",true,"main","3e2938e2698dc6fc652571205aad03aa1205ec3d","skills\u002Fevolve",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":44,"prompt":54,"zipAvailable":35},[45,48,51],{"tool":46,"command":47},"npx","npx skills add unclejobs-ai\u002Fsecond-claude-code --skill evolve",{"tool":49,"command":50},"bunx","bunx skills add unclejobs-ai\u002Fsecond-claude-code --skill evolve",{"tool":52,"command":53},"pnpm","pnpm dlx skills add unclejobs-ai\u002Fsecond-claude-code --skill evolve","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Funclejobs-ai\u002Fsecond-claude-code\u002Fblob\u002Fmain\u002Fskills\u002Fevolve\u002FSKILL.md",[],[57,68,84,96,107,120],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":29},"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",[],[59,64,65,21,66,67,24],"content","social content","reports","social",{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":29},"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",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[70,21,80,81,82,24,83,28],"chaining","reusable","commands","scc",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":29},"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",[],[86,21,91,92,24,93,94,95,28,64],"korean","formatting","preservation","english","with",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":29},"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",[],[98,28,103,104,105,21,106,24],"identity","user","profile","patterns",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":29},"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",[],[109,114,115,116,64,117,118,119,21,24,95],"specialized","benchmarking","code","parallel","quality","strategy",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":129,"publishedAt":29},"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",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000021","资料检索与研究",[122,130,21,131,132,24,133],"web","Synthesis","exploration","sources"]