Merge feature/model-tiering-w3-tier-moves into develop

This commit is contained in:
Bastien Chanot
2026-07-19 22:46:19 +02:00
5 changed files with 26 additions and 10 deletions
+5
View File
@@ -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.
+1 -1
View File
@@ -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
+12 -6
View File
@@ -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 ]
+7 -2
View File
@@ -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`.
+1 -1
View File
@@ -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: