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.
Research (FOUND): codebean source->model importer already exists in prototype/code_wrapper.py (lower_*), unwired
goal
SEARCH RESULT (all codebases swept: working trees, codebean branches, code.snapshot, recovered-vm). The codebean source->model importer WAS built — it FELL THROUGH THE CRACKS in codebean_mcp/prototype/code_wrapper.py, never promoted into the shipped package. What exists there: lower_node(ast node)->Function (the 'one-shot importer, CM-11'; preserves name/params/body/decorators/returns/is_async, docstring kept in body so it round-trips), lower_functions(path), lower_module_all(path) (walks top-level fns AND class methods). Around it: a round-trip CRITIC (_ast_norm = parse->unparse->ast.dump equivalence; make_candidates faithful-vs-mutant), codegen.py (candidate generation with _claude + _qwen backends), criteria_miner.mine_module (ast->IO exemplars). %(LOCAL)s — NOT the shipped codebean_mcp/model.py Function, so promotion must RECONCILE the two models. CONCLUSION: do not rebuild — PROMOTE. The build ticket #183 is updated accordingly.
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