ACTIVITY-WP-0043-T05: owner-return eligibility builder bound to scan revision
Build the planner's current_tasks from immutable Forge commit content at the C-25 scan SHA (no checkouts, ADR-002). Fails closed on revision mismatch, non-head scans, missing/malformed fields and duplicate identities; unresolved predecessors and decisions stay unknown (None). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 692292@bnt-lap001 Assistant-Session: 89c7d8e8-e1b3-47eb-9411-a0ab227fca2f
This commit is contained in:
parent
9741d5cc19
commit
c6df768ef0
4 changed files with 808 additions and 2 deletions
|
|
@ -85,5 +85,26 @@ blocking_reason: "Activation is a separately reviewed founder action"
|
|||
state_hub_task_id: "254526ce-5a76-57b3-b7d5-a874518c7b40"
|
||||
```
|
||||
|
||||
Plan: `docs/owner-return-pickup-activation-plan.md`. Requires T03 and an
|
||||
eligibility-source binding (fresh authoritative `current_tasks`).
|
||||
Plan: `docs/owner-return-pickup-activation-plan.md`. Requires T03 and T05
|
||||
(eligibility-source binding of fresh authoritative `current_tasks`).
|
||||
|
||||
## Eligibility input builder bound to the scan revision
|
||||
|
||||
```task
|
||||
id: ACTIVITY-WP-0043-T05
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
`src/activity_core/owner_return_eligibility.py::build_current_tasks` builds the
|
||||
planner's `current_tasks` from immutable Forge commit content at the exact
|
||||
40-hex `scan_revision` of the C-25 scan (`/contents` and `/raw` with
|
||||
`ref=<sha>`; no checkouts, ADR-002). It verifies the commit and, by default,
|
||||
that it is still the default-branch head; refuses on any revision mismatch,
|
||||
missing/malformed field, duplicate identity or absent task. Predecessors are
|
||||
task-block plus workplan-frontmatter dependencies, resolved in the same commit
|
||||
or via an explicit cross-repo resolver (`forge_head_status_resolver`, HEAD
|
||||
pinned per foreign repo); unresolved targets stay `None`. Decision status comes
|
||||
from an injected resolver (`state_hub_decision_status`); failure stays unknown.
|
||||
Tests: `tests/test_owner_return_eligibility.py` (HTTP via MockTransport,
|
||||
including acceptance by the State Hub planner).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue