ability-gate · git:20260913.29703a0 · 2026-09-13 · sha256 d0946769b78dff34
ability-gate git:20260913.29703a0A
Immutable. This exact content never changes and is served at /api/v1/blob/d0946769b78dff34.
--- name: ability-gate description: Use when access depends on a capability, story predicate, or both, and the project needs a stable gate identity, deterministic predicate evaluation, unlock migration, and explicit soft-lock/recovery evidence. --- # Ability gate Ask: `none | tool-gate | story-flag | both`. ## Ownership The gate consumes capability/story state from their true owners. It does not own tutorials, map pins, save storage or rest-site placement. ## Contract Each gate publishes: - stable `gate_id` - required capability IDs and/or story predicate IDs - predicate version - open/closed/blocked result - optional authored feedback/reference IDs Evaluate the gate from authoritative state. Duplicate unlock notifications are idempotent. A save or patch migration preserves stable capability/story identity rather than keying by localized text or scene index. Soft-lock policy is project-specific: the project may require an exit, recovery point, alternate route, or intentionally irreversible commitment. Do not force every hard gate to have a rest site or every ability lesson to be nonlethal. ## Acceptance For one predicate version and authoritative state, the gate resolves deterministically. Gaining or losing relevant capability state updates only gates that depend on it, stale notifications cannot override a newer result, and a blocked player can identify the missing authored requirement without the gate inventing world truth.