Find and evidence the guards that gate surfaces and transitions — permissions, roles, feature flags, auth and data states — and how each is satisfied, without inventing protection the code does not enforce.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add Eliyce/paqad-ai --skill guard-inference --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Guard Inference?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/eliyce-guard-inference)More formats (shields.io, HTML) on the badges page.
---
name: guard-inference
description: Find and evidence the guards that gate surfaces and transitions — permissions, roles, feature flags, auth and data states — and how each is satisfied, without inventing protection the code does not enforce.
model_tier: reasoning
triggers:
- workflow:
- site-map
cacheable: false
cache_key_inputs: []
output_format: json
input_schema:
surfaces:
type: path
required: true
description: The modeled surfaces and transitions whose access controls this skill evidences.
---
## What It Does
Adds the access-control layer: the guards that decide who may reach a surface or take a
transition, and the `satisfy_via` that says how a guard is met. Runs in parallel with
`transition-tracing` over the same modeled surfaces. A guard is recorded only where the code
enforces it — an inferred guard the code does not check is a false sense of security.
## Use This When
Use this after modeling, alongside `transition-tracing`. It only adds guards and their
satisfaction; edges are the other skill's job.
## Inputs
- The modeled surfaces and traced transitions.
- The enforcement points in the code: middleware, decorators, route metadata, policy checks,
feature-flag reads.
- Read `references/guard-evidence.md` before recording a guard.
## Procedure
The graph's guard-coverage analysis is the engine's; your job is to propose evidenced guards.
1. For each surface, area, and transition, find the enforcement that gates it: a middleware, a
decorator, a policy, a flag read.
2. Record the guard's kind (`permission | role | feature-flag | auth-state | data-state |
capability | environment`), what it requires, and its `satisfy_via`, each with a `file:line`.
3. Re-run `paqad-ai sitemap run` so its guard-coverage analysis flags backstage surfaces left
guard-less.
## Output Contract
- A JSON object `{ guards: [{ id, kind, requires, satisfy_via, evidence }], applied: [{ surface_or_edge, guard }] }`.
- Every guard carries a resolving `file:line` that shows the enforcement.
- Every `satisfy_via` names how the guard is met (an actor, a role, a flag variant).
## Escalate / Stop Conditions
- Do not record a guard the code does not enforce. An intended-but-unchecked guard is a finding
about missing enforcement, not a guard on the map.
- Flag a backstage surface with no guard rather than assuming an inherited one that is not
evidenced.
- Never expose a secret or credential value in guard evidence — cite the `file:line` and the
enforcement, not the secret's bytes.
## Resources
- `references/guard-evidence.md`
- `agents/openai.yaml`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!