open-standards/joulecontract/joulecontract-rs/Cargo.toml
Transaction Science 31093b2680 family: the methodology layer, made auditable — spec, review, vericoding
The field converged on spec-driven development with two-stage review
(Superpowers, spec-kit, Amplifier), but every artifact in that consensus is
prompt-enforced testimony. These three crates make the methodology
checkable, in the family's house style (canonical det-CBOR, content
addresses, Ed25519 over id ‖ context preimages):

- joule-code-spec: the Spec artifact — intent + individually addressable
  clauses (requirements, constraints, and first-class NON-GOALS), signed
  and content-addressed, revisions chained by parent. A signed Citation
  binds a coding op to the clauses it claims to implement (the op stays
  wire-identical; traceability is additive, like the receipt). coverage()
  is the deterministic audit: open obligations, cited non-goals (a flag,
  not a pass), and invalid citations — recorded, never silently dropped.
  Completes the chain spec → clause → op → receipt.

- joule-code-review: two-stage review (spec-compliance, then quality) as
  signed rounds. Separation of duties is ENFORCED, not advised: a review
  whose reviewer key equals the op author's key fails verification —
  self-approval is structurally void. RequestChanges without findings is
  malformed; approval() audits the latest verified round per stage, with
  rejected rounds kept on the record (the cost of convergence is part of
  the artifact).

- joulecontract-proof: vericoding for the contract — each obligation with
  an explicit Formalization (statement + grounding tag; this crate NEVER
  invents one) becomes a ProofGoal citing the contract's content address
  and runs the JouleProof cascade. Per-obligation ledger: Proved (full
  CascadeResult, cache flywheel included) / Unproved (attempts + joules on
  record) / Unformalized (demoted, never dropped). discharged() is true
  only when every obligation proved — a contract is not "mostly"
  discharged.

16 new tests across the three crates; clippy clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-10 17:45:47 -04:00

37 lines
1 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/joulecontract-schema",
"crates/joulecontract-receipt",
"crates/joulecontract-seal",
"crates/joulecontract-amend",
"crates/joulecontract-wire",
"crates/joulecontract-conformance",
"crates/joulecontract-proof",
]
[workspace.package]
version = "0.6.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
rust-version = "1.85"
[workspace.dependencies]
joulecontract-schema = { path = "crates/joulecontract-schema" }
joulecontract-receipt = { path = "crates/joulecontract-receipt" }
joulecontract-seal = { path = "crates/joulecontract-seal" }
joulecontract-amend = { path = "crates/joulecontract-amend" }
joulecontract-wire = { path = "crates/joulecontract-wire" }
sha2 = "0.10"
base64 = "0.22"
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand = "0.8"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
hex = "0.4"
thiserror = "2"
[workspace.lints.clippy]
all = "warn"