ISS-01 | ADO + comms | draft_pending_charlie is written to both the ADO queue and comms_drafts, but it's in neither enum | resolved | P0 |
ISS-01b | ADO write-back | Create-path hardcodes queued, overriding the pending_approval default — enqueues without explicit status skip the approval gate | resolved | P0 |
ISS-02 | ADO write-back | The drain path now exists — the ado-scribe drainer consumes queued rows and applies them to ADO | resolved | P1 |
ISS-03 | ADO write-back | No sp_update_ado_writeback — no supported way to advance status | resolved | P1 |
ISS-04 | Skills | "ADO Scribe" now has a real SKILL.md — the lease-guarded drainer that consumes only queued rows and applies them to ADO | resolved | P2 |
ISS-05 | ADO config | The ADO target is now configurable via the azure_devops MCP (single source of truth); the skill no longer hardcodes a target | resolved | P1 |
ISS-06 | Audit | Every role now writes a required agent_runs spine row per meaningful turn (class discriminator + session_turn_seq gap-detection); multi-writer, Steward audits | resolved | P1 |
ISS-07 | Telemetry | cost_telemetry now populated by sp_rollup_cost_telemetry (idempotent whole-UTC-day grid cells), wired into daily-brief | resolved | P2 |
ISS-08 | Rotation | rotation_log table built + wired — the rotation skill now writes a DB handover record each rotation | resolved | P2 |
ISS-09 | Snapshots | agent_snapshots table built + wired — snapshots now have a dedicated home (transcript_id soft-ref kept) | resolved | P2 |
ISS-10 | Scheduling | Tick cadence built & staged — core-tick (health/drain/rollup, 15-min, tick_lease) split from scout-sweep (Signal Scout, 2h, hard caps + cost breaker); live schedule deferred to Charlie (posture call) | resolved | P2 |
ISS-11 | Decision | Should the Charlie gate stay procedural, or become a DB-backed approval flag? | resolved | P1 |
ISS-12 | Decision | Decided (D4): build all — cost_telemetry producer, rotation_log and agent_snapshots all built | resolved | P2 |
ISS-13 | Briefs | slot=evening is not in the brief_slot enum — the EOD brief slot is silently wrong | resolved | P0 |
ISS-14 | Decisions | decisions now carries routing columns (decision_class, adr_id, narrative, owning_peer) — routing is queryable data, not just a procedural convention | resolved | P1 |
ISS-15 | Audit | agent_runs formally documented as multi-writer with a class discriminator; Steward audits (gap-scan + cross-ref), not exclusive author | resolved | P2 |
ISS-16 | Decisions | decision-capture remapped to the real entities/columns — decision_class, adr_id, narrative, owning_peer now exist (ISS-14); no nonexistent-column writes remain | resolved | P1 |
ISS-17 | Skills | The cowork skill (7th on disk) is now documented in the skill matrix as a non-delivery utility skill | resolved | P2 |
ISS-18 | Decisions | Write-shims built for Adr + ComplianceState (v_adr_in/sp_create_adr/sp_update_adr, v_compliance_state_in/sp_create_compliance_state) — ADR & compliance work persists through the normal pattern | resolved | P1 |
ISS-19 | Decisions | adrs now has a review_stage column (draft → reviewed → compliance-checked → ratified) — an advanceable, DB-backed gate axis distinct from status | resolved | P1 |
ISS-20 | Schema ops | Shim drift is now tracked — schema_version records each bundle's name + SHA256 checksum (sp_record_migration); a checksum mismatch flags drift on re-apply | resolved | P2 |
ISS-21 | MCP config | m365-softeria MCP removed — the ring uses native m365_* (a builtin, not an MCP), so only the unused extended-Graph surface was dropped; reversible | resolved | P2 |
ISS-22 | DB perms | Anonymous role tightened to least-privilege — every base table is now read-only (writes flow solely through the validating *In shims); the dead enum/jsonb create grants were revoked; authenticated=* documented as the dormant production posture | resolved | P2 |