Ships `core demo audit-tour` as the first investor-facing
walkthrough of the ADR-0027→0041 pack-layer architecture. Four
scenes, each making one falsifiable claim no transformer-LLM
wrapper can reproduce:
S1. Identity is geometric, not prompt-veneer.
Three identity packs load three structurally distinct
manifolds (ADR-0027). Distinct alignment thresholds +
distinct hedge phrases from JSON pack files, not prompts.
S2. Safety is the universal floor.
Runtime-checkable safety violation produces a deterministic
typed refusal string (ADR-0036). walk_surface preserved
for audit. Byte-identical across runs.
S3. Ethics commitments choose their remediation.
Per-commitment opt-in (ADR-0037 / ADR-0038): pure-helper
evidence (should_inject_hedge + inject_hedge worked
example) against a synthetic violation. Default pack
returns False; deployment pack (with acknowledge_uncertainty
in hedge_commitments) returns True. Pack JSON drives the
policy tier.
S4. Deterministic replay across runtime instances.
Two fresh ChatRuntime instances, same input, same packs.
Byte-identical JSONL audit lines (ADR-0040).
Load-bearing evidence over surface inspection: the draft compared
response.surface across packs. Cold-start hits stub path; pack
differences don't manifest at the surface by design. Shipped
version pulls evidence from structural surfaces (manifold fields,
opt-in lists, pure helpers) — what actually distinguishes the
packs. No fake claims.
Scene 3 uses synthetic verdict (not chat()) because ADR-0038
specifies stub path skips hedge by design. Main-path end-to-end
is asserted in tests/test_hedge_injection.py and referenced in
the tour's evidence comment.
Test gate: tests/test_audit_tour.py asserts
result["all_claims_supported"] is True. Any scene flipping to
False fails the test and catches the regression.
CLI integration:
core demo audit-tour # narration to stdout
core demo audit-tour --json # structured report, no narration
Files:
- evals/audit_tour/__init__.py + run_tour.py (new) — 4-scene tour
- core/cli.py — audit-tour target on demo subcommand;
_AUDIT_TOUR_PREAMBLE; --json suppresses narration
- tests/test_audit_tour.py (new) — 8 tests gating all four claims
- docs/decisions/ADR-0042-audit-tour-demo.md (new) — decision record
- docs/decisions/README.md — ADR index now lists ADR-0027..0042
+ Pack-Layer chain section describing the three-tier composition,
remediation tiers, and verification surface
- docs/PROGRESS.md — adds core demo audit-tour to verify cheatsheet
- README.md — adds core demo audit-tour to commands cheatsheet
Verification:
- Combined pack-layer + telemetry + tour suite: 220 green
(was 212 after ADR-0041; +8)
- CLI suites unchanged: smoke 67, runtime 19, cognition 121
- core eval cognition: intent 100%, versor_closure 100% (baseline)
- Manual: core demo audit-tour and --json both correct;
all_claims_supported = true
210 lines
9.7 KiB
Markdown
210 lines
9.7 KiB
Markdown
# ADR-0042: Audit Tour Demo — `core demo audit-tour`
|
|
|
|
**Status:** Accepted (2026-05-17)
|
|
**Author:** Joshua Shay + planner pass
|
|
**Companion docs:** [`ADR-0027` through `ADR-0041`](.)
|
|
|
|
## Context
|
|
|
|
The pack-layer architecture story (ADR-0027 → ADR-0041) is
|
|
load-bearing but technical. The strategic gap raised externally:
|
|
|
|
> Where's the demo I can show a non-technical investor in 90
|
|
> seconds?
|
|
|
|
`core pulse` exists; `core demo phase5 / phase6 / all` exist and
|
|
support the ADR-0024 chain claims. Neither is the *audit-and-policy*
|
|
story. The four pack-layer claims that should be the headline:
|
|
|
|
* identity is geometric and load-bearing (not prompt-veneer);
|
|
* safety is the universal floor, with deterministic typed refusal;
|
|
* ethics commitments choose their remediation per pack (audit /
|
|
hedge / refuse);
|
|
* the same input always produces byte-identical audit lines.
|
|
|
|
These are *exactly* the claims that distinguish CORE from any LLM
|
|
wrapper, and the test suite already proves all four. The missing
|
|
piece was a single-command narrative artifact that demonstrates each
|
|
claim with live evidence from the runtime, runs end-to-end with no
|
|
external dependencies, and emits both a human narration and a stable
|
|
machine-readable JSON report.
|
|
|
|
## Decision
|
|
|
|
Ship `core demo audit-tour` as a new target on the existing `core
|
|
demo` subcommand. The tour runs four scenes; each scene exercises
|
|
the live pack-layer surface and reports a falsifiable result.
|
|
|
|
### Scene contract
|
|
|
|
| Scene | Claim | Evidence |
|
|
|---|---|---|
|
|
| **S1** | Identity is geometric, not prompt-veneer. | Load three identity packs (`default_general_v1`, `generosity_first_v1`, `precision_first_v1`); report distinct alignment thresholds and hedge phrases. Differences come from the JSON pack files, not from prompts. |
|
|
| **S2** | Safety is the universal floor. | Register a forced runtime-checkable safety predicate; show the deterministic typed refusal string and that `surface != walk_surface` (evidence preserved on `walk_surface`). |
|
|
| **S3** | Ethics commitments choose remediation. | Two runtimes; the second's ethics pack opts `acknowledge_uncertainty` into `hedge_commitments`. Construct a synthetic runtime-checkable violation and show `should_inject_hedge` returns False on the default pack and True on the deployment pack; print the hedge prefix and a worked example of `inject_hedge`. Stub/main path is orthogonal — the pack-driven policy decision is what's being demonstrated. |
|
|
| **S4** | Deterministic replay across runtime instances. | Two fresh `ChatRuntime` instances; same input; the emitted JSONL audit lines (ADR-0040) are byte-identical. |
|
|
|
|
### Design choices
|
|
|
|
* **Load-bearing evidence over surface inspection.** The first draft
|
|
compared `response.surface` across packs and across opt-in/no-opt-in.
|
|
This was weak: cold-start hits the stub path, where pack differences
|
|
don't manifest in the surface (by design). The shipped version
|
|
pulls evidence from the *structural* surface — loaded manifold
|
|
fields, pack opt-in lists, pure helper functions — which is what
|
|
actually distinguishes the packs. No fake claims.
|
|
* **Pure-helper Scene 3.** Scene 3 exercises `should_inject_hedge`,
|
|
`build_hedge_prefix`, and `inject_hedge` against a synthetic
|
|
ethics verdict rather than relying on `chat()` to fire a hedge.
|
|
Rationale: ADR-0038 specifies that the stub path skips hedge
|
|
injection by design, so a cold-start chat call would never hedge
|
|
even with the opt-in. The honest demonstration is "given a
|
|
runtime-checkable violation, the pack-driven policy decides the
|
|
remediation," which is exactly what the pure helpers verify.
|
|
End-to-end main-path hedge injection is covered in
|
|
`tests/test_hedge_injection.py` and referenced in the tour's
|
|
evidence comment.
|
|
* **`emit_json` toggles all narration via a module-level
|
|
`_VERBOSE` flag.** When `--json` is passed, the entire scene
|
|
print stack short-circuits to a no-op so the only output is the
|
|
JSON report from the CLI command. This keeps the JSON parseable
|
|
for downstream tooling.
|
|
* **No external dependencies.** No LLM API calls, no network, no
|
|
filesystem writes beyond the existing `_write_results_index`
|
|
hook on `core demo`.
|
|
* **Deterministic.** Every claim flag — `all_claims_supported`,
|
|
the per-scene booleans, the byte-identity check — is
|
|
reproducible across runs. Test harness verifies this.
|
|
|
|
### Wire format
|
|
|
|
The structured report (`run_tour(emit_json=True)`) returns:
|
|
|
|
```json
|
|
{
|
|
"all_claims_supported": true,
|
|
"scene_1_identity_geometric": {
|
|
"distinct_alignment_thresholds": 3,
|
|
"distinct_hedge_phrases": 2,
|
|
"pack_shapes": { /* per-pack value_axes_count, alignment_threshold, hedge_soft */ }
|
|
},
|
|
"scene_2_safety_typed_refusal": {
|
|
"refusal_emitted": true,
|
|
"refused_surface": "I cannot proceed — boundary violated: safety:preserve_versor_closure",
|
|
"walk_surface": "I don't know — insufficient grounding for that yet."
|
|
},
|
|
"scene_3_ethics_hedge_opt_in": {
|
|
"default_fires": false,
|
|
"deployment_fires": true,
|
|
"hedge_prefix": "Perhaps",
|
|
"hedged_surface": "Perhaps the answer is X",
|
|
/* + pack opt-in lists + sample surface */
|
|
},
|
|
"scene_4_deterministic_replay": {
|
|
"byte_identical": true,
|
|
"line_1_sha_preview": "...",
|
|
"line_2_sha_preview": "..."
|
|
}
|
|
}
|
|
```
|
|
|
|
### CLI integration
|
|
|
|
```text
|
|
core demo audit-tour # human narration to stdout
|
|
core demo audit-tour --json # structured report to stdout, no narration
|
|
```
|
|
|
|
Lives alongside the existing `phase5` / `phase6` / `all` /
|
|
`list-results` targets.
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
|
|
* **First investor-grade walkthrough of the pack-layer story.**
|
|
Runs end-to-end, no external dependencies, in seconds. Every
|
|
claim is testable in the same repo.
|
|
* **Reusable substrate.** The pack-shape comparison in Scene 1,
|
|
the pure-helper evidence in Scene 3, and the cross-instance
|
|
replay check in Scene 4 are all sub-components that can be reused
|
|
for per-domain pack ratification demos and replay benchmarks
|
|
down the line.
|
|
* **Honest evidence.** No staged inputs, no LLM-prompt-engineering
|
|
tricks. The evidence comes from the same code paths the test
|
|
suite exercises. Anyone reading
|
|
`tests/test_audit_tour.py` can verify the four claim flags hold.
|
|
* **JSON contract is stable.** Downstream tooling (dashboards,
|
|
CI gates, audit reports) can consume the JSON report and detect
|
|
regressions automatically.
|
|
* **Test gate.** `tests/test_audit_tour.py` asserts
|
|
`all_claims_supported is True` — if any scene's claim flips to
|
|
False, the test fails and we catch the regression before it
|
|
ships.
|
|
|
|
### Negative / risks
|
|
|
|
* **Scene 3 is a synthetic-verdict demonstration, not an
|
|
end-to-end chat call.** This is an honest trade: ADR-0038 says
|
|
stub paths skip hedge by design, so a cold-start chat call
|
|
cannot demonstrate hedge injection end-to-end without first
|
|
priming the vault. The pure-helper evidence is load-bearing for
|
|
the policy claim being made; main-path end-to-end is asserted
|
|
separately by `tests/test_hedge_injection.py`. The tour text
|
|
explains this trade-off.
|
|
* **Scene 1's surface comparison was removed.** The first draft
|
|
printed `response.surface` per pack and tried to claim "three
|
|
different surfaces." This was false on cold start. The
|
|
shipped Scene 1 reports structural pack differences instead,
|
|
which is honest but less visually striking than the original
|
|
pitch implied. Future work (vault priming for the demo, or a
|
|
curated input that reaches the main path) could restore the
|
|
surface-level comparison.
|
|
* **No vault priming for cold-start demo coverage.** The tour
|
|
intentionally runs on a cold vault to keep determinism and
|
|
speed. A future scene could ratify a tiny domain pack and
|
|
demonstrate main-path articulation, but that's its own ADR.
|
|
* **Module-level `_VERBOSE` flag is a small global.** Acceptable
|
|
for a top-level demo entry point; would not survive in shared
|
|
library code.
|
|
|
|
## Verification
|
|
|
|
* `tests/test_audit_tour.py` — 8 tests covering:
|
|
`all_claims_supported` flag; Scene 1 distinct
|
|
thresholds/hedges; Scene 2 typed refusal + walk-surface
|
|
preservation; Scene 3 pack-drives-remediation (default off,
|
|
deployment on, hedged surface starts with hedge prefix); Scene 4
|
|
byte-identical replay; narration prints under no-JSON;
|
|
`emit_json=True` suppresses narration entirely; JSON report
|
|
round-trips through `json.dumps/loads`.
|
|
* Combined pack-layer + telemetry + tour suite: **220 tests, all
|
|
green** (was 212 after ADR-0041; +8).
|
|
* CLI suites unchanged: smoke 67, runtime 19, cognition 121.
|
|
* `core eval cognition`: intent 100%, versor_closure 100% —
|
|
baseline preserved.
|
|
* Manual smoke: `core demo audit-tour` and `core demo audit-tour
|
|
--json` both produce expected output; `all_claims_supported`
|
|
is `true`.
|
|
|
|
## Open questions deferred to a future ADR
|
|
|
|
1. **Vault priming for main-path scenes.** A precomputed pack
|
|
that seeds the vault with the demo input's terms would let
|
|
Scene 1 demonstrate *surface-level* divergence across identity
|
|
packs (not just structural divergence).
|
|
2. **Per-domain ratified pack demo.** Once a medical or legal
|
|
ethics pack is ratified end-to-end, the tour gains a fifth
|
|
scene: "domain pack swap mid-session, same engine, different
|
|
refusal/hedge behavior." This is the natural extension that
|
|
completes the BD pitch.
|
|
3. **Replay benchmark vs. transformer baseline.** ADR-0040's
|
|
JSONL sink + ADR-0042's byte-identity check could be wired
|
|
into a published benchmark: "N runs, byte-identical N times."
|
|
The transformer comparison number would speak for itself.
|
|
4. **Audit tour video / asciinema recording.** The tour is built
|
|
to be terminal-recorded with no edits; producing a 90-second
|
|
asciinema cast is purely operational, not architectural.
|
|
5. **`core demo audit-tour --scene N`** — run a single scene at
|
|
a time. Useful when debugging or when only one claim needs
|
|
live evidence.
|