Ticket graphs

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.

← all ticket-graphs

REQUESTED#447 congruency

STOP: #200 forge-rewrite standard is BRAKED (deferred, not cancelled) — 'ENTIRELY NEW source' caused measured 5-27x ballooning; brakes all 46 spawned units pending #445 family map + the codebean coupler

goal

STOP brake on #200 (the FORGE-wide refactor standard) — and therefore, via the recursive `spawned` ancestry the brake walks, on EVERY forge-rewrite unit spawned from it (46 ready today, plus any the decomposition factory files next). Authorized by the operator. WHY — #200's own clause is the defect. It mandates that "every unique module rewritten ... the deliverable is ENTIRELY NEW source". That marks every function NEW by default and licenses a worker to reimagine a module instead of preserving it. MEASURED RESULT (all Claude pairs, all review-passed): bash-mcp/server.py 65 -> 1791 lines 27.6x (a DECOY that executes nothing) crank_job.py 81 -> 1340 16.5x crank_discipline.py 99 -> 1567 15.8x audit_guard.py 111 -> 1500 13.5x ats_service.py 114 -> 1314 11.5x ats_http.py 427 -> 2204 5.2x The 27x case is the proof: 1791 lines to reimplement a 65-line refusal stub whose entire job is to log an attempt and say "use python". This is not a worker fault - every one of those pairs PASSED its adversarial review. The standard asked for it. SECOND CAUSE — the bloat also drives the timeout churn: workers exceed 1200s/2400s spawn budgets because they are writing 10-27x more code than the original, then the pair cannot self-settle because every unit regenerates the shared package scaffolding (pyproject/registry) its siblings also touch. Three units (#417/#419/#432) passed review and died on that merge conflict. THIRD CAUSE — scope is wrong anyway. forge2 today is 9 packages that are really ~5 projects: audio_tagger x2, coupler x2, dz_debug x3 (one of them EMPTY, 0 modules). Nothing in the pipeline models a repo FAMILY, so each ingestion alias mints its own package. #445 (family tree) will produce the canonical-tip/home map that re-scopes this. Measured: 264 repos -> 109 lineages; 24,978 source files -> 5,736 unique blobs (4.4x dup; PHP alone is 20.2x - 7,197 files -> 357 unique). WHAT REPLACES IT — the codebean coupler (senior/junior split), in design with the operator: * `lower_functions(original)` yields the signatures MECHANICALLY - no LLM, no invention. * the junior agent is handed ONE signature + docstring and returns ONLY the body. It never sees a path, a tool, or a sibling module - so wandering, wrong paths, malformed tool schemas and ballooning all become UNREPRESENTABLE rather than merely discouraged. * `critic` gates PRESERVE functions by AST/token-normalized equivalence to the original - a mechanical proof, not an auditor's prose opinion. Only genuinely NEW functions need a test. * per-function retry + per-function escalation (cheap model -> Claude for the blanks it fails). NOT CANCELLED - DEFERRED. The forge rebuild is still wanted. This brake holds the ~46 units until (a) #445 lands the family/home map so units are scoped to canonical tips rather than aliases, and (b) the coupler exists so bodies are filled against a fixed skeleton instead of reimagined. #200 ITSELF NEEDS SUPERSEDING, not just braking: ticket bodies are immutable, and its "ENTIRELY NEW source" clause must be replaced with PRESERVE-by-default + explicitly-declared NEW. That is the operator's standard to rewrite, not the dispatch agent's. ALREADY-HARVESTED MODULES ARE UNAFFECTED and stay on main (ats_http, ats_service, audit_guard, crank_approve, crank_job) - they are valid, review-passed code, merely larger than they should be. #417/#419/#432 remain unharvested on their branches pending the family map.

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

source (forge tree)

browse congruency source (forge-parked tree)

children

#200 Spec: the FORGE-wide refactor standard — every unique module rewritten as an installable, control-config'd Python module (behavior-preserving) (stops · REQUESTED)