forked from bchanot/claude
feat(routing): W3 tier moves — validator-analyzer opus→sonnet, commit-changer propose=opus override (BDR-077)
validator-analyzer tiered down (deterministic validator-runner + fixed deduction tables — no deep judgment; supersedes its BDR-076 opus pin). commit-changer: MODE propose dispatched model="opus" (narrative reconstruction + capitalize routing = judgment), MODE apply on the sonnet pin. Typed-pin precedence smoke PASSED: sonnet-pinned verifier dispatched model="haiku" ran on claude-haiku-4-5 — call-site wins, documented + now behaviorally proven. Census §11 flip + §16 (106 pass), make test exit 0.
This commit is contained in:
@@ -7,6 +7,11 @@ model: sonnet
|
||||
|
||||
# Git Smart Commit
|
||||
|
||||
> MODEL (BDR-077): `MODE: propose` is dispatched with `model="opus"` (the
|
||||
> call-site override — narrative reconstruction + capitalize routing are
|
||||
> judgment); `MODE: apply` runs on the sonnet frontmatter pin (mechanical
|
||||
> staging/committing of an approved plan).
|
||||
|
||||
Reconstruct the development narrative from a working directory. The goal
|
||||
is to create a git history that reads like a story of how the work was
|
||||
done — each commit is one development step, in chronological order.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: validator-analyzer
|
||||
description: Web standards audit agent — W3C HTML validity (validator.nu), W3C CSS validity (jigsaw.w3.org), WCAG 2.1 accessibility (axe-core, pa11y, WAVE). Dispatched from /web-validate. Produces scored .claude/audits/VALIDATE.md report with concrete diffs for auto-fixable issues and user actions for judgment-required fixes. Complementary to /harden (security), /seo (indexability), /geo (AI extraction).
|
||||
tools: Read, Edit, Write, Bash, Grep, Glob, WebFetch
|
||||
model: opus
|
||||
model: sonnet
|
||||
---
|
||||
|
||||
# Validator — W3C + WCAG audit
|
||||
|
||||
@@ -58,14 +58,15 @@ has "agents/client-handover-writer.md" 'subagent_type="handover-doc-writer"'
|
||||
has "agents/feater.md" 'Applier path'
|
||||
has "skills/refactor/SKILL.md" 'subagent_type="refactorer"'
|
||||
has "agents/refactorer.md" 'model: sonnet'
|
||||
# 11) BDR-076 — session model (Fable) = orchestration + inline reflection ONLY.
|
||||
# Dispatched judgment agents pinned OPUS (big tier, session-independent;
|
||||
# never sonnet — that would silently downgrade a live audit). Inline-load-
|
||||
# only agents (interviewer, client-handover-writer) STAY unpinned: they run
|
||||
# IN the main loop, a frontmatter pin there is inert and misleads.
|
||||
# 11) BDR-076/077 — session model = orchestration + inline reflection ONLY.
|
||||
# Dispatched judgment agents pinned OPUS. validator-analyzer TIERED DOWN
|
||||
# to sonnet (W3 — deterministic validator-runner + fixed deduction
|
||||
# tables, no deep judgment; approved plan). Inline-load-only agents
|
||||
# (interviewer, client-handover-writer) STAY unpinned: they run IN the
|
||||
# main loop, a frontmatter pin there is inert and misleads.
|
||||
has "agents/seo-analyzer.md" 'model: opus'
|
||||
has "agents/geo-analyzer.md" 'model: opus'
|
||||
has "agents/validator-analyzer.md" 'model: opus'
|
||||
has "agents/validator-analyzer.md" 'model: sonnet'
|
||||
has "agents/plan-challenger.md" 'model: opus'
|
||||
fm_lacks "agents/client-handover-writer.md" 'model:'
|
||||
fm_lacks "agents/interviewer.md" 'model:'
|
||||
@@ -125,6 +126,11 @@ has "skills/onboard/SKILL.md" 'subagent_type="onboarder"'
|
||||
lacks "skills/init-project/SKILL.md" 'Load `$HOME/.claude/agents/scaffolder.md`'
|
||||
# shellcheck disable=SC2016
|
||||
lacks "skills/onboard/SKILL.md" 'Load `$HOME/.claude/agents/onboarder.md`'
|
||||
# 16) BDR-077 W3 — commit-changer per-mode override: propose = opus at the
|
||||
# call site (documented precedence over the sonnet pin), apply = pin
|
||||
has "skills/commit-change/SKILL.md" 'model="opus"'
|
||||
has "agents/commit-changer.md" 'MODE: propose'
|
||||
has "agents/commit-changer.md" 'model: sonnet'
|
||||
|
||||
printf 'model-routing census: %d pass, %d fail\n' "$pass" "$fail"
|
||||
[ "$fail" -eq 0 ]
|
||||
|
||||
@@ -18,7 +18,8 @@ allowed-tools:
|
||||
|
||||
# /commit-change — propose → confirm → apply dispatcher
|
||||
|
||||
Grouping and committing both run on the sonnet-pinned `commit-changer`
|
||||
Grouping (propose, `model="opus"` override — judgment) and committing
|
||||
(apply, sonnet pin — mechanical) both run on the dispatched `commit-changer`
|
||||
subagent (dispatch makes the pin effective). No inline reflection happens
|
||||
in this dispatcher to protect, so there is no model gate. This dispatcher
|
||||
owns the two approval gates that used to live inside the subagent:
|
||||
@@ -52,11 +53,15 @@ protected branch.
|
||||
## STEP 1 — Propose
|
||||
|
||||
```
|
||||
Agent(subagent_type="commit-changer")
|
||||
Agent(subagent_type="commit-changer", model="opus")
|
||||
prompt: "MODE: propose
|
||||
$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.)
|
||||
|
||||
Read the returned `COMMIT PLAN` + `EDGE CASES` + `CAPITALIZE CANDIDATES`,
|
||||
terminated by `READY TO APPLY — awaiting dispatcher confirmation`.
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ feat(<scope>): <what was added>
|
||||
If the feature touched multiple concerns (e.g., feature + config +
|
||||
test), consider splitting into 2-3 atomic commits grouped by logical
|
||||
unit — or run `/commit-change` on the pending work (it dispatches the
|
||||
sonnet commit-changer; 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).
|
||||
|
||||
Print summary:
|
||||
|
||||
Reference in New Issue
Block a user