feat(effort): wire phase shifts in the 13 orchestrators and the handover writer
This commit is contained in:
@@ -225,6 +225,7 @@ Store `DEPLOYED_URL` for STEP 7. If empty, ask user during STEP 6.
|
|||||||
---
|
---
|
||||||
|
|
||||||
## STEP 3 — BASELINE AUDITS (parallel)
|
## STEP 3 — BASELINE AUDITS (parallel)
|
||||||
|
First: `Skill(effort-medium)` (effort-shift: dispatch span starts).
|
||||||
|
|
||||||
Goal: capture `SCORE_*_BEFORE` so the client doc shows the delta.
|
Goal: capture `SCORE_*_BEFORE` so the client doc shows the delta.
|
||||||
|
|
||||||
@@ -261,6 +262,7 @@ the gate.
|
|||||||
this pipeline (initial audits, fix-loop re-dispatches, commit-change,
|
this pipeline (initial audits, fix-loop re-dispatches, commit-change,
|
||||||
web-validate) carries `model: "fable"` — the child hosts gated orchestration
|
web-validate) carries `model: "fable"` — the child hosts gated orchestration
|
||||||
on the pipeline's behalf; it must never inherit the session model.
|
on the pipeline's behalf; it must never inherit the session model.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
For web projects, dispatch in **a single message with two parallel Agent calls** (each with `model: "fable"`):
|
For web projects, dispatch in **a single message with two parallel Agent calls** (each with `model: "fable"`):
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,16 @@ has "lib/effort-shift.md" 'Skill(effort-max)'
|
|||||||
has "lib/effort-shift.md" 'never inside a dispatched agent'
|
has "lib/effort-shift.md" 'never inside a dispatched agent'
|
||||||
has "lib/model-gate.md" 'lib/effort-shift.md'
|
has "lib/model-gate.md" 'lib/effort-shift.md'
|
||||||
|
|
||||||
|
# ── 6) orchestrator wiring (spec D4)
|
||||||
|
for s in feat hotfix bugfix ship-feature init-project onboard tour code-clean seo geo harden web-validate audit-delta; do
|
||||||
|
has "skills/$s/SKILL.md" 'lib/effort-shift.md'; has "skills/$s/SKILL.md" 'Skill(effort-medium)'; done
|
||||||
|
has "agents/client-handover-writer.md" 'lib/effort-shift.md'; has "agents/client-handover-writer.md" 'Skill(effort-medium)'
|
||||||
|
for s in feat hotfix bugfix; do has "skills/$s/SKILL.md" 'Skill(effort-high)'; done
|
||||||
|
for s in ship-feature init-project onboard code-clean audit-delta; do has "skills/$s/SKILL.md" 'Skill(effort-xhigh)'; done
|
||||||
|
for s in seo geo harden web-validate; do has "skills/$s/SKILL.md" 'Skill(effort-high)'; done
|
||||||
|
for s in feat hotfix bugfix ship-feature init-project; do has "skills/$s/SKILL.md" 'Skill(effort-low)'; done
|
||||||
|
has "skills/feat/SKILL.md" 'effort-shift: nested commit-change'
|
||||||
|
|
||||||
# ── summary (later tasks insert their locks ABOVE this line)
|
# ── summary (later tasks insert their locks ABOVE this line)
|
||||||
printf 'effort-routing census: %d pass, %d fail\n' "$pass" "$fail"
|
printf 'effort-routing census: %d pass, %d fail\n' "$pass" "$fail"
|
||||||
[ "$fail" -eq 0 ]
|
[ "$fail" -eq 0 ]
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
Audit only what changed since the last run, on the axes the user picks.
|
Audit only what changed since the last run, on the axes the user picks.
|
||||||
Per axis: **audit → approval gate → fix → re-verify → marker update**,
|
Per axis: **audit → approval gate → fix → re-verify → marker update**,
|
||||||
@@ -169,6 +170,7 @@ Then show the user the same compact table inline.
|
|||||||
|
|
||||||
### 3b-bis. CHALLENGE THE PROPOSALS (before the gate)
|
### 3b-bis. CHALLENGE THE PROPOSALS (before the gate)
|
||||||
|
|
||||||
|
`Skill(effort-xhigh)` first (effort-shift: reflection resumes).
|
||||||
This axis' findings + proposed fixes are a proposal set worth attacking before
|
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
|
the human gate. Persist THIS axis' finding list (not the whole append-only
|
||||||
report) to `.claude/tasks/plans/<date>-<axis>-<HHMM>.md`, then run
|
report) to `.claude/tasks/plans/<date>-<axis>-<HHMM>.md`, then run
|
||||||
@@ -254,6 +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
|
below on the same delta (the SAST is a deterministic floor, the reasoned
|
||||||
pass covers what grep/rules miss):
|
pass covers what grep/rules miss):
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="security-auditor", description="audit-delta security — semgrep SAST",
|
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>.")
|
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,6 +26,7 @@ allowed-tools:
|
|||||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||||
turn, dispatch nothing.
|
turn, dispatch nothing.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -123,6 +124,7 @@ RISK: <low/medium — what could go wrong>
|
|||||||
bug report left open → one batch of questions, before STEP 3b. The trivial
|
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.
|
fast-path is not exempt: a 1-line fix with a visible choice still asks.
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 3b — CHALLENGE THE FIX PLAN (before the contract)
|
## STEP 3b — CHALLENGE THE FIX PLAN (before the contract)
|
||||||
Unless the fix is the trivial 1-2 line case STEP 3 already fast-paths, the
|
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
|
DIAGNOSIS + FIX PLAN is a reflection worth attacking before it hardens into a
|
||||||
@@ -157,6 +159,7 @@ branch it's a no-op (commit in place). Never `finish`.
|
|||||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="bugfixer")
|
Agent(subagent_type="bugfixer")
|
||||||
prompt: "CONTRACT: <path from STEP 3.5>
|
prompt: "CONTRACT: <path from STEP 3.5>
|
||||||
DIAGNOSIS: <ROOT CAUSE + EVIDENCE from STEP 3>
|
DIAGNOSIS: <ROOT CAUSE + EVIDENCE from STEP 3>
|
||||||
@@ -278,6 +281,8 @@ 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`.
|
If the bug was trivial and the root cause not transferable → skip with `CAPITALIZE: trivial, skip`.
|
||||||
|
|
||||||
|
`Skill(effort-low)` first (effort-shift: bookkeeping tail).
|
||||||
|
|
||||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||||
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ allowed-tools:
|
|||||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||||
turn, dispatch nothing.
|
turn, dispatch nothing.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## TARGET
|
## TARGET
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -120,6 +121,7 @@ TOTALS: <N blocking, N warn, N info>
|
|||||||
|
|
||||||
If no issues found: report clean state and stop.
|
If no issues found: report clean state and stop.
|
||||||
|
|
||||||
|
`Skill(effort-xhigh)` first (effort-shift: reflection resumes).
|
||||||
## STEP 3b — CHALLENGE THE SCOPE (before approval)
|
## STEP 3b — CHALLENGE THE SCOPE (before approval)
|
||||||
The STEP 3 report is the proposed cleanup scope — worth attacking before the
|
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
|
human approves it. It is still inline, so FIRST persist it to
|
||||||
@@ -173,6 +175,7 @@ is approved, stop — no dispatch.
|
|||||||
2. **Dispatch the executor** — sonnet by frontmatter pin, do not override:
|
2. **Dispatch the executor** — sonnet by frontmatter pin, do not override:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="code-cleaner")
|
Agent(subagent_type="code-cleaner")
|
||||||
prompt: "SCOPE: .claude/audits/CODE-CLEAN-SCOPE.md
|
prompt: "SCOPE: .claude/audits/CODE-CLEAN-SCOPE.md
|
||||||
APPROVED: <the approved item list, incl. any per-item exported-symbol clears>
|
APPROVED: <the approved item list, incl. any per-item exported-symbol clears>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ allowed-tools:
|
|||||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||||
turn, dispatch nothing.
|
turn, dispatch nothing.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -122,6 +123,7 @@ request left open → one batch of questions BEFORE dispatching; answers land
|
|||||||
in the contract's CLARIFICATIONS `[gated]` and in the plan. A choice that
|
in the contract's CLARIFICATIONS `[gated]` and in the plan. A choice that
|
||||||
surfaces only during execution comes back as `NEED-DECISION` (STEP 3).
|
surfaces only during execution comes back as `NEED-DECISION` (STEP 3).
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 1b — CHALLENGE THE PLAN (before branching)
|
## STEP 1b — CHALLENGE THE PLAN (before branching)
|
||||||
The STEP 1 plan is a reflection worth attacking before a branch is spent on it.
|
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
|
Persist it to `.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||||
@@ -144,6 +146,7 @@ branch it's a no-op (commit in place). Never `finish`.
|
|||||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="feater")
|
Agent(subagent_type="feater")
|
||||||
prompt: "CONTRACT: <path from STEP 0.7>
|
prompt: "CONTRACT: <path from STEP 0.7>
|
||||||
PLAN: <the STEP 1 checklist + approach bullets + edge cases, verbatim>
|
PLAN: <the STEP 1 checklist + approach bullets + edge cases, verbatim>
|
||||||
@@ -200,6 +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
|
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
|
commit-changer (propose opus / apply sonnet, BDR-077); never inline-load the bare agent, it is now a
|
||||||
propose/apply executor).
|
propose/apply executor).
|
||||||
|
Then `Skill(effort-high)` (effort-shift: nested commit-change loaded at low; reload feat's level).
|
||||||
|
|
||||||
Print summary:
|
Print summary:
|
||||||
```
|
```
|
||||||
@@ -250,6 +254,8 @@ 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`.
|
If no substantive capture candidate → skip with `CAPITALIZE: nothing to log`.
|
||||||
|
|
||||||
|
`Skill(effort-low)` first (effort-shift: bookkeeping tail).
|
||||||
|
|
||||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||||
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
Dispatches the `geo-analyzer` subagent (audit + fix bundle), then applies
|
Dispatches the `geo-analyzer` subagent (audit + fix bundle), then applies
|
||||||
the bundle from THIS main loop at **L1** — same shape as `/web-validate`
|
the bundle from THIS main loop at **L1** — same shape as `/web-validate`
|
||||||
@@ -46,6 +47,7 @@ every phase (LRN-126). Clean `.audit/geo-signals-<RUNID>.md` after apply.
|
|||||||
|
|
||||||
**A — collect (sonnet):**
|
**A — collect (sonnet):**
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="geo-analyzer", model="sonnet")
|
Agent(subagent_type="geo-analyzer", model="sonnet")
|
||||||
prompt: "MODE: collect
|
prompt: "MODE: collect
|
||||||
RUNID: <RUNID>
|
RUNID: <RUNID>
|
||||||
@@ -83,6 +85,7 @@ Do NOT apply any fix and do NOT dispatch any sub-agent — /geo applies
|
|||||||
your bundle."
|
your bundle."
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
||||||
The analyzer returned a `## FIX BUNDLE` — worth attacking before any edit lands.
|
The analyzer returned a `## FIX BUNDLE` — worth attacking before any edit lands.
|
||||||
**Skip if intervention mode = conservative** (nothing is applied). Else persist the
|
**Skip if intervention mode = conservative** (nothing is applied). Else persist the
|
||||||
@@ -115,6 +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:
|
For each AUTO item, dispatch its `applier` at L1, passing the item verbatim:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
||||||
prompt: "<paste the bundle item: files, concern, current, expected,
|
prompt: "<paste the bundle item: files, concern, current, expected,
|
||||||
framework note + shared-file discipline>.
|
framework note + shared-file discipline>.
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
This skill orchestrates a narrow-scope hardening audit: TLS + security
|
This skill orchestrates a narrow-scope hardening audit: TLS + security
|
||||||
headers + redirects + canonical + custom 404 + server configs. It
|
headers + redirects + canonical + custom 404 + server configs. It
|
||||||
@@ -260,6 +261,7 @@ seo-analyzer will run in parallel.
|
|||||||
Spawn a single seo-analyzer subagent with an explicit IN/OUT scope list.
|
Spawn a single seo-analyzer subagent with an explicit IN/OUT scope list.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(
|
Agent(
|
||||||
subagent_type="seo-analyzer",
|
subagent_type="seo-analyzer",
|
||||||
description="harden — narrow-scope web hardening audit",
|
description="harden — narrow-scope web hardening audit",
|
||||||
@@ -519,6 +521,7 @@ Extract the score and critical-alert count from `.claude/audits/HARDEN.md` for t
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
||||||
Skip if MODE=audit (no bundle exists). Else, before the STEP 3 gate, harden the bundle:
|
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
|
extract the `## 8. Fix bundle` section from HARDEN.md to
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ allowed-tools:
|
|||||||
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
MODEL GATE (blocking): run `$HOME/.claude/lib/model-gate.md` BEFORE any
|
||||||
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
step below. Verdict `small` → STOP — print the gate's remedy, end the
|
||||||
turn, dispatch nothing.
|
turn, dispatch nothing.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -93,6 +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
|
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`.
|
missing import that alters execution. In doubt → it is probably a `/bugfix`.
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
For a logic fix: persist the STEP 1 located fix (root cause + the exact edit) to
|
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
|
`.claude/tasks/plans/<date>-<slug>-<HHMM>.md`, then run
|
||||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = that file, `KIND` =
|
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = that file, `KIND` =
|
||||||
@@ -136,6 +138,7 @@ mentioned: STOP and ask `"working tree dirty: stash and continue, or abort?"`.
|
|||||||
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
Dispatch the executor — sonnet by frontmatter pin, do not override:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="hotfixer")
|
Agent(subagent_type="hotfixer")
|
||||||
prompt: "CONTRACT: <path from STEP 1.7>
|
prompt: "CONTRACT: <path from STEP 1.7>
|
||||||
LOCATED: <file(s) found in STEP 1 + the confirmed root cause>
|
LOCATED: <file(s) found in STEP 1 + the confirmed root cause>
|
||||||
@@ -233,6 +236,8 @@ 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).
|
**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).
|
||||||
|
|
||||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||||
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -183,6 +184,7 @@ implemented on a `feature/*` branch off `develop` (STEP 8).
|
|||||||
Invoke `writing-plans` (vendored superpowers skill) with BRIEF + skeleton.
|
Invoke `writing-plans` (vendored superpowers skill) with BRIEF + skeleton.
|
||||||
Granular tasks (2-5 min each), exact file paths, TDD: tests before code.
|
Granular tasks (2-5 min each), exact file paths, TDD: tests before code.
|
||||||
|
|
||||||
|
`Skill(effort-xhigh)` first (effort-shift: reflection resumes).
|
||||||
## STEP 6b — CHALLENGE THE PLAN (before the gate)
|
## STEP 6b — CHALLENGE THE PLAN (before the gate)
|
||||||
Before the human sees the implementation plan, harden it. Run
|
Before the human sees the implementation plan, harden it. Run
|
||||||
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = the plan STEP 6 wrote under
|
`$HOME/.claude/lib/challenge-plan.md` with `PLAN` = the plan STEP 6 wrote under
|
||||||
@@ -209,6 +211,7 @@ Approve and start? (yes / request changes)
|
|||||||
Changes → back to STEP 6. Approved → continue.
|
Changes → back to STEP 6. Approved → continue.
|
||||||
|
|
||||||
## STEP 8 — IMPLEMENT
|
## STEP 8 — IMPLEMENT
|
||||||
|
First: `Skill(effort-medium)` (effort-shift: dispatch span starts).
|
||||||
Start the MVP feature branch off develop, then implement on it:
|
Start the MVP feature branch off develop, then implement on it:
|
||||||
```bash
|
```bash
|
||||||
bash "$HOME/.claude/lib/gitflow.sh" start feature mvp
|
bash "$HOME/.claude/lib/gitflow.sh" start feature mvp
|
||||||
@@ -311,6 +314,8 @@ articles dropped, code/IDs/quoted errors verbatim — per CLAUDE.md "Memory
|
|||||||
registries" (Always English, always caveman). The gate may mirror the user's
|
registries" (Always English, always caveman). The gate may mirror the user's
|
||||||
language; entries must not.
|
language; entries must not.
|
||||||
|
|
||||||
|
`Skill(effort-low)` first (effort-shift: bookkeeping tail).
|
||||||
|
|
||||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||||
surgically commits the approved founding decisions (`.claude/memory` +
|
surgically commits the approved founding decisions (`.claude/memory` +
|
||||||
`.claude/tasks` only, never `git add -A`) as one `chore(memory)` commit, BEFORE
|
`.claude/tasks` only, never `git add -A`) as one `chore(memory)` commit, BEFORE
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -91,6 +92,7 @@ STOP. La réponse détermine si STEP 1 tourne une fois (A) ou N fois (C) ou avec
|
|||||||
|
|
||||||
## STEP 2 — BASELINE CONFIG (onboarder agent)
|
## STEP 2 — BASELINE CONFIG (onboarder agent)
|
||||||
|
|
||||||
|
`Skill(effort-medium)` first (effort-shift: dispatch span starts).
|
||||||
Dispatch `Agent(subagent_type="onboarder")` (pin sonnet — BDR-077 : config
|
Dispatch `Agent(subagent_type="onboarder")` (pin sonnet — BDR-077 : config
|
||||||
templating = exécution, plus jamais inline sur le modèle de session). Un
|
templating = exécution, plus jamais inline sur le modèle de session). Un
|
||||||
BLOCAGE (clé manquante, CLAUDE.md existant) revient en rapport — l'agent ne
|
BLOCAGE (clé manquante, CLAUDE.md existant) revient en rapport — l'agent ne
|
||||||
@@ -890,6 +892,7 @@ Vérifier que les 4 fichiers `.claude/audits/ONBOARD_REPORT.md`, `.claude/audits
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
`Skill(effort-xhigh)` first (effort-shift: reflection resumes).
|
||||||
## STEP 7b — CHALLENGE THE PROPOSALS (before the human gate)
|
## STEP 7b — CHALLENGE THE PROPOSALS (before the human gate)
|
||||||
The 4 audit files are on disk; `AUDIT_PROPOSALS.md` is the artifact worth
|
The 4 audit files are on disk; `AUDIT_PROPOSALS.md` is the artifact worth
|
||||||
attacking before the human spends a gate on it. Run
|
attacking before the human spends a gate on it. Run
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
This skill orchestrates TWO specialist agents running in parallel, then
|
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
|
merges their output into a single `.claude/audits/SEO.md` report. It is the main
|
||||||
@@ -324,6 +325,7 @@ templating.
|
|||||||
**PHASE A — collect (both domains, one message):**
|
**PHASE A — collect (both domains, one message):**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="seo-analyzer", model="sonnet")
|
Agent(subagent_type="seo-analyzer", model="sonnet")
|
||||||
prompt: """
|
prompt: """
|
||||||
MODE: collect
|
MODE: collect
|
||||||
@@ -507,6 +509,7 @@ write GEO.md/SEO.md — /seo applies your bundle in STEP 1.5 and merges
|
|||||||
the reports."
|
the reports."
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
## STEP 1b — CHALLENGE THE FIX BUNDLE (advisory, before apply)
|
||||||
Both envelopes now carry a `## FIX BUNDLE` — worth attacking before any edit lands.
|
Both envelopes now carry a `## FIX BUNDLE` — worth attacking before any edit lands.
|
||||||
**Skip if intervention mode = conservative** (nothing is applied). Else persist both
|
**Skip if intervention mode = conservative** (nothing is applied). Else persist both
|
||||||
@@ -555,6 +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:
|
For each AUTO item, dispatch its `applier` at L1, passing the item verbatim:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
Agent(subagent_type="hotfixer") # or "feater" per the item's applier
|
||||||
prompt: "<paste the bundle item: files, concern, current, expected,
|
prompt: "<paste the bundle item: files, concern, current, expected,
|
||||||
framework note + shared-file discipline>.
|
framework note + shared-file discipline>.
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
## REQUEST
|
## REQUEST
|
||||||
$ARGUMENTS
|
$ARGUMENTS
|
||||||
@@ -123,6 +124,7 @@ every VISIBLE / PUBLIC NAME / SCOPE choice the plan settles that neither the
|
|||||||
request nor the STEP 1 brainstorm settled (check the contract's CLARIFICATIONS
|
request nor the STEP 1 brainstorm settled (check the contract's CLARIFICATIONS
|
||||||
first) → one batch before STEP 2b; answers append to the contract `[gated]`.
|
first) → one batch before STEP 2b; answers append to the contract `[gated]`.
|
||||||
|
|
||||||
|
`Skill(effort-xhigh)` first (effort-shift: reflection resumes).
|
||||||
## STEP 2b — CHALLENGE THE PLAN (adversarial, before the gate)
|
## STEP 2b — CHALLENGE THE PLAN (adversarial, before the gate)
|
||||||
Before the human sees the plan, harden it. Run `$HOME/.claude/lib/challenge-plan.md`:
|
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/`
|
- `PLAN` = the plan STEP 2 wrote under `docs/superpowers/plans/`
|
||||||
@@ -170,6 +172,7 @@ judges the diff against this ENRICHED contract, not the STEP 0e seed — so a
|
|||||||
criterion the design introduced is verified, not lost.
|
criterion the design introduced is verified, not lost.
|
||||||
|
|
||||||
## STEP 4 — IMPLEMENT
|
## STEP 4 — IMPLEMENT
|
||||||
|
First: `Skill(effort-medium)` (effort-shift: dispatch span starts).
|
||||||
Start the feature branch off develop, then implement on it:
|
Start the feature branch off develop, then implement on it:
|
||||||
```bash
|
```bash
|
||||||
bash "$HOME/.claude/lib/gitflow.sh" start feature <name>
|
bash "$HOME/.claude/lib/gitflow.sh" start feature <name>
|
||||||
@@ -268,6 +271,8 @@ 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.
|
If nothing substantive to log → print `CAPITALIZE: nothing substantive to log` and skip.
|
||||||
|
|
||||||
|
`Skill(effort-low)` first (effort-shift: bookkeeping tail).
|
||||||
|
|
||||||
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
**Then commit the memory** — follow `$HOME/.claude/lib/capitalize-commit.md`: it
|
||||||
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
surgically commits what capitalize just wrote (`.claude/memory` + `.claude/tasks`
|
||||||
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
only, never `git add -A`) as one `chore(memory)` commit, reports the memory-commit
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
One pipeline per project: **security → clean → re-verify → reconcile →
|
One pipeline per project: **security → clean → re-verify → reconcile →
|
||||||
doc → convergence re-audit**, looping until a full pass applies zero new
|
doc → convergence re-audit**, looping until a full pass applies zero new
|
||||||
@@ -86,6 +87,7 @@ Model discipline (the user-fixed invariant behind this mode):
|
|||||||
Runner dispatch, one per project:
|
Runner dispatch, one per project:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="general-purpose",
|
Agent(subagent_type="general-purpose",
|
||||||
description="tour runner — <project basename>",
|
description="tour runner — <project basename>",
|
||||||
prompt="Read ~/.claude/skills/tour/SKILL.md and execute STEP 1 → STEP 3
|
prompt="Read ~/.claude/skills/tour/SKILL.md and execute STEP 1 → STEP 3
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ Run `$HOME/.claude/lib/model-gate.md`. Reflection here (planning, audit
|
|||||||
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
judgment, loop decisions) requires Fable/Opus. Verdict `small` → STOP: the
|
||||||
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
gate prints the remedy; end the turn — no later step, no dispatch. Nominal
|
||||||
(big) path is silent.
|
(big) path is silent.
|
||||||
|
EFFORT SHIFTS: follow `$HOME/.claude/lib/effort-shift.md` (BDR-NEXT): medium when a dispatch span starts, own level before challenge synthesis, low at the bookkeeping tail, max at escalation.
|
||||||
|
|
||||||
This skill orchestrates a narrow-scope standards audit :
|
This skill orchestrates a narrow-scope standards audit :
|
||||||
|
|
||||||
@@ -179,6 +180,7 @@ Spawn a single `validator-analyzer` subagent with explicit scope and
|
|||||||
collected context :
|
collected context :
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(
|
Agent(
|
||||||
subagent_type="validator-analyzer",
|
subagent_type="validator-analyzer",
|
||||||
description="validate — W3C HTML + CSS + WCAG audit",
|
description="validate — W3C HTML + CSS + WCAG audit",
|
||||||
@@ -252,6 +254,7 @@ grep -c '^### \[Critique\]' .claude/audits/VALIDATE.md
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
`Skill(effort-high)` first (effort-shift: reflection resumes).
|
||||||
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
## STEP 2b — CHALLENGE THE FIX BUNDLE (MODE=fix only, advisory)
|
||||||
Skip if MODE=audit (no bundle exists). Else, before the STEP 3 gate, harden the bundle:
|
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
|
extract the `## 5. Fix bundle` section from VALIDATE.md to
|
||||||
@@ -310,6 +313,7 @@ Options :
|
|||||||
share files:
|
share files:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Skill(effort-medium) # effort-shift: dispatch span starts
|
||||||
Agent(subagent_type="hotfixer")
|
Agent(subagent_type="hotfixer")
|
||||||
prompt: "<paste the file-group's bundle items: file, issue, current,
|
prompt: "<paste the file-group's bundle items: file, issue, current,
|
||||||
expected fix>.
|
expected fix>.
|
||||||
|
|||||||
Reference in New Issue
Block a user