Repository navigation
Conversation
Three checks an agent runs inside a workflow, none of them unattended. The packet check reads structure in code and asks of each binding statement whether an implementation reaching the same observable behaviour another way would still violate it, which is mechanism stated as contract. The change check judges each changed file for unfinished behaviour, untested behaviour, a dropped failure path, ported mechanism, and work beyond the intent. --intent carries the packet and the issue so scope is judged against what the change is for rather than its own commit messages; --questions asks the change's own questions, derived from the packet's test matrix. The coverage check reports which invariants the test suites reach, keeping a tag, a judgement, and nothing at all in separate columns. The playbooks say where each belongs and what each cannot settle.
enmand
force-pushed
the
knowledge-drift-check
branch
from
September 20, 2026 03:30
1097e3d to
e1026aa
Compare
6 tasks done
enmand
force-pushed
the
knowledge-drift-check
branch
from
September 20, 2026 11:07
d567eaa to
e1026aa
Compare
Contributor
Author
|
Closing unmerged. The checks here judge rather than verify, and their errors correlate with the agent writing the code, so they are not verification. Invariant coverage produced real findings as triage — a mis-tagged DWN-AUTH-003 test, seven untagged-but-covered invariants, four invariants that state distinctions no test can prove, and a probable gap in DWN-AUTH-006 — and those are recorded here for whoever acts on them. The deterministic path to the same goal is the cross-runtime corpus in enbox-rust-core#252 and enbox#1660. |
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.
Summary
Stacked on #25, which carries the checks that run unattended. These three run inside an agent workflow, where a person or a reviewing agent acts on the output.
Packet check (
tools/check_packet.py) — before approval. Structure is read in code: required sections, rows in the assumptions and test-matrix tables, cited invariant IDs that exist. Each binding statement is then asked whether an implementation producing the same observable behaviour by another route would still violate it. A yes means mechanism stated as contract, which forbids the idiomatic substitutionsimplement-contract.mdexplicitly allows. One further question asks whether the packet presents parity behaviour as normative DWN semantics.Change check (
tools/check_change_quality.py) — before handing off, and during review. Per changed file, in whatever language it is written in: unfinished behaviour behind a finished-looking surface, behaviour no test exercises, a dropped or panicking failure path, mechanism fighting the local idiom, and work beyond the intent.--intentcarries the approved packet and the issue, so scope and coverage are judged against what the change is for rather than against its own commit messages.--questionsasks the change's own questions, derived from the packet's test matrix; a file-scoped question rides with the built-ins at no extra request.This does not replace
cargo clippy,cargo test,tscoreslint. Both playbooks say to run those first, because they decide their questions exactly. These are the questions those tools cannot see.Coverage check (
tools/check_invariant_coverage.py) — what the suites actually reach. Tests naming an invariant are found in code, candidates by name overlap are judged by name, and the best are judged again with their source in view, always against the same question: would this test fail if the rule were violated?What the first real run found
Across 8,347 tests and 56 invariants: 28 tagged and judged covering, 9 tagged but not judged covering, 7 untagged but judged covering, 12 with nothing found.
Reading the nine overclaiming tags by hand:
Seven invariants have coverage nobody tagged, including DWN-AUTH-007 at 0.84 by a test currently tagged DWN-AUTH-003.
Source / provenance checklist
spec-revieweddate changed.upstream-baselineorrevieweddate changed.Behavior-change checklist
Not applicable. No engine behaviour changes, and no invariant statement is edited. The coverage findings above are reported, not acted on.
Drift