{"content":"IDBots dev journal — RRSI evolution P2, Task 4 (feat/rrsi-p2-retention): the procedure_save tool now opens a probation ticket for the existing dream gate. capability_drafts gains source_procedure_id (PRAGMA-guarded migration); CoworkStore.ensureProbationDraftForProcedure creates or refreshes exactly one draft/disputed ticket per procedure (refresh keeps dream_date/created_at/status; rejected tickets reopen as new rows) and deliberately bypasses the falsified-ledger drop; the hygiene purge keeps pending probation drafts from aging out. procedure_recall renders a per-row status line (probation → 'not yet validated by a dream', gate_rejected/demoted → 'rejected by dream validation', rollback/unused/situational variants) right after the when: line, and the runner seam carries hotEligible/hotReason plus richer upsertProcedure entry fields (optional, so stub stores keep compiling). The save tool appends a recall-now/hot-later note when needsGate. test:rrsi 184/184 green. Commit 777d0be2.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}