skills/writing-plan/SKILL.md
Use when you have a spec or requirements for a multi-step task, before touching code. Supports either Markdown plans or review-oriented HTML plan artifacts.
npx skillsauth add rakaadi/agent-kit writing-planInstall 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.
Assume the engineer is skilled but unfamiliar with this codebase, toolset, and problem domain, and may need explicit guidance on test design patterns used here. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
Announce at start: "I'm using the writing-plan skill to create the implementation plan."
Choose exactly one output format for each plan request.
plan-firebase-services.html, produce HTML.plan-firebase-services.md, produce Markdown.Plan content comes first, format comes second. Before writing any Markdown or HTML, create an internal outline (do not emit it) using the same section order as the plan’s semantic structure below. Then render the plan in the chosen format:
The same plan must remain recognizable in either format. HTML may improve the presentation, but it must not drop implementation-critical detail.
plan-${implementation-task}.md, using a kebab-case slug derived from the implementation task name. Example: plan-firebase-services.md.plan-${implementation-task}.html, using the same kebab-case task slug as the Markdown variant. Example: plan-firebase-services.html.If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during brainstorming. If it wasn't, suggest breaking this into separate plans — one per subsystem. Each plan should produce working, testable software on its own.
Before defining tasks, map out which files will be created or modified and what each one is responsible for. This is where decomposition decisions get locked in.
This structure informs the task decomposition. Each task should produce self-contained changes that make sense independently.
Each task should be one coherent, reviewable slice:
**Depends on**.Every plan must expose the following top-level content, whether as Markdown headings or HTML sections/cards:
Markdown plans MUST start with this header:
# [Feature Name] Implementation Plan
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
---
Use a stable task ID plus explicit dependency metadata so agents can see what may run in parallel and humans can see what must wait. Write Description as a short opening sentence followed by actionable bullet points. If the task only has one thing to do, a single short paragraph is fine.
#### Task `task-id`
**Title**: [Action-oriented task title].
**Description**: [One short sentence that explains what this task accomplishes and why it exists.]
- Create or modify `exact/path/to/file.ts` for [specific responsibility].
- Reuse `exact/path/to/reference.ts` as the reference surface for existing patterns or types.
- Preserve [named constraint, public API, or runtime behavior] while making the change.
- Run `exact verification or lint command` if the task needs a concrete tooling step.
**Depends on**: `upstream-task-id` or Nothing.
**Produces**: `exact/path/to/file.ts`; updated `exact/path/to/other-file.ts`
**Acceptance**: [Observable outcome that proves the task is done.]
---
#### Task `shared-api-factory`
**Title**: Build the shared authenticated API factory.
**Description**: Move the duplicated authenticated request lifecycle behind one shared factory so both API slices use the same boundary.
- Create `src/redux/createAuthenticatedApi.ts`.
- Define `AuthenticatedApiConfig` with only the configuration current callers need.
- Centralize request normalization, URL resolution, auth header injection, 401 refresh and retry, and reset-on-refresh-failure.
- Preserve existing concurrency and retry behavior instead of introducing a new refresh mechanism.
- Run `bunx eslint src/redux/createAuthenticatedApi.ts src/redux/authSessionHelpers.ts --fix`.
**Depends on**: `auth-session-helpers`
**Produces**: `src/redux/createAuthenticatedApi.ts`
**Acceptance**: `createAuthenticatedApi` is the only place that knows how authenticated requests are executed, retried, and reset after refresh failure.
For HTML plans, render the same task fields visibly inside task cards, tables, or sections. Do not hide dependency or acceptance information behind presentation-only affordances.
Every plan must include a Progress Tracking section between Verification and Out of Scope in both Markdown and HTML. This section is the execution handoff state, not a narrative changelog.
Current status: Not started | In progress | Blocked | CompletedStarted on: YYYY-MM-DD or Not startedCompleted on: YYYY-MM-DD or Not completedLast executed tasks: task IDs only, newest first, or NoneCurrent blocker or next focus: one short line naming the blocker or the next runnable taskUnplanned necessary work: include only when execution required work outside the original task listFresh plans should initialize this section with placeholders that make the starting state explicit:
Current status: Not startedStarted on: Not startedCompleted on: Not completedLast executed tasks: NoneCurrent blocker or next focus: the first runnable task, or Waiting to start when execution has not begunAfter writing the complete plan:
plan-${implementation-task}.md or plan-${implementation-task}.html), path to the spec documentReview loop guidance:
development
Guide for writing a unit test. Use when writing a unit test for functions or components, and when fixing a bug in existing code.
documentation
Protocol for dispatching subagents effectively. Use this skill EVERY TIME you are about to delegate work to a custom or built-in agent. Covers when to dispatch, which agent to pick, how to write self-contained prompts, and parallel execution. Trigger phrases: "delegate to agent", "dispatch subagent", "run agent", "use subagent", "context isolation", "parallel agents".
development
Guide for code refactoring, use this skill to guide you when user asked to refactor a components or functions and when an implementation of a plan requiring a code refactoring.
development
Guide for debugging issue on a specific code sections, pattern, or files. Used this skill when user asking for assistant when debugging an issues or explaining a code.