Grand Quilt P0.2+P0.3: Jev judgment gate + the captain's VIEW (stacked on #1) - #3
Merged
Merged
Conversation
added 2 commits
September 26, 2026 08:59
JEV session 16 (vessel judgment oracle) fed a deliberately degraded worklog event β target:'' summary:'did some stuff' β through the emitter. The hand-rolled validator passed it: every required field was *present*. Jev scored its verifiability 0.04 vs 0.95 for the clean event. Deterministic validators check shape; judgment models check substance. This closes the shape half of the gap: string fields must be non-empty, event_id/timestamp included. Two regression tests.
jev_gate.py β the attention layer. Events that make claims about work
(worklog, task_completion, promotion) get a substance judgment from a
decision-model backend before they earn unflagged WAL space. Below
threshold the claim does NOT enter the WAL as work β an EFFECT
vessel/flags line referencing it does: legible, replayable, never silent,
never crashing the loop (same guarantees as the emitter). Structural
events (identity, heartbeat, session bookkeeping) are not claims and are
never substance-judged. Offline -> receipts {'jev': 'skipped'}; the gate
degrades to a no-op, not a wall. Policy from JEV session 16: nouls aimed
at the specific claim, flag-not-block, confidence routes.
projection.py β the last mile. render_state_md/json derive the captain's
view (identity, career trajectory, worklog digest, judgment receipts,
flag counts) from the WAL alone β 30 seconds of reading instead of a diff
nobody opened.
quilt_emit.py β ingest() refactored onto a public append_line() so flag
lines share the exact same chain-seal + fold path; ingest(event, extra=)
lets receipts ride the line under the hash seal.
Demo: examples/captains_view.py β real fixture stream through gate +
projection; exactly one flag (the deliberately vague worklog), verify()
green. 280 passed (261 prior + 19 new), FAIL-first throughout.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds (stacked on PR #1 β merge that first, then retarget this to master)
The design doc (PR #2, docs/GRAND-QUILT.md) names three P0s. This is P0.2 and P0.3 built and green.
P0.2 β
git_agent/jev_gate.pyβ the attention layerEvents that make claims about work (worklog, task_completion, promotion) get a substance judgment from a decision-model backend before they earn unflagged WAL space. Validated live this morning (JEV session 16): a degraded worklog scores 0.04 vs 0.95 clean on "is this verifiable work."
EFFECT vessel/flagsline referencing it does. Legible, replayable, never silent, never crashes the loop.{"jev": "skipped"}; the gate degrades to a no-op, not a wall.available()+decide_batch()fits; the production backend is jev-quilt's TypeSafeBackend (duck-type compatible, zero new deps).P0.3 β
git_agent/projection.pyβ the captain's VIEWrender_state_md/jsonderive the one page a human reads β identity, career trajectory, worklog digest, judgment receipts, flag counts β from the WAL alone. Thirty seconds of reading instead of a diff nobody opened.Also
quilt_emit:ingest()refactored onto publicappend_line()so flag lines share the exact chain-seal + fold path;ingest(event, extra=)lets receipts ride under the hash seal.examples/captains_view.py: real fixture stream through gate + projection β exactly one flag (the deliberately vague worklog),verify()green.Verification
python3 -m pytest tests -qβ 280 passed (261 prior + 10 gate + 9 projection), FAIL-first throughout.python3 examples/captains_view.pyMerge order
#1 (emitter) β retarget this to master β #2 (design doc, docs-only, independent).