musubi-sdd 5.0.0 → 5.6.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.
Files changed (232) hide show
  1. package/README.ja.md +106 -48
  2. package/README.md +110 -32
  3. package/bin/musubi-analyze.js +74 -67
  4. package/bin/musubi-browser.js +27 -26
  5. package/bin/musubi-change.js +48 -47
  6. package/bin/musubi-checkpoint.js +10 -7
  7. package/bin/musubi-convert.js +25 -25
  8. package/bin/musubi-costs.js +27 -10
  9. package/bin/musubi-gui.js +52 -46
  10. package/bin/musubi-init.js +1952 -10
  11. package/bin/musubi-orchestrate.js +327 -239
  12. package/bin/musubi-remember.js +69 -56
  13. package/bin/musubi-resolve.js +53 -45
  14. package/bin/musubi-trace.js +51 -22
  15. package/bin/musubi-validate.js +39 -30
  16. package/bin/musubi-workflow.js +33 -34
  17. package/bin/musubi.js +39 -2
  18. package/package.json +1 -1
  19. package/src/agents/agent-loop.js +94 -95
  20. package/src/agents/agentic/code-generator.js +119 -109
  21. package/src/agents/agentic/code-reviewer.js +105 -108
  22. package/src/agents/agentic/index.js +4 -4
  23. package/src/agents/browser/action-executor.js +13 -13
  24. package/src/agents/browser/ai-comparator.js +11 -10
  25. package/src/agents/browser/context-manager.js +6 -6
  26. package/src/agents/browser/index.js +5 -5
  27. package/src/agents/browser/nl-parser.js +31 -46
  28. package/src/agents/browser/screenshot.js +2 -2
  29. package/src/agents/browser/test-generator.js +6 -4
  30. package/src/agents/function-tool.js +71 -65
  31. package/src/agents/index.js +7 -7
  32. package/src/agents/schema-generator.js +98 -94
  33. package/src/analyzers/ast-extractor.js +164 -145
  34. package/src/analyzers/codegraph-auto-update.js +858 -0
  35. package/src/analyzers/complexity-analyzer.js +536 -0
  36. package/src/analyzers/context-optimizer.js +247 -125
  37. package/src/analyzers/impact-analyzer.js +1 -1
  38. package/src/analyzers/large-project-analyzer.js +766 -0
  39. package/src/analyzers/repository-map.js +83 -80
  40. package/src/analyzers/security-analyzer.js +19 -11
  41. package/src/analyzers/stuck-detector.js +19 -17
  42. package/src/converters/index.js +78 -57
  43. package/src/converters/ir/types.js +12 -12
  44. package/src/converters/parsers/musubi-parser.js +134 -126
  45. package/src/converters/parsers/openapi-parser.js +70 -53
  46. package/src/converters/parsers/speckit-parser.js +239 -175
  47. package/src/converters/writers/musubi-writer.js +123 -118
  48. package/src/converters/writers/speckit-writer.js +124 -113
  49. package/src/generators/rust-migration-generator.js +512 -0
  50. package/src/gui/public/index.html +1365 -1211
  51. package/src/gui/server.js +41 -40
  52. package/src/gui/services/file-watcher.js +23 -8
  53. package/src/gui/services/project-scanner.js +26 -20
  54. package/src/gui/services/replanning-service.js +27 -23
  55. package/src/gui/services/traceability-service.js +8 -8
  56. package/src/gui/services/workflow-service.js +14 -7
  57. package/src/index.js +151 -0
  58. package/src/integrations/cicd.js +90 -104
  59. package/src/integrations/codegraph-mcp.js +643 -0
  60. package/src/integrations/documentation.js +142 -103
  61. package/src/integrations/examples.js +95 -80
  62. package/src/integrations/github-client.js +17 -17
  63. package/src/integrations/index.js +5 -5
  64. package/src/integrations/mcp/index.js +21 -21
  65. package/src/integrations/mcp/mcp-context-provider.js +76 -78
  66. package/src/integrations/mcp/mcp-discovery.js +74 -72
  67. package/src/integrations/mcp/mcp-tool-registry.js +99 -94
  68. package/src/integrations/mcp-connector.js +70 -66
  69. package/src/integrations/platforms.js +50 -49
  70. package/src/integrations/tool-discovery.js +37 -31
  71. package/src/llm-providers/anthropic-provider.js +11 -11
  72. package/src/llm-providers/base-provider.js +16 -18
  73. package/src/llm-providers/copilot-provider.js +22 -19
  74. package/src/llm-providers/index.js +26 -25
  75. package/src/llm-providers/ollama-provider.js +11 -11
  76. package/src/llm-providers/openai-provider.js +12 -12
  77. package/src/managers/agent-memory.js +36 -24
  78. package/src/managers/checkpoint-manager.js +4 -8
  79. package/src/managers/delta-spec.js +19 -19
  80. package/src/managers/index.js +13 -4
  81. package/src/managers/memory-condenser.js +35 -45
  82. package/src/managers/repo-skill-manager.js +57 -31
  83. package/src/managers/skill-loader.js +25 -22
  84. package/src/managers/skill-tools.js +36 -72
  85. package/src/managers/workflow.js +30 -22
  86. package/src/monitoring/cost-tracker.js +53 -44
  87. package/src/monitoring/incident-manager.js +123 -103
  88. package/src/monitoring/index.js +144 -134
  89. package/src/monitoring/observability.js +82 -59
  90. package/src/monitoring/quality-dashboard.js +51 -39
  91. package/src/monitoring/release-manager.js +70 -50
  92. package/src/orchestration/agent-skill-binding.js +39 -47
  93. package/src/orchestration/error-handler.js +65 -107
  94. package/src/orchestration/guardrails/base-guardrail.js +26 -24
  95. package/src/orchestration/guardrails/guardrail-rules.js +50 -64
  96. package/src/orchestration/guardrails/index.js +5 -5
  97. package/src/orchestration/guardrails/input-guardrail.js +58 -45
  98. package/src/orchestration/guardrails/output-guardrail.js +104 -81
  99. package/src/orchestration/guardrails/safety-check.js +79 -79
  100. package/src/orchestration/index.js +38 -55
  101. package/src/orchestration/mcp-tool-adapters.js +96 -99
  102. package/src/orchestration/orchestration-engine.js +21 -21
  103. package/src/orchestration/pattern-registry.js +60 -45
  104. package/src/orchestration/patterns/auto.js +34 -47
  105. package/src/orchestration/patterns/group-chat.js +59 -65
  106. package/src/orchestration/patterns/handoff.js +67 -65
  107. package/src/orchestration/patterns/human-in-loop.js +51 -72
  108. package/src/orchestration/patterns/nested.js +25 -40
  109. package/src/orchestration/patterns/sequential.js +35 -34
  110. package/src/orchestration/patterns/swarm.js +63 -56
  111. package/src/orchestration/patterns/triage.js +150 -109
  112. package/src/orchestration/reasoning/index.js +9 -9
  113. package/src/orchestration/reasoning/planning-engine.js +143 -140
  114. package/src/orchestration/reasoning/reasoning-engine.js +206 -144
  115. package/src/orchestration/reasoning/self-correction.js +121 -128
  116. package/src/orchestration/replanning/adaptive-goal-modifier.js +107 -112
  117. package/src/orchestration/replanning/alternative-generator.js +37 -42
  118. package/src/orchestration/replanning/config.js +63 -59
  119. package/src/orchestration/replanning/goal-progress-tracker.js +98 -100
  120. package/src/orchestration/replanning/index.js +24 -20
  121. package/src/orchestration/replanning/plan-evaluator.js +49 -50
  122. package/src/orchestration/replanning/plan-monitor.js +32 -28
  123. package/src/orchestration/replanning/proactive-path-optimizer.js +175 -178
  124. package/src/orchestration/replanning/replan-history.js +33 -26
  125. package/src/orchestration/replanning/replanning-engine.js +106 -108
  126. package/src/orchestration/skill-executor.js +107 -109
  127. package/src/orchestration/skill-registry.js +85 -89
  128. package/src/orchestration/workflow-examples.js +228 -231
  129. package/src/orchestration/workflow-executor.js +65 -68
  130. package/src/orchestration/workflow-orchestrator.js +72 -73
  131. package/src/phase4-integration.js +47 -40
  132. package/src/phase5-integration.js +89 -30
  133. package/src/reporters/coverage-report.js +82 -30
  134. package/src/reporters/hierarchical-reporter.js +498 -0
  135. package/src/reporters/traceability-matrix-report.js +29 -20
  136. package/src/resolvers/issue-resolver.js +43 -31
  137. package/src/steering/advanced-validation.js +133 -124
  138. package/src/steering/auto-updater.js +60 -73
  139. package/src/steering/index.js +6 -6
  140. package/src/steering/quality-metrics.js +41 -35
  141. package/src/steering/steering-auto-update.js +83 -86
  142. package/src/steering/steering-validator.js +98 -106
  143. package/src/steering/template-constraints.js +53 -54
  144. package/src/templates/agents/claude-code/CLAUDE.md +32 -32
  145. package/src/templates/agents/claude-code/skills/agent-assistant/SKILL.md +13 -5
  146. package/src/templates/agents/claude-code/skills/ai-ml-engineer/mlops-guide.md +23 -23
  147. package/src/templates/agents/claude-code/skills/ai-ml-engineer/model-card-template.md +60 -41
  148. package/src/templates/agents/claude-code/skills/api-designer/api-patterns.md +27 -19
  149. package/src/templates/agents/claude-code/skills/api-designer/openapi-template.md +11 -7
  150. package/src/templates/agents/claude-code/skills/bug-hunter/SKILL.md +4 -3
  151. package/src/templates/agents/claude-code/skills/bug-hunter/root-cause-analysis.md +37 -15
  152. package/src/templates/agents/claude-code/skills/change-impact-analyzer/dependency-graph-patterns.md +36 -42
  153. package/src/templates/agents/claude-code/skills/change-impact-analyzer/impact-analysis-template.md +69 -60
  154. package/src/templates/agents/claude-code/skills/cloud-architect/aws-patterns.md +31 -38
  155. package/src/templates/agents/claude-code/skills/cloud-architect/azure-patterns.md +28 -23
  156. package/src/templates/agents/claude-code/skills/code-reviewer/SKILL.md +61 -0
  157. package/src/templates/agents/claude-code/skills/code-reviewer/best-practices.md +27 -0
  158. package/src/templates/agents/claude-code/skills/code-reviewer/review-checklist.md +29 -10
  159. package/src/templates/agents/claude-code/skills/code-reviewer/review-standards.md +29 -24
  160. package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +8 -6
  161. package/src/templates/agents/claude-code/skills/constitution-enforcer/constitutional-articles.md +62 -26
  162. package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +35 -16
  163. package/src/templates/agents/claude-code/skills/database-administrator/backup-recovery.md +27 -17
  164. package/src/templates/agents/claude-code/skills/database-administrator/tuning-guide.md +25 -20
  165. package/src/templates/agents/claude-code/skills/database-schema-designer/schema-patterns.md +39 -22
  166. package/src/templates/agents/claude-code/skills/devops-engineer/ci-cd-templates.md +25 -22
  167. package/src/templates/agents/claude-code/skills/issue-resolver/SKILL.md +24 -21
  168. package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +148 -63
  169. package/src/templates/agents/claude-code/skills/orchestrator/patterns.md +35 -16
  170. package/src/templates/agents/claude-code/skills/orchestrator/selection-matrix.md +69 -64
  171. package/src/templates/agents/claude-code/skills/performance-engineer/optimization-playbook.md +47 -47
  172. package/src/templates/agents/claude-code/skills/performance-optimizer/SKILL.md +69 -0
  173. package/src/templates/agents/claude-code/skills/performance-optimizer/benchmark-template.md +63 -45
  174. package/src/templates/agents/claude-code/skills/performance-optimizer/optimization-patterns.md +33 -35
  175. package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +7 -6
  176. package/src/templates/agents/claude-code/skills/project-manager/agile-ceremonies.md +47 -28
  177. package/src/templates/agents/claude-code/skills/project-manager/project-templates.md +94 -78
  178. package/src/templates/agents/claude-code/skills/quality-assurance/SKILL.md +20 -17
  179. package/src/templates/agents/claude-code/skills/quality-assurance/qa-plan-template.md +63 -49
  180. package/src/templates/agents/claude-code/skills/release-coordinator/SKILL.md +5 -5
  181. package/src/templates/agents/claude-code/skills/release-coordinator/feature-flag-guide.md +30 -26
  182. package/src/templates/agents/claude-code/skills/release-coordinator/release-plan-template.md +67 -35
  183. package/src/templates/agents/claude-code/skills/requirements-analyst/ears-format.md +54 -42
  184. package/src/templates/agents/claude-code/skills/requirements-analyst/validation-rules.md +36 -33
  185. package/src/templates/agents/claude-code/skills/security-auditor/SKILL.md +77 -19
  186. package/src/templates/agents/claude-code/skills/security-auditor/audit-checklists.md +24 -24
  187. package/src/templates/agents/claude-code/skills/security-auditor/owasp-top-10.md +61 -20
  188. package/src/templates/agents/claude-code/skills/security-auditor/vulnerability-patterns.md +43 -11
  189. package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +1 -0
  190. package/src/templates/agents/claude-code/skills/site-reliability-engineer/incident-response-template.md +55 -25
  191. package/src/templates/agents/claude-code/skills/site-reliability-engineer/observability-patterns.md +78 -68
  192. package/src/templates/agents/claude-code/skills/site-reliability-engineer/slo-sli-guide.md +73 -53
  193. package/src/templates/agents/claude-code/skills/software-developer/solid-principles.md +83 -37
  194. package/src/templates/agents/claude-code/skills/software-developer/test-first-workflow.md +38 -31
  195. package/src/templates/agents/claude-code/skills/steering/SKILL.md +1 -0
  196. package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +31 -0
  197. package/src/templates/agents/claude-code/skills/system-architect/adr-template.md +25 -7
  198. package/src/templates/agents/claude-code/skills/system-architect/c4-model-guide.md +74 -61
  199. package/src/templates/agents/claude-code/skills/technical-writer/doc-templates/documentation-templates.md +70 -52
  200. package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +2 -0
  201. package/src/templates/agents/claude-code/skills/test-engineer/ears-test-mapping.md +75 -71
  202. package/src/templates/agents/claude-code/skills/test-engineer/test-types.md +85 -63
  203. package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +39 -36
  204. package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +22 -17
  205. package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +1 -0
  206. package/src/templates/agents/claude-code/skills/ui-ux-designer/accessibility-guidelines.md +49 -75
  207. package/src/templates/agents/claude-code/skills/ui-ux-designer/design-system-components.md +71 -59
  208. package/src/templates/agents/codex/AGENTS.md +74 -42
  209. package/src/templates/agents/cursor/AGENTS.md +74 -42
  210. package/src/templates/agents/gemini-cli/GEMINI.md +74 -42
  211. package/src/templates/agents/github-copilot/AGENTS.md +83 -51
  212. package/src/templates/agents/qwen-code/QWEN.md +74 -42
  213. package/src/templates/agents/windsurf/AGENTS.md +74 -42
  214. package/src/templates/architectures/README.md +41 -0
  215. package/src/templates/architectures/clean-architecture/README.md +113 -0
  216. package/src/templates/architectures/event-driven/README.md +162 -0
  217. package/src/templates/architectures/hexagonal/README.md +130 -0
  218. package/src/templates/index.js +6 -1
  219. package/src/templates/locale-manager.js +16 -16
  220. package/src/templates/shared/delta-spec-template.md +20 -13
  221. package/src/templates/shared/github-actions/musubi-issue-resolver.yml +5 -5
  222. package/src/templates/shared/github-actions/musubi-security-check.yml +3 -3
  223. package/src/templates/shared/github-actions/musubi-validate.yml +4 -4
  224. package/src/templates/shared/steering/structure.md +95 -0
  225. package/src/templates/skills/browser-agent.md +21 -16
  226. package/src/templates/skills/web-gui.md +8 -0
  227. package/src/templates/template-constraints.js +50 -53
  228. package/src/validators/advanced-validation.js +30 -36
  229. package/src/validators/constitutional-validator.js +77 -73
  230. package/src/validators/critic-system.js +49 -59
  231. package/src/validators/delta-format.js +59 -55
  232. package/src/validators/traceability-validator.js +7 -11
@@ -52,19 +52,19 @@ interface FeatureFlag {
52
52
 
53
53
  function isFeatureEnabled(flag: FeatureFlag, user: User): boolean {
54
54
  if (!flag.enabled) return false;
55
-
55
+
56
56
  // Check user allowlist
57
57
  if (flag.allowedUsers?.includes(user.id)) return true;
58
-
58
+
59
59
  // Check role allowlist
60
60
  if (flag.allowedRoles?.some(role => user.roles.includes(role))) return true;
61
-
61
+
62
62
  // Check percentage rollout
63
63
  if (flag.percentage !== undefined) {
64
64
  const hash = hashUserId(user.id);
65
65
  return hash % 100 < flag.percentage;
66
66
  }
67
-
67
+
68
68
  return flag.enabled;
69
69
  }
70
70
  ```
@@ -142,14 +142,14 @@ const currentFlags = flags[process.env.NODE_ENV];
142
142
 
143
143
  ```typescript
144
144
  // Good: Clear, descriptive names
145
- 'enable-new-checkout-v2'
146
- 'show-dark-mode-toggle'
147
- 'use-graphql-api'
145
+ 'enable-new-checkout-v2';
146
+ 'show-dark-mode-toggle';
147
+ 'use-graphql-api';
148
148
 
149
149
  // Bad: Vague or cryptic
150
- 'flag1'
151
- 'test'
152
- 'temp'
150
+ 'flag1';
151
+ 'test';
152
+ 'temp';
153
153
  ```
154
154
 
155
155
  ### 2. Default to Off
@@ -165,7 +165,7 @@ function getFlag(name: string): boolean {
165
165
  ```typescript
166
166
  /**
167
167
  * Feature Flag: new-payment-provider
168
- *
168
+ *
169
169
  * Purpose: Enable new Stripe payment integration
170
170
  * Owner: payments-team
171
171
  * Created: 2024-01-15
@@ -192,7 +192,7 @@ describe('Checkout', () => {
192
192
  setFlag('new-checkout', true);
193
193
  // test new checkout
194
194
  });
195
-
195
+
196
196
  it('works with new checkout disabled', () => {
197
197
  setFlag('new-checkout', false);
198
198
  // test legacy checkout
@@ -207,11 +207,11 @@ describe('Checkout', () => {
207
207
  ```typescript
208
208
  class FeatureFlagService {
209
209
  private flags: Map<string, FeatureFlag> = new Map();
210
-
210
+
211
211
  constructor(private config: FlagConfig) {
212
212
  this.loadFlags();
213
213
  }
214
-
214
+
215
215
  async loadFlags(): Promise<void> {
216
216
  // Load from remote config
217
217
  const response = await fetch('/api/flags');
@@ -220,13 +220,13 @@ class FeatureFlagService {
220
220
  this.flags.set(flag.name, flag);
221
221
  });
222
222
  }
223
-
223
+
224
224
  isEnabled(name: string, context?: FlagContext): boolean {
225
225
  const flag = this.flags.get(name);
226
226
  if (!flag) return false;
227
227
  return evaluateFlag(flag, context);
228
228
  }
229
-
229
+
230
230
  getAllFlags(): FeatureFlag[] {
231
231
  return Array.from(this.flags.values());
232
232
  }
@@ -243,7 +243,7 @@ const FeatureFlagContext = createContext<FeatureFlagService>(null);
243
243
 
244
244
  export function FeatureFlagProvider({ children }) {
245
245
  const flagService = useMemo(() => new FeatureFlagService(), []);
246
-
246
+
247
247
  return (
248
248
  <FeatureFlagContext.Provider value={flagService}>
249
249
  {children}
@@ -255,18 +255,18 @@ export function FeatureFlagProvider({ children }) {
255
255
  export function useFeatureFlag(name: string): boolean {
256
256
  const flagService = useContext(FeatureFlagContext);
257
257
  const [enabled, setEnabled] = useState(false);
258
-
258
+
259
259
  useEffect(() => {
260
260
  setEnabled(flagService.isEnabled(name));
261
261
  }, [name, flagService]);
262
-
262
+
263
263
  return enabled;
264
264
  }
265
265
 
266
266
  // Component usage
267
267
  function MyComponent() {
268
268
  const showNewUI = useFeatureFlag('new-ui');
269
-
269
+
270
270
  return showNewUI ? <NewUI /> : <LegacyUI />;
271
271
  }
272
272
  ```
@@ -275,17 +275,18 @@ function MyComponent() {
275
275
 
276
276
  ## Flag Audit Checklist
277
277
 
278
- | Flag Name | Owner | Created | Status | Cleanup Date |
279
- |-----------|-------|---------|--------|--------------|
280
- | new-checkout | @alice | 2024-01 | Active | - |
281
- | dark-mode | @bob | 2024-02 | Sunset | 2024-04-01 |
282
- | old-api | @carol | 2023-06 | Remove | Overdue! |
278
+ | Flag Name | Owner | Created | Status | Cleanup Date |
279
+ | ------------ | ------ | ------- | ------ | ------------ |
280
+ | new-checkout | @alice | 2024-01 | Active | - |
281
+ | dark-mode | @bob | 2024-02 | Sunset | 2024-04-01 |
282
+ | old-api | @carol | 2023-06 | Remove | Overdue! |
283
283
 
284
284
  ---
285
285
 
286
286
  ## Anti-Patterns
287
287
 
288
288
  ### ❌ Too Many Flags
289
+
289
290
  ```typescript
290
291
  // Bad: Feature flag soup
291
292
  if (flagA && flagB && !flagC && (flagD || flagE)) {
@@ -294,14 +295,17 @@ if (flagA && flagB && !flagC && (flagD || flagE)) {
294
295
  ```
295
296
 
296
297
  ### ❌ Permanent Flags
298
+
297
299
  ```typescript
298
300
  // Bad: Flag that's been on for 2 years
299
- if (flags.newLoginPage) { // Added in 2022
301
+ if (flags.newLoginPage) {
302
+ // Added in 2022
300
303
  // This should just be the code now
301
304
  }
302
305
  ```
303
306
 
304
307
  ### ❌ Complex Flag Logic
308
+
305
309
  ```typescript
306
310
  // Bad: Flag with side effects
307
311
  if (flags.experimentX) {
@@ -13,22 +13,24 @@ Template for planning and executing software releases.
13
13
 
14
14
  ## Release Information
15
15
 
16
- | Field | Value |
17
- |-------|-------|
18
- | Version | v[X.Y.Z] |
19
- | Codename | [Optional] |
20
- | Release Date | YYYY-MM-DD |
21
- | Release Manager | [Name] |
22
- | Status | Planning / Ready / Released |
16
+ | Field | Value |
17
+ | --------------- | --------------------------- |
18
+ | Version | v[X.Y.Z] |
19
+ | Codename | [Optional] |
20
+ | Release Date | YYYY-MM-DD |
21
+ | Release Manager | [Name] |
22
+ | Status | Planning / Ready / Released |
23
23
 
24
24
  ---
25
25
 
26
26
  ## 1. Release Summary
27
27
 
28
28
  ### Highlights
29
+
29
30
  [Brief summary of major changes in this release]
30
31
 
31
32
  ### Release Type
33
+
32
34
  - [ ] Major (breaking changes)
33
35
  - [ ] Minor (new features, backwards compatible)
34
36
  - [ ] Patch (bug fixes only)
@@ -38,32 +40,37 @@ Template for planning and executing software releases.
38
40
  ## 2. Features & Changes
39
41
 
40
42
  ### New Features
41
- | ID | Feature | Owner | Status |
42
- |----|---------|-------|--------|
43
+
44
+ | ID | Feature | Owner | Status |
45
+ | -------- | ------------- | ------ | ------- |
43
46
  | FEAT-001 | [Description] | [Name] | ✅ Done |
44
47
  | FEAT-002 | [Description] | [Name] | ✅ Done |
45
48
 
46
49
  ### Bug Fixes
47
- | ID | Description | Severity | Status |
48
- |----|-------------|----------|--------|
49
- | BUG-001 | [Description] | High | Fixed |
50
- | BUG-002 | [Description] | Medium | ✅ Fixed |
50
+
51
+ | ID | Description | Severity | Status |
52
+ | ------- | ------------- | -------- | -------- |
53
+ | BUG-001 | [Description] | High | ✅ Fixed |
54
+ | BUG-002 | [Description] | Medium | ✅ Fixed |
51
55
 
52
56
  ### Breaking Changes
53
- | Change | Migration Path |
54
- |--------|----------------|
57
+
58
+ | Change | Migration Path |
59
+ | -------------------------- | ---------------- |
55
60
  | [Describe breaking change] | [How to migrate] |
56
61
 
57
62
  ### Deprecations
58
- | Feature | Deprecated In | Remove In |
59
- |---------|---------------|-----------|
60
- | [Feature] | v[X.Y.Z] | v[X+1.0.0] |
63
+
64
+ | Feature | Deprecated In | Remove In |
65
+ | --------- | ------------- | ---------- |
66
+ | [Feature] | v[X.Y.Z] | v[X+1.0.0] |
61
67
 
62
68
  ---
63
69
 
64
70
  ## 3. Quality Checklist
65
71
 
66
72
  ### Testing
73
+
67
74
  - [ ] All unit tests passing
68
75
  - [ ] Integration tests passing
69
76
  - [ ] E2E tests passing
@@ -71,12 +78,14 @@ Template for planning and executing software releases.
71
78
  - [ ] Security scan completed
72
79
 
73
80
  ### Documentation
81
+
74
82
  - [ ] README updated
75
83
  - [ ] API docs updated
76
84
  - [ ] CHANGELOG updated
77
85
  - [ ] Migration guide (if breaking)
78
86
 
79
87
  ### Review
88
+
80
89
  - [ ] Code review completed
81
90
  - [ ] Security review completed
82
91
  - [ ] Product owner sign-off
@@ -86,13 +95,15 @@ Template for planning and executing software releases.
86
95
  ## 4. Deployment Plan
87
96
 
88
97
  ### Pre-Release Tasks
89
- | Task | Owner | Due Date | Status |
90
- |------|-------|----------|--------|
91
- | Freeze feature branch | [Name] | MM/DD | |
92
- | Create release branch | [Name] | MM/DD | ⬜ |
93
- | Final QA testing | [Name] | MM/DD | ⬜ |
98
+
99
+ | Task | Owner | Due Date | Status |
100
+ | --------------------- | ------ | -------- | ------ |
101
+ | Freeze feature branch | [Name] | MM/DD | ⬜ |
102
+ | Create release branch | [Name] | MM/DD | ⬜ |
103
+ | Final QA testing | [Name] | MM/DD | ⬜ |
94
104
 
95
105
  ### Deployment Steps
106
+
96
107
  1. [ ] Create Git tag
97
108
  2. [ ] Build release artifacts
98
109
  3. [ ] Deploy to staging
@@ -102,12 +113,15 @@ Template for planning and executing software releases.
102
113
  7. [ ] Announce release
103
114
 
104
115
  ### Rollback Plan
116
+
105
117
  **Trigger conditions**:
118
+
106
119
  - Error rate > 1%
107
120
  - P1 bug discovered
108
121
  - Performance degradation > 20%
109
122
 
110
123
  **Rollback steps**:
124
+
111
125
  1. Revert to previous version
112
126
  2. Notify stakeholders
113
127
  3. Create incident ticket
@@ -117,29 +131,33 @@ Template for planning and executing software releases.
117
131
  ## 5. Communication
118
132
 
119
133
  ### Internal
120
- | Audience | Channel | When |
121
- |----------|---------|------|
134
+
135
+ | Audience | Channel | When |
136
+ | ----------- | --------------- | -------------- |
122
137
  | Engineering | Slack #releases | Day of release |
123
- | Support | Email | Day of release |
124
- | All Hands | Meeting | Next all-hands |
138
+ | Support | Email | Day of release |
139
+ | All Hands | Meeting | Next all-hands |
125
140
 
126
141
  ### External
127
- | Audience | Channel | When |
128
- |----------|---------|------|
129
- | Users | Release Notes | Day of release |
130
- | Blog | Blog Post | Day of release |
131
- | Social | Twitter | Day of release |
142
+
143
+ | Audience | Channel | When |
144
+ | -------- | ------------- | -------------- |
145
+ | Users | Release Notes | Day of release |
146
+ | Blog | Blog Post | Day of release |
147
+ | Social | Twitter | Day of release |
132
148
 
133
149
  ---
134
150
 
135
151
  ## 6. Post-Release
136
152
 
137
153
  ### Monitoring
154
+
138
155
  - [ ] Error rates monitored for 24h
139
156
  - [ ] Performance metrics tracked
140
157
  - [ ] User feedback collected
141
158
 
142
159
  ### Follow-up
160
+
143
161
  - [ ] Retro scheduled
144
162
  - [ ] Metrics reviewed
145
163
  - [ ] Lessons documented
@@ -149,12 +167,14 @@ Template for planning and executing software releases.
149
167
  ## Appendix
150
168
 
151
169
  ### A. Version History
152
- | Version | Date | Notes |
153
- |---------|------|-------|
154
- | v[X.Y.Z] | MM/DD | Current release |
170
+
171
+ | Version | Date | Notes |
172
+ | ---------- | ----- | ---------------- |
173
+ | v[X.Y.Z] | MM/DD | Current release |
155
174
  | v[X.Y.Z-1] | MM/DD | Previous release |
156
175
 
157
176
  ### B. Related Links
177
+
158
178
  - [Release Branch]
159
179
  - [Test Reports]
160
180
  - [CHANGELOG]
@@ -165,24 +185,28 @@ Template for planning and executing software releases.
165
185
  ## Release Checklist
166
186
 
167
187
  ### 1 Week Before
188
+
168
189
  - [ ] Feature freeze
169
190
  - [ ] Create release branch
170
191
  - [ ] Update version number
171
192
  - [ ] Begin final testing
172
193
 
173
194
  ### 1 Day Before
195
+
174
196
  - [ ] All tests passing
175
197
  - [ ] Documentation complete
176
198
  - [ ] CHANGELOG finalized
177
199
  - [ ] Stakeholder sign-off
178
200
 
179
201
  ### Release Day
202
+
180
203
  - [ ] Create Git tag
181
204
  - [ ] Build and publish
182
205
  - [ ] Deploy to production
183
206
  - [ ] Announce release
184
207
 
185
208
  ### 1 Day After
209
+
186
210
  - [ ] Monitor metrics
187
211
  - [ ] Address urgent issues
188
212
  - [ ] Collect feedback
@@ -202,29 +226,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
202
226
  ## [Unreleased]
203
227
 
204
228
  ### Added
229
+
205
230
  - New features
206
231
 
207
232
  ### Changed
233
+
208
234
  - Changes in existing functionality
209
235
 
210
236
  ### Deprecated
237
+
211
238
  - Features to be removed in future
212
239
 
213
240
  ### Removed
241
+
214
242
  - Removed features
215
243
 
216
244
  ### Fixed
245
+
217
246
  - Bug fixes
218
247
 
219
248
  ### Security
249
+
220
250
  - Security improvements
221
251
 
222
252
  ## [X.Y.Z] - YYYY-MM-DD
223
253
 
224
254
  ### Added
255
+
225
256
  - Feature A (#123)
226
257
  - Feature B (#124)
227
258
 
228
259
  ### Fixed
260
+
229
261
  - Bug C (#125)
230
262
  ```
@@ -15,6 +15,7 @@ EARS is a structured syntax for writing unambiguous, testable requirements. All
15
15
  **Use When**: Requirement applies at all times, unconditionally.
16
16
 
17
17
  **Examples**:
18
+
18
19
  ```markdown
19
20
  REQ-001: The system SHALL encrypt all passwords using bcrypt with minimum 12 rounds.
20
21
  REQ-002: The API SHALL return responses in JSON format.
@@ -30,6 +31,7 @@ REQ-003: The application SHALL log all authentication attempts.
30
31
  **Use When**: Requirement is triggered by a specific event or user action.
31
32
 
32
33
  **Examples**:
34
+
33
35
  ```markdown
34
36
  REQ-010: WHEN user submits login form, the system SHALL validate credentials within 2 seconds.
35
37
  REQ-011: WHEN payment is processed, the system SHALL send confirmation email.
@@ -46,6 +48,7 @@ REQ-013: WHEN session expires, the system SHALL redirect user to login page.
46
48
  **Use When**: Requirement applies during a specific system state or condition.
47
49
 
48
50
  **Examples**:
51
+
49
52
  ```markdown
50
53
  REQ-020: WHILE user is authenticated, the system SHALL display user dashboard.
51
54
  REQ-021: WHILE database connection is lost, the system SHALL queue write operations.
@@ -62,6 +65,7 @@ REQ-023: WHILE rate limit is exceeded, the system SHALL return 429 status.
62
65
  **Use When**: Requirement depends on optional feature being enabled.
63
66
 
64
67
  **Examples**:
68
+
65
69
  ```markdown
66
70
  REQ-030: WHERE two-factor authentication is enabled, the system SHALL require OTP after password.
67
71
  REQ-031: WHERE dark mode is selected, the system SHALL apply dark theme CSS.
@@ -78,6 +82,7 @@ REQ-033: WHERE email notifications are enabled, the system SHALL send daily dige
78
82
  **Use When**: Defining how system should handle errors, exceptions, or edge cases.
79
83
 
80
84
  **Examples**:
85
+
81
86
  ```markdown
82
87
  REQ-040: IF login fails 5 times, THEN the system SHALL lock account for 30 minutes.
83
88
  REQ-041: IF payment gateway timeout occurs, THEN the system SHALL retry 3 times.
@@ -92,15 +97,16 @@ REQ-043: IF disk space is below 10%, THEN the system SHALL alert administrators.
92
97
  **Template**: Combine patterns for complex scenarios.
93
98
 
94
99
  **Examples**:
100
+
95
101
  ```markdown
96
- REQ-050: WHILE user is authenticated, WHEN session is about to expire,
97
- the system SHALL display warning 5 minutes before expiration.
102
+ REQ-050: WHILE user is authenticated, WHEN session is about to expire,
103
+ the system SHALL display warning 5 minutes before expiration.
98
104
 
99
- REQ-051: WHERE premium subscription is active, WHEN user uploads file,
100
- the system SHALL allow files up to 100MB.
105
+ REQ-051: WHERE premium subscription is active, WHEN user uploads file,
106
+ the system SHALL allow files up to 100MB.
101
107
 
102
- REQ-052: IF payment fails, THEN WHILE retry count < 3,
103
- the system SHALL attempt payment again after 30 seconds.
108
+ REQ-052: IF payment fails, THEN WHILE retry count < 3,
109
+ the system SHALL attempt payment again after 30 seconds.
104
110
  ```
105
111
 
106
112
  ---
@@ -109,26 +115,27 @@ REQ-052: IF payment fails, THEN WHILE retry count < 3,
109
115
 
110
116
  ### Required Keywords (SHALL/MUST)
111
117
 
112
- | Keyword | Meaning | Use |
113
- |---------|---------|-----|
114
- | **SHALL** | Mandatory requirement | Primary choice |
115
- | **MUST** | Mandatory requirement | Alternative to SHALL |
118
+ | Keyword | Meaning | Use |
119
+ | --------- | --------------------- | -------------------- |
120
+ | **SHALL** | Mandatory requirement | Primary choice |
121
+ | **MUST** | Mandatory requirement | Alternative to SHALL |
116
122
 
117
123
  ### Forbidden Keywords (Ambiguous)
118
124
 
119
- | Keyword | Problem | Replace With |
120
- |---------|---------|--------------|
121
- | should | Ambiguous obligation | SHALL |
122
- | may | Unclear optionality | WHERE + SHALL |
123
- | could | Vague possibility | SHALL or remove |
124
- | might | Uncertain behavior | SHALL or remove |
125
- | would | Conditional ambiguity | SHALL |
125
+ | Keyword | Problem | Replace With |
126
+ | ------- | --------------------- | --------------- |
127
+ | should | Ambiguous obligation | SHALL |
128
+ | may | Unclear optionality | WHERE + SHALL |
129
+ | could | Vague possibility | SHALL or remove |
130
+ | might | Uncertain behavior | SHALL or remove |
131
+ | would | Conditional ambiguity | SHALL |
126
132
 
127
133
  ---
128
134
 
129
135
  ## Requirement ID Format
130
136
 
131
137
  ### Standard Format
138
+
132
139
  ```
133
140
  REQ-[Category]-[Number]
134
141
 
@@ -141,43 +148,47 @@ REQ-NF-001 # Non-functional requirement
141
148
 
142
149
  ### Categories
143
150
 
144
- | Category | Description |
145
- |----------|-------------|
146
- | AUTH | Authentication & Authorization |
147
- | USER | User Management |
148
- | PAY | Payment & Billing |
149
- | UI | User Interface |
150
- | API | API & Integration |
151
- | DATA | Data Management |
152
- | SEC | Security |
153
- | PERF | Performance |
154
- | NF | Non-Functional |
151
+ | Category | Description |
152
+ | -------- | ------------------------------ |
153
+ | AUTH | Authentication & Authorization |
154
+ | USER | User Management |
155
+ | PAY | Payment & Billing |
156
+ | UI | User Interface |
157
+ | API | API & Integration |
158
+ | DATA | Data Management |
159
+ | SEC | Security |
160
+ | PERF | Performance |
161
+ | NF | Non-Functional |
155
162
 
156
163
  ---
157
164
 
158
165
  ## Validation Rules
159
166
 
160
167
  ### Rule 1: One Requirement Per Statement
168
+
161
169
  ```
162
170
  ❌ BAD: The system SHALL validate credentials AND send welcome email.
163
- ✅ GOOD:
171
+ ✅ GOOD:
164
172
  REQ-001: The system SHALL validate credentials.
165
173
  REQ-002: WHEN login succeeds, the system SHALL send welcome email.
166
174
  ```
167
175
 
168
176
  ### Rule 2: Measurable Actions
177
+
169
178
  ```
170
179
  ❌ BAD: The system SHALL be fast.
171
180
  ✅ GOOD: The system SHALL respond within 200ms for 95% of requests.
172
181
  ```
173
182
 
174
183
  ### Rule 3: No Implementation Details
184
+
175
185
  ```
176
186
  ❌ BAD: The system SHALL use Redis for caching.
177
187
  ✅ GOOD: The system SHALL cache frequently accessed data.
178
188
  ```
179
189
 
180
190
  ### Rule 4: Testable Conditions
191
+
181
192
  ```
182
193
  ❌ BAD: WHEN user is unhappy, the system SHALL improve experience.
183
194
  ✅ GOOD: WHEN user rating is below 3, the system SHALL prompt for feedback.
@@ -191,6 +202,7 @@ REQ-NF-001 # Non-functional requirement
191
202
  # Requirements Specification: [Feature Name]
192
203
 
193
204
  ## Document Information
205
+
194
206
  - **Version**: 1.0
195
207
  - **Date**: YYYY-MM-DD
196
208
  - **Author**: requirements-analyst
@@ -200,21 +212,21 @@ REQ-NF-001 # Non-functional requirement
200
212
 
201
213
  ### 1.1 Authentication
202
214
 
203
- REQ-AUTH-001: WHEN user submits login form with valid credentials,
204
- the system SHALL authenticate user and create session.
215
+ REQ-AUTH-001: WHEN user submits login form with valid credentials,
216
+ the system SHALL authenticate user and create session.
205
217
 
206
- REQ-AUTH-002: IF login credentials are invalid,
207
- THEN the system SHALL display error message.
218
+ REQ-AUTH-002: IF login credentials are invalid,
219
+ THEN the system SHALL display error message.
208
220
 
209
- REQ-AUTH-003: IF login fails 5 consecutive times,
210
- THEN the system SHALL lock account for 30 minutes.
221
+ REQ-AUTH-003: IF login fails 5 consecutive times,
222
+ THEN the system SHALL lock account for 30 minutes.
211
223
 
212
224
  ### 1.2 User Management
213
225
 
214
226
  REQ-USER-001: The system SHALL store user profiles with name, email, and avatar.
215
227
 
216
- REQ-USER-002: WHEN user updates profile,
217
- the system SHALL validate and save changes.
228
+ REQ-USER-002: WHEN user updates profile,
229
+ the system SHALL validate and save changes.
218
230
 
219
231
  ## 2. Non-Functional Requirements
220
232
 
@@ -236,11 +248,11 @@ REQ-NF-005: The system SHALL maintain 99.9% uptime.
236
248
 
237
249
  ## 3. Traceability
238
250
 
239
- | REQ ID | Design Component | Priority | Status |
240
- |--------|------------------|----------|--------|
241
- | REQ-AUTH-001 | Auth Service | P1 | Approved |
242
- | REQ-AUTH-002 | Auth Service | P1 | Approved |
243
- | REQ-USER-001 | User Service | P2 | Draft |
251
+ | REQ ID | Design Component | Priority | Status |
252
+ | ------------ | ---------------- | -------- | -------- |
253
+ | REQ-AUTH-001 | Auth Service | P1 | Approved |
254
+ | REQ-AUTH-002 | Auth Service | P1 | Approved |
255
+ | REQ-USER-001 | User Service | P2 | Draft |
244
256
  ```
245
257
 
246
258
  ---