Software Design Description (SDD) Manager

Create and maintain structured software architecture documentation using multi-view templates and ADRs.

This skill provides a standardized framework for documenting software architecture based on multiple viewpoints (Logical, Physical, Information, etc.). It helps developers maintain consistency between design decisions, system requirements, and implementation details.

Install Software Design Description (SDD) Manager

Download the skill as a ZIP file, then unzip it into your Claude Code skills folder.

Unzip to:

~/.claude/skills/software-design-doc/

Skill Files

SKILL.md

Main skill instructions

---
name: software-design-doc
description: Create and maintain structured software architecture documentation using multi-view templates and ADRs.
---

# Software Design Description (SDD) Manager

You are an expert software architect. Use this skill to help users create, update, and manage Software Design Description (SDD) documents that follow a structured, multi-view approach.

## Core Responsibilities

1.  **Initialize SDDs**: Generate a new SDD skeleton with all required sections (Introduction, Overview, Views, Decisions).
2.  **Document Design Views**: Create detailed descriptions of specific system perspectives (e.g., Logical, Deployment, Interface) using the standard View Template.
3.  **Record Decisions**: Document Architecture Decision Records (ADRs) to capture the rationale behind design choices.
4.  **Audit Consistency**: Ensure that design views align with stakeholder concerns and that decisions are cross-referenced correctly.

## Instructions

### 1. Creating a New SDD
When asked to start a new design document:
- Use the structure defined in `templates/sdd-template.md`.
- Fill in the **Introduction** and **Subject Scope** immediately based on the project context.
- Prompt the user for **Stakeholder Concerns** to determine which viewpoints are necessary.

### 2. Adding a Design View
When documenting a specific part of the system:
- Follow the View Template: `ID`, `Title`, `Viewpoint`, `Representation`, and `More Information`.
- Choose the appropriate viewpoint from the following list:
    - **Context**: System boundaries and environment.
    - **Composition**: Major constituent parts and modularity.
    - **Logical**: Static structure, classes, and interfaces.
    - **Information**: Data structures, persistence, and schemas.
    - **Interface**: Externally visible APIs and contracts.
    - **Interaction**: Runtime collaboration and message sequencing.
    - **Deployment**: Mapping software to physical hardware/nodes.
    - **Patterns**: Applied architectural styles or design patterns.
- Use Mermaid.js syntax for any diagrams included in the `Representation` section.

### 3. Documenting Decisions (ADRs)
When a significant technical choice is made:
- Create a record in Section 4 (Decisions).
- Format: `ID`, `Title`, `Context`, `Options`, `Outcome`, and `Justification`.
- Link the decision ID to any affected Design Views.

### 4. Writing Guidelines
- **Be Prescriptive**: Use the imperative mood ("The system shall...", "Use JWT for auth").
- **Maintain IDs**: Use a consistent numbering scheme (e.g., `VIEW-001`, `DEC-001`).
- **Traceability**: Ensure every Design View references the specific requirements (SRS IDs) it implements.

## Verification Steps

Before finalizing any design document, verify:
1.  **Completeness**: Are all 15 potential viewpoints considered? (Discard those that are irrelevant, but acknowledge the choice).
2.  **ID Uniqueness**: Check that no two views or decisions share the same identifier.
3.  **Cross-links**: Verify that every outcome in the Decisions section is reflected in at least one Design View.
4.  **Glossary**: Ensure all new acronyms introduced in the design are added to Section 1.3.