skills/writing-skills/SKILL.md
Meta-skill: use when creating a new skill for the superomni framework. Guides through the process of designing and writing a well-structured skill. Triggers: "create a new skill", "write a skill for", "add a skill that".
npx skillsauth add Wilder1222/superomni writing-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
On session start, read: branch from git branch --show-current, session timestamp from ~/.omni-skills/sessions/current-session-ts.
Report status using one of these at the end of every skill session:
Pipeline stage order: THINK -> PLAN -> REVIEW -> BUILD -> VERIFY -> RELEASE
THINK has exactly one human gate: spec review approval. brainstorm runs without manual gate. After spec-[branch]-[session]-[date].md is generated, STOP for user spec approval. Once approved, all subsequent stages (PLAN -> REVIEW -> BUILD -> VERIFY -> RELEASE) auto-advance on DONE.
| Status | At THINK stage (after spec generation) | At all other stages |
|--------|----------------------------------------|-------------------|
| DONE | STOP - present spec document for user review. Wait for user approval before advancing to PLAN. | Auto-advance - print [STAGE] DONE -> advancing to [NEXT-STAGE] and immediately invoke next skill |
| DONE_WITH_CONCERNS | STOP - present concerns, wait for user decision | STOP - present concerns, wait for user decision |
| BLOCKED / NEEDS_CONTEXT | STOP - present blocker, wait for user | STOP - present blocker, wait for user |
When auto-advancing:
docs/superomni/[STAGE] DONE -> advancing to [NEXT-STAGE] ([skill-name])Note: The REVIEW stage (plan-review) runs fully automatically — all decisions (mechanical and taste) are auto-resolved using the 6 Decision Principles. No user input is requested during REVIEW.
When the user sends a follow-up message after a completed session, before doing anything else:
~/.omni-skills/sessions/current-session-ts to get session start timestamp. Find artifacts in docs/superomni/specs/, docs/superomni/plans/ newer than that timestamp using find -newer. Check git log --oneline -3.workflow skill for stage → skill mapping) and announce:
"Continuing in superomni mode — picking up at [stage] using [skill-name]."using-skills/SKILL.md.When asking the user a question, match the confirmation requirement to the complexity of the response:
| Question type | Confirmation rule | |---------------|------------------| | Single-choice — user picks one option (A/B/C, 1/2/3, Yes/No) | The user's selection IS the confirmation. Do NOT ask "Are you sure?" or require a second submission. | | Free-text input — user types a value and presses Enter | The submitted text IS the confirmation. No secondary prompt needed. | | Multi-choice — user selects multiple items from a list | After the user lists their selections, ask once: "Confirm these selections? (Y to proceed)" before acting. | | Complex / open-ended discussion — back-and-forth clarification | Collect all input, then present a summary and ask: "Ready to proceed with the above? (Y/N)" before acting. |
Rule: never add a redundant confirmation layer on top of a single-choice or text-input answer.
Custom Input Option Rule: Always append Other — describe your own idea: ___ to predefined choice lists. Treat custom text as the chosen option; ask one clarifying question only if ambiguous.
Load context progressively — only what is needed for the current phase:
| Phase | Load these | Defer these |
|-------|-----------|------------|
| Planning | Latest docs/superomni/specs/spec-*.md, constraints, prior decisions | Full codebase, test files |
| Implementation | Latest docs/superomni/plans/plan-*.md, relevant source files | Unrelated modules, docs |
| Review/Debug | diff, failing test output, minimal repro | Full history, specs |
If context pressure is high: summarize prior phases into 3-5 bullet points, then discard raw content.
All skill artifacts are written to docs/superomni/ (relative to project root).
See the Document Output Convention in CLAUDE.md for the full directory map.
Agent failures are harness signals — not reasons to retry the same approach:
harness-engineering skill to update the harness before retrying.It is always OK to stop and say "this is too hard for me." Escalation is expected, not penalized.
Before reporting final status, answer: (1) Process — all phases followed? (2) Evidence — every claim backed by output or file reference? (3) Scope — stayed within task boundary? If any NO, address it or report DONE_WITH_CONCERNS. For full sprint evaluation, use self-improvement.
Never say these — they are sycophantic filler that delays real analysis:
Always do:
Before executing substantive decisions, check if any falls into these high-tacit-density categories.
These are NOT about operational danger (that's the careful skill) — they're about whether the Agent
has enough tacit knowledge to judge correctly.
| Category | Trigger | Action |
|----------|---------|--------|
| D1 Domain Expertise | Security, compliance, legal, financial judgment | State TACIT-DENSE [D1], present trade-offs, wait for user |
| D2 User-Facing UX | UI copy, interaction flow, error messaging | Draft with explicit review markers |
| D3 Team Culture | Workflow, naming conventions, file organization | Check style-profiles/ first; ask if none |
| D4 Novel Pattern | Fewer than 3 precedents in project history | Reduce autonomy, add checkpoints before executing |
When TACIT-DENSE detected, output: TACIT-DENSE [D#]: [category] — [question] — My default: [recommendation]
Relationship with careful skill: careful = "can we undo this?" (operational). TACIT-DENSE = "can we judge this correctly?" (knowledge). Complementary.
At session end, log skill name, duration, and outcome to ~/.omni-skills/analytics/ via bin/analytics-log. Nothing is sent to external servers.
If you have already entered Plan Mode (via EnterPlanMode), these rules apply:
ExitPlanMode prematurely to bypass a skill's STOP/gate.git log/git statusdocs/superomni/ (specs, plans, reviews)~/.omni-skills/ (sessions, analytics)docs/superomni/plans/, not to Claude's built-in plan file.ExitPlanMode after the current skill workflow is complete and has reported a status (DONE/BLOCKED/etc).Goal: Create a new, well-designed skill that integrates cleanly into the superomni framework.
A skill is good when:
{{PREAMBLE}} for consistencyAlways follow this order before writing a new skill from scratch:
1. Check project built-ins → ls skills/ && bin/skill-manager list
2. Search the network → bin/skill-manager search <query>
3. Install from URL → bin/skill-manager install <url>
4. Write from scratch → follow steps below
Never write a new skill without first completing steps 1–3.
Before writing anything, verify no existing skill already covers your need:
# Check built-in skills for overlap
bin/skill-manager list
grep -rn "name:" skills/*/SKILL.md.tmpl | head -20
Gate: If an existing skill fits → use or extend it. Stop here. If none fits → proceed to Step 2.
If no built-in skill covers your need, search GitHub and known registries:
# Search GitHub for matching skills
bin/skill-manager search <your-query>
Check known registries:
https://github.com/obra/superpowers/tree/main/skillshttps://github.com/garrytan/gstack/tree/main/skillsGate: If a suitable skill is found online → install it:
bin/skill-manager install <raw-url>
Stop here. If nothing suitable → proceed to Step 3.
Answer these questions before writing:
systematic-debugging, writing-plans)SKILL_NAME="your-skill-name"
mkdir -p "skills/${SKILL_NAME}"
Create skills/<skill-name>/SKILL.md.tmpl:
---
name: <skill-name>
description: |
[2-3 sentence description]
Triggers: [comma-separated trigger phrases]
allowed-tools: [Bash, Read, Write, Edit, Grep, Glob]
---
{{PREAMBLE}}
# <Skill Title>
**Goal:** [One sentence: what does this skill accomplish?]
## Iron Law (if applicable)
[Absolute rule that must never be violated]
## Phase 1: [First Phase Name]
[Steps, commands, outputs]
## Phase N: [Last Phase Name]
[...]
## Status Report
[Required output format for this skill]
{{PREAMBLE}} is includedname, description, allowed-toolsbash lib/gen-skill-docs.sh "skills/${SKILL_NAME}/SKILL.md.tmpl"
Verify the output:
cat "skills/${SKILL_NAME}/SKILL.md"
head -5 "skills/${SKILL_NAME}/SKILL.md" # confirm preamble was expanded
Add the new skill to the Skills Quick Reference in CLAUDE.md:
| <skill-name> | [trigger phrases] | P[0-2] |
Write a brief test scenario:
{{PREAMBLE}})---
name: my-skill
description: |
Use when [trigger condition].
Triggers: "keyword 1", "keyword 2".
allowed-tools: [Bash, Read, Write, Edit, Grep, Glob]
---
{{PREAMBLE}}
# My Skill
**Goal:** [What this accomplishes.]
## Iron Law
[Non-negotiable rule]
## Phase 1: [Name]
[Steps]
## Phase 2: [Name]
[Steps]
## Report
\`\`\`
MY SKILL REPORT
════════════════
Status: DONE | DONE_WITH_CONCERNS | BLOCKED
[Key output]
════════════════
\`\`\`
development
Systematic, behavior-preserving code refactoring with safety gates. Dispatches refactoring-agent. Triggers: "refactor", "clean up code", "reduce tech debt", "extract method", "rename". NOT for reactive PR feedback — use code-review for that.
development
Meta-skill: create, install, list, and manage skills and agents within the superomni framework. Merges writing-skills + agent-management into one unified workflow. Triggers: "create skill", "write a skill", "install skill", "list skills", "create agent", "write an agent", "install agent", "list agents", "new skill", "new agent", "add skill", "add agent", "manage framework".
testing
Dependency security, license, and freshness audit. Dispatches dependency-auditor agent to scan all package managers. Triggers: "dependency audit", "check dependencies", "npm audit", "security scan", "check for vulnerabilities", "outdated packages", "license check".
documentation
Use when turning a spec or idea into a concrete, executable implementation plan. Triggers: "write a plan", "plan this out", "create implementation plan", "how should we implement".