Phase 1: Sprint Tables, API, and MCP Tools

phase-sprints-1-tables-api Phase

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_at
  • SprintItem — 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_sprint
  • add_sprint_item, move_sprint_item, remove_sprint_item
  • get_sprint_board — returns items filtered by item_type, grouped by column
  • get_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.