一键导入
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment — especially when adding DevOps domain skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when creating new skills, editing existing skills, or verifying skills work before deployment — especially when adding DevOps domain skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use before any DevOps build, change, or new feature — refine requirements through dialogue before touching infrastructure or code
Use when working with Docker — building images, writing Dockerfiles, debugging container issues
Use to execute a written implementation plan via subagents with review checkpoints
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Use when working with Kubernetes or Helm — authoring, reviewing, hardening, or debugging manifests, Deployments, Services, Ingress, RBAC, NetworkPolicy, or cluster operations
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
| name | writing-skills |
| description | Use when creating new skills, editing existing skills, or verifying skills work before deployment — especially when adding DevOps domain skills |
Writing skills IS Test-Driven Development applied to process documentation for this DevOps plugin.
You write test cases (pressure scenarios with subagents), watch them fail (baseline behavior), write the skill (documentation), watch tests pass (agents comply), and refactor (close loopholes).
Core principle: If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.
REQUIRED BACKGROUND: You MUST understand test-driven-development before using this skill. That skill defines the fundamental RED-GREEN-REFACTOR cycle. This skill adapts TDD to documentation.
A skill is a SKILL.md file in skills/<name>/ that shapes agent behavior for a specific DevOps workflow. Skills are auto-discovered by platform plugins and matched via their description field.
Skills are: Reusable techniques, patterns, reference guides for infrastructure, CI/CD, containers, cloud, networking, debugging.
Skills are NOT: Narratives about how you solved a problem once, project-specific notes, or mechanical constraints that should be automated.
| TDD Concept | Skill Creation |
|---|---|
| Test case | Pressure scenario with subagent |
| Production code | Skill document (SKILL.md) |
| Test fails (RED) | Agent violates rule without skill (baseline) |
| Test passes (GREEN) | Agent complies with skill present |
| Refactor | Close loopholes while maintaining compliance |
| Write test first | Run baseline scenario BEFORE writing skill |
| Watch it fail | Document exact rationalizations agent uses |
| Minimal code | Write skill addressing those specific violations |
| Watch it pass | Verify agent now complies |
| Refactor cycle | Find new rationalizations → plug → re-verify |
Create when:
Don't create for:
skills/
writing-skills/
SKILL.md # Main reference (required)
Flat namespace — all skills in one searchable namespace under skills/<name>/SKILL.md.
Frontmatter (YAML):
name and descriptionname: Use letters, numbers, and hyphens only (e.g., infrastructure-provisioning, not infra_provisioning)description: Third-person, describes ONLY when to use (NOT what it does)
Body sections (adapt to need):
tooling/ pathsPurpose: Your agent reads the description to decide whether to load this skill. Make it answer: "Should I read this skill right now?"
Format: Start with "Use when..." to focus on triggering conditions.
CRITICAL: Description = When to Use, NOT What the Skill Does
# ❌ BAD: Summarizes workflow
description: Use when debugging Kubernetes — follows a systematic process of checking pods, events, logs, and network policies
# ❌ BAD: Too much process detail
description: Use for IaC testing — write terraform test first, watch it fail, write minimal code, refactor
# ✅ GOOD: Just triggering conditions, no workflow summary
description: Use when Kubernetes workloads are crashing, pending, or misbehaving
# ✅ GOOD: Triggering conditions only
description: Use when implementing any infrastructure change or IaC module — before writing any configuration
Content rules:
Use words an agent would search for in a DevOps context:
Use active voice, verb-first:
writing-skills not skill-authoringinfrastructure-provisioning not iac-managementcontainer-operations not docker-guidanceGerunds (-ing) work well for processes:
writing-skills, testing-infrastructure, debugging-networksTarget word counts:
using-superpowers-devops): <200 words totalTechniques:
--help references**REQUIRED SUB-SKILL:** Use `test-driven-development` for the TDD cycle
**REQUIRED BACKGROUND:** You MUST understand `systematic-debugging` before using this skill
Use explicit requirement markers. Avoid @ syntax that force-loads files.
The authoritative situation→skill mapping lives in skills/using-superpowers-devops/SKILL.md. Every new or renamed skill must have a row added there. All other references (README, CLAUDE.md, AGENTS.md, GEMINI.md) are secondary.
Creating or renaming a skill requires updating ALL of these:
skills/<name>/SKILL.mdskills/using-superpowers-devops/SKILL.mdcommands/<name>.md (if the skill should be a slash command)README.md, CLAUDE.md, AGENTS.md, and GEMINI.mdIf the skill references tooling/ templates (Terraform files, Dockerfiles, CI configs), the path must be exact. Moving or renaming a template requires updating the skill's reference too.
Example from infrastructure-provisioning:
For Terraform: scaffold from `tooling/iac/terraform/`
For Ansible: scaffold from `tooling/iac/ansible/`
Every DevOps skill must work in two modes:
tooling/ templates. Scaffold real files, modify configs directly.Detect which mode you're in and adapt. Don't assume file access.
When creating a skill for debugging Kubernetes networking:
RED (baseline): Run a pressure scenario where the agent is told "pods can't reach each other" without the skill. Document what the agent does — likely jumps to checking endpoints without checking CNI, network policies, or DNS first.
GREEN (write skill): Create skills/kubernetes-networking/SKILL.md with a systematic debugging flow: CNI health → NetworkPolicy audit → DNS resolution → endpoint slices → kube-proxy. Reference tooling/network/ for base configs.
REFACTOR (close loopholes): Test again. If the agent skips CNI checks again, add explicit prohibition: "Do NOT check pod-to-pod connectivity before verifying the CNI plugin is healthy."
Deploy: Add trigger row to trigger table, create commands/k8s-networking.md, update README/CLAUDE/GEMINI/AGENTS.md.
Run pressure scenario with subagent WITHOUT the skill. Document exact behavior:
Write skill that addresses those specific rationalizations. Don't add extra content for hypothetical cases.
Run same scenarios WITH skill. Agent should now comply.
Agent found new rationalization? Add explicit counter. Re-test until bulletproof.
Don't just state the rule — forbid specific workarounds:
# ✅ GOOD
**No exceptions:**
- Don't keep untested changes as "reference"
- Don't "adapt" while running tests
- Delete means delete
| Excuse | Reality |
|---|---|
| "Skill is obviously clear" | Clear to you ≠ clear to other agents. Test it. |
| "It's just a reference skill" | References can have gaps. Test retrieval. |
| "Testing is overkill" | Untested skills have issues. 15 min testing saves hours. |
| "No time to test" | Deploying untested skill wastes more time fixing it later. |
## Red Flags — STOP
- Writing skill before testing baseline
- Editing skill without re-testing
- "I'll test if problems emerge"
- "Too tedious to test"
NO SKILL WITHOUT A FAILING TEST FIRST
This applies to NEW skills AND EDITS to existing skills. Write skill before testing? Delete it. Start over.
No exceptions: Not for "simple additions," "just adding a section," or "documentation updates."
Use flowcharts ONLY for:
Never use flowcharts for reference material (use tables), code examples (use code blocks), or linear instructions (use numbered lists).
"In session 2025-10-03, we fixed a Terraform state lock by..." Why bad: Too specific, not reusable
Dockerfile, docker-compose.yml, Dockerfile.arm64 — all in one skill Why bad: Maintenance burden, mediocre quality
step1, helper2, pattern3 Why bad: Labels should have semantic meaning
name and description