arborist/docs/TICKETS.md
russell@unturf.com f0e6baf907
ticket #000031 Phase 2: warrant resolver + 18 derivations rows landed
Closes the warrant-promotion data path: claim-pack records now
bind to surface-ingested textbook chunks via Merkle inclusion
proofs in the existing `derivations` table.

What landed
===========
arborist/qa/warrant_resolver.py — four pure-data steps + one DB
write:

1. parse_citation(s) — regex pipeline turning the claim-pack
   `source_reference` string into structured Citation tuples.
   Handles "Title by Author" (single + Oxford-comma multi +
   et-al), semicolon-separated multi-cite ("Knuth §1.2.6;
   Stanley §1.2; Brualdi §3.5"), and compact author-year
   ("Pascal 1654") forms.

2. resolve_chunks(c, shards_dir) — FTS5 search across sibling
   crawl/ dir's textbook-surface shards. Skips the main numbered
   shards (Wikipedia content; would be false positives). Per-
   shard match filter requires BOTH author last name AND a title
   token in the shard's title-haystack — honest "no match" for
   textbooks not yet surface-ingested.

3. compute_proof(shard, doc_root, chunk_id) — reads
   merkle_nodes, walks layer-by-layer to assemble siblings;
   emits deterministic JSON proof_blob compatible with
   arborist/merkle.py verification.

4. write_derivation(...) — INSERT OR IGNORE into the existing
   derivations table with process_id="warrant-resolver-v1".
   Idempotent at the database layer.

CLI surface
===========
- `arborist warrant-status --shards-dir ...` (read-only) —
  emits per-record JSON: parsed citations, FTS5 candidates,
  whether a derivations row exists.
- `arborist warrant-resolve --shards-dir ... [--write]` —
  default dry-run summary; --write actually computes proofs
  and inserts rows.

End-to-end verification
=======================
Real-shard run: `arborist warrant-resolve --shards-dir
~/.arborist/shards --write` →

  records_total: 92
  records_resolved: 18
  derivations_written: 18

All 18 are pillar-IV Hilbert axioms citing "The Foundations of
Geometry by David Hilbert" — the only cited textbook fully
surface-ingested by Phase 1. The remaining 74 records cite
textbooks not in our shard cluster (Mendelson, Enderton,
Jech, Goldstein, Barendregt, Stanley, Brualdi, Knuth, …) and
correctly produce 0 matches; they stay at ANCHOR-WARRANTED
until those textbooks land via future Phase-1 manifest
expansions.

Re-running the writer is a no-op (PK collision on (core_root,
src_root, process_id) = INSERT OR IGNORE).

Drive-by fix
============
arborist/sources/textbook_tex.py — _extract_title now also
parses PG's plain-text `Author:` line and appends "by Author"
to the title, so the warrant resolver's author-last-name match
works against PG-ingested textbooks (Hilbert "The Foundations
of Geometry by David Hilbert" instead of just "The Foundations
of Geometry").

Test suite
==========
tests/test_warrant_resolver.py — 14 unit tests for the citation
parser (no DB / network). Full suite: 1588 passed / 28 skipped.

Phase 3 (verifier wiring)
=========================
NOT in this commit. The data substrate is in place; the
audit_mode upgrade path that lifts answers citing
claim-pack-records-with-derivations from ANCHOR-WARRANTED to
EVIDENCE-WARRANTED requires a verifier change — touches well-
tested code, worth its own ticket so the regression risk is
bounded.
2026-05-09 17:35:39 -04:00

7.7 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) closed · landed 2026-05-09 (live in shard 000.db; lift verified) 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 in progress · Phase 1 + Phase 2 (chunk-resolver, proof writer, 18 derivations rows for Hilbert pillar IV) landed 2026-05-09; Phase 3 verifier wiring ahead 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 14); 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