musubi-sdd 3.0.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/musubi-browser.js +0 -0
- package/bin/musubi-change.js +623 -10
- package/bin/musubi-convert.js +0 -0
- package/bin/musubi-gui.js +0 -0
- package/bin/musubi-orchestrate.js +456 -0
- package/bin/musubi-trace.js +393 -0
- package/bin/musubi-validate.js +0 -10
- package/package.json +3 -2
- package/src/analyzers/impact-analyzer.js +682 -0
- package/src/integrations/cicd.js +782 -0
- package/src/integrations/documentation.js +740 -0
- package/src/integrations/examples.js +789 -0
- package/src/integrations/index.js +23 -0
- package/src/integrations/platforms.js +929 -0
- package/src/managers/delta-spec.js +484 -0
- package/src/monitoring/incident-manager.js +890 -0
- package/src/monitoring/index.js +633 -0
- package/src/monitoring/observability.js +938 -0
- package/src/monitoring/release-manager.js +622 -0
- package/src/orchestration/index.js +168 -0
- package/src/orchestration/orchestration-engine.js +409 -0
- package/src/orchestration/pattern-registry.js +319 -0
- package/src/orchestration/patterns/auto.js +386 -0
- package/src/orchestration/patterns/group-chat.js +395 -0
- package/src/orchestration/patterns/human-in-loop.js +506 -0
- package/src/orchestration/patterns/nested.js +322 -0
- package/src/orchestration/patterns/sequential.js +278 -0
- package/src/orchestration/patterns/swarm.js +395 -0
- package/src/orchestration/workflow-orchestrator.js +738 -0
- package/src/reporters/coverage-report.js +452 -0
- package/src/reporters/traceability-matrix-report.js +684 -0
- package/src/steering/advanced-validation.js +812 -0
- package/src/steering/auto-updater.js +670 -0
- package/src/steering/index.js +119 -0
- package/src/steering/quality-metrics.js +650 -0
- package/src/steering/template-constraints.js +789 -0
- package/src/templates/agents/claude-code/skills/agent-assistant/SKILL.md +22 -0
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/mlops-guide.md +350 -0
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/model-card-template.md +246 -0
- package/src/templates/agents/claude-code/skills/api-designer/api-patterns.md +336 -0
- package/src/templates/agents/claude-code/skills/api-designer/openapi-template.md +376 -0
- package/src/templates/agents/claude-code/skills/bug-hunter/root-cause-analysis.md +177 -0
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/dependency-graph-patterns.md +348 -0
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/impact-analysis-template.md +246 -0
- package/src/templates/agents/claude-code/skills/cloud-architect/aws-patterns.md +239 -0
- package/src/templates/agents/claude-code/skills/cloud-architect/azure-patterns.md +300 -0
- package/src/templates/agents/claude-code/skills/cloud-architect/terraform-templates/azure-webapp.tf +337 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/best-practices.md +155 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/review-checklist.md +184 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/review-standards.md +272 -0
- package/src/templates/agents/claude-code/skills/constitution-enforcer/constitutional-articles.md +449 -0
- package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +375 -0
- package/src/templates/agents/claude-code/skills/database-administrator/backup-recovery.md +331 -0
- package/src/templates/agents/claude-code/skills/database-administrator/tuning-guide.md +314 -0
- package/src/templates/agents/claude-code/skills/database-schema-designer/schema-patterns.md +335 -0
- package/src/templates/agents/claude-code/skills/devops-engineer/ci-cd-templates.md +443 -0
- package/src/templates/agents/claude-code/skills/devops-engineer/pipeline-templates/github-actions.yml +311 -0
- package/src/templates/agents/claude-code/skills/devops-engineer/pipeline-templates/gitlab-ci.yml +255 -0
- package/src/templates/agents/claude-code/skills/issue-resolver/SKILL.md +21 -0
- package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +90 -28
- package/src/templates/agents/claude-code/skills/orchestrator/patterns.md +266 -0
- package/src/templates/agents/claude-code/skills/orchestrator/selection-matrix.md +185 -0
- package/src/templates/agents/claude-code/skills/performance-engineer/optimization-playbook.md +306 -0
- package/src/templates/agents/claude-code/skills/performance-optimizer/benchmark-template.md +272 -0
- package/src/templates/agents/claude-code/skills/performance-optimizer/optimization-patterns.md +273 -0
- package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +32 -0
- package/src/templates/agents/claude-code/skills/project-manager/agile-ceremonies.md +283 -0
- package/src/templates/agents/claude-code/skills/project-manager/project-templates.md +345 -0
- package/src/templates/agents/claude-code/skills/quality-assurance/qa-plan-template.md +219 -0
- package/src/templates/agents/claude-code/skills/release-coordinator/feature-flag-guide.md +312 -0
- package/src/templates/agents/claude-code/skills/release-coordinator/release-plan-template.md +230 -0
- package/src/templates/agents/claude-code/skills/requirements-analyst/ears-format.md +259 -0
- package/src/templates/agents/claude-code/skills/requirements-analyst/validation-rules.md +359 -0
- package/src/templates/agents/claude-code/skills/security-auditor/audit-checklists.md +243 -0
- package/src/templates/agents/claude-code/skills/security-auditor/owasp-top-10.md +349 -0
- package/src/templates/agents/claude-code/skills/security-auditor/vulnerability-patterns.md +295 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +27 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/incident-response-template.md +286 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/observability-patterns.md +359 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/slo-sli-guide.md +302 -0
- package/src/templates/agents/claude-code/skills/software-developer/solid-principles.md +348 -0
- package/src/templates/agents/claude-code/skills/software-developer/test-first-workflow.md +370 -0
- package/src/templates/agents/claude-code/skills/steering/SKILL.md +30 -0
- package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +328 -0
- package/src/templates/agents/claude-code/skills/system-architect/adr-template.md +295 -0
- package/src/templates/agents/claude-code/skills/system-architect/c4-model-guide.md +328 -0
- package/src/templates/agents/claude-code/skills/technical-writer/doc-templates/documentation-templates.md +436 -0
- package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +21 -0
- package/src/templates/agents/claude-code/skills/test-engineer/ears-test-mapping.md +444 -0
- package/src/templates/agents/claude-code/skills/test-engineer/test-types.md +425 -0
- package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +131 -0
- package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +227 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +27 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/accessibility-guidelines.md +318 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/design-system-components.md +345 -0
- package/src/templates/agents/codex/AGENTS.md +36 -1
- package/src/templates/agents/cursor/AGENTS.md +36 -1
- package/src/templates/agents/gemini-cli/GEMINI.md +36 -1
- package/src/templates/agents/github-copilot/AGENTS.md +65 -1
- package/src/templates/agents/qwen-code/QWEN.md +36 -1
- package/src/templates/agents/windsurf/AGENTS.md +36 -1
- package/src/templates/shared/delta-spec-template.md +246 -0
- package/src/validators/constitutional-validator.js +494 -0
- package/src/validators/delta-format.js +474 -0
- package/src/validators/traceability-validator.js +561 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
# C4 Model Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The C4 model is a set of hierarchical diagrams for visualizing software architecture at different levels of abstraction. MUSUBI SDD uses C4 for all architecture documentation.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## C4 Diagram Levels
|
|
10
|
+
|
|
11
|
+
### Level 1: System Context Diagram
|
|
12
|
+
|
|
13
|
+
**Purpose**: Shows how the system fits into the world around it.
|
|
14
|
+
|
|
15
|
+
**Scope**: Single software system
|
|
16
|
+
|
|
17
|
+
**Primary Elements**:
|
|
18
|
+
- Your system (center)
|
|
19
|
+
- Users (people)
|
|
20
|
+
- External systems
|
|
21
|
+
|
|
22
|
+
**Audience**: Everyone - both technical and non-technical
|
|
23
|
+
|
|
24
|
+
```mermaid
|
|
25
|
+
C4Context
|
|
26
|
+
title System Context Diagram - E-Commerce Platform
|
|
27
|
+
|
|
28
|
+
Person(customer, "Customer", "A user who purchases products")
|
|
29
|
+
Person(admin, "Admin", "System administrator")
|
|
30
|
+
|
|
31
|
+
System(ecommerce, "E-Commerce Platform", "Allows customers to browse and purchase products")
|
|
32
|
+
|
|
33
|
+
System_Ext(payment, "Payment Gateway", "Processes credit card payments")
|
|
34
|
+
System_Ext(shipping, "Shipping API", "Calculates shipping rates")
|
|
35
|
+
System_Ext(email, "Email Service", "Sends transactional emails")
|
|
36
|
+
|
|
37
|
+
Rel(customer, ecommerce, "Browses, purchases")
|
|
38
|
+
Rel(admin, ecommerce, "Manages products, orders")
|
|
39
|
+
Rel(ecommerce, payment, "Processes payments")
|
|
40
|
+
Rel(ecommerce, shipping, "Gets shipping rates")
|
|
41
|
+
Rel(ecommerce, email, "Sends emails")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Template**:
|
|
45
|
+
```markdown
|
|
46
|
+
## Level 1: System Context
|
|
47
|
+
|
|
48
|
+
### System
|
|
49
|
+
- **Name**: [System Name]
|
|
50
|
+
- **Description**: [What the system does]
|
|
51
|
+
|
|
52
|
+
### Users
|
|
53
|
+
| User | Description |
|
|
54
|
+
|------|-------------|
|
|
55
|
+
| [User Type] | [User description and goals] |
|
|
56
|
+
|
|
57
|
+
### External Systems
|
|
58
|
+
| System | Description | Integration |
|
|
59
|
+
|--------|-------------|-------------|
|
|
60
|
+
| [External System] | [What it does] | [How we integrate] |
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Level 2: Container Diagram
|
|
66
|
+
|
|
67
|
+
**Purpose**: Shows high-level technology choices and how containers communicate.
|
|
68
|
+
|
|
69
|
+
**Scope**: Single software system
|
|
70
|
+
|
|
71
|
+
**Primary Elements**:
|
|
72
|
+
- Containers (applications, data stores, etc.)
|
|
73
|
+
- Relationships between containers
|
|
74
|
+
|
|
75
|
+
**Audience**: Technical people
|
|
76
|
+
|
|
77
|
+
```mermaid
|
|
78
|
+
C4Container
|
|
79
|
+
title Container Diagram - E-Commerce Platform
|
|
80
|
+
|
|
81
|
+
Person(customer, "Customer")
|
|
82
|
+
|
|
83
|
+
Container_Boundary(c1, "E-Commerce Platform") {
|
|
84
|
+
Container(web, "Web Application", "React", "Delivers the web frontend")
|
|
85
|
+
Container(api, "API Server", "Node.js/Express", "Provides REST API")
|
|
86
|
+
Container(worker, "Background Worker", "Node.js", "Processes async tasks")
|
|
87
|
+
ContainerDb(db, "Database", "PostgreSQL", "Stores users, products, orders")
|
|
88
|
+
ContainerDb(cache, "Cache", "Redis", "Caches sessions, products")
|
|
89
|
+
ContainerDb(queue, "Message Queue", "RabbitMQ", "Handles async messaging")
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
System_Ext(payment, "Payment Gateway")
|
|
93
|
+
|
|
94
|
+
Rel(customer, web, "Uses", "HTTPS")
|
|
95
|
+
Rel(web, api, "API calls", "HTTPS/JSON")
|
|
96
|
+
Rel(api, db, "Reads/Writes")
|
|
97
|
+
Rel(api, cache, "Reads/Writes")
|
|
98
|
+
Rel(api, queue, "Publishes")
|
|
99
|
+
Rel(worker, queue, "Consumes")
|
|
100
|
+
Rel(api, payment, "Processes payments", "HTTPS")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Template**:
|
|
104
|
+
```markdown
|
|
105
|
+
## Level 2: Container Diagram
|
|
106
|
+
|
|
107
|
+
### Containers
|
|
108
|
+
|
|
109
|
+
| Container | Technology | Description |
|
|
110
|
+
|-----------|------------|-------------|
|
|
111
|
+
| Web App | React | Frontend SPA |
|
|
112
|
+
| API Server | Node.js/Express | REST API backend |
|
|
113
|
+
| Database | PostgreSQL | Persistent storage |
|
|
114
|
+
| Cache | Redis | Session and data cache |
|
|
115
|
+
| Queue | RabbitMQ | Async message processing |
|
|
116
|
+
|
|
117
|
+
### Communication
|
|
118
|
+
|
|
119
|
+
| From | To | Protocol | Purpose |
|
|
120
|
+
|------|----|-----------| --------|
|
|
121
|
+
| Web App | API Server | HTTPS/REST | API calls |
|
|
122
|
+
| API Server | Database | TCP | Data persistence |
|
|
123
|
+
| API Server | Cache | TCP | Caching |
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### Level 3: Component Diagram
|
|
129
|
+
|
|
130
|
+
**Purpose**: Shows how a container is made up of components.
|
|
131
|
+
|
|
132
|
+
**Scope**: Single container
|
|
133
|
+
|
|
134
|
+
**Primary Elements**:
|
|
135
|
+
- Components (modules, services, controllers)
|
|
136
|
+
- Relationships between components
|
|
137
|
+
|
|
138
|
+
**Audience**: Developers
|
|
139
|
+
|
|
140
|
+
```mermaid
|
|
141
|
+
C4Component
|
|
142
|
+
title Component Diagram - API Server
|
|
143
|
+
|
|
144
|
+
Container_Boundary(api, "API Server") {
|
|
145
|
+
Component(auth, "Auth Controller", "Express Router", "Handles authentication")
|
|
146
|
+
Component(user, "User Controller", "Express Router", "User CRUD operations")
|
|
147
|
+
Component(order, "Order Controller", "Express Router", "Order management")
|
|
148
|
+
Component(authService, "Auth Service", "TypeScript", "Authentication logic")
|
|
149
|
+
Component(userService, "User Service", "TypeScript", "User business logic")
|
|
150
|
+
Component(orderService, "Order Service", "TypeScript", "Order business logic")
|
|
151
|
+
Component(repo, "Repository Layer", "TypeScript", "Data access abstraction")
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
ContainerDb(db, "Database", "PostgreSQL")
|
|
155
|
+
|
|
156
|
+
Rel(auth, authService, "Uses")
|
|
157
|
+
Rel(user, userService, "Uses")
|
|
158
|
+
Rel(order, orderService, "Uses")
|
|
159
|
+
Rel(authService, repo, "Uses")
|
|
160
|
+
Rel(userService, repo, "Uses")
|
|
161
|
+
Rel(orderService, repo, "Uses")
|
|
162
|
+
Rel(repo, db, "Reads/Writes")
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Template**:
|
|
166
|
+
```markdown
|
|
167
|
+
## Level 3: Component Diagram - [Container Name]
|
|
168
|
+
|
|
169
|
+
### Components
|
|
170
|
+
|
|
171
|
+
| Component | Type | Responsibility |
|
|
172
|
+
|-----------|------|----------------|
|
|
173
|
+
| Auth Controller | Controller | Handle auth endpoints |
|
|
174
|
+
| Auth Service | Service | Authentication logic |
|
|
175
|
+
| User Repository | Repository | User data access |
|
|
176
|
+
|
|
177
|
+
### Dependencies
|
|
178
|
+
|
|
179
|
+
| Component | Depends On | Purpose |
|
|
180
|
+
|-----------|------------|---------|
|
|
181
|
+
| Auth Controller | Auth Service | Business logic |
|
|
182
|
+
| Auth Service | User Repository | Data access |
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Level 4: Code Diagram (Optional)
|
|
188
|
+
|
|
189
|
+
**Purpose**: Shows how a component is implemented.
|
|
190
|
+
|
|
191
|
+
**Scope**: Single component
|
|
192
|
+
|
|
193
|
+
**Primary Elements**:
|
|
194
|
+
- Classes, interfaces, modules
|
|
195
|
+
- Relationships (inheritance, composition)
|
|
196
|
+
|
|
197
|
+
**Audience**: Developers
|
|
198
|
+
|
|
199
|
+
**Note**: Often generated automatically from code.
|
|
200
|
+
|
|
201
|
+
```mermaid
|
|
202
|
+
classDiagram
|
|
203
|
+
class AuthService {
|
|
204
|
+
-userRepository: UserRepository
|
|
205
|
+
-jwtService: JwtService
|
|
206
|
+
+login(email, password): AuthResult
|
|
207
|
+
+register(userData): User
|
|
208
|
+
+validateToken(token): boolean
|
|
209
|
+
+refreshToken(token): string
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
class UserRepository {
|
|
213
|
+
+findByEmail(email): User
|
|
214
|
+
+create(user): User
|
|
215
|
+
+update(id, data): User
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
class JwtService {
|
|
219
|
+
+sign(payload): string
|
|
220
|
+
+verify(token): Payload
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
AuthService --> UserRepository
|
|
224
|
+
AuthService --> JwtService
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## C4 Diagram Notation
|
|
230
|
+
|
|
231
|
+
### Element Types
|
|
232
|
+
|
|
233
|
+
| Element | Notation | Description |
|
|
234
|
+
|---------|----------|-------------|
|
|
235
|
+
| Person |  | A user of the system |
|
|
236
|
+
| System |  | The system being described |
|
|
237
|
+
| External System |  | External dependency |
|
|
238
|
+
| Container |  | Deployable unit |
|
|
239
|
+
| Component |  | Code module |
|
|
240
|
+
| Database |  | Data storage |
|
|
241
|
+
|
|
242
|
+
### Relationship Arrows
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
[Source] --"description"--> [Target]
|
|
246
|
+
|
|
247
|
+
Examples:
|
|
248
|
+
- Customer --> Web App : "Uses"
|
|
249
|
+
- API --> Database : "Reads/Writes"
|
|
250
|
+
- Service --> External API : "Calls via HTTPS"
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Best Practices
|
|
256
|
+
|
|
257
|
+
### Do
|
|
258
|
+
|
|
259
|
+
1. **Start from Level 1**: Always create context diagram first
|
|
260
|
+
2. **Use consistent notation**: Follow C4 conventions
|
|
261
|
+
3. **Include descriptions**: Every element needs a description
|
|
262
|
+
4. **Show technology choices**: Especially at container/component level
|
|
263
|
+
5. **Keep it simple**: If diagram is too complex, zoom in
|
|
264
|
+
|
|
265
|
+
### Don't
|
|
266
|
+
|
|
267
|
+
1. **Don't mix levels**: Each diagram should be at one level
|
|
268
|
+
2. **Don't show too much**: 10-15 elements maximum per diagram
|
|
269
|
+
3. **Don't skip levels**: Create all relevant levels
|
|
270
|
+
4. **Don't forget relationships**: Show how elements communicate
|
|
271
|
+
5. **Don't use generic names**: Be specific (not "Database" but "User Database")
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## MUSUBI C4 Template
|
|
276
|
+
|
|
277
|
+
```markdown
|
|
278
|
+
# Architecture Design: [Feature Name]
|
|
279
|
+
|
|
280
|
+
## Level 1: System Context
|
|
281
|
+
|
|
282
|
+
[Mermaid diagram]
|
|
283
|
+
|
|
284
|
+
### Systems and Users
|
|
285
|
+
| Element | Type | Description |
|
|
286
|
+
|---------|------|-------------|
|
|
287
|
+
| | | |
|
|
288
|
+
|
|
289
|
+
## Level 2: Container Diagram
|
|
290
|
+
|
|
291
|
+
[Mermaid diagram]
|
|
292
|
+
|
|
293
|
+
### Containers
|
|
294
|
+
| Container | Technology | Purpose |
|
|
295
|
+
|-----------|------------|---------|
|
|
296
|
+
| | | |
|
|
297
|
+
|
|
298
|
+
## Level 3: Component Diagram - [Container]
|
|
299
|
+
|
|
300
|
+
[Mermaid diagram]
|
|
301
|
+
|
|
302
|
+
### Components
|
|
303
|
+
| Component | Type | Responsibility |
|
|
304
|
+
|-----------|------|----------------|
|
|
305
|
+
| | | |
|
|
306
|
+
|
|
307
|
+
## Technology Decisions
|
|
308
|
+
|
|
309
|
+
See ADR-XXX for rationale.
|
|
310
|
+
|
|
311
|
+
## Requirements Traceability
|
|
312
|
+
|
|
313
|
+
| REQ ID | Addressed By |
|
|
314
|
+
|--------|--------------|
|
|
315
|
+
| REQ-001 | Auth Service |
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Tools for C4 Diagrams
|
|
321
|
+
|
|
322
|
+
| Tool | Format | Notes |
|
|
323
|
+
|------|--------|-------|
|
|
324
|
+
| Mermaid | Markdown | Recommended - works in GitHub |
|
|
325
|
+
| PlantUML | Text | Rich features |
|
|
326
|
+
| Structurizr | DSL | Official C4 tooling |
|
|
327
|
+
| Draw.io | Visual | Easy for non-technical |
|
|
328
|
+
| Lucidchart | Visual | Collaboration features |
|