From codagent
Produces lightweight plans for small code changes: combines propose/spec/(opt) design in one pass, outputs proposal.md, specs, design.md, tasks.md for OpenSpec.
npx claudepluginhub codagent-ai/agent-skills --plugin codagentThis skill uses the workspace's default tool permissions.
Rapid, lightweight planning for small changes. One conversation produces a `proposal.md`, one or more spec files, an optional `design.md`, and a `tasks.md` placeholder so the change slots into the OpenSpec workflow.
Brainstorms user intent, explores options, defines scope, and designs multi-step tasks. Generates OpenSpec design.md and tasks.md checklists before coding.
Creates detailed implementation plans from specs for multi-step tasks before coding, with file structure mapping, bite-sized TDD steps, architecture overview, and tech stack.
Generates detailed implementation plans from approved spec.md files, iterates with human annotations, and outputs structured plan.json with phases, tasks, and steps. Use after spec approval to break into engineer-ready work.
Share bugs, ideas, or general feedback.
Rapid, lightweight planning for small changes. One conversation produces a proposal.md, one or more spec files, an optional design.md, and a tasks.md placeholder so the change slots into the OpenSpec workflow.
Key principle — write for a different agent. The artifacts you produce will be handed to a separate implementing agent that has zero shared context from this conversation. Every decision, rationale, constraint, file path, naming convention, and behavioral detail must be captured in the written artifacts. If you discussed it but didn't write it down, the implementer won't know about it.
Understand — Ask the user what the change is about (problem, desired behavior, scope) when not already explicit.
Orient quickly — Before asking questions, do a light survey so your questions are grounded:
propose or design.Clarify — Follow the codagent:ask-questions skill to gather information. Keep the conversation tight — a handful of questions total, not a full interview. Focus on:
Decide if a design doc is needed — Default: no. Write design.md when:
design.md is that somewhere.A small code change, a config tweak, a straightforward CRUD addition, or anything where "the code is the design" does not need one. When in doubt, ask whether the implementer would have enough information without it.
Confirm the plan — Briefly restate: capabilities to spec, whether a design doc will be written, and output location. Get a quick thumbs-up before writing.
Write all the docs in one pass — proposal.md, one specs/<capability>/spec.md per capability, optionally design.md, and tasks.md.
Follow the project's convention if one exists (AGENTS.md, OpenSpec config, etc.). Otherwise default to openspec/changes/<kebab-slug>/ and confirm with the user before writing.
Specs outlive everything else in this skill — they become the living source of truth via OpenSpec. Get them right:
#### Scenario: (exactly four hashtags) with WHEN/THEN.<!-- deferred-to-design: <reason> --> — but for a simple plan, you should usually just decide and move on.The proposal and (optional) design exist to scaffold the specs. The specs are what matter.
Write a placeholder tasks.md — no actual task breakdown. This skill produces one-shot, self-contained plans; a different agent reads the files directly to implement the change.
Because the implementer has no context beyond these artifacts, the task entry must link to every artifact and the artifacts themselves must be fully self-contained. Before writing tasks.md, review your artifacts as a whole: if you realize there are discussed details missing from the specs and design, go back and add them now.
Format:
- [ ] Implement the change described by these files:
- [proposal.md](proposal.md)
- [specs/<capability>/spec.md](specs/<capability>/spec.md)
- [design.md](design.md) <!-- only if written -->
Use relative paths from the change directory. Include every spec file. Include design.md only if it was written.
design.md by default. The bar is "someone will re-litigate this later without a written rationale." If that's not true, skip it.codagent:ask-questions. For tool choice and batching strategy whenever you need user input.Scale each section to the change. Omit sections that don't apply. Keep simple sections to a sentence or two.
proposal.md## Why
<!-- 1-2 sentences on the problem or opportunity. -->
## What Changes
<!-- Bullet list of changes. Mark breaking changes with **BREAKING**. -->
## Capabilities
### New Capabilities
<!-- Each creates specs/<name>/spec.md -->
- `<name>`: <brief description>
### Modified Capabilities
<!-- Only list here if spec-level behavior changes. Leave empty if none. -->
- `<existing-name>`: <what's changing>
## Out of Scope
<!-- Explicit exclusions. -->
## Impact
<!-- Affected code, APIs, dependencies. -->
specs/<capability>/spec.md## ADDED Requirements
### Requirement: <requirement name>
<requirement text using SHALL/MUST>
#### Scenario: <scenario name>
- **WHEN** <condition>
- **THEN** <expected outcome>
<!--
For modified capabilities, use ## MODIFIED Requirements and copy the ENTIRE
existing requirement block (all scenarios) before editing. Other delta headers:
## REMOVED Requirements (include **Reason** and **Migration**)
## RENAMED Requirements (use FROM:/TO:)
-->
design.md (optional, discouraged unless necessary)## Context
<!-- Background and current state. -->
## Goals / Non-Goals
**Goals:**
<!-- What this design aims to achieve. -->
**Non-Goals:**
<!-- Explicitly out of scope. -->
## Approach
<!-- Components, interactions, data flow. Diagrams if they help. -->
## Decisions
<!-- Key decisions and rationale — the reason this doc exists. -->
## Risks / Trade-offs
<!-- Known risks. -->
tasks.md- [ ] Implement the change described by these files:
- [proposal.md](proposal.md)
- [specs/<capability>/spec.md](specs/<capability>/spec.md)