open-standards/joulespec/conformance/v1/harvest.toml
Transaction Science 1a3cca29c2
Some checks failed
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 7s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 3m0s
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
standards workspaces build + test / jouleclaw-rs (-nodebug, jouleclaw/jouleclaw-rs, -p jouleclaw-energy --features rapl,nvml, jouleclaw-rs, linux-arm64, -C target-feature=+fp16) (pull_request) Has been cancelled
standards workspaces build + test / aac-rs (aac-conformance, aac/aac-rs, aac-rs, linux-arm64) (pull_request) Has been cancelled
standards workspaces build + test / arl-rs (arl/arl-rs, arl-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / eoc-rs (eoc/eoc-rs, -p eoc-meter --features cuda, eoc-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / jcp-rs (jcp-conformance, jcp/jcp-rs, -p jcp-energy --features nvml, jcp-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (joule-ui/joule-ui-rs, joule-ui-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / joulecontract-rs (joulecontract/joulecontract-rs, joulecontract-rs, linux-arm64, true) (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (joulehook/joulehook-rs, joulehook-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / joulespec-proofs (joulespec/joulespec-rs, joulespec-proofs, true, macos) (pull_request) Has been cancelled
standards workspaces build + test / map-rs (map-conformance, map/map-rs, map-rs, linux-arm64) (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (mesh/mesh-rs, -p mesh-engine-gguf -p mesh-openai --features mesh-engine-gguf/gguf,mesh-openai/server, mesh-rs, linux-arm64) (pull_request) Has been cancelled
standards workspaces build + test / openpay (openpay, openpay, linux-arm64) (pull_request) Has been cancelled
standards workspaces build + test / pool-rs (pool/pool-rs, pool-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (proof-conformance, proof/proof-rs, proof-rs, linux, true) (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (sandbox-conformance, sandbox/sandbox-rs, -p sandbox-tee --features amd-kds,intel-pcs, sandbox-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (sense/sense-rs, sense-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (smart-byte/smart-byte-rs, smart-byte-rs, linux) (pull_request) Has been cancelled
standards workspaces build + test / joulespec-rs (true, joulespec/joulespec-rs, true, joulespec-rs, linux) (pull_request) Has been cancelled
joulespec: the producer reads someone else's specification, not only this one
The extractor recognised exactly one document shape — a numbered list of
bolded, labelled items under a named section — which made the producer a tool
for documents written like this family's own. Which shape a document uses is a
fact about the document, so the manifest declares it, and three shapes cover
what requirements are actually written as: a numbered conformance list, a
bulleted requirement list, and a heading per requirement carrying its
identifier.

Only the item *opener* varies. The section is still named, the floor still
fails closed, continuation lines still join with one space, and a shape that
matches nothing is still an error rather than an empty clause list. Under the
heading shape a blank line does not close an item, because a requirement's
prose runs over paragraphs; the next heading of the same depth or shallower
closes it, and a heading carrying no identifier is a grouping heading rather
than a requirement. A heading with no prose under it states nothing and is
dropped: addressing the empty string would create an obligation nobody wrote
and then grade it like any other.

The load-bearing property is that none of this moved an existing obligation.
The default shape is what an undeclared manifest selects, and the test pinning
that is not a recording of what the new parser happens to produce — the
address was computed by running the same fixture through the parser as it
stood before the change, in a worktree at the previous commit, and the two
agree. The reference manifest deliberately declares no shape, so it stands as
that check too.

SPEC §8 gains the limit this exposes: an obligation address depends on how the
clause was extracted, so two producers reading one document under different
conventions state different obligations about the same prose and both are
correct. A conforming producer must therefore disclose the convention it
applied, because the document alone is not enough to recompute the addresses.

There is deliberately no shape-free convenience wrapper. A caller that did not
have to name a shape would read some documents correctly and others silently
wrongly, and the obligation addresses are computed from whatever it captured.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-11-01 20:57:57 -05:00

397 lines
18 KiB
TOML

# JouleSpec applied to its own reference implementation.
#
# The clauses are the conformance items of SPEC.md §7, read from the published
# document rather than copied here, so the manifest cannot drift from the
# specification: reword an item and its obligation address moves, and every
# witness bound to the old wording stops applying (SPEC §4.2).
#
# Three things below are human judgements the standard refuses to guess:
#
# * which check stands for which obligation -- the mapping from prose to
# code, which is the same act as formalizing a clause (SPEC §2.6);
# * each check's `anchor` -- where its expected values come from, which the
# author of the check knows and nobody else can see (SPEC §2.5);
# * each check's `footprint` -- the inputs whose change could change the
# outcome, since a harness that cannot observe its own reads must not
# guess (SPEC §8).
#
# Each `counter` is a one-occurrence edit that SHOULD make the check fail. If
# it does not, the harvester reports a finding and the clause stays at E2: a
# check that passes while its subject is broken is an oracle that cannot fail.
#
# The keys are single-byte seeds so published vectors are reproducible by
# anyone. They are not secrets and a deployment must pass its own.
workspace = "../../joulespec-rs"
steward = "did:key:joulespec-reference-steward"
[spec]
document = "../../SPEC.md"
section = "7. Conformance"
expect_at_least = 11
# `shape` is deliberately not declared here. Omitting it selects the numbered
# conformance list this family's specifications use, which is what this
# manifest was written against -- so this file also stands as the check that a
# manifest predating the declared shape keeps every obligation address it had.
intent = """
The joulespec/1 reference implementation does what SPEC.md §7 says it does, \
and each claim is evidenced by a check demonstrated capable of failing.\
"""
[artifact]
dirs = ["crates"]
extensions = ["rs"]
# No meter is wired, so energy is wall-clock times a declared draw and is
# graded `estimator`. A measured backend is the listed contributing ask; until
# one exists the figure says what it is.
[energy]
watts = 30.0
provenance = "estimator"
# ── C1 — Addressing ───────────────────────────────────────────────────────
[[evidence]]
clause = "C1"
check = "spec::tests::relabelling_a_clause_moves_no_obligation"
anchor = "specification"
footprint = ["crates/joulespec-core/src/spec.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/spec.rs"
find = 'let doc = json!({ "kind": self.kind.label(), "text": self.text });'
replace = 'let doc = json!({ "label": self.label, "kind": self.kind.label(), "text": self.text });'
breaks = "puts the label back into the obligation address"
[[evidence]]
clause = "C1"
check = "spec::tests::rewording_a_clause_moves_its_obligation"
anchor = "specification"
footprint = ["crates/joulespec-core/src/spec.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/spec.rs"
find = 'let doc = json!({ "kind": self.kind.label(), "text": self.text });'
replace = 'let doc = json!({ "kind": self.kind.label(), "text": "" });'
breaks = "drops the text from the obligation address"
# ── C2 — Validation ───────────────────────────────────────────────────────
[[evidence]]
clause = "C2"
check = "spec::tests::two_clauses_stating_one_obligation_are_refused"
anchor = "specification"
footprint = ["crates/joulespec-core/src/spec.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/spec.rs"
find = "return Err(Error::DuplicateObligation(first, clause.label.clone()));"
replace = "let _ = first;"
breaks = "stops refusing two clauses that state one obligation"
# ── C3 — Signatures ───────────────────────────────────────────────────────
[[evidence]]
clause = "C3"
check = "spec::tests::a_tampered_clause_breaks_the_signature"
anchor = "specification"
footprint = ["crates/joulespec-core/src/spec.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/spec.rs"
find = """ key.verify(&pre, &Signature::from_bytes(&sig)).map_err(|_| Error::BadSignature)?;
self.spec.spec_id()"""
replace = """ let _ = (&pre, &sig, &key);
self.spec.spec_id()"""
breaks = "stops verifying the specification signature at all"
# ── C4 — The ladder ───────────────────────────────────────────────────────
[[evidence]]
clause = "C4"
check = "evidence::tests::a_proof_reaches_e4_only_when_grounded_and_shown_non_vacuous"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = "if grounded && vacuity.is_refuted() { Grade::Proved } else { Grade::Exercised }"
replace = "if grounded { Grade::Proved } else { Grade::Exercised }"
breaks = "lets a possibly-vacuous proof reach E4"
[[evidence]]
clause = "C4"
check = "evidence::tests::a_self_review_is_the_citation_again"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = "if reviewer == author { Grade::Cited } else { Grade::Reviewed }"
replace = "{ let _ = (reviewer, author); Grade::Reviewed }"
breaks = "stops computing independence from key disjointness"
# ── C5 — Evaluation ───────────────────────────────────────────────────────
[[evidence]]
clause = "C5"
check = "conform::tests::a_specification_is_graded_by_its_weakest_owed_obligation"
anchor = "specification"
footprint = ["crates/joulespec-core/src/conform.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = " graded.into_iter().min().unwrap_or(None)"
replace = " graded.into_iter().max().unwrap_or(None)"
breaks = "takes the strongest owed obligation instead of the weakest"
[[evidence]]
clause = "C5"
check = "conform::tests::evaluation_is_deterministic_under_witness_reordering"
anchor = "specification"
footprint = ["crates/joulespec-core/src/conform.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = "grade > current || (grade == current && &witness_id < best)"
replace = "grade >= current"
breaks = "breaks ties by input order instead of by address"
# ── C6 — Drift ────────────────────────────────────────────────────────────
[[evidence]]
clause = "C6"
check = "drift::tests::rewording_one_clause_invalidates_exactly_that_clauses_evidence"
anchor = "specification"
footprint = ["crates/joulespec-core/src/drift.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/drift.rs"
find = ".chain(self.reworded.iter().map(|r| r.was.clone()))"
replace = ".chain(std::iter::empty::<Obligation>())"
breaks = "stops counting a reworded clause's old obligation as invalidated"
[[evidence]]
clause = "C6"
check = "drift::tests::reusing_a_freed_label_is_an_addition_not_a_rewording"
anchor = "specification"
footprint = ["crates/joulespec-core/src/drift.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/drift.rs"
find = "Some(was) if !to_by_obligation.contains_key(was) => reworded.push(Reword {"
replace = "Some(was) => reworded.push(Reword {"
breaks = "mistakes a reused label for a rewording"
# ── C7 — Cost ─────────────────────────────────────────────────────────────
[[evidence]]
clause = "C7"
check = "conform::tests::an_aggregate_is_graded_by_the_weakest_figure_that_fed_it"
anchor = "specification"
footprint = [
"crates/joulespec-core/src/lib.rs",
"crates/joulespec-core/src/conform.rs",
]
[evidence.counter]
file = "crates/joulespec-core/src/lib.rs"
find = " it.into_iter().min()"
replace = " it.into_iter().max()"
breaks = "grades an aggregate by its best figure instead of its worst"
[[evidence]]
clause = "C7"
check = "conform::tests::a_ratio_with_no_work_is_absent_rather_than_zero"
anchor = "specification"
footprint = ["crates/joulespec-core/src/conform.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = """ if total == 0 {
return None;
}"""
replace = """ if total == 0 {
return Some(0);
}"""
breaks = "reports a ratio of nothing as zero rather than absent"
# ── C8 — Receipts ─────────────────────────────────────────────────────────
[[evidence]]
clause = "C8"
check = "receipt::tests::an_ungraded_specification_omits_the_grade_rather_than_sealing_a_floor"
anchor = "specification"
footprint = ["crates/joulespec-core/src/receipt.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/receipt.rs"
find = """ if let Some(grade) = conformance.grade {
map.insert("grade".into(), json!(grade.code()));
}"""
replace = """ map.insert("grade".into(), json!(conformance.grade.map_or("E0", Grade::code)));"""
breaks = "seals a floor grade where none was established"
[[evidence]]
clause = "C8"
check = "receipt::tests::a_receipt_is_byte_identical_for_identical_evidence"
anchor = "specification"
footprint = ["crates/joulespec-core/src/receipt.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/receipt.rs"
find = 'map.insert("steward".into(), json!(steward));'
replace = 'map.insert("steward".into(), json!(format!("{steward}{:?}", std::time::Instant::now())));'
breaks = "makes a receipt depend on when it was sealed rather than on its evidence"
# ── C9 — Footprints ───────────────────────────────────────────────────────
[[evidence]]
clause = "C9"
check = "evidence::tests::the_footprint_is_part_of_what_the_signature_covers"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = '"footprint": self.footprint.iter().map(Address::as_str).collect::<Vec<_>>(),'
replace = '"footprint": Vec::<&str>::new(),'
breaks = "leaves the footprint out of what the signature covers"
[[evidence]]
clause = "C9"
check = "evidence::tests::a_narrowed_witness_survives_a_change_it_did_not_depend_on"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = "self.footprint.iter().all(|a| state.parts.contains(a))"
replace = "self.footprint.iter().all(|a| a == &state.address)"
breaks = "matches footprint members against the whole-state address rather than its parts"
# Added after a harvest finding: the entry above narrows to one footprint
# member, and on a one-element footprint `all` and `any` are the same
# function, so the conjunction itself went unchecked.
[[evidence]]
clause = "C9"
check = "evidence::tests::a_witness_needs_every_footprint_member_not_merely_one"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = "self.footprint.iter().all(|a| state.parts.contains(a))"
replace = "self.footprint.iter().any(|a| state.parts.contains(a))"
breaks = "keeps a witness alive when only some of its footprint survives"
[[evidence]]
clause = "C9"
check = "evidence::tests::a_footprint_that_cannot_be_checked_is_stale"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = " self.footprint.iter().all(|a| state.parts.contains(a))"
replace = " state.parts.is_empty() || self.footprint.iter().all(|a| state.parts.contains(a))"
breaks = "assumes a state it cannot enumerate satisfies every footprint"
# ── C10 — Demonstrated failure ────────────────────────────────────────────
[[evidence]]
clause = "C10"
check = "evidence::tests::an_unstated_anchor_caps_a_falsifiable_check_at_e2"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = " if anchor.is_stated() { Grade::Falsifiable } else { Grade::Exercised }"
replace = " { let _ = anchor; Grade::Falsifiable }"
breaks = "lets a check with no stated anchor reach E3"
[[evidence]]
clause = "C10"
check = "evidence::tests::every_rung_above_e2_rests_on_a_demonstrated_failure"
anchor = "specification"
footprint = ["crates/joulespec-core/src/evidence.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/evidence.rs"
find = " Self::Exercised { .. } => Grade::Exercised,"
replace = " Self::Exercised { .. } => Grade::Falsifiable,"
breaks = "promotes a merely passing check to E3"
# ── C11 — Attestation ─────────────────────────────────────────────────────
[[evidence]]
clause = "C11"
check = "conform::tests::with_no_work_supplied_independence_is_absent_not_assumed"
anchor = "specification"
footprint = ["crates/joulespec-core/src/conform.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = """ let attestation = if implementers.is_empty() {
None"""
replace = """ let attestation = if implementers.is_empty() {
Some(Attestation::Independent)"""
breaks = "assumes independence where no implementer is known"
[[evidence]]
clause = "C11"
check = "conform::tests::agreement_among_implementers_alone_is_not_reproduction"
anchor = "specification"
footprint = ["crates/joulespec-core/src/conform.rs"]
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = """ let any_independent =
!implementers.is_empty() && authors.iter().any(|a| !implementers.contains(a));
if any_independent {"""
replace = """ let any_independent = !implementers.is_empty();
if any_independent {"""
breaks = "calls agreement among implementers reproduction"
# A proof, not a check. C7 says ratios are integer parts-per-million; the two
# checks above cover the provenance rule and the absent-not-zero rule, and
# neither covers whether the arithmetic on the way to the ratio is defined at
# all. That is the half sampling cannot reach: the inputs that break it are a
# `part` above roughly u64::MAX / 1_000_000, which no hand-written case picks.
#
# Measured on this workspace: the mutation below is invisible to the entire
# test suite and refuted by the prover in a fraction of a second. That gap is
# the reason the ladder has a rung above E3.
#
# The grounding is `declared`, so this witness is graded `E2` and not `E4`
# (SPEC §2.6). Nobody independent of its author has confirmed that the
# statement below says what C7 says, and recording the proof at its real rung
# is the point of having the axis.
[[evidence]]
clause = "C7"
check = "proofs::the_ratio_rule_is_total_over_every_input"
anchor = "specification"
footprint = [
"crates/joulespec-core/src/conform.rs",
"crates/joulespec-core/src/proofs.rs",
]
[evidence.formalization]
package = "joulespec-core"
grounding = "declared"
budget_seconds = 300
statement = """
For all part, rest : u64 --- every arithmetic operation performed by
conform::ppm(part, rest) is defined: none overflows and none divides by zero.
Discharged over the whole input domain by the checker's arithmetic checks,
with reachability covers for the absent case, the computed case, the
overflowing-whole case, and a part large enough to overflow the scale in 64
bits.
The companion statement --- that the quotient is bounded by the scale --- is
deliberately not made here. It requires the solver to reason about the output
bits of a 128-bit division and did not converge; see the README.
"""
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = " Some(((u128::from(part) * 1_000_000) / u128::from(total)) as u64)"
replace = " Some((part * 1_000_000) / total)"
breaks = "computes the scale in 64 bits, where a large part overflows it"
# A second proof, on the property an adversary has the clearest incentive to
# break. The statement is about `cap` itself -- the function the evaluator
# calls -- so the counter-artifact below is an edit to the artifact, not to a
# copy of the rule living inside the harness.
[[evidence]]
clause = "C5"
check = "proofs::widening_a_set_can_only_lower_its_cap"
anchor = "specification"
footprint = [
"crates/joulespec-core/src/conform.rs",
"crates/joulespec-core/src/proofs.rs",
]
[evidence.formalization]
package = "joulespec-core"
grounding = "declared"
budget_seconds = 300
statement = """
For every set of at most four graded figures and one added figure ---
conform::cap(set) is None whenever any member is None; otherwise it is Some(b)
for some b belonging to the set, and cap(set + extra) <= b; and cap can empty
only because the added figure was itself absent. Discharged over every
combination of ladder rungs and absences a set of that size admits, with
reachability covers for the strictly-lower, unchanged, emptied and
already-empty cases.
"""
[evidence.counter]
file = "crates/joulespec-core/src/conform.rs"
find = " graded.into_iter().min().unwrap_or(None)"
replace = " graded.into_iter().max().unwrap_or(None)"
breaks = "caps a set by its best figure instead of its worst"