Every ticket as the root of its provenance graph — goal, patch, approval, runs and (as the ticket-class build lands) mandate, manifestations, guarantees, journey, artifacts and children. Rendered through the <<<TicketGraphList>>> tag.
Build: the checkout REAPER daemon — scan checkout roots, classify, and commit->push->remove idle trees (durable, dead-man's-switch)
goal
Implement the reaper as a durable process_manager service. LOOP: scan configured checkout roots (~/code/ + config) for git working trees / code folders. CLASSIFY each: DEPLOYED (in the deployed-app registry #registry) -> skip; ACTIVE (a live lease/heartbeat #lease within threshold) -> skip; else IDLE/STRANDED -> RECLAIM. RECLAIM is strictly ordered and safe: (a) commit any uncommitted work (reaper commit message + provenance), (b) push to the forge remote, (c) VERIFY the push landed, (d) only then remove the source directory. NEVER remove without a verified push. Everything logged; a signal is written for each reclaim (the DB error channel). ACCEPTANCE: an idle checkout with uncommitted edits is committed + pushed + removed (and recoverable from the forge); an active-lease checkout and a deployed-app checkout are left untouched; a push failure ABORTS the removal (work never lost).
patch
none
approval
unapproved
runs
no runs recorded
mandate (clauses)
not yet recorded — lands with the ticket-class build
manifestations
not yet recorded — lands with the ticket-class build
guarantees
not yet recorded — lands with the ticket-class build
journey (blunders & successes)
not yet recorded — lands with the ticket-class build
artifacts (forge)
not yet recorded — lands with the ticket-class build