From sdd
Lists all Architecture Decision Records and specs in a project with status and date. Supports filtering by ADR/spec and cross-module aggregation in workspaces.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd:list [filter: adr|spec|all] [--module <name>][filter: adr|spec|all] [--module <name>]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
List all ADRs and specs in the project with their status, date, and title.
List all ADRs and specs in the project with their status, date, and title.
Resolve artifact paths: Follow the Artifact Path Resolution pattern from references/shared-patterns.md to determine the ADR and spec directories. If $ARGUMENTS contains --module <name>, resolve paths relative to that module; otherwise, in a workspace, aggregate across all modules. The resolved ADR directory is {adr-dir} and spec directory is {spec-dir}.
Cross-module aggregation: When in aggregate mode (no --module, workspace detected), list artifacts from all modules. Add a Module column to the output tables with module names in square brackets (e.g., [api]). Sort by module name first, then by artifact number. When --module is provided, scope to that single module — no module column needed. When in single-module mode (no workspace), operate normally.
Parse filter: Check $ARGUMENTS for a filter keyword:
adr -- only show ADRsspec -- only show specsall or empty -- show both (default)Scan for ADRs (unless filter is spec):
{adr-dir}/ADR-*.md files (in aggregate mode, glob per-module and prefix results with module name)status and date per the Status Field Extraction algorithm in Step 3a (/sdd:prime defines this canonically; /sdd:list reuses it for the same legacy-format reasons)# headingScan for specs (unless filter is adr):
{spec-dir}/*/spec.md files (in aggregate mode, glob per-module and prefix results with module name)status and date per the Status Field Extraction algorithm referenced above# heading (e.g., SPEC-0001: Web Dashboard)3a. Status Field Extraction: same algorithm as /sdd:prime Step 3a. Briefly: try YAML frontmatter status: first; if absent, scan the first 30 lines for a - **Status:** {value} bullet (case-insensitive on "Status"); strip any parenthetical refinement notes (split on (, trim); if neither form yields a value, render as — when some artifacts have status, or drop the Status column entirely when zero do.
Present results as a formatted table:
Single-module or --module mode:
## Architecture Decisions
| ID | Title | Status | Date |
|----|-------|--------|------|
| ADR-0001 | Choose frontend framework | accepted | 2025-01-15 |
| ADR-0002 | Choose PostgreSQL | proposed | 2025-02-01 |
## Specifications
| ID | Title | Status | Date |
|----|-------|--------|------|
| SPEC-0001 | Web Dashboard | approved | 2025-01-20 |
Workspace aggregate mode:
## Architecture Decisions ({N} across {K} modules)
| Module | ID | Title | Status | Date |
|--------|----|-------|--------|------|
| [api] | ADR-0001 | Choose REST over GraphQL | accepted | 2025-01-15 |
| [api] | ADR-0002 | Choose PostgreSQL | proposed | 2025-02-01 |
| [worker] | ADR-0001 | Choose Redis for queues | accepted | 2025-01-20 |
## Specifications ({M} across {K} modules)
| Module | ID | Title | Status | Date |
|--------|----|-------|--------|------|
| [api] | SPEC-0001 | Web Dashboard | approved | 2025-01-20 |
| [worker] | SPEC-0001 | Job Processing | draft | 2025-02-01 |
Handle empty results: If no ADRs or specs exist, tell the user:
/sdd:adr [description]."/sdd:spec [capability]."- **Status:** {value} is misleading and was reported as a real-world bug— for missing entries when the column is partially populated. Workspace aggregate mode: the rendered corpus is the union across all modules — drop the column only when ZERO artifacts across ALL modules have status. If even one module has status, keep the columnnpx claudepluginhub joestump/claude-plugin-sdd --plugin sddLoads ADR and spec context for architecture-aware responses. Use when starting a new session or referencing existing decisions. Supports cross-module aggregation and qmd-based freshness checks.
Lists all ADRs from docs/adrs/ in a sorted markdown table with title, status, date, and optional domain. Use for README indexes or auditing architectural decisions.
Lists technical specifications from tech-specs/ directories with status (DRAFT, APPROVED, REFERENCE), metadata, filters by status/RFC, and table/list output. Useful for tracking architecture docs.