e56ddd6a1b
Backlog item G. The `coverage:` line under-reported a skill chosen in a PRIOR turn: enforce-coverage-verify credited channel=skill only if the Skill tool ran in the CURRENT turn, so an honest `skill:X` continuation line was BLOCKED -> the controller learned to under-report as direct/chain. Two-sided systemic fix, no weakening: - enforce-coverage-verify: decide() also accepts skill:X when X was invoked anywhere earlier in THIS session (new priorSkillNames param; main() collects them via sessionToolUses). Still unforgeable -- a real Skill tool_use must exist in the transcript. The only residual is possibly-stale attribution, far better than the forced dishonest direct-reporting it replaces. - enforce-prompt-injection: the §17 reminder now lists active skills carried over from earlier turns (read from the transcript) and tells the controller to report `coverage: skill:<name>` when work continues under one -- the proactive half, so the correct line is not merely allowed but prompted. TDD: RED -> GREEN per behavior. tools-vitest 2032 passed / 2 skipped. Plan docs/superpowers/plans/2026-05-31-discipline-guard-backlog.md (item G). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>