Repository navigation
Releases
v1.3.0-beta.2 (early access)
Changed
- The dashboard page is rebuilt after mock E "navy aurora" with the KeepGlide identity and the product mark
("the fork", KeepGlide DEC-004): navy canvas, floating cards, a hero pair Answered / No decision with
plain-language captions, a one-line status sentence (abstentions above the usual share only from 20 requests),
tiles, the two charts, and the request list and advanced data collapsed. English by default with a live pt-BR
switch; light and dark follow the system. The rows switch and itsPOST /dashboard/routingcall are gone from
the page (the route stays). Help buttons were tried and dropped: the cards explain themselves. CSS classes are
kebab-case BEM names (aebc8d5). Mocks and contract indocs/dashboard/mocks/; Sophia chose mock E on
2026-10-18 and its KeepGlide refinement E2 feeds the next pass. - The dashboard page now carries the KeepGlide "E2" look. A light aurora wash, a dot field, a glide arc and a fork
echo sit behind the page, the fork mark grows to 64 px, the Answered numeral and the ring use a teal-light accent,
and the muted text and live dot gain contrast. Data behaviour is unchanged. Restart the gateway service to serve it. - The dashboard went through a four-round critique gauntlet. Twenty-five personas in five groups (designers, UI/UX,
product owners, marketing and advertising, leadership) reviewed the page, and 58 fixes were adopted under the owner's
rule "errors and harmonizing changes only": regressions, copy in EN and pt-BR, a11y, honest data scope, and offline
and stale states. The approved navy aurora E2 look was deliberately not changed. Record:
docs/dashboard/gauntlet.md. - The ten owner questions of the gauntlet are answered and shipped. The risk thresholds now travel in the
/dashboard/eventsrouter payload (riskThresholds) and the page prints them instead of fixed text; the hero chip
says "of kept" while the buffer is full; Partial is striped in the dark theme; the red band says since when it is
red; the hourly chart notes the gateway's start time and keeps 12 px of top room; the thresholds chip hides under
480 px; the confidence title and the EN spelling are revised. Record: gauntlet.md section 5. - The dashboard got its brand pass (gauntlet owner question 10). The tagline takes the identity sky/ink tokens, a
20 px fork mark leads the status sentence (hidden under 480 px), four icons (Partial, Not sent, Tokens, bars) now use
Lucide geometry, and a 2 px teal line tops the masthead. Nothing else changed. Record: gauntlet.md section 5, item 10.
Fixed
- The JEV answers far more often in batches (
jev_score,jev_rank). Since 2026-10-17 whole batches came back
abstained (8 of 8 in most rounds). The cause was not the JEV: Scoreconfidenceis a spread measure, not a
probability, and on 5-level scales it passed the 0.65 floor only 15 % of the time, even when the mass sat on two
adjacent levels and the ordering was right. The gateway now keeps the expectedscoreof an abstained Score under
status: abstain, andjev_rankorders every scored candidate while listing the doubtful ones inabstained.
The tools, skill and READMEs tell callers to ask for 3 levels described as situations (94 % pass rate) instead of
4 or 5 degree words (37 % and 15 %). Commit9225450, merge519f32d. - The hook's own questions abstain much less.
direction(drift detector) now describes situations and defaults
toon_trackunless the recent actions clearly show otherwise: abstention 92 % → 19 % on reconstructed real
states.completion(Stop check) asks the one thing the hook acts on,done_unverifiedversusother: abstention
39 % → 20 % with the same recall and no new false flags. Commit1ca9c12, merge021bcb4. Applied to the
installed copy byinstall.py --target claude-codeon 2026-10-18 (installedclaude_jev.pymatches the repository).
Not changed, on purpose
- No weight or threshold changed. The confidence floors stay
0.65(low risk),0.80(medium) and0.90
(high), andrisk(the Bash gate) keeps its wording and its 0.80 floor: two rewordings were tested and both
lowered the pass rate on the 94-case gauntlet, so its abstentions are the bar doing its job. Composite scores and
cascades still gate onstatus, so an abstained score never turns into a value. A Score-only lower floor and a
"mass within one level" rule were rejected because they would change the documented threshold contract.
Early access: the Claude Code plugin packaging is new and its layout may change until a stable release. Full record in CHANGELOG.md. Made by Sophia Phillipa at KeepGlide.
v1.3.0-beta.1 (early access)
First beta of the Claude Code plugin packaging, under the KeepGlide organization.
What the plugin install covers (claude plugin marketplace add KeepGlide/claude-plugins + claude plugin install master-jev-hook@keepglide):
- the
master-jev-hookskill (/master-jev-hook:master-jev-hook); - the MCP server with the JEV tools (
request_decision,jev_classify,jev_verify,jev_score,jev_rank), namedmcp__plugin_master-jev-hook_master-jev-hook__<tool>; - the same Claude Code hooks
install.pyregisters (SessionStart live test, rule reminder, JEV announcements, Bash gate, Stop check, PreCompact, drift), with their state in the plugin data folder.
What still needs install.py or the manual steps: the local gateway (clone, build, env file, systemd service), the rule file in ~/.claude/rules (the plugin injects the rule per session instead), Claude Desktop and Codex. Pick one path for Claude Code: the plugin or install.py --target claude-code, never both.
Also in this release: the Bash gate waits for the gateway's 15 s deadline instead of timing out at 5 s.
Early access: the plugin layout may change until a stable release.
v1.2.0
Features
-
The Claude Code guide is now installed as a rule file,
~/.claude/rules/master-jev-hook.md, instead of a managed block inside the user's~/.claude/CLAUDE.md. Claude Code loads it with the same priority, including after/compact. Reinstalling migrates an existing block out ofCLAUDE.mdand leaves every other byte untouched. An existing rule file the installer did not create is never overwritten. -
The rule text is now trigger-based and aware of Claude's token cost, with the same wording in the per-message reminder, the guide and the skill:
- choice between approaches, files, sources, parameters or next steps →
request_decision; - 3+ items to read, compare or judge →
jev_rank/jev_classify/jev_scorefirst, then read only what the JEV keeps; - checking a claim or whether something is done →
jev_verify.
Claude should consult the JEV when it replaces its own reading or judging, keep queries lean (ids, names, short snippets, never whole files), and skip when writing the query costs more than doing the work itself. The goal is fewer Claude tokens, not more JEV calls.
- choice between approaches, files, sources, parameters or next steps →
Fixes
- The drift detector gets enough context to decide.
- The session self-test shows only the verdict for each JEV mode.
- Reinstalling now removes Master-JEV hooks whose mode no longer exists, not only duplicates from another install location.
Documentation
- New
docs/experiments.md: what was tried in this cycle, how it was measured (live A/B against v1.1.0) and what was kept or rejected, with numbers. Rejected: a PreToolUse "nudge" before reads and searches (0 of 5 reminders led to a JEV call, and triage cost more) and "consult the JEV by default".
Full changelog: v1.1.0...v1.2.0
v1.1.0
Features
- Live JEV self-test at session start: the SessionStart hook now sends one paid gateway call asking the same question in all three JEV modes (Choice, Score, Noul), prints ✅/
⚠️ /❌ per mode, and reports "gateway active" only when all three answers are correct. Claude prints the result verbatim at the top of its next reply, since the desktop app does not surface a SessionStartsystemMessage. Hook timeout raised from 3 s to 5 s.
Documentation
- README split into
README.md(English) andREADME.pt-BR.md, with flag language badges linking each to the other. - Added a sequence diagram for the question round-trip.
- Corrected the TypeSafe SDK usage description: types only, with a direct HTTPS POST to the SystemOne endpoint.
- Added a new "Install with an AI agent (spec)" section to both READMEs.
Full changelog: v1.0.0...v1.1.0