Fix two lint blockers identified in PR review:
1. Collapsible list comprehension format (ruff RUF015): Collapse the
"projects" list comprehension in _build_strategize_context_snapshot()
from 3 lines to a single line within the 88-character limit.
2. Missing type annotations on 13 new BDD step functions: All existing
step functions use explicit `context: Context` and `-> None` return
type annotations per project style. The 13 new step functions added
for issue #9056 were missing these declarations, causing lint
warning RUF012 (missing type annotations on function arguments).
Verified:
- nox -s lint passes (ruff check + ruff format --check)
- nox -s typecheck passes (pyright 0 errors)
- Pre-existing unit_tests/CI timeouts are infrastructure-related
ISSUES CLOSED: #9056
The Strategize phase was recording decisions with minimal context
snapshots (only a hash of question+chosen_option), violating the
v3.2.0 acceptance criterion that decisions must include full context
snapshots sufficient to replay the decision.
Changes:
- Add _build_strategize_context_snapshot() helper that builds a full
ContextSnapshot from plan metadata (description, action_name,
strategy_actor, project_links)
- Update _try_record_decision() to accept an optional context_snapshot
parameter and forward it to DecisionService
- Update start_strategize() to build and pass a full context snapshot
- Add 3 BDD scenarios in decision_recording.feature verifying that
hot_context_hash, hot_context_ref, actor_state_ref, and
relevant_resources are all populated for Strategize-phase decisions
ISSUES CLOSED: #9056