agents-standards
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.
Claude Code
$ npx -y skills add LiorCohen/sdd --skill change-creation --agent claude-code
Codex
$ npx skills add LiorCohen/sdd --skill change-creation -a codex -y
Cursor
$ npx skills add LiorCohen/sdd --skill change-creation -a cursor -y
Gemini CLI
$ npx skills add LiorCohen/sdd --skill change-creation -a gemini-cli -y
GitHub Copilot
$ npx skills add LiorCohen/sdd --skill change-creation -a github-copilot -y
OpenCode
$ npx skills add LiorCohen/sdd --skill change-creation -a opencode -y
Windsurf
$ npx skills add LiorCohen/sdd --skill change-creation -a windsurf -y
name: change-creation description: Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types. user-invocable: false
Create a complete change specification package consisting of:
| Context | Responsibility | |---------|----------------| | **Skills** (main context) | All planning, spec creation, domain docs - interactive, needs user input | | **Agents** (subagent) | Execution only - non-interactive, implements approved plans |
This skill handles all spec and plan creation. Implementation agents only execute the approved plan.
Domain documentation is specified **in SPEC.md during planning**, not discovered during implementation:
Implementation simply executes these specifications.
Plans are generated dynamically based on: 1. Project components from `sdd/sdd-settings.yaml` (delegate to the `project-settings` skill for the settings schema — it returns the component list with `name`, `type`, and type-specific settings) 2. Which components are affected by the change 3. Dependency order between components 4. Contextual agent assignment
Schema: [`schemas/input.schema.json`](./schemas/input.schema.json)
Accepts change metadata (name, type, title, domain), optional workflow context, and content from spec solicitation or external integration.
Schema: [`schemas/output.schema.json`](./schemas/output.schema.json)
Returns paths to created SPEC.md and PLAN.md files, and whether the index was updated.
1. Validate `name` is a valid directory name:
2. Validate `type` is one of: `feature`, `bugfix`, `refactor`, `epic`
3. Ensure required parameters are provided:
1. Get current date 2. Format as `YYYY/MM/DD` 3. Full path: `changes/YYYY/MM/DD/<name>/`
1. Read SDD plugin version from `.claude-plugin/plugin.json` 2. Read project components from `sdd/sdd-settings.yaml` 3. Identify affected components (from input or infer from description)
mkdir -p changes/YYYY/MM/DD/<name>/
Create `changes/YYYY/MM/DD/<name>/SPEC.md` using type-specific template.
--- title: <title> type: <type> status: active domain: <domain> issue: <issue or "TBD"> created: YYYY-MM-DD updated: YYYY-MM-DD sdd_version: <plugin_version> affected_components: - <component-1> - <component-2> decomposition_id: <uuid> # Only if provided ---
Use the template for the change type. Each template is a complete markdown document to use as the SPEC.md body (after the frontmatter above).
| Type | Template | Notes | |------|----------|-------| | `feature` | [`templates/spec-feature.md`](./templates/spec-feature.md) | Thorough, self-sufficient technical spec | | `bugfix` | [`templates/spec-bugfix.md`](./templates/spec-bugfix.md) | Focused on symptoms, root cause, and fix | | `refactor` | [`templates/spec-refactor.md`](./templates/spec-refactor.md) | Current state, proposed design, behavior preservation | | `epic` | [`templates/spec-epic.md`](./templates/spec-epic.md) | Parent spec with child change breakdown |
**Epic Directory Structure:**
After creating the epic's own SPEC.md and PLAN.md, create child change directories:
changes/YYYY/MM/DD/<epic-name>/
├── SPEC.md
├── PLAN.md
└── changes/
├── <child-change-1>/
│ ├── SPEC.md
│ └── PLAN.md
└── <child-change-2>/
├── SPEC.md
└── PLAN.mdEach child change uses the standard feature spec template with `parent_epic: ../SPEC.md` in frontmatter.
Create `changes/YYYY/MM/DD/<name>/PLAN.md` using dynamic phase generation.
1. **Read project components** from `sdd/sdd-settings.yaml` 2. **Filter to affected components** (from SPEC.md `affected_components`) 3. **Order by dependency graph:** Invoke `techpacks.dependencyOrder` for the active tech pack to get the topological order of component types. Filter to only affected components while preserving dependency order. 4. **Assign agents:** Invoke `techpacks.readManifest` and read `components.<type>.agent` for each affected component type. For standards, invoke `techpacks.routeSkills(phase: plan-generation, component_type: <type>)`. 5. **Add final phases:** Read `lifecycle.testing.agent` and `lifecycle.verification.agent` from the manifest.
--- title: <title> - Implementation Plan change: <name> type: <type> spec: ./SPEC.md status: draft created: YYYY-MM-DD sdd_version: <plugin_version> ---
Use the template for the change type. Each template is a complete markdown document to use as the PLAN.md body (after the frontmatter above).
| Type | Template | Notes | |------|----------|-------| | `feature` | [`templates/plan-feature.md`](./templates/plan-feature.md) | Dynamic phases based on affected components | | `bugfix` | [`templates/plan-bugfix.md`](./templates/plan-bugfix.md) | 4 phases: investigation, fix, test, review | | `refactor` | [`templates/plan-refactor.md`](./templates/plan-refactor.md) | 4 phases: preparation, refactor,
Structure for AI-assisted development AI coding assistants are powerful but chaotic. You prompt, you get code, but then what?
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Standards for authoring SDD plugin commands — frontmatter, user interaction, skill/agent invocation, CLI integration, and output…
Create a commit following repository guidelines with proper versioning and changelog updates.
Two-step self-review at every task lifecycle phase. Step 1 (this skill) runs in-context to gather session signals — files read vs…
D2 diagramming language reference for architecture diagrams, sequence diagrams, grid layouts, SQL tables, and class diagrams.…
Writes and maintains user-facing documentation for the SDD plugin. Proactively detects when docs are out of sync with plugin…
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.