Skip to content
Back to skills

Writing Skills

ASecurity

Use when reviewing skill files for prose quality, markdown formatting, and style conventions. NOT for creating new skills — see Creation Checklist within this skill.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgonodetestingdebugginggitapisecuritydocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add bordenet/superpowers-plus --skill writing-skills --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Writing Skills?

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

Security grade badge for Writing Skills
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bordenet-writing-skills/badge)](https://www.skillsdirectory.com/skills/bordenet-writing-skills)

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: writing-skills
disable-model-invocation: true
source: superpowers-plus
triggers: ["skill writing style", "skill prose quality", "skill markdown format", "SKILL.md format", "skill file conventions"]
anti_triggers: ["use skill", "find skill", "load skill", "create a skill", "make a skill", "new skill for"]
description: "Use when reviewing skill files for prose quality, markdown formatting, and style conventions. NOT for creating new skills — see Creation Checklist within this skill."
coordination:
  group: writing
  order: 1
  requires: []
  enables: []
  escalates_to: []
  internal: false
composition:
  consumes: [markdown-content]
  produces: [prose-quality-report]
  capabilities: [validates-prose, reviews-content]
  priority: 35
---

# Writing Skills

## When to Use

- Reviewing skill files for prose quality, markdown formatting, and style conventions
- Checking SKILL.md structure and frontmatter compliance
- NOT for: creating new skills (use skill-authoring process in Creation Checklist below)

A **skill** is a reusable reference guide for techniques, patterns, or tools. NOT a narrative about solving a problem once.

**Writing skills IS TDD applied to process documentation.** Follow RED-GREEN-REFACTOR:
- **RED:** Run pressure scenario WITHOUT skill. Document exact agent failures/rationalizations verbatim.
- **GREEN:** Write minimal skill addressing those specific failures. Verify agent now complies.
- **REFACTOR:** Find new rationalizations → plug → re-test until bulletproof.

**The Iron Law:** No skill without a failing baseline first. Same rule, same exceptions (none).

## SKILL.md Structure

```yaml
---
name: skill-name
source: superpowers-plus  # or a private overlay repo's name; `superpowers` is retired, don't use it
triggers: ["phrase1", "phrase2"]
anti_triggers: ["not-this"]
description: "One-line summary starting with 'Use when:'"
summary: "Use when: creating or reviewing skill files for structure and quality."
---
```

Then markdown body: core procedure, checklists, rules. Scale section depth to complexity.

## Skill Types

| Type | Purpose | Example |
|------|---------|---------|
| **Technique** | How-to guide | brainstorming, systematic-debugging |
| **Pattern** | Mental model / guard | eliminating-ai-slop, unified-commit-gate |
| **Reference** | API/tool docs | perplexity-research, todo-management |

## Directory Structure

```markdown
skills/{domain}/{skill-name}/
├── skill.md          # Core skill (≤250 lines)
├── examples.md       # Extended examples (optional)
└── references/       # Reference material (optional)
```

Domains: `engineering`, `writing`, `productivity`, `security`, `research`, `wiki`, issue-tracking domain, `observability`, `experimental`.

## Creation Checklist

**RED — baseline first:**
1. Run pressure scenario WITHOUT skill — document exact violations/rationalizations verbatim
2. Identify failure type (rule skipped under pressure? wrong output shape? omits element? condition-dependent?)

**GREEN — write minimal skill:**
3. Choose guidance form matching failure type (see Match the Form to the Failure below)
4. Write skill addressing those specific failures only
5. Verify agent complies with skill present

**REFACTOR — close loopholes:**
6. Find new rationalizations → add explicit counter → re-test until bulletproof
7. `wc -l skill.md` must be ≤250 lines

## Skill Discovery Optimization (SDO)

`description` = **triggering conditions ONLY**. Never summarize the skill's workflow.

**Why this matters:** Testing showed descriptions that summarize workflow cause agents to follow the description *instead of reading the skill*. A description saying "code review between tasks" caused agents to do ONE review; "Use when executing implementation plans" caused them to correctly read and follow the two-stage flowchart. (Testing methodology: see `testing-skills-with-subagents.md` in this directory.)

```yaml
# ❌ BAD: Summarizes workflow — agents shortcut by following description, skip skill body
description: "Use when executing plans — dispatches subagent per task with code review between tasks"
# ✅ GOOD: Triggering conditions only
description: "Use when executing implementation plans with independent tasks in the current session"
```

## Match the Form to the Failure

Classify the baseline failure before writing guidance — the wrong form measurably backfires:

| Baseline failure | Right form | Wrong form |
|---|---|---|
| Skips/violates rule under pressure (knows better, does it anyway) | Prohibition + rationalization table + red flags | Soft guidance ("prefer...", "consider...") |
| Complies, but output has wrong shape (bloated prompt, buried verdict) | Positive recipe: state what output IS — its parts, in order | Prohibition list ("don't restate", "never narrate") |
| Omits required element from something already produced | Structural: REQUIRED field/slot in the template they fill in | Prose reminders near the template |
| Behavior should depend on a condition | Conditional keyed to observable predicate | Unconditional rule + exemption clauses |

**Key:** Prohibitions backfire on shaping problems. Under competing incentives agents negotiate with "don't X". A recipe leaves nothing to negotiate: the output matches the stated shape or it doesn't. No nuance clauses — "don't X unless it matters" reopens the negotiation.

## Bulletproofing Against Rationalization

For discipline skills (rules agents skip under pressure only — for shaping failures use the forms above):
- **Close every loophole explicitly:** Don't just state the rule — forbid specific workarounds with "No exceptions: not for simple additions, not for documentation updates, delete means delete."
- **Spirit vs letter counter** (add early): "Violating the letter of the rules is violating the spirit of the rules."
- **Rationalization table** from baseline test verbatims (capture exact excuses)
- **Red Flags list** for agent self-check

See `persuasion-principles.md` in this directory for research foundation (authority, commitment, scarcity, unity principles).

## Common Rationalizations for Skipping Testing

| Excuse | Reality |
|--------|---------|
| "Skill is obviously clear" | Clear to you ≠ clear to agents. Test it. |
| "It's just a reference" | References have gaps. Test retrieval. |
| "Testing is overkill" | Untested skills always have issues. 15 min testing saves hours. |
| "I'll test if problems emerge" | Problems = agents can't use skill. Test BEFORE deploying. |
| "No time to test" | Deploying untested skill wastes more time fixing it later. |
| "I'm confident it's good" | Overconfidence guarantees issues. Test anyway. |

See `testing-skills-with-subagents.md` in this directory for full methodology (pressure types, micro-testing wording, plugging holes).

## Quality Gates

- Every rule has a concrete "what to do" (not just "don't do X")
- Triggers are specific enough to avoid false positives
- Anti-triggers prevent firing when not needed
- Description starts with "Use when:" for search optimization
- No narrative examples — use checklists and tables
- No philosophical arguments ("why this matters")
- Token budget: aim for <1000 compressed tokens

## Where Skills Go

| Repo | Content | Access |
|------|---------|--------|
| `superpowers-plus` | All skills, including the obra-origin ones folded in directly at v2.6.0 | Public GitHub |
| private overlay | Internal/proprietary | Private repo |

To override a superpowers-plus skill from a private overlay repo:

- Set `overrides: source-repo-name/{skill-name}` in frontmatter, where `source-repo-name` matches a directory under `~/.codex/`. Place the skill in the overlay repo with the same `name`.
- This stages that source's companion files at install time and suppresses drift/duplicate warnings in `sp-doctor`. No skill file in this repo currently uses it, so treat it as documented behavior, not something proven in practice.
- A mistyped or missing `source-repo-name` fails silently (no warning unless installing with `--verbose`). Verify a new `overrides:` entry resolves by installing with `--verbose` and checking for the companion-staging log line.
- The `superpowers` source name alone is retired (v2.6.0+); don't use it. Unlike a typo, this one always warns.

## After Creation

1. `node ~/.codex/superpowers-augment/superpowers-augment.js find-skills {name}` — verify discoverable
2. `node ~/.codex/superpowers-augment/superpowers-augment.js use-skill {name}` — verify loads correctly
3. Check compressed token count — target <1000

## Failure Modes

| Failure | Fix |
|---------|-----|
| Skill passes structural checks but has empty/placeholder procedure | Every skill needs at least one concrete "do X, then Y" instruction |
| Trigger phrases too broad — causes false positive routing | Test triggers: `find-skills "{trigger}"` should return <3 skills per trigger |
| Description doesn't start with "Use when:" — breaks search optimization | Format: `"Use when: {specific context}. Skip when: {anti-context}."` |
| Skill exceeds 250-line limit after edits | Check `wc -l skill.md` before committing — refactor to examples.md if needed |

Files in this skill

  • anthropic-best-practices.md44.7 KB
  • examples/CLAUDE_MD_TESTING.md5.3 KB
  • graphviz-conventions.dot5.8 KB
  • persuasion-principles.md5.8 KB
  • render-graphs.js5 KB
  • skill.md9 KB
  • testing-skills-with-subagents.md12.3 KB

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…