[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79ADNW8PTYFFQR4SNESTS71":3,"skill-same:01M79ADNW8PTYFFQR4SNESTS71":47},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M79ADNW8PTYFFQR4SNESTS71","nacharbeit-fix",null,"Use to apply the haiku- and sonnet-tier backlog of a completed nacharbeit review: one remediator per file at the file's tier, a blind sonnet verifier that re-reads the file and runs the post-checks its kind needs (py_compile, node --check, the hook test, the viewer standard), one repair round on rejection, all under a PreToolUse hook that denies every edit outside the fix lock. Trigger on 'apply the nacharbeit findings', 'fix what the review found', 'rework these plugins to the standard', 'nacharbeit fix'. Requires a persisted, calibrated review in analysis\u002Fnacharbeit\u002F; opus- and human-tier entries are listed for a person and never applied; never commits.","Anselmoo\u002Fwerkstoff","Anselmoo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13209783?v=4","01M799YTB3D7RZ4P3B8CSR2X85","Anselm Hahn","01M799YTBRAM6719D9V0NRGB4R",1,"MIT","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Fplugins\u002Fnacharbeit\u002Fskills\u002Fnacharbeit-fix\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: nacharbeit-fix\ndescription: \"Use to apply the haiku- and sonnet-tier backlog of a completed nacharbeit review: one remediator per file at the file's tier, a blind sonnet verifier that re-reads the file and runs the post-checks its kind needs (py_compile, node --check, the hook test, the viewer standard), one repair round on rejection, all under a PreToolUse hook that denies every edit outside the fix lock. Trigger on 'apply the nacharbeit findings', 'fix what the review found', 'rework these plugins to the standard', 'nacharbeit fix'. Requires a persisted, calibrated review in analysis\u002Fnacharbeit\u002F; opus- and human-tier entries are listed for a person and never applied; never commits.\"\n---\n\nRework the part to spec, then measure it again before it leaves the bench. Every edit\nin this pass is authorized by a lock the guard hook reads, verified by a model that\ndid not make it, and checked by a script that does not care who did.\n\n## Steps\n\n1. **Preflight.** Run `nacharbeit-preflight`. It must show `run.json=present`, no open\n   lock, and `own guard ... present, declared, denies`. A line reading `NOT LIVE` (an install\n   synced without `hooks\u002F`, or `NACHARBEIT_DISABLE_GUARD=1` set) means the pass would run\n   unguarded: stop and say so; `build_fix_args.py` refuses on it too. Name every other live guard: a denial from takt, lehre, andon, zeugnis,\n   befund or cupertino during this pass is reported as \"blocked by \u003Cplugin>\" and\n   never retried with that plugin's escape hatch.\n\n2. **Build the work items and open the lock:**\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fbuild_fix_args.py\" [--write-roots plugins\u002F tools\u002F]\n   ```\n\n   It refuses a review that is not completed and calibrated, and a lock that is already\n   open. On success it has written `analysis\u002Fnacharbeit\u002Ffix_scope.json` (every file the\n   review touched with its tier — see `references\u002Ffix-scope-schema.md`) and snapshotted each\n   plugin about to change to `analysis\u002Fnacharbeit\u002Fpre-fix\u002F`. It has **not** written\n   `fix-run.js`: that comes only after step 3 shows the guard fires. From this moment the\n   guard should deny any edit outside the lock, any edit to an opus- or human-tier file,\n   and any git state change. Tell the user the file count by tier and the excluded list.\n\n3. **Prove the guard fires** — as a separate command, so the hook sees it first:\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fbuild_fix_args.py\" --confirm-guard\n   ```\n\n   The guard writes `guard-heartbeat.json` on every call while the lock is open; this\n   bakes `fix-run.js` only if a heartbeat for *this* lock exists. Without one the hook is\n   not registered in this session: the script deletes the lock, writes nothing, and exits\n   1. Report that, name the likely cause (plugin installed without `hooks\u002F`, plugin\n   disabled, a session started before the hook was installed), and stop. Never launch a\n   hand-made `fix-run.js`.\n\n4. **Launch the pass** by the baked script path:\n\n   ```\n   Workflow({ scriptPath: \"analysis\u002Fnacharbeit\u002Ffix-run.js\" })\n   ```\n\n   Per file: a remediator at the file's tier applies the entries with Edit; a blind\n   sonnet verifier re-reads the file, quote-checks the pre-fix evidence, runs the file's\n   post-checks with Bash, and lists regressions; at most one sonnet repair round follows,\n   driven only by the verifier's rejections.\n\n   *Without the Workflow tool*: apply the entries of one file at a time yourself, in\n   tier order, then dispatch `fix-verifier` for that file before touching the next.\n   Never batch files into one dispatch.\n\n5. **Check the whole pass and release the lock:**\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpost_fix_check.py\" --release-lock\n   ```\n\n   It re-runs every post-check, diffs each touched plugin's contracts (output paths,\n   settings files, env vars) against the pre-fix snapshot, and deletes the lock only when\n   nothing failed and nothing moved. A kept lock is the result, not an obstacle: fix what\n   it names, rerun, and only a person passes `--force`.\n\n   A post-check that cannot run is skipped by name, not failed and not passed: outside\n   werkstoff, a hook-script fix has no `hook-violation-\u003Cplugin>\u002F` fixture for\n   `verify_hooks_deny.py` to probe against, so that one check is listed under\n   `postChecks.skipped` in `fix-check.json` and as `WARN post-check skipped` on stderr\n   (the hook's unit test and `py_compile` still run). `clean: true` does not mean the skipped\n   check passed. Report each one, and say the hook was never behaviourally probed.\n\n6. **Report, hand off, stop.** List applied, skipped-with-reason, partially resolved and\n   regressed files; list every opus- and human-tier entry verbatim; state that the\n   changes are unverified beyond the post-checks and hand off to `andon:andon-verify` (or\n   `andon-loop` for a ledger-recorded proof) and a human diff read. Do not commit.\n\n## Output format\n\n```\nnacharbeit fix 2026-09-09T07:02:11Z (review 2026-09-09T06:12:04Z) — 41 files, 97 entries\n  guard confirmed: seen firing on a Bash call at 2026-09-09T07:02:40Z for lock 2026-09-09T07:02:11Z\n  resolved 33 · partially-resolved 4 · all-skipped 2 · regressions 1 · remediator-failed 0 · verifier-failed 1\n  regressions\n    plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py — post-check failed: hook unit test (2 cases) → repair round did not clear it\n  skipped with reason (7 entries)\n    plugins\u002Fandon\u002Fskills\u002Fandon-loop\u002FSKILL.md #2 — cross-file: the fix needs okf-ledger-schema.md to change first\n  excluded (never applied)\n    [opus ] plugins\u002Fzirkel\u002Fworkflows\u002Fsolve.js — design a real gate for each stage's output_contract\n    [human] plugins\u002Fandon\u002Fskills\u002Fandon-loop\u002FSKILL.md — decide whether scoped runs are supported at all\npost-fix check: 38 post-checks passed, 1 failed, 1 skipped; contracts andon=clean, lehre=clean\n  skipped plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py — hook denies and stays inert: no hook-violation-lehre\u002F under \u002Frepo\u002Ftest\u002Fplugins\u002Ffixtures\nlock: KEPT (1 failed post-check) — fix plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py, rerun post_fix_check.py --release-lock\nUNVERIFIED beyond the post-checks. Next: andon-verify on the edited wires; read the diff before committing.\n```\n\n## Rules\n\n- **One file per remediator dispatch.** A dispatch that touches five files cannot be\n  reviewed as five decisions.\n- **Never apply an opus- or human-tier entry**, however small the diff would be. The\n  guard denies it; do not reach for `NACHARBEIT_DISABLE_GUARD=1`.\n- **Never bypass another plugin's guard.** Report the denial and the file; stop that\n  file.\n- **Never commit, push, tag or reset during the pass.** The guard denies it; after the\n  lock is released the diff is the user's to read and commit.\n- **Never release the lock with `--force` on your own decision.**\n- **Never launch a pass whose guard was not confirmed.** `--confirm-guard` failing is the\n  result, not an obstacle; `NACHARBEIT_DISABLE_GUARD=1` makes the guard unconfirmable on purpose.\n\n## Resources\n\n- `scripts\u002Fbuild_fix_args.py` (twice: open the lock, then `--confirm-guard`), `scripts\u002Fpost_fix_check.py` — run, in that order, around the workflow.\n- `workflows\u002Ffix.js` — read to understand the remediate \u002F verify \u002F repair loop; its baked copy is what runs.\n- `hooks\u002Fnacharbeit_guard.py` — the lock enforcement and the heartbeat; `hooks\u002Ftest_nacharbeit_guard.py` proves it denies and allows.\n- `references\u002Ffix-scope-schema.md` — read for the lock's fields and lifecycle.\n- `agents\u002Ffix-verifier.md` — the fallback verifier for sessions without the Workflow tool.\n","Rework the part to spec, then measure it again before it leaves the bench. Every edit\nin this pass is authorized by a lock the guard hook reads, verified by a model that\ndid not make it, and checked by a script that does not care who did.\n\n## Steps\n\n1. **Preflight.** Run `nacharbeit-preflight`. It must show `run.json=present`, no open\n   lock, and `own guard ... present, declared, denies`. A line reading `NOT LIVE` (an install\n   synced without `hooks\u002F`, or `NACHARBEIT_DISABLE_GUARD=1` set) means the pass would run\n   unguarded: stop and say so; `build_fix_args.py` refuses on it too. Name every other live guard: a denial from takt, lehre, andon, zeugnis,\n   befund or cupertino during this pass is reported as \"blocked by \u003Cplugin>\" and\n   never retried with that plugin's escape hatch.\n\n2. **Build the work items and open the lock:**\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fbuild_fix_args.py\" [--write-roots plugins\u002F tools\u002F]\n   ```\n\n   It refuses a review that is not completed and calibrated, and a lock that is already\n   open. On success it has written `analysis\u002Fnacharbeit\u002Ffix_scope.json` (every file the\n   review touched with its tier — see `references\u002Ffix-scope-schema.md`) and snapshotted each\n   plugin about to change to `analysis\u002Fnacharbeit\u002Fpre-fix\u002F`. It has **not** written\n   `fix-run.js`: that comes only after step 3 shows the guard fires. From this moment the\n   guard should deny any edit outside the lock, any edit to an opus- or human-tier file,\n   and any git state change. Tell the user the file count by tier and the excluded list.\n\n3. **Prove the guard fires** — as a separate command, so the hook sees it first:\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fbuild_fix_args.py\" --confirm-guard\n   ```\n\n   The guard writes `guard-heartbeat.json` on every call while the lock is open; this\n   bakes `fix-run.js` only if a heartbeat for *this* lock exists. Without one the hook is\n   not registered in this session: the script deletes the lock, writes nothing, and exits\n   1. Report that, name the likely cause (plugin installed without `hooks\u002F`, plugin\n   disabled, a session started before the hook was installed), and stop. Never launch a\n   hand-made `fix-run.js`.\n\n4. **Launch the pass** by the baked script path:\n\n   ```\n   Workflow({ scriptPath: \"analysis\u002Fnacharbeit\u002Ffix-run.js\" })\n   ```\n\n   Per file: a remediator at the file's tier applies the entries with Edit; a blind\n   sonnet verifier re-reads the file, quote-checks the pre-fix evidence, runs the file's\n   post-checks with Bash, and lists regressions; at most one sonnet repair round follows,\n   driven only by the verifier's rejections.\n\n   *Without the Workflow tool*: apply the entries of one file at a time yourself, in\n   tier order, then dispatch `fix-verifier` for that file before touching the next.\n   Never batch files into one dispatch.\n\n5. **Check the whole pass and release the lock:**\n\n   ```bash\n   python3 -B \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpost_fix_check.py\" --release-lock\n   ```\n\n   It re-runs every post-check, diffs each touched plugin's contracts (output paths,\n   settings files, env vars) against the pre-fix snapshot, and deletes the lock only when\n   nothing failed and nothing moved. A kept lock is the result, not an obstacle: fix what\n   it names, rerun, and only a person passes `--force`.\n\n   A post-check that cannot run is skipped by name, not failed and not passed: outside\n   werkstoff, a hook-script fix has no `hook-violation-\u003Cplugin>\u002F` fixture for\n   `verify_hooks_deny.py` to probe against, so that one check is listed under\n   `postChecks.skipped` in `fix-check.json` and as `WARN post-check skipped` on stderr\n   (the hook's unit test and `py_compile` still run). `clean: true` does not mean the skipped\n   check passed. Report each one, and say the hook was never behaviourally probed.\n\n6. **Report, hand off, stop.** List applied, skipped-with-reason, partially resolved and\n   regressed files; list every opus- and human-tier entry verbatim; state that the\n   changes are unverified beyond the post-checks and hand off to `andon:andon-verify` (or\n   `andon-loop` for a ledger-recorded proof) and a human diff read. Do not commit.\n\n## Output format\n\n```\nnacharbeit fix 2026-09-09T07:02:11Z (review 2026-09-09T06:12:04Z) — 41 files, 97 entries\n  guard confirmed: seen firing on a Bash call at 2026-09-09T07:02:40Z for lock 2026-09-09T07:02:11Z\n  resolved 33 · partially-resolved 4 · all-skipped 2 · regressions 1 · remediator-failed 0 · verifier-failed 1\n  regressions\n    plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py — post-check failed: hook unit test (2 cases) → repair round did not clear it\n  skipped with reason (7 entries)\n    plugins\u002Fandon\u002Fskills\u002Fandon-loop\u002FSKILL.md #2 — cross-file: the fix needs okf-ledger-schema.md to change first\n  excluded (never applied)\n    [opus ] plugins\u002Fzirkel\u002Fworkflows\u002Fsolve.js — design a real gate for each stage's output_contract\n    [human] plugins\u002Fandon\u002Fskills\u002Fandon-loop\u002FSKILL.md — decide whether scoped runs are supported at all\npost-fix check: 38 post-checks passed, 1 failed, 1 skipped; contracts andon=clean, lehre=clean\n  skipped plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py — hook denies and stays inert: no hook-violation-lehre\u002F under \u002Frepo\u002Ftest\u002Fplugins\u002Ffixtures\nlock: KEPT (1 failed post-check) — fix plugins\u002Flehre\u002Fhooks\u002Flehre_guard.py, rerun post_fix_check.py --release-lock\nUNVERIFIED beyond the post-checks. Next: andon-verify on the edited wires; read the diff before committing.\n```\n\n## Rules\n\n- **One file per remediator dispatch.** A dispatch that touches five files cannot be\n  reviewed as five decisions.\n- **Never apply an opus- or human-tier entry**, however small the diff would be. The\n  guard denies it; do not reach for `NACHARBEIT_DISABLE_GUARD=1`.\n- **Never bypass another plugin's guard.** Report the denial and the file; stop that\n  file.\n- **Never commit, push, tag or reset during the pass.** The guard denies it; after the\n  lock is released the diff is the user's to read and commit.\n- **Never release the lock with `--force` on your own decision.**\n- **Never launch a pass whose guard was not confirmed.** `--confirm-guard` failing is the\n  result, not an obstacle; `NACHARBEIT_DISABLE_GUARD=1` makes the guard unconfirmable on purpose.\n\n## Resources\n\n- `scripts\u002Fbuild_fix_args.py` (twice: open the lock, then `--confirm-guard`), `scripts\u002Fpost_fix_check.py` — run, in that order, around the workflow.\n- `workflows\u002Ffix.js` — read to understand the remediate \u002F verify \u002F repair loop; its baked copy is what runs.\n- `hooks\u002Fnacharbeit_guard.py` — the lock enforcement and the heartbeat; `hooks\u002Ftest_nacharbeit_guard.py` proves it denies and allows.\n- `references\u002Ffix-scope-schema.md` — read for the lock's fields and lifecycle.\n- `agents\u002Ffix-verifier.md` — the fallback verifier for sessions without the Workflow tool.\n",{"name":5,"description":7},"main","6158c1e4e112c06af2c7ac01b13b2ed7214c0fcf","plugins\u002Fnacharbeit\u002Fskills\u002Fnacharbeit-fix",0,"https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff","https:\u002F\u002Fanselmoo.github.io\u002Fwerkstoff\u002F","https:\u002F\u002Fgithub.com\u002FAnselmoo","Likes to Develop","2026-11-02 04:20:59",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add Anselmoo\u002Fwerkstoff --skill nacharbeit-fix",{"tool":39,"command":40},"bunx","bunx skills add Anselmoo\u002Fwerkstoff --skill nacharbeit-fix",{"tool":42,"command":43},"pnpm","pnpm dlx skills add Anselmoo\u002Fwerkstoff --skill nacharbeit-fix","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Fplugins\u002Fnacharbeit\u002Fskills\u002Fnacharbeit-fix\u002FSKILL.md",true,[],[48,55,62,67,72,77],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M79AJTRBNBX03WWKYJ8ENM45","toy-check","A skill that checks things in the repository and reports what it finds.","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Ftest\u002Fworkflows\u002Ffixtures\u002Ftoy-plugin\u002Fskills\u002Ftoy-check\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M79AJS292F3HTDRXWZVRSN5B","demo-check","Reports which generated files changed since the last generation run. Use when the user asks what drifted. Read-only; never edits a file.","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Ftest\u002Fplugins\u002Ffixtures\u002Fnacharbeit-uncompleted-run\u002Fplugins\u002Fdemo\u002Fskills\u002Fdemo-check\u002FSKILL.md",[],[],{"skillNo":63,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M79AJP4TFQXKT1AAK1WC1JYK","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Ftest\u002Fplugins\u002Ffixtures\u002Fnacharbeit-stale-lock\u002Fplugins\u002Fdemo\u002Fskills\u002Fdemo-check\u002FSKILL.md",[],[],{"skillNo":68,"name":57,"nameZh":6,"description":58,"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":71,"publishedAt":19},"01M79AJM6Y50WP3G2BR4H0M60Z","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Ftest\u002Fplugins\u002Ffixtures\u002Fnacharbeit-preflight-mixed\u002Fplugins\u002Fdemo\u002Fskills\u002Fdemo-check\u002FSKILL.md",[],[],{"skillNo":73,"name":57,"nameZh":6,"description":58,"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":19},"01M79AJGR6DMT8KCCK071V78XM","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Ftest\u002Fplugins\u002Ffixtures\u002Fnacharbeit-hooks-shape\u002Fplugins\u002Fdemo\u002Fskills\u002Fdemo-check\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M79AJBJ4CHC4PZVWKERWF3HF","zirkel-verify-assumptions","Checks exactly ONE named assumption against real evidence in at most 3 steps and reports one outcome: confidence raised (>=90), reading changed, or still unresolved. Use to resolve a single load-bearing uncertainty — typically a blocking entry surfaced by zirkel-clarify-scope: \"verify this one assumption\", \"is it actually true that X\", \"check this before we rely on it\". For multiple uncertainties, invoke once per uncertainty — the step budget is never shared.","https:\u002F\u002Fgithub.com\u002FAnselmoo\u002Fwerkstoff\u002Fblob\u002Fmain\u002Fplugins\u002Fzirkel\u002Fskills\u002Fzirkel-verify-assumptions\u002FSKILL.md",[],[]]