|
| 1 | +# SPDX-License-Identifier: CC-BY-SA-4.0 |
| 2 | +# did-you-actually-do-that.scorecard.a2ml |
| 3 | +# Hand-authored source. Regenerate the dashboard with: just scorecards |
| 4 | +# Schema: .machine_readable/scorecards/scorecard.schema.json |
| 5 | + |
| 6 | +[scorecard] |
| 7 | +spec_id = "did-you-actually-do-that" |
| 8 | +version = "1.0.0" |
| 9 | +assessed_date = "2026-07-03" |
| 10 | +assessor = "estate-audit" |
| 11 | + |
| 12 | +[[must]] |
| 13 | +id = "M1" |
| 14 | +text = "DYADT MUST define a typed, machine-checkable claim format." |
| 15 | +system = "did-you-actually-do-that/spec/CLAIM-FORMAT.adoc (normative claim classes + required fields)" |
| 16 | +status = "pass" |
| 17 | +evidence = "spec/CLAIM-FORMAT.adoc present; 7 claim classes and required-field table defined; example CLAIMS.a2ml shipped." |
| 18 | +effects = "Without a fixed claim format the parallel production verifier has no contract to build against." |
| 19 | + |
| 20 | +[[must]] |
| 21 | +id = "M2" |
| 22 | +text = "DYADT MUST ship a verifier that re-derives outcomes from primary evidence and can REFUTE a false claim." |
| 23 | +system = "scripts/verify-claims.sh, exercised by scripts/tests/wave4-dyadt-test.sh" |
| 24 | +status = "pass" |
| 25 | +evidence = "wave4-dyadt-test.sh (7/7) asserts a false command is REFUTED despite an honest-sounding statement; verifier never reads back the agent's evidence field." |
| 26 | +effects = "A verifier that trusted the statement would be theatre — the whole point is mechanical refutation." |
| 27 | + |
| 28 | +[[must]] |
| 29 | +id = "M3" |
| 30 | +text = "Verdicts MUST be exactly confirmed|refuted|unverifiable, and unverifiable MUST be loud (non-passing)." |
| 31 | +system = "scripts/verify-claims.sh (exit 1 on any refuted or, by default, unverifiable)" |
| 32 | +status = "pass" |
| 33 | +evidence = "wave4-dyadt-test.sh asserts refuted -> non-zero exit; all-confirmed -> exit 0; VERIFICATION-PROTOCOL.adoc fixes the three-verdict contract." |
| 34 | +effects = "Silent 'assumed pass' would reintroduce the false-green disease DYADT exists to cure." |
| 35 | + |
| 36 | +[[must]] |
| 37 | +id = "M4" |
| 38 | +text = "A conformance vector suite MUST exist so any verifier can be validated against shared ground truth." |
| 39 | +system = "did-you-actually-do-that/spec/conformance/run-conformance.sh (+ 6 vector pairs)" |
| 40 | +status = "pass" |
| 41 | +evidence = "run-conformance.sh passes 6/6 vectors covering confirmed/refuted/unverifiable/incompatible-verifier/manual-only." |
| 42 | +effects = "Without shared vectors the reference and production verifiers could silently diverge." |
| 43 | + |
| 44 | +[[must]] |
| 45 | +id = "M5" |
| 46 | +text = "The change introducing DYADT MUST dogfood it: a CLAIMS.a2ml verified in CI." |
| 47 | +system = ".github/workflows/dyadt-verify.yml runs scripts/verify-claims.sh CLAIMS.a2ml" |
| 48 | +status = "pass" |
| 49 | +evidence = "Root CLAIMS.a2ml ships 7 claims about this change; dyadt-verify.yml runs the verifier + conformance suite on push/PR." |
| 50 | +effects = "If a claim here were false, CI is refuted and fails loudly — the spec proves itself on itself." |
| 51 | + |
| 52 | +[[should]] |
| 53 | +id = "S1" |
| 54 | +text = "DYADT SHOULD specify an append-only, dual-signed consequence ledger and a per-actor confirmation rate." |
| 55 | +system = "did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc + .machine_readable/ledger/ format" |
| 56 | +status = "pass" |
| 57 | +evidence = "CONSEQUENCE-LEDGER.adoc defines the entry format, the confirmation-rate formula, and how Tier 3 MAY gate on it." |
| 58 | +effects = "Verification without memory cannot escalate on a repeatedly-over-claiming actor." |
| 59 | + |
| 60 | +[[should]] |
| 61 | +id = "S2" |
| 62 | +text = "The PLASMA naming collision SHOULD be resolved and recorded in canon." |
| 63 | +system = "did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc + CANONICAL-NAMES.adoc entry" |
| 64 | +status = "pass" |
| 65 | +evidence = "NAMING-RESOLUTION.adoc splits DYADT (claim verification) from PLASMA (licence/exactness); a DYADT/PLASMA entry is added to CANONICAL-NAMES.adoc." |
| 66 | +effects = "Ambiguous 'grounded by PLASMA' references would keep entangling licence exactness with claim verification." |
| 67 | + |
| 68 | +[[should]] |
| 69 | +id = "S3" |
| 70 | +text = "The verifier SHOULD implement the network verifiers (ci-run, issue-state, pr-state) against real forge/CI APIs." |
| 71 | +system = "none — the reference verifier returns 'unverifiable: needs-network-verifier' for network classes" |
| 72 | +status = "fail" |
| 73 | +effects = "ci-green / issue-closed / pr-merged claims cannot be confirmed by the reference impl; the production verifier in hyperpolymath/did-you-actually-do-that must implement them (chartered)." |
| 74 | + |
| 75 | +[[could]] |
| 76 | +id = "C1" |
| 77 | +text = "Tier-3 contractiles COULD block pre_merge on an actor's DYADT confirmation rate." |
| 78 | +system = "none (ledger-gate.sh is illustrative in CONSEQUENCE-LEDGER.adoc, not implemented)" |
| 79 | +status = "aspirational" |
| 80 | +effects = "A live consequence gate is the end state; it depends on the production ledger writer existing first." |
| 81 | + |
| 82 | +[[could]] |
| 83 | +id = "C2" |
| 84 | +text = "The ledger COULD be a central estate-wide store rather than per-repo." |
| 85 | +system = "none" |
| 86 | +status = "aspirational" |
| 87 | +effects = "Cross-repo actor reputation needs a central ledger; a reach target, not a current gap." |
0 commit comments