feat(RMGR-WP-0001): complete T05 end-to-end vertical slice
Implement observe/reconcile/update-task-status CLI path: workplan parse, JSON projection index, git-backed task status writeback with correlation events, and E2E pytest plus evidence artifacts. Finish foundation workplan.
This commit is contained in:
parent
3cc67a9bd0
commit
8b5634ff2a
15 changed files with 873 additions and 20 deletions
14
docs/evidence/t05-command-result.json
Normal file
14
docs/evidence/t05-command-result.json
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"command": "repo.work.update_task_status",
|
||||
"status": "applied",
|
||||
"correlation_id": "3a152f55-acca-41de-a310-d388ddf5a1d1",
|
||||
"evidence": {
|
||||
"status": "applied",
|
||||
"git_sha": "0b71f90b7782255e1e15b0def16d15299ca09e15",
|
||||
"files_touched": [
|
||||
"workplans/DEMO-WP-0001.md"
|
||||
],
|
||||
"observed_at": "2026-08-09T20:49:14.382153+00:00",
|
||||
"index_path": "/tmp/rmgr-e2e-1946474/.repo-manager/index.json"
|
||||
}
|
||||
}
|
||||
21
docs/evidence/t05-e2e-proof.json
Normal file
21
docs/evidence/t05-e2e-proof.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"task": "RMGR-WP-0001-T05",
|
||||
"fixture": "live-proof temp repo",
|
||||
"before_sha": "1e8623d758b7c4599bb0c48bb9450990a1a948a1",
|
||||
"after_sha": "0b71f90b7782255e1e15b0def16d15299ca09e15",
|
||||
"command_result": {
|
||||
"command": "repo.work.update_task_status",
|
||||
"status": "applied",
|
||||
"correlation_id": "3a152f55-acca-41de-a310-d388ddf5a1d1",
|
||||
"evidence": {
|
||||
"status": "applied",
|
||||
"git_sha": "0b71f90b7782255e1e15b0def16d15299ca09e15",
|
||||
"files_touched": [
|
||||
"workplans/DEMO-WP-0001.md"
|
||||
],
|
||||
"observed_at": "2026-08-09T20:49:14.382153+00:00",
|
||||
"index_path": "/tmp/rmgr-e2e-1946474/.repo-manager/index.json"
|
||||
}
|
||||
},
|
||||
"git_log": "0b71f90b7782255e1e15b0def16d15299ca09e15 repo.work.update_task_status DEMO-WP-0001-T01 -> done"
|
||||
}
|
||||
41
docs/evidence/t05-vertical-slice.md
Normal file
41
docs/evidence/t05-vertical-slice.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# RMGR-WP-0001-T05 — vertical slice proof
|
||||
|
||||
**Date:** 2026-08-09
|
||||
**Contract:** `helixforge.repo-manager` 0.1 (subset implemented)
|
||||
|
||||
## Slice steps
|
||||
|
||||
| # | Requirement | Implementation | Proof |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | Represent a repository | `rmgr observe` / `observe_repository` | Snapshot JSON with slug, classification, revision |
|
||||
| 2 | Index declared work | `rmgr reconcile` → `.repo-manager/index.json` | workplan + task records from `workplans/` |
|
||||
| 3 | Emit normalized change | events on index: `repo.command.applied`, `repo.work.indexed` | event log with `correlation_id` |
|
||||
| 4 | File-backed transition | `rmgr update-task-status` | task `status:` patched in workplan file |
|
||||
| 5 | Git evidence | `gitops.commit_paths` | `evidence.git_sha` required; commit message includes correlation_id |
|
||||
| 6 | Rebuilt projection | re-observe after command | task status + head_sha match evidence |
|
||||
|
||||
## Automated proof
|
||||
|
||||
```bash
|
||||
cd ~/repo-manager && pytest tests/test_e2e_vertical_slice.py -q
|
||||
```
|
||||
|
||||
## Live CLI proof
|
||||
|
||||
Artifacts:
|
||||
|
||||
- `docs/evidence/t05-e2e-proof.json`
|
||||
- `docs/evidence/t05-command-result.json`
|
||||
|
||||
## Hub-core note
|
||||
|
||||
Events are written to the local index event log in contract-shaped JSON. HTTP
|
||||
delivery to hub-core `port.events` is dual-run work (extraction P3 / hub-core
|
||||
ports), not required to prove Git authority + projection rebuild.
|
||||
|
||||
## Limits of this slice (honest)
|
||||
|
||||
- Projection store is **local JSON**, not Postgres yet (ADR-001 production DB still planned).
|
||||
- No FastAPI server in this slice; CLI implements the same commands.
|
||||
- Authz is not enforced (dev path); production requires policy port.
|
||||
- Single command type implemented: `repo.work.update_task_status`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue