/nw-ab-anti-patterns
KNOWLEDGE — agent/skill/command anti-pattern catalog with fixes. Reference scanned by validate-spec; no sequence.
Claude Code
$ npx -y skills add nWave-ai/nWave --skill nw-ab-anti-patterns --agent claude-code
Codex
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a codex -y
Cursor
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a cursor -y
Gemini CLI
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a gemini-cli -y
GitHub Copilot
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a github-copilot -y
OpenCode
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a opencode -y
Windsurf
$ npx skills add nWave-ai/nWave --skill nw-ab-anti-patterns -a windsurf -y
SKILL.md
nw-ab-anti-patterns.SKILL.mdname: nw-ab-anti-patterns
description: "KNOWLEDGE — agent/skill/command anti-pattern catalog with fixes. Reference scanned by validate-spec; no sequence."
user-invocable: false
nw-ab-anti-patterns (KNOWLEDGE)
**Kind**: KNOWLEDGE (reference catalog). Scanned by `nw-ab-validate-spec` (anti-pattern step). No forced sequence.
| Anti-Pattern | Why It Fails | Fix | |-------------|-------------|-----| | Monolithic agent (2000+ lines) | Context rot; 3x token cost | Extract to Skills, target 200-400 lines | | Embedded safety frameworks | Duplicates platform; wastes tokens | Construct safety first — tool surface (frontmatter `tools`/`permissionMode`), typed grammar; hooks last resort (GDP-0) | | Aggressive language | Overtriggering on Opus 4.6 | Calm, direct statements | | Zero examples | Fails on subtle/critical behaviors | Include 3-5 canonical examples | | Exhaustive examples (30+) | Diminishing returns; context rot | Keep 3-5 diverse canonical cases | | Specifying default behaviors | 65% of specs redundant | Specify only divergent behaviors | | Negatively phrased rules | Less effective than affirmative | Phrase affirmatively | | Compound instructions | Confuses agent reasoning | Split into separate focused steps | | Inconsistent terminology | Amplifies confusion in longer contexts | One term per concept throughout | | Mirrored skill loading | Frontmatter skill also loaded by a body directive or table row — the installer already preloaded it once, so the body duplicates resident knowledge | Delete the body directive/row; frontmatter alone keeps it resident | | Handwritten conditional index | Skill Loading section or table written beside the generated region — two indexes drift | Apply the source-aware Skill addressing procedure in `nw-agent-creation-workflow`; retain one generated index and report missing source capability | | Conditional skill in frontmatter | A skill needed only under a condition is eagerly preloaded on every task | Move it to a precise conditional trigger through the source-aware procedure; do not manufacture a registry in an installed project | | Over-compressed examples | `### Example N:` headers removed during compression — eval tools can't find them | Keep example section headers verbatim | | Compressed AskUserQuestion options | Runtime menu items compressed to pipes — lose decision tree structure | Preserve numbered options with descriptions verbatim | | Broad multi-job asset | One agent/skill does N jobs; runtime re-decides "what good means" each run | Split into N one-job-one-trigger INTERNAL skills — do not add rules, do not parameterize | | Renaming/proliferating the command surface | Renaming an established command (e.g. `forge`) or adding new user-facing commands breaks muscle-memory + the preserve-names rule | Route the split to internal skills behind the EXISTING command/agent; preserve names; a new command is the rare exception, named `/nw-*` |
Read more
name: nw-ab-anti-patterns description: "KNOWLEDGE — agent/skill/command anti-pattern catalog with fixes. Reference scanned by validate-spec; no sequence." user-invocable: false
nw-ab-anti-patterns (KNOWLEDGE)
**Kind**: KNOWLEDGE (reference catalog). Scanned by `nw-ab-validate-spec` (anti-pattern step). No forced sequence.
| Anti-Pattern | Why It Fails | Fix | |-------------|-------------|-----| | Monolithic agent (2000+ lines) | Context rot; 3x token cost | Extract to Skills, target 200-400 lines | | Embedded safety frameworks | Duplicates platform; wastes tokens | Construct safety first — tool surface (frontmatter `tools`/`permissionMode`), typed grammar; hooks last resort (GDP-0) | | Aggressive language | Overtriggering on Opus 4.6 | Calm, direct statements | | Zero examples | Fails on subtle/critical behaviors | Include 3-5 canonical examples | | Exhaustive examples (30+) | Diminishing returns; context rot | Keep 3-5 diverse canonical cases | | Specifying default behaviors | 65% of specs redundant | Specify only divergent behaviors | | Negatively phrased rules | Less effective than affirmative | Phrase affirmatively | | Compound instructions | Confuses agent reasoning | Split into separate focused steps | | Inconsistent terminology | Amplifies confusion in longer contexts | One term per concept throughout | | Mirrored skill loading | Frontmatter skill also loaded by a body directive or table row — the installer already preloaded it once, so the body duplicates resident knowledge | Delete the body directive/row; frontmatter alone keeps it resident | | Handwritten conditional index | Skill Loading section or table written beside the generated region — two indexes drift | Apply the source-aware Skill addressing procedure in `nw-agent-creation-workflow`; retain one generated index and report missing source capability | | Conditional skill in frontmatter | A skill needed only under a condition is eagerly preloaded on every task | Move it to a precise conditional trigger through the source-aware procedure; do not manufacture a registry in an installed project | | Over-compressed examples | `### Example N:` headers removed during compression — eval tools can't find them | Keep example section headers verbatim | | Compressed AskUserQuestion options | Runtime menu items compressed to pipes — lose decision tree structure | Preserve numbered options with descriptions verbatim | | Broad multi-job asset | One agent/skill does N jobs; runtime re-decides "what good means" each run | Split into N one-job-one-trigger INTERNAL skills — do not add rules, do not parameterize | | Renaming/proliferating the command surface | Renaming an established command (e.g. `forge`) or adding new user-facing commands breaks muscle-memory + the preserve-names rule | Route the split to internal skills behind the EXISTING command/agent; preserve names; a new command is the rare exception, named `/nw-*` |
Other skills on nwave.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about nw-ab-anti-patterns.
- Which coding agents can use nw-ab-anti-patterns?
- nw-ab-anti-patterns installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

