Classify UI state reconciliation changes

This commit is contained in:
2026-05-23 17:14:41 +02:00
parent 87d49a2573
commit 215a91e599
3 changed files with 294 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "UI State Change Reconciliation"
domain: custodian
repo: state-hub
status: proposed
status: active
owner: codex
topic_slug: custodian
planning_priority: high
@@ -33,11 +33,26 @@ for other workstream and task state transitions.
This workplan defines the reconciliation path between UI actions, DB state,
repo files, and scheduled cleanup.
## Reconciliation Classes
| Class | Meaning | Default follow-up |
|-------|---------|-------------------|
| `write_through` | The change can be represented directly in the workplan file. | Patch the file first, then sync the DB from file state. |
| `deferred` | The change cannot safely touch the file immediately. | Create a visible reconciliation record or task. |
| `human_confirmation` | The change may hide work, require a blocker reason, or move archived context. | Ask for confirmation or gather missing intent before writing. |
## Initial Transition Classification
| Target | Safe write-through | Deferred | Human confirmation |
|--------|--------------------|----------|--------------------|
| Workstream status | Open, file-backed transitions among `proposed`, `ready`, `active`, and `backlog`; `finished` only when known tasks are terminal. | Non-file-backed workstreams, unsupported statuses, unavailable file links. | Archived files, `blocked` without explicit blocker/dependency context, `finished` with open/unknown tasks, `archived`. |
| Task status | Linked task blocks in active workplan files for `todo`, `in_progress`, `done`, `cancelled`, and `blocked` with a blocking reason. | Non-file-backed workstreams or DB tasks without a linked task block. | Archived files and `blocked` task changes without a blocking reason. |
## T01 - Classify UI State Changes
```task
id: STATE-WP-0048-T01
status: todo
status: done
priority: high
state_hub_task_id: "0332be96-ebc7-4a7b-97c6-bbe6ae3a66ac"
```
@@ -49,6 +64,10 @@ confirmation.
Done when each workstream/task transition has a reconciliation class and a
reason.
Result 2026-05-23: added the initial classification matrix and
`api.services.reconciliation` helpers for workstream/task status changes. Tests
pin the write-through, deferred, and human-confirmation decisions.
## T02 - Add Reconciliation API Contract
```task