Skip to content
/

claude-plugin-sdd (joestump)

claude-plugin-design-joestump

Primitive shape 18 total
Skills 18
00

Summary

claude-plugin-sdd (joestump) — Summary

Slug: claude-plugin-design-joestump Repo: joestump/claude-plugin-sdd Stars: 11 | Forks: 1 License: MIT Language: JavaScript Plugin name: sdd (v4.0.0) Install: via .claude/settings.json extraKnownMarketplaces Homepage: https://joestump.github.io/claude-plugin-sdd/

One-Line Description

Spec-Driven Development plugin for Claude Code — ADRs (MADR), OpenSpec specifications, sprint planning, parallel git-worktree implementation, PR review, Docusaurus doc generation, and an artifact dependency graph.

What It Is

claude-plugin-sdd is a 16-skill Claude Code plugin that implements the full SDD (Spec-Driven Development) lifecycle as slash commands inside Claude Code. It is the only framework in this corpus that treats architecture governance (decision records, formal specifications, drift detection, and issue tracking integration) as first-class operations within an AI coding session.

Core Value Proposition

The plugin bridges the gap between architecture documentation and code implementation. The workflow is: decide → specify → plan → implement (in parallel) → review → validate → document — all inside Claude Code without leaving the development environment. The artifact graph (/sdd:graph) makes every relationship between ADRs, specs, issues, and code files queryable.

Key Primitives

  • ADR (/sdd:adr): MADR-format Architecture Decision Records with Mermaid diagrams, sequential numbering (ADR-0001...)
  • Spec (/sdd:spec): OpenSpec paired spec.md + design.md with RFC 2119 requirements (MUST/SHALL/MAY), security-by-default, WCAG accessibility defaults
  • Plan (/sdd:plan): breaks specs into tracker issues (GitHub/GitLab/Gitea/Jira/Linear) with foundation story detection, hotspot analysis, branch/PR conventions
  • Work (/sdd:work): parallel implementation via git worktrees, up to 4 concurrent agents, pre-flight PR manifest, topological merge ordering
  • Review (/sdd:review): reviewer-responder agent pairs, conflict-marker CI gate, spec-aware code review, squash-merge
  • Audit (/sdd:audit): 6 drift categories (code vs. spec, code vs. ADR, ADR vs. spec, coverage gaps, stale artifacts, policy violations)
  • Graph (/sdd:graph): artifact dependency DAG with validate/impact/ancestors/chain/orphans/cycles/backfill verbs
  • Docs (/sdd:docs): scaffold or integration mode Docusaurus site with RFC 2119 highlighting, upgrade manifest (.sdd-docs.json)
  • CLAUDE.md-native config: all configuration as markdown under ### SDD Configuration; no JSON config files

Status

Production quality for a personal/team plugin. 11 stars; self-hosted. v4.0.0.

01

Overview

claude-plugin-sdd (joestump) — Overview

Origin

Published by Joe Stump (joestump) as a Claude Code plugin. JavaScript/MIT. v4.0.0. 11 stars. Homepage: https://joestump.github.io/claude-plugin-sdd/.

Philosophy

The plugin operationalizes Spec-Driven Development: the idea that architectural decisions should be made explicitly (ADRs), requirements should be formalized (OpenSpec), and implementation should be traceable back to those decisions (governing comments, drift checks). Claude Code becomes the runtime for the entire governance lifecycle, not just a coding assistant.

From the CLAUDE.md governing comment convention:

// Governing: ADR-0001 (chose JWT over sessions), SPEC-0003 REQ "Token Validation"

Every line of production code should be traceable to an architectural decision and a formal requirement.

Design Goals

  1. Full SDD lifecycle in Claude Code: decide → specify → plan → implement → review → validate → document — all as slash commands
  2. CLAUDE.md-native config: no separate JSON config files; configuration is markdown prose in CLAUDE.md
  3. Tracker-agnostic: supports GitHub, GitLab, Gitea, Jira, Linear, Beads — with graceful degradation to tasks.md
  4. Parallel implementation by default: git worktrees + TeamCreate for concurrent agent workers
  5. Architecture governance: drift detection, artifact graph, compliance checking across 6 categories

Core Artifact Formats

MADR (ADRs): YAML frontmatter + title + status + context + decision + consequences + Mermaid diagrams. Sequential: ADR-0001, ADR-0002.

OpenSpec (Specs): Paired spec.md + design.md. RFC 2119 requirements (MUST, SHALL, MAY). Scenarios with WHEN/THEN format. Sequential: SPEC-0001, SPEC-0002. Security sections mandatory for web-facing specs.

Artifact Graph: Queryable DAG of relationships between ADRs, specs, issues, and code. --json output is the stable contract for downstream consumers.

Plugin-as-Methodology

This plugin is unusual in that it encodes an entire development methodology (SDD), not just a set of tools. Installing the plugin means adopting:

  • MADR for decision records
  • OpenSpec for specifications
  • RFC 2119 for requirements language
  • Governing comments for code traceability
  • The decide → specify → plan → build → review → audit → document workflow

The methodology is not optional — the skills assume these conventions exist and build on each other.

Scrum Ceremony Mode

--scrum flag on /sdd:plan and /sdd:audit activates a multi-agent "ceremony" with 5 specialist agents:

  • Product Owner (PO)
  • Scrum Master (SM)
  • Engineer A
  • Engineer B (Grumpy) — adversarial engineer who challenges estimates and feasibility
  • Architect

These agents run a structured grooming session, producing prioritized stories with acceptance criteria. The "Grumpy" engineer pattern is unusual — explicitly building in a devil's advocate role to surface hidden complexity before work begins.

02

Architecture

claude-plugin-sdd (joestump) — Architecture

Repository Structure

joestump/claude-plugin-sdd/
├── plugin.json                 # Plugin manifest (name, version, description)
├── .claude-plugin/             # Plugin definition (loaded by Claude Code)
├── .claude/
│   └── settings.json           # Auto-enables plugin via extraKnownMarketplaces
├── skills/                     # 18 skill definitions (slash commands)
│   ├── _index.json             # Skill registry index
│   ├── adr/                    # /sdd:adr skill
│   ├── spec/                   # /sdd:spec skill
│   ├── init/                   # /sdd:init skill
│   ├── prime/                  # /sdd:prime skill
│   ├── check/                  # /sdd:check skill
│   ├── audit/                  # /sdd:audit skill
│   ├── discover/               # /sdd:discover skill
│   ├── docs/                   # /sdd:docs skill
│   ├── list/                   # /sdd:list skill
│   ├── plan/                   # /sdd:plan skill
│   ├── organize/               # /sdd:organize skill
│   ├── enrich/                 # /sdd:enrich skill
│   ├── work/                   # /sdd:work skill
│   ├── review/                 # /sdd:review skill
│   ├── status/                 # /sdd:status skill
│   ├── graph/                  # /sdd:graph skill
│   ├── index/                  # /sdd:index skill (qmd semantic search)
│   ├── search/                 # /sdd:search skill
│   └── report-friction/        # /sdd:report-friction skill
├── templates/                  # File templates for ADRs, specs, docs
├── references/                 # Reference documents for agent context
├── docs/                       # Auto-generated artifact storage
│   ├── adrs/                   # ADR-0001-*.md, ADR-0002-*.md, etc.
│   └── openspec/specs/         # capability-name/{spec.md, design.md}
├── docs-site/                  # Scaffold mode Docusaurus site
├── CLAUDE.md                   # Project-level agent instructions + SDD config
├── .sdd-docs.json              # Docs upgrade manifest (version, checksums)
├── .claudeignore               # Files excluded from agent context
├── evals/                      # Skill evaluation tests
└── plan.md                     # Project planning document

Plugin Installation Architecture

Claude Code loads plugins via .claude/settings.json:

{
  "extraKnownMarketplaces": {
    "claude-plugin-sdd": {
      "source": {
        "source": "github",
        "repo": "joestump/claude-plugin-sdd"
      }
    }
  },
  "enabledPlugins": {
    "sdd@claude-plugin-sdd": true
  }
}

The plugin name is sdd. Skills are invoked as /sdd:<skill-name>. No npm install, no binary — Claude Code fetches and executes the skill markdown files directly.

Skill Architecture

Each skill is a directory under skills/ containing a prompt file (markdown) that Claude Code executes as a slash command. Skills are stateless — they read from files (CLAUDE.md, docs/adrs/, docs/openspec/) and write artifacts back to those locations.

Skills communicate state through:

  1. CLAUDE.md: configuration, architecture context, governing comments
  2. docs/adrs/: ADR files
  3. docs/openspec/specs/: Spec and design files
  4. Issue tracker: issues, labels, projects (via GitHub MCP or gh CLI)
  5. Git worktrees: parallel implementation branches (.claude/worktrees/)

CLAUDE.md as Configuration Store

All plugin configuration is stored as markdown in CLAUDE.md under ### SDD Configuration. Skills parse this markdown section to read config values. No JSON config files — markdown is both human-readable and LLM-readable.

Example config section:

### SDD Configuration

#### Tracker
- **Type**: github
- **Owner**: joestump
- **Repo**: claude-plugin-sdd

Artifact Graph Architecture

/sdd:graph builds a queryable DAG:

  • Nodes: ADRs, specs, issues, code files
  • Edges: references (spec → ADR), implementations (issue → spec), governing comments (code → spec/ADR)
  • Output formats: ASCII DAG (default), Mermaid, JSON (--json is the stable contract)
  • Operations: validate, impact, ancestors, chain, orphans, cycles, backfill

The graph is built from static analysis of markdown references and governing comments — no separate graph database.

Parallel Execution Architecture

/sdd:work uses:

  1. TeamCreate — creates a coordinated agent team with shared message bus (SendMessage)
  2. Git worktrees — one isolated working directory per issue (.claude/worktrees/)
  3. Pre-flight PR manifest — workers broadcast file claims and type creations to prevent conflicts
  4. Topological merge ordering — resolves optimal merge sequence based on file overlap analysis

Workers are up to 4 concurrent agents (configurable via CLAUDE.md Max parallel agents). Excess issues queue and start as active agents complete.

03

Components

claude-plugin-sdd (joestump) — Components

Skills (18 total)

Skill Invoke Category
init /sdd:init Setup
prime /sdd:prime [topic] Context loading
adr /sdd:adr [description] [--review] Decision records
spec /sdd:spec [capability] [--review] Specifications
status /sdd:status [ID] [status] Artifact lifecycle
list /sdd:list [adr|spec|all] Inventory
discover /sdd:discover [scope] Reverse engineering
check /sdd:check [target] Quick drift check
audit /sdd:audit [scope] [--review] [--scrum] Comprehensive audit
plan /sdd:plan [spec] [--scrum] [--review] Sprint planning
organize /sdd:organize [SPEC-XXXX] [--dry-run] Project organization
enrich /sdd:enrich [SPEC-XXXX] [--dry-run] Issue enrichment
work /sdd:work [issues|SPEC-XXXX] [--max-agents N] Parallel implementation
review /sdd:review [spec|PR numbers] [--pairs N] PR review + merge
graph /sdd:graph <verb> [artifact-id] Artifact dependency graph
docs /sdd:docs [project name] Docusaurus documentation
index /sdd:index qmd semantic search indexing
report-friction /sdd:report-friction Feedback filing

ADR Component (MADR Format)

---
status: proposed
date: 2026-05-26
decision-makers: ["joe"]
---

# ADR-0001: Choose a web framework

## Context
[problem statement]

## Decision
We will use [X] because [Y].

## Consequences
### Good
- [benefit]
### Bad
- [drawback]

## Architecture Diagram
[Mermaid diagram]

Stored in docs/adrs/ADR-0001-short-title.md. Sequential numbering, YAML frontmatter.

Spec Component (OpenSpec Format)

docs/openspec/specs/capability-name/
├── spec.md      # Requirements (RFC 2119), scenarios (WHEN/THEN)
└── design.md    # Architecture diagram, component breakdown, Mermaid

spec.md structure:

  • SPEC-XXXX number, title, status, date
  • Requirements by functional area (MUST/SHALL/MAY/SHOULD)
  • Scenarios: #### Scenario: Name\nWHEN [condition]\nTHEN [outcome]
  • Security section: mandatory for web-facing specs (auth, authz, input validation, CSRF)
  • Accessibility section: mandatory for UI specs (WCAG, keyboard nav, screen reader)

Plan Component

Plan produces:

  • Epic: one per spec
  • Stories: 3-4 issues per functional area (200-500 line PR target)
  • Foundation stories: extracted shared types/packages, labeled foundation, merge before feature work
  • Issue bodies with acceptance criteria (SPEC-XXXX REQ "...")
  • Branch conventions: ### Branch\nfeature/{issue-number}-{slug}
  • PR conventions: ### PR Convention\nCloses #N
  • Tracker-native projects with Sprint iteration fields and named views

Foundation story detection: identifies requirements that create shared types, base packages, or helpers needed by 2+ stories. Prevents duplicate implementations.

Hotspot analysis: scans git log to find files modified by ≥N% of recent PRs (configurable threshold). Stories touching hotspot files are serialized to prevent merge conflicts.

Work Component

Parallel implementation engine:

  • TeamCreate call to spawn coordinated agent team
  • Pre-flight PR manifest: each worker declares file claims and type creations via SendMessage
  • Git worktree per issue: .claude/worktrees/{issue-number}-{slug}/
  • Workers read spec.md + design.md + referenced ADRs for architecture context
  • Workers leave governing comments: // Governing: ADR-0001, SPEC-0003 REQ "..."
  • Workers assess PR size: trivially small PRs (<30 lines) get additional issues bundled before opening
  • Topological merge ordering: isolated PRs first, dependent PRs rebase in tier order
  • Design doc isolation: workers forbidden from modifying spec/ADR/root CLAUDE.md files

Review Component

Reviewer-responder pairs:

  • Pre-review CI gate: all GitHub Actions/GitLab CI/Gitea Actions checks must be green
  • Conflict-marker gate: scans all PR files for <<<<<<</=======/>>>>>>> — zero tolerance
  • Reviewer checks diff against spec acceptance criteria and ADR compliance
  • Responder addresses feedback with fix commits and replies to review comments
  • One review-response round per PR (bounds compute)
  • Approved PRs: squash merge by default
  • Closes parent epic when all child stories merged

Graph Component

/sdd:graph validate              # Check all artifact relationships are valid
/sdd:graph impact ADR-0001       # What changes if ADR-0001 changes?
/sdd:graph ancestors SPEC-0003   # What ADRs does SPEC-0003 depend on?
/sdd:graph chain SPEC-0003       # Full chain from ADR to spec to issue to code
/sdd:graph orphans               # Artifacts with no references
/sdd:graph cycles                # Detect circular dependencies
/sdd:graph backfill              # Add governing comments to ungoverned code

Output formats: ASCII DAG (default), --mermaid, --table, --json (stable contract).

Docs Component

Two modes:

  • Scaffold: creates docs-site/ with full Docusaurus installation
  • Integration: generates sync-spec-docs build-time plugin into existing Docusaurus site

Features: RFC 2119 keyword highlighting, ADR/SPEC cross-reference links, Mermaid rendering, status badges, requirement box components with anchor links, dark mode.

Upgrade lifecycle: .sdd-docs.json manifest tracks version + SHA-256 checksums of all managed files. Re-running /sdd:docs diffs changed files and prompts accept/keep/opt-out.

Tracker Integration

Tracker Access Method
GitHub MCP or gh CLI
GitLab MCP or glab CLI
Gitea MCP or tea CLI
Jira MCP only
Linear MCP only
Beads Native
None Falls back to tasks.md

Tracker preference saved to CLAUDE.md after first detection.

05

Prompts

claude-plugin-sdd (joestump) — Prompts

Governing Comments (In-Code Prompt Pattern)

The plugin introduces a convention for tracing code back to specifications:

// Governing: ADR-0001 (chose JWT over sessions), SPEC-0003 REQ "Token Validation"
function validateToken(token: string): boolean {
  // ...
}

Technique: In-code provenance markers. These serve as compressed prompts for future agents: when /sdd:check or /sdd:audit analyzes a file, it reads governing comments to know which specifications apply. This converts source code into a self-annotating context source — no external lookup needed.

CLAUDE.md Architecture Context (Session Priming Prompt)

/sdd:init writes this block to CLAUDE.md:

## Architecture Context
- Architecture Decision Records are in `docs/adrs/`
- Specifications are in `docs/openspec/specs/`

Run `/sdd:prime [topic]` at the start of a session to load relevant ADRs and specs into context.

Technique: Persistent session priming. Every new Claude Code session inherits architecture awareness via CLAUDE.md. The prime skill then dynamically loads the relevant subset. Two-layer context: CLAUDE.md is the persistent pointer; /sdd:prime is the dynamic loader.

RFC 2119 Requirements Language

Specifications are written with mandatory use of RFC 2119 keywords:

### Authentication

The service MUST verify the JWT signature before processing any request.
The service SHALL return a 401 status code for expired tokens.
The service MAY cache public keys for up to 5 minutes.
Sessions SHOULD expire after 24 hours of inactivity.

Technique: Constrained requirements vocabulary. RFC 2119 (MUST/SHALL/SHOULD/MAY/MUST NOT) forces precision. This benefits both human reviewers and agents: /sdd:check can use keyword presence/absence to detect compliance gaps, and agents implementing a spec have unambiguous priority signals.

Security-by-Default Spec Sections

For web-facing specs, the plugin auto-injects security requirements:

### Security

#### Authentication
This service MUST implement authentication unless explicitly opted out of
security requirements (add `security: none` to the spec frontmatter with justification).

#### Authorization
All endpoints MUST enforce authorization checks.

#### Input Validation
User input MUST be validated and sanitized before processing.

#### CSRF Protection
State-modifying endpoints MUST include CSRF protection.

Technique: Opinionated default inclusion. The plugin uses a security-by-default prompt pattern — security sections are included automatically rather than remembered by the spec author. Opting out requires explicit frontmatter with justification (security: none), creating audit trail for the choice.

Scrum Ceremony Personas (--scrum Mode)

/sdd:plan --scrum spawns 5 distinct agent personas:

Product Owner: "My job is to ensure we build the right thing. I'll challenge
  the scope and ask 'is this really necessary for the MVP?'"

Scrum Master: "I'll keep us focused on the process. Are we over-committing?
  Do we have clear acceptance criteria?"

Engineer A: "I'll provide optimistic technical estimates and identify
  quick wins."

Engineer B (Grumpy): "I'll be the skeptic. Every estimate is probably
  2-3x too low. What are the hidden dependencies? What breaks first?"

Architect: "I'll verify alignment with our ADRs and existing architecture.
  No introducing tech debt."

Technique: Adversarial multi-persona prompting. The "Grumpy Engineer" is a deliberate devil's advocate — the prompt instructs this agent to challenge estimates and surface hidden complexity. This is a red-team pattern applied to sprint planning, not security.

WHEN/THEN Scenario Format

Specifications use structured scenarios:

#### Scenario: Token Expiry

WHEN a request arrives with an expired JWT
THEN the service MUST return HTTP 401
AND the response body MUST include an `error.code` field of "TOKEN_EXPIRED"

Technique: Gherkin-inspired specification language. WHEN/THEN format gives agents a precise behavioral test oracle: the implementation must produce exactly the described outcome. /sdd:check can verify code against these scenarios.

Permission Auto-Configuration (init)

/sdd:init auto-configures .claude/settings.json tool allowlists:

{
  "permissions": {
    "allow": ["Bash(*)", "Read(*)", "Write(*)", "Edit(*)", "mcp__github__*"]
  }
}

Technique: Self-configuring permission prompt suppression. The plugin pre-allowlists all tools it needs so automated workflows (/sdd:work, /sdd:review) never halt for permission prompts. This is the same pattern as Atmosphere's HITL workflow, but used here specifically to enable uninterrupted parallel agent execution.

09

Uniqueness

claude-plugin-sdd (joestump) — Uniqueness

Differentiator

claude-plugin-sdd is the only framework in this corpus that implements a complete methodology (Spec-Driven Development) as a plugin, covering the full decision-to-production lifecycle. Other frameworks are infrastructure (gateways, runtimes, protocol clients); this one is process.

Differs from Seeds

Against the five seed archetypes and 11 seed frameworks:

vs. Skills-only behavioral (superpowers, spec-kit): Seeds add operational skills (how to write code, how to debug). claude-plugin-sdd adds governance skills (how to decide, how to specify, how to audit). The skills are complementary, not competing — superpowers teaches the agent how to code; sdd teaches it what to build and why.

vs. Mirror commands+skills (claude-conductor, claude-flow, openspec): openspec is the closest seed — it also defines a spec format. But openspec is a format specification; claude-plugin-sdd is an operational plugin that writes specs, plans from them, implements from them, reviews against them, and audits for drift. openspec defines the noun; sdd enacts the verb.

vs. MCP-anchored toolserver (spec-driver, ccmemory): Seeds connect agents to external systems. claude-plugin-sdd is entirely self-contained within the repository — no external servers, no API calls except to the issue tracker.

vs. Markdown scaffold (BMAD-METHOD, taskmaster-ai, agent-os, kiro): BMAD-METHOD and kiro create markdown scaffolds for agent behavior. claude-plugin-sdd creates markdown scaffolds for architecture artifacts (ADRs, specs). The subject is the system being built, not the agent building it.

vs. Closed IDE with proprietary primitives (kiro): kiro has spec-like features (steering documents, specs). But kiro's specs are Claude Code instructions; sdd's specs are RFC 2119 requirements documents that are also used for drift detection, issue planning, and doc generation. The specs serve multiple downstream consumers.

Full Lifecycle in a Single Plugin

No other framework in the corpus (batch or seeds) covers all of:

  1. Recording architectural decisions (ADRs)
  2. Formalizing requirements (OpenSpec + RFC 2119)
  3. Breaking specs into tracker issues (multi-tracker support)
  4. Parallel implementation via git worktrees (TeamCreate)
  5. Spec-aware PR review (reviewer-responder pairs)
  6. Drift detection (6 categories)
  7. Artifact dependency graph (DAG with impact analysis)
  8. Documentation generation (Docusaurus with upgrade lifecycle)

Most frameworks cover 1-2 of these. The integration across all 8 is unique.

Adversarial Grooming (Grumpy Engineer)

The --scrum mode's "Grumpy Engineer B" persona is unique in the corpus. This is a deliberately adversarial agent role in a planning context:

"Every estimate is probably 2-3x too low. What are the hidden dependencies? What breaks first?"

No other framework introduces red-team patterns into sprint planning. This is notable because adversarial testing is common in security (red teams), but unusual in product planning.

Security-by-Default Specifications

Mandatory security sections for web-facing specs, with explicit opt-out requiring frontmatter justification:

security: none  # must include justification

No other framework enforces security coverage at the specification stage. Most security features in this corpus are runtime guards (gateway policies, PII filters, rate limits). sdd enforces security at design time.

Conflict-Marker CI Gate

/sdd:review scans every file in every PR for unresolved merge conflict markers (<<<<<<<, =======, >>>>>>>) as a hard pre-condition for review. This is the only framework in the corpus that treats file-level conflict markers as a binary CI gate — other frameworks focus on passing unit tests.

CLAUDE.md as Config Store

The CLAUDE.md-native configuration model (no JSON config files; all config as markdown prose) is shared with some seeds but taken further here: skills read and write config sections as part of their operation. Tracker discovery saves the detected tracker to CLAUDE.md. First ADR creation offers to update the Architecture Context section. The config is self-building as the workflow progresses.

What It Does Not Do

  • No LLM gateway or request routing
  • No built-in tools (MCP servers)
  • No agent identity definition (SOUL.md equivalent)
  • No compliance enforcement (SOD, FINRA, etc.)
  • No runtime observability (OTEL, metrics)
  • No persistence beyond repository files
  • No multi-repo coordination

This is a single-repo, single-project governance plugin. Its scope is tightly bounded to architecture governance within one codebase, which is precisely what makes it effective in that scope.

04

Workflow

claude-plugin-sdd (joestump) — Workflow

Full SDD Lifecycle

1. /sdd:init          → Set up CLAUDE.md with architecture context
2. /sdd:discover      → Find implicit decisions in existing codebase
3. /sdd:prime         → Load ADR + spec context for architecture-aware session
4. /sdd:adr           → Record the decision (MADR format, Mermaid diagram)
5. /sdd:list adr      → Inventory all decisions and status
6. /sdd:status ADR-0001 accepted
7. /sdd:spec          → Formalize requirements (OpenSpec + RFC 2119)
8. /sdd:plan SPEC-0001 → Break spec into tracker issues with branch conventions
9. /sdd:organize      → Group issues into tracker-native projects
10. /sdd:enrich       → Add branch and PR conventions to existing issues
11. /sdd:work SPEC-0001 → Parallel implementation via git worktrees
12. /sdd:review SPEC-0001 → Reviewer-responder merge loop
13. /sdd:check src/   → Quick drift check while coding
14. /sdd:audit        → Comprehensive 6-category design audit
15. /sdd:docs         → Generate or upgrade Docusaurus docs site

Decision Record Workflow

# New decision
/sdd:adr We need to choose an authentication strategy

# Plugin creates docs/adrs/ADR-0001-authentication-strategy.md
# Offers to update CLAUDE.md Architecture Context section
# Suggests /sdd:spec to formalize

# Team review
/sdd:adr Choose a database --review
# Spawns architect + reviewer agents for team drafting

# Approve
/sdd:status ADR-0001 accepted

Specification Workflow

# From a decision
/sdd:spec authentication-service

# Creates docs/openspec/specs/authentication-service/
#   spec.md  - MUST/SHALL requirements, WHEN/THEN scenarios
#   design.md - architecture diagrams (Mermaid required)

# With security focus (auto-includes security sections for web-facing specs)
/sdd:spec user-registration

# After writing spec, plugin suggests:
# "Would you like to run /sdd:plan SPEC-0001?"

Sprint Planning Workflow

# Plan a spec into issues
/sdd:plan SPEC-0001

# Plugin:
# 1. Detects tracker (GitHub/GitLab/Gitea/Jira/Linear)
# 2. Analyzes requirements → groups into 3-4 story-sized issues
# 3. Detects foundation stories (shared types needed by 2+ stories)
# 4. Runs hotspot analysis (git log → identify merge-conflict files)
# 5. Creates epic + stories in tracker
# 6. Adds branch naming (feature/{issue-number}-{slug})
# 7. Creates GitHub Project with Sprint iterations and named views

# Full scrum ceremony (5 specialist agents)
/sdd:plan SPEC-0001 --scrum
# Runs PO + SM + Engineer A + Engineer B (Grumpy) + Architect grooming session

Parallel Implementation Workflow

# Implement all open issues for a spec
/sdd:work SPEC-0001

# From backlog (no spec) — agent proposes issues
/sdd:work
# > Proposed batch: #42, #43, #47 (unblocks #52, #53)
# > Approve? [y/n]

# Explicit issues
/sdd:work 42 43 47

# Plugin:
# 1. Pre-flight: build PR manifest, broadcast file claims
# 2. Create worktrees: .claude/worktrees/{issue-slug}/
# 3. TeamCreate: up to 4 concurrent worker agents
# 4. Workers: read spec/design/ADRs → implement → commit → push → open PR
# 5. Workers leave governing comments (// Governing: ADR-0001, SPEC-0003 REQ "...")
# 6. After all PRs ready: compute topological merge order
# 7. Merge: isolated PRs first, dependent PRs rebase in tier order

Review Workflow

# Review all PRs for a spec
/sdd:review SPEC-0001

# Plugin:
# 1. Pre-review CI gate: all checks must be green
# 2. Conflict-marker scan: zero tolerance for unresolved markers
# 3. Reviewer-responder pairs (default 2 pairs)
# 4. Reviewers check diff against spec acceptance criteria + ADR compliance
# 5. Responders push fix commits, reply to review comments
# 6. One review-response round (bounds compute)
# 7. Approved: squash merge
# 8. All stories merged → closes parent epic

# Review without merge
/sdd:review SPEC-0001 --no-merge

# Dry run
/sdd:review SPEC-0001 --dry-run

Drift Detection Workflow

# Quick check (while coding)
/sdd:check src/auth/login.ts
# Produces findings table: code vs. spec, code vs. ADR, ADR vs. spec

# Comprehensive audit (periodic)
/sdd:audit
# 6 categories: code/spec, code/ADR, ADR/spec, coverage gaps, stale artifacts, policy violations

# Team audit with review
/sdd:audit --review
# Spawns auditor + reviewer agents

Artifact Graph Workflow

# Validate all relationships
/sdd:graph validate

# Impact analysis before changing ADR-0001
/sdd:graph impact ADR-0001
# Shows: which specs reference ADR-0001, which issues reference those specs, which code has governing comments

# Find ungoverned code
/sdd:graph orphans

# Backfill governing comments to ungoverned functions
/sdd:graph backfill

# Machine-readable output for CI
/sdd:graph validate --json | jq '.violations | length'

Docs Generation Workflow

# First time (scaffold)
/sdd:docs "My Project"
# Creates docs-site/ with full Docusaurus installation

# On existing Docusaurus site (integration mode)
/sdd:docs "My Project"
# Generates sync-spec-docs plugin into existing website/

# Upgrade
/sdd:docs
# Reads .sdd-docs.json checksums, diffs changed files, prompts accept/keep/skip
06

Memory Context

claude-plugin-sdd (joestump) — Memory & Context

Memory Architecture

All persistent state is in plain files inside the repository. No external database, no vector store, no session API.

CLAUDE.md as the Primary Memory Store

CLAUDE.md is the single source of truth for project-level memory:

## Architecture Context
- Architecture Decision Records are in `docs/adrs/`
- Specifications are in `docs/openspec/specs/`

### SDD Configuration
#### Tracker
- **Type**: github
- **Owner**: joestump
- **Repo**: claude-plugin-sdd

#### Branch Conventions
- **Prefix**: feature
- **Slug Max Length**: 50

### Session Coordination
When orchestrating multiple SDD plugin skills in a single session, use
`TeamCreate` to coordinate agents. Do not spawn ad-hoc background agents
for work that requires coordination.

CLAUDE.md is read by every Claude Code session automatically. This means every agent working in the repo inherits:

  • Where the ADRs and specs are
  • The tracker preference (so they don't re-prompt)
  • The branch naming convention
  • The coordination protocol (TeamCreate for parallel work)

Artifact Files as Long-Term Memory

docs/
├── adrs/
│   ├── ADR-0001-authentication-strategy.md
│   ├── ADR-0002-database-choice.md
│   └── ...
└── openspec/specs/
    ├── user-authentication/
    │   ├── spec.md      (requirements + scenarios)
    │   └── design.md    (architecture diagrams)
    └── payment-processing/
        ├── spec.md
        └── design.md

ADRs and specs are the permanent architectural memory. They persist forever, accumulating as the project evolves. /sdd:prime loads a summarized version into the session context window.

/sdd:prime — Context Window Loading

/sdd:prime              # Load all ADRs and specs (summarized)
/sdd:prime security     # Semantic filter: only security-related artifacts
/sdd:prime auth         # Only auth-related artifacts

Prime loads:

  • All ADR titles, statuses, and key decisions (one-line each)
  • All spec titles, statuses, requirement counts
  • Filtered by semantic topic if provided

This is the "context window budget" mechanism: prime gives the agent enough context to make architecture-aware decisions without loading every file in full.

Governing Comments as In-Code Memory

// Governing: ADR-0001 (chose JWT over sessions), SPEC-0003 REQ "Token Validation"

Governing comments make code self-annotating — when an agent reads a file, it immediately knows which decisions and requirements apply. /sdd:graph backfill adds governing comments to ungoverned functions.

.sdd-docs.json — Docs Upgrade Memory

{
  "version": "4.0.0",
  "mode": "scaffold",
  "siteDir": "docs-site",
  "files": {
    "docs-site/docusaurus.config.ts": {
      "managed": true,
      "checksum": "sha256:abc123..."
    }
  }
}

Tracks which files are plugin-managed and their expected checksums. Enables safe upgrades without overwriting user customizations.

Session Context Flow

  1. Session starts → Claude Code reads CLAUDE.md automatically
  2. Agent runs /sdd:prime [topic] → loads ADR/spec summaries into context window
  3. Agent works → uses governing comments and spec references to stay aligned
  4. Agent writes new ADR/spec → new files persist to docs/
  5. Next session → same CLAUDE.md + updated docs/ = cumulative architectural memory

Parallel Agent Context (TeamCreate)

When /sdd:work spawns multiple worker agents:

  • Each worker receives: issue body, spec.md, design.md, referenced ADRs, pre-flight PR manifest
  • Workers broadcast via SendMessage: file claims, type creations
  • Workers are forbidden from reading sibling workers' file outputs directly — only the PR manifest
  • This prevents context contamination between parallel workstreams

No Cross-Session Compaction

There is no automatic summarization or compaction. The artifact files (docs/adrs/, docs/openspec/) grow indefinitely. /sdd:prime is the manual compaction mechanism: it summarizes artifacts to fit in the context window.

For large repositories, /sdd:prime [topic] with a specific topic is the recommended approach to bound context usage.

07

Orchestration

claude-plugin-sdd (joestump) — Orchestration

TeamCreate for Parallel Agent Coordination

The plugin's primary orchestration primitive is Claude Code's TeamCreate API. Used by /sdd:work and /sdd:review:

TeamCreate:
  - Lead agent: coordinates the team
  - Worker agents: implement individual issues (up to 4 concurrent)
  - Communication: SendMessage for file claims, type creations, status updates

Workers cannot read each other's files directly. All inter-agent communication goes through the message bus. This prevents race conditions from concurrent file edits.

/sdd:work Orchestration Flow

/sdd:work SPEC-0001
  │
  ├── Pre-flight phase
  │   ├── Build PR manifest (which files each issue touches)
  │   ├── Identify parallel-safe batches (no file overlap)
  │   └── Sort remaining issues by dependency order
  │
  ├── Dispatch phase (TeamCreate)
  │   ├── Worker 1: issue #42 in .claude/worktrees/42-feature-name/
  │   ├── Worker 2: issue #43 in .claude/worktrees/43-feature-name/
  │   ├── Worker 3: issue #47 in .claude/worktrees/47-feature-name/
  │   └── Worker 4: issue #50 in .claude/worktrees/50-feature-name/
  │   (Excess issues queue, start when active agents complete)
  │
  ├── Worker lifecycle per issue
  │   ├── Broadcast file claims via SendMessage
  │   ├── Read spec.md + design.md + ADRs (if spec available)
  │   ├── Implement changes
  │   ├── Leave governing comments
  │   ├── Assess PR size (bundle if <30 lines)
  │   ├── Run tests (unless --no-tests)
  │   ├── Commit + push
  │   └── Open PR (transitions issue to `in-review`)
  │
  └── Merge phase (topological ordering)
      ├── Analyze file overlap across all PRs
      ├── Merge isolated PRs first
      ├── Rebase dependent PRs after each merge
      └── Merge dependent PRs in tier order

/sdd:review Orchestration Flow

/sdd:review SPEC-0001
  │
  ├── Pre-review gates
  │   ├── CI/CD check gate (all checks must be green)
  │   └── Conflict-marker scan (zero tolerance)
  │
  ├── Reviewer-responder pairs (default 2)
  │   ├── Reviewer: reads spec acceptance criteria + ADR compliance
  │   │             checks diff against requirements
  │   │             posts review comments
  │   └── Responder: reads reviewer feedback
  │                  pushes fix commits
  │                  replies to review comments
  │
  ├── Re-verify CI after fixes
  │
  └── Merge (squash) + close epic if all stories done

Issue Lifecycle State Machine

created → queued → in-progress → in-review → merged

Labels track state transitions. Dependency enforcement: blocked issues wait until their dependencies reach merged. The lead agent enforces this; workers do not self-schedule.

Scrum Ceremony Orchestration (--scrum)

/sdd:plan --scrum runs a structured grooming session with 5 specialist agents in sequence:

1. Product Owner: challenges scope ("Is this necessary for MVP?")
2. Architect: validates against ADRs and existing architecture
3. Engineer A: provides optimistic estimates and quick wins
4. Engineer B (Grumpy): challenges every estimate (2-3x skepticism)
5. Scrum Master: resolves conflicts, finalizes story sizing
   → Output: prioritized stories with acceptance criteria

Then the lead runs /sdd:organize + /sdd:enrich automatically.

Discover Orchestration

/sdd:discover [scope] uses parallel exploration agents:

  • Multiple agents scan different parts of the codebase concurrently
  • Each produces suggestions with confidence levels (High/Medium/Low) and evidence citations
  • Lead agent deduplicates and presents ranked suggestions
  • Read-only — never creates files

Drift Detection Orchestration

/sdd:audit --review spawns two agents:

  • Auditor: performs 6-category drift analysis
  • Reviewer: validates auditor findings for false positives

Single-agent audit is the default for quick checks; team audit for formal compliance reviews.

Graph-Based Dependency Enforcement

/sdd:graph is used by other skills for dependency resolution:

  • /sdd:plan calls graph analysis to identify foundation stories
  • /sdd:work calls graph for topological merge ordering
  • /sdd:review references graph to determine which ADRs apply to each PR
  • The graph is rebuilt fresh each time (static analysis, not cached)

TeamCreate vs. Sequential Fallback

All skills that use TeamCreate include a fallback to single-agent sequential mode:

  • TeamCreate fails → falls back to sequential
  • Sequential is slower but always available
  • This ensures the plugin works in environments without team coordination support
08

Ui Cli Surface

claude-plugin-sdd (joestump) — UI & CLI Surface

Interface Model

claude-plugin-sdd has no standalone binary, web UI, or independent CLI. Its entire surface is Claude Code slash commands prefixed with /sdd:.

Installation Interface

Add to .claude/settings.json:

{
  "extraKnownMarketplaces": {
    "claude-plugin-sdd": {
      "source": {
        "source": "github",
        "repo": "joestump/claude-plugin-sdd"
      }
    }
  },
  "enabledPlugins": {
    "sdd@claude-plugin-sdd": true
  }
}

Restart Claude Code. All 18 skills become available as /sdd:<name>.

Slash Command Surface

/sdd:init
/sdd:prime [topic]
/sdd:adr [description] [--review]
/sdd:spec [capability] [--review]
/sdd:status [ADR-XXXX|SPEC-XXXX] [status]
/sdd:list [adr|spec|all]
/sdd:discover [scope]
/sdd:check [file|dir|ADR-XXXX|SPEC-XXXX]
/sdd:audit [scope] [--review] [--scrum]
/sdd:plan [spec-name|SPEC-XXXX] [--scrum] [--review] [--project <name>] [--no-projects] [--branch-prefix <prefix>] [--no-branches]
/sdd:organize [SPEC-XXXX|spec-name] [--project <name>] [--dry-run]
/sdd:enrich [SPEC-XXXX|spec-name] [--branch-prefix <prefix>] [--dry-run]
/sdd:work [SPEC-XXXX|issue-numbers|(empty)] [--max-agents N] [--draft] [--dry-run] [--no-tests] [--module <name>]
/sdd:review [SPEC-XXXX|PR-numbers] [--pairs N] [--no-merge] [--dry-run] [--module <name>]
/sdd:graph <verb> [artifact-id] [--scope <subtree>] [--module <name>] [--table|--mermaid|--json]
/sdd:docs [project-name]
/sdd:index
/sdd:search [query]
/sdd:report-friction

Configuration Interface

All configuration is read from and written to CLAUDE.md under ### SDD Configuration. No separate config files.

# Initialize configuration
/sdd:init

# Result: CLAUDE.md updated with SDD Configuration section
# .claude/settings.json updated with tool allowlists

Common configuration keys (all in CLAUDE.md markdown):

  • **Type**: github — tracker type
  • **Max parallel agents**: 4 — concurrent workers
  • **Hotspot threshold**: 50% — merge conflict detection sensitivity
  • Branch/PR conventions, worktree settings, review settings

--dry-run Across All Destructive Skills

All skills with external side effects support --dry-run:

Skill dry-run shows
/sdd:organize --dry-run Issues that would be regrouped
/sdd:enrich --dry-run Branch/PR sections that would be added
/sdd:work --dry-run Worktrees and PRs that would be created
/sdd:review --dry-run PRs that would be reviewed/merged

--review Flag Semantics

--review on a creation skill activates multi-agent team review mode:

Skill Single-agent --review
/sdd:adr Author writes ADR Author + Architect review
/sdd:spec Author writes spec Author + Architect review
/sdd:plan Lead plans issues Lead + Reviewer pair
/sdd:audit Auditor runs checks Auditor + Reviewer pair

CLAUDE.md Config Feedback

Skills write discoveries back to CLAUDE.md automatically:

  • /sdd:plan saves the detected tracker type so future runs don't re-prompt
  • /sdd:init writes architecture context, SDD configuration, and governing comment convention
  • /sdd:adr offers to add an Architecture Context section on first use

This creates a progressive configuration model: CLAUDE.md grows more specific to the project as skills are used.

Artifact Outputs

All artifact outputs are files in the repository:

Output Location
ADRs docs/adrs/ADR-XXXX-title.md
Specs docs/openspec/specs/{name}/spec.md
Designs docs/openspec/specs/{name}/design.md
Docs site docs-site/ (scaffold) or website/plugins/sync-spec-docs/ (integration)
Docs upgrade manifest .sdd-docs.json
Tracker fallback tasks.md
Worktrees .claude/worktrees/{issue-branch}/

Interactive Prompts

Several skills present interactive choices before taking action:

  • /sdd:work (no args): proposes a batch of issues, waits for approval
  • /sdd:organize: shows three-tier intervention model, asks which tier to apply
  • /sdd:docs (upgrade): diffs changed files, offers accept/keep/opt-out per file
  • /sdd:plan (no args): lists available specs interactively for selection

Related frameworks

same archetype · same primary tool · same memory type

BMAD-METHOD ★ 48k

Provides a full agile delivery lifecycle with named expert-persona AI collaborators that elicit the human's best thinking rather…

Agent OS ★ 4.6k

Extracts implicit codebase conventions into token-efficient markdown standards files and injects them selectively into AI agent…

Claude Conductor ★ 367

Gives Claude Code a persistent, cross-linked, auto-analyzed documentation system so it retains codebase context across sessions.

Spec-Driver (Greenfield Spec-Driven Development) ★ 25

Prevents spec rot in AI-assisted development by making implementation changes flow back into evergreen, authoritative specs via…

Anthropic Knowledge Work Plugins ★ 16k

Role-specialized plugin bundles with live MCP connectors that turn Claude into a domain expert for enterprise knowledge workers.

Codex Integration for Claude Code (skill-codex) ★ 1.3k

Single Claude Code skill that handles Codex CLI invocation correctly (stdin blocking, thinking token suppression, session resume)…