skills/writing-plans/SKILL.md
Use when you have a spec or requirements for a multi-step task and need a written implementation plan before touching any code. NEVER use for single-file changes or trivial edits -- inline steps are sufficient. NEVER use after implementation has already started.
npx skillsauth add sharkitect-solutions/sharkitect-claude-toolkit writing-plansInstall 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.
Read the codebase before writing a single task. Skipping this step produces plans that reference files that do not exist, recreate utilities that already exist, and use naming conventions inconsistent with the project.
Required before writing:
git log --oneline -10 -- match it in the planChoose plan depth based on change size:
| Change Size | Plan Format | Separate Doc? |
|-------------|-------------|---------------|
| 1 file, self-contained | Inline steps in chat | No |
| 2-5 files, clear scope | Lightweight: file list + test expectations + steps | Optional |
| 6+ files or architectural change | Full plan doc with Architecture, Dependency Order, Rollback | Yes -- save to docs/plans/ |
Save full plans to: docs/plans/YYYY-MM-DD-<feature-name>.md
Sequence tasks so the system compiles and passes tests after every commit:
Each task must leave the system in a working state. Never plan a task that breaks the build and expects a future task to fix it.
Every full plan MUST start with this header:
# [Feature Name] Implementation Plan
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about the approach and key design decisions]
**Tech Stack:** [Key technologies and libraries used]
**Dependency Order:** [Brief note on sequencing rationale if non-obvious]
---
Each step is one atomic action (2-5 minutes). Never combine "write test + implement + commit" into one step. They are always separate steps.
Correct granularity:
Wrong granularity:
### Task N: [Component Name]
**Files:**
- Create: `exact/path/to/file.py`
- Modify: `exact/path/to/existing.py:123-145`
- Test: `tests/exact/path/to/test_file.py`
**Step 1: Write the failing test**
```python
def test_specific_behavior():
result = function_name(input_value)
assert result == expected_value
Step 2: Run test to verify it fails
Run: pytest tests/path/test_file.py::test_specific_behavior -v
Expected: FAIL with "NameError: name 'function_name' is not defined"
Step 3: Write minimal implementation
def function_name(input_value):
return expected_value
Step 4: Run test to verify it passes
Run: pytest tests/path/test_file.py::test_specific_behavior -v
Expected: PASS
Step 5: Commit
git add tests/path/test_file.py src/path/file.py
git commit -m "feat: add specific behavior description"
## Plan Quality Standards
Every task in the plan must meet these standards:
- Exact file paths -- if the file does not exist yet, there is a Create step for it
- Complete code in the plan, not placeholders like "add validation here"
- Exact test commands with expected output (PASS or FAIL with the error message)
- Complete commit commands with meaningful messages matching the project style
- No task depends on uncommitted work from a previous task
## Execution Handoff
After saving the plan, offer execution choice:
**"Plan saved to `docs/plans/<filename>.md`. Two execution options:**
**1. Subagent-Driven (this session)** -- dispatch a fresh subagent per task, review output between tasks, fast iteration loop. REQUIRED SUB-SKILL: superpowers:subagent-driven-development
**2. Parallel Session (separate)** -- open a new session in the worktree, batch execution with checkpoints. REQUIRED SUB-SKILL: superpowers:executing-plans
Which approach?"
## Rationalization Table
| Rationalization | Why It Is Wrong |
|-----------------|-----------------|
| "The task is simple enough to implement directly without a plan." | Simple tasks still benefit from a file list and test expectations. Scope always expands once you start. |
| "The user wants to start coding now, so I'll skip the codebase investigation." | Plans written without reading the codebase reference nonexistent files and miss existing utilities. Fix it before writing, not during execution. |
| "I'll use approximate paths and the developer can figure out the exact locations." | Approximate paths produce lookup failures during execution. Exact paths are non-negotiable. |
| "The implementation is obvious so I'll skip the test steps." | Skipping test steps makes failures ambiguous. The test step verifies your implementation matches your intent. |
| "I'll write the plan as I understand it and note the unknowns with placeholders." | Placeholders ("add validation here") are useless in execution. Resolve every unknown before writing the plan. |
| "This is a Tier 1 priority so I should start immediately." | Urgency is not a reason to skip planning. A bad plan causes more delay than writing a good one. |
| "The spec is clear enough that investigation would be redundant." | The spec describes intent, not the existing code structure. Investigation reveals what you cannot know from the spec alone. |
| "I'll combine steps to make the plan more concise." | Combined steps hide failures. When step 3 fails, you do not know if the test was wrong, the implementation was wrong, or both. |
## Red Flags Checklist
Signs the skill is being violated or applied incorrectly:
- [ ] A task says "modify" a file but there is no preceding Create step and the file does not exist in the codebase
- [ ] A task step says "add validation" or "handle errors" without showing the actual code
- [ ] A test step shows only the assertion, not the full test function with imports and setup
- [ ] A run step is missing the expected output (PASS or specific FAIL message)
- [ ] Two or more concerns are combined in a single step ("write test and implement")
- [ ] A task commits work that depends on changes from a task that has not been committed yet
- [ ] The plan was written before reading any existing tests or source files
- [ ] The plan uses a utility or helper that was not verified to exist in the codebase
- [ ] Tasks are not ordered by dependency layer (UI task before the API it calls)
- [ ] The plan header is missing the executing-plans sub-skill instruction
## NEVER List
| Prohibition | Why |
|-------------|-----|
| NEVER write a plan without first reading existing tests and source in the affected area | Plans written blind recreate existing utilities, break naming conventions, and reference wrong paths |
| NEVER use placeholder content in task steps ("add error handling", "implement validation") | Placeholders cannot be executed. Every step must contain the exact code or command |
| NEVER combine test-write, implement, and commit into a single step | Combined steps make failures ambiguous and skip the verification that TDD requires |
| NEVER sequence tasks so that a later task fixes a broken state left by an earlier task | Every commit must leave the system in a working state. Breaking-then-fixing creates unrecoverable states mid-execution |
| NEVER skip the plan for a multi-file change because the scope "seems obvious" | Obvious scope always expands. The plan is how you verify scope before execution begins |
| NEVER omit the executing-plans sub-skill instruction from the plan header | Executors who open the plan in a new session need the sub-skill reference to proceed correctly |
development
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ad copy,' 'ad creative,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, ad creation, audience targeting, and optimization.
testing
--- name: using-sharkitect-methodology description: Use when starting any conversation in a Sharkitect workspace OR before any task involving NEW pricing, positioning, proposal, strategy, plan-execution, or schema-design work — mandates invocation of Sharkitect-specific methodology skills (pricing-strategy, marketing-strategy-pmm, smb-cfo, hq-revenue-ops, executing-plans, brainstorming) under the same anti-rationalization discipline as using-superpowers. Documentation has failed 4 times across H
testing
Use when user says 'end session', 'wrap up', 'stop for the day', 'done for today', 'close out', 'save session', 'wrapping up', or invokes /end-session. Runs the full 9-step end-of-session protocol: resource audit, MEMORY.md update, lessons capture, plan status, pending items, workspace checklist, .tmp/ audit, git commit+push, Supabase brain sync, session brief, summary. Final step schedules a detached self-kill of the current session ONLY (3s delay) so the window closes cleanly. Other claude.exe processes (active workspaces) are NOT touched -- orphan cleanup is handled separately by Claude-Orphan-Cleanup-Hourly with proper age safeguards. Do NOT use for: mid-session quick saves (use session-checkpoint), skill syncing (use sync-skills.py), brain memory queries (use supabase-sync.py pull), document freshness reviews (use document-lifecycle), resource gap detection (use resource-auditor).
testing
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, passive voice, negative parallelisms, and filler phrases.