Once a skill is loaded, every governed action must stay inside the paths and tools it declared. This is grounding for actions: an action that touches a tool or path the skill never declared is out of scope โ surfaced as a gap and held before it executes. Declare an action_scope, aim an action at it, and watch the receipt print. The verdict is computed by the real checkConformance tool/path logic from kcp-harness, and signed & verified with genuine crypto.subtle in your browser.
Set an action_scope and an action, then press โถ Attempt action. Aim a read_file at secrets/master.key, or reach for an undeclared tool โ see what the printer says.
Station 03 of 11. Decision = the real checkConformance tool/path logic from kcp-harness (verbatim: fail-closed no-scope โ tools โ paths, with normalizePath/matchesPrefix traversal-safe prefix membership). On a held action, the tool is never invoked โ downstream is NOT REACHED. Receipt signed & verified with genuine crypto.subtle.