The seven record_* methods previously each duplicated the validate +
snapshot + record + log + except pattern, inflating uncovered-line
counts and producing ruff-format violations. Centralise that boilerplate
in a single _record helper; each public method now delegates with just
the decision type + log label.
Also realigns features/execute_decision_recording.feature with its
steps: split combined Then steps, fix alt=/alts= mismatch, change
mentions "X" to mentions="X", and add a missing space in the
res_select scenario. Adds hardcoded steps for the empty-string error
cases (behave's `{q}` placeholder needs >=1 char), plus scenarios for
plan_id construction validation and whitespace-only inputs.
Fixes the CI / lint failure (ruff format) and the CI / unit_tests
failure (11 errored scenarios in execute_decision_recording.feature).
ISSUES CLOSED: #8477
Epic #8477: added ExecutePhaseDecisionHook as the Execute-phase mirror of
StrategizeDecisionHook. Provides six recording methods for implementation
choices, tool invocations, error recovery, validation responses, subplan
spawn, and resource selection during execution contexts. Captures full
context snapshots with SHA-256 hashes and persists decisions atomically
via DecisionService. Includes comprehensive Behave test coverage.
ISSUES CLOSED: #8477