Skip to content

Releases

v1.3.0-beta.2 (early access)

Pre-release

Choose a tag to compare

@sophia-phillipa sophia-phillipa released this 19 Oct 11:35

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 its POST /dashboard/routing call 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 in docs/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/events router 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: Score confidence is 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 expected score of an abstained Score under
    status: abstain, and jev_rank orders every scored candidate while listing the doubtful ones in abstained.
    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 %). Commit 9225450, merge 519f32d.
  • The hook's own questions abstain much less. direction (drift detector) now describes situations and defaults
    to on_track unless 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_unverified versus other: abstention
    39 % → 20 % with the same recall and no new false flags. Commit 1ca9c12, merge 021bcb4. Applied to the
    installed copy by install.py --target claude-code on 2026-10-18 (installed claude_jev.py matches the repository).

Not changed, on purpose

  • No weight or threshold changed. The confidence floors stay 0.65 (low risk), 0.80 (medium) and 0.90
    (high), and risk (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 on status, 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)

Pre-release

Choose a tag to compare

@sophia-phillipa sophia-phillipa released this 17 Oct 22:00

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-hook skill (/master-jev-hook:master-jev-hook);
  • the MCP server with the JEV tools (request_decision, jev_classify, jev_verify, jev_score, jev_rank), named mcp__plugin_master-jev-hook_master-jev-hook__<tool>;
  • the same Claude Code hooks install.py registers (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

Choose a tag to compare

@sophia-phillipa sophia-phillipa released this 28 Sep 15:07

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 of CLAUDE.md and 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_score first, 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.

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

Choose a tag to compare

@sophia-phillipa sophia-phillipa released this 26 Sep 18:59

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 SessionStart systemMessage. Hook timeout raised from 3 s to 5 s.

Documentation

  • README split into README.md (English) and README.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