{"tasks":[{"issue":10038,"title":"Migrate Codex review from gh issue comments to events.db (fix local-only task integration)","eli5":null,"stage":"triage","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-21 22:51:35","stage_entered_at":"2026-04-21T22:51:35Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":null,"labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10035,"title":"Unified owner-pause primitive: reliable manual-steps + ask-question","eli5":null,"stage":"in-testing","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-21 22:45:00","stage_entered_at":"2026-04-21T22:44:59Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":null,"labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10032,"title":"Agent metrics + click-to-logs + Timeline duration restore","eli5":"Show agent speed, cost, and logs right in the dashboard.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-21T22:41:09Z","updated_at":"2026-04-21 22:41:09","stage_entered_at":"2026-04-21T22:41:09Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10037,"title":"fix(dispatcher): TTL cleanup for stale /tmp/office-crash-* markers","eli5":null,"stage":"backlog","route":"code","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-21 22:40:21","stage_entered_at":"2026-04-21T22:40:17Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":null,"labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10033,"title":"Spec viewer modal on task sidebar (read-only popup)","eli5":"View a task's spec in a popup without leaving the page.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-21T22:05:46Z","updated_at":"2026-04-21 22:10:44","stage_entered_at":"2026-04-21T22:05:46Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10027,"title":"refactor(tasks): Retire body_parsed.original_brief — single source of truth for owner brief","eli5":"Stop storing the owner's task description in two places.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-21T21:49:58Z","updated_at":"2026-04-21 21:49:58","stage_entered_at":"2026-04-21T21:49:58Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10034,"title":"UI: migrate static JSON fetches to bridge endpoints (SQLite cutover follow-up)","eli5":null,"stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-21T18:39:04Z","updated_at":"2026-04-21 18:39:04","stage_entered_at":"2026-04-21T18:39:04Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":null,"labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10020,"title":"[pre-spec] feat(board): show risk label (low/med/high) + toggle filter","eli5":"Show risk level badges on board cards with a visibility toggle.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-20T10:28:23Z","updated_at":"2026-04-20T10:28:23Z","stage_entered_at":"2026-04-20T10:28:12Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[1],\"auto\":1,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[8],\"auto\":8,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10030,"title":"Ops: auth-mode toggle (OAuth ↔ API key)","eli5":"Switch login method for pipeline agents from the ops page.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-20T07:11:39Z","updated_at":"2026-04-20T07:11:39Z","stage_entered_at":"2026-04-20T07:11:29Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10010,"title":"[pre-spec] feat(projects): Velocity chart — closed-per-week by Group","eli5":"Show a chart of how many tasks we close each week.","stage":"backlog","route":"code","group":"Experience","risk":"low","epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-20T06:55:20Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:initiatives-ui\",\"color\":\"0052CC\"}]","starred":0,"source":"local"},{"issue":10031,"title":"Fix: instant index rebuild on done-transition (≤1s)","eli5":"Tasks appear in Done column instantly, not after 5 minutes.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-19T23:50:06Z","updated_at":"2026-04-20T07:05:14Z","stage_entered_at":"2026-04-19T23:49:58Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[9],\"auto\":9,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10024,"title":"Удобный редактор","eli5":"Add a handy editor for tasks, epics, and projects.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":"ui-board-n-projects","closed_at":"2026-04-19T23:37:07Z","updated_at":"2026-04-20T08:25:08Z","stage_entered_at":"2026-04-19T23:36:58Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:null\",\"color\":\"0052CC\"}]","starred":1,"source":"local"},{"issue":10026,"title":"feat(projects): Project CRUD modal (create/edit/delete)","eli5":"Add buttons to create, edit, and delete projects in the UI.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":"ui-board-n-projects","closed_at":"2026-04-19T23:32:06Z","updated_at":"2026-04-20T07:05:14Z","stage_entered_at":"2026-04-19T23:31:57Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10029,"title":"[backlog] feat(projects): Completed Projects section from legacy Phase taxonomy","eli5":"Show finished past projects grouped by their original phase.","stage":"backlog","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-19T22:08:16Z","stage_entered_at":"2026-04-19T22:08:16Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":1,"source":"local"},{"issue":10028,"title":"[backlog] memory archive sweep — retire entries for concepts removed in Stage 6","eli5":"Clean up outdated internal notes about features we already removed.","stage":"backlog","route":"interactive","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-19T22:07:45Z","stage_entered_at":"2026-04-19T19:12:35Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10025,"title":"[backlog] cron audit — verify each scheduled job is still useful + value/cost trade-off","eli5":"Check which scheduled background jobs are still worth running.","stage":"backlog","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-19T16:06:51Z","stage_entered_at":"2026-04-19T16:06:51Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10004,"title":"[pre-spec] feat(agents): spec-reviewer — pre-Coder spec quality gate","eli5":"Check spec quality before Coder starts working on it.","stage":"backlog","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":null,"updated_at":"2026-04-18T23:06:54Z","stage_entered_at":"2026-04-19T15:22:59Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10017,"title":"[pre-spec] feat(projects): Epic timeline на /projects/:slug","eli5":"See when each epic starts and ends on a timeline.","stage":"backlog","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:56Z","stage_entered_at":"2026-04-19T15:07:10Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10022,"title":"Starring Tasks","eli5":null,"stage":"done","route":"code","group":"Management","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-19T14:04:37Z","updated_at":"2026-04-20T08:20:04Z","stage_entered_at":"2026-04-19T13:22:24Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[4],\"auto\":4,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:board\",\"color\":\"0052CC\"}]","starred":1,"source":"local"},{"issue":10021,"title":"[pre-spec] refactor(tasks): remove state field (A — full removal after B dedupe)","eli5":"Stop tracking open/closed separately — stage already covers it.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-20T07:18:37Z","updated_at":"2026-04-20T07:18:37Z","stage_entered_at":"2026-04-18T23:29:40Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":1,"source":"local"},{"issue":10003,"title":"Change Routes","eli5":null,"stage":"done","route":"code","group":"Management","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-18T23:20:49Z","updated_at":"2026-04-20T07:05:13Z","stage_entered_at":"2026-04-18T23:02:27Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[4],\"auto\":4,\"manual\":null,\"verdict\":\"scorer_complete\"},\"writer\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"coder\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"qa\":{\"iterations\":[10],\"auto\":10,\"manual\":null,\"verdict\":\"scorer_complete\"},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:board\",\"color\":\"0052CC\"}]","starred":0,"source":"local"},{"issue":10016,"title":"[pre-spec] feat(agents): per-role model/tokens/effort in pipeline-control.json","eli5":null,"stage":"ideas","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":null,"updated_at":"2026-04-18T23:06:56Z","stage_entered_at":"2026-04-18T22:58:27Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10018,"title":"[pre-spec] feat(tasks): blocked_by/blocks section on TaskDetailPage (Board уже OK)","eli5":null,"stage":"ideas","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:56Z","stage_entered_at":"2026-04-18T22:58:27Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10019,"title":"[pre-spec] ops(bridge): fix office-bridge.service silent-exit loop (legacy :3002)","eli5":null,"stage":"ideas","route":"ops","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:56Z","stage_entered_at":"2026-04-18T22:58:27Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10011,"title":"[pre-spec] fix(frontend): paginate timelineItems in useReviewActions","eli5":null,"stage":"ideas","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:58:26Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10012,"title":"[pre-spec] feat: inline edit Owner Brief (tasks) + Vision/Plan (projects) via bridge","eli5":null,"stage":"ideas","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:58:26Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10013,"title":"[pre-spec] feat(agents): wire remaining agent limits (retries/stuck/kill) to pipeline-control.json","eli5":null,"stage":"ideas","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:58:26Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10014,"title":"[pre-spec] perf: decouple Done column polling from BoardPage 5s loop","eli5":null,"stage":"ideas","route":"ops","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:58:26Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10015,"title":"[pre-spec] feat(ops): daemon tick interval → pipeline-control.json + UI","eli5":null,"stage":"ideas","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:56Z","stage_entered_at":"2026-04-18T22:58:26Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10009,"title":"[pre-spec] fix: approve-issue.sh must verify code is in main before close-without-merge","eli5":null,"stage":"ideas","route":"interactive","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:58:25Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:interactive\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10005,"title":"[pre-spec] feat(projects): North Stars cards — стратегические метрики NS1-NS9","eli5":"Show strategy goal cards on the projects page.","stage":"backlog","route":"code","group":"Experience","risk":"low","epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":null,"updated_at":"2026-04-18T23:06:54Z","stage_entered_at":"2026-04-18T22:54:51Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:initiatives-ui\",\"color\":\"0052CC\"}]","starred":0,"source":"local"},{"issue":10008,"title":"[pre-spec] Tech debt cleanup — legacy dispatcher scripts (events-pivot follow-ups)","eli5":"Someone needs to manually clean up old leftover scripts.","stage":"backlog","route":"code","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:18:33Z","stage_entered_at":"2026-04-18T22:54:51Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:interactive\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10006,"title":"[pre-spec] feat(projects): Active/Planned/Completed filter on /projects page","eli5":"Filter projects by Active, Planned, or Completed status.","stage":"backlog","route":"interactive","group":"Experience","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":null,"updated_at":"2026-04-18T23:18:23Z","stage_entered_at":"2026-04-18T22:54:51Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10007,"title":"[pre-spec] Ревью файлов памяти","eli5":"Someone needs to manually review and clean up memory files.","stage":"backlog","route":"interactive","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:55Z","stage_entered_at":"2026-04-18T22:54:51Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:interactive\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10001,"title":"[pre-spec] feat(ops): offsite backup ~/data/office/ — fill gaps after events-pivot local snapshots","eli5":null,"stage":"ideas","route":"ops","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T23:06:54Z","stage_entered_at":"2026-04-18T22:42:14Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":10002,"title":"[pre-spec] feat(agents): post-reviewer — autonomous post-QA code review agent","eli5":"Auto code review after QA, before merging changes.","stage":"backlog","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-20T02:31:15+03:00","stage_entered_at":"2026-04-18T22:41:49Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":518,"title":"Tech debt cleanup — legacy dispatcher scripts (events-pivot follow-ups)","eli5":"Someone needs to manually clean up three outdated helper scripts.","stage":"done","route":"interactive","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T23:02:19Z","updated_at":"2026-04-20T07:01:40Z","stage_entered_at":"2026-04-18T21:52:05Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:interactive\",\"color\":\"ededed\"}]","starred":0,"source":"local"},{"issue":517,"title":"New issue under Ideas or under Backlog","eli5":null,"stage":"done","route":"code","group":"Management","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-18T21:08:45Z","updated_at":"2026-04-20T08:20:47Z","stage_entered_at":"2026-04-18T20:58:03Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:board\",\"color\":\"0052CC\"}]","starred":0,"source":"local"},{"issue":516,"title":"New Task extra variable","eli5":"Choose where new tasks land: Ideas or Backlog.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-18T21:24:57Z","updated_at":"2026-04-20T08:20:26Z","stage_entered_at":"2026-04-18T16:17:31Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:code\",\"color\":\"ededed\"},{\"name\":\"epic:board\",\"color\":\"0052CC\"}]","starred":0,"source":"local"},{"issue":342,"title":"feat(agents): post-reviewer — autonomous post-QA code review agent","eli5":"A new reviewer checks code quality before it gets saved.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T23:02:18Z","updated_at":"2026-04-18T23:02:18Z","stage_entered_at":"2026-04-16T16:40:07Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":10023,"title":"[backlog] map standalone tasks to projects via legacy Phase taxonomy","eli5":"Sort leftover tasks into the right project folders.","stage":"done","route":"ops","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-20T07:25:34Z","updated_at":"2026-04-20T07:25:35Z","stage_entered_at":"\n2026-04-20T06:57:12Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"name\":\"type:ops\",\"color\":\"ededed\"}]","starred":1,"source":"local"},{"issue":279,"title":"feat(ops): offsite backup ~/data/office/ — fill gaps after events-pivot local snapshots","eli5":"Save important app files to a second server every day.","stage":"done","route":"ops","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T23:02:18Z","updated_at":"2026-04-18T23:02:18Z","stage_entered_at":"\n2026-04-18T21:12:52Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":245,"title":"[pre-spec] fix: approve-issue.sh must verify code is in main before close-without-merge","eli5":"We're exploring a check for missing code before closing tasks.","stage":"done","route":"interactive","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T23:02:19Z","updated_at":"2026-04-18T23:02:19Z","stage_entered_at":"\n\n2026-04-18T21:14:44Z","blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":1,"title":"feat: Инфраструктура — scaffolding проекта","eli5":"Build the starting skeleton so real features can be added.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:37Z","updated_at":"2026-04-20T18:27:25Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":2,"title":"feat: Канбан-борд — синхронизация с GitHub Projects","eli5":"A visual board that keeps tasks synced with GitHub Projects.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:40Z","updated_at":"2026-04-16T15:43:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":3,"title":"feat: Управление агентами — создание/остановка сессий Claude Code","eli5":"Start, stop, and watch AI agents right from the website.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:43Z","updated_at":"2026-04-15T23:56:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":4,"title":"feat: Live-мониторинг — что агент делает в реальном времени","eli5":"Watch what each agent is doing right now, live.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:46Z","updated_at":"2026-04-16T00:06:47Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":6,"title":"feat: Пиксельная визуализация — The Office","eli5":"Live pixel-art office where AI agents work as animated characters.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-20T06:58:30Z","updated_at":"2026-04-20T06:58:30Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":7,"title":"feat: Codex review интеграция","eli5":"Show Codex review status on task cards with approval gate.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:49Z","updated_at":"2026-04-16T00:09:16Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":8,"title":"infra: CI/CD + nginx + VPS deploy","eli5":"Set up auto-deploy so the website goes live.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T12:33:42Z","updated_at":"2026-04-16T00:10:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":9,"title":"feat(feed): live журнал агентов","eli5":"See what pipeline agents are doing right now, live.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T13:26:10Z","updated_at":"2026-04-16T00:12:22Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":10,"title":"feat(dashboard): pipeline метрики","eli5":"Show a dashboard with numbers about how the pipeline is doing.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:35:48Z","updated_at":"2026-04-14T06:53:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":11,"title":"feat(board): минимальный канбан","eli5":"Add a simple page that shows tasks in columns, like a kanban board.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T13:44:16Z","updated_at":"2026-04-14T10:19:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":12,"title":"infra: второй dispatcher для The Office pipeline","eli5":"Set up a background service to run The Office pipeline automatically.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T12:48:22Z","updated_at":"2026-04-14T16:33:18Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":13,"title":"chore(bot): multi-project команды Telegram (/resume zodian, /resume office)","eli5":"Teach the Telegram bot which pipeline to start or stop.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:40:42Z","updated_at":"2026-04-14T16:52:35Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":14,"title":"fix: global flock lock для двух dispatcher (A+)","eli5":"Stop two background services from running agents at the same time.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T14:03:41Z","updated_at":"2026-04-14T16:56:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":15,"title":"feat(dispatcher): unified dispatcher с приоритетной очередью (Вариант C)","eli5":"Replace separate per-project task runners with one unified smart scheduler.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:49:52Z","updated_at":"2026-04-14T19:20:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":16,"title":"infra(codex): настроить Codex Code Review для The Office","eli5":"Set up automatic code review on every push.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T14:11:45Z","updated_at":"2026-04-16T06:16:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":19,"title":"fix(dispatcher): auto-merge и перемещение задач на Board #2","eli5":"Fix the background service so tasks finish automatically after QA passes.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T14:04:47Z","updated_at":"2026-04-14T20:21:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":22,"title":"fix(dispatcher): blocked комментарий пишется только один раз","eli5":"Stop the background service from posting duplicate \"Blocked\" warnings.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T14:18:52Z","updated_at":"2026-04-14T20:53:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":23,"title":"feat(dashboard): staleness indicator — предупреждение о неактивном pipeline","eli5":"Add a colored status light showing if the pipeline is active.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T21:58:37Z","updated_at":"2026-04-14T21:09:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":24,"title":"feat(codex): Codex Review Dashboard — scorecards и тренды","eli5":"Add a Codex tab showing code review results, verdicts, and trends.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T14:47:49Z","updated_at":"2026-04-14T21:25:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":26,"title":"feat(waterfall): per-task timeline с длительностью этапов","eli5":"See how long each task spent in every pipeline stage.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T21:58:38Z","updated_at":"2026-04-14T21:49:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":27,"title":"feat(ui): Micro-Pixels — пиксельные аватарки агентов в sidebar","eli5":"Add tiny pixel art agent icons to sidebar showing live status.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T19:43:20Z","updated_at":"2026-04-14T23:18:42Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":28,"title":"feat(management): создание задач из UI (1B.1)","eli5":"Add a button to create tasks without leaving the app.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T15:40:11Z","updated_at":"2026-04-15T07:42:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":29,"title":"feat(management): approve/reject задач из UI (1B.2)","eli5":"Approve or reject review tasks directly from the browser.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T16:09:44Z","updated_at":"2026-04-15T08:45:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":30,"title":"feat(management): запуск pipeline из UI — Backlog → To Do (1B.3)","eli5":"Move tasks to pipeline with one click from the dashboard.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T12:20:08Z","updated_at":"2026-04-15T09:02:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":31,"title":"refactor(dispatcher): вынести хардкод IDs в config.sh","eli5":"Move all hardcoded settings into one shared config file.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T16:18:45Z","updated_at":"2026-04-15T09:33:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":32,"title":"fix(dispatcher): guard — проверка что coder запушил код перед handoff","eli5":"Stop the pipeline if Coder finishes without committing any code.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T15:09:53Z","updated_at":"2026-04-15T17:37:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":33,"title":"fix(zodian): реплицировать flock lock в zodian signal-daemon.sh","eli5":"Stop two background services launching AI agents at the same time.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T09:34:41Z","updated_at":"2026-04-15T19:13:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":34,"title":"feat(dispatcher): приоритизация задач по label priority:urgent","eli5":"Urgent tasks now jump to the front of the work queue.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:40:45Z","updated_at":"2026-04-15T20:16:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":35,"title":"docs: Quality Rubric v1.0 для The Office pipeline","eli5":"Create a scorecard to grade how well each task was done.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T16:23:30Z","updated_at":"2026-04-15T21:02:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":36,"title":"feat(dispatcher): автозапись в o-completed.md после Done","eli5":"Pipeline auto-logs finished tasks — no more manual entries by owner.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:16:20Z","updated_at":"2026-04-15T22:01:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":37,"title":"feat(ui): навигация и layout — sidebar + tabs для всех страниц","eli5":"Add a sidebar menu to switch between pages.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:16:23Z","updated_at":"2026-04-15T22:55:14Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":39,"title":"fix(dispatcher): find_feature_branch не находит ветки формата prefix/NUMBER-name","eli5":"Auto-merge now finds feature branches regardless of naming style.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:16:26Z","updated_at":"2026-04-15T23:56:45Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":40,"title":"fix(board): Done колонка — обратная сортировка (новые сверху)","eli5":"Done column now shows newest finished tasks at the top.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T09:01:57Z","updated_at":"2026-04-15T23:57:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":43,"title":"feat(bot): /new команда добавляет issue на GHP Board","eli5":"New Telegram tasks now automatically appear on the project board.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:19Z","updated_at":"2026-04-15T23:58:31Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":44,"title":"fix(dispatcher): auto-rebase на main перед созданием PR","eli5":"Auto-fix code conflicts before merging parallel tasks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:16:29Z","updated_at":"2026-04-16T00:00:54Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":55,"title":"feat(drift): Board vs reality reconciliation — unmerged PR и orphan branches","eli5":"Dashboard alerts when board status doesn't match actual GitHub state.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:31:52Z","updated_at":"2026-04-15T23:59:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":56,"title":"feat(board): Task Dependencies — DAG view и blocker enforcement","eli5":"Tasks know what must finish before they can start.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:03Z","updated_at":"2026-04-15T23:59:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":57,"title":"feat(dispatcher): auto-retry — автоматический retry после FAIL","eli5":"Pipeline auto-retries failed tasks instead of stopping and waiting.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:04Z","updated_at":"2026-04-15T23:59:31Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":58,"title":"feat(metrics): collect-metrics.sh — сбор pipeline метрик в JSON","eli5":"Gather pipeline stats into one file for the dashboard.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T20:16:31Z","updated_at":"2026-04-15T23:59:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":59,"title":"feat(control): pause/resume/stop агента из UI через signal files","eli5":"Control the pipeline from the browser, no terminal needed.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:06Z","updated_at":"2026-04-15T23:59:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":60,"title":"feat(infra): SPOF Watchdog — мониторинг dispatcher health","eli5":"Alert us if the pipeline stops working silently.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:08Z","updated_at":"2026-04-16T00:03:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":61,"title":"feat(ui): responsive mobile layout для телефона","eli5":"The Office website now works properly on phones.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T21:43:18Z","updated_at":"2026-04-16T00:04:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":62,"title":"feat(ui): dark/light theme toggle","eli5":"Users can switch between dark and light theme.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:09Z","updated_at":"2026-04-16T00:04:13Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"}]","starred":0,"source":"legacy_github"},{"issue":63,"title":"feat(bot): rich Telegram notifications — progress bar и summary","eli5":"Telegram notifications get progress bars, batching, and daily summaries.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:10Z","updated_at":"2026-04-16T00:05:23Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"}]","starred":0,"source":"legacy_github"},{"issue":64,"title":"chore: cleanup orphan branches и stale PRs","eli5":"Clean up leftover code branches from finished tasks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:12Z","updated_at":"2026-04-16T00:04:34Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":68,"title":"feat(dispatcher): AI conflict resolution — Claude разрешает merge conflicts","eli5":"AI automatically fixes code conflicts instead of waiting for a human.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T22:53:36Z","updated_at":"2026-04-16T00:05:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":69,"title":"feat(bot): /merge N — rebase + merge из Telegram","eli5":"Merge code branches from Telegram without needing SSH access.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:14Z","updated_at":"2026-04-16T00:04:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":70,"title":"infra: GitHub Actions workflow_dispatch для merge — Perplexity trigger","eli5":"Let Perplexity merge code without needing server access.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T09:01:58Z","updated_at":"2026-04-16T00:07:36Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":71,"title":"feat(bot): улучшение Telegram UX — дедупликация, ссылки, контекст review","eli5":"Telegram notifications get smarter, clickable, and stop repeating.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:15Z","updated_at":"2026-04-16T00:07:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":72,"title":"fix(dispatcher): не использовать Closes #N в PR body — закрывать явно","eli5":"Stop tasks from being accidentally closed when code merges.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T21:43:16Z","updated_at":"2026-04-16T00:08:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":73,"title":"fix(dispatcher): post-merge verify — проверка что merge не пустой","eli5":"Catch when merged code secretly contains zero actual changes.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T21:58:40Z","updated_at":"2026-04-16T00:08:19Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":74,"title":"feat(supervisor): bash gate + hourly cron sweep — defense-in-depth","eli5":"Auto-check every task result and fix board mistakes hourly.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T22:35:37Z","updated_at":"2026-04-16T00:08:30Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":75,"title":"feat(supervisor): LLM Supervisor — семантическая верификация AC (Haiku)","eli5":"AI double-checks that finished tasks actually meet their requirements.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T07:40:17Z","updated_at":"2026-04-16T00:08:41Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":77,"title":"fix(dashboard): подключить реальные данные вместо заглушек на HomePage","eli5":"Dashboard now shows real stats instead of placeholder text.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-04T22:57:01Z","updated_at":"2026-04-16T00:08:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":79,"title":"feat(qa): визуальная проверка UI — Playwright screenshot + Claude Vision","eli5":"QA now checks if pages actually look right, not just code.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T03:48:51Z","updated_at":"2026-04-16T00:09:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":80,"title":"[IDEA maybe] feat(qa): Playwright screenshot baseline — pixel-perfect visual regression","eli5":"Catch broken UI by comparing screenshots before and after changes.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T14:50:06Z","updated_at":"2026-04-16T00:09:26Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":87,"title":"Visual QA Report — Playwright audit (2026-04-05)","eli5":"Visual check found broken dashboard stats and phone layout issues.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T21:40:21Z","updated_at":"2026-04-16T00:09:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":88,"title":"infra(merge): squash-first delivery + review sweep + lib-merge.sh (P0+P1)","eli5":"Fix the merge system so finished tasks stop getting stuck.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T10:19:14Z","updated_at":"2026-04-16T00:09:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":89,"title":"infra(dispatcher): smart iteration limit — QA PASS → force merge (P2)","eli5":"Don't block tasks that already passed QA — merge them.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T12:11:26Z","updated_at":"2026-04-16T00:09:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":90,"title":"infra(dispatcher): pre-coder branch guard + post-checks (P3)","eli5":"Set up the coding agent's workspace branch automatically before it starts.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T12:33:19Z","updated_at":"2026-04-16T00:10:22Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":91,"title":"infra(dispatcher): clean retry — loop detection + fresh restart (P4)","eli5":"Pipeline auto-retries stuck tasks by wiping and starting fresh.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T12:33:43Z","updated_at":"2026-04-16T00:10:32Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":92,"title":"docs(memory): обновить patterns.md + cleanup self-healing-pipeline.md (P5)","eli5":"Update outdated docs to match how the pipeline actually works now.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:19:37Z","updated_at":"2026-04-16T00:10:45Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"}]","starred":0,"source":"legacy_github"},{"issue":93,"title":"fix(dashboard): метрики показывают N/A — metrics.json из zodian","eli5":"Dashboard metrics show nothing because they read wrong project's data.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T12:47:44Z","updated_at":"2026-04-16T00:10:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":94,"title":"fix(ui): mobile responsive — overflow на Dashboard, таблицы не адаптивны","eli5":"Fix pages that break or scroll sideways on phones.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:32:16Z","updated_at":"2026-04-16T00:11:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":95,"title":"qa(board): проверить approve/reject кнопки (#29)","eli5":"Document when approve/reject buttons appear and how they work.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T17:52:48Z","updated_at":"2026-04-16T00:11:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"ededed\",\"name\":\"In Testing\"}]","starred":0,"source":"legacy_github"},{"issue":96,"title":"qa(board): e2e проверка создания задачи (#28)","eli5":"Test if creating tasks from the website actually works end-to-end.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:53:12Z","updated_at":"2026-04-16T00:11:32Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":97,"title":"infra: Owner worktree — изоляция Owner от dispatcher working tree","eli5":"Owner gets a separate workspace so the pipeline can't erase work.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T10:59:25Z","updated_at":"2026-04-16T00:11:47Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":98,"title":"fix(bot): Telegram multi-project — /status, /pause, /resume для обоих pipeline + HTML fix","eli5":"Telegram bot commands now work for both pipelines, not just one.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:16:19Z","updated_at":"2026-04-16T00:12:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":99,"title":"infra: worktree-изоляция — control plane immutable, agent worktree отдельный","eli5":"Give the agent its own workspace so it stops breaking things.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:05:41Z","updated_at":"2026-04-16T00:12:12Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":106,"title":"fix(notify): HTML linkify — Telegram показывает raw HTML вместо ссылок","eli5":"Fix links in Telegram notifications — they show broken code instead.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T13:37:38Z","updated_at":"2026-04-14T06:53:06Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":109,"title":"infra(bot): два Telegram-бота — разделение Office и Zodian в отдельные чаты","eli5":"Split one bot into two so each project gets its own chat.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T14:36:24Z","updated_at":"2026-04-14T06:53:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":110,"title":"infra(dispatcher): branch mismatch fix — агрессивная очистка + detect/retry","eli5":"Fix agents accidentally saving work to the wrong place.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T14:59:39Z","updated_at":"2026-04-14T09:25:34Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":113,"title":"fix(deploy): mkdir /root/Apps/TheOffice/dist на Hetzner VPS","eli5":"Fix the website so new code actually shows up live.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T15:35:53Z","updated_at":"2026-04-14T06:53:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":114,"title":"fix(pipeline): post-deploy health check — не закрывать issue при failed deploy","eli5":"Stop marking tasks done when the live site update fails.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T22:12:13Z","updated_at":"2026-04-14T10:18:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":115,"title":"fix(deploy): ручной re-deploy после создания директории на VPS","eli5":"Re-deploy the app now that the server folder is fixed.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T15:37:42Z","updated_at":"2026-04-14T10:19:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":117,"title":"feat: split Pipeline Control into two side-by-side panels (The Office + Zodian) + deploy fix","eli5":"Split the control panel into two, one for each project.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T22:04:40Z","updated_at":"2026-04-14T10:19:02Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":119,"title":"infra(sweep): stateless каждый тик + health check в dispatcher","eli5":"Fix the reviewer so it always sees the latest tasks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T15:56:36Z","updated_at":"2026-04-14T10:19:03Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"B60205\",\"name\":\"pipeline-critical\"}]","starred":0,"source":"legacy_github"},{"issue":120,"title":"infra(dispatcher): pre_flight_check + post_coder_check — gate до и после агента","eli5":"Add two safety checks that catch when Coder forgets to commit.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:09:02Z","updated_at":"2026-04-14T16:14:38Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"B60205\",\"name\":\"pipeline-critical\"}]","starred":0,"source":"legacy_github"},{"issue":121,"title":"docs(pipeline): pipeline-invariants.md + обновить contexts/coder.md","eli5":"Write down 7 rules the pipeline must never break.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:17:17Z","updated_at":"2026-04-14T16:14:42Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":122,"title":"infra(dispatcher): dual-state — QA PASS + merge fail → auto-rebase, не Coder retry","eli5":"Auto-rebase when QA passes but merging fails — skip Coder restart.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:27:24Z","updated_at":"2026-04-14T16:14:38Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"B60205\",\"name\":\"pipeline-critical\"}]","starred":0,"source":"legacy_github"},{"issue":123,"title":"infra(dispatcher): pipeline-critical routing — skip infra задачи при owner_mode: away","eli5":"Dangerous pipeline tasks are skipped when the owner is away.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:33:05Z","updated_at":"2026-04-14T16:14:40Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"B60205\",\"name\":\"pipeline-critical\"}]","starred":0,"source":"legacy_github"},{"issue":124,"title":"chore: cleanup 17 stale remote веток + закрыть #55","eli5":"Delete 17 old code branches and close one completed task.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T16:39:47Z","updated_at":"2026-04-14T16:14:38Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":126,"title":"chore(dispatcher): убрать priority:urgent из pick_tasks — приоритет по позиции на доске [PROBLEM]","eli5":"Remove dead code that sorted tasks by a deleted label.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T08:12:33Z","updated_at":"2026-04-14T16:14:40Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":128,"title":"infra(dispatcher): auto-update control plane + restart signal-daemon при новых коммитах","eli5":"The background service now auto-updates and restarts when new code arrives.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T20:03:22Z","updated_at":"2026-04-14T16:14:40Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"B60205\",\"name\":\"pipeline-critical\"}]","starred":0,"source":"legacy_github"},{"issue":134,"title":"feat(pipeline): Post-Mortem роль — auto-record o-completed.md + архивация спек [PROBLEM]","eli5":"Pipeline automatically writes a summary when each task finishes.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T08:14:09Z","updated_at":"2026-04-16T06:10:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":135,"title":"docs: recovery-runbook.md — что делать при падении VPS/pipeline/deploy","eli5":"Create a cheat sheet for fixing broken VPS, pipeline, or deploys.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T22:55:27Z","updated_at":"2026-04-14T16:33:19Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":136,"title":"feat(dashboard): Pipeline Status Panel — dispatcher, daemon, agents, sweep в реальном времени","eli5":"Dashboard now shows live pipeline health — agents, service, timing.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T22:27:44Z","updated_at":"2026-04-14T16:52:34Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":137,"title":"docs: обновить CLAUDE.md + .claude/memory/ (саммари + ссылки) + docs/ (source of truth)","eli5":"Sync and clean up all docs so nothing is duplicated.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T22:31:07Z","updated_at":"2026-04-14T22:31:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":142,"title":"fix(dispatcher): detached HEAD ломает post-agent проверки — branch mismatch, 0 commits, lock spam","eli5":"Stop the pipeline from spamming and getting stuck on every task.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T12:36:11Z","updated_at":"2026-04-14T16:52:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":145,"title":"chore(dispatcher): убрать priority:urgent из pick_tasks","eli5":"Remove dead \"urgent\" sorting code from the task picker.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T08:42:47Z","updated_at":"2026-04-14T16:55:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":146,"title":"feat(pipeline): Post-Mortem — auto-record o-completed.md после merge","eli5":"After each task finishes, automatically log it to the completed tasks file.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T08:44:56Z","updated_at":"2026-04-14T16:55:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":147,"title":"Pipeline Ops page — Phase 1: read-only visibility + toggles","eli5":"New page to see and control all pipeline parts at once.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T10:21:10Z","updated_at":"2026-04-16T06:12:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":150,"title":"Перерисовать человечков наверху справа в пиксельных Покемонов","eli5":"Upgrade the four Pokémon sprites to be twice as detailed.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T11:22:17Z","updated_at":"2026-04-14T16:55:51Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":153,"title":"fix: visual-check.sh vite preview hangs indefinitely","eli5":"Fix the visual-check script so it never gets stuck forever.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T11:16:58Z","updated_at":"2026-04-14T18:52:25Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":154,"title":"fix: move pipeline-status.json out of git (runtime data → /tmp)","eli5":"Stop tracking a temporary status file in git.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T11:50:50Z","updated_at":"2026-04-16T06:13:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":156,"title":"fix: move metrics.json to GitHub API push (like pipeline-status)","eli5":"Stop metrics updates from clashing with other scripts.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T12:59:09Z","updated_at":"2026-04-16T06:14:12Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":157,"title":"[MANUAL] refactor: Unified Daemon — merge dispatcher + signal-daemon","eli5":"Someone needs to manually merge two background services into one.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T19:00:03Z","updated_at":"2026-04-14T19:20:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":158,"title":"feat: QA FAIL → Writer path (spec issues vs code issues)","eli5":"When QA fails, route the task to whoever can actually fix it.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T22:00:03Z","updated_at":"2026-04-14T19:20:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":159,"title":"docs: pipeline state machine diagram (4 QA outcomes)","eli5":"Add a diagram showing all steps tasks take through the pipeline.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T12:48:15Z","updated_at":"2026-04-14T19:20:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":160,"title":"fix: per-issue lock in signal-daemon to prevent duplicate agents","eli5":"Stop duplicate agents launching for the same task at once.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T13:00:30Z","updated_at":"2026-04-14T19:24:50Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":161,"title":"chore: remove supervisor-llm.sh (soft mode, never blocks)","eli5":"Remove unused script that duplicated QA's job.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T14:13:46Z","updated_at":"2026-04-16T06:15:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":166,"title":"fix: cleanup stale systemd transient units from Active Agents display","eli5":"Dashboard now hides ghost agents that already stopped running.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T13:20:22Z","updated_at":"2026-04-14T19:25:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"In Testing\"}]","starred":0,"source":"legacy_github"},{"issue":167,"title":"feat: Agents page — agent cards, pipeline flow diagram, context prompts","eli5":"New page showing all 4 pipeline agents, their status, and flow diagram.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T14:14:08Z","updated_at":"2026-04-14T19:40:25Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":168,"title":"infra: per-issue worktrees — fix shared worktree architecture (4 critical problems)","eli5":"Give each pipeline agent its own isolated workspace to prevent conflicts.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T22:08:47Z","updated_at":"2026-04-14T19:40:13Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":169,"title":"infra: codex-review.yml reads prompt from contexts/codex.md","eli5":"Codex Review agent's prompt moves to its own file like the others.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T16:04:52Z","updated_at":"2026-04-14T19:40:16Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":170,"title":"feat: QA→Writer route — FAIL_SPEC returns task to Writer for spec revision","eli5":"QA can now send tasks back to fix the spec.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T06:23:20Z","updated_at":"2026-04-16T06:17:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":176,"title":"feat: pre-push hook in agent-1 worktree — soft scope check before push","eli5":"Warn the Coder agent before it pushes files it shouldn't touch.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T20:27:15Z","updated_at":"2026-04-14T19:49:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":177,"title":"fix(ui): black rectangles on Agents/Feed/Codex — dark theme color issues across pages","eli5":"Fix black rectangles on Agents, Feed, and Codex pages.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T19:36:33Z","updated_at":"2026-04-14T19:49:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":181,"title":"fix(dashboard): Auth expires shows 'just now', Sweep stale unclear, Activity markers miss comments","eli5":"Fix three small dashboard display bugs: auth timer, sweep, event labels.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T22:40:50Z","updated_at":"2026-04-14T19:49:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":182,"title":"feat: Pipeline Status indicator — Running/Crashed/Blocked/Idle states","eli5":"The pipeline health card now shows 5 states, including crashes.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T20:03:15Z","updated_at":"2026-04-14T19:49:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":183,"title":"feat: .claude/rules/ — path-scoped context for headless agents","eli5":"Agents get automatic coding rules when editing frontend or script files.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T20:51:09Z","updated_at":"2026-04-14T19:57:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":184,"title":"feat: native scope guard — .claude/settings.json permissions per role","eli5":"Lock agents to their assigned files before they start editing.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T20:53:30Z","updated_at":"2026-04-14T19:57:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":186,"title":"feat(waterfall): absolute time bars, fix gray stages, cap at 30min","eli5":"Fix the timeline chart so task bars show real time lengths.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T06:27:45Z","updated_at":"2026-04-14T20:05:50Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":187,"title":"fix(dashboard): sync AgentPanel with real-time agent status","eli5":"Agent status dots now show who's actually running, not who has tasks.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:10:11Z","updated_at":"2026-04-14T20:05:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":190,"title":"feat(agents): per-agent performance metrics (tasks, success rate, avg time)","eli5":"Agent cards now show performance stats — tasks, success rates, averages.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T22:29:19Z","updated_at":"2026-04-14T20:06:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"ededed\",\"name\":\"In Testing\"}]","starred":0,"source":"legacy_github"},{"issue":191,"title":"feat(agents): context version management — switch, duplicate, upload","eli5":"Manage multiple saved context files per agent from the UI.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:10:14Z","updated_at":"2026-04-14T20:05:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":192,"title":"feat(agents): per-agent guard toggles (scope, visual-check, etc.)","eli5":"Add on/off toggle switches for each agent's guard checks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T22:56:32Z","updated_at":"2026-04-14T20:13:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":198,"title":"fix(dispatcher): on-agent-stop misses QA→Review move — no PR created, stuck in Review","eli5":"Fix a timing bug so QA passes always trigger a code submission.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:10:07Z","updated_at":"2026-04-14T20:14:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":200,"title":"fix(dispatcher): on-agent-stop runs 2-3 times — duplicate Telegram messages and double handoffs","eli5":"Stop the pipeline from sending duplicate Telegram messages when an agent finishes.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:10:09Z","updated_at":"2026-04-14T20:21:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":201,"title":"fix(dispatcher): on-agent-stop misses QA→Review move — no PR created","eli5":"Fix a race where QA's \"passed\" signal gets ignored.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:41:14Z","updated_at":"2026-04-14T20:21:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":202,"title":"fix(dispatcher): on-agent-stop runs 2-3 times — duplicate Telegram + handoffs","eli5":"Fix stops agents from sending duplicate \"done\" notifications on finish.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:41:16Z","updated_at":"2026-04-14T20:22:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":203,"title":"fix(dashboard): sync AgentPanel with real-time agent status","eli5":"Agent avatars turn green only when an agent is actually running.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-06T23:30:53Z","updated_at":"2026-04-14T20:21:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":204,"title":"feat(agents): context version management — switch, duplicate, upload","eli5":"Switch, duplicate, or upload agent instruction file versions from the UI.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T06:29:20Z","updated_at":"2026-04-14T20:21:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":206,"title":"fix(dashboard): AgentPanel uses board columns instead of real-time process data","eli5":"Fix green dots on agent avatars to show real running status.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T06:29:29Z","updated_at":"2026-04-14T20:30:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":208,"title":"fix(dispatcher): QA handoff guard — auto-move to Review when QA PASS but stuck In Testing","eli5":"Fix a stuck QA loop — auto-push approved tasks to Review.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T06:29:25Z","updated_at":"2026-04-14T20:30:14Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":209,"title":"fix(dispatcher): remove duplicate on-agent-stop call from run-agent.sh","eli5":"Fix agent cleanup so each completion sends one notification only.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T06:29:23Z","updated_at":"2026-04-14T20:30:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":212,"title":"fix(dispatcher): QA handoff guard — auto-move to Review when QA PASS but stuck In Testing","eli5":"Fix a bug where tasks get stuck looping through QA forever.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T08:18:12Z","updated_at":"2026-04-14T20:38:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":213,"title":"fix(dashboard): AgentPanel active status from process data, not board columns","eli5":"Fix green dot on agent cards to show real running state.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T08:18:16Z","updated_at":"2026-04-14T20:37:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":216,"title":"fix(dashboard): AgentPanel active from process data, not board columns","eli5":"Fix agent status dot — show if agent is actually running.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T08:27:12Z","updated_at":"2026-04-14T20:37:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":217,"title":"feat(dashboard): Cron Jobs page — live status of all scheduled jobs","eli5":"Add a page showing all scheduled server jobs and their health.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T09:08:45Z","updated_at":"2026-04-14T20:38:03Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":218,"title":"fix: review flow — dropdown муляж, Approve/Reject logic, formulations","eli5":"Fix broken review buttons — approve, reject, and gate setting.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T09:15:03Z","updated_at":"2026-04-14T20:45:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":219,"title":"Продублировать кнопку \"Review Gate\" на главной странице, чтобы она была и там, и в Ops. поСтавить можно где-то под Pipeline Status","eli5":"Add Review Gate dropdown to the main dashboard page.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T09:11:58Z","updated_at":"2026-04-14T20:45:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":223,"title":"feat: Pipeline Health page — route analytics with drill-down (6 routes, server-side collection)","eli5":"Add a Health page showing how tasks pass through the pipeline.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T17:24:16Z","updated_at":"2026-04-14T20:53:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":225,"title":"refactor: remove direct signal creation from on-agent-stop.sh — dispatcher is single signal source","eli5":"One place now handles all agent launches — no more duplicates.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T20:30:49Z","updated_at":"2026-04-14T20:54:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":226,"title":"chore: disable review-sweep by default — on-agent-stop handles auto-merge","eli5":"Disable a redundant scheduled sweep — one config flag change.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T20:50:58Z","updated_at":"2026-04-14T20:53:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":229,"title":"chore: remove owner_mode and pipeline-critical label","eli5":"Remove old \"away mode\" switch — pipeline now runs all tasks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T23:52:11Z","updated_at":"2026-04-14T20:54:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":230,"title":"feat(review): improve Review page — indicators + Approve without PR","eli5":"Fix Approve button and add risk/review badges on Review page.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T23:52:12Z","updated_at":"2026-04-14T21:02:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":231,"title":"feat(dashboard): Codex agent indicator — show active GitHub Actions runs","eli5":"Make the Codex agent card light up when it's actively reviewing.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T21:06:21Z","updated_at":"2026-04-14T21:02:16Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":233,"title":"feat: event-driven pipeline status [after #157]","eli5":"Dashboard shows active agents instantly instead of a 12-min wait.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T20:33:19Z","updated_at":"2026-04-14T21:02:16Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":234,"title":"fix: pre-squash merge main into branch — prevent file deletion on parallel work","eli5":"Stop the pipeline from deleting files added during parallel work.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-07T23:45:03Z","updated_at":"2026-04-14T21:02:19Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":235,"title":"feat: create Draft PR after coder push — Codex runs before QA","eli5":"Auto-submit code draft after Coder so Codex can review before QA.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T11:27:51Z","updated_at":"2026-04-14T21:02:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":239,"title":"fix(review): Approve must create PR and merge code, not just close issue","eli5":"Fix Approve so it actually merges code into main branch.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T08:44:39Z","updated_at":"2026-04-14T21:09:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":240,"title":"fix(review): Approve merges code via backend — single path through lib-merge.sh","eli5":"Clicking Approve now actually merges code into main automatically.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T09:11:15Z","updated_at":"2026-04-14T21:09:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":241,"title":"fix: control plane stuck on deleted branch — worktree creation fails","eli5":"Prevent pipeline freeze when a code branch gets deleted.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T10:15:46Z","updated_at":"2026-04-14T21:17:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":243,"title":"feat: MANUAL_STEPS marker in spec — auto-notify owner on Review","eli5":"Adds auto-warning in Telegram when a Review task needs manual steps.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T21:11:34Z","updated_at":"2026-04-14T21:18:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":247,"title":"fix: worktree setup race — reuse existing worktree instead of delete+recreate","eli5":"Don't wipe an agent's workspace if it's already being used.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T21:02:48Z","updated_at":"2026-04-14T21:26:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":248,"title":"fix: approve-issue.sh must mark Draft PR as ready before merge","eli5":"Mark draft submissions as final before the pipeline tries to merge them.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T13:20:18Z","updated_at":"2026-04-14T21:25:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":250,"title":"Principles page — /principles with decision mapping","eli5":"New Principles page shows project rules and how well we follow them.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T16:40:56Z","updated_at":"2026-04-14T21:26:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":253,"title":"Remove ExecStopPost worktree cleanup — race condition fix","eli5":"Remove leftover cleanup that wipes the next agent's workspace mid-run.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T20:22:15Z","updated_at":"2026-04-14T21:33:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":254,"title":"Visual QA + test stand: Playwright MCP for QA, persistent dev server for Review","eli5":"QA now visually checks the UI; owner gets a live preview link.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T21:51:56Z","updated_at":"2026-04-14T21:34:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":256,"title":"fix: START_SHA_FILE undefined in on-agent-stop.sh — crash detection silently fails","eli5":"Fix a typo so crash detection actually works.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T19:26:31Z","updated_at":"2026-04-14T21:33:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":258,"title":"fix: serialize concurrent approves (flock or daemon-only merge)","eli5":"Stops duplicate merges when the same task gets approved twice.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T20:52:57Z","updated_at":"2026-04-14T21:34:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":262,"title":"feat: Ops page — editable job intervals + auto-discovery from crontab","eli5":"Auto-discover scheduled jobs and edit their run frequency from /ops.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:37:31Z","updated_at":"2026-04-14T21:42:17Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":266,"title":"fix: Waterfall — remove Done from legend, investigate missing Review stages","eli5":"Remove \"Done\" from the Waterfall chart's legend.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T21:46:35Z","updated_at":"2026-04-14T21:42:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":270,"title":"feat(ops): Bridge service monitoring — show status on Ops page","eli5":"Show live bridge service status on the Ops dashboard.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T17:35:44Z","updated_at":"2026-04-14T21:50:03Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":271,"title":"[EPIC] Прокачка агентов","eli5":"Give the pipeline's AI workers better memory and self-review skills.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:13:34Z","updated_at":"2026-04-14T21:49:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":272,"title":"Польза от использования Sub-issues","eli5":"Research if GitHub sub-issues are useful for tracking related tasks.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:00:05Z","updated_at":"2026-04-14T21:50:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":273,"title":"Создание shortcuts в Клоде","eli5":"Manage reusable Claude shortcuts from the website control panel.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T20:00:03Z","updated_at":"2026-04-14T21:49:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":274,"title":"feat(ops): VPS Resources section — RAM, CPU, Disk, Load","eli5":"Add RAM, CPU, and Disk gauges to the Ops page.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T21:23:33Z","updated_at":"2026-04-14T21:49:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":275,"title":"feat(ops): Token Management — read-only status cards (Phase A)","eli5":"/ops page gets a panel showing if 4 secret tokens exist.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T20:43:06Z","updated_at":"2026-04-14T22:23:45Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":277,"title":"feat(ops): Telegram notification toggles — mute/unmute per event type","eli5":"Add per-type mute toggles for Telegram alerts on the Ops page.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T18:18:18Z","updated_at":"2026-04-14T22:56:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":278,"title":"fix: auto-delete orphan branches in board-reconcile — remove hourly alert spam","eli5":"Old code branches from closed tasks now clean themselves up silently.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T20:08:54Z","updated_at":"2026-04-14T23:07:50Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":280,"title":"feat: Daily Digest for Office Telegram chat","eli5":"Add a script that gathers daily Office stats into JSON.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T17:33:30Z","updated_at":"2026-04-15T06:54:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":282,"title":"feat: Daemon waits for Codex before dispatching QA","eli5":"Background service waits for Codex review before starting QA.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T18:01:04Z","updated_at":"2026-04-15T06:54:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":287,"title":"feat(perf): Deduplicate board data fetching with React Context","eli5":"Make the dashboard fetch board data once instead of 6 times.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T22:32:06Z","updated_at":"2026-04-15T07:26:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":293,"title":"[EPIC] Sub-Issues Integration — Task Decomposer (Phase 3)","eli5":"Writer agent automatically breaks large tasks into smaller independent pieces.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T18:21:18Z","updated_at":"2026-04-15T08:14:54Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"7057ff\",\"name\":\"epic\"}]","starred":0,"source":"legacy_github"},{"issue":295,"title":"feat(pipeline): Phase 2 — Writer as Epic Decomposer","eli5":"Big tasks get auto-split into smaller ones for agents.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T10:26:21Z","updated_at":"2026-04-16T06:17:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":296,"title":"[MANUAL] feat(coder): inter-session memory via issue comments","eli5":"Someone needs to manually make the Coder save notes between attempts.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T10:02:57Z","updated_at":"2026-04-15T08:30:28Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":297,"title":"[MANUAL] feat(writer): project-knowledge.md — curated context file","eli5":"Someone needs to manually build a cheat-sheet for the Writer agent.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T08:20:27Z","updated_at":"2026-04-15T08:45:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":303,"title":"feat(roadmap): epic progress view — Active Epics section + KPI card + sub-issues expansion","eli5":"Show how far along big projects are on the roadmap.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T11:16:20Z","updated_at":"2026-04-13T21:11:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":305,"title":"feat(coder): inter-session memory via attempt summary comments","eli5":"Code writer now leaves notes so it doesn't repeat past mistakes.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":"2026-04-10T09:58:15Z","updated_at":"2026-04-13T21:11:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":306,"title":"feat(writer): read docs/memory/ for project knowledge context","eli5":"Make the Writer read project notes before starting work.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":"2026-04-10T10:12:48Z","updated_at":"2026-04-13T21:11:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":307,"title":"feat(agents): versioning UX — preview, diff, rollback confirmation","eli5":"Let you preview agent versions before switching, with undo warning.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":"2026-04-10T11:06:52Z","updated_at":"2026-04-13T21:11:13Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":308,"title":"feat(agents): 3-section layout — Pipeline / Optional / Strategic","eli5":"Add on/off switches for extra review bots on the Agents page.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"agent-quality-upgrades","closed_at":"2026-04-10T10:29:24Z","updated_at":"2026-04-13T21:12:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":314,"title":"fix(pipeline): investigate double stop events for same QA agent","eli5":"Stop two workers from finishing the same job at the same time.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T11:28:44Z","updated_at":"2026-04-13T21:14:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":316,"title":"fix(merge): auto-recover from rebase conflicts without manual intervention","eli5":"When two changes clash, the system now fixes itself automatically.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T16:07:27Z","updated_at":"2026-04-13T21:14:41Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":317,"title":"fix(qa): make Playwright visual check mandatory for src/ changes","eli5":"Always take a screenshot when the website's look changes.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T16:37:21Z","updated_at":"2026-04-13T21:14:39Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":320,"title":"fix(merge): notify owner when AI conflict resolution is triggered","eli5":"Send a Telegram alert when AI tries to fix a code conflict.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:48:50Z","updated_at":"2026-04-15T09:33:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":321,"title":"fix(dispatcher): add pagination to move_issue and board-reconcile (items >100)","eli5":"Fix scripts that miss tasks when the board exceeds 100 items.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:00:04Z","updated_at":"2026-04-15T09:49:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":322,"title":"[TEST] Mock epic — smoke test for automated decomposer","eli5":"Test that the pipeline auto-splits an epic into sub-tasks.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:30:03Z","updated_at":"2026-04-15T09:49:53Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"7057ff\",\"name\":\"epic\"}]","starred":0,"source":"legacy_github"},{"issue":323,"title":"fix(ops): optimistic update after interval change — UI shows new value immediately","eli5":"Interval button highlights immediately — no more waiting for a refresh.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:50:19Z","updated_at":"2026-04-15T10:06:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":324,"title":"test(notify): add smoke-test-1 comment to notify.sh","eli5":"Add a comment to the notify script for smoke testing.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:08Z","updated_at":"2026-04-15T16:36:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":325,"title":"test(config): add smoke-test-2 comment to config.sh","eli5":"Add a test comment to a config file for pipeline validation.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:10Z","updated_at":"2026-04-15T16:36:06Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":326,"title":"feat(ops): daemon tick selector — switch between 30s and 60s via UI","eli5":"Set background service loop speed from the UI without restarting.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T18:15:36Z","updated_at":"2026-04-15T16:48:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":327,"title":"test(health): add smoke-test-3 comment to collect-health.sh","eli5":"Add a test marker comment to the health-collection script.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:11Z","updated_at":"2026-04-15T16:49:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":328,"title":"test(notify): add smoke-test-1 comment to notify.sh","eli5":"Add a marker comment to a script for automated test validation.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:13Z","updated_at":"2026-04-15T17:05:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":329,"title":"test(config): add smoke-test-2 comment to config.sh","eli5":"Add a test marker line to the pipeline config file.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:15Z","updated_at":"2026-04-15T17:05:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":330,"title":"test(health): add smoke-test-3 comment to collect-health.sh","eli5":"Add a test marker comment to the health-check script.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T17:21:16Z","updated_at":"2026-04-15T17:37:03Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":331,"title":"fix(pipeline): epic decomposer — race condition + sub-issues land in No Status","eli5":"Fix Epic Decomposer: no duplicate tasks, correct column, no deadlock.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T18:01:33Z","updated_at":"2026-04-15T17:53:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":337,"title":"feat(pipeline): per-issue Codex tracking — codex_waiting[] in pipeline-status.json + Agent Panel","eli5":"Track which issue Codex is reviewing and show it on the dashboard.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T20:05:11Z","updated_at":"2026-04-15T18:41:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":338,"title":"fix(qa): remove Codex polling loop from QA — daemon is the single Codex gate","eli5":"QA stops waiting for Codex — the pipeline already handled that.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-10T18:19:49Z","updated_at":"2026-04-15T18:57:23Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":341,"title":"[IDEA] Research specs: обязательная секция ## Next Action с gh issue create","eli5":"Add a copy-paste command to research docs for creating follow-up tasks.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T15:54:52Z","updated_at":"2026-04-15T19:29:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":344,"title":"feat(pipeline): create_sub_issue() helper in lib-epic.sh","eli5":"One command properly links a sub-task to its parent epic.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:23:02Z","updated_at":"2026-04-15T19:45:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":346,"title":"[EPIC] Phase 3 — Intelligence","eli5":"The pipeline learns to suggest new tasks on its own.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:13:39Z","updated_at":"2026-04-15T20:00:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":347,"title":"feat(pipeline): auto-assign Group на Board при создании issue","eli5":"Auto-tag new tasks so they show up in progress bars.","stage":"done","route":"code","group":"Management","risk":"low","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-18T21:11:19Z","updated_at":"2026-04-18T21:11:19Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":350,"title":"Adding discovery questions for the writer? Like in Zodian","eli5":"Writer agent asks clarifying questions before starting a spec.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T14:50:03Z","updated_at":"2026-04-15T20:17:08Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":352,"title":"[EPIC] Discovery & Research Infrastructure","eli5":"Epic bodies become the research doc — no extra files.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:13:44Z","updated_at":"2026-04-15T20:31:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":353,"title":"feat(infra): /draft-research skill + EpicResearchModal + structured body pre-flight + epic-decomposer role","eli5":"Roadmap page now reads local files instead of querying GitHub.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"research-infrastructure","project_slug":"label-driven-pipeline","closed_at":"2026-04-12T20:21:54Z","updated_at":"2026-04-15T20:31:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":354,"title":"chore(docs): classify docs/specs/ → implementation + audits + consultations folders","eli5":"Sort the messy docs folder so files are easier to find.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"research-infrastructure","project_slug":"label-driven-pipeline","closed_at":"2026-04-12T06:46:16Z","updated_at":"2026-04-15T20:47:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":356,"title":"feat(agents): U1 — spec-reviewer + post-reviewer cards (coming soon)","eli5":"Add two new coming-soon agent cards to the Agents page.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T15:12:13Z","updated_at":"2026-04-15T20:47:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":357,"title":"[EPIC] Roadmap Visualization Enhancements","eli5":"Add 4 charts to roadmap page for better progress tracking.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:13:49Z","updated_at":"2026-04-15T21:03:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":358,"title":"feat(roadmap): Timeline / Gantt view — phases on horizontal axis","eli5":"Show roadmap phases as horizontal bars on a date timeline.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":"2026-04-15T21:48:49Z","updated_at":"2026-04-15T21:48:49Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":360,"title":"feat(roadmap): Dependencies visualization — граф блокировок между issues","eli5":"Show a map of which tasks block other tasks.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":"2026-04-15T21:48:51Z","updated_at":"2026-04-15T21:48:51Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":362,"title":"feat(agents): U2 — spec-gate + post-gate diamonds on pipeline flow diagram","eli5":"Two gray diamond placeholders appear on the pipeline flow diagram.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T17:49:41Z","updated_at":"2026-04-15T21:19:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":363,"title":"feat(agents): editable prompts on coming-soon cards — prepare before activation","eli5":"Coming-soon agent cards now show full prompt content, grayed out.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T17:58:43Z","updated_at":"2026-04-15T21:35:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":366,"title":"feat(dispatcher): observability + safe parsing — loud skips, why-stuck tool, narrow regex","eli5":"Stop tasks silently stalling — log skips and auto-alert when stuck.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:00:13Z","updated_at":"2026-04-15T21:51:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":367,"title":"feat(agents): U3 — agent mode chips (Writer discovery, QA infra review)","eli5":"Add mode toggle buttons to Writer and QA agent cards.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T21:00:14Z","updated_at":"2026-04-15T21:56:43Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":368,"title":"fix(roadmap): show empty epics in Active Epics section (unblocks new epic body model)","eli5":"Show empty epics on the roadmap instead of hiding them.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T20:37:55Z","updated_at":"2026-04-15T21:56:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":369,"title":"fix(roadmap): phase status logic — Active for in-progress phases, fix Phases Complete KPI denominator","eli5":"Fix roadmap: phases with completed work show \"Active,\" not \"Planned.\"","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T06:47:34Z","updated_at":"2026-04-15T22:01:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":370,"title":"fix(roadmap): show Ideas/Manual items as badge in Phase Progress rows","eli5":"Show a 💡 badge on Roadmap phases that have idea issues.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T20:40:33Z","updated_at":"2026-04-15T22:07:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":379,"title":"feat(dashboard): mock data layer for label-driven pipeline","eli5":"Add sample data so the dashboard works without a real backend.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:38Z","updated_at":"2026-04-15T22:39:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":380,"title":"feat(dashboard): /queue page — stage columns and task cards","eli5":"Add a new Queue page showing pipeline tasks as columns.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:41Z","updated_at":"2026-04-15T22:55:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":381,"title":"feat(dashboard): /queue page — drag-and-drop reorder and route filter","eli5":"Let owners drag tasks around and filter by route.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:43Z","updated_at":"2026-04-15T23:00:27Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":382,"title":"feat(dashboard): /tasks/:id — task detail view","eli5":"A new page to view task details inside the dashboard.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:45Z","updated_at":"2026-04-15T23:00:22Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":383,"title":"feat(dashboard): pipeline config viewer and editor on /ops","eli5":"See and edit pipeline route settings right on /ops page.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:47Z","updated_at":"2026-04-15T23:53:35Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":384,"title":"feat(pipeline): lib-pipeline.sh — config reader and topology functions","eli5":"Give the pipeline a shared rulebook it can look up.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:50Z","updated_at":"2026-04-15T23:53:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":385,"title":"feat(pipeline): lib-pipeline.sh — state management (get_stage, set_stage, apply_transition)","eli5":"Pipeline tracks task stages locally instead of asking GitHub each time.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:52Z","updated_at":"2026-04-15T23:54:06Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":386,"title":"feat(pipeline): lib-pipeline.sh — queue operations (pick_next, queue_append, queue_remove)","eli5":"Pipeline learns to manage its own task queue.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:54Z","updated_at":"2026-04-15T23:54:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":387,"title":"feat(pipeline): collect-tasks.sh — GitHub comment parser and task cache","eli5":"Save each task's history locally so the dashboard loads faster.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:56Z","updated_at":"2026-04-15T23:54:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":388,"title":"feat(pipeline): pipeline-queue.json bootstrap and git backup cron","eli5":"Pipeline gets a save file and automatic backups.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:03:58Z","updated_at":"2026-04-15T23:54:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":389,"title":"feat(pipeline): office-daemon.sh — new main loop with lib-pipeline","eli5":"Pipeline picks tasks from its own queue, not the board.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:04:01Z","updated_at":"2026-04-15T23:55:04Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":390,"title":"feat(pipeline): collect-pipeline-status.sh — read from pipeline-queue","eli5":"Pipeline status dashboard reads local data instead of GitHub API.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-12T20:04:03Z","updated_at":"2026-04-15T23:55:19Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":391,"title":"feat(pipeline): on-agent-stop.sh — apply_transition and emit_score","eli5":"Agents signal completion with labels instead of moving board cards directly.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:04:05Z","updated_at":"2026-04-16T00:03:30Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":392,"title":"feat(pipeline): lib-merge.sh + collect-health.sh — set_stage and done detection","eli5":"Pipeline scripts stop using old board-move methods and labels.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:04:08Z","updated_at":"2026-04-15T23:55:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":393,"title":"feat(pipeline): migrate-to-queue.sh — board to queue migration script","eli5":"Move all board tasks into the new queue file.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:04:10Z","updated_at":"2026-04-15T23:56:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":394,"title":"chore(pipeline): execute migration and cleanup obsolete files","eli5":"Switch pipeline to new queue system and remove old code.","stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T20:04:12Z","updated_at":"2026-04-15T23:56:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":395,"title":"feat(pipeline): Scorer agent — post-QA evaluation and scoring","eli5":"New judge grades each agent's work before task is approved.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T21:37:19Z","updated_at":"2026-04-15T23:56:35Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":396,"title":"feat(pipeline): Simplifier agent — ELI5 generation at task creation","eli5":"A robot adds plain-English summaries to new tasks automatically.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T21:40:39Z","updated_at":"2026-04-15T07:50:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":397,"title":"feat(pipeline): collect-tasks.sh — extended fields from Phase A discoveries","eli5":"Teach the task collector to gather more details about each task.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":"2026-04-18T21:25:23Z","updated_at":"2026-04-18T21:25:23Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":398,"title":"feat(pipeline): health.json — extended scoring schema with iterations and Codex","eli5":"Track how well each pipeline agent scores across multiple attempts.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":"2026-04-18T21:18:05Z","updated_at":"2026-04-18T21:18:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":400,"title":"feat(agents): pixel sprites for Simplifier and Researcher roles","eli5":"Give Simplifier and Researcher their own unique pixel avatars.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T22:46:42Z","updated_at":"2026-04-15T23:57:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[8],\"auto\":8},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[7],\"auto\":7},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":null}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":401,"title":"feat(dashboard): SSE real-time push — replace polling with EventSource","eli5":"Dashboard updates instantly instead of refreshing every few seconds.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T23:32:44Z","updated_at":"2026-04-17T23:32:44Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":405,"title":"feat(ops): visual pipeline flow editor — Phase 1 read-only topology view","eli5":"Show the pipeline as a visual map instead of raw settings text.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:42:20Z","updated_at":"2026-04-18T21:42:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":406,"title":"feat(ops): visual pipeline flow editor — Phase 2 backend wiring and edit","eli5":"Make the pipeline diagram editable and save your changes.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:42:21Z","updated_at":"2026-04-18T21:42:21Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":407,"title":"feat(pipeline): tasks/index.json — lightweight derived index for Done column + Roadmap","eli5":"Build a summary list of all done tasks for the dashboard.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:42:23Z","updated_at":"2026-04-18T21:42:23Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":410,"title":"feat(initiatives): /initiatives page — Frontend Phase 1","eli5":"Build a page to see and manage project goals and their tasks.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":"2026-04-15T21:38:20Z","updated_at":"2026-04-15T21:38:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":411,"title":"feat(initiatives): Backend Phase 2 — API + sync for Initiative/Epic files","eli5":"Create initiatives and epics from the UI; they save to git automatically.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":"2026-04-15T22:06:45Z","updated_at":"2026-04-15T22:06:45Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":414,"title":"feat(simplifier): backfill ELI5 for Done tasks (--all-tasks)","eli5":"Fill in missing short descriptions for all completed tasks.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T21:41:36Z","updated_at":"2026-04-15T23:57:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":418,"title":"refactor(collect-tasks): split into fetch-github + build-projection","eli5":"Split one slow script so local updates become instant.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:43:43Z","updated_at":"2026-04-18T21:43:43Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":425,"title":"feat(queue): visual quick wins — score badge, queue position, staleness gradient","eli5":"Queue cards now show score, position, and age at a glance.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T21:21:22Z","updated_at":"2026-04-16T23:02:37Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"8B5CF6\",\"name\":\"meta:idea\"}]","starred":0,"source":"legacy_github"},{"issue":426,"title":"feat(queue): table view — full columns, group, score, project, clickable rows","eli5":"The queue table gets more columns and clickable rows.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T22:29:11Z","updated_at":"2026-04-15T22:29:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[9],\"auto\":9},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[8],\"auto\":8},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":427,"title":"feat(queue): stuck detection — warning badge on stalled In Progress/Testing cards","eli5":"Queue cards flash a warning if a task is stuck.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T22:29:18Z","updated_at":"2026-04-15T22:29:18Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[6],\"auto\":6},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":429,"title":"feat(telegram): daily TLDR+ELI5 session summary after nightly backup","eli5":"Every morning, get a Telegram recap of yesterday's pipeline work.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":"2026-04-16T00:24:27Z","updated_at":"2026-04-16T00:24:27Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10,10],\"auto\":10},\"writer\":{\"iterations\":[10,10],\"auto\":10},\"coder\":{\"iterations\":[10,10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[3,9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":430,"title":"feat(queue): status change history — record time in each stage","eli5":"Track how long each task spends in every pipeline stage.","stage":"done","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":"2026-04-18T11:34:24Z","updated_at":"2026-04-18T11:34:44Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[8],\"auto\":8},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":432,"title":"feat(pipeline): queue-inject.sh + GitHub webhook + Telegram fix + board-reconcile — all create paths → queue","eli5":"Make all task creation paths feed into the pipeline automatically.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T20:31:59Z","updated_at":"2026-04-15T20:31:59Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":434,"title":"feat(graphs): update create-task + delete-task graphs — fix gaps, add webhook path","eli5":"Update pipeline diagrams to show new webhook and cleanup paths.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:58:07Z","updated_at":"2026-04-18T21:58:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":436,"title":"[test] webhook AC4 smoke test","eli5":"Quick test to check the webhook works correctly.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T20:38:40Z","updated_at":"2026-04-15T23:58:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":437,"title":"test: webhook e2e verification","eli5":"Quick test to check the webhook works end-to-end.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T21:00:34Z","updated_at":"2026-04-15T23:58:20Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":444,"title":"feat(pipeline): apply_transition громкое логирование при failures","eli5":"Pipeline errors now show clear reasons instead of vague warnings.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T08:17:57Z","updated_at":"2026-04-16T08:17:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":445,"title":"feat(task-detail): expose missing GitHub fields (labels, created_at, state, comments)","eli5":"See labels, dates, and comments without leaving our dashboard.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T13:38:04Z","updated_at":"2026-04-17T13:41:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":447,"title":"fix(coder): ensure push before .handoff_ready (loss-of-work prevention)","eli5":"Stop the pipeline from silently losing a Coder's finished work.","stage":"done","route":"code","group":"Reliability","risk":"high","epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:58:09Z","updated_at":"2026-04-18T21:58:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":449,"title":"feat(ui): unified Accept/Reject UX (TaskDetail + Board Kanban + Table)","eli5":"Make Accept/Reject buttons actually work everywhere on the task board.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T09:48:28Z","updated_at":"2026-04-16T09:52:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":453,"title":"feat(pipeline): blocked state in queue + verify-once endpoint","eli5":"Track stuck tasks in the queue and allow one retry.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T10:20:05Z","updated_at":"2026-04-16T10:20:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":454,"title":"feat(ui): BlockedDecision — 3-button decision panel across 5 surfaces","eli5":"Add a 3-button panel to quickly resolve stuck tasks everywhere.","stage":"done","route":"code","group":"Experience","risk":"low","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T00:21:00Z","updated_at":"2026-04-17T00:23:46Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[7],\"auto\":7},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":456,"title":"bug(dispatcher): tasks/index.json stale — collect-tasks.sh path wrong in on-agent-stop.sh","eli5":"Fix broken path so task stage updates show up correctly.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T10:39:56Z","updated_at":"2026-04-16T10:39:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":457,"title":"bug(ui): \"Manual steps needed\" badge shows without steps content","eli5":"Stop showing an empty 'Manual steps needed' warning badge.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T10:59:32Z","updated_at":"2026-04-16T10:59:32Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[6],\"auto\":6},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[7],\"auto\":7},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":461,"title":"Ideas","eli5":"Add an optional Ideas column to the Board for brainstorming cards.","stage":"done","route":"code","group":"Reliability","risk":"low","epic_slug":null,"project_slug":"ui-board-n-projects","closed_at":"2026-04-16T19:21:39Z","updated_at":"2026-04-16T19:21:39Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[9,9],\"auto\":9},\"writer\":{\"iterations\":[10,10],\"auto\":10},\"coder\":{\"iterations\":[10,10],\"auto\":10},\"codex\":{\"iterations\":[6],\"auto\":6},\"qa\":{\"iterations\":[8,9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":462,"title":"Parser: non-lossy timeline + denylist + bot/manual-step recognition","eli5":"Fix task parser so it stops losing half the comments.","stage":"done","route":"code","group":"Reliability","risk":"medium","epic_slug":null,"project_slug":null,"closed_at":"2026-04-17T00:12:16Z","updated_at":"2026-04-17T00:12:57Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[8],\"auto\":8},\"writer\":{\"iterations\":[9],\"auto\":9},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[5],\"auto\":5},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":463,"title":"TaskDetailPage: two-column layout + sidebar + conversation feed + write-comment","eli5":"Redesign task page with sidebar and let owner post comments.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-16T23:36:14Z","updated_at":"2026-04-16T23:39:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10,10],\"auto\":null},\"writer\":{\"iterations\":[9,9],\"auto\":null},\"coder\":{\"iterations\":[8,8],\"auto\":null},\"codex\":{\"iterations\":[7,7],\"auto\":null},\"qa\":{\"iterations\":[7,5],\"auto\":null},\"scorer\":{\"verdict\":\"scorer_cap_bypass\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":464,"title":"Agent prompts + dispatcher notes: unify header format to ## [agent] <status>","eli5":"Make all agent comment headers follow the same tidy format.","stage":"done","route":"code","group":"Intelligence","risk":"low","epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T20:53:11Z","updated_at":"2026-04-16T20:53:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":465,"title":"Codex Review workflow: unify comment headers to ## [codex] Review","eli5":"Unify Codex review comment headers to a cleaner standard format.","stage":"done","route":"code","group":"Reliability","risk":"low","epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T20:59:15Z","updated_at":"2026-04-16T20:59:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[9],\"auto\":9},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[8],\"auto\":8},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":467,"title":"TEST: webhook auto-refresh check","eli5":null,"stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T19:09:24Z","updated_at":"2026-04-16T19:09:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":468,"title":"feat(agents): UI-configurable Scorer gate threshold","eli5":"Change the Scorer's pass grade from the UI, not code.","stage":"done","route":"code","group":"Intelligence","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-16T23:26:03Z","updated_at":"2026-04-17T00:18:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[8],\"auto\":8},\"codex\":{\"iterations\":[7],\"auto\":7},\"qa\":{\"iterations\":[8],\"auto\":8},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":469,"title":"Manual steps backend: agent detection + pipeline blocking + cap","eli5":"Agents can pause a task when they hit a blocker needing you.","stage":"done","route":"code","group":"Intelligence","risk":"high","epic_slug":"dead-loops","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T19:46:34Z","updated_at":"2026-04-17T20:12:05Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":470,"title":"feat(board): Ideas ↔ Backlog drag via type:idea label toggle","eli5":"Drag cards between Backlog and Ideas to tag them.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-16T21:22:15Z","updated_at":"2026-04-16T21:22:15Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[5],\"auto\":5},\"qa\":{\"iterations\":[8],\"auto\":8},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":476,"title":"feat(ui): Epic CRUD UI — create/edit/delete via bridge + group field + project move","eli5":"Create, edit, move, and delete Epics directly from the UI.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T22:53:48Z","updated_at":"2026-04-16T22:53:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":477,"title":"Writer isolation: prevent cross-contamination from dependency issues","eli5":"Stop Writer from accidentally commenting on the wrong task.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:58:10Z","updated_at":"2026-04-18T21:58:10Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":480,"title":"HomePage ReviewPanel: migrate data source from GH Projects GraphQL to pipeline-queue.json","eli5":"HomePage Review widget now shows all tasks, not just Board ones.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"merges","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-16T23:19:01Z","updated_at":"2026-04-16T23:21:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[10],\"auto\":10},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[9],\"auto\":9},\"codex\":{\"iterations\":[5],\"auto\":5},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":485,"title":"Deploy reconciliation cron — safety net for async close-on-merge","eli5":"Auto-catch failed deploys if the instant notification gets lost.","stage":"done","route":"code","group":"Reliability","risk":"low","epic_slug":"merges","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T00:03:08Z","updated_at":"2026-04-17T00:03:28Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[7],\"auto\":7},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":486,"title":"chore(scorer): follow-ups to #468 — cleanup + gate mode mockup","eli5":"Clean up leftover temp files and fix a misleading toggle.","stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":"dead-loops","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T00:16:27Z","updated_at":"2026-04-17T00:16:27Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[6],\"auto\":6},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[],\"auto\":null},\"qa\":{\"iterations\":[9],\"auto\":9},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":490,"title":"Owner-reject comments invisible in UI timeline","eli5":null,"stage":"done","route":"code","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-17T00:27:02Z","updated_at":"2026-04-17T00:28:18Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":493,"title":"On board instead of 'queued' show who the task is waiting for.","eli5":"Show who a task is waiting for, not just \"queued\".","stage":"done","route":"code","group":"Reliability","risk":"low","epic_slug":"dead-loops","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T22:11:42Z","updated_at":"2026-04-17T22:13:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"},{\"color\":\"0052CC\",\"name\":\"epic:dead-loops\"}]","starred":0,"source":"legacy_github"},{"issue":495,"title":"fix(dispatcher): QA worktree checked out on feature branch + EXPECTED_BRANCH passed","eli5":"QA now actually checks the new code, not the old version.","stage":"done","route":"code","group":"Reliability","risk":"high","epic_slug":"dead-loops","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T07:13:36Z","updated_at":"2026-04-17T07:13:36Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":497,"title":"feat(ui): Rocket-icon Launch button for Backlog tasks","eli5":"A rocket button lets you instantly launch Backlog tasks into action.","stage":"done","route":"code","group":"Experience","risk":"low","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T08:03:43Z","updated_at":"2026-04-17T08:06:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":498,"title":"feat(board): Ideas option in table-view Stage dropdown","eli5":"Stage dropdown in table view now includes an Ideas option.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T08:01:37Z","updated_at":"2026-04-17T08:04:34Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[],\"auto\":null},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[8],\"auto\":8},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":501,"title":"feat(dispatcher): global agent cap + 4-4-4 per-role caps + writer_reserve","eli5":"More pipeline agents run at once, Writer always gets a slot.","stage":"done","route":"code","group":"Reliability","risk":"medium","epic_slug":"speedy-handoff","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T11:30:36Z","updated_at":"2026-04-17T11:33:22Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":505,"title":"Complete divorce migration: useBoardItems → useQueueBoard for 5 remaining consumers","eli5":"Dashboard now shows all pipeline tasks, not just Board-synced ones.","stage":"done","route":"code","group":"Experience","risk":"medium","epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T22:21:17Z","updated_at":"2026-04-17T22:23:26Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{\"brief\":{\"iterations\":[8],\"auto\":8},\"writer\":{\"iterations\":[10],\"auto\":10},\"coder\":{\"iterations\":[10],\"auto\":10},\"codex\":{\"iterations\":[7],\"auto\":7},\"qa\":{\"iterations\":[10],\"auto\":10},\"scorer\":{\"verdict\":\"scorer_complete\"}}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":507,"title":"QA enforcement: reject pass verdict without Visual Check when src/*.tsx changed","eli5":"Block QA approval if visual proof is missing for UI changes.","stage":"done","route":"code","group":"Reliability","risk":"medium","epic_slug":"dead-loops","project_slug":"self-healing-pipeline-v2","closed_at":"2026-04-17T23:21:09Z","updated_at":"2026-04-17T23:21:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":510,"title":"Backlog/Ideas sorter + Table Created column","eli5":"Add sorting buttons to Backlog and Ideas columns.","stage":"done","route":"code","group":"Experience","risk":null,"epic_slug":"board","project_slug":"ui-board-n-projects","closed_at":"2026-04-17T23:51:07Z","updated_at":"2026-04-17T23:53:38Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":511,"title":"Table view: add Created column (created_at) alongside Since","eli5":null,"stage":"done","route":"code","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-17T22:54:16Z","updated_at":"2026-04-17T22:54:17Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":5,"title":"feat: Аналитика — токены, стоимость, время","eli5":"Dashboard showing how much AI costs and what it does.","stage":"ideas","route":"code","group":"Observability","risk":null,"epic_slug":null,"project_slug":"phase-3-intelligence","closed_at":null,"updated_at":"2026-04-16T00:03:43Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":148,"title":"Pipeline Ops page — Phase 2: management + manual triggers","eli5":"Add controls to the Ops page: trigger jobs and view logs.","stage":"ideas","route":"code","group":"Management","risk":"medium","epic_slug":null,"project_slug":"self-healing-pipeline-v2","closed_at":null,"updated_at":"2026-04-14T16:55:55Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":164,"title":"AI Resolve Review — review, test, and harden ai_resolve_conflicts()","eli5":"Review and test the AI that fixes code merge conflicts.","stage":"ideas","route":"code","group":"Reliability","risk":"medium","epic_slug":null,"project_slug":"self-healing-pipeline-v2","closed_at":null,"updated_at":"2026-04-14T19:25:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":193,"title":"[MANUAL] /audit — interactive codebase health & architecture review","eli5":"Someone needs to manually run a health check on the codebase.","stage":"ideas","route":"code","group":"Reliability","risk":"low","epic_slug":null,"project_slug":"agent-monitoring","closed_at":null,"updated_at":"2026-04-14T20:13:58Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"0E8A16\",\"name\":\"type:code\"}]","starred":0,"source":"legacy_github"},{"issue":301,"title":"[TO DISCUSS] feat(qa): infra review intelligence — spec + invariants context","eli5":"We're exploring how to make our code reviewer catch more bugs.","stage":"ideas","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"phase-3-intelligence","closed_at":null,"updated_at":"2026-04-14T23:04:09Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":345,"title":"[IDEA] Auto-sync coder.v3.md / writer.v3.md after pipeline edits coder.md / writer.md","eli5":"Backup agent config files should update themselves automatically.","stage":"ideas","route":"code","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":"phase-3-intelligence","closed_at":null,"updated_at":"2026-04-15T19:45:02Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[]","starred":0,"source":"legacy_github"},{"issue":355,"title":"feat(workflow): retrofit 3 epics + validate full Epic Decomposer flow","eli5":"Write a guide for breaking big plans into smaller tasks.","stage":"done","route":"interactive","group":"Experience","risk":"low","epic_slug":"research-infrastructure","project_slug":"label-driven-pipeline","closed_at":"2026-04-17T22:42:40Z","updated_at":"2026-04-17T22:42:40Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":409,"title":"research(initiatives): UI/UX research — Linear, Notion, GitHub Projects hierarchy views","eli5":"Someone needs to manually research how other tools show project trees.","stage":"done","route":"interactive","group":"Experience","risk":null,"epic_slug":"initiatives-ui","project_slug":"label-driven-pipeline","closed_at":"2026-04-13T20:30:04Z","updated_at":"2026-04-15T23:57:25Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":419,"title":"Ревью файлов памяти","eli5":"Someone needs to manually audit and improve the memory files layout.","stage":"done","route":"interactive","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T19:14:42Z","updated_at":"2026-04-14T19:14:42Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":422,"title":"Ревью файлов памяти","eli5":"Someone needs to manually ask Claude to rate the memory files.","stage":"done","route":"interactive","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T19:14:52Z","updated_at":"2026-04-14T19:14:52Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":413,"title":"refactor(pipeline): route as task attribute + Done from tasks/index + write API","eli5":"Someone needs to manually fix how done tasks are stored and displayed.","stage":"ideas","route":"interactive","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-15T23:57:48Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"}]","starred":0,"source":"legacy_github"},{"issue":515,"title":"Interactive sessions conflict with each other","eli5":null,"stage":"ideas","route":"interactive","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":null,"updated_at":"2026-04-18T08:50:51Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"ededed\",\"name\":\"type:interactive\"},{\"color\":\"0052CC\",\"name\":\"epic:null\"}]","starred":0,"source":"legacy_github"},{"issue":116,"title":"feat(metrics): cron для collect-metrics.sh — автообновление metrics.json","eli5":"Auto-refresh dashboard stats every hour without manual effort.","stage":"done","route":"ops","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-05T22:10:01Z","updated_at":"2026-04-14T10:19:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":205,"title":"fix(pipeline): Writer falsely marks tasks as 'already implemented' — need verification gate","eli5":"Prevent Writer from skipping Coder by claiming work is already done.","stage":"done","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-08T22:51:27Z","updated_at":"2026-04-14T20:30:06Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":232,"title":"[MANUAL] feat: multi-agent parallelism — MAX 2-2-2","eli5":"Someone needs to manually enable running 2 pipeline agents per role.","stage":"done","route":"ops","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-09T22:00:03Z","updated_at":"2026-04-14T21:02:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"risk:high\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":255,"title":"[MANUAL] cleanup: Remove old dispatcher + signal-daemon files (#157 Phase 5)","eli5":"Someone needs to manually delete old automation scripts.","stage":"done","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-16T22:53:34Z","updated_at":"2026-04-16T22:53:34Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":291,"title":"[Manual] infra: Zodian OAuth for fallback domain zodian.pokemonoffice.com","eli5":"Someone needs to manually add the fallback domain to Google's login whitelist.","stage":"done","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T15:54:55Z","updated_at":"2026-04-15T07:59:01Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":292,"title":"[MANUAL] fix: review and correct Group custom field assignments on Board #2","eli5":"Someone needs to manually fix task group labels on the board.","stage":"done","route":"ops","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T22:31:18Z","updated_at":"2026-04-15T07:58:47Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":294,"title":"[TO DISCUSS] Следующие идеи Roadmap после добавления sub-issues","eli5":"We're exploring new ideas to improve the roadmap page.","stage":"done","route":"ops","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-11T14:45:59Z","updated_at":"2026-04-15T08:15:00Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":399,"title":"fix(infra): roadmap epics API — path fix + nginx /api/epics/ + cron collect-epics-index","eli5":"Fix the roadmap page so epic cards load and open correctly.","stage":"done","route":"ops","group":"Experience","risk":null,"epic_slug":null,"project_slug":"label-driven-pipeline","closed_at":"2026-04-18T21:42:18Z","updated_at":"2026-04-18T21:42:18Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":404,"title":"chore(scorer): improve scorer.md — reduce false findings, add ALLOWED_FILES awareness","eli5":"Fix the Scorer agent to stop giving unfair low scores.","stage":"done","route":"ops","group":"Intelligence","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-12T23:51:29Z","updated_at":"2026-04-14T12:34:18Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":412,"title":"fix(pipeline): board-reconcile Check 6 — closed tasks not added to done[]","eli5":"Fix a background script that marks finished tasks as done.","stage":"done","route":"ops","group":"Management","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-14T07:06:57Z","updated_at":"2026-04-14T15:18:47Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":417,"title":"feat(pipeline): /pipeline page — React Flow graph in React app","eli5":"Add a live diagram page to monitor pipeline agents.","stage":"done","route":"ops","group":"Experience","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:42:24Z","updated_at":"2026-04-18T21:42:24Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":433,"title":"ops(pipeline): GitHub webhook infra — secret, nginx, registration for queue-inject","eli5":"Wire up GitHub webhooks so labeled issues appear in queue instantly.","stage":"done","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-15T21:15:11Z","updated_at":"2026-04-15T21:15:11Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":514,"title":"Isolate parallel Claude sessions via per-session git worktrees","eli5":null,"stage":"done","route":"ops","group":"Reliability","risk":null,"epic_slug":null,"project_slug":null,"closed_at":"2026-04-18T21:58:12Z","updated_at":"2026-04-18T21:58:12Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":194,"title":"infra: scheduled weekly audit agent — auto-review codebase and post findings to Telegram","eli5":"A bot checks the codebase every week and flags problems automatically.","stage":"ideas","route":"ops","group":"Observability","risk":"low","epic_slug":null,"project_slug":"agent-monitoring","closed_at":null,"updated_at":"2026-04-14T20:13:56Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"0E8A16\",\"name\":\"risk:low\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"},{"issue":284,"title":"[MANUAL] feat(ops): Token upload endpoints — write-only (Phase B of #275)","eli5":"Someone needs to manually add token upload buttons to the ops UI.","stage":"ideas","route":"ops","group":"Management","risk":"medium","epic_slug":null,"project_slug":"phase-3-intelligence","closed_at":null,"updated_at":"2026-04-15T07:11:07Z","stage_entered_at":null,"blocked_reason":null,"blocked_metadata":null,"manual_cap_escalated":0,"iteration_override":null,"score":"{}","labels":"[{\"color\":\"FBCA04\",\"name\":\"risk:medium\"},{\"color\":\"D93F0B\",\"name\":\"type:ops\"}]","starred":0,"source":"legacy_github"}],"count":350,"generated_at":"2026-04-21T23:01:41.203Z"}