Phase 1: Sprint Tables, API, and MCP Tools
Goal: Sprint and SprintItem models with full CRUD API + MCP tools for Betty Sue to manage boards.
Owner: Dev agent
Repo: pal-e-docs + pal-e-docs-mcp
Forgejo Issues: forgejo_admin/pal-e-docs #64 (tables+API, merged), forgejo_admin/pal-e-docs-mcp #8 (MCP tools, PR #9 merged 2026-03-02)
Models:
Sprint— id, name, slug, goal, start_date, end_date, status (planning/active/completed/archived), created_atSprintItem— id, sprint_id (FK, nullable for backlog), item_type (enum: plan/phase/issue), note_slug (nullable — for plans/phases), forgejo_issue_url (nullable — for issues), repo_slug (nullable — for issues), column (enum: backlog/todo/next_up/in_progress/qa/done), position (int), title_cache (string), created_at, updated_at
API routes (DEPLOYED):
- GET/POST
/sprints - GET/PATCH
/sprints/{slug} - DELETE
/sprints/{slug} - GET
/sprints/{slug}/items?item_type=plan|phase|issue— the three boards - POST
/sprints/{slug}/items— add item to sprint - PATCH
/sprints/{slug}/items/{id}— move column/position - PATCH
/sprints/{slug}/items/bulk— multi-move - DELETE
/sprints/{slug}/items/{id} - GET
/sprints/backlog/items— items not in any active sprint
MCP tools (DEPLOYED — PR #9 merged 2026-03-02):
create_sprint,get_sprint,list_sprints,update_sprintadd_sprint_item,move_sprint_item,remove_sprint_itemget_sprint_board— returns items filtered by item_type, grouped by columnget_backlog,bulk_move_items
Key files: models.py, schemas.py, routes/sprints.py, main.py, alembic migration (pal-e-docs); tools/sprints.py (pal-e-docs-mcp)
Deliverable: Betty Sue can create a sprint, add plans/phases/issues to it, move them between columns, and query any of the three boards. VERIFIED — tools live in Claude Code session.