feat(model-router): wave 2-B — orchestrators declare phases, shifters and pins removed, frontmatter = off-state floor
The 15 Skill(effort-*) citers now call mcp__model-router__route per phase (orchestrate at a dispatch span, reflect/plan for the skill's own level, apply at the bookkeeping tail, escalate at the verify-secure caps); built-in judgment dispatches carry an explicit effort= param. lib/effort-shift.md is the route doctrine, lib/model-gate.md the mod rule (route answer = witness, /route on as remedy). Deleted: skills/effort-*, lib/effort-pins.txt/.sh, lib/model-check.sh, their tests, the installers' re-apply blocks. The mod drops its Skill(effort-*) bridge. The tracked model:/effort: frontmatter stays as the off-state floor, census-locked equal to the rows (lib/tests/effort-routing.test.sh rewritten, 140 checks; analyzer → xhigh). Contract .claude/tasks/contracts/2026-10-10-model-router-w2b-1045.md, plan r4 § W2-B: GATE 0 MET, verifier ECARTS(7) then CONFORME 10/10, security PASS, full make test green (design-tool-gate env red only).
This commit is contained in:
@@ -29,7 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
Audit only what changed since the last run, on the axes the user picks.
|
||||
Per axis: **audit → approval gate → fix → re-verify → marker update**,
|
||||
@@ -170,7 +170,7 @@ Then show the user the same compact table inline.
|
||||
|
||||
### 3b-bis. CHALLENGE THE PROPOSALS (before the gate)
|
||||
|
||||
`Skill(effort-xhigh)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="plan")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
This axis' findings + proposed fixes are a proposal set worth attacking before
|
||||
the human gate. Persist THIS axis' finding list (not the whole append-only
|
||||
report) to `.claude/tasks/plans/<date>-<axis>-<HHMM>.md`, then run
|
||||
@@ -256,7 +256,7 @@ Then offer to capitalize (per CLAUDE.md): recurring finding patterns →
|
||||
below on the same delta (the SAST is a deterministic floor, the reasoned
|
||||
pass covers what grep/rules miss):
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="security-auditor", description="audit-delta security — semgrep SAST",
|
||||
prompt="MODE: audit\nSCOPE: <delta file list>\nREPORT: .claude/audits/.audit-delta-semgrep.md\nFollow agents/security-auditor.md exactly. Pinned rulesets, no login. Write ONLY to REPORT. End with REPORT_WRITTEN: <path>.")
|
||||
```
|
||||
|
||||
@@ -26,7 +26,7 @@ allowed-tools:
|
||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||
turn, dispatch nothing.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -119,14 +119,14 @@ RISK: <low/medium — what could go wrong>
|
||||
obvious fix.
|
||||
- If the fix is significant (>10 lines, multiple files,
|
||||
behavior change): wait for user approval.
|
||||
On resume: `Skill(effort-high)` first, sent with the next tool call (effort-shift: turn reset).
|
||||
On resume: `mcp__model-router__route(phase="reflect")` first (route: resumed turn).
|
||||
- Then run pass B of `$HOME/.claude/lib/contract-interview.md` against the
|
||||
FIX PLAN: every VISIBLE / PUBLIC NAME / SCOPE choice it settles that the
|
||||
bug report left open → one batch of questions, before STEP 3b. The trivial
|
||||
fast-path is not exempt: a 1-line fix with a visible choice still asks.
|
||||
|
||||
## STEP 3b — CHALLENGE THE FIX PLAN (before the contract)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Unless the fix is the trivial 1-2 line case STEP 3 already fast-paths, the
|
||||
DIAGNOSIS + FIX PLAN is a reflection worth attacking before it hardens into a
|
||||
contract. Persist it to `.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||
@@ -157,10 +157,10 @@ branch it's a no-op (commit in place). Never `finish`.
|
||||
|
||||
## STEP 5 — DISPATCH EXECUTOR
|
||||
|
||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||
Dispatch the executor — sonnet by its row (frontmatter = off-state floor), do not override:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="bugfixer")
|
||||
prompt: "CONTRACT: <path from STEP 3.5>
|
||||
DIAGNOSIS: <ROOT CAUSE + EVIDENCE from STEP 3>
|
||||
@@ -282,7 +282,7 @@ A bugfix with an understood root cause is almost always worth one entry:
|
||||
|
||||
If the bug was trivial and the root cause not transferable → skip with `CAPITALIZE: trivial, skip`.
|
||||
|
||||
`Skill(effort-low)` first (effort-shift: bookkeeping tail; send it in the same message as the memory-commit command).
|
||||
`mcp__model-router__route(phase="apply")` first (route: bookkeeping tail; send it with the memory-commit command).
|
||||
|
||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||
|
||||
@@ -26,7 +26,7 @@ allowed-tools:
|
||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||
turn, dispatch nothing.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## TARGET
|
||||
$ARGUMENTS
|
||||
@@ -122,7 +122,7 @@ TOTALS: <N blocking, N warn, N info>
|
||||
If no issues found: report clean state and stop.
|
||||
|
||||
## STEP 3b — CHALLENGE THE SCOPE (before approval)
|
||||
`Skill(effort-xhigh)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="plan")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
The STEP 3 report is the proposed cleanup scope — worth attacking before the
|
||||
human approves it. It is still inline, so FIRST persist it to
|
||||
`.claude/tasks/plans/<date>-<slug>-<HHMM>.md` (STEP 3 report format, one item
|
||||
@@ -172,10 +172,10 @@ is approved, stop — no dispatch.
|
||||
severity — proposed fix`. This is the executor's scope-of-work on
|
||||
disk — named, auditable, the same contract discipline as the dev
|
||||
gates (verifier reads its contract from disk).
|
||||
2. **Dispatch the executor** — sonnet by frontmatter pin, do not override:
|
||||
2. **Dispatch the executor** — sonnet by its row (frontmatter = off-state floor), do not override:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="code-cleaner")
|
||||
prompt: "SCOPE: .claude/audits/CODE-CLEAN-SCOPE.md
|
||||
APPROVED: <the approved item list, incl. any per-item exported-symbol clears>
|
||||
|
||||
@@ -73,7 +73,7 @@ $ARGUMENTS"
|
||||
|
||||
(`model="opus"` — BDR-077: propose = narrative reconstruction + capitalize
|
||||
routing, judgment tier; the call-site override takes precedence over the
|
||||
sonnet frontmatter pin. Apply, STEP 4, stays on the pin.)
|
||||
sonnet row (frontmatter = off-state floor). Apply, STEP 4, stays on its row.)
|
||||
|
||||
Read the returned `COMMIT PLAN` + `EDGE CASES` + `CAPITALIZE CANDIDATES`,
|
||||
terminated by `READY TO APPLY — awaiting dispatcher confirmation`.
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
name: effort-high
|
||||
description: Investigation shift. Deeper reasoning for diagnosis, LOCATE, contract drafting, refactor judgement inside feat, hotfix and bugfix runs.
|
||||
effort: high
|
||||
---
|
||||
Effort shifted to high for the rest of this turn (lib/effort-shift.md). Continue with the caller's next step.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
name: effort-low
|
||||
description: Bookkeeping shift. Lowers reasoning to the cheapest level for the rest of the turn: journal lines, memory commits, capitalize, release bookkeeping, status output.
|
||||
effort: low
|
||||
---
|
||||
Effort shifted to low for the rest of this turn (lib/effort-shift.md). Continue with the caller's next step.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
name: effort-max
|
||||
description: Escalation shift. Maximum reasoning when a verify or security loop hits its cap, a gate fails twice, or error recovery starts in ship-feature.
|
||||
effort: max
|
||||
---
|
||||
Effort shifted to max for the rest of this turn (lib/effort-shift.md). Continue with the caller's next step.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
name: effort-medium
|
||||
description: Orchestration shift. Standard reasoning between two dispatches: read a subagent report, pick the next step, relay a gate verdict, route a branch.
|
||||
effort: medium
|
||||
---
|
||||
Effort shifted to medium for the rest of this turn (lib/effort-shift.md). Continue with the caller's next step.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
name: effort-xhigh
|
||||
description: Reflection shift. Deep reasoning for brainstorm, planning, challenge synthesis and audit verdicts before a human validation gate.
|
||||
effort: xhigh
|
||||
---
|
||||
Effort shifted to xhigh for the rest of this turn (lib/effort-shift.md). Continue with the caller's next step.
|
||||
@@ -26,7 +26,7 @@ allowed-tools:
|
||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||
turn, dispatch nothing.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -124,7 +124,7 @@ in the contract's CLARIFICATIONS `[gated]` and in the plan. A choice that
|
||||
surfaces only during execution comes back as `NEED-DECISION` (STEP 3).
|
||||
|
||||
## STEP 1b — CHALLENGE THE PLAN (before branching)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
The STEP 1 plan is a reflection worth attacking before a branch is spent on it.
|
||||
Persist it to `.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = that file, `KIND` = `build-plan`,
|
||||
@@ -143,10 +143,10 @@ branch it's a no-op (commit in place). Never `finish`.
|
||||
|
||||
## STEP 3 — DISPATCH EXECUTOR
|
||||
|
||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||
Dispatch the executor — sonnet by its row (frontmatter = off-state floor), do not override:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="feater")
|
||||
prompt: "CONTRACT: <path from STEP 0.7>
|
||||
PLAN: <the STEP 1 checklist + approach bullets + edge cases, verbatim>
|
||||
@@ -203,7 +203,7 @@ test), consider splitting into 2-3 atomic commits grouped by logical
|
||||
unit — or run `/commit-change` on the pending work (it dispatches the
|
||||
commit-changer (propose opus / apply sonnet, BDR-077); never inline-load the bare agent, it is now a
|
||||
propose/apply executor).
|
||||
Then `Skill(effort-high)` (effort-shift: nested commit-change loaded at low; reload feat's level, sent with the next tool call).
|
||||
Then `mcp__model-router__route(phase="reflect")` (route: nested commit-change loaded at apply; reload feat's level).
|
||||
|
||||
Print summary:
|
||||
```
|
||||
@@ -254,7 +254,7 @@ Always append a 1-line entry to today's heading in `.claude/memory/journal.md`.
|
||||
|
||||
If no substantive capture candidate → skip with `CAPITALIZE: nothing to log`.
|
||||
|
||||
`Skill(effort-low)` first (effort-shift: bookkeeping tail; send it in the same message as the memory-commit command).
|
||||
`mcp__model-router__route(phase="apply")` first (route: bookkeeping tail; send it with the memory-commit command).
|
||||
|
||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||
|
||||
+4
-4
@@ -29,7 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
Dispatches the `geo-analyzer` subagent (audit + fix bundle), then applies
|
||||
the bundle from THIS main loop at **L1** — same shape as `/web-validate`
|
||||
@@ -47,7 +47,7 @@ every phase (LRN-126). Clean `.audit/geo-signals-<RUNID>.md` after apply.
|
||||
|
||||
**A — collect (sonnet):**
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="geo-analyzer", model="sonnet")
|
||||
prompt: "MODE: collect
|
||||
RUNID: <RUNID>
|
||||
@@ -86,7 +86,7 @@ your bundle."
|
||||
```
|
||||
|
||||
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
The analyzer returned a `## FIX BUNDLE` — worth attacking before any edit lands.
|
||||
**Skip if intervention mode = conservative** (nothing is applied). Else persist the
|
||||
bundle verbatim to `.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||
@@ -118,7 +118,7 @@ intent, not header wording: **AUTO** = no-confirmation items (G1–G4/G6);
|
||||
For each AUTO item, dispatch its `applier` at L1, passing the item verbatim:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
||||
prompt: "<paste the bundle item: files, concern, current, expected,
|
||||
framework note + shared-file discipline>.
|
||||
|
||||
@@ -29,7 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
This skill orchestrates a narrow-scope hardening audit: TLS + security
|
||||
headers + redirects + canonical + custom 404 + server configs. It
|
||||
@@ -261,7 +261,7 @@ seo-analyzer will run in parallel.
|
||||
Spawn a single seo-analyzer subagent with an explicit IN/OUT scope list.
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(
|
||||
subagent_type="seo-analyzer",
|
||||
description="harden — narrow-scope web hardening audit",
|
||||
@@ -522,7 +522,7 @@ Extract the score and critical-alert count from `.claude/audits/HARDEN.md` for t
|
||||
---
|
||||
|
||||
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Skip if MODE=audit (no bundle exists). Else, before the STEP 3 gate, harden the bundle:
|
||||
extract the `## 8. Fix bundle` section from HARDEN.md to
|
||||
`.claude/tasks/plans/<date>-<slug>-<HHMM>.md` (a clean, blind-judgeable artifact), then run
|
||||
|
||||
@@ -24,7 +24,7 @@ allowed-tools:
|
||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||
turn, dispatch nothing.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -94,7 +94,7 @@ point. Run it ONLY when the settled fix touches control flow or behaviour — an
|
||||
off-by-one, a wrong operator/variable, a behaviour-changing config value, or a
|
||||
missing import that alters execution. In doubt → it is probably a `/bugfix`.
|
||||
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
For a logic fix: persist the STEP 1 located fix (root cause + the exact edit) to
|
||||
`.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = that file, `KIND` =
|
||||
@@ -135,10 +135,10 @@ mentioned: STOP and ask `"working tree dirty: stash and continue, or abort?"`.
|
||||
|
||||
## STEP 3 — DISPATCH EXECUTOR
|
||||
|
||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||
Dispatch the executor — sonnet by its row (frontmatter = off-state floor), do not override:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="hotfixer")
|
||||
prompt: "CONTRACT: <path from STEP 1.7>
|
||||
LOCATED: <file(s) found in STEP 1 + the confirmed root cause>
|
||||
@@ -236,7 +236,7 @@ Always append a 1-line entry to today's heading in `.claude/memory/journal.md` (
|
||||
|
||||
**Language rule**: the journal line and any proposed BLK/LRN entries are ALWAYS written English AND caveman — fragments, articles dropped, code/IDs/quoted errors verbatim — per CLAUDE.md "Memory registries" (Always English, always caveman).
|
||||
|
||||
`Skill(effort-low)` first (effort-shift: bookkeeping tail; send it in the same message as the memory-commit command).
|
||||
`mcp__model-router__route(phase="apply")` first (route: bookkeeping tail; send it with the memory-commit command).
|
||||
|
||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||
|
||||
@@ -14,7 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -181,12 +181,12 @@ This is the deterministic scaffold commit owner (closes BLK-010). The MVP is
|
||||
implemented on a `feature/*` branch off `develop` (STEP 8).
|
||||
|
||||
## STEP 6 — PLAN
|
||||
`Skill(effort-xhigh)` first, sent with the next tool call (effort-shift: turn reset; gate #1 ended the turn and the vendored `writing-plans` pin applies only when the user invokes it).
|
||||
`mcp__model-router__route(phase="plan")` first (route: resumed turn; gate #1 ended the turn).
|
||||
Invoke `writing-plans` (vendored superpowers skill) with BRIEF + skeleton.
|
||||
Granular tasks (2-5 min each), exact file paths, TDD: tests before code.
|
||||
|
||||
## STEP 6b — CHALLENGE THE PLAN (before the gate)
|
||||
`Skill(effort-xhigh)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="plan")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Before the human sees the implementation plan, harden it. Run
|
||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = the plan STEP 6 wrote under
|
||||
`docs/superpowers/plans/`, `KIND` = `build-plan`, `SCOPE` = the skeleton + task file
|
||||
@@ -212,7 +212,7 @@ Approve and start? (yes / request changes)
|
||||
Changes → back to STEP 6. Approved → continue.
|
||||
|
||||
## STEP 8 — IMPLEMENT
|
||||
First: `Skill(effort-medium)` (effort-shift: dispatch span starts; send it in the same message as this step's first dispatch).
|
||||
First: `mcp__model-router__route(phase="orchestrate")` (route: dispatch span starts; send it with this step's first dispatch).
|
||||
Start the MVP feature branch off develop, then implement on it:
|
||||
```bash
|
||||
bash "$HOME/.claude/lib/gitflow.sh" start feature mvp
|
||||
@@ -224,7 +224,8 @@ Invoke `subagent-driven-development` (vendored superpowers skill) for the per-ta
|
||||
finishing-a-development-branch", stop and return.
|
||||
|
||||
**Model routing (BDR-066):** every subagent dispatched under SDD — per-task
|
||||
implementers AND its reviewers — MUST carry `model: "sonnet"` in the Agent
|
||||
implementers AND its reviewers — MUST carry `model: "sonnet"` and
|
||||
`effort="medium"` (the `implement` level; a main route never reaches a child) in the Agent
|
||||
call. The plan is closed; execution and plan-conformity review are sonnet
|
||||
work. Reflection (task decomposition, review verdict arbitration) stays in
|
||||
this loop.
|
||||
@@ -261,9 +262,8 @@ against the founding contract. Distinct axis from STEP 10 code review
|
||||
([[LRN-095]]) — both run.
|
||||
|
||||
## STEP 10 — CODE REVIEW
|
||||
`Skill(effort-xhigh)` first, sent with the review dispatch (effort-shift: judgment dispatch; the reviewer is a built-in and inherits the level in force).
|
||||
Invoke `requesting-code-review` (vendored superpowers skill). **Model routing (BDR-077):** the
|
||||
review subagent it dispatches MUST carry `model: "opus"` in the Agent call —
|
||||
review subagent it dispatches MUST carry `model: "opus"` and `effort="xhigh"` in the Agent call —
|
||||
craft review is dispatched judgment, never inherited from the session. Fix
|
||||
all CRITICAL before proceeding.
|
||||
|
||||
@@ -316,7 +316,7 @@ articles dropped, code/IDs/quoted errors verbatim — per CLAUDE.md "Memory
|
||||
registries" (Always English, always caveman). The gate may mirror the user's
|
||||
language; entries must not.
|
||||
|
||||
`Skill(effort-low)` first (effort-shift: bookkeeping tail; send it in the same message as the memory-commit command).
|
||||
`mcp__model-router__route(phase="apply")` first (route: bookkeeping tail; send it with the memory-commit command).
|
||||
|
||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||
surgically commits the approved founding decisions (`.claude/memory` +
|
||||
|
||||
+10
-3
@@ -14,7 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -368,7 +368,7 @@ Lire le bloc `audit_stack:` du fichier `~/.claude/lib/project-archetypes/<archet
|
||||
| Entry | Action | Livraison |
|
||||
|---|---|---|
|
||||
| `analyze` | Déjà fait en STEP 5 | L3a |
|
||||
| `code-clean` | Spawn subagent `general-purpose` (audit-only, `model="opus"` — BDR-076: dispatched audits off the session model) | L3a |
|
||||
| `code-clean` | Spawn subagent `general-purpose` (audit-only, `model="opus"`, `effort="xhigh"` — BDR-076: dispatched audits off the session model) | L3a |
|
||||
| `cso` | Si gstack ON → Skill(cso). Sinon → Agent general-purpose avec checklist OWASP + deps audit | L3a |
|
||||
| `doc` | Spawn subagent `doc-syncer` (auto-mode OFF, report-only) | L3a |
|
||||
| `seo` | Subagents seo-analyzer + geo-analyzer en parallèle | L3b |
|
||||
@@ -385,6 +385,7 @@ Lancer EN PARALLÈLE (un seul message, plusieurs Agent calls) les audits corresp
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — code-clean audit only (read-only, opus)",
|
||||
prompt="""
|
||||
AUDIT-ONLY mode — NO fixes, NO refactoring, NO file modifications.
|
||||
@@ -422,6 +423,7 @@ bash $HOME/.claude/lib/toggle-external.sh list 2>/dev/null | grep -E "^gstack\s+
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — security audit fallback (archetype-adaptive)",
|
||||
prompt="""
|
||||
READ-ONLY security audit. No file modifications.
|
||||
@@ -546,6 +548,7 @@ flux de dev sont deux formes distinctes ([[BDR-050]] pipeline dev ≠ audit).
|
||||
Agent(
|
||||
subagent_type="doc-syncer",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — doc drift audit only",
|
||||
prompt="""
|
||||
MODE: audit — REPORT-ONLY, NO edits, NO auto-sync (no patch dispatch
|
||||
@@ -666,6 +669,7 @@ Si le skill ne supporte pas `--output`, capturer la sortie et écrire à la main
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — static design review fallback",
|
||||
prompt="""
|
||||
AUDIT-ONLY mode — NO edits. Static design review du code UI.
|
||||
@@ -710,6 +714,7 @@ Puis parser le JSON Lighthouse (scores perf/a11y/bp/seo/pwa + top opportunities)
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — static perf audit",
|
||||
prompt="""
|
||||
AUDIT-ONLY mode — NO edits.
|
||||
@@ -753,6 +758,7 @@ Parser axe-core résultats (violations, incomplete, inapplicable, passes) → `.
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — static a11y audit",
|
||||
prompt="""
|
||||
AUDIT-ONLY mode — NO edits.
|
||||
@@ -799,6 +805,7 @@ Spawn un subagent synthétiseur (isolé, chargé uniquement du contenu de `.onbo
|
||||
Agent(
|
||||
subagent_type="general-purpose",
|
||||
model="opus",
|
||||
effort="xhigh",
|
||||
description="Onboard — synthèse vers .claude/audits/",
|
||||
prompt="""
|
||||
Lire tous les fichiers de <PROJECT_ROOT>/.onboard-audit/ :
|
||||
@@ -892,7 +899,7 @@ Vérifier que les 4 fichiers `.claude/audits/ONBOARD_REPORT.md`, `.claude/audits
|
||||
---
|
||||
|
||||
## STEP 7b — CHALLENGE THE PROPOSALS (before the human gate)
|
||||
`Skill(effort-xhigh)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="plan")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
The 4 audit files are on disk; `AUDIT_PROPOSALS.md` is the artifact worth
|
||||
attacking before the human spends a gate on it. Run
|
||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` =
|
||||
|
||||
+5
-5
@@ -30,7 +30,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
This skill orchestrates TWO specialist agents running in parallel, then
|
||||
merges their output into a single `.claude/audits/SEO.md` report. It is the main
|
||||
@@ -325,7 +325,7 @@ templating.
|
||||
**PHASE A — collect (both domains, one message):**
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="seo-analyzer", model="sonnet")
|
||||
prompt: """
|
||||
MODE: collect
|
||||
@@ -460,7 +460,7 @@ sentinel, emit the COLLECT REPORT, stop. No scoring, no bundle.
|
||||
```
|
||||
|
||||
**PHASE B — judge (both domains, one message, AFTER both COLLECT REPORTs
|
||||
are DONE):** no `model=` override — the opus frontmatter pins apply.
|
||||
are DONE):** no `model=` override — the opus rows apply (frontmatter = off-state floor).
|
||||
|
||||
```
|
||||
Agent(subagent_type="seo-analyzer")
|
||||
@@ -510,7 +510,7 @@ the reports."
|
||||
```
|
||||
|
||||
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Both envelopes now carry a `## FIX BUNDLE` — worth attacking before any edit lands.
|
||||
**Skip if intervention mode = conservative** (nothing is applied). Else persist both
|
||||
bundles (seo + geo, verbatim) to `.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||
@@ -558,7 +558,7 @@ The two bundles may touch the same shared template (meta vs JSON-LD). Apply
|
||||
For each AUTO item, dispatch its `applier` at L1, passing the item verbatim:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
||||
prompt: "<paste the bundle item: files, concern, current, expected,
|
||||
framework note + shared-file discipline>.
|
||||
|
||||
@@ -14,7 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
## REQUEST
|
||||
$ARGUMENTS
|
||||
@@ -114,10 +114,10 @@ Inject ONLY what constrains: the NON-BINDING count does NOT enter the brainstorm
|
||||
(the injection inherits the OUTPUT filter — detail what binds, drop what doesn't).
|
||||
Consumption = INPUT INJECTION (we can't modify the external skill; we control its input).
|
||||
Refine request into validated design via Socratic questioning. Don't proceed until design approved.
|
||||
Turns after a user reply run at the session level until a tool call is paired with `Skill(effort-xhigh)` (effort-shift: turn reset).
|
||||
The first step of every turn after a user reply is `mcp__model-router__route(phase="plan")` (route: resumed turn).
|
||||
|
||||
## STEP 2 — PLAN
|
||||
`Skill(effort-xhigh)` first, sent with the next tool call (effort-shift: turn reset; brainstorm turns after a user reply run at the session level, and the vendored `brainstorming` pin applies only when the user invokes it).
|
||||
`mcp__model-router__route(phase="plan")` first (route: resumed turn after the brainstorm gate).
|
||||
Invoke `writing-plans` (vendored superpowers skill) with the validated design AND the 0d digest: every task
|
||||
must be consistent with the in-force constraints; where a task implements or affects one,
|
||||
note the ID inline. Break design into tasks (2-5 min each). Each task: exact file paths, full code, verification steps.
|
||||
@@ -127,7 +127,7 @@ request nor the STEP 1 brainstorm settled (check the contract's CLARIFICATIONS
|
||||
first) → one batch before STEP 2b; answers append to the contract `[gated]`.
|
||||
|
||||
## STEP 2b — CHALLENGE THE PLAN (adversarial, before the gate)
|
||||
`Skill(effort-xhigh)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="plan")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Before the human sees the plan, harden it. Run `$HOME/.claude/lib/challenge-plan.md`:
|
||||
- `PLAN` = the plan STEP 2 wrote under `docs/superpowers/plans/`
|
||||
- `KIND` = `build-plan`
|
||||
@@ -174,7 +174,7 @@ judges the diff against this ENRICHED contract, not the STEP 0e seed — so a
|
||||
criterion the design introduced is verified, not lost.
|
||||
|
||||
## STEP 4 — IMPLEMENT
|
||||
First: `Skill(effort-medium)` (effort-shift: dispatch span starts; send it in the same message as this step's first dispatch).
|
||||
First: `mcp__model-router__route(phase="orchestrate")` (route: dispatch span starts; send it with this step's first dispatch).
|
||||
Start the feature branch off develop, then implement on it:
|
||||
```bash
|
||||
bash "$HOME/.claude/lib/gitflow.sh" start feature <name>
|
||||
@@ -186,14 +186,15 @@ Invoke `subagent-driven-development` (vendored superpowers skill) for the per-ta
|
||||
finishing-a-development-branch", stop and return.
|
||||
|
||||
**Model routing (BDR-066):** every subagent dispatched under SDD — per-task
|
||||
implementers AND its reviewers — MUST carry `model: "sonnet"` in the Agent
|
||||
implementers AND its reviewers — MUST carry `model: "sonnet"` and
|
||||
`effort="medium"` (the `implement` level; a main route never reaches a child) in the Agent
|
||||
call. The plan is closed; execution and plan-conformity review are sonnet
|
||||
work. Reflection (task decomposition, review verdict arbitration) stays in
|
||||
this loop.
|
||||
|
||||
## STEP 4b — ERROR RECOVERY (if STEP 4 fails)
|
||||
If a subagent returns a build error, failing test, or type error:
|
||||
1. `Skill(effort-max)` (effort-shift: error recovery; send it in the same message as the Read of the analyzer file below), then load
|
||||
1. `mcp__model-router__route(phase="escalate")` (route: error recovery; send it with the Read of the analyzer file below), then load
|
||||
`$HOME/.claude/agents/analyzer.md` in DEBUG MODE on the exact error output.
|
||||
Produce: root cause hypotheses (ordered), affected files, what NOT to touch.
|
||||
2. Present gate:
|
||||
@@ -210,10 +211,10 @@ OPTIONS :
|
||||
C) Abort feature — preserve work done so far
|
||||
```
|
||||
3. Wait for user choice. Do NOT auto-fix. Do NOT proceed without explicit approval.
|
||||
4. On resume the turn is at the session level (effort-shift: turn reset).
|
||||
If A → `Skill(effort-medium)` sent with the re-dispatch, apply minimal fix, re-run STEP 4 for the failed task only. Max 2 retry attempts.
|
||||
4. On resume: `mcp__model-router__route(phase="plan")` first (route: resumed turn).
|
||||
If A → `mcp__model-router__route(phase="orchestrate")` sent with the re-dispatch, apply minimal fix, re-run STEP 4 for the failed task only. Max 2 retry attempts.
|
||||
If still failing after 2 → fall back to options B or C.
|
||||
If B or C → `Skill(effort-xhigh)` first, sent with the next tool call.
|
||||
If B or C → continue at the plan level set above.
|
||||
If B → before skipping: scan remaining task list for tasks that depend on the failed task
|
||||
(look for references to the same file or function in subsequent tasks).
|
||||
If dependents found → present: "Tasks [N, M] depend on the skipped task.
|
||||
@@ -243,9 +244,8 @@ conformity + security vs. craft/design) — both run, neither subsumes the
|
||||
other ([[LRN-095]]).
|
||||
|
||||
## STEP 6 — CODE REVIEW
|
||||
`Skill(effort-xhigh)` first, sent with the review dispatch (effort-shift: judgment dispatch; the reviewer is a built-in and inherits the level in force).
|
||||
Invoke `requesting-code-review` (vendored superpowers skill). **Model routing (BDR-077):** the
|
||||
review subagent it dispatches MUST carry `model: "opus"` in the Agent call —
|
||||
review subagent it dispatches MUST carry `model: "opus"` and `effort="xhigh"` in the Agent call —
|
||||
craft review is dispatched judgment, never inherited from the session. Fix
|
||||
all CRITICAL before proceeding.
|
||||
|
||||
@@ -277,7 +277,7 @@ Feature shipped implies at least one design decision worth capturing. Run this B
|
||||
|
||||
If nothing substantive to log → print `CAPITALIZE: nothing substantive to log` and skip.
|
||||
|
||||
`Skill(effort-low)` first (effort-shift: bookkeeping tail; send it in the same message as the memory-commit command).
|
||||
`mcp__model-router__route(phase="apply")` first (route: bookkeeping tail; send it with the memory-commit command).
|
||||
|
||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||
|
||||
@@ -30,7 +30,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
One pipeline per project: **security → clean → re-verify → reconcile →
|
||||
doc → convergence re-audit**, looping until a full pass applies zero new
|
||||
@@ -169,8 +169,8 @@ honestly in the summary. Never loop past 3.
|
||||
|
||||
### Phase B — CLEAN
|
||||
|
||||
1. Dispatch a read-only cleanup audit (analyzer — opus-pinned, BDR-076 —
|
||||
or general-purpose with `model="opus"`; NOT the sonnet code-cleaner,
|
||||
1. Dispatch a read-only cleanup audit (analyzer — opus row, BDR-076 —
|
||||
or general-purpose with `model="opus"`, `effort="xhigh"`; NOT the sonnet code-cleaner,
|
||||
which is now a fix executor): dead code, unused imports/exports,
|
||||
commented-out blocks, stale flags, norm violations. Findings as
|
||||
`id | file:line | finding | proposed fix`.
|
||||
|
||||
@@ -28,7 +28,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||
(big) path is silent.
|
||||
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-107): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation; every shift goes in the same message as the step's first tool call, a lone Skill call is a no-op.
|
||||
ROUTING: follow $HOME/.claude/lib/effort-shift.md (phases via mcp__model-router__route).
|
||||
|
||||
This skill orchestrates a narrow-scope standards audit :
|
||||
|
||||
@@ -180,7 +180,7 @@ Spawn a single `validator-analyzer` subagent with explicit scope and
|
||||
collected context :
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(
|
||||
subagent_type="validator-analyzer",
|
||||
description="validate — W3C HTML + CSS + WCAG audit",
|
||||
@@ -255,7 +255,7 @@ grep -c '^### \[Critique\]' .claude/audits/VALIDATE.md
|
||||
---
|
||||
|
||||
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
||||
`Skill(effort-high)` first (effort-shift: own level before the challenge; send it in the same message as the challenger dispatch).
|
||||
`mcp__model-router__route(phase="reflect")` first (route: own level before the challenge; send it with the challenger dispatch).
|
||||
Skip if MODE=audit (no bundle exists). Else, before the STEP 3 gate, harden the bundle:
|
||||
extract the `## 5. Fix bundle` section from VALIDATE.md to
|
||||
`.claude/tasks/plans/<date>-<slug>-<HHMM>.md` (a clean, blind-judgeable artifact), then run
|
||||
@@ -313,7 +313,7 @@ Options :
|
||||
share files:
|
||||
|
||||
```
|
||||
Skill(effort-medium) # effort-shift: dispatch span starts; send with the Agent call below in ONE message
|
||||
mcp__model-router__route(phase="orchestrate") # route: dispatch span starts; send with the Agent call below in ONE message
|
||||
Agent(subagent_type="hotfixer")
|
||||
prompt: "<paste the file-group's bundle items: file, issue, current,
|
||||
expected fix>.
|
||||
|
||||
Reference in New Issue
Block a user