feat(skills): add bmad-os-create-sdd self-contained skill
Adds a standalone skill version of the SDD/architecture workflow that requires no external config files or installed workflow paths. All 7 phases (context analysis, tech stack, decisions, patterns, structure, validation, completion) are embedded in a single instructions.md with full A/P/C collaboration menus and Party Mode / Advanced Elicitation protocols. https://claude.ai/code/session_017RezKEgbHK1fnmobKEMFMQ
This commit is contained in:
parent
259e8a11ba
commit
cdab5743b3
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
name: bmad-os-create-sdd
|
||||||
|
description: Collaborative Solution Design Document (SDD) creation skill. Guides you through architecture decisions, implementation patterns, project structure, and validation — all in one self-contained skill. Use when user says 'create architecture', 'create SDD', 'create solution design', or 'design the architecture'.
|
||||||
|
---
|
||||||
|
|
||||||
|
Read `prompts/instructions.md` and execute.
|
||||||
|
|
@ -0,0 +1,781 @@
|
||||||
|
# Solution Design Document (SDD) — Self-Contained Skill
|
||||||
|
|
||||||
|
A collaborative, step-by-step architecture workflow that produces a complete Solution Design Document. No external config or installed workflow files required.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## CORE PRINCIPLES
|
||||||
|
|
||||||
|
- **YOU ARE A FACILITATOR, not a content generator.** Never generate content without user input.
|
||||||
|
- Treat every interaction as a collaboration between architectural peers.
|
||||||
|
- NEVER proceed to the next phase until the user explicitly confirms.
|
||||||
|
- NEVER give time estimates.
|
||||||
|
- When the user has a project context file or existing docs, bias all decisions toward what's already there.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 0 — INITIALIZATION
|
||||||
|
|
||||||
|
### 0.1 Check for Existing SDD
|
||||||
|
|
||||||
|
Scan the project for an existing architecture/SDD document:
|
||||||
|
|
||||||
|
- Look for `**/architecture*.md`, `**/sdd*.md`, `**/solution-design*.md`
|
||||||
|
- If one is found with a `stepsCompleted` frontmatter field, read it fully and say:
|
||||||
|
|
||||||
|
> "I found an existing SDD at `{path}` (completed through phase {N}). Would you like to **continue** from where you left off, or **start fresh**?"
|
||||||
|
|
||||||
|
If continuing, skip to the appropriate phase based on `stepsCompleted`.
|
||||||
|
|
||||||
|
### 0.2 Discover Output Location
|
||||||
|
|
||||||
|
If starting fresh, determine where to save the output:
|
||||||
|
|
||||||
|
1. Look for a `_bmad/bmm/config.yaml` — if found, use `planning_artifacts` path.
|
||||||
|
2. Otherwise, check for common `docs/` or `planning/` folders.
|
||||||
|
3. If neither, default to `docs/architecture.md` and inform the user.
|
||||||
|
|
||||||
|
### 0.3 Discover Input Documents
|
||||||
|
|
||||||
|
Search the project for relevant context. Also check for sharded folders (e.g., if `*prd*.md` isn't found, look for `prd/index.md`):
|
||||||
|
|
||||||
|
- Product Brief (`*brief*.md`)
|
||||||
|
- PRD (`*prd*.md`)
|
||||||
|
- UX Design (`*ux-design*.md`, `*ux*.md`)
|
||||||
|
- Research documents (`*research*.md`)
|
||||||
|
- Project Context (`**/project-context.md`, `**/.bmad-core/project-context.md`)
|
||||||
|
|
||||||
|
Report what you found and ask:
|
||||||
|
|
||||||
|
> "Here's what I discovered:
|
||||||
|
>
|
||||||
|
> - PRD: {found/not found}
|
||||||
|
> - UX Design: {found/not found}
|
||||||
|
> - Research: {found/not found}
|
||||||
|
> - Project Context: {found/not found}
|
||||||
|
>
|
||||||
|
> A PRD is required to proceed. Do you have any additional documents to provide? Once confirmed, type **[C] Continue**."
|
||||||
|
|
||||||
|
**STOP — do not proceed until user confirms.**
|
||||||
|
|
||||||
|
If no PRD is found or provided, say: "Architecture requires a PRD to work from. Please run the PRD workflow first, or provide the PRD file path."
|
||||||
|
|
||||||
|
### 0.4 Create Initial Document
|
||||||
|
|
||||||
|
Once input is confirmed, create the output file with this frontmatter:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
stepsCompleted: []
|
||||||
|
inputDocuments: [{list of loaded files}]
|
||||||
|
workflowType: 'architecture'
|
||||||
|
project_name: '{detected or ask}'
|
||||||
|
date: '{today}'
|
||||||
|
---
|
||||||
|
|
||||||
|
# Solution Design Document
|
||||||
|
|
||||||
|
_This document builds collaboratively through step-by-step discovery. Sections are appended as we work through each phase together._
|
||||||
|
```
|
||||||
|
|
||||||
|
Greet the user:
|
||||||
|
|
||||||
|
> "Ready to begin! We'll work through 7 phases together:
|
||||||
|
> 1. Project Context Analysis
|
||||||
|
> 2. Tech Stack & Starter Evaluation
|
||||||
|
> 3. Core Architectural Decisions
|
||||||
|
> 4. Implementation Patterns & Consistency Rules
|
||||||
|
> 5. Project Structure & Boundaries
|
||||||
|
> 6. Architecture Validation
|
||||||
|
> 7. Completion & Handoff
|
||||||
|
>
|
||||||
|
> **[C] Start Phase 1 →**"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 1 — PROJECT CONTEXT ANALYSIS
|
||||||
|
|
||||||
|
**Goal:** Understand the project's requirements and their architectural implications.
|
||||||
|
|
||||||
|
### 1.1 Analyze Input Documents
|
||||||
|
|
||||||
|
Thoroughly read all loaded documents and extract:
|
||||||
|
|
||||||
|
**From PRD:**
|
||||||
|
- Functional Requirements (FRs) — count and categorize
|
||||||
|
- Non-Functional Requirements (NFRs): performance, security, compliance, scalability
|
||||||
|
- Technical constraints or dependencies
|
||||||
|
|
||||||
|
**From Epics/Stories (if available):**
|
||||||
|
- Epic structure and story count
|
||||||
|
- Cross-epic dependencies
|
||||||
|
- Acceptance criteria with technical implications
|
||||||
|
|
||||||
|
**From UX Design (if available):**
|
||||||
|
- Component complexity (simple forms vs. rich interactions)
|
||||||
|
- Real-time update needs
|
||||||
|
- Offline/PWA requirements
|
||||||
|
- Accessibility standards (WCAG level)
|
||||||
|
- Performance expectations
|
||||||
|
|
||||||
|
### 1.2 Assess Project Scale
|
||||||
|
|
||||||
|
Evaluate complexity indicators:
|
||||||
|
- Real-time features
|
||||||
|
- Multi-tenancy
|
||||||
|
- Regulatory compliance
|
||||||
|
- Integration complexity
|
||||||
|
- Data volume and complexity
|
||||||
|
|
||||||
|
### 1.3 Present Analysis for Validation
|
||||||
|
|
||||||
|
Show your analysis:
|
||||||
|
|
||||||
|
> "I've reviewed your project documentation.
|
||||||
|
>
|
||||||
|
> {if epics loaded} I see {N} epics with {N} total stories.
|
||||||
|
> {if no epics} I found {N} functional requirements across {N} categories.
|
||||||
|
>
|
||||||
|
> **Key architectural aspects I notice:**
|
||||||
|
> - {Summarize core functionality}
|
||||||
|
> - {Note critical NFRs that will shape architecture}
|
||||||
|
> - {Identify unique technical challenges}
|
||||||
|
>
|
||||||
|
> **Scale indicators:**
|
||||||
|
> - Complexity: {low / medium / high / enterprise}
|
||||||
|
> - Primary domain: {web / mobile / api / backend / full-stack / etc.}
|
||||||
|
> - Cross-cutting concerns: {list}
|
||||||
|
>
|
||||||
|
> Does this match your understanding?"
|
||||||
|
|
||||||
|
### 1.4 Generate Content
|
||||||
|
|
||||||
|
Once validated, prepare this section for the document:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Project Context Analysis
|
||||||
|
|
||||||
|
### Requirements Overview
|
||||||
|
|
||||||
|
**Functional Requirements:**
|
||||||
|
{analysis of FRs and their architectural meaning}
|
||||||
|
|
||||||
|
**Non-Functional Requirements:**
|
||||||
|
{NFRs that will drive decisions}
|
||||||
|
|
||||||
|
**Scale & Complexity:**
|
||||||
|
- Primary domain: {domain}
|
||||||
|
- Complexity level: {level}
|
||||||
|
- Estimated architectural components: {count}
|
||||||
|
|
||||||
|
### Technical Constraints & Dependencies
|
||||||
|
{known constraints}
|
||||||
|
|
||||||
|
### Cross-Cutting Concerns Identified
|
||||||
|
{concerns spanning multiple components}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.5 A/P/C Menu
|
||||||
|
|
||||||
|
Present the content and ask:
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Dive deeper into architectural implications
|
||||||
|
> **[P] Party Mode** — Analyze requirements from multiple perspectives
|
||||||
|
> **[C] Continue** — Save this analysis and move to Phase 2
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **A:** Apply advanced elicitation: challenge assumptions, explore edge cases, ask probing questions. Ask: "Accept these enhancements? (y/n)". Return to A/P/C.
|
||||||
|
- **P:** Adopt 3 distinct architectural personas (e.g., security-focused, performance-focused, simplicity-focused) and give each perspective. Ask: "Accept any of these changes? (y/n)". Return to A/P/C.
|
||||||
|
- **C:** Append content to document. Update frontmatter `stepsCompleted: [1]`. Proceed to Phase 2.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 2 — TECH STACK & STARTER EVALUATION
|
||||||
|
|
||||||
|
**Goal:** Discover technical preferences and evaluate starter template options.
|
||||||
|
|
||||||
|
### 2.1 Check Existing Technical Preferences
|
||||||
|
|
||||||
|
Check the loaded project context for any technical rules (language, framework, tools, patterns). Report what you find. If found, these are already decided — do not re-decide them.
|
||||||
|
|
||||||
|
### 2.2 Discover Technical Preferences
|
||||||
|
|
||||||
|
Ask the user:
|
||||||
|
|
||||||
|
> "Let's establish your technical preferences:
|
||||||
|
>
|
||||||
|
> - **Languages:** TypeScript/JavaScript, Python, Go, Rust, other?
|
||||||
|
> - **Frameworks:** React, Vue, Next.js, NestJS, FastAPI, other?
|
||||||
|
> - **Database:** PostgreSQL, MySQL, MongoDB, SQLite, other?
|
||||||
|
> - **Cloud/Deployment:** Vercel, AWS, Railway, Docker, serverless, other?
|
||||||
|
> - **Existing integrations:** Any systems/APIs to connect with?
|
||||||
|
> - **Team experience:** What stack is the team most comfortable with?"
|
||||||
|
|
||||||
|
### 2.3 Identify Primary Technology Domain
|
||||||
|
|
||||||
|
Based on requirements and preferences:
|
||||||
|
- **Web app** → Next.js, Vite, SvelteKit, Remix
|
||||||
|
- **Mobile** → React Native, Expo, Flutter
|
||||||
|
- **API/Backend** → NestJS, Express, Fastify, FastAPI, Go
|
||||||
|
- **CLI** → oclif, commander
|
||||||
|
- **Full-stack** → T3, Blitz, RedwoodJS, Next.js
|
||||||
|
- **Desktop** → Electron, Tauri
|
||||||
|
|
||||||
|
### 2.4 Research Current Starters
|
||||||
|
|
||||||
|
Search the web to find current, maintained options:
|
||||||
|
- `"{primary_technology} starter template CLI create command latest"`
|
||||||
|
- `"{primary_technology} boilerplate best practices {current year}"`
|
||||||
|
|
||||||
|
Verify current versions. Never use hardcoded version numbers.
|
||||||
|
|
||||||
|
### 2.5 Present Starter Options
|
||||||
|
|
||||||
|
For each viable starter, document what decisions it makes for you (language config, styling, testing, routing, build tooling).
|
||||||
|
|
||||||
|
Present options with trade-offs and a recommended choice with rationale. Get the exact current CLI command from the web.
|
||||||
|
|
||||||
|
### 2.6 Generate Content
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Tech Stack & Starter Evaluation
|
||||||
|
|
||||||
|
### Technical Preferences
|
||||||
|
{documented preferences from 2.2}
|
||||||
|
|
||||||
|
### Primary Technology Domain
|
||||||
|
{identified domain and rationale}
|
||||||
|
|
||||||
|
### Starter Options Considered
|
||||||
|
{analysis of evaluated options}
|
||||||
|
|
||||||
|
### Selected Starter: {name}
|
||||||
|
|
||||||
|
**Rationale:** {why this was chosen}
|
||||||
|
|
||||||
|
**Initialization Command:**
|
||||||
|
```bash
|
||||||
|
{exact current command}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Decisions Provided by Starter:**
|
||||||
|
- Language & Runtime: {details}
|
||||||
|
- Styling: {details}
|
||||||
|
- Build Tooling: {details}
|
||||||
|
- Testing Framework: {details}
|
||||||
|
- Code Organization: {details}
|
||||||
|
|
||||||
|
**Note:** Project initialization is the first implementation story.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.7 A/P/C Menu
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Explore custom approaches or unconventional starters
|
||||||
|
> **[P] Party Mode** — Evaluate trade-offs from different perspectives
|
||||||
|
> **[C] Continue** — Save this decision and move to Phase 3
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **C:** Append content. Update `stepsCompleted: [1, 2]`. Proceed to Phase 3.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 3 — CORE ARCHITECTURAL DECISIONS
|
||||||
|
|
||||||
|
**Goal:** Collaboratively make all remaining critical architectural decisions.
|
||||||
|
|
||||||
|
### 3.1 Identify What's Already Decided
|
||||||
|
|
||||||
|
Review starter template decisions and technical preferences from Phase 2. List what's already decided so we don't re-decide it.
|
||||||
|
|
||||||
|
### 3.2 Work Through Decision Categories
|
||||||
|
|
||||||
|
For each category, present the decision needed, options with trade-offs, and a recommendation. Then get the user's choice. Always verify technology versions via web search.
|
||||||
|
|
||||||
|
#### Category 1: Data Architecture
|
||||||
|
- Database choice (if not from starter)
|
||||||
|
- Data modeling approach (ORM, raw SQL, schema-first)
|
||||||
|
- Validation strategy (runtime, compile-time, both)
|
||||||
|
- Migration approach
|
||||||
|
- Caching strategy
|
||||||
|
|
||||||
|
#### Category 2: Authentication & Security
|
||||||
|
- Authentication method (JWT, session, OAuth, passkeys)
|
||||||
|
- Authorization patterns (RBAC, ABAC, simple roles)
|
||||||
|
- API security strategy (rate limiting, CORS, CSP)
|
||||||
|
- Secrets management
|
||||||
|
|
||||||
|
#### Category 3: API & Communication
|
||||||
|
- API design (REST, GraphQL, tRPC, other)
|
||||||
|
- Error handling standards
|
||||||
|
- API documentation approach
|
||||||
|
- Real-time communication (if needed: WebSockets, SSE, polling)
|
||||||
|
|
||||||
|
#### Category 4: Frontend Architecture (if applicable)
|
||||||
|
- State management (local, context, Zustand, Redux, Jotai, etc.)
|
||||||
|
- Component architecture (atomic, feature-based, etc.)
|
||||||
|
- Performance optimization strategy
|
||||||
|
|
||||||
|
#### Category 5: Infrastructure & Deployment
|
||||||
|
- Hosting strategy
|
||||||
|
- CI/CD pipeline approach
|
||||||
|
- Environment configuration pattern
|
||||||
|
- Monitoring and logging
|
||||||
|
|
||||||
|
### 3.3 Document Cascading Implications
|
||||||
|
|
||||||
|
After each decision, call out related decisions it creates:
|
||||||
|
|
||||||
|
> "This choice means we'll also need to decide: {related decisions}"
|
||||||
|
|
||||||
|
### 3.4 Generate Content
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Core Architectural Decisions
|
||||||
|
|
||||||
|
### Decision Priority Analysis
|
||||||
|
|
||||||
|
**Critical (Block Implementation):**
|
||||||
|
{critical decisions}
|
||||||
|
|
||||||
|
**Important (Shape Architecture):**
|
||||||
|
{important decisions}
|
||||||
|
|
||||||
|
**Deferred (Post-MVP):**
|
||||||
|
{deferred decisions with rationale}
|
||||||
|
|
||||||
|
### Data Architecture
|
||||||
|
{decisions with versions and rationale}
|
||||||
|
|
||||||
|
### Authentication & Security
|
||||||
|
{decisions with versions and rationale}
|
||||||
|
|
||||||
|
### API & Communication Patterns
|
||||||
|
{decisions with versions and rationale}
|
||||||
|
|
||||||
|
### Frontend Architecture
|
||||||
|
{decisions with versions and rationale}
|
||||||
|
|
||||||
|
### Infrastructure & Deployment
|
||||||
|
{decisions with versions and rationale}
|
||||||
|
|
||||||
|
### Cross-Component Dependencies
|
||||||
|
{how decisions affect each other}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.5 A/P/C Menu
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Explore innovative approaches to specific decisions
|
||||||
|
> **[P] Party Mode** — Review decisions from multiple perspectives
|
||||||
|
> **[C] Continue** — Save these decisions and move to Phase 4
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **C:** Append content. Update `stepsCompleted: [1, 2, 3]`. Proceed to Phase 4.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 4 — IMPLEMENTATION PATTERNS & CONSISTENCY RULES
|
||||||
|
|
||||||
|
**Goal:** Define patterns that prevent AI agent conflicts — ensuring all agents write compatible, consistent code.
|
||||||
|
|
||||||
|
### 4.1 Identify Conflict Points
|
||||||
|
|
||||||
|
Based on the chosen stack, identify where different agents could make incompatible choices:
|
||||||
|
|
||||||
|
**Naming Conflicts:**
|
||||||
|
- DB table naming: `users` vs `Users` vs `user`?
|
||||||
|
- Column naming: `user_id` vs `userId`?
|
||||||
|
- API endpoints: `/users` or `/user`? Plural or singular?
|
||||||
|
- File naming: `UserCard.tsx` or `user-card.tsx`?
|
||||||
|
- Function naming: `getUserData` or `get_user_data`?
|
||||||
|
|
||||||
|
**Structural Conflicts:**
|
||||||
|
- Test location: `__tests__/` co-located or `tests/` at root?
|
||||||
|
- Component organization: by feature or by type?
|
||||||
|
- Where do utilities/helpers go?
|
||||||
|
|
||||||
|
**Format Conflicts:**
|
||||||
|
- API response wrapper: `{data: ..., error: ...}` or direct?
|
||||||
|
- Error format: `{message, code}` or `{error: {type, detail}}`?
|
||||||
|
- Date format: ISO strings or timestamps?
|
||||||
|
- JSON field naming: `snake_case` or `camelCase`?
|
||||||
|
|
||||||
|
**Process Conflicts:**
|
||||||
|
- Loading state handling patterns
|
||||||
|
- Error recovery and retry patterns
|
||||||
|
- Validation timing (client-side, server-side, both)
|
||||||
|
- Authentication flow patterns
|
||||||
|
|
||||||
|
### 4.2 Facilitate Pattern Decisions
|
||||||
|
|
||||||
|
For each conflict point, present the trade-offs and get a decision. Provide concrete examples of each option.
|
||||||
|
|
||||||
|
### 4.3 Generate Content
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Implementation Patterns & Consistency Rules
|
||||||
|
|
||||||
|
### Naming Patterns
|
||||||
|
|
||||||
|
**Database Naming:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
**API Naming:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
**Code Naming:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
### Structure Patterns
|
||||||
|
|
||||||
|
**Project Organization:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
**File Structure:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
### Format Patterns
|
||||||
|
|
||||||
|
**API Response Formats:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
**Data Exchange Formats:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
### Communication Patterns
|
||||||
|
|
||||||
|
**Event Naming & Payloads:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
**State Management Patterns:**
|
||||||
|
{rules with examples}
|
||||||
|
|
||||||
|
### Process Patterns
|
||||||
|
|
||||||
|
**Error Handling:**
|
||||||
|
{consistent approach}
|
||||||
|
|
||||||
|
**Loading States:**
|
||||||
|
{consistent approach}
|
||||||
|
|
||||||
|
### Enforcement
|
||||||
|
|
||||||
|
**All AI Agents MUST:**
|
||||||
|
- {mandatory rule 1}
|
||||||
|
- {mandatory rule 2}
|
||||||
|
- {mandatory rule 3}
|
||||||
|
|
||||||
|
**Anti-Patterns to Avoid:**
|
||||||
|
{examples of what not to do}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.4 A/P/C Menu
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Explore additional consistency patterns
|
||||||
|
> **[P] Party Mode** — Review patterns from different implementation perspectives
|
||||||
|
> **[C] Continue** — Save patterns and move to Phase 5
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **C:** Append content. Update `stepsCompleted: [1, 2, 3, 4]`. Proceed to Phase 5.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 5 — PROJECT STRUCTURE & BOUNDARIES
|
||||||
|
|
||||||
|
**Goal:** Define the complete, specific project directory structure and integration boundaries.
|
||||||
|
|
||||||
|
### 5.1 Map Requirements to Components
|
||||||
|
|
||||||
|
**From Epics (if available):**
|
||||||
|
> Epic: {epic_name} → Lives in {module/directory}
|
||||||
|
|
||||||
|
**From FR Categories (if no epics):**
|
||||||
|
> FR Category: {name} → Lives in {module/directory}
|
||||||
|
|
||||||
|
Identify cross-cutting concerns (auth, logging, shared UI) and map them to shared locations.
|
||||||
|
|
||||||
|
### 5.2 Create Complete Project Tree
|
||||||
|
|
||||||
|
Generate a comprehensive, specific directory tree — not generic placeholders. Include:
|
||||||
|
- All root config files (`package.json`, build config, env files, CI config)
|
||||||
|
- Full `src/` structure matching the chosen starter and patterns
|
||||||
|
- Test organization
|
||||||
|
- Build/distribution structure
|
||||||
|
|
||||||
|
Base the structure on the actual starter chosen in Phase 2 and all patterns from Phase 4.
|
||||||
|
|
||||||
|
### 5.3 Define Architectural Boundaries
|
||||||
|
|
||||||
|
**API Boundaries:** External endpoints, internal service interfaces, auth boundaries, data access layer.
|
||||||
|
|
||||||
|
**Component Boundaries:** Frontend component communication, state management scope, service contracts.
|
||||||
|
|
||||||
|
**Data Boundaries:** Schema ownership, caching scope, external data integration points.
|
||||||
|
|
||||||
|
### 5.4 Create Explicit Requirement Mapping
|
||||||
|
|
||||||
|
For each epic or FR category, document exactly which directories/files implement it:
|
||||||
|
|
||||||
|
```
|
||||||
|
Epic: User Management
|
||||||
|
→ Components: src/components/features/users/
|
||||||
|
→ Services: src/services/users/
|
||||||
|
→ API Routes: src/app/api/users/
|
||||||
|
→ Schema: prisma/schema.prisma (User model)
|
||||||
|
→ Tests: tests/features/users/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.5 Generate Content
|
||||||
|
|
||||||
|
````markdown
|
||||||
|
## Project Structure & Boundaries
|
||||||
|
|
||||||
|
### Complete Project Directory Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
{full project tree}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Architectural Boundaries
|
||||||
|
|
||||||
|
**API Boundaries:**
|
||||||
|
{definitions}
|
||||||
|
|
||||||
|
**Component Boundaries:**
|
||||||
|
{patterns}
|
||||||
|
|
||||||
|
**Data Boundaries:**
|
||||||
|
{patterns}
|
||||||
|
|
||||||
|
### Requirements to Structure Mapping
|
||||||
|
|
||||||
|
{epic/FR mapping to directories}
|
||||||
|
|
||||||
|
### Cross-Cutting Concerns
|
||||||
|
{shared functionality locations}
|
||||||
|
|
||||||
|
### Integration Points
|
||||||
|
|
||||||
|
**Internal Communication:**
|
||||||
|
{how components communicate}
|
||||||
|
|
||||||
|
**External Integrations:**
|
||||||
|
{third-party service points}
|
||||||
|
|
||||||
|
**Data Flow:**
|
||||||
|
{how data moves through the system}
|
||||||
|
````
|
||||||
|
|
||||||
|
### 5.6 A/P/C Menu
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Explore innovative project organization approaches
|
||||||
|
> **[P] Party Mode** — Review structure from different development perspectives
|
||||||
|
> **[C] Continue** — Save structure and move to Phase 6
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **C:** Append content. Update `stepsCompleted: [1, 2, 3, 4, 5]`. Proceed to Phase 6.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 6 — ARCHITECTURE VALIDATION
|
||||||
|
|
||||||
|
**Goal:** Validate that the architecture is coherent, complete, and ready to guide implementation.
|
||||||
|
|
||||||
|
### 6.1 Coherence Validation
|
||||||
|
|
||||||
|
Check that all decisions work together:
|
||||||
|
- Do all technology choices work together without conflicts?
|
||||||
|
- Are all library versions compatible?
|
||||||
|
- Do patterns align with the technology stack?
|
||||||
|
- Are there any contradictory decisions?
|
||||||
|
- Does the project structure support all architectural decisions?
|
||||||
|
|
||||||
|
### 6.2 Requirements Coverage
|
||||||
|
|
||||||
|
Verify all requirements are architecturally supported:
|
||||||
|
- Every epic/FR has a location in the structure
|
||||||
|
- All NFRs (performance, security, compliance) are addressed
|
||||||
|
- Cross-cutting concerns are fully covered
|
||||||
|
- Cross-epic dependencies are handled
|
||||||
|
|
||||||
|
### 6.3 Implementation Readiness
|
||||||
|
|
||||||
|
Can AI agents implement this consistently?
|
||||||
|
- Are all critical decisions documented with current versions?
|
||||||
|
- Are patterns comprehensive enough to prevent conflicts?
|
||||||
|
- Are consistency rules clear and enforceable?
|
||||||
|
- Are examples provided for major patterns?
|
||||||
|
- Is the project structure complete and specific (no vague placeholders)?
|
||||||
|
|
||||||
|
### 6.4 Gap Analysis
|
||||||
|
|
||||||
|
Classify any gaps found:
|
||||||
|
|
||||||
|
**Critical Gaps** (must resolve before implementation):
|
||||||
|
- Missing decisions that block implementation
|
||||||
|
- Incomplete patterns causing potential conflicts
|
||||||
|
- Undefined integration points
|
||||||
|
|
||||||
|
**Important Gaps** (should address):
|
||||||
|
- Areas needing more specification
|
||||||
|
- Patterns that could be more comprehensive
|
||||||
|
|
||||||
|
**Nice-to-Have Gaps** (defer if needed):
|
||||||
|
- Additional patterns
|
||||||
|
- Supplementary documentation
|
||||||
|
|
||||||
|
Present any critical gaps to the user and facilitate resolution before continuing.
|
||||||
|
|
||||||
|
### 6.5 Generate Validation Content
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Architecture Validation Results
|
||||||
|
|
||||||
|
### Coherence Validation
|
||||||
|
|
||||||
|
**Decision Compatibility:** {assessment}
|
||||||
|
**Pattern Consistency:** {verification}
|
||||||
|
**Structure Alignment:** {confirmation}
|
||||||
|
|
||||||
|
### Requirements Coverage
|
||||||
|
|
||||||
|
**Epic/Feature Coverage:** {verification}
|
||||||
|
**Functional Requirements:** {confirmation}
|
||||||
|
**Non-Functional Requirements:** {verification}
|
||||||
|
|
||||||
|
### Implementation Readiness
|
||||||
|
|
||||||
|
**Decision Completeness:** {assessment}
|
||||||
|
**Structure Completeness:** {evaluation}
|
||||||
|
**Pattern Completeness:** {verification}
|
||||||
|
|
||||||
|
### Gap Analysis
|
||||||
|
{findings with priority levels}
|
||||||
|
|
||||||
|
### Architecture Completeness Checklist
|
||||||
|
|
||||||
|
**Requirements Analysis**
|
||||||
|
- [ ] Project context thoroughly analyzed
|
||||||
|
- [ ] Scale and complexity assessed
|
||||||
|
- [ ] Technical constraints identified
|
||||||
|
- [ ] Cross-cutting concerns mapped
|
||||||
|
|
||||||
|
**Architectural Decisions**
|
||||||
|
- [ ] Critical decisions documented with versions
|
||||||
|
- [ ] Technology stack fully specified
|
||||||
|
- [ ] Integration patterns defined
|
||||||
|
- [ ] Performance considerations addressed
|
||||||
|
|
||||||
|
**Implementation Patterns**
|
||||||
|
- [ ] Naming conventions established
|
||||||
|
- [ ] Structure patterns defined
|
||||||
|
- [ ] Communication patterns specified
|
||||||
|
- [ ] Process patterns documented
|
||||||
|
|
||||||
|
**Project Structure**
|
||||||
|
- [ ] Complete directory structure defined
|
||||||
|
- [ ] Component boundaries established
|
||||||
|
- [ ] Integration points mapped
|
||||||
|
- [ ] Requirements-to-structure mapping complete
|
||||||
|
|
||||||
|
### Architecture Readiness Assessment
|
||||||
|
|
||||||
|
**Overall Status:** {READY FOR IMPLEMENTATION / NEEDS REVISION}
|
||||||
|
**Confidence Level:** {high / medium / low}
|
||||||
|
|
||||||
|
**Key Strengths:**
|
||||||
|
{list}
|
||||||
|
|
||||||
|
**Areas for Future Enhancement:**
|
||||||
|
{list}
|
||||||
|
|
||||||
|
### Implementation Handoff
|
||||||
|
|
||||||
|
**AI Agent Guidelines:**
|
||||||
|
- Follow all architectural decisions exactly as documented
|
||||||
|
- Use implementation patterns consistently across all components
|
||||||
|
- Respect project structure and boundaries
|
||||||
|
- Refer to this document for all architectural questions
|
||||||
|
|
||||||
|
**First Implementation Step:**
|
||||||
|
{starter command or first architectural action}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6.6 A/P/C Menu
|
||||||
|
|
||||||
|
> **[A] Advanced Elicitation** — Address complex architectural concerns found during validation
|
||||||
|
> **[P] Party Mode** — Review validation from different implementation perspectives
|
||||||
|
> **[C] Continue** — Complete the architecture
|
||||||
|
|
||||||
|
**STOP — wait for selection.**
|
||||||
|
|
||||||
|
- **C:** Append content. Update `stepsCompleted: [1, 2, 3, 4, 5, 6]`. Proceed to Phase 7.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PHASE 7 — COMPLETION & HANDOFF
|
||||||
|
|
||||||
|
### 7.1 Celebrate
|
||||||
|
|
||||||
|
Both you and the user accomplished something significant. Give a genuine, enthusiastic summary of what was achieved together.
|
||||||
|
|
||||||
|
### 7.2 Finalize Document Frontmatter
|
||||||
|
|
||||||
|
Update the output document frontmatter:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
stepsCompleted: [1, 2, 3, 4, 5, 6, 7]
|
||||||
|
workflowType: 'architecture'
|
||||||
|
status: 'complete'
|
||||||
|
completedAt: '{today}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7.3 Completion Summary
|
||||||
|
|
||||||
|
Present:
|
||||||
|
|
||||||
|
> "🎉 Your Solution Design Document is complete!
|
||||||
|
>
|
||||||
|
> **Saved to:** `{output_path}`
|
||||||
|
>
|
||||||
|
> **What we built together:**
|
||||||
|
> - ✅ Requirements analysis ({N} FRs, {N} NFRs documented)
|
||||||
|
> - ✅ Tech stack selected: {stack summary}
|
||||||
|
> - ✅ {N} core architectural decisions made
|
||||||
|
> - ✅ Comprehensive naming, structure, and process patterns
|
||||||
|
> - ✅ Complete project directory structure
|
||||||
|
> - ✅ Full architecture validation
|
||||||
|
>
|
||||||
|
> **Your first step:** {starter command or first implementation action}
|
||||||
|
>
|
||||||
|
> I'm here to answer any questions about the architecture document."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ADVANCED ELICITATION PROTOCOL (when [A] is selected)
|
||||||
|
|
||||||
|
Apply structured questioning to deepen understanding:
|
||||||
|
|
||||||
|
1. **Challenge assumptions** — "We're assuming {X}. What if that's wrong?"
|
||||||
|
2. **Explore edge cases** — "What happens when {failure scenario}?"
|
||||||
|
3. **Probe for hidden constraints** — "Are there any compliance, budget, or team constraints we haven't discussed?"
|
||||||
|
4. **Question defaults** — "We defaulted to {X}. Have you considered {Y}?"
|
||||||
|
5. **Surface dependencies** — "Does this decision affect {other concern}?"
|
||||||
|
|
||||||
|
Present findings and ask: "Accept these enhancements? (y/n)". Then return to A/P/C menu.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PARTY MODE PROTOCOL (when [P] is selected)
|
||||||
|
|
||||||
|
Adopt 3 distinct architectural personas and give each a voice:
|
||||||
|
|
||||||
|
- **The Security Hawk** — Focuses on threats, vulnerabilities, and compliance
|
||||||
|
- **The Performance Engineer** — Focuses on speed, efficiency, and scalability
|
||||||
|
- **The Simplicity Advocate** — Focuses on maintainability, developer experience, and YAGNI
|
||||||
|
|
||||||
|
Each persona reviews the current content and offers their perspective. Present all three views. Ask: "Accept any of these changes? (y/n)". Return to A/P/C menu.
|
||||||
Loading…
Reference in New Issue