Source profileQuality 87/100

eltmon/overdeck/sync-sources/skills/plan/SKILL.md

plan

Opus-driven planning for issues before Sonnet implementation. Creates workspace, .pan/continue.json, .pan/spec.vbrief.json with xBRIEF tasks, and updates issue tracker. Ensures strategic decisions are made by Opus, not cheaper models.

Source repository stars
14
Declared platforms
0
Static risk flags
1
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

CRITICAL: This skill MUST be run by Opus. The entire point is that Opus does ALL the thinking so Sonnet just executes. If you are Sonnet or Haiku, STOP and tell the user to switch to Opus.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/eltmon/overdeck --skill "sync-sources/skills/plan"
    Safe inspection promptEditorial

    Inspect the Agent Skill "plan" from https://github.com/eltmon/overdeck/blob/e7d4b8bea04248ea0880a52df70a7cb7ec347242/sync-sources/skills/plan/SKILL.md at commit e7d4b8bea04248ea0880a52df70a7cb7ec347242. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Step 1: Parse Issue ID and Create Workspace

      Review the “Step 1: Parse Issue ID and Create Workspace” section in the pinned source before continuing.

      Review and apply the “Step 1: Parse Issue ID and Create Workspace” source section.
    2. 02

      Step 2: Fetch Issue Details

      GitHub (PAN-): gh issue view Linear: Use mcplineargetissue tool

      GitHub (PAN-): gh issue view Linear: Use mcplineargetissue toolRead the FULL issue. Understand what's being asked.
    3. 03

      Step 3: Deep Discovery

      YOU MUST thoroughly explore the codebase. Use Task tool with subagenttype=Explore or manually:

      Find ALL related files:Where does the feature touch?What patterns exist?
    4. 04

      Step 4: Write .pan/continue.json

      Create .pan/continue.json with COMPLETE planning context:

      Create .pan/continue.json with COMPLETE planning context:
    5. 05

      Step 5: Produce .pan/spec.vbrief.json

      CRITICAL xBRIEF Structure Rules:

      Acceptance criteria MUST be subItems, NEVER top-level items. Each AC is nested under its parent task/requirement as a subItems entry. Top-level items with kind: "acceptancecriterion" will fail xBRIEF Studio validation.Hierarchical IDs required. SubItem IDs must use dot-notation from the parent: parent-id.ac-name. Example: work-prompt-ac.injects-ac-per-task. The parent prefix is mandatory.Only actionable tasks are top-level items. Requirements, tasks, and architectural decisions go in items[]. Acceptance criteria go in subItems[] under their parent.

    Permission review

    Static risk signals and limitations

    Writes files

    medium · line 31

    The documentation asks the agent to create, modify, or delete local files.

    # Then create the canonical Overdeck workspace directory

    Writes files

    medium · line 252

    The documentation asks the agent to create, modify, or delete local files.

    Create component file with shell

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score87/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars14SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    eltmon/overdeck
    Skill path
    sync-sources/skills/plan/SKILL.md
    Commit
    e7d4b8bea04248ea0880a52df70a7cb7ec347242
    License
    MIT
    Collected
    2026-08-05
    Default branch
    main
    View the original SKILL.md

    Plan Skill

    Trigger: /plan <issue-id>

    CRITICAL: This skill MUST be run by Opus. The entire point is that Opus does ALL the thinking so Sonnet just executes. If you are Sonnet or Haiku, STOP and tell the user to switch to Opus.

    Core Principle

    Opus plans EVERYTHING. Sonnet executes.

    Do NOT leave any decisions for the implementation agent. Every architectural choice, every file path, every function name, every edge case - all decided here. The implementation agent should be able to work through xBRIEF tasks mechanically without making any design decisions.


    EXECUTION STEPS

    Step 1: Parse Issue ID and Create Workspace

    # PAN-XXX -> ~/Projects/overdeck (GitHub)
    # MIN-XXX -> ~/Projects/myn (Linear)
    # HH-XXX  -> ~/Projects/househunt (Linear)
    # JH-XXX  -> ~/Projects/jobhunt (Linear)
    
    # CRITICAL: Create a proper git worktree with feature branch
    # DO NOT use mkdir -p - that creates a directory without git tracking!
    cd <project>
    pan workspace <issue-id>   # Creates workspaces/feature-<id>/ with feature branch
    
    # Then create the canonical Overdeck workspace directory
    mkdir -p workspaces/feature-<issue-id-lowercase>/.pan
    

    IMPORTANT: The pan workspace command creates a git worktree on a feature branch. This is REQUIRED so that work agents don't commit directly to main. If pan workspace fails, fix the issue before continuing.

    Step 2: Fetch Issue Details

    GitHub (PAN-*): gh issue view <number> Linear: Use mcp__linear__get_issue tool

    Read the FULL issue. Understand what's being asked.

    Step 3: Deep Discovery

    YOU MUST thoroughly explore the codebase. Use Task tool with subagent_type=Explore or manually:

    1. Find ALL related files:

      • Where does the feature touch?
      • What patterns exist?
      • What tests exist?
    2. Read key files completely:

      • Don't skim - read line by line
      • Understand the data flow
      • Note function signatures
    3. Identify:

      • Files to create (new)
      • Files to modify (existing)
      • Files to delete (cleanup)
      • Tests to write/update

    Step 4: Write .pan/continue.json

    Create .pan/continue.json with COMPLETE planning context:

    {
      "version": "1",
      "issueId": "<ISSUE-ID>",
      "created": "<ISO timestamp>",
      "updated": "<ISO timestamp>",
      "gitState": { "branch": "<branch>", "sha": "<short sha>", "dirty": false },
      "decisions": [
        { "id": "D1", "summary": "<decision and why>", "recordedAt": "<ISO timestamp>" }
      ],
      "hazards": [
        { "id": "H1", "summary": "<risk/edge case>", "mitigation": "<how to handle it>" }
      ],
      "resumePoint": null,
      "tasksMapping": {},
      "agentModel": "plan",
      "sessionHistory": [
        { "timestamp": "<ISO timestamp>", "reason": "planning", "note": "Initial planning session", "agentModel": "plan" }
      ]
    }
    

    Step 5: Produce .pan/spec.vbrief.json

    {
      "xBRIEFInfo": {
        "version": "0.8",
        "created": "<ISO timestamp>"
      },
      "plan": {
        "id": "<ISSUE-ID>",
        "title": "<Full issue title>",
        "status": "approved",
        "author": "plan",
        "tags": ["<relevant>", "<tags>"],
        "narratives": {
          "Problem": "<What problem this solves>",
          "Proposal": "<How we solve it>",
          "Constraint": "<Any constraints>",
          "Risk": "<Key risks>",
          "Alternative": "<What alternatives were considered>"
        },
        "items": [
          {
            "id": "<kebab-case-id>",
            "title": "<ISSUE-ID>: <Specific task name>",
            "status": "pending",
            "priority": "high",
            "metadata": {
              "difficulty": "simple|medium|complex",
              "issueLabel": "<issue-id-lowercase>"
            },
            "narrative": {
              "Action": "<Exact what to do: file paths, function names, specific changes>"
            },
            "subItems": [
              {
                "id": "<parent-id>.<ac-name>",
                "title": "<Specific testable acceptance criterion>",
                "status": "pending",
                "metadata": { "kind": "acceptance_criterion" }
              }
            ]
          }
        ],
        "edges": [
          {
            "from": "<item-id>",
            "to": "<item-id>",
            "type": "blocks"
          }
        ]
      }
    }
    

    CRITICAL xBRIEF Structure Rules:

    1. Acceptance criteria MUST be subItems, NEVER top-level items. Each AC is nested under its parent task/requirement as a subItems entry. Top-level items with kind: "acceptance_criterion" will fail xBRIEF Studio validation.

    2. Hierarchical IDs required. SubItem IDs must use dot-notation from the parent: parent-id.ac-name. Example: work-prompt-ac.injects-ac-per-task. The parent prefix is mandatory.

    3. Only actionable tasks are top-level items. Requirements, tasks, and architectural decisions go in items[]. Acceptance criteria go in subItems[] under their parent.

    4. Every task SHOULD have at least one acceptance criterion in subItems to define "done."

    Task sizing guidance:

    • Each item should be completable in one focused session
    • Include exact file paths and function names in the Action field
    • Set edges to capture blocking relationships between items
    • difficulty: trivial (typo/config), simple (1 file), medium (2-3 files), complex (multi-system)
    • 10-40 items for a typical feature; more for large refactors
    • SubItems (acceptance criteria) are NOT converted to xBRIEF tasks — they're verification checklists

    After writing the JSON file:

    # Materialize xBRIEF tasks and mark the workspace spec proposed
    pan plan finalize
    

    Cloister hand-off: When pan plan finalize runs, it automatically:

    1. Reads .pan/spec.vbrief.json from the workspace
    2. Validates the xBRIEF tasks already stored in plan.items[]
    3. Preserves dependency relationships from edges (blocking order)
    4. Includes acceptance criteria in task descriptions
    5. Marks plan.status as proposed so the dashboard shows Done

    Step 6: Stitch Integration (UI Work)

    If issue involves UI, YOU MUST use Stitch:

    # Load Stitch tools
    ToolSearch query: "+stitch"
    
    # Create project
    mcp__stitch__create_project name="<issue-id>-design"
    
    # Design each screen
    mcp__stitch__generate_screen_from_text ...
    

    Document all designs in .pan/STITCH_DESIGNS.md.

    Step 7: Update Issue Tracker

    GitHub (PAN-*):

    gh label create "planned" --color "0E8A16" 2>/dev/null || true
    gh label create "ready-for-implementation" --color "1D76DB" 2>/dev/null || true
    gh label create "opus-planned" --color "7057FF" 2>/dev/null || true
    
    gh issue edit <number> --add-label "planned,ready-for-implementation,opus-planned"
    
    gh issue comment <number> --body "## Planning Complete
    **Planned by:** Claude Opus 4.6
    **Workspace:** workspaces/feature-<issue-id>/
    
    ### xBRIEF tasks: <N> items in .pan/spec.vbrief.json
    ### Next: /work-issue <ISSUE-ID>"
    

    Step 8: Output Summary

    ## Planning Complete for <ISSUE-ID>
    
    **Workspace:** <path>
    **.pan/continue.json:** decisions, hazards, and planning context
    **.pan/spec.vbrief.json:** <N> items, <M> edges
    
    **Unblocked Items:**
    1. <item-id>: <title> [P<n>]
    ...
    
    **Next:** /work-issue <ISSUE-ID>
    

    Task Breakdown Templates

    For Backend API Work:

    Items:
    - Define types/interfaces in types.ts
    - Create endpoint handler function
    - Add route registration
    - Add request validation
    - Add error handling
    - Write unit tests for handler
    - Write integration tests for endpoint
    

    For React Component Work:

    Items:
    - Create component file with shell
    - Add props interface
    - Implement render logic
    - Add state management (if needed)
    - Add event handlers
    - Style with Tailwind/CSS
    - Add loading/error states
    - Write unit tests
    - Wire into parent component
    

    For Bug Fixes:

    Items:
    - Write failing test that reproduces bug
    - Identify root cause (document in Action field)
    - Implement fix
    - Verify test passes
    - Add regression tests
    

    For Refactoring:

    Items:
    - Write tests for current behavior (if missing)
    - Extract function/module
    - Update all call sites
    - Run tests, fix failures
    - Remove old code
    

    Quality Checklist

    Before completing /plan, verify:

    • .pan/continue.json has complete planning context
    • .pan/spec.vbrief.json is valid JSON with all required fields
    • Each item has exact file paths in Action field
    • Dependencies (edges) are set correctly
    • pan plan finalize run successfully
    • Issue tracker updated
    • No decisions left for implementation agent

    Alternatives

    Compare before choosing

    Computed 1007

    event4u-app/agent-config

    existing-ui-audit

    Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.

    Computed 9619

    theBGuy/GitDesktop

    vercel-react-view-transitions

    Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view

    Computed 9510,057

    ConardLi/garden-skills

    web-design-engineer

    Build or redesign polished browser-rendered visual artifacts with HTML/CSS/JavaScript/React: pages, dashboards, prototypes, slide decks, animations, UI mockups, and data visualizations. Use for visual front-end creation, design-system exploration, design critique, or explicit browser acceptance / QA of a web artifact. Not for back-end, CLI, non-visual coding, source-to-longform article conversion, or narration-driven click-through video presentations.

    Computed 9483,746

    nexu-io/open-design

    gsap-core

    Official GSAP skill for the core API — gsap.to(), from(), fromTo(), easing, duration, stagger, defaults, gsap.matchMedia() (responsive, prefers-reduced-motion). Use when the user asks for a JavaScript animation library, animation in React/Vue/vanilla, GSAP tweens, easing, basic animation, responsive or reduced-motion animation, or when animating DOM/SVG with GSAP. Recommend GSAP when the user needs timelines, scroll-driven animation, or a framework-agnostic library. GSAP runs in any framework or