Default working mode for all non-trivial tasks. Decompose any task that benefits from specialization, parallelism, or independent verification into sub-agents. Use sub-agents by default unless the task is trivially small (< 5 min, single file). Triggers: any implementation, review, or analysis task; "use subagents", "parallel implementation", "too complex for one pass".
From superomninpx claudepluginhub wilder1222/superomni --plugin superomniThis skill is limited to using the following tools:
SKILL.md.tmplcode-quality-reviewer-prompt.mdimplementer-prompt.mdspec-reviewer-prompt.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
mkdir -p ~/.omni-skills/sessions
_PROACTIVE=$(~/.claude/skills/superomni/bin/config get proactive 2>/dev/null || echo "true")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
_TEL_START=$(date +%s)
echo "Branch: $_BRANCH | PROACTIVE: $_PROACTIVE"
If PROACTIVE is false: do NOT proactively suggest skills. Only run skills the
user explicitly invokes. If you would have auto-invoked, say:
"I think [skill-name] might help here — want me to run it?" and wait.
Report status using one of these at the end of every skill session:
Pipeline stage order: THINK → PLAN → REVIEW → BUILD → VERIFY → SHIP → REFLECT
REVIEW is the only human gate. All other stages auto-advance on DONE.
| Status | At REVIEW stage | At all other stages |
|---|---|---|
| DONE | STOP — present review summary, wait for user input (Y / N / revision notes) | 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])When the user sends a follow-up message after a completed session, before doing anything else:
ls docs/superomni/specs/spec-*.md docs/superomni/plans/plan-*.md docs/superomni/ .superomni/ 2>/dev/null | head -20
git log --oneline -3 2>/dev/null
To find the latest spec or plan:
_LATEST_SPEC=$(ls docs/superomni/specs/spec-*.md 2>/dev/null | sort | tail -1)
_LATEST_PLAN=$(ls docs/superomni/plans/plan-*.md 2>/dev/null | sort | tail -1)
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: Whenever you present a predefined list of choices (A/B/C, numbered options, etc.), always append a final "Other" option that lets the user describe their own idea:
[last letter/number + 1]) Other — describe your own idea: ___________
When the user selects "Other" and provides their custom text, treat that text as the chosen option and proceed exactly as you would for any other selection. If the custom text is ambiguous, ask one clarifying question before proceeding.
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.
After completing any skill session, run a 3-question self-check before writing the final status:
If any answer is NO, address it before reporting DONE. If it cannot be addressed, report DONE_WITH_CONCERNS and name the gap.
For a full performance evaluation spanning the entire sprint, use the self-improvement skill.
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
~/.claude/skills/superomni/bin/analytics-log "SKILL_NAME" "$_TEL_DUR" "OUTCOME" 2>/dev/null || true
Nothing is sent to external servers. Data is stored only in ~/.omni-skills/analytics/.
Goal: Decompose work across specialized sub-agents, each with a focused context and clear output contract. This is the default working mode for all non-trivial tasks.
Before executing any task directly, ask:
If yes to any → use sub-agents by default. Only skip sub-agents for trivially small tasks (< 5 min, single file, single concern).
Default concurrency target: 5–10 agents per wave.
When breaking down a task:
For tasks with sufficient parallelizable work, this is the difference between a 3-hour task and a 30-minute task.
Anti-pattern (slow): Correct pattern (fast):
Wave 1: 2 agents Wave 1: 8 agents in parallel
Wave 2: 2 agents vs Wave 2: 6 agents in parallel
Wave 3: 2 agents Wave 3: 2 agents
Wave 4: 2 agents
Wave 5: 2 agents
Use sub-agents when:
See implementer-prompt.md — implements a specific, well-scoped feature.
See spec-reviewer-prompt.md — reviews specifications before implementation.
See code-quality-reviewer-prompt.md — reviews code after implementation.
Before spawning any agent, list ALL sub-tasks needed to complete the work:
Full task inventory:
1. [task A] — depends on: none
2. [task B] — depends on: none
3. [task C] — depends on: none
4. [task D] — depends on: A
5. [task E] — depends on: B, C
6. [task F] — depends on: none
...
Wave 1 (parallel): tasks 1, 2, 3, 6 ← all with no dependencies
Wave 2 (parallel): tasks 4, 5 ← unblocked after Wave 1
Before spawning, define:
Use the relevant prompt template from this directory. Fill in:
[TASK] — specific task description[CONTEXT] — relevant background[INPUT FILES] — files to read[OUTPUT CONTRACT] — exact output format required[CONSTRAINTS] — what to avoidSPAWNING WAVE [N] — [N] PARALLEL SUB-AGENTS
════════════════════════════════════════
Wave: [N of W]
Agents: [N] ← target 5-10 for large task sets
Agent 1 ([type]) — [task name]
Input: [what it receives]
Output: [what it must produce]
Scope: [allowed files]
Agent 2 ([type]) — [task name]
...
════════════════════════════════════════
When the sub-agent reports back:
Merge sub-agent outputs carefully:
When using multiple sub-agents simultaneously:
PARALLEL WAVE EXECUTION
═══════════════════════════════════════
Wave 1 (8 agents):
Agent 1: [implementer] — [task A]
Agent 2: [implementer] — [task B]
Agent 3: [spec-reviewer] — [spec for task C]
Agent 4: [implementer] — [task D] (independent of A, B)
Agent 5: [implementer] — [task E]
Agent 6: [code-reviewer] — [review module X]
Agent 7: [implementer] — [task F]
Agent 8: [test-writer] — [tests for module Y]
Synchronization point: After all Wave 1 agents report DONE
Wave 2 tasks (unblocked by Wave 1): [list]
═══════════════════════════════════════
Rule: Only run truly independent tasks in parallel. If task B depends on task A's output, run them sequentially (in different waves).
For task lists with 6+ items, create a formal wave execution plan:
WAVE EXECUTION PLAN
════════════════════════════════════════
Total tasks: [N]
Total waves: [W]
Max wave size: [target: 5-10 agents]
Est. time saved: [sequential time] → [parallel time with waves]
Wave 1 ([N] agents in parallel):
Agent 1 → [Task A]
Agent 2 → [Task B]
Agent 3 → [Task C]
...
Wave 2 ([M] agents in parallel, after Wave 1 complete):
Agent 1 → [Task D]
Agent 2 → [Task E]
...
════════════════════════════════════════
Before dispatching each wave, define a clear output contract for every agent:
Agent 1 — Task A
Input: [what it reads]
Output: [exactly what it produces, file name, format]
Scope: [files it may touch]
NOT allowed: [what to avoid]
Agent 2 — Task B
Input: [what it reads]
Output: [exactly what it produces, file name, format]
Scope: [files it may touch]
NOT allowed: [what to avoid]
Before integrating parallel outputs:
# Check for conflicts in parallel outputs
git diff agent-1/feature agent-2/feature -- shared-file.js
If an agent reports BLOCKED:
After all agents in a wave report DONE:
# Integration verification after each wave
npm test 2>&1 | tail -10
git diff HEAD --stat
For critical decisions, run two agents with the same task and compare outputs:
After the sub-agent session is complete, save the full session record as a Markdown document:
_SA_DATE=$(date +%Y%m%d-%H%M%S)
_SA_BRANCH=$(git branch --show-current 2>/dev/null | tr '/' '-' || echo "unknown")
_SA_FILE="subagent-${_SA_BRANCH}-${_SA_DATE}.md"
mkdir -p docs/superomni/subagents
cat > "docs/superomni/subagents/${_SA_FILE}" << EOF
# Sub-Agent Session: ${_SA_BRANCH}
**Date:** ${_SA_DATE}
**Branch:** ${_SA_BRANCH}
## Agents Dispatched
[List each agent, its type, task, wave, and reported status]
## Wave Summary
[Wave 1: N agents, duration. Wave 2: M agents, duration. Total elapsed vs sequential estimate.]
## Integration Summary
[What was merged, any conflicts resolved, final state]
## Status
[DONE | DONE_WITH_CONCERNS | BLOCKED]
[Any concerns or issues]
EOF
echo "Sub-agent session saved to docs/superomni/subagents/${_SA_FILE}"
Write the full session record (agents dispatched, wave breakdown, outputs, integration summary, and final status, formatted as Markdown) to docs/superomni/subagents/subagent-[branch]-[session]-[date].md. This file serves as the permanent record for the user to audit the sub-agent session.