Repository navigation
v2.10.0
Agent observability: did the agent follow the rules?
New: /observe
The plugin hooks now keep a local record of every session start (and whether a browser is available), every UI edit (with what the fast gates caught), and every end of turn (passed, blocked, or let through with pages still unmeasured).
The report gives each session a verdict from three counted rules:
- Every edited page had a passing gate before the session ended.
- No fast-gate finding was left on a file's latest version.
- The agent never finished while the Stop hook still had pages open.
Ways to see it:
/observeinside Claude Codenpx ux-ui-skills observefor a summary;--lastor--session <id>for a timeline;--project,--days,--json--htmlwrites a dashboard page built on the kit's own theme. It passes the kit's render gates in light and dark.
Everything stays on the machine. Files older than 30 days are deleted automatically, and DS_OBSERVE=0 turns it off. A failed write never changes what a hook decides.
This closes a blind spot. After a block, Claude Code always lets the next stop through, which is the one way an agent can finish with pages unmeasured. That case is now recorded as a broken rule instead of passing silently.
Fixed: dark-mode focus rings
- The shared example theme's dark ring was 1.63 to 2.93:1 against its surfaces, under the 3:1 a focus indicator needs. It now uses the theme's light teal link colour.
- The
goldentheme's dark ring was 2.84:1 on raised surfaces. It now uses blue.400. - New check:
tests/meta/focus-ring.test.mjsmeasures every shipped theme's ring against every surface token, in both themes.
Updated: public counts
The skill count is now 26 everywhere: README, install docs, the example front page, and the re-rendered cover images.
Carried over from 2.9.10
The fixes for #23 to #27 are included. All five were re-verified against 2.10.0, and #26 was confirmed on a real Linux machine.
Verification
- Main gate 52/52; test suite 256/256.
- Three real Claude Code sessions in a fresh project. Each session's
observeverdict and timeline matched its transcript.
Note on npm
The npm package for 2.10.0 is the first build of this release. It does not include the focus-ring fixes or the clearer report wording ("no pages edited", "never blocked"). New plugin installs get the complete version.