You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Completes the P1/P2 items from the feature/improvement review (some
groundwork was scaffolded in a prior session; this finishes + verifies it).
Unit A — routing config tooling (validation + explainability):
- decide() returns nearMisses[] + a confidence rating (high/medium/low);
route.mjs --explain surfaces them.
- validateRoster() gains two checks: unknown when.type tokens (warning, when
the caller passes the tags.txt label set) and invalid agent tier (error);
existing behavior and return shape preserved (knownTypes is optional).
- new score.mjs knownTypes(tagsPath) exports the tags.txt label set;
route.mjs --validate now passes it so unknown-type routes are flagged.
Unit B — cost/token accounting in the HUD:
- per-backend cost_per_1k_chars in roster.json; run.mjs computes costMicros
on success and state.mjs accumulates approx_cost_micros (flat one-field-
per-line contract preserved); statusline renders a ~$ figure.
- new test/cost-hud.test.mjs proves it end-to-end: two calls (40k+360k
micros) accumulate to 400000 and the statusline renders "$0.40".
Unit C — health-check TTL cache + new commodity task types:
- backends.mjs health() is now TTL-memoized (60s) per backend with
invalidateHealth() + _clearHealthCache(); removes the per-fallback-hop
re-probe cost. The uncached probe is preserved as _healthUncached().
- three new tags.txt types route to the agy standard-coding lane instead of
wasting Sonnet: docs-write, i18n, deps-bump. Wired into the standard-coding
route in roster.json. Verified: 5 true-positives route to agy, no false
positives ("read the docs", "update the business logic" stay clear).
Verified by execution (Opus verifier pass): new-tag routing cases pass,
validator new-checks fire, health cache memoizes, full suite 88/88 green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"_note": "Invoked as `codex exec <flags> <prompt>` — non-interactive, prints only the final message to stdout (no winpty). models empty = codex's own config.toml default; set per-tier model IDs here to map cheap/standard. `-s read-only` keeps it from modifying files; drop --skip-git-repo-check only if you require a git repo."
@@ -146,7 +150,7 @@
146
150
147
151
{ "_comment": "Standard, verifiable coding — most everyday code work.",
Copy file name to clipboardExpand all lines: config/tags.txt
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -86,6 +86,9 @@ format reformat|prettier|fix (the )?indentation|lint fix|run the formatt
86
86
codegen code ?gen(eration)?|generate (the )?code
87
87
unit-test unit test|write tests?|test cases?|\bjest\b|\bpytest\b|test coverage
88
88
fixture fixture|mock data|test data|seed data|sample data
89
+
docs-write (writ|updat|add|generat|creat|author).{0,30}(docs?|documentation|readme|jsdoc|docstrings?|changelog)|document (the )?(api|module|function|code)
90
+
i18n \bi18n\b|internationali(z|s)ation|locali(z|s)ation|translat.{0,15}(strings?|\bui\b|text|copy)|add locale support
91
+
deps-bump (bump|upgrade|update).{0,20}(the )?(version|dependenc(y|ies)|package)|upgrade .{0,20} to v?\d|bump .{0,20} to v?\d
0 commit comments