docs: add M7 (MCP-server) milestone with ST-701..ST-710 (#3)
The MCP server for Claude Code shipped as a separate private repo, madhura68/scrum4me-mcp. Document the milestone here so the backlog stays the canonical source. All ten stories already complete and covered by an e2e smoke-test against the live DB. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
43a4294424
commit
c8bab7396a
1 changed files with 48 additions and 0 deletions
|
|
@ -23,6 +23,7 @@ De MVP is klaar wanneer Lars — de primaire persona — de volledige cyclus kan
|
|||
| M4: Claude Code REST API | Alle endpoints, tokenbeheer | ST-401 – ST-410 |
|
||||
| M5: Todo-lijst | Todo CRUD, promotie naar PBI/story; Data Table + detail-kaart | ST-501 – ST-506, ST-509 – ST-510 |
|
||||
| M6: Polish & Launch-ready | Foutafhandeling, toegankelijkheid, CI/CD, beveiliging | ST-601 – ST-612 |
|
||||
| M7: MCP-server voor Claude Code | Native MCP-laag bovenop Scrum4Me-DB (aparte repo `scrum4me-mcp`) | ST-701 – ST-710 |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -467,6 +468,53 @@ De MVP is klaar wanneer Lars — de primaire persona — de volledige cyclus kan
|
|||
- Voer handmatig de volledige Lars-flow uit: product aanmaken → PBI's en stories aanmaken → Sprint starten → stories slepen → taken aanmaken → API-token aanmaken → curl `next-story` → curl `log` (plan, test, commit) → activiteitenlog controleren in UI
|
||||
- Done when: volledige flow werkt zonder fouten of onverwacht gedrag; alle API-responses correct JSON
|
||||
|
||||
### M7: MCP-server voor Claude Code
|
||||
|
||||
Aparte repo: [`madhura68/scrum4me-mcp`](https://github.com/madhura68/scrum4me-mcp). Native Prisma-toegang (geen REST-tussenlaag), stdio-transport, Scrum4Me-schema gevendord als git submodule. Tokens hergebruikt uit `api_tokens`. v1 is alleen dev-flow tools — geen PBI/sprint-creatie of profielbeheer.
|
||||
|
||||
- [x] **ST-701** Repo-skeleton scrum4me-mcp
|
||||
- npm init, tsconfig strict, .gitignore, MCP SDK 1.29, Prisma 7, zod, tsx; lege `src/index.ts` die op stdio start
|
||||
- Done when: `npx tsx src/index.ts` print `running on stdio` zonder crash; `tsc --noEmit` slaagt
|
||||
|
||||
- [x] **ST-702** Schema-sync via git submodule
|
||||
- Submodule `vendor/scrum4me`, `scripts/sync-schema.sh` kopieert `schema.prisma` en strip de `generator erd`-block, `npm run prisma:generate` als postinstall
|
||||
- Done when: `npm run sync-schema && npm run prisma:generate` werkt op een verse clone
|
||||
|
||||
- [x] **ST-703** Auth en Prisma-singleton
|
||||
- `src/auth.ts` SHA-256 hash van `SCRUM4ME_TOKEN` → lookup in `api_tokens`, cached `{ userId, isDemo }`; `requireWriteAccess()` throwt `PermissionDeniedError` voor demo
|
||||
- `src/prisma.ts` lazy proxy zodat bootstrap niet crasht zonder `DATABASE_URL`
|
||||
- Done when: ongeldig token geeft `SCRUM4ME_TOKEN is invalid or revoked`; demo-tokens blokkeren writes
|
||||
|
||||
- [x] **ST-704** Status-mappers + error-helpers
|
||||
- `src/status.ts` zelfde mappers als REST `lib/task-status.ts`
|
||||
- `src/errors.ts` `formatZodError`, `toolError`, `toolJson`, `withToolErrors` wrapper
|
||||
- Done when: zod-fouten en `PermissionDenied` worden als gestructureerde MCP-errors teruggegeven
|
||||
|
||||
- [x] **ST-705** Read-tools — `health`, `list_products`, `get_claude_context`
|
||||
- `health` doet `SELECT 1`; `list_products` met product-access filter; `get_claude_context` bundelt product + active sprint + next story (met tasks) + 50 open todos
|
||||
- Done when: smoke-test tegen live DB groen voor alle drie
|
||||
|
||||
- [x] **ST-706** Write-tools tasks — `update_task_status`, `update_task_plan`
|
||||
- Status-input lowercase (`todo|in_progress|review|done`), conversie via mapper; access-check via story → product → membership/owner
|
||||
- Done when: niet-eigenaar krijgt 'not accessible'; demo geeft `PERMISSION_DENIED`
|
||||
|
||||
- [x] **ST-707** Log-tools — `log_implementation`, `log_test_result`, `log_commit`
|
||||
- Append `StoryLog` met juiste `type`; optioneel `metadata` JSONB
|
||||
- Done when: drie logs verschijnen in story-activiteit met `type`/`status`/`commit_hash`/`metadata` zoals meegegeven
|
||||
|
||||
- [x] **ST-708** `create_todo`-tool
|
||||
- Optionele `description` (max 2000) en `product_id` (gevalideerd via access-check)
|
||||
- Done when: nieuwe todo verschijnt in `/todos` voor de tokengebruiker
|
||||
|
||||
- [x] **ST-709** Prompt `implement_next_story`
|
||||
- Workflow: `get_claude_context` → plan → log_implementation → per task `in_progress`/`done` → tests → `log_test_result` → `log_commit`
|
||||
- Done when: prompt zichtbaar in MCP-clients met argument `product_id`
|
||||
|
||||
- [x] **ST-710** README + Claude Code-config + smoke-test
|
||||
- README beschrijft setup, tools-tabel, schema-sync, `~/.claude/mcp_servers.json` snippet, risico's
|
||||
- `scripts/smoke-test.ts` valideert read-tools tegen live DB
|
||||
- Done when: smoke-test groen; MCP Inspector toont 9 tools + 1 prompt
|
||||
|
||||
---
|
||||
|
||||
## v2 Backlog (na MVP)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue