skills/deep-work/SKILL.md
Structured development workflow that separates research, planning, and implementation into distinct phases with persistent markdown artifacts. Use when starting any non-trivial feature, refactor, bug investigation, or codebase change. Trigger on: "deep work", "research and plan", "plan before coding", "write a plan", "research this codebase", "don't code yet", "understand then implement", or when the user wants a disciplined approach to a complex task. Also use when the user says "research", "plan", "annotate", "implement the plan", or references research.md/plan.md artifacts.
npx skillsauth add petekp/agent-skills deep-workInstall 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.
Structured workflow that separates thinking from typing. Never write code until a written plan has been reviewed and approved.
Research → Plan → Annotate (repeat 1-6x) → Todo List → Implement → Feedback
All artifacts persist as markdown files in .claude/ (not the project root).
Deeply read the relevant codebase before doing anything else. Write findings to .claude/research.md.
How to research:
.claude/research.mdResearch depth signals: Read deeply. Understand intricacies. Go through everything. Surface-level reading is not acceptable. Continue until you have a thorough understanding.
Template: See references/research-template.md for the research document structure.
Critical rule: Stop after writing research.md. Do not proceed to planning until the user has reviewed the research and confirmed it's accurate.
Write a detailed implementation plan to .claude/plan.md. Base the plan on the actual codebase — read source files before suggesting changes.
Plan contents:
Template: See references/plan-template.md for the plan document structure.
Reference implementations: If the user provides reference code from other projects, study it and adapt the approach to fit the current codebase's patterns.
Critical rule: End the plan with "Ready for your review. Add inline notes directly to .claude/plan.md and tell me when to address them." Do not implement.
The user adds inline notes directly into plan.md. When they say "address my notes" or similar:
.claude/plan.md thoroughly, finding all user annotationsCritical rule: Do not implement. The phrase "don't implement yet" is a hard constraint. Repeat the annotation cycle until the user explicitly approves.
When the user approves the plan, add a granular task checklist to .claude/plan.md:
## Tasks
### Phase 1: [Phase Name]
- [ ] Task 1 — specific, actionable description
- [ ] Task 2 — specific, actionable description
### Phase 2: [Phase Name]
- [ ] Task 3 — specific, actionable description
- [ ] Task 4 — specific, actionable description
Each task should be small enough to complete in one focused step. Include all phases needed to fully implement the plan.
Critical rule: Do not implement yet. Wait for user confirmation to begin.
When the user says "implement" or "go":
.claude/plan.md — change - [ ] to - [x]any, unknown)Code quality rules during implementation:
any or unknown types (TypeScript projects)During implementation, the user may provide terse corrections. These are sufficient because full context exists in the plan and session:
On reverts: If the user says "I reverted everything" — re-read the current file state, narrow scope to exactly what they specify, and re-implement cleanly.
See references/prompts.md for ready-to-use prompts for each phase that the user can copy and adapt.
development
Compile a plain-language task into a concise, auditable Codex or Claude Code `/goal`, or explain why a normal prompt fits better. Use when the user asks to draft, formulate, rewrite, tighten, or create a goal for multi-step work that needs a durable objective, transcript-visible proof, constraints, bounded stop conditions, host-aware operation, and risk-based review depth.
tools
Expert Unix and macOS systems engineer for shell scripting, system administration, command-line tools, launchd, Homebrew, networking, and low-level system tasks. Use when the user asks about Unix commands, shell scripts, macOS system configuration, process management, or troubleshooting system issues.
testing
Apply professional typography principles to create readable, hierarchical, and aesthetically refined interfaces. Use when setting type scales, choosing fonts, adjusting spacing, designing text-heavy layouts, implementing dark mode typography, or when asked about readability, font pairing, line height, measure, typographic hierarchy, variable fonts, font loading, or OpenType features.
development
Create visual parameter tuning panels for iterative adjustment of animations, layouts, colors, typography, physics, or any numeric/visual values. Use when the user asks to "create a tuning panel", "add parameter controls", "build a debug panel", "tweak parameters visually", "fine-tune values", "dial in the settings", or "adjust parameters interactively". Also triggers on mentions of "leva", "dat.GUI", or "tweakpane".