Skip to content
Back to skills

Audit Skill Conflicts

ASecurity

Read-only audit of a skill pack for contradictory directives, overlapping triggers, stale cross-refs, and context bloat. Use when "audit my skills", "conflicting skills", "wrong skill triggered", or after adding a batch. Authoring → meta-skill-creator.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
ai-agentsrails

Works with

  • claude code
  • cursor

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add kensaurus/cursor-kenji --skill audit-skill-conflicts --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit Skill Conflicts?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audit Skill Conflicts
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kensaurus-audit-skill-conflicts/badge)](https://www.skillsdirectory.com/skills/kensaurus-audit-skill-conflicts)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: audit-skill-conflicts
description: >
  Read-only audit of a skill pack for contradictory directives, overlapping
  triggers, stale cross-refs, and context bloat. Use when "audit my skills",
  "conflicting skills", "wrong skill triggered", or after adding a batch.
  Authoring → meta-skill-creator.
license: MIT
effort: high
---

# audit-skill-conflicts — Pack coherence, not product QA

**Degree of freedom: MIXED** — Phases 0–1 `[HIGH freedom]`; Phase 2 routing
dry-run `[LOW freedom]` — skip explicitly if the harness cannot show
selection. The retired `audit-responsive-layout` name appears in your report only as a dangling-reference finding, never as a handoff.

Read-only. Most other `audit-*` skills inspect an app or repository you
ship. This one inspects **the skill pack it lives in**.

`npm run validate:skills` checks each file in isolation (name = dir, description
≤320, body <500). It cannot see two skills giving opposite advice, six
descriptions all matching "audit my UI", a handoff to a renamed skill, or a
greedy description that fires constantly and burns context.

**A skill collection is a system. Its failure modes are between files.**

> **Present findings. Rewrite nothing until approved.** Highest-leverage
> first: description rewrites (routing) — they change which skill fires
> without changing any skill's behavior.

## This skill vs neighbors

| Skill | Owns |
|---|---|
| **audit-skill-conflicts** (this) | Cross-skill contradictions, routing, dangling refs, bloat |
| `meta-skill-creator` | How to *write* a SKILL.md |
| `validate:skills` (script) | Per-file spec lint — not semantic coherence |
| `enhance-agent-guardrails` | Guardrails in an *app* repo, not this pack |
| `plan-docs-sync` | Docs vs code drift — not skill vs skill |

Do **not** fire for "create a skill" → `meta-skill-creator`.
Do **not** fire for "audit my app's UI" → `audit-ux` / `audit-responsive` /
`audit-ui-states` (this skill would *flag* that cluster).

## How to reason

1. **Observe** — quote both descriptions (or rule vs skill) that appear to collide
2. **Interpret** — can one user phrase honor both, or do they contradict / steal routing?
3. **Classify** — contradiction / trigger overlap / stale ref / bloat / correct carve-out
4. **Severity** — opposite stance on the same situation, or a greedy description, first

## Worked example

> **Observe:** "audit my UI" matches `audit-ux`, `audit-responsive`,
> `audit-ui-states` with no carve-out in two of the three descriptions.
> **Interpret:** the agent cannot know whether to score heuristics, breakpoints,
> or empty states.
> **Classify:** trigger overlap without disambiguation.
> **Severity:** major — wrong skill fires; wasted context.
> **Fix:** each description names when *it* wins (layout vs heuristics vs states).

---

## Phase 0 — Load the corpus  [HIGH freedom]

Enumerate:

- `skills/*/SKILL.md` and `skills-cursor/*/SKILL.md`
- `commands/*.md` and `commands-portable/*.md`
- `agents/*.md`
- `rules/*.mdc` and `.cursor/rules/*.mdc` — **highest-risk**. Always-on
  rules silently override a skill's intent.

For each skill extract: `name`, `description` (routing surface), claimed
triggers, cross-referenced skills, core directives (read-only vs apply-fixes,
plan-first vs edit, hard always/never). One index. Compare the set, not
pairwise guesswork.

House skill name in *this* repo is `audit-responsive`.
`audit-responsive-layout` is retired. `/responsive-audit` is a valid command
alias, but bare/backticked `responsive-audit` is not a skill handoff.

---

## Phase 1 — Conflict and drift  [HIGH freedom]

**Contradictory directives** — Opposite behavior for an overlapping situation
(e.g. "fix inline" vs "never edit in the audit pass"). Rules-vs-skill is
worst. List every pair that cannot both be honored.

**Trigger overlap / mis-routing** — Phrases that match many skills. Example
cluster in this pack:

> "audit my UI" → `audit-ux`, `audit-uiux-design-system`, `audit-responsive`,
> `audit-ui-states`, `thirdparty-web-interface-guidelines`,
> `plan-uiux-unification`

Overlap is fine **if** each description carves out *when it, specifically,*
applies. Flag members that do not disambiguate.

**Duplicated guidance** — The same block copy-pasted across skills. Drift
risk. Name an extraction target (shared rule or one canonical skill).

**Stale cross-references** — Handoff to a renamed/removed skill. Resolve every
backtick skill name against the live directory list.

**Scope gaps & double-coverage** — Two skills claiming the same task with no
delineation, or a chain step no skill owns. This is *pack* coverage, not
product gaps.

**Context-budget bloat** — Over-broad descriptions (narrow skill, greedy
triggers): descriptions ride in every request, so they are the always-on
cost. Bodies load only on trigger and cache well; flag a body for dated
instructions, not for length alone. User-initiated rituals should carry
`disable-model-invocation: true` (drops the description from the roster;
Cursor and Claude Code both honor it); reference-only skills
`user-invocable: false` (Claude Code).

**Convention drift** — Family-placement (audit-and-fix under `enhance-*` is
OK when called out, like `enhance-email-deliverability`). Inconsistent
read-only/plan-only semantics inside a family. Description-voice drift.

---

## Phase 2 — Routing dry-run (optional)  [LOW freedom — skip honestly]

If a harness can show which skill the agent selects for a phrase, feed
realistic user lines and record matches. Ambiguous phrases that should map to
one skill but match several confirm Phase 1 empirically.

**Cursor / Claude Code usually do not expose selection.** Skip this phase
explicitly; static description analysis still stands. Do not pretend a
dry-run ran.

---

## Definition of Done

- [ ] Corpus indexed: skills + commands + subagents + rules
- [ ] Contradictory-directive pairs listed (rules-vs-skill included)
- [ ] Trigger-overlap clusters identified; carve-outs checked
- [ ] Duplicated blocks + extraction targets named
- [ ] Cross-refs resolved; dangling listed (incl. retired
      `audit-responsive-layout` and bare `responsive-audit` skill handoffs)
- [ ] Double-coverage and handoff gaps surfaced
- [ ] Bloat / convention drift noted
- [ ] Routing dry-run run **or** explicitly skipped
- [ ] Nothing edited without approval

## Self-critique before reporting  [LOW freedom — do not skip]

1. **Quoted pair** — every contradiction cites both texts
2. **Dry-run honesty** — skipped if no harness; do not pretend it ran
3. **Name hygiene** — retired `audit-responsive-layout` and bare
   `responsive-audit` skill handoffs listed; `/responsive-audit` command kept
4. **Right owner** — how to *write* a skill → `meta-skill-creator`; how to
   upgrade prompts → `enhance-skill-prompts`
5. **Nothing rewritten** until approved; description fixes first (routing)

## Output format

1. **Conflict table** — A | B (or rule) | type | why they can't coexist | severity
2. **Trigger-overlap clusters** — phrase | skills | who should win | description fix
3. **Dangling references** — skill | broken ref | correct target
4. **Coverage map** — double-coverage + gaps
5. **Bloat / convention** — item | issue | fix
6. **Fix plan** — description rewrites first, then dedupe/extraction, then
   convention. Propose only.

## Related

- `meta-skill-creator` — write a new SKILL.md
- `enhance-skill-prompts` — upgrade an existing skill's prompt (T1–T8), not its behavior
- `validate:skills` — per-file spec after description edits
- `enhance-agent-guardrails` — app-repo policy, not pack coherence
- `plan-docs-sync` — docs vs code
- `audit-responsive` / `audit-ux` / `audit-ui-states` — the UI-audit cluster this skill is expected to flag

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…