v9.54.0
Added
-
Anti-slop design taste layer (
skills/blocks/design-taste.md): binary, mechanically checkable rules distilled from the highest-starred public taste rulebooks — the three banned AI-slop looks, banned default fonts (Inter, Roboto, Space Grotesk, Fraunces, Instrument Serif), palette and layout tells, content tells (placeholder personas, fake-perfect stats), and a pre-ship checklist. Wired into/octo:design-ui-uxas generation constraints, a new SLOP critique dimension in the three-way adversarial review, and a Deliver-phase gate. The Design Shotgun example variants themselves shipped two banned looks (AI-purple gradient, Space Grotesk default) and were replaced. -
WCAG contrast validator (
scripts/helpers/contrast-check.py, stdlib-only): computes WCAG 2.x contrast ratios for FG:BG hex pairs with normal/large thresholds, JSON output, and pairs-file input; exit 1 on any failure. The design skill's Deliver phase now runs it on every text/background token pair instead of prose-only "validate against WCAG AA". -
Design dials in
/octo:design-ui-ux: a fourth intake question maps to ui-ux-pro-max v2.11.0--variance/--motion/--densityflags (conservative/balanced/expressive/maximal presets), passed to searches and recorded in the design direction. -
Design-system persistence: the design skill's final step now writes the design system to
~/.claude-octopus/designs/<slug>/under theskill-design-lineagecontract (branch-stamped, supersedes-chained), and downstream skills are directed to read the newest design document before inventing new tokens. -
Enforcement patterns block (
skills/blocks/enforcement-patterns.md): documents the three patterns that hold under generation pressure — one Iron Law per discipline, rationalization tables grown from observed excuses, and terminal states that name the successor skill instead of offering a next-steps menu.skill-verification-gategains a rationalization table; the four flow skills gain explicit Terminal State sections chaining discover → define → develop → deliver → ship. -
Skill Quality Gate (docs/DEVELOPER.md): new or substantially changed skills require a baseline-vs-with-skill eval pass (≥85% with-skill pass rate), a description trigger test (~10 should / ~10 should-not phrasings), and token budgets, before shipping.
Changed
- Skill descriptions rewritten to triggers-only for six skills (staged-review, review-response, verification-gate, verify, native-escalation-routing, intent-contract). Descriptions that summarize the workflow create a shortcut the model takes instead of loading the skill; the two verification skills also had identical descriptions, which broke routing between them.
- Vendored ui-ux-pro-max design intelligence refreshed from v2.0.1 to v2.11.0 (nextlevelbuilder/ui-ux-pro-max-skill, MIT). Brings 11 releases of new data and features into
/octo:design-ui-ux: expanded databases (84 styles, 192 palettes, 74 font pairings, 161 UX reasoning rules), a Google Fonts collection, motion presets, design dials (--variance/--motion/--density), and--persistMASTER.md design-system persistence. The vendored subset is now slimmer (src/ plus license and docs; screenshots and the npm CLI are no longer copied) and carries aVENDOR.jsonmanifest recording the pinned upstream tag.scripts/check-vendor-updates.shwas rewritten for plain-file vendoring (the old version silently exited because it still expected.gitmodules, dead since #253) and now compares the manifest tag against the latest upstream release; a nightlyVendor FreshnessCI job fails when a vendored dependency goes stale.
Fixed
- Auto-router no longer coerces skill routing and never routes on system events (#632). The UserPromptSubmit auto-router injected "MANDATORY: Invoke Skill(...) before responding" even when intent detection mis-scored a prompt, pressuring the agent to hijack the turn into an unrelated multi-provider workflow; it also fired on harness-generated turns (task notifications, system reminders) that are not user input. Routing context is now explicitly advisory on both sides of the contract (
user-prompt-submit.shmessage andauto-router-inject.shsession instruction), and prompts beginning with system-event markers ([SYSTEM NOTIFICATION,<task-notification>,<system-reminder>,<local-command-stdout>) are skipped before intent detection.