{
  "task_id": "task-2559",
  "title": "dashboard 봇 프로세스 source-of-truth + 4 전이 규칙 1:1 박제",
  "level": "Lv.3",
  "owner_decision_ts": "2026-05-12",
  "decision_basis": "회장 §명시 + traffic-light-spec.md §9 박제 (2026-05-12)",
  "team_assigned": "dev3",
  "team_lead": "Dagda",
  "dispatch_path": "dispatch.py + cokacdir worktree (.worktrees/task-2559-dev3)",
  "expected_files": [
    "dashboard/bot_process_collector.py",
    "dashboard/data_loader.py",
    "dashboard/routes_get.py",
    "dashboard/server.py",
    "dashboard/tests/test_bot_process_collector.py",
    "dashboard/tests/test_traffic_light_layer_signals.py",
    "dashboard/tests/fixtures/bot_process_cron_active.json",
    "dashboard/tests/fixtures/bot_process_dispatch_worktree_active.json",
    "dashboard/tests/fixtures/bot_process_subagent_parallel.json",
    "dashboard/tests/fixtures/bot_process_lead_terminated.json",
    "dashboard/tests/fixtures/bot_process_borrowed_task.json",
    "memory/plans/tasks/task-2559/plan.md",
    "memory/plans/tasks/task-2559/context-notes.md",
    "memory/plans/tasks/task-2559/checklist.md",
    "memory/reports/task-2559.md",
    "memory/events/task-2559.dispatch-decision.json"
  ],
  "forbidden_paths": [
    "scripts/ci.sh",
    "dispatch/",
    "team_prompts.py",
    ".github/workflows/",
    ".env",
    ".env.keys",
    "anu_v2/",
    "memory/specs/traffic-light-spec.md (§1~§8 또는 §9 본문 변경)",
    "PR #98~#111 branch (head 변경 금지)"
  ],
  "polling_policy": {
    "ci_max_wait_seconds": 1800,
    "gemini_max_wait_seconds": 900,
    "long_polling": false
  },
  "spec_anchors": {
    "traffic_light_spec_version": "2026-05-12 §9 박제",
    "spec_sections": ["2.1", "2.2", "2.3", "2.4", "3", "9.2", "9.3", "9.4", "9.5", "9.6", "9.7"]
  },
  "verification": {
    "pytest_target_modules": [
      "dashboard/tests/test_bot_process_collector.py",
      "dashboard/tests/test_traffic_light_layer_signals.py"
    ],
    "regression_check": "dashboard/tests/ (제외: test_file_api/test_records_api/test_wiki_upload - main pre-existing collection errors)",
    "live_verification": "cron 봇 1개 발사 → /api/member-status working → 종료 후 idle 전환"
  }
}
