docs(data-model): sync schema gaps — sprint dates, task verify_required/repo_url, product auto_pr, claude_jobs pr_url/retry_count, PBI notify trigger
This commit is contained in:
parent
152ed44e84
commit
fcff3fd0fa
2 changed files with 24 additions and 3 deletions
|
|
@ -107,11 +107,13 @@ claude_jobs
|
|||
claimed_by_token_id (FK → api_tokens, nullable)
|
||||
claimed_at, started_at, finished_at
|
||||
plan_snapshot: String? — bevroren snapshot van task.implementation_plan bij claim
|
||||
branch, pushed_at, summary, error
|
||||
branch, pushed_at, pr_url, summary, error
|
||||
retry_count: Int (default 0) — telt pogingen na FAILED reset
|
||||
verify_result: VerifyResult? (ALIGNED|PARTIAL|EMPTY|DIVERGENT)
|
||||
@@index([user_id, status])
|
||||
@@index([task_id, status])
|
||||
@@index([status, claimed_at]) — voor stale-claim cleanup
|
||||
@@index([status, finished_at]) — voor cleanup/rapportage queries
|
||||
```
|
||||
|
||||
**VerifyResult enum** — vergelijking van de git-diff in de worktree versus `plan_snapshot`:
|
||||
|
|
@ -123,7 +125,9 @@ claude_jobs
|
|||
| `EMPTY` | Geen codewijzigingen in de diff — blocker, tenzij de task `verify_only=true` heeft |
|
||||
| `DIVERGENT` | Diff bevat significant meer dan het plan — review extra zorgvuldig |
|
||||
|
||||
**`verify_only` op Task** — wanneer `true` mag de agent de task als DONE markeren ook als de diff leeg is. Bedoeld voor taken die expliciet om verificatie (niet implementatie) vragen.
|
||||
**`verify_only` op Task** — wanneer `true` mag de agent de task als DONE markeren ook als de diff leeg is. Bedoeld voor taken die expliciet om verificatie (niet implementatie) vragen. Zie ook `verify_required` in `data-model.md` voor de enum-variant die de drempel fijner instelt.
|
||||
|
||||
**`pr_url` op ClaudeJob** — URL van de automatisch aangemaakte PR na push. Aanwezig wanneer `product.auto_pr = true` en de push slaagde; anders `null`.
|
||||
|
||||
**`pushed_at`** — timestamp waarop de agent de feature-branch naar origin heeft gepusht. Aanwezig zodra de push slaagde; absent als er geen wijzigingen waren of de push mislukte.
|
||||
|
||||
|
|
@ -153,6 +157,10 @@ Twee Postgres-triggers houden `task.status` in sync met `claude_job.status` zoda
|
|||
|
||||
De bestaande `notify_task_change`-trigger op `tasks` vuurt automatisch de pg_notify naar `/api/realtime/solo` zodat de UI direct synct — geen extra plumbing in de SSE-handler nodig.
|
||||
|
||||
### PBI realtime notify
|
||||
|
||||
`prisma/migrations/20260502190200_add_pbi_notify_trigger` voegt `notify_pbi_change()` toe plus trigger `pbis_notify_change` (AFTER INSERT/UPDATE/DELETE op `pbis`). Payload: `{ op, entity:'pbi', id, product_id, title, code, priority, status, sort_order, created_at, changed_fields? }`. Clients die het `scrum4me_changes`-kanaal luisteren ontvangen zo backlog-mutaties zonder polling. De Solo-SSE-route filtert `entity:'pbi'`-events op `product_id`; de backlog-store verwerkt ze via `handleBacklogEvent()`.
|
||||
|
||||
### Hybride-ready
|
||||
|
||||
De huidige implementatie verwacht een lokale Claude Code-sessie die `wait_for_job` aanroept vanuit `madhura68/scrum4me-mcp`. Toekomstige uitbreiding naar Vercel Sandbox (serverless agent) vereist alleen een nieuw claim-endpoint — het datamodel en SSE-flow zijn ongewijzigd.
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ related: [auth-and-sessions.md](./auth-and-sessions.md)
|
|||
| user_id | String | FK → users, not null | |
|
||||
| name | String | not null, max 200 | Uniek per gebruiker |
|
||||
| description | String | nullable, max 1000 | |
|
||||
| repo_url | String | nullable | Gevalideerde URL |
|
||||
| repo_url | String | nullable | Gevalideerde URL; default voor MCP-job branch/push |
|
||||
| auto_pr | Boolean | default false | Wanneer true opent de agent automatisch een PR na push |
|
||||
| definition_of_done | String | not null, max 500 | Vaste instelling per product |
|
||||
| archived | Boolean | default false | |
|
||||
| created_at | DateTime | default now() | |
|
||||
|
|
@ -143,6 +144,8 @@ related: [auth-and-sessions.md](./auth-and-sessions.md)
|
|||
| product_id | String | FK → products (cascade delete) | |
|
||||
| sprint_goal | String | not null, max 500 | |
|
||||
| status | Enum | ACTIVE \| COMPLETED | |
|
||||
| start_date | Date | nullable | Geplande startdatum (UI-weergave, niet enforced) |
|
||||
| end_date | Date | nullable | Geplande einddatum (UI-weergave, niet enforced) |
|
||||
| created_at | DateTime | default now() | |
|
||||
| completed_at | DateTime | nullable | |
|
||||
|
||||
|
|
@ -164,9 +167,19 @@ related: [auth-and-sessions.md](./auth-and-sessions.md)
|
|||
| priority | Int | 1–4, not null | |
|
||||
| sort_order | Float | not null | |
|
||||
| status | Enum | TO_DO \| IN_PROGRESS \| REVIEW \| DONE | |
|
||||
| verify_required | Enum | `VerifyRequired` — zie onder | Default `ALIGNED_OR_PARTIAL` |
|
||||
| repo_url | String | nullable | Override van `product.repo_url` voor cross-repo MCP-jobs |
|
||||
| created_at | DateTime | default now() | |
|
||||
| updated_at | DateTime | auto-update | |
|
||||
|
||||
**`VerifyRequired` enum** — stuurt de drempel waaraan de agent-verify moet voldoen vóór DONE:
|
||||
|
||||
| Waarde | Betekenis |
|
||||
|---|---|
|
||||
| `ALIGNED` | Diff moet volledig overeenkomen met `plan_snapshot` |
|
||||
| `ALIGNED_OR_PARTIAL` | Gedeeltelijke dekking is acceptabel (default) |
|
||||
| `ANY` | Elke niet-lege diff volstaat |
|
||||
|
||||
**Indexes:** `(story_id, priority, sort_order)`, `(sprint_id, status)`
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue