jcp: C25 — flow was a declared clause with no check; now it has one #357
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/c27-flow-conformance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
§9 has listed
C25 — flowas a conformance clause for as long as the clause existed, and the harness never had it. That is worse than a missing test: it is a published list of conformance classes claiming a class the pack cannot run.Verified before writing anything
A declared gap is not evidence of one, so I checked:
// control flowcomment;jcp-flowis not even a dependency ofjcp-conformance, so no check could have used it;jcp-flowis the wrong crate anyway — it is provenance scanning (L17–L20, content windows). The clause is about the decision: a grant's ceiling, the enforcement point's taint floor, attenuation. That lives injcp_schema::flowandjcp-runtime, both already dependencies, so the check needs no new dependency.What C25 asserts
Each property the clause states, separately, so a failure names which one broke:
Falsification — against the implementation, not the check
The only direction that means anything for a conformance clause. Four mutations of
flow_gateandceiling_of:All four caught, each with its own message, so the clause discriminates between the properties rather than failing generically. (Learned from C26 in #352: mutating the check only makes it vacuous, and a vacuous check passes.)
The other direction, too
The harness has carried a
C19(injection resistance) that §9 never listed. §9 now lists it. The spec's classes and the harness's checks are both C1–C26 and agree item for item.One correction worth recording
I first wrote this as
C27, taking the next free id. That was wrong: §9 had already assignedC25to flow, and implementing a different id would have recreated the asymmetry this PR exists to close. The branch name still saysc27; the clause does not.Verification
cargo check --workspace --all-targets --locked(jcp-rs) — exit 0cargo test --workspace --locked— exit 0, 64 test binaries green, no failurescargo clippy -p jcp-conformance --all-targets --no-deps --locked -- -D warnings— 0 findingscheck-spec-refs1676 citations / 16 standards ·check-tests-in-ciclean ·check-lockfiles42 current ·check-comparative-proseclean🤖 Generated with Claude Code