academic-writing
Write or revise thesis and paper prose section by section (abstract, introduction, related work, method, results, discussion,…
Turn a spec or set of requirements into a detailed, task-by-task implementation plan an engineer (or a subagent) can execute without further context. Breaks work into bite-sized steps with exact file paths, real code, and verification commands. Use before starting a multi-step
Claude Code
$ npx -y skills add KhaledSaeed18/dotclaude --skill writing-plans --agent claude-code
Codex
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a codex -y
Cursor
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a cursor -y
Gemini CLI
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a gemini-cli -y
GitHub Copilot
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a github-copilot -y
OpenCode
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a opencode -y
Windsurf
$ npx skills add KhaledSaeed18/dotclaude --skill writing-plans -a windsurf -y
name: writing-plans description: Turn a spec or set of requirements into a detailed, task-by-task implementation plan an engineer (or a subagent) can execute without further context. Breaks work into bite-sized steps with exact file paths, real code, and verification commands. Use before starting a multi-step build, once you know what you're building.
Write the implementation plan as if the engineer executing it has strong general skills but zero knowledge of this codebase, this domain, or your intentions. Everything they need to act has to be on the page: which files to touch, the actual code, how to test it, what "done" looks like for each step. Vagueness in a plan becomes wasted work or wrong work at execution time.
A good plan is a sequence of small, verifiable tasks: each one producing a self-contained change that makes sense on its own and leaves the project working.
Read the spec or requirements fully, then look at the codebase the plan will touch, existing patterns, conventions, the files involved. Plan *with* the grain of the code that's there, not against an idealised version of it. If the spec spans several independent subsystems, say so and propose splitting it into one plan per subsystem; each plan should produce working, testable software on its own.
Before writing any task, list the files the work will create or modify and the single responsibility of each. This is where the decomposition gets decided.
Each task is a coherent unit of work; each *step* inside it is one action of two to five minutes. Following test-driven development, a typical task reads:
Give every task an explicit **Files** block: what to create, what to modify (with line ranges where it helps), what the test file is. Use checkbox (`- [ ]`) syntax for steps so progress is trackable during execution.
A plan with gaps is a plan that fails at execution. None of these belong in a finished plan:
Every step that changes code shows the code. Every command comes with its expected output. File paths are exact.
When the plan is complete, read it once more against the spec with fresh eyes; this is a checklist you run yourself, not a subagent dispatch:
1. **Coverage.** Walk each requirement in the spec. Can you point to the task that implements it? List any gaps and add tasks for them. 2. **Placeholder scan.** Search the plan for the red flags above and fix any you find. 3. **Consistency.** Do the type names, signatures, and property names used in later tasks match what earlier tasks defined? A method called `clearLayers()` in one task and `clearFullLayers()` in another is a latent bug.
Fix issues inline and move on.
Save the plan as a markdown file (a `docs/plans/YYYY-MM-DD-<feature>.md` location works well unless the project has its own convention). Then offer the user how to execute it:
If the work should be isolated from the current branch, note that an isolated workspace should be set up at execution time via the `git-worktrees` skill, and that the branch gets wrapped up afterward with the `finish-branch` skill.
Adapted from the `writing-plans` entry of [superpowers](https://github.com/obra/superpowers) by Jesse Vincent (MIT). The structure and the core rules are theirs; the wording, the examples, and the integration with this registry's other items are this repository's.
Reusable Claude Code extension registry. skills, subagents, slash commands, and hooks for engineering, git, testing, and security workflows. Distributed as a shadcn GitHub registry and as installable plugins.
Write or revise thesis and paper prose section by section (abstract, introduction, related work, method, results, discussion,…
Report computational benchmarks and experimental comparisons the way examiners and reviewers expect: fair baselines run under the…
Maintain the thesis .bib file as a single source of truth: fetch verified BibTeX from a DOI, arXiv id, or title via CrossRef and…
Expand a set of key papers into the literature around them by walking the citation graph with the Semantic Scholar and OpenAlex…
Audit every citation in a chapter, paper, or proposal against the .bib file and the real world: each cite key must exist, each…
Structure a thesis whose contribution is a built artifact (tool, system, method, model) using design science research: explicit…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.