mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-06 16:31:12 +08:00
- Introduced `document-standards.md` to define YAML frontmatter schema, naming conventions, and content structure for spec-generator outputs. - Created `quality-gates.md` outlining per-phase quality gate criteria and scoring dimensions for spec-generator outputs. - Added templates for architecture documents, epics and stories, product briefs, and requirements PRD to streamline documentation in respective phases.
6.5 KiB
6.5 KiB
Architecture Document Template (Directory Structure)
Template for generating architecture decision documents as a directory of individual ADR files in Phase 4.
Usage Context
| Phase | Usage |
|---|---|
| Phase 4 (Architecture) | Generate architecture/ directory from requirements analysis |
| Output Location | {workDir}/architecture/ |
Output Structure
{workDir}/architecture/
├── _index.md # Overview, components, tech stack, data model, security
├── ADR-001-{slug}.md # Individual Architecture Decision Record
├── ADR-002-{slug}.md
└── ...
Template: _index.md
---
session_id: {session_id}
phase: 4
document_type: architecture-index
status: draft
generated_at: {timestamp}
version: 1
dependencies:
- ../spec-config.json
- ../product-brief.md
- ../requirements/_index.md
---
# Architecture: {product_name}
{executive_summary - high-level architecture approach and key decisions}
## System Overview
### Architecture Style
{description of chosen architecture style: microservices, monolith, serverless, etc.}
### System Context Diagram
```mermaid
C4Context
title System Context Diagram
Person(user, "User", "Primary user")
System(system, "{product_name}", "Core system")
System_Ext(ext1, "{external_system}", "{description}")
Rel(user, system, "Uses")
Rel(system, ext1, "Integrates with")
Component Architecture
Component Diagram
graph TD
subgraph "{product_name}"
A[Component A] --> B[Component B]
B --> C[Component C]
A --> D[Component D]
end
B --> E[External Service]
Component Descriptions
| Component | Responsibility | Technology | Dependencies |
|---|---|---|---|
| {component_name} | {what it does} | {tech stack} | {depends on} |
Technology Stack
Core Technologies
| Layer | Technology | Version | Rationale |
|---|---|---|---|
| Frontend | {technology} | {version} | {why chosen} |
| Backend | {technology} | {version} | {why chosen} |
| Database | {technology} | {version} | {why chosen} |
| Infrastructure | {technology} | {version} | {why chosen} |
Key Libraries & Frameworks
| Library | Purpose | License |
|---|---|---|
| {library_name} | {purpose} | {license} |
Architecture Decision Records
| ADR | Title | Status | Key Choice |
|---|---|---|---|
| ADR-001 | {title} | Accepted | {one-line summary} |
| ADR-002 | {title} | Accepted | {one-line summary} |
| ADR-003 | {title} | Proposed | {one-line summary} |
Data Architecture
Data Model
erDiagram
ENTITY_A ||--o{ ENTITY_B : "has many"
ENTITY_A {
string id PK
string name
datetime created_at
}
ENTITY_B {
string id PK
string entity_a_id FK
string value
}
Data Storage Strategy
| Data Type | Storage | Retention | Backup |
|---|---|---|---|
| {type} | {storage solution} | {retention policy} | {backup strategy} |
API Design
API Overview
| Endpoint | Method | Purpose | Auth |
|---|---|---|---|
| {/api/resource} | {GET/POST/etc} | {purpose} | {auth type} |
Security Architecture
Security Controls
| Control | Implementation | Requirement |
|---|---|---|
| Authentication | {approach} | NFR-S-{NNN} |
| Authorization | {approach} | NFR-S-{NNN} |
| Data Protection | {approach} | NFR-S-{NNN} |
Infrastructure & Deployment
Deployment Architecture
{description of deployment model: containers, serverless, VMs, etc.}
Environment Strategy
| Environment | Purpose | Configuration |
|---|---|---|
| Development | Local development | {config} |
| Staging | Pre-production testing | {config} |
| Production | Live system | {config} |
Codebase Integration
{if has_codebase is true:}
Existing Code Mapping
| New Component | Existing Module | Integration Type | Notes |
|---|---|---|---|
| {component} | {existing module path} | Extend/Replace/New | {notes} |
Migration Notes
{any migration considerations for existing code}
Quality Attributes
| Attribute | Target | Measurement | ADR Reference |
|---|---|---|---|
| Performance | {target} | {how measured} | ADR-{NNN} |
| Scalability | {target} | {how measured} | ADR-{NNN} |
| Reliability | {target} | {how measured} | ADR-{NNN} |
Risks & Mitigations
| Risk | Impact | Probability | Mitigation |
|---|---|---|---|
| {risk} | High/Medium/Low | High/Medium/Low | {mitigation approach} |
Open Questions
- {architectural question 1}
- {architectural question 2}
References
- Derived from: Requirements, Product Brief
- Next: Epics & Stories
---
## Template: ADR-NNN-{slug}.md (Individual Architecture Decision Record)
```markdown
---
id: ADR-{NNN}
status: Accepted
traces_to: [{REQ-NNN}, {NFR-X-NNN}]
date: {timestamp}
---
# ADR-{NNN}: {decision_title}
## Context
{what is the situation that motivates this decision}
## Decision
{what is the chosen approach}
## Alternatives Considered
| Option | Pros | Cons |
|--------|------|------|
| {option_1 - chosen} | {pros} | {cons} |
| {option_2} | {pros} | {cons} |
| {option_3} | {pros} | {cons} |
## Consequences
- **Positive**: {positive outcomes}
- **Negative**: {tradeoffs accepted}
- **Risks**: {risks to monitor}
## Traces
- **Requirements**: [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md), [NFR-X-{NNN}](../requirements/NFR-X-{NNN}-{slug}.md)
- **Implemented by**: [EPIC-{NNN}](../epics/EPIC-{NNN}-{slug}.md) (added in Phase 5)
Variable Descriptions
| Variable | Source | Description |
|---|---|---|
{session_id} |
spec-config.json | Session identifier |
{timestamp} |
Runtime | ISO8601 generation timestamp |
{product_name} |
product-brief.md | Product/feature name |
{NNN} |
Auto-increment | ADR/requirement number |
{slug} |
Auto-generated | Kebab-case from decision title |
{has_codebase} |
spec-config.json | Whether existing codebase exists |