writing-plans — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited writing-plans (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Core Principle: Design describes WHAT to build. Plans describe HOW to build it.
Having an approved design doesn't mean you skip planning — it means planning becomes easier because you know what you're building.
✅ Use when:
❌ Don't use when:
brainstorming skill first)executing-plans skill)Before writing the plan, discuss approach with the user:
Questions to ask:
Why this matters:
Don't assume. Even if you have preferences, the user might have different context (CI/CD setup, team conventions, time constraints).
Each task should take 2-5 minutes to complete.
Task structure:
### Task N: [Clear, actionable title]
**Files:**
- Create: path/to/new/file.ext
- Edit: path/to/existing/file.ext
- Delete: path/to/old/file.ext
**Steps:**
1. [Specific action with exact commands/code]
2. [Next action]
3. [etc.]
**Verification:**
- [ ] [How to verify task succeeded]
- [ ] [Tests pass / output matches expected]
**Estimated time:** 2-5 minutesIf TDD approach agreed:
### Task 1: Write failing test for add_todo
**Files:**
- Create: tests/test_todo.py
**Steps:**
1. Create test file
2. Import todo module (doesn't exist yet)
3. Write test_add_todo that calls add_todo("Buy milk")
4. Assert todo appears in list
**Verification:**
- [ ] Test fails (module doesn't exist yet - expected!)
- [ ] pytest runs without errors
**Estimated time:** 3 minutesIf code-first approach agreed:
### Task 1: Implement add_todo function
**Files:**
- Create: src/todo.py
**Steps:**
1. Create src/todo.py
2. Define add_todo(text) function
3. Load/save JSON from ~/.todos.json
4. Append new todo with id, text, done=false
**Verification:**
- [ ] Function defined
- [ ] Manual test: add_todo("test") creates file
- [ ] JSON structure is valid
**Estimated time:** 4 minutesSave to: workspace/docs/plans/YYYY-MM-DD-<topic>-plan.md
Plan template:
# [Project Name] - Implementation Plan
**Date:** YYYY-MM-DD
**Estimated total time:** [Sum of task times]
**Approach:** [TDD / Code-first / Hybrid]
**Commit strategy:** [Per task / Per feature / At end]
---
## Task Breakdown
[All tasks from Step 2]
---
## Dependencies
- [Required libraries/tools]
- [Environment setup needed]
---
## Success Criteria
- [ ] [All tests pass]
- [ ] [Feature works as designed]
- [ ] [Documentation updated]
- [ ] [Code committed]Example filename: workspace/docs/plans/2026-02-25-todo-cli-plan.md
Once plan is written:
Plan complete and saved. Invoking executing-plans skill to begin implementation.Then use the executing-plans skill to work through the tasks in batches.
Your brain will try to skip planning. Here's what it will say, and why you shouldn't listen:
| Excuse | Why It's Tempting | Reality | Counter |
|---|---|---|---|
| "Design is detailed enough" | Design has all the details | Design describes WHAT to build, not HOW to build it step-by-step | Plans break work into executable tasks with verification |
| "User trusts me to figure it out" | Feels good to have autonomy | Trust doesn't mean "skip best practices" | Trust means following proven processes that prevent bugs |
| "Planning is overhead" | Feels like wasted time when you could be coding | 5 min planning prevents hours of debugging and rework | Written plans catch dependency issues before coding |
| "I can plan as I go" | Keeps you flexible | Mental plans disappear if you're interrupted or error out | Written plans persist, can be resumed, and can be reviewed |
| "Design already approved" | Architecture decisions are done | Approval was for WHAT, not implementation steps | Plan translates design into actionable tasks |
| "It's a simple change" | Looks trivial | "Simple" changes often have hidden complexity | 3 minutes writing tasks vs 30 minutes debugging surprises |
| "I'm in a hurry" | Time pressure feels real | Rushing causes mistakes that take longer to fix | Slow down to speed up |
| "User said 'just start'" | Sounds like permission | User wants results, not chaos | Starting with a plan IS starting (smarter starting) |
Remember: If the whole project takes < 5 minutes total, skip the plan. If it's > 5 minutes, the plan will save you time.
If you catch yourself thinking:
If you catch yourself doing:
If the user says:
Before planning, check:
MEMORY.md - Long-term preferences (does user prefer TDD? specific tools?)USER.md - User's development stylememory/YYYY-MM-DD.md - Recent conversations about this projectThis helps you ask better methodology questions.
workspace/docs/plans/YYYY-MM-DD-<topic>-plan.mdworkspace/src/, not /data/workspace/src/If you're a subagent:
Don't auto-invoke executing-plans as a subagent — let the main agent decide.
User: "Here's the approved design for a markdown parser. Build it."
You: "Great! A few questions before I write the plan:
User: "Yes TDD, commit per task, hand-rolled parser."
You: (Writes plan with tasks like)
User: "Here's the spec for a CLI todo app. No TDD needed, just build it."
You: "Got it. How often should I commit? After each function, or at the end?"
User: "Just one commit at the end is fine."
You: (Writes plan with tasks like)
Q: What if the design changes while I'm planning? A: Update the plan. Plans aren't contracts, they're living documents. Better to update the plan than work from an outdated mental model.
Q: What if I realize during planning that the design has a flaw? A: Stop planning. Raise the issue. Go back to brainstorming if needed. Plans should implement good designs, not paper over bad ones.
Q: Can I start with a rough plan and refine as I go? A: No. Write the complete plan first. You can update it during execution if you discover new info, but start complete.
Q: What if the user refuses to let me write a plan? A: Explain the value (5 min planning saves debugging time). If they still refuse, document the decision and proceed carefully. But push back gently — this is professional best practice.
Q: Do I really need to ask about TDD every time? A: YES. Don't assume. Each project has different constraints. That said, you can check MEMORY.md first — if there's a standing preference documented, use that as the default and confirm.
Before invoking executing-plans, verify:
If all boxes checked: Proceed to executing-plans skill. If any missing: Fix before moving forward.
Remember: Plans are not overhead. Plans are infrastructure. They make everything after them faster, safer, and more reliable.
Write the plan. Future you will thank you.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.