arborist/docs/TICKETS.md
russell@unturf.com 3796c238cc
qa(label): #000005 land — four-rung ladder migration (D7 sharpened)
Replaces the two-rung EVIDENCE-LINKED / EVIDENCE-LINKED-PARTIAL
display label for claim-lattice methods with a four-rung ladder
that names a strictly stronger property at each rung:

  POINTER-LINKED       pointer/source/chunk verified;
                       warrant either didn't apply or failed
  ANCHOR-WARRANTED     pointer-linked + warrant passed where it ran;
                       other soft demotes may apply
  EVIDENCE-WARRANTED   anchor-warranted + no soft demotes
  UNGROUNDED           no verified pairs

HYBRID gets a -PARTIAL suffix on whichever rung applies.

Implementation: _render_audit_label gains a violations parameter
(defaults to None for backward-compat). _ladder_rung_for_lattice
discriminates rungs from the existing violations list:
  - WARRANT_MISSING in violations → POINTER-LINKED
  - any of {LAZY_ANCHOR_DEMOTED, POINTER_OVERFLOW_TRIMMED,
    TOO_MANY_CLAIMS, BARE_NAME_CLAIM} → ANCHOR-WARRANTED
  - else → EVIDENCE-WARRANTED

Design simplification vs the ticket's §3 sketch: the proposed
verifier_steps_ran field on the verdict dict was NOT needed. The
existing violations list carries enough signal to discriminate
all rungs. Per the five-step algorithm step 2: don't add fields
you don't need.

Quote / span / entity / paraphrase methods stay unchanged (their
STRICT verifies pinned spans, not synthesis).

Schema column audit_mode enum stays {STRICT, HYBRID, UNGROUNDED}
— pure renderer transformation, no governance_policy_hash bump,
no cache invalidation, no mesh-wire-format change. Existing
providence records render under the new ladder on next read.

5 new renderer tests in tests/test_cli_render.py covering each
rung mapping. D7 anti-regression test in tests/test_directives.py
updated to gate on the ladder labels. Bench helper docstring
follows. Full suite: 711 passed.

Directive D7 stays at ✓; ticket #000005 closed.
2026-05-01 19:20:47 -04:00

3 KiB

Aborist tickets — index

Aborist 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/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)
  • naming-deferral.md (naming convention reference)
  • qa-modes-bench-2026-04-30.md (point-in-time bench journal)
  • verifier-semantic-gap-design.md, self-reference-thought-chains-design.md (older design docs that pre-date the ticket convention; leave as-is unless retroactively promoting one to a ticket adds value)

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
#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) open 2026-05-01 D3
#000001 Retrieval-keywords audit gap open 2026-05-01 D4

Next ID

000006