Load before running the 7-dimension structural audit. Each entry describes a rule that is correct in principle but frequently misapplied to look-alike situations that should not trigger the rule. ---
Installs into .claude/skills of the current project.
Are you the author of 2506 Audit Calibration A64ea751?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-2506-audit-calibration-a64ea751)
# Audit Calibration — Known False-Positive Patterns
Load before running the 7-dimension structural audit. Each entry describes a rule that is
correct in principle but frequently misapplied to look-alike situations that should not
trigger the rule.
---
## D2 / `allowed-tools` absent
`allowed-tools` absent entirely means unrestricted by default — this is NOT a violation
at any severity. The field is an optional restriction mechanism, not a required declaration.
Only flag when a skill has an *existing* `allowed-tools` list that omits a tool the skill
actively uses — a partial restriction creates the problem; absent restriction does not.
**Flag this:** Skill has `allowed-tools: [Read, Write]` but calls AskUserQuestion
→ major violation (restricted list is incomplete).
**Do not flag this:** Skill has no `allowed-tools` field but calls AskUserQuestion
→ no violation; the tool is available by default.
---
## D5 / Orientation content vs routing guidance
Flag as a routing-guidance violation only when the body contains a "When to Use This
Skill" section or explicit language telling the user *when to trigger the skill*. Content
that explains domain concepts *needed during execution* — so the skill can make accurate
decisions — is functional orientation, not routing guidance.
Rate functional orientation as verbosity (minor) only if it exceeds 4–5 lines without
adding decision value that the skill body requires.
**Flag this:** Body has `## When to Use This Skill — use this when you want to create a
new skill` → major violation (routing guidance in always-loaded body, never read by the
routing decision).
**Do not flag this:** Body has `Agents vs Skills — know the difference before generating:
Agents run in isolated context, Skills inject inline` → functional orientation that helps
the skill produce accurate output; not routing guidance.
---
## D4 / Task/Skill invocation prose
Natural language inside a fenced block describing how to call Claude's own tools is the
idiomatic skill instruction format — `Use Task tool with subagent_type=X: "..."` is how
skills correctly instruct Claude. Do not flag this as a vague script reference.
Only flag D4 prose as a violation when it refers to *user-facing scripts or deterministic
CLI operations* (validate.py, init.sh, etc.) without specifying which file, the trigger
condition, and the exact invocation command.
**Flag this:** Body says "run the validation script if needed" with no path, trigger, or
invocation → major violation (deterministic script reference is vague).
**Do not flag this:** Body has a code block:
`Use Task tool with subagent_type=claude-code-guide: "List current frontmatter options"`
→ idiomatic instruction to Claude to use a built-in tool; not a script reference.
---
## D2 / `context: fork` for interactive skills
Do not flag `context: fork` absent as major for skills that have interactive elements:
AskUserQuestion calls, "Proceed?" confirmation prompts, or interview phases in Phase 1.
These depend on conversation thread continuity — a forked skill cannot surface interactive
prompts back to the user.
Only recommend `context: fork` when the skill is non-interactive AND produces substantial
output that would pollute the main context (e.g., a batch analysis skill that generates a
large report with no mid-workflow user decisions).
**Flag this:** Skill is a read-only research tool with no user interactions that returns
a 200-line formatted report → major gap (context: fork would keep main thread clean).
**Do not flag this:** Skill has "Before writing: Proceed? [y/n]" prompts in Phase 3
→ fork would break the confirmation flow; omitting context: fork is correct here.