docs: refresh CLAUDE.md for PRs #26-#34, and spec the admin portal uplift #35
Reference in New Issue
Block a user
Delete Branch "docs/refresh-claude-md"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Documentation only. No code changes.
1. CLAUDE.md was left behind by nine merges
CLAUDE.md declares itself "the one to trust on what is currently true", and
no commit touched it during #26–#34. Four shipped features were absent
entirely: the classifier cascade, the degraded-outcome attribution rule, the
capability sub-ceiling detector, and the reactive rejection detector.
Adds those, keeping the details that are easy to undo by accident:
general_chat, which is a fully scored category and the configuredfallback_category, so unguarded outcome folding drags real proficiencytoward outage traffic;
task_tiercolumn, nota normalized string, because digit-normalization alone merges
tier >= 1and
tier >= 3and hides which candidate set went empty;2026-09-04 incident was n=2, below the noise floor, so no single count
threshold can both catch it and stay quiet.
Also marks the plan queue empty and records the two known follow-ups —
including that the NULL demand crash is latent only: zero such rows exist,
checked on the live DB rather than assumed.
2.
plans/admin-portal-uplift.mdFrom an audit of the portal against the config surface: 5 pages and 9
editable keys against 21 config sections, with seven sections having no
presence at all.
§1 Proficiency is invisible despite being the only category-dependent term
in the ranking — 148 rows over 17 models and 11 categories, surfaced as a
single top-N list. The page must visually distinguish measured from
inherited: 71 of 148 rows are
outcome_priorand 39self_eval_thin, andtreating those as equal to
outcome_blendedis the mistake this projectalready made with
-flexrows. Read-only by design — a hand-editedproficiency score is a fabricated measurement.
Includes an outcomes view, because #34 now excludes some reports via
model_attributable = 0and nothing shows that.§2 Profiles is a dead end. All five profiles are built-ins, which render
no action buttons, so nothing is editable and the page never says why.
Duplicate-to-edit fixes it with no backend change.
Its zero-admit alarm also cries wolf:
localityreports "admits 0 models"while an active
ollama-localrow exists, because_profile_probepassestask_category=Noneand that model is gated tofile_summarization/diff_checking. A false alarm on the badge that exists to catch incident #3is worse than no badge.
§3 Gaming mode, with a real defect attached.
_last_classifier_failureis written and never read — the circuit breakerdoes not break the circuit, so nothing stops the router retrying a dead local
classifier, up to 120s per request against a hung or black-holed Ollama.
The toggle is specified as one flag the code reads, not a macro writing
five keys, and must skip the local call rather than fail-and-recover.
Per user decision it requires
classifier.cloud_fallbackand refuses toenable without it — a gaming mode that quietly degrades classification is the
thing worth preventing. Cascade steps 1 and 2 stay ahead of the cloud call: a
free, real, same-session classification is not worth paying to re-derive.