{
  "project": "MyApp",
  "branchName": "main",
  "description": "Task management app with priority system and labels",
  "epics": [
    {
      "id": "EPIC-001",
      "title": "Task Priority System",
      "description": "Add priority levels to tasks so users can focus on what matters most",
      "status": "pending",
      "planned": false,
      "dependsOn": [],
      "userStories": [
        {
          "id": "US-001",
          "title": "Priority data model and API",
          "description": "As a developer, I need priority stored in the database and exposed via API so the frontend can read and write it.",
          "acceptanceCriteria": [
            "Add priority column to tasks table: 'high' | 'medium' | 'low' (default 'medium')",
            "Migration runs successfully",
            "API endpoints accept and return priority field",
            "Typecheck passes"
          ],
          "priority": 1,
          "passes": false,
          "failureReason": null
        },
        {
          "id": "US-002",
          "title": "Priority display and editing on task cards",
          "description": "As a user, I want to see and change task priority directly from the task card.",
          "acceptanceCriteria": [
            "Each task card shows colored priority badge (red=high, yellow=medium, gray=low)",
            "Clicking badge opens priority selector",
            "Selection saves immediately",
            "Typecheck passes",
            "Verify in browser"
          ],
          "priority": 2,
          "passes": false,
          "failureReason": null
        },
        {
          "id": "US-003",
          "title": "Filter and sort tasks by priority",
          "description": "As a user, I want to filter the task list by priority and have high-priority items appear first.",
          "acceptanceCriteria": [
            "Filter dropdown with options: All | High | Medium | Low",
            "Tasks sorted high → medium → low within each column (stable sort)",
            "Filter persists in URL params",
            "Empty state message when no tasks match",
            "Typecheck passes",
            "Verify in browser"
          ],
          "priority": 3,
          "passes": false,
          "failureReason": null
        }
      ]
    },
    {
      "id": "EPIC-002",
      "title": "Task Labels and Tags",
      "description": "Add a labeling system so users can categorize and find tasks",
      "status": "pending",
      "planned": false,
      "dependsOn": ["EPIC-001"],
      "userStories": [
        {
          "id": "US-004",
          "title": "Labels data model and CRUD API",
          "description": "As a developer, I need a labels system with many-to-many task relationships and full CRUD endpoints.",
          "acceptanceCriteria": [
            "Labels table with: id, name, color",
            "Join table for many-to-many task-label relationship",
            "CRUD API endpoints for labels",
            "Typecheck passes"
          ],
          "priority": 1,
          "passes": false,
          "failureReason": null
        },
        {
          "id": "US-005",
          "title": "Label display and management on tasks",
          "description": "As a user, I want to see labels on task cards and add/remove them from the edit modal.",
          "acceptanceCriteria": [
            "Colored label chips on task cards (max 3 visible, '+N more' for overflow)",
            "Label picker in task edit modal with search and inline creation",
            "Typecheck passes",
            "Verify in browser"
          ],
          "priority": 2,
          "passes": false,
          "failureReason": null
        },
        {
          "id": "US-006",
          "title": "Filter by label and label management page",
          "description": "As a user, I want to filter tasks by label and manage all labels from a dedicated page.",
          "acceptanceCriteria": [
            "Multi-select label filter in task list header (combines with priority filter)",
            "Dedicated /labels page with create, edit, delete and task count per label",
            "Typecheck passes",
            "Verify in browser"
          ],
          "priority": 3,
          "passes": false,
          "failureReason": null
        }
      ]
    }
  ]
}
