Spike disposition (a): prove the loop.render-hooks mechanism at the data level
and document the cutover-shape finding, without touching plan-phase.md §5.6.
- tests/loop-hook-firing-spike.test.cjs: makes "off means off" executable — a
host-computed aggregate (hostConsume) that is a pure function of the active
hook set; UI active-by-default → 1, off → 0 == independently-computed base
(not tautological); synthetic 2-hook ordering; second point verify:post.
- CONTEXT.md RULESET.CAPABILITY.cutover-self-gating: the loop hook is coarse;
phase-context detection + mode self-gate in the skill (ADR-894); §5.6 UI gate
is the worked example of what must move into gsd-ui-phase before cutover.
Finding: the UI plan:pre hook is already inlined (§5.6) — cutover is move
host-logic-into-skill, not a 1:1 swap. Live LLM-execution of injected hook
markdown is the residual, carried into the first phase-6 cutover acceptance.
Closes#1018
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>