arborist/docs/TICKETS.md
russell@unturf.com 0154191bd4
#000016 parked: ZK frontier-proof bench plan + wire protocol
Two arborist-side artifacts close the v7 § 16.1 hand-wave without
violating the language constraint (arborist stays pure-Python; ZK
toolchain lives in sibling repo arborist-zk-bench).

docs/zk-frontier-bench.md — bench plan + parked verdict
========================================================

Bench plan covers Plonky3 (or equivalent) circuit at three sizes
(256/1024/4096 affine), measurement targets (prover ms, proof
bytes, verify ms, peak memory), platform pair (Apple M3 + Linux
x86), acceptance thresholds (≤30s prover at 4096; ≤100KB proof;
≤100ms verify; ≤16GB peak).

Preliminary projection from published Plonky3/Halo2 numbers:

  size 256:   0.5–2 s prove  / 30–80 KB / 5–30 ms verify
  size 1024:  5–30 s prove   / 50–120 KB / 10–50 ms verify
  size 4096:  60–600 s prove / 100–300 KB / 30–200 ms verify
                              ↑ likely UNAFFORDABLE at frontier scale

Most-likely outcome: VIABLE at small scales (256/1024 — useful for
distillation models); UNAFFORDABLE at LLaMA-class hidden width
(4096).

Decision tree from real measurement:
  VIABLE       → commission ZK as v8 capability;
                 follow-up tickets for arborist [zk] extra,
                 governance_policy.frontier_proof_mode field,
                 hermes-side activation export.
  UNAFFORDABLE → park ZK; v7-Local stays v7's terminal
                 contribution; answer→model binding stays
                 out of scope.

docs/zk-wire-protocol.md — consumer-side schema
================================================

Specifies the wire format arborist consumes WHEN/IF ZK proofs
become available. The sibling repo emits proofs; arborist
validates schema + signature + delegates ZK verification to a
sibling-repo verifier binary. arborist itself NEVER runs the
prover or verifier — that's the language-constraint contract.

  - Artifact: arborist-zk-proof-v1 JSON with schema_version,
    proof_system, circuit_id, frontier_node, public_inputs,
    public_outputs, proof_bytes_b64, verifier_setup_id, issued_at,
    issuer_pubkey_ed25519, issuer_signature_ed25519.
  - Trigger: governance_policy.frontier_proof_mode ∈
    {"reveal" (default), "zk"}.
  - Binding: model_weights_zk_root + frontier_proof_circuit_id
    columns added to providence_cache (schema migration deferred
    to integration ticket).
  - Validation pipeline: schema check → recompute commitment
    sanity → Ed25519 signature check → delegate to sibling
    verifier → bind to audit chain.
  - Threat model: compromised prover, wire-format injection,
    proof replay, issuer-key compromise — each with its own
    mitigation.

Status closure
==============

Ticket flipped from "open · awaiting go/no-go" to "parked ·
bench-plan + wire-protocol landed 2026-05-09 (sibling-repo
measurement pending)." This is honest: arborist's side is done.
Sibling repo `arborist-zk-bench` (not yet built) produces the
real numbers; doc updates roll back here when measurements
arrive.

Result: the v7 § 16.1 hand-wave is replaced with explicit
thresholds + preliminary projection + ready consumer schema.
The hand-wave is closed even though the bench-question is
parked.
2026-05-09 15:05:08 -04:00

7.5 KiB
Raw Blame History

Arborist tickets — index

Arborist uses a flat ticket-NNNNNN-<slug>.md convention for actionable proposals: defects with a known root cause, design proposals awaiting go/no-go, or scoped enhancements queued for future implementation.

Convention

  • Filename: docs/tickets/ticket-NNNNNN-<slug>.md. The ID is a six-digit zero-padded integer; the slug is hyphen-lowercase and short enough to stay readable on a 100-column terminal.
  • Numbering: monotonic, never reused. Pick the next free integer greater than every existing ticket. The current next ID is on the Next ID line below; bump it when you open a ticket and commit the bump in the same commit as the new ticket file.
  • Header: every ticket starts with
    # Ticket #NNNNNN — <short title>
    
    **Status:** open · awaiting go/no-go      (or "in progress", "closed")
    **Opened:** YYYY-MM-DD
    **Scope:** <one-liner — what this ticket is for>
    **Audience:** <who reads this>
    **Hard constraint:** <invariants this ticket commits to NOT break>
    
  • Body: problem statement, design choices with trade-offs, recommendation, implementation sketch, scope boundaries, status. See ticket-000001-retrieval-keywords-audit-gap.md for a worked template.
  • Closure: when a ticket lands, flip Status to closed · landed in commit <sha> and leave the file in place. Do not delete tickets; they are the design log.

Distinction from other docs

docs/ also contains architecture references and bench journey notes that are NOT tickets — they describe state of the world rather than proposing change. Examples that stay un-numbered:

  • cti-architecture.md (architecture reference)
  • mesh.md, mesh-deploy.md (architecture + ops reference)
  • qa-modes-bench-2026-04-30.md (point-in-time bench journal)
  • verifier-semantic-gap-design.md, self-reference-design.md (older design docs that pre-date the ticket convention; leave as-is unless retroactively promoting one to a ticket adds value)
  • concept-relations-design.md (architecture reference for the per-shard concept_relations synonym/rivalry layer + the 1.6% storage-tax rationale; landed 2026-05-01)
  • tool-action-dag-design.md (research path for an action- provenance layer downstream of final_label. Captured pre-ticket per the 2026-05-07 arborist-vs-donto comparison; promotes to a ticket when an actual agent use case surfaces)

If a doc proposes change AND awaits a decision AND has scoped implementation cost, it's a ticket. Otherwise it's reference.

Index

Newest first. Update on every open/close.

ID Title Status Opened Directive
#000036 T3 per-window covert-channel budget bound open · awaiting go/no-go (#000018 follow-up) 2026-05-09 —
#000035 PRG choice for φ_PRG (HMAC-SHA-512 expansion) open · awaiting go/no-go (#000018 follow-up) 2026-05-09 —
#000034 Hessian alignment under φ_linear open · awaiting go/no-go (#000018 follow-up) 2026-05-09 —
#000033 Claim-pack pillar VII (combinatorics) open · awaiting go/no-go 2026-05-09 —
#000032 combinatorics@v1 π* (integer counting kernel) closed · landed 2026-05-09 2026-05-09 —
#000031 Surface-ingest cited textbooks for claim-pack warrant promotion open · awaiting go/no-go 2026-05-09 —
#000030 Math π* expansion: SymPy substrate (algebra · calculus · linalg) closed · all 7 phases + 1b landed 2026-05-09 (abe5988) 2026-05-09 —
#000029 Claim-pack source (axiom/theorem JSON bundles) closed · landed 2026-05-09 2026-05-09 —
#000028 Multi-modality witness for canonical shapes closed · landed 2026-05-09 + follow-ups (capital ledger · sample rate) 2026-05-08 —
#000027 Canonical projections persist to providence_cache closed · landed 2026-05-09 2026-05-08 —
#000026 Real-shard workload baseline + search latency in progress · Phase 1 + 2 + 3 landed 2026-05-09 2026-05-08 —
#000025 5F battery (Function · Finetuning · Falsification · Formulate · Feedback Loop) in progress · Phase 1a + 1b.2 + 1c + 1d landed 2026-05-09 2026-05-07 —
#000024 5T Phase 1b + Dav1DPrometheus vocabulary alignment closed · landed 2026-05-08 2026-05-07 —
#000023 5S Phase 1b: Syllogism · Synthesis · Semiotics closed · landed 2026-05-08 2026-05-07 —
#000022 Adapter LossReport (PRD I9 analogue) closed · landed 2026-05-07 2026-05-07 —
#000021 5S/5T/5R benchmark fixtures + harness closed · Phase 1a + 2 landed 2026-05-08 2026-05-07 —
#000020 Capital-cost ledger (8-capital queues) closed · landed 2026-05-07 2026-05-07 —
#000019 Specification methodology for π* and V closed · landed 2026-05-07 2026-05-07 —
#000018 Adversarial soft-hash covert-channel analysis closed · landed 2026-05-09 (analysis doc) 2026-05-07 —
#000017 Memory-root: lifelong learning audit chain closed · landed 2026-05-07 2026-05-07 —
#000016 ZK Phase-2 frontier proof (concretize) parked · bench-plan + wire-protocol landed 2026-05-09 (sibling-repo measurement pending) 2026-05-07 —
#000015 π* domain library + cross-domain composition closed · landed 2026-05-07 2026-05-07 —
#000014 SelfModel: schema, falsification, integration closed · landed 2026-05-07 2026-05-07 —
#000013 Spatial-temporal substrate (Merkle-AGI v7-W) closed · landed 2026-05-09 (substrate paper + frontier catalog + namespace stub) 2026-05-07 —
#000012 Selection & consensus protocol (Merkle-AGI v8) in progress · Phase 1a + 1b (ForkScore CLI) landed 2026-05-09 2026-05-07 —
#000011 SOFT_PREFLIGHT_HINT model-assisted sidecar closed · landed 2026-05-04 (zero-shot full impl) 2026-05-04 D1 (preserves)
#000010 Meta-Cognition Preflight Guard (M0 / MCTL) closed · landed 2026-05-03 (Phases 1–4); DAG binding shipped via #000009 2026-05-03 D1, D3
#000009 Preflight run-DAG node binding (#000008+#000010) closed · re-landed 2026-05-04 (§8 corrections: reject-path DAG, nested CTI clauses) 2026-05-03 D3, D4
#000008 Broad-quantifier preflight guard closed · landed in 4f2b5a6; Phase 5 DAG binding split into #000009 2026-05-02 —
#000007 Query-layer hyphen folding closed · 2026-05-02 2026-05-02 —
#000006 Bench-emergent findings (rolling research log) open · rolling 2026-05-02 —
#000005 Label ladder migration (POINTER-LINKED → …) closed · 2026-05-02 2026-05-01 D7
#000004 Directive coverage in bench summary closed · acd1f9c 2026-05-01 D8
#000003 Anchor-class warrant generalization (Module H+) closed · 2026-05-02 2026-05-01 D6
#000002 Reference-Frame Polarity Contract (Module L) closed · 2026-05-02 2026-05-01 D3
#000001 Retrieval-keywords audit gap closed · 2026-05-02 2026-05-01 D4

Next ID

000037