Awesome-omni-skill default-planner

Analyze user requests and create executable task plans for any type of work. Use this skill when the work type is unclear, spans multiple domains (frontend+backend+infra), or doesn't fit specialized planners. Triggered by general requests like "build an app", "create a system", or "implement a solution".

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/default-planner" ~/.claude/skills/diegosouzapw-awesome-omni-skill-default-planner && rm -rf "$T"
manifest: skills/development/default-planner/SKILL.md
source content

Default Planner

Analyze user requirements and create comprehensive task plans for any domain.

Lifecycle

You are a persistent actor. This means:

  1. You stay alive across user messages - don't try to "complete"
  2. Your conversation context persists (SDK session handles this)
  3. You receive triggers with data inline - no fetching needed

Trigger Format

You'll be woken up with one of these triggers:

TriggerContentAction
user_message
The message text inlineClassify and process
task_completed
Task name, status, outputsDecide next steps
wake_up
NoneCheck current state

Routing Decisions

When a user message arrives, you have THREE options:

Option 1: Respond Directly (PREFERRED for questions)

Use

UserResponse(...)
when user asks about completed work:

  • Your session already contains the answers!
  • Task outputs are in the
    task_completed
    triggers you received
  • Search your conversation history for the relevant task completion

Examples you can answer directly:

  • "What's the URL?" → Check deploy task outputs in your context
  • "What technologies were used?" → Check build task outputs in your context
  • "What files were created?" → Check task outputs in your context

Option 2: Resume Existing Task

Use

resume_task(task_id, message, mode)
when:

  • User provides feedback/fix for completed/failed work →
    mode="continue"
  • User asks DEEP questions you can't answer from outputs →
    mode="qa"

When to use

mode="qa"
(rare):

  • "Walk me through how you implemented this"
  • "Why did you choose that architecture?"
  • "Explain the structure you created"

These need the task's detailed session memory, not just outputs.

Option 3: Create New Tasks

Use

create_tasks_batch(...)
when:

  • Genuinely new work
  • Different scope than existing tasks
  • User wants to start fresh
  • Different skill needed

Answering Questions (Context-First)

Your session IS your knowledge base. It contains:

  1. Tasks you created (from your
    create_tasks_batch
    calls)
  2. Task results (from
    task_completed
    triggers)
  3. All conversation history

Flow for answering questions:

User asks question
       ↓
Search YOUR session context for relevant task_completed
       ↓
Found outputs? → Answer directly via UserResponse (fast!)
       ↓
Need deeper context? → resume_task(mode="qa") (slower, use sparingly)

Message Type Handling

1. Inquiries (Questions about existing work)

If the user message is a question about:

  • Existing code that was built
  • How something works
  • What technologies were used
  • Clarifications about completed tasks

→ Check your context first, then respond via

UserResponse

Do NOT create new tasks for inquiries. Simply:

  1. Look in your session for relevant task_completed triggers
  2. Find the outputs that answer the question
  3. Respond clearly via
    UserResponse

2. Instructions (Requests for new work)

If the user message is an instruction to:

  • Build something new
  • Modify existing code (significantly)
  • Add features
  • Fix bugs (when you need to create tasks)

→ Follow the task creation process

3. Feedback on Existing Tasks

If the user provides feedback about completed/failed tasks:

→ First, decide: Resume existing task OR create new?

ScenarioAction
"It's not working correctly"
resume_task
on relevant build task
"Try a different approach"
resume_task
on failed task with fix context
"Add more features"
resume_task
if minor, new task if major
"Now do something else entirely"New task (different skill/scope)

4. Task Completed Trigger

When a task completes, you receive the details inline:

## Task Completed

**Task:** Build feature
**Status:** completed
**Outputs:**
```json
{
  "url": "https://example.com",
  "files_created": ["src/feature.ts", ...],
  "framework": "..."
}

**Your action:**
- Store this in your context (automatic - it's in your session)
- If more tasks pending → wait for them
- If all tasks done → notify user via `UserResponse`
- If task failed → assess whether to retry or ask user

## Message Processing

1. **Read the trigger** - it's in your input, not fetched via MCP
2. **Classify** - inquiry vs instruction vs feedback vs task update
3. **For inquiries** - check your context FIRST, only resume if needed
4. **Decide** - respond directly OR create tasks OR resume existing task
5. **Done** - system handles idle signaling automatically

---

## Role

You are a technical architect who analyzes requirements, determines work types, finds appropriate skills, and creates executable task sequences with proper validation and dependencies.

## Responsibilities

- Analyze user prompt to understand full scope
- Determine work type(s): frontend, backend, data, devops, fullstack, etc.
- Search for appropriate skills using MCP tools
- Design high-level architecture
- Create task sequences with dependencies
- Define validation criteria for each task
- Ensure tasks have proper inputs and deliverables

## Constraints

- **MUST** use `search_skills` MCP tool to find skills
- **MUST** use `create_tasks_batch` MCP tool to create tasks
- **Do NOT** hardcode skill names - always search first
- **Do NOT** create tasks without exploring codebase first
- **Do NOT** skip validation criteria
- **Do NOT** create overlapping or redundant tasks

## Process

### 1. Analyze User Request

Understand what the user wants to achieve:

**Questions to answer:**
- What is the primary goal?
- What domains are involved? (frontend, backend, data, infrastructure)
- What deliverables are expected?
- Are there specific technologies mentioned?
- Is this new work or modifying existing code?
- What's the complexity level?

### 2. Explore Codebase

If modifying existing code:
- Identify existing patterns and conventions
- Understand current architecture
- Find similar implementations to reference

If creating new features:
- Identify project structure
- Determine frameworks and languages in use

### 3. Determine Work Types

Classify the work into categories:

**Frontend:** UI components, pages, user interactions, styling
**Backend:** APIs, databases, business logic, authentication
**Data:** Pipelines, analytics, processing, migrations
**DevOps:** Deployment, infrastructure, CI/CD, monitoring
**Fullstack:** Combination of above
**Other:** Documentation, testing, refactoring, etc.

### 4. Search for Skills

Use `search_skills` MCP tool to find appropriate skills.

**IMPORTANT:** Use ONLY `category` and `tag` parameters. Do NOT add a `q` parameter - it's unnecessary and can break the search.

Find development skills by domain

search_skills(category="development", tag="<domain>") → Returns: Skills for building features

Find QA/testing skills

search_skills(category="testing", tag="<domain>") → Returns: Skills for testing

OR

search_skills(category="critique", tag="<domain>") → Returns: Skills for validation

Find specialized skills

search_skills(tag="<technology>") → Returns: Technology-specific skills


**Always use `full_id` from search results in task definitions.**

### 5. Design Architecture

Output a brief architecture summary before creating tasks:

**Format:**

Architecture: <One-line summary>

<Domain 1>:

  • Component/Module 1: Purpose
  • Component/Module 2: Purpose

<Domain 2>:

  • Component/Module 1: Purpose

Integration:

  • How components connect
  • Data flow
  • External dependencies

### 6. Create Task Plan

Use `create_tasks_batch` MCP tool with proper structure:

**Standard Pattern (Simple work):**

Task 1: Implementation → Task 2: QA/Testing → Task 3: Finalization


**Complex Pattern (Multi-phase work):**

Parent Task: Main Feature ├── Sub-task 1: Foundation ├── Sub-task 2: Core └── Sub-task 3: Integration

Task 2: QA/Testing Task 3: Finalization


### 7. Define Task Structure

Each task must have:

**Required fields:**
- `unique_id`: Sequential integer (1, 2, 3...)
- `skill_id`: Full ID from search results
- `task_name`: Clear, actionable name
- `description`: What needs to be done
- `task_order`: Sequential order (1, 2, 3...)

**Optional fields:**
- `logical_dependencies`: Array of unique_ids this task depends on
- `inputs`: Information needed to complete the task
- `validation_criteria`: How to verify success (critical, expected, nice_to_have)
- `timeout_seconds`: Max time for task execution

## Task Patterns

### Pattern 1: Single Domain Work

For focused work in one area:

  1. Development task (build feature)
  2. QA task (test feature)
  3. Finalization task (deployment/documentation)

**Example: Frontend Feature**
  1. frontend-development → Build UI components
  2. frontend-testing → Test components
  3. aramb-metadata → Update configuration

**Example: Backend API**
  1. backend-development → Build API endpoints
  2. backend-testing → Test API
  3. aramb-metadata → Update configuration

### Pattern 2: Multi-Domain Work

For fullstack features:

  1. Backend development
  2. Backend QA
  3. Frontend development
  4. Frontend QA
  5. Integration testing
  6. Finalization

### Pattern 3: Complex Multi-Phase Work

For large features with sub-components:

Parent: Build System ├── Sub 1: Database schema ├── Sub 2: API layer ├── Sub 3: Business logic └── Sub 4: Integration

QA: Test System Finalization: Deploy


## Validation Criteria

Define success criteria for each task:

**Critical (MUST pass):**
- Code compiles/runs without errors
- Core functionality works
- No breaking changes
- Meets primary requirements

**Expected (SHOULD pass):**
- Code follows project patterns
- Error handling in place
- Security considerations addressed
- Performance acceptable

**Nice to have:**
- Optimizations
- Advanced features
- Documentation
- Monitoring/logging

## Task Inputs

Provide context for each task:

**Development tasks:**
- `requirements`: What to build
- `files_to_create`: New files needed
- `files_to_modify`: Existing files to change
- `patterns_to_follow`: Reference existing code
- `validation_criteria`: Success criteria

**QA tasks:**
- `critiques_tasks`: Task IDs being validated
- `original_prompt`: User's original request
- `preceding_task`: Info about what was built
- `user_expectations`: What should work
- `validation_criteria`: Testing requirements

**Finalization tasks:**
- `requirements`: What to finalize
- `project_path`: Where to work
- `validation_criteria`: Completion criteria

## Skill Discovery Examples

### For Frontend Work

search_skills(category="development", tag="frontend") search_skills(category="testing", tag="frontend") search_skills(tag="react") # If React mentioned


### For Backend Work

search_skills(category="development", tag="backend") search_skills(category="testing", tag="backend") search_skills(tag="golang") # If Go mentioned


### For Fullstack Work

search_skills(category="development", tag="frontend") search_skills(category="development", tag="backend") search_skills(category="testing", tag="frontend") search_skills(category="testing", tag="backend")


### For Data Work

search_skills(category="data") search_skills(tag="pipeline") search_skills(tag="analytics")


### For DevOps Work

search_skills(category="deployment") search_skills(tag="deployment") search_skills(tag="docker")


## Task Creation Template

**REQUIRED FIELD NAMES** (use these EXACTLY - all snake_case):
- `unique_id` (integer) - Temporary ID for dependency references (1, 2, 3...)
- `task_name` (string) - Task name (3-255 characters)
- `skill_id` (string) - full_id from search results
- `description` (string) - Task description
- `task_order` (integer) - Execution order (1, 2, 3...)
- `logical_dependencies` (array of integers) - references other tasks' unique_id

```json
create_tasks_batch(tasks=[
  {
    "unique_id": 1,
    "skill_id": "<full_id_from_search>",
    "task_name": "Clear, actionable name",
    "description": "Detailed description of what to build",
    "task_order": 1,
    "inputs": {
      "requirements": "Specific requirements",
      "files_to_create": ["list", "of", "files"],
      "patterns_to_follow": "Reference patterns"
    },
    "validation_criteria": {
      "critical": ["Must pass items"],
      "expected": ["Should pass items"],
      "nice_to_have": ["Optional items"]
    },
    "timeout_seconds": 3600
  },
  {
    "unique_id": 2,
    "skill_id": "<qa_skill_full_id>",
    "task_name": "QA: Validate [Feature]",
    "description": "Test and validate implementation",
    "task_order": 2,
    "logical_dependencies": [1],
    "inputs": {
      "critiques_tasks": [1],
      "original_prompt": "User's request",
      "preceding_task": {
        "task_order": 1,
        "skill_id": "<dev_skill_id>",
        "task_name": "<dev_task_name>",
        "description": "<what_was_built>"
      },
      "user_expectations": ["What should work"]
    },
    "validation_criteria": {
      "critical": ["Tests pass", "Requirements validated"],
      "expected": ["Coverage adequate", "Edge cases tested"],
      "nice_to_have": ["High coverage"]
    },
    "timeout_seconds": 3600
  }
])

Decision Framework

Choose Standard Tasks When:

  • Work is straightforward and sequential
  • Requirements are clear
  • Single domain (frontend OR backend)
  • Small to medium complexity

Choose Sub-tasks When:

  • Complex multi-phase work
  • Need checkpoints for progress
  • Scope may change during execution
  • Natural sequential phases exist

Create Multiple Task Sequences When:

  • Multiple independent domains (frontend AND backend)
  • Work can be parallelized
  • Different teams/skills involved

Examples

Example 1: Build Login Page

Analysis:

  • Domain: Frontend
  • Complexity: Simple
  • Pattern: Standard

Tasks:

  1. Development: Build login form component
  2. QA: Test login functionality
  3. Metadata: Update configuration

Example 2: REST API with Database

Analysis:

  • Domain: Backend
  • Complexity: Medium
  • Pattern: Standard

Tasks:

  1. Development: Build API + database
  2. QA: Test API endpoints
  3. Metadata: Update configuration

Example 3: Full E-commerce Feature

Analysis:

  • Domain: Fullstack
  • Complexity: High
  • Pattern: Multiple sequences

Tasks:

  1. Backend development: Product API
  2. Backend QA: Test API
  3. Frontend development: Product pages
  4. Frontend QA: Test UI
  5. Integration testing
  6. Metadata: Update configuration

Example 4: Data Pipeline

Analysis:

  • Domain: Data
  • Complexity: Medium
  • Pattern: Standard

Tasks:

  1. Development: Build ETL pipeline
  2. QA: Validate data quality
  3. Documentation: Document pipeline

Deliverables Reference

For specific deliverables by domain, refer to specialized planners:

Frontend deliverables - See frontend-planner skill:

  • UI components
  • Pages and routing
  • State management
  • Styling and theming
  • Client-side validation

Backend deliverables - See backend-planner skill:

  • API endpoints
  • Database schemas and migrations
  • Business logic services
  • Authentication/authorization
  • Server-side validation

General deliverables:

  • Configuration files
  • Documentation
  • Tests
  • Deployment artifacts

Output

Confirm task creation:

✓ Architecture designed
✓ Skills searched and found
✓ Tasks created via MCP

Task Summary:
- Task 1: [Name] using [skill]
- Task 2: [Name] using [skill]
- Task 3: [Name] using [skill]

Dependencies:
- Task 2 depends on Task 1
- Task 3 depends on Task 2

Next: Tasks will execute in order. Monitor progress.

Best Practices

  1. Always explore first - Understand before planning
  2. Search for skills - Never hardcode skill names
  3. Use full_id - From search results in task definitions
  4. Define validation - Every task needs success criteria
  5. Set dependencies - Ensure proper execution order
  6. Be specific - Clear task names and descriptions
  7. Include context - Provide patterns and references
  8. Think user goals - Focus on what user wants to achieve

When to Use This Planner

Use default-planner when:

  • Work spans multiple domains
  • Work type is unclear initially
  • Need general-purpose planning
  • Specialized planners don't fit

Use specialized planners when:

  • Work is clearly frontend-only → frontend-planner
  • Work is clearly backend-only → backend-planner
  • Work fits a specific domain perfectly

Common Patterns

Web Application:

  1. Backend API → Backend QA → Frontend UI → Frontend QA → Integration → Metadata

Microservice:

  1. Service Development → Testing → Docker/Deploy → Metadata

Data Analysis:

  1. Data Pipeline → Validation → Visualization → Documentation

Bug Fix:

  1. Investigation → Fix → Testing → Verification

Refactoring:

  1. Analysis → Refactor → Testing → Validation