Skip to content

Wave 1 hardening: mechanisms, six-mode doctrine v0.2, CI, full audit pass - #1

Merged
cipherholdingsllc merged 5 commits into
public-safe-v0from
feat/wave1-hardening
Jun 12, 2026
Merged

cipherholdingsllc merged 5 commits into
public-safe-v0from
feat/wave1-hardening

Conversation

@cipherholdingsllc

Copy link
Copy Markdown
Collaborator

What this is

Three commits taking the protocol from doctrine-rich/mechanism-poor to machine-enforced:

  • fa7f2ad (S1): problem-first README (verifiable 60-second quickstart, skeptic FAQ, overhead table) · CI with least-privilege security posture · DCO + doctrine amendment rule · stable-surface registry + guard · six-mode doctrine v0.2 sync (adds standard+, deep-lite) · receipts boundary + empty-by-design field-receipts container
  • b74468a (S2): mandatory negative-memory retrieval gate ("searched, no hits" is valid; missing block halts) · context-fingerprint pre-flight script · truth-state proof contracts ("no proof = one rung lower") · session failure inbox with close-blocking drain · checkpoints + /oz-handoff · leak-scanner local-extension hook · structural eval harness + size ratchet
  • 55de7cf (audit): 12-probe audit pass, 99 findings patched — validator now validates examples against the schema files (the prior shadow key-list let schema-invalid fixtures pass) · npm tarball passes its own test · receipts gitignore anchored · private literals out of the public scanner · full flow-surface coherence · 65 structural assertions

Verification

npm test green end-to-end locally: 16 schemas + 25 fixtures (schema-derived), 84 docs link-checked, leak scan, stable surfaces intact, 65 structural evals. Tarball self-test passes. All commits DCO-signed.

This PR is also the first CI execution on runners — test + dco jobs prove themselves here.

🤖 Generated with Claude Code

cipherholdingsllc and others added 5 commits June 12, 2026 07:09
…de doctrine sync

Session 1 of the hardening program (OzReceipt-OzSkillTreeHardening):
- README rewritten problem-first for the cold senior engineer: verifiable
  60-second quickstart, overhead honesty table, skeptic FAQ, zero usage claims
- CI: plain pull_request trigger, contents:read, zero secrets, npm test
- DCO sign-off + doctrine amendment rule (doctrine + its test, same commit)
- registry/stable-surfaces.json + check-stable-surfaces.mjs: modes, commands,
  skills, schemas, and count claims now machine-guarded in npm test
- Mode doctrine synced to v0.2 six-mode (adds standard+ and deep-lite with
  counter budgets); published contract is bands/triggers/budgets only
- Receipts boundary: receipts/ gitignored except fixtures; field-receipts/
  ships empty by design with an honest intake template

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Nate Roberts <nate@cipherlab.ai>
…continuity, evals

Session 2 mechanisms — closing the write-but-never-read and
discipline-not-enforcement gaps:
- Negative-memory retrieval gate mandatory at /oz-start on all three surfaces;
  'searched, no hits' is valid evidence, a missing block is a halt
- context-fingerprint.mjs: repo/branch/HEAD/dirty/lockfile/PM capture,
  human block + --json; ambiguous lockfiles warn with nonzero exit
- Truth-state proof contracts: per-state evidence spec in wiki + additive
  truth_state_proof/context_fingerprint/negative_memory_retrieval schema fields
- Session continuity: append-only failure inbox with mandatory /oz-result
  drain, checkpoints, and receipt-scoped /oz-handoff briefs (close/park/crash)
- Leak scanner: gitignored local-extension hook so private literal patterns
  never enter the public denylist; local pre-push layer documented mandatory
- Structural eval harness v0 (honest scope: structural, not semantic) +
  size-ratchet budgets on all always-load surfaces; wired into npm test
- npm test green end-to-end: 57 structural assertions, 136 files leak-scanned

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Nate Roberts <nate@cipherlab.ai>
…ry mechanics, full coherence sweep

Robust probing audit (99 findings, 13 agents) — every break, leak, and drift
patched; 17 A/A+ upgrades implemented:

BREAKS
- validate-schemas.mjs now validates examples AGAINST the schema files
  (required keys, enums, additionalProperties) instead of a drifted shadow
  key-list that let schema-invalid fixtures pass CI; modes and counter-budget
  bands come from registry/stable-surfaces.json (single source of truth)
- npm files whitelist ships registry/, tests/, field-receipts/ — the
  published tarball now passes its own npm test (verified via pack self-test)
- .gitignore receipts boundary anchored (/receipts/*) so case-folding can
  never swallow wiki/Receipts/, with a contents-exclusion form so the
  fixtures re-include actually fires (verified with git check-ignore)
- leak scanner: broken local extension now fails loud (only
  ERR_MODULE_NOT_FOUND is swallowed); local extension exempt from
  self-scan; yml/yaml + LICENSE now scanned
- context-fingerprint: package-lock.json maps to npm (was 'package');
  ambiguous-lockfile warning + exit 2 now fire in --json mode too

LEAKS
- private literal patterns moved out of the public scanner into the
  gitignored local extension; public file carries generic categories only
- internal codenames scrubbed from wiki Decision-Log/Roadmap and the
  public-release checklist (generic wording, gates preserved)

DRIFT/COHERENCE
- retrieval gate + fingerprint + proof contracts + inbox drain now appear in
  every flow surface (protocol, skill-flow, architecture-map, Protocol-Flow,
  OzSkillTree-Map, receipt-memory)
- countermap budget doc re-cut to six-mode v0.2 bands; all example budgets
  re-baselined into their bands (budget = ceiling); flagship example now
  models the full v0.2 receipt shape honestly (searched:true, hits:[])
- 3 fixtures gained schema-required truth_state + domain_stack; 'parked'
  status corrected to 'blocked'; commands_run now support the verification
- receipts boundary stated consistently (Receipts-Index, Receipts/README,
  receipt-memory storage section)
- listings synced: oz-handoff + session-continuity + registry + budgets in
  every index; RELEASE pre-push reflects the 5-check npm test
- schemas: oz-result gains failure_inbox_drain + truth_state_proof; ozreceipt
  gains template fields, shaped proof contracts, fingerprint shape, private
  classification vocabulary; wiki templates carry the new sections
- CI gains a DCO enforcement job for PRs; CoC gains an email-free report path
- structural evals extended to 65 assertions incl. budget-doc mode coverage
  and a validator-reads-registry guard

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Nate Roberts <nate@cipherlab.ai>
…ADME rewrite

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Nate Roberts <nate@cipherlab.ai>
Maiden CI run caught its own bug: refs/pull/N/merge is auto-generated and
unsigned by construction. Range now ends at the PR head sha and skips merge
commits per DCO convention.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Nate Roberts <nate@cipherlab.ai>
@cipherholdingsllc
cipherholdingsllc merged commit 205f1df into public-safe-v0 Jun 12, 2026
2 checks passed
@cipherholdingsllc
cipherholdingsllc deleted the feat/wave1-hardening branch June 12, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant