3. Declarative Workflow Policy

3.2 Cryptographic Conformance Matrix & Memory Tombstones

chinwag memory tombstone --id tombstone-slug-v1 --file-scope "src/**"

Complete WP-01..WP-15 conformance matrix, Chinwag vs. Google A2A protocol comparison, and commit-anchored DO_NOT_REPEAT negative memory tombstones.

3.2 Cryptographic Conformance Matrix & Memory Tombstones

chinwag memory tombstone --id tombstone-slug-v1 --file-scope "src/**"

Outcome Summary & Δ Velocity Proof: Every run in chinwag evaluates 15 deterministic workflow invariants (WP-01..WP-15) over 32-byte keyed BLAKE3 commitments and dual Ed25519 signatures in 0.51 ms without decrypting a single byte of source code in the cloud.


1. WP-01 through WP-15 Conformance Matrix

Rule IDRequirement & Threat MitigatedTier 1 (OrgPolicyFloorV1) vs. Tier 2 (chinwag.workflow.yaml)Cryptographic Receipt & Hook
WP-01Revision-Pinned Run Policy: Every task/CI run pins the exact policy commit OID and SHA-256 digest at dispatch and retains that pin across later repository edits.Enforced across all org repos; in-flight runs cannot be retroactively hijacked by branch YAML edits.PolicyRevisionPinV1 (H2)
WP-02..03Pre-Handoff JJ Checkpoint & Independent Remote Verification: Requires a described, non-empty jj checkpoint and independent git ls-remote readback before handoff.Org Floor sets require_remote_receipt: true; repos can add branch naming or bookmark rules.RemoteReceiptV1 (H1 · ✓ed25519)
WP-04Exact-Commit CI & Review Evidence Binding: Rejects handoff if 1 byte changes after CI or review (C_checkpoint == C_remote == C_ci == C_reviewed).Non-waivable under chinwag-way preset; stale evidence is flagged amber/red immediately.H2 & H5 32B Commitment Gate
WP-05Monotonic Two-Tier Lattice: Candidate branch edits to chinwag.workflow.yaml are inert until activated and cannot weaken OrgPolicyFloorV1.#![forbid(unsafe_code)] Rust validator checks Candidate ⊑ OrgPolicyFloorV1.H3 Rust Lattice Validator
WP-06Strict Separation of Compliance from Acceptance: Policy Satisfied reports workflow compliance only; task acceptance and branch merge remain separate human/principal actions.Hard invariant across both tiers (auto_merge: forbidden).Separate TaskAcceptanceReceiptV1
WP-07Explicit Failure Preservation: On push/CI failure, preserve the local jj checkpoint and report the exact stage, never silently repair auth or force-push.Default preserve-local-checkpoint across all seats.H1 Safe-Failure Contract
WP-08Two-Person Policy Activation: A proposed edit to chinwag.workflow.yaml cannot authorize its own activation (acceptor.seat() != author.seat()).Requires independent technical acceptor signature + monotonic activation_epoch.PolicyActivationReceiptV1 (H3)
WP-09..12Zero-Knowledge Client-Side PQ-HPKE (X25519MLKEM768): All logs, diffs, and YAML snapshots are sealed on the runner/host; runners fail closed if OrgHpkePubKey is missing.Cloud Blind Relay holds 0 private keys and sees 0 bytes of plaintext source or logs.CHWGHPKE v2 (1,408B · H4)
WP-13Autonomous UI Geometry & Chinwag Vision-3 Visual Geometry Gate (chinwag ui-gate): Blocks frontend/deck handoffs on bleed/overlap/crush/scroll/contrast defects or < 2/3 cross-model approval.Enforces enforce_tribunal_heterogeneity across independent model families + < 200ms Warm-CDP loop.UiGateReceiptV1 (HTTP 412 if missing)
WP-14Dual-Signed .hpke Blobs & Verify-Before-Decrypt (SignedHpkeBlobV1): Every .hpke blob carries OriginSigV1 + CloudRelayBlobSigV1, verified via verify_strict before calling X25519MLKEM768 Open().Prevents public-key ciphertext forgery, encrypted store poisoning, and pre-decryption zstd bombs.OriginSigV1 + CloudRelayBlobSigV1 (✓ed25519)
WP-15Universal Signed Cloud Relay Messages (CloudSignedMessageV1): Every WebSocket frame (WSS :443), CI wakeup, policy verdict, and credit receipt is signed by the Cloud Relay's Ed25519 key plus OriginAttestationV1.Defeats TLS-proxy MITM injection, spoofed agent wakeups, and out-of-order replay (monotonic sequence).CloudSignedMessageV1 (✓ed25519)

2. Protocol Comparison: Chinwag vs. Google A2A (v1.0.0)

Protocol LayerGoogle / Linux Foundation A2A (v1.0.0)Chinwag Protocol (chinwag.sh · Emun Labs, Inc.)
1. Topology & TransportOpaque Client-Server HTTP/SSE: Requires web servers, load balancers, or webhook callbacks between black-box bots.Local-First P2P QUIC Mesh (iroh-quic) + Zero-Knowledge Blind Relay: Operates across developer workstations and CI runners with CRDT state (.chinwag/state.crdb) and X25519MLKEM768 E2EE artifacts.
2. Per-Message Non-Repudiation & Thread IDsTransport-Only Auth: Bearer tokens live in HTTP headers and are stripped at the reverse proxy. JSON-RPC payloads are unsigned.7-Field Ed25519 Signed Envelopes + Mandatory <SEAT>#<INSTANCE> (INV-THREAD-ID-01): Signs (id, ts_unix, sender, to, room, task_id, body) against .chinwag/allowed_signers (✓ed25519).
3. Sovereign Agent IdentityStatic /.well-known/agent-card.json: Proves which domain answered HTTP, not which model or contract acted.A.509 PKIX Sovereign Agent Passports: Binds the agent's Ed25519 key, behavioral contract hash (AGENT.md), and model engine into an inspectable certificate.
4. Shared Repo Concurrency & File LeasesNone (Opaque by Design): Parallel agents blindly overwrite the same files and symbols.Signed Claim Receipts (SignedClaimReceipt::verify_binding): Binds actor identity, file globs, symbol hashes, and source_commit before edits begin.
5. Memory & Negative TombstonesEphemeral contextId: Tracks chat turns in one session; the next session starts cold and repeats yesterday's rejected fix.Commit-Anchored Native Memory + DO_NOT_REPEAT Tombstones (.chinwag/memory.crdb.leann): Sub-millisecond recall, retain, and file-scoped negative tombstones.
6. Acceptance Gate & Adversarial QASelf-Reported TASK_STATE_COMPLETED: The coding agent grades its own homework and declares itself done.Executable Repo Law + Cross-Model Verification Gate: Anchors CI/test receipts to source_commit across disjoint model families.

3. Negative Memory Tombstones (chinwag memory tombstone)

When an architectural approach is rejected or causes a regression, record a file-scoped negative tombstone so no agent in your organization ever repeats the killed pattern:

# Record a file-scoped DO_NOT_REPEAT tombstone in .chinwag/state.crdb + .chinwag/memory.crdb.leann:
chinwag memory tombstone \
  --id "tombstone-no-unbounded-zstd-decode-v1" \
  --file-scope "crates/chinwag-crypto/**" \
  --reason "Unbounded zstd::decode_all before Ed25519 verification exposes local daemon to zip-bomb DoS" \
  --alternative "Always verify OriginSigV1 + CloudRelayBlobSigV1 via verify_strict BEFORE bounded zstd decode (WP-14)"

# Verify that recall surfaces the tombstone at score 120.0 (DO_NOT_REPEAT) before any agent claims the file scope:
chinwag memory recall \
  --bank default \
  --query "zstd decode hpke" \
  --file-scope "crates/chinwag-crypto/**" \
  --limit 5