[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5CW7Y7G0YT8RZTMFWKBWH":3,"skill-same:01M6C5CW7Y7G0YT8RZTMFWKBWH":97},{"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":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6C5CW7Y7G0YT8RZTMFWKBWH","verify-before-plan",null,"Verify orchestrator premises (file counts, build state, artefact presence) before dispatching parallel subagents. Use when a wave's briefs cite a number, path, or behaviour not yet checked.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",60,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fagent-patterns-plugin\u002Fskills\u002Fverify-before-plan\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"verify","plan","verify before plan","read","2026","when","path","number","presence","opus","briefs","diff","use","subagents","orchestrator","view","status","grep","parallel","gh","gh pr","Bash","file","state","git","code","pr","2026-11-10 10:12:30",false,"---\nname: verify-before-plan\ndescription: Verify orchestrator premises (file counts, build state, artefact presence) before dispatching parallel subagents. Use when a wave's briefs cite a number, path, or behaviour not yet checked.\nallowed-tools: Read, Glob, Grep, Bash(git status *), Bash(git diff *), Bash(gh pr view *), TodoWrite\nmodel: opus\ncreated: 2026-05-14\nmodified: 2026-10-27\ncompatibility: claude-code\nreviewed: 2026-05-14\n---\n\n# Verify Before Plan\n\nA premise is anything the orchestrator's plan asserts about the world without\nhaving looked: \"there are 41 SKILL.md files that need editing,\" \"the\ndeprecated endpoint still has callers,\" \"build is green on main,\" \"the agent\nmust rewrite the manifest.\" Before a wave of parallel subagents fans out\nagainst that premise, **verify it with a small read-only probe**. A wrong\npremise propagates to every brief in the wave and wastes an entire wave's\nworth of work — restarting is the only honest salvage.\n\n## When to Use This Skill\n\n| Use this skill when... | Skip when... |\n|---|---|\n| About to dispatch ≥2 parallel agents whose briefs cite a number, state, or path | Single-agent delegation — verify inline |\n| The premise was carried in from an earlier message and not re-checked this session | The premise was produced by a tool call earlier in this same session |\n| The user's report describes a symptom; the plan cites a cause | Waves entirely independent of repo state (e.g. brainstorming) |\n| The plan assumes a tool\u002Flibrary\u002Fagent does X based on its name or docs | The behaviour is covered by a passing test the wave will re-run |\n| The plan inherits a premise from another agent's return contract | The return contract already cites file:line evidence for the premise |\n\nThis skill sits **before** `parallel-agent-dispatch` in the dispatch\nsequence. `parallel-agent-dispatch` covers the contract; this skill covers\nthe assumption the contract is built on.\n\n## The Verification Protocol\n\n### Step 1: Name the premise\n\nState the load-bearing facts in one or two sentences, in the form the wave's\nbriefs will reference. Numbers, paths, and \"does X\" claims must be explicit\n— \"all the affected plugins\" is not yet a premise.\n\n### Step 2: Pick the cheapest verifier\n\n| Premise shape | Verifier |\n|---|---|\n| File count \u002F \"N occurrences of …\" | `Glob` or `Grep -c` directly from the main thread |\n| \"Does this tool\u002Fagent do X?\" | Dispatch one read-only `general-purpose` agent: \"Report what `\u003Cthing>` actually does, with file:line citations\" |\n| \"Build is green \u002F artefact exists\" | One `Bash` call (`gh pr checks`, `ls path`, `git log --branches`) |\n| \"User's bug is X\" | Read the failing log; do not patch the symptom |\n| Manifest \u002F counter snapshot | `Read` the file and quote the relevant lines |\n\nInline the verifier if it is one to three tool calls. Use a one-shot\ninvestigation agent only when the answer requires multi-file synthesis.\n\n### Step 3: Verifier return contract\n\nThe verifier — whether inline calls or a dispatched agent — must report:\n\n```markdown\n## Premise\n\u003Cone-line restatement of what is being checked>\n\n## Evidence\n- file:line — \u003Cquoted finding>\n- file:line — \u003Cquoted finding>\n\n## Verdict\n- confirmed | refuted | partial: \u003Cwhat changed>\n- exact count \u002F value: \u003CN>\n- sample paths: \u003Cup to 5>\n\n## Implicit assumptions surfaced\n- \u003Cassumptions the verifier had to make to answer>\n- empty is fine — section must exist\n```\n\nRefuse to dispatch the wave until this report exists. \"I'll check while\ndispatching\" loses the salvage argument before it starts.\n\n### Step 4: Diff verdict against premise\n\nIf `confirmed`, dispatch as planned. If `refuted` or `partial`, revise the\nplan: shrink the file scope, re-allocate per-agent IDs, drop agents that no\nlonger have work, re-write the brief that cites the refuted fact. Only then\ndispatch.\n\n## Anti-patterns\n\n| Premise | How it fails | Verifier |\n|---|---|---|\n| \"There are 41 SKILL.md files needing edits\" | Actual was 28 — some plugins have no skills; 13 agents had empty briefs | `Glob(\"**\u002FSKILL.md\")` then count |\n| \"git-repo-agent supports X\" (from the name) | Name ≠ behaviour; agent did not implement X | Read `agents\u002Fgit-repo-agent\u002FSKILL.md` |\n| \"The user says the bug is X\" | Bug was a config typo two layers up; the X patch did nothing | Read the failing log \u002F repro |\n| \"The plan says clear stuck Jobs\" | Real root cause was an IdP password mismatch in ConfigMap; jobs were a symptom | Re-spelunk with one read-only agent |\n| \"Manifest counter is at WO-012\" | Counter was bumped by a coworker mid-session | `Read` the manifest as the last act before allocation |\n| \"Build is green\" (from morning standup) | Broke an hour ago; one wave-member tripped over the failing step | `gh pr checks` or `gh run list` |\n| \"All callers of the deprecated API are gone\" | Two remained in a vendored copy outside the search root | `Grep` with a wide-enough path |\n\nThe unifying pattern: **the premise was true at some past moment, but the\ncurrent session has not confirmed it.** Time is the silent invalidator.\n\n## Composition\n\n| With … | Slot it in by … |\n|---|---|\n| `parallel-agent-dispatch` | Verify before the worktree-preflight; preflight assumes the file scope is right |\n| `wave-based-dispatch` | Verify per wave — a Phase-1 wave's return contract is a premise for Phase 2 |\n| `exclusive-lock-dispatch` | Verify the lock-holder list is current; locks come and go |\n| `agent-teams` | The Lead Preflight Checklist's \"file-scope and pin-budget\" entries are premises |\n\n## Quick Reference\n\n### Orchestrator checklist (before any parallel dispatch)\n\n- [ ] Premise named in one or two sentences with numbers and paths\n- [ ] Verifier picked (inline call ≤ 3, otherwise one read-only agent)\n- [ ] Verifier return contract followed (Premise \u002F Evidence \u002F Verdict \u002F Assumptions)\n- [ ] Verdict `confirmed` — or plan revised before dispatch\n- [ ] Implicit assumptions logged for the wave's briefs\n\n### Common mistakes\n\n| Mistake | Correct approach |\n|---|---|\n| \"Based on the name, X probably does Y\" | Dispatch a read-only probe; cite file:line |\n| \"The user says the bug is X, so we patch X\" | Read the failing repro before any patch |\n| \"The plan's remediation is X\" | Verify the plan's premise; remediations inherit its truth-value |\n| Verifying after dispatch (\"I'll check while they work\") | Verify first — re-running a wave costs more than the probe |\n| Skipping the Verdict line — just summarising | The wave's briefs need a copy-pasteable fact, not a narrative |\n\n## Workflow harness (template)\n\n`workflows\u002Frecon-map.workflow.js` ships beside this skill.\n**It is a TEMPLATE to adapt, not a script to run verbatim.** Read it, then rewrite it for the\nwork in front of you. It scales this skill's premise check up to a whole repo, issue, PRD slice or portfolio: read-only mappers produce\ncited claims, then an optional critic, up to three gap-fillers, a verifier and a synthesizer turn\nthem into verified facts and PR-sized work items. The result is returned, and the synthesizer\nalso writes it to `\u003Cscratch>\u002Frecon.json` when it runs (`tail.synth: false` writes nothing there);\nnothing is committed, pushed or commented.\n\n**Prefer a deterministic unit list.** The width of the Map fan-out should come from a list that\nalready exists: story files, the claims in an issue, the rows of a coverage script, the repos in a\ngathered summary. Hand-picked lenses (\"one reader per subsystem\") are accepted, because the\nharness earns its cost from the barrier, the verifier and the coverage gate rather than from the\npartition. But a model-invented N is the weaker case (`.claude\u002Frules\u002Fworkflow-vs-skill.md`, axis 1),\nso pass `units_source: 'hand-picked'` to have the run log it.\n\n**Adapt freely:** the prompts and `context`, the per-unit `brief` and tier (`opus`, `sonnet`, or\n`haiku` for a lean reader over pre-dumped `inputs`), `unit_kind` (`claims`, `ac`, `findings`), the\n`tail` switches, `coverage_cmd`, and the three caps. Effort is fixed per tier (haiku `medium`,\nsonnet and opus `high`) so each call site stays checkable: a unit's own `effort` is ignored and\nlogged, and a unit model outside `opus | sonnet | haiku` aborts with `bad-unit-model` rather than\nrunning as opus. Under `unit_kind: 'ac'` a missing AC must cite its negative evidence (the search\nplus its empty result, and the closest file:line) in `headRefs`, or it is dropped as uncited.\n\n**Agent budget:** 6 + 1 x units — Map spends one agent per unit (at most 10); the fixed 6 are the critic, three gap-fillers, the verifier and the synthesizer. The worst case is 16.\n\n**Preserve across any adaptation:** (a) the loop bound is the caller's `units`, cut by\n`UNITS.slice(0, 10)` in the fan-out, with every dropped key logged and returned as `dropped_units`;\ngap-fill is cut by `slice(0, 3)` and the rest come back as `unfilled_gaps`; (b) every agent is\nread-only and every claim cites a file:line, an address, or a command plus its output; an item\nwith no evidence is dropped in JS before Verify and Synthesize; (c) the closed verdict enum\n`confirmed | adjusted | rejected | unverifiable`, where a dead verifier or a missing verdict is\n`unverifiable`, never `confirmed`, and a rejected item never reaches the synthesizer. An item the\nverify mode did not select gets a fifth, harness-assigned state, `not-checked`, which sits outside\nthe verifier's enum: the synthesizer may build on it but never calls it confirmed. A claim the\nverifier cannot reproduce defaults to `unverifiable`, not `rejected`: it reaches the synthesizer\nas an open question, so a verifier that lacked access cannot silently delete a true claim; (d) every\nitem from a haiku unit goes to the opus verifier whatever the verify mode; (e) the critic,\nverifier and synthesizer are barriers, because each judges coverage or consistency across every\nreport. The behaviour is pinned by `scripts\u002Ftests\u002Ftest-recon-map.sh`.\n\n**Skip the harness when:** the premise is one fact a few tool calls can check\n([Step 2](#step-2-pick-the-cheapest-verifier)), or there is a single unit with no tail. That is a\nlinear pass, and the harness is pure overhead. [The Verification Protocol](#the-verification-protocol)\nremains the authoritative description of *what* a verification must produce; the harness only\nfixes *how* the work is split.\n\n## Related\n\n- [`parallel-agent-dispatch`](..\u002Fparallel-agent-dispatch\u002FSKILL.md) — the\n  dispatch contract whose preflight this skill protects\n- [`wave-based-dispatch`](..\u002Fwave-based-dispatch\u002FSKILL.md) — per-wave\n  premise verification fits cleanly between phases\n- [`exclusive-lock-dispatch`](..\u002Fexclusive-lock-dispatch\u002FSKILL.md) — lock\n  inventory is itself a premise\n- `.claude\u002Frules\u002Fregression-testing.md` — landing a verifier as a script\n  check when a premise-failure recurs\n- Motivating evidence: [issue #1283](https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fissues\u002F1283)\n  — aggregate `wrong_approach` and `initial_misdiagnosis` signals across\n  284 sessions\n","# Verify Before Plan\n\nA premise is anything the orchestrator's plan asserts about the world without\nhaving looked: \"there are 41 SKILL.md files that need editing,\" \"the\ndeprecated endpoint still has callers,\" \"build is green on main,\" \"the agent\nmust rewrite the manifest.\" Before a wave of parallel subagents fans out\nagainst that premise, **verify it with a small read-only probe**. A wrong\npremise propagates to every brief in the wave and wastes an entire wave's\nworth of work — restarting is the only honest salvage.\n\n## When to Use This Skill\n\n| Use this skill when... | Skip when... |\n|---|---|\n| About to dispatch ≥2 parallel agents whose briefs cite a number, state, or path | Single-agent delegation — verify inline |\n| The premise was carried in from an earlier message and not re-checked this session | The premise was produced by a tool call earlier in this same session |\n| The user's report describes a symptom; the plan cites a cause | Waves entirely independent of repo state (e.g. brainstorming) |\n| The plan assumes a tool\u002Flibrary\u002Fagent does X based on its name or docs | The behaviour is covered by a passing test the wave will re-run |\n| The plan inherits a premise from another agent's return contract | The return contract already cites file:line evidence for the premise |\n\nThis skill sits **before** `parallel-agent-dispatch` in the dispatch\nsequence. `parallel-agent-dispatch` covers the contract; this skill covers\nthe assumption the contract is built on.\n\n## The Verification Protocol\n\n### Step 1: Name the premise\n\nState the load-bearing facts in one or two sentences, in the form the wave's\nbriefs will reference. Numbers, paths, and \"does X\" claims must be explicit\n— \"all the affected plugins\" is not yet a premise.\n\n### Step 2: Pick the cheapest verifier\n\n| Premise shape | Verifier |\n|---|---|\n| File count \u002F \"N occurrences of …\" | `Glob` or `Grep -c` directly from the main thread |\n| \"Does this tool\u002Fagent do X?\" | Dispatch one read-only `general-purpose` agent: \"Report what `\u003Cthing>` actually does, with file:line citations\" |\n| \"Build is green \u002F artefact exists\" | One `Bash` call (`gh pr checks`, `ls path`, `git log --branches`) |\n| \"User's bug is X\" | Read the failing log; do not patch the symptom |\n| Manifest \u002F counter snapshot | `Read` the file and quote the relevant lines |\n\nInline the verifier if it is one to three tool calls. Use a one-shot\ninvestigation agent only when the answer requires multi-file synthesis.\n\n### Step 3: Verifier return contract\n\nThe verifier — whether inline calls or a dispatched agent — must report:\n\n```markdown\n## Premise\n\u003Cone-line restatement of what is being checked>\n\n## Evidence\n- file:line — \u003Cquoted finding>\n- file:line — \u003Cquoted finding>\n\n## Verdict\n- confirmed | refuted | partial: \u003Cwhat changed>\n- exact count \u002F value: \u003CN>\n- sample paths: \u003Cup to 5>\n\n## Implicit assumptions surfaced\n- \u003Cassumptions the verifier had to make to answer>\n- empty is fine — section must exist\n```\n\nRefuse to dispatch the wave until this report exists. \"I'll check while\ndispatching\" loses the salvage argument before it starts.\n\n### Step 4: Diff verdict against premise\n\nIf `confirmed`, dispatch as planned. If `refuted` or `partial`, revise the\nplan: shrink the file scope, re-allocate per-agent IDs, drop agents that no\nlonger have work, re-write the brief that cites the refuted fact. Only then\ndispatch.\n\n## Anti-patterns\n\n| Premise | How it fails | Verifier |\n|---|---|---|\n| \"There are 41 SKILL.md files needing edits\" | Actual was 28 — some plugins have no skills; 13 agents had empty briefs | `Glob(\"**\u002FSKILL.md\")` then count |\n| \"git-repo-agent supports X\" (from the name) | Name ≠ behaviour; agent did not implement X | Read `agents\u002Fgit-repo-agent\u002FSKILL.md` |\n| \"The user says the bug is X\" | Bug was a config typo two layers up; the X patch did nothing | Read the failing log \u002F repro |\n| \"The plan says clear stuck Jobs\" | Real root cause was an IdP password mismatch in ConfigMap; jobs were a symptom | Re-spelunk with one read-only agent |\n| \"Manifest counter is at WO-012\" | Counter was bumped by a coworker mid-session | `Read` the manifest as the last act before allocation |\n| \"Build is green\" (from morning standup) | Broke an hour ago; one wave-member tripped over the failing step | `gh pr checks` or `gh run list` |\n| \"All callers of the deprecated API are gone\" | Two remained in a vendored copy outside the search root | `Grep` with a wide-enough path |\n\nThe unifying pattern: **the premise was true at some past moment, but the\ncurrent session has not confirmed it.** Time is the silent invalidator.\n\n## Composition\n\n| With … | Slot it in by … |\n|---|---|\n| `parallel-agent-dispatch` | Verify before the worktree-preflight; preflight assumes the file scope is right |\n| `wave-based-dispatch` | Verify per wave — a Phase-1 wave's return contract is a premise for Phase 2 |\n| `exclusive-lock-dispatch` | Verify the lock-holder list is current; locks come and go |\n| `agent-teams` | The Lead Preflight Checklist's \"file-scope and pin-budget\" entries are premises |\n\n## Quick Reference\n\n### Orchestrator checklist (before any parallel dispatch)\n\n- [ ] Premise named in one or two sentences with numbers and paths\n- [ ] Verifier picked (inline call ≤ 3, otherwise one read-only agent)\n- [ ] Verifier return contract followed (Premise \u002F Evidence \u002F Verdict \u002F Assumptions)\n- [ ] Verdict `confirmed` — or plan revised before dispatch\n- [ ] Implicit assumptions logged for the wave's briefs\n\n### Common mistakes\n\n| Mistake | Correct approach |\n|---|---|\n| \"Based on the name, X probably does Y\" | Dispatch a read-only probe; cite file:line |\n| \"The user says the bug is X, so we patch X\" | Read the failing repro before any patch |\n| \"The plan's remediation is X\" | Verify the plan's premise; remediations inherit its truth-value |\n| Verifying after dispatch (\"I'll check while they work\") | Verify first — re-running a wave costs more than the probe |\n| Skipping the Verdict line — just summarising | The wave's briefs need a copy-pasteable fact, not a narrative |\n\n## Workflow harness (template)\n\n`workflows\u002Frecon-map.workflow.js` ships beside this skill.\n**It is a TEMPLATE to adapt, not a script to run verbatim.** Read it, then rewrite it for the\nwork in front of you. It scales this skill's premise check up to a whole repo, issue, PRD slice or portfolio: read-only mappers produce\ncited claims, then an optional critic, up to three gap-fillers, a verifier and a synthesizer turn\nthem into verified facts and PR-sized work items. The result is returned, and the synthesizer\nalso writes it to `\u003Cscratch>\u002Frecon.json` when it runs (`tail.synth: false` writes nothing there);\nnothing is committed, pushed or commented.\n\n**Prefer a deterministic unit list.** The width of the Map fan-out should come from a list that\nalready exists: story files, the claims in an issue, the rows of a coverage script, the repos in a\ngathered summary. Hand-picked lenses (\"one reader per subsystem\") are accepted, because the\nharness earns its cost from the barrier, the verifier and the coverage gate rather than from the\npartition. But a model-invented N is the weaker case (`.claude\u002Frules\u002Fworkflow-vs-skill.md`, axis 1),\nso pass `units_source: 'hand-picked'` to have the run log it.\n\n**Adapt freely:** the prompts and `context`, the per-unit `brief` and tier (`opus`, `sonnet`, or\n`haiku` for a lean reader over pre-dumped `inputs`), `unit_kind` (`claims`, `ac`, `findings`), the\n`tail` switches, `coverage_cmd`, and the three caps. Effort is fixed per tier (haiku `medium`,\nsonnet and opus `high`) so each call site stays checkable: a unit's own `effort` is ignored and\nlogged, and a unit model outside `opus | sonnet | haiku` aborts with `bad-unit-model` rather than\nrunning as opus. Under `unit_kind: 'ac'` a missing AC must cite its negative evidence (the search\nplus its empty result, and the closest file:line) in `headRefs`, or it is dropped as uncited.\n\n**Agent budget:** 6 + 1 x units — Map spends one agent per unit (at most 10); the fixed 6 are the critic, three gap-fillers, the verifier and the synthesizer. The worst case is 16.\n\n**Preserve across any adaptation:** (a) the loop bound is the caller's `units`, cut by\n`UNITS.slice(0, 10)` in the fan-out, with every dropped key logged and returned as `dropped_units`;\ngap-fill is cut by `slice(0, 3)` and the rest come back as `unfilled_gaps`; (b) every agent is\nread-only and every claim cites a file:line, an address, or a command plus its output; an item\nwith no evidence is dropped in JS before Verify and Synthesize; (c) the closed verdict enum\n`confirmed | adjusted | rejected | unverifiable`, where a dead verifier or a missing verdict is\n`unverifiable`, never `confirmed`, and a rejected item never reaches the synthesizer. An item the\nverify mode did not select gets a fifth, harness-assigned state, `not-checked`, which sits outside\nthe verifier's enum: the synthesizer may build on it but never calls it confirmed. A claim the\nverifier cannot reproduce defaults to `unverifiable`, not `rejected`: it reaches the synthesizer\nas an open question, so a verifier that lacked access cannot silently delete a true claim; (d) every\nitem from a haiku unit goes to the opus verifier whatever the verify mode; (e) the critic,\nverifier and synthesizer are barriers, because each judges coverage or consistency across every\nreport. The behaviour is pinned by `scripts\u002Ftests\u002Ftest-recon-map.sh`.\n\n**Skip the harness when:** the premise is one fact a few tool calls can check\n([Step 2](#step-2-pick-the-cheapest-verifier)), or there is a single unit with no tail. That is a\nlinear pass, and the harness is pure overhead. [The Verification Protocol](#the-verification-protocol)\nremains the authoritative description of *what* a verification must produce; the harness only\nfixes *how* the work is split.\n\n## Related\n\n- [`parallel-agent-dispatch`](..\u002Fparallel-agent-dispatch\u002FSKILL.md) — the\n  dispatch contract whose preflight this skill protects\n- [`wave-based-dispatch`](..\u002Fwave-based-dispatch\u002FSKILL.md) — per-wave\n  premise verification fits cleanly between phases\n- [`exclusive-lock-dispatch`](..\u002Fexclusive-lock-dispatch\u002FSKILL.md) — lock\n  inventory is itself a premise\n- `.claude\u002Frules\u002Fregression-testing.md` — landing a verifier as a script\n  check when a premise-failure recurs\n- Motivating evidence: [issue #1283](https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fissues\u002F1283)\n  — aggregate `wrong_approach` and `initial_misdiagnosis` signals across\n  284 sessions\n",{"name":5,"model":28,"created":51,"modified":52,"reviewed":51,"description":7,"allowed-tools":53,"compatibility":54},1778716800000,1793059200000,"Read, Glob, Grep, Bash(git status *), Bash(git diff *), Bash(gh pr view *), TodoWrite","claude-code","main","bdd0582f1a2ba53d21061835bfd72d45f2f954f4","agent-patterns-plugin\u002Fskills\u002Fverify-before-plan",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-13 20:24:11",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add laurigates\u002Fclaude-plugins --skill verify-before-plan",{"tool":69,"command":70},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill verify-before-plan",{"tool":72,"command":73},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill verify-before-plan","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fagent-patterns-plugin\u002Fskills\u002Fverify-before-plan\u002FSKILL.md",true,[77,83,89,93],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fdependency-injection-api.md","REFERENCE","参考文档",4236,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fdotnet-skills\u002Fplugins\u002Fdotnet-maui\u002Fskills\u002Fmaui-dependency-injection\u002Freferences\u002Fdependency-injection-api.md",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Ftests\u002Frun-recon-map.mjs","SCRIPT","脚本",20278,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fagent-patterns-plugin\u002Fskills\u002Fverify-before-plan\u002Fscripts\u002Ftests\u002Frun-recon-map.mjs",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Ftests\u002Ftest-recon-map.sh",1830,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fagent-patterns-plugin\u002Fskills\u002Fverify-before-plan\u002Fscripts\u002Ftests\u002Ftest-recon-map.sh",{"path":94,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":96},"workflows\u002Frecon-map.workflow.js",26434,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fagent-patterns-plugin\u002Fskills\u002Fverify-before-plan\u002Fworkflows\u002Frecon-map.workflow.js",[98,124,145,161,184,214],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":109,"publishedAt":46},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[110,111,112,113,114,115,116,117,118,119,31,24,40,41,120,121,122,123,23,22],"show","kitty show image","image","kitty","show image","ls","get","send","open","dev","text","with","xdg","via",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":46},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[113,131,132,133,134,135,24,40,136,137,138,23,22,139,140,141,142,143,144,31],"kitty session persistence","session","persistence","false","snapshots","uname","reboot","terminal","write","edit","snapshot","macos","sessions","restore",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":46},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[152,153,113,154,155,115,156,157,116,158,159,31,24,160,40,120,121,138,23,22],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":46},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[168,169,170,171,172,173,174,175,176,177,31,24,40,178,41,179,180,181,182,183],"docs reference check","check","reference check","reference","docs","links","python3","repo","files","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":199,"publishedAt":46},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[190,193,194],{"categoryNo":191,"categoryName":192,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},{"categoryNo":195,"categoryName":196,"taxonomyType":197,"taxonomyTypeDesc":198},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[200,201,202,203,174,204,22,205,140,206,207,208,31,40,41,209,210,24,211,212,213,123,23],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":223,"publishedAt":46},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[220],{"categoryNo":221,"categoryName":222,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000023","Skill与智能体开发",[224,225,226,227,202,203,228,229,230,231,232,22,233,234,235,236,31,237,24,121,238,23],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]