feat: resolve accountability ownership reviews

This commit is contained in:
2026-05-24 09:53:44 +02:00
parent c27d71a511
commit a55f1a45d6
7 changed files with 592 additions and 3 deletions

View File

@@ -183,7 +183,7 @@ Result:
```task
id: RAIL-FAB-WP-0018-T04
status: todo
status: done
priority: high
state_hub_task_id: "670be2c2-6bec-4534-ae6a-ab0186ce0a8d"
```
@@ -205,6 +205,28 @@ Done when:
- unresolved or ambiguous nodes are visible before promotion;
- review decisions survive ordinary rescans.
Result:
- Added `schemas/accountability-ownership-review.schema.yaml` for ownership
resolution and review-blocker payloads.
- Added `build_ownership_review()` to resolve explicit owners, inherit owners
from fabric/subfabric containment, flag unresolved ownership, flag unknown or
ambiguous containment, and surface ambiguous owner evidence.
- Extended `AccountabilityEvidenceStore` with durable review decisions keyed by
stable identity candidate key.
- Added `railiance-fabric discover-roots --ownership-review` and
`railiance-fabric review-identity` so operators can inspect blockers and
persist accept/needs-review/reject decisions across rescans.
- Added tests proving ambiguous ownership is visible, review decisions can
accept a stable identity, decisions survive a later ownership-review run, and
accepted items cannot silently lack a resolved owner.
- Documented ownership review and reviewer decisions in the manifest and
operator docs.
- Verified with
`python3 -m pytest tests/test_accountability_roots.py tests/test_accountability_root_adapters.py -q`,
`python3 -m railiance_fabric.cli discover-roots --max-items-per-root 5 --ownership-review --store-db /tmp/railiance-root-ownership.sqlite3`,
and full `python3 -m pytest`.
## T05 - Implement Snapshot Deltas And Freshness Triggers
```task