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.
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
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
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.
npx skills add https://github.com/eltmon/overdeck --skill "sync-sources/skills/plan"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
- 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. - 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. - 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? - 04
Step 4: Write .pan/continue.json
Create .pan/continue.json with COMPLETE planning context:
Create .pan/continue.json with COMPLETE planning context: - 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
The documentation asks the agent to create, modify, or delete local files.
# Then create the canonical Overdeck workspace directoryWrites files
The documentation asks the agent to create, modify, or delete local files.
Create component file with shellEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 87/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 14 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated 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:
-
Find ALL related files:
- Where does the feature touch?
- What patterns exist?
- What tests exist?
-
Read key files completely:
- Don't skim - read line by line
- Understand the data flow
- Note function signatures
-
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:
-
Acceptance criteria MUST be subItems, NEVER top-level items. Each AC is nested under its parent task/requirement as a
subItemsentry. Top-level items withkind: "acceptance_criterion"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 insubItems[]under their parent. -
Every task SHOULD have at least one acceptance criterion in
subItemsto 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
edgesto 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:
- Reads
.pan/spec.vbrief.jsonfrom the workspace - Validates the xBRIEF tasks already stored in
plan.items[] - Preserves dependency relationships from
edges(blocking order) - Includes acceptance criteria in task descriptions
- Marks
plan.statusasproposedso 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.jsonhas complete planning context -
.pan/spec.vbrief.jsonis valid JSON with all required fields - Each item has exact file paths in Action field
- Dependencies (edges) are set correctly
-
pan plan finalizerun successfully - Issue tracker updated
- No decisions left for implementation agent
Alternatives
Compare before choosing
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.
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
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.
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