specweave 0.1.0
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/INSTALL.md +848 -0
- package/LICENSE +21 -0
- package/README.md +675 -0
- package/SPECWEAVE.md +665 -0
- package/bin/install-agents.sh +57 -0
- package/bin/install-all.sh +49 -0
- package/bin/install-commands.sh +56 -0
- package/bin/install-skills.sh +57 -0
- package/bin/specweave.js +81 -0
- package/dist/adapters/adapter-base.d.ts +50 -0
- package/dist/adapters/adapter-base.d.ts.map +1 -0
- package/dist/adapters/adapter-base.js +146 -0
- package/dist/adapters/adapter-base.js.map +1 -0
- package/dist/adapters/adapter-interface.d.ts +108 -0
- package/dist/adapters/adapter-interface.d.ts.map +1 -0
- package/dist/adapters/adapter-interface.js +9 -0
- package/dist/adapters/adapter-interface.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +54 -0
- package/dist/adapters/claude/adapter.d.ts.map +1 -0
- package/dist/adapters/claude/adapter.js +184 -0
- package/dist/adapters/claude/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +42 -0
- package/dist/adapters/copilot/adapter.d.ts.map +1 -0
- package/dist/adapters/copilot/adapter.js +239 -0
- package/dist/adapters/copilot/adapter.js.map +1 -0
- package/dist/adapters/cursor/adapter.d.ts +42 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -0
- package/dist/adapters/cursor/adapter.js +297 -0
- package/dist/adapters/cursor/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +40 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -0
- package/dist/adapters/generic/adapter.js +155 -0
- package/dist/adapters/generic/adapter.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +247 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +7 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +160 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +6 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +154 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/package.json +90 -0
- package/src/adapters/README.md +312 -0
- package/src/adapters/adapter-base.ts +146 -0
- package/src/adapters/adapter-interface.ts +120 -0
- package/src/adapters/claude/README.md +241 -0
- package/src/adapters/claude/adapter.ts +157 -0
- package/src/adapters/copilot/.github/copilot/instructions.md +376 -0
- package/src/adapters/copilot/README.md +200 -0
- package/src/adapters/copilot/adapter.ts +210 -0
- package/src/adapters/cursor/.cursor/context/docs-context.md +62 -0
- package/src/adapters/cursor/.cursor/context/increments-context.md +71 -0
- package/src/adapters/cursor/.cursor/context/strategy-context.md +73 -0
- package/src/adapters/cursor/.cursor/context/tests-context.md +89 -0
- package/src/adapters/cursor/.cursorrules +325 -0
- package/src/adapters/cursor/README.md +243 -0
- package/src/adapters/cursor/adapter.ts +268 -0
- package/src/adapters/generic/README.md +277 -0
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +676 -0
- package/src/adapters/generic/adapter.ts +159 -0
- package/src/adapters/registry.yaml +126 -0
- package/src/agents/architect/AGENT.md +416 -0
- package/src/agents/devops/AGENT.md +1738 -0
- package/src/agents/docs-writer/AGENT.md +239 -0
- package/src/agents/performance/AGENT.md +228 -0
- package/src/agents/pm/AGENT.md +751 -0
- package/src/agents/qa-lead/AGENT.md +150 -0
- package/src/agents/security/AGENT.md +179 -0
- package/src/agents/sre/AGENT.md +582 -0
- package/src/agents/sre/modules/backend-diagnostics.md +481 -0
- package/src/agents/sre/modules/database-diagnostics.md +509 -0
- package/src/agents/sre/modules/infrastructure.md +561 -0
- package/src/agents/sre/modules/monitoring.md +439 -0
- package/src/agents/sre/modules/security-incidents.md +421 -0
- package/src/agents/sre/modules/ui-diagnostics.md +302 -0
- package/src/agents/sre/playbooks/01-high-cpu-usage.md +204 -0
- package/src/agents/sre/playbooks/02-database-deadlock.md +241 -0
- package/src/agents/sre/playbooks/03-memory-leak.md +252 -0
- package/src/agents/sre/playbooks/04-slow-api-response.md +269 -0
- package/src/agents/sre/playbooks/05-ddos-attack.md +293 -0
- package/src/agents/sre/playbooks/06-disk-full.md +314 -0
- package/src/agents/sre/playbooks/07-service-down.md +333 -0
- package/src/agents/sre/playbooks/08-data-corruption.md +337 -0
- package/src/agents/sre/playbooks/09-cascade-failure.md +430 -0
- package/src/agents/sre/playbooks/10-rate-limit-exceeded.md +464 -0
- package/src/agents/sre/scripts/health-check.sh +230 -0
- package/src/agents/sre/scripts/log-analyzer.py +213 -0
- package/src/agents/sre/scripts/metrics-collector.sh +294 -0
- package/src/agents/sre/scripts/trace-analyzer.js +257 -0
- package/src/agents/sre/templates/incident-report.md +249 -0
- package/src/agents/sre/templates/mitigation-plan.md +375 -0
- package/src/agents/sre/templates/post-mortem.md +418 -0
- package/src/agents/sre/templates/runbook-template.md +412 -0
- package/src/agents/tech-lead/AGENT.md +263 -0
- package/src/commands/add-tasks.md +176 -0
- package/src/commands/close-increment.md +347 -0
- package/src/commands/create-increment.md +223 -0
- package/src/commands/create-project.md +528 -0
- package/src/commands/generate-docs.md +623 -0
- package/src/commands/list-increments.md +180 -0
- package/src/commands/review-docs.md +331 -0
- package/src/commands/start-increment.md +139 -0
- package/src/commands/sync-github.md +115 -0
- package/src/commands/validate-increment.md +800 -0
- package/src/hooks/README.md +252 -0
- package/src/hooks/docs-changed.sh +59 -0
- package/src/hooks/human-input-required.sh +55 -0
- package/src/hooks/post-task-completion.sh +57 -0
- package/src/hooks/pre-implementation.sh +47 -0
- package/src/skills/ado-sync/README.md +449 -0
- package/src/skills/ado-sync/SKILL.md +245 -0
- package/src/skills/ado-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/ado-sync/test-cases/test-2.yaml +8 -0
- package/src/skills/ado-sync/test-cases/test-3.yaml +9 -0
- package/src/skills/bmad-method-expert/SKILL.md +628 -0
- package/src/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
- package/src/skills/bmad-method-expert/scripts/check-setup.js +208 -0
- package/src/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
- package/src/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/SKILL.md +523 -0
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +48 -0
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/SKILL.md +625 -0
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/context-loader/SKILL.md +734 -0
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +39 -0
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +44 -0
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +45 -0
- package/src/skills/context-optimizer/SKILL.md +618 -0
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +97 -0
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +109 -0
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +98 -0
- package/src/skills/cost-optimizer/SKILL.md +190 -0
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +75 -0
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +52 -0
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +63 -0
- package/src/skills/cost-optimizer/test-results/README.md +46 -0
- package/src/skills/design-system-architect/SKILL.md +107 -0
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +23 -0
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +24 -0
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +23 -0
- package/src/skills/diagrams-architect/SKILL.md +763 -0
- package/src/skills/diagrams-generator/SKILL.md +25 -0
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +8 -0
- package/src/skills/docs-updater/README.md +48 -0
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/dotnet-backend/SKILL.md +250 -0
- package/src/skills/e2e-playwright/README.md +506 -0
- package/src/skills/e2e-playwright/SKILL.md +457 -0
- package/src/skills/e2e-playwright/execute.js +373 -0
- package/src/skills/e2e-playwright/lib/utils.js +514 -0
- package/src/skills/e2e-playwright/package.json +33 -0
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +54 -0
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +64 -0
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +74 -0
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +98 -0
- package/src/skills/figma-designer/SKILL.md +149 -0
- package/src/skills/figma-implementer/SKILL.md +148 -0
- package/src/skills/figma-mcp-connector/SKILL.md +136 -0
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +22 -0
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +21 -0
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +18 -0
- package/src/skills/figma-to-code/SKILL.md +128 -0
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +29 -0
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +27 -0
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +28 -0
- package/src/skills/frontend/SKILL.md +177 -0
- package/src/skills/github-sync/SKILL.md +252 -0
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/hetzner-provisioner/README.md +308 -0
- package/src/skills/hetzner-provisioner/SKILL.md +251 -0
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +71 -0
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +85 -0
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +126 -0
- package/src/skills/hetzner-provisioner/test-results/README.md +259 -0
- package/src/skills/increment-planner/SKILL.md +889 -0
- package/src/skills/increment-planner/scripts/feature-utils.js +250 -0
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +27 -0
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +30 -0
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +24 -0
- package/src/skills/increment-quality-judge/SKILL.md +566 -0
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +95 -0
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +108 -0
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +87 -0
- package/src/skills/jira-sync/README.md +328 -0
- package/src/skills/jira-sync/SKILL.md +209 -0
- package/src/skills/jira-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-2.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-3.yaml +10 -0
- package/src/skills/nextjs/SKILL.md +176 -0
- package/src/skills/nodejs-backend/SKILL.md +181 -0
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/python-backend/SKILL.md +226 -0
- package/src/skills/role-orchestrator/README.md +197 -0
- package/src/skills/role-orchestrator/SKILL.md +1184 -0
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +98 -0
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +73 -0
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +121 -0
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +145 -0
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +149 -0
- package/src/skills/skill-creator/LICENSE.txt +202 -0
- package/src/skills/skill-creator/SKILL.md +209 -0
- package/src/skills/skill-creator/scripts/init_skill.py +303 -0
- package/src/skills/skill-creator/scripts/package_skill.py +110 -0
- package/src/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/skill-router/SKILL.md +497 -0
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +33 -0
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +42 -0
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +50 -0
- package/src/skills/spec-driven-brainstorming/README.md +264 -0
- package/src/skills/spec-driven-brainstorming/SKILL.md +439 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +148 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +190 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +233 -0
- package/src/skills/spec-driven-debugging/README.md +479 -0
- package/src/skills/spec-driven-debugging/SKILL.md +652 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +212 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +461 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +366 -0
- package/src/skills/spec-kit-expert/SKILL.md +1012 -0
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/specweave-ado-mapper/SKILL.md +501 -0
- package/src/skills/specweave-detector/SKILL.md +420 -0
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +34 -0
- package/src/skills/specweave-jira-mapper/SKILL.md +500 -0
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/task-builder/README.md +90 -0
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/templates/.env.example +144 -0
- package/src/templates/.gitignore.template +81 -0
- package/src/templates/CLAUDE.md.template +383 -0
- package/src/templates/README.md.template +240 -0
- package/src/templates/config.yaml +333 -0
- package/src/templates/docs/README.md +124 -0
- package/src/templates/docs/adr-template.md +118 -0
- package/src/templates/docs/hld-template.md +220 -0
- package/src/templates/docs/lld-template.md +580 -0
- package/src/templates/docs/prd-template.md +132 -0
- package/src/templates/docs/rfc-template.md +229 -0
- package/src/templates/docs/runbook-template.md +298 -0
- package/src/templates/environments/minimal/.env.production +16 -0
- package/src/templates/environments/minimal/README.md +54 -0
- package/src/templates/environments/minimal/deploy-production.yml +52 -0
- package/src/templates/environments/progressive/.env.qa +28 -0
- package/src/templates/environments/progressive/README.md +129 -0
- package/src/templates/environments/progressive/deploy-production.yml +93 -0
- package/src/templates/environments/progressive/deploy-qa.yml +62 -0
- package/src/templates/environments/progressive/deploy-staging.yml +67 -0
- package/src/templates/environments/standard/.env.development +20 -0
- package/src/templates/environments/standard/.env.production +30 -0
- package/src/templates/environments/standard/.env.staging +23 -0
- package/src/templates/environments/standard/README.md +97 -0
- package/src/templates/environments/standard/deploy-production.yml +68 -0
- package/src/templates/environments/standard/deploy-staging.yml +61 -0
- package/src/templates/environments/standard/docker-compose.yml +43 -0
- package/src/templates/increment-metadata-template.yaml +138 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# ADR 0001: [Decision Title]
|
|
2
|
+
|
|
3
|
+
**Status**: draft | review | approved | deprecated
|
|
4
|
+
**Author**: [Your Name]
|
|
5
|
+
**Created**: YYYY-MM-DD
|
|
6
|
+
**Last Updated**: YYYY-MM-DD
|
|
7
|
+
**Reviewers**: @architect, @tech-lead
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Status
|
|
12
|
+
|
|
13
|
+
**Current**: draft | review | approved | deprecated
|
|
14
|
+
|
|
15
|
+
**If deprecated**:
|
|
16
|
+
- **Superseded by**: [Link to new ADR]
|
|
17
|
+
- **Reason**: Why this decision was changed
|
|
18
|
+
|
|
19
|
+
## Context
|
|
20
|
+
|
|
21
|
+
**What's the situation?**
|
|
22
|
+
|
|
23
|
+
Describe the context and background:
|
|
24
|
+
- What problem are we solving?
|
|
25
|
+
- What constraints exist?
|
|
26
|
+
- What are the requirements?
|
|
27
|
+
- Who are the stakeholders?
|
|
28
|
+
|
|
29
|
+
## Decision
|
|
30
|
+
|
|
31
|
+
**What did we decide?**
|
|
32
|
+
|
|
33
|
+
Clearly state the decision made:
|
|
34
|
+
- What are we doing?
|
|
35
|
+
- How are we implementing it?
|
|
36
|
+
- What technology/approach are we using?
|
|
37
|
+
|
|
38
|
+
**Example**:
|
|
39
|
+
> We will use **Next.js** as our frontend framework for the web application.
|
|
40
|
+
|
|
41
|
+
### Architecture Diagram (Optional)
|
|
42
|
+
|
|
43
|
+
**Diagram File**: `0001-{decision-title}.context.mmd` (co-located with this file)
|
|
44
|
+
|
|
45
|
+
If the decision involves architecture changes, include a diagram:
|
|
46
|
+
|
|
47
|
+
```mermaid
|
|
48
|
+
graph TB
|
|
49
|
+
Client[Client] --> NextJS[Next.js App]
|
|
50
|
+
NextJS --> API[API Server]
|
|
51
|
+
API --> DB[(Database)]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**See**: [Diagram Conventions](../delivery/guides/diagram-conventions-comprehensive.md) for best practices.
|
|
55
|
+
|
|
56
|
+
## Consequences
|
|
57
|
+
|
|
58
|
+
**What's the impact?**
|
|
59
|
+
|
|
60
|
+
### Positive Consequences ✅
|
|
61
|
+
- **Pro 1**: Benefit of this decision
|
|
62
|
+
- **Pro 2**: Benefit of this decision
|
|
63
|
+
- **Pro 3**: Benefit of this decision
|
|
64
|
+
|
|
65
|
+
### Negative Consequences ❌
|
|
66
|
+
- **Con 1**: Drawback of this decision
|
|
67
|
+
- **Con 2**: Drawback of this decision
|
|
68
|
+
- **Con 3**: Drawback of this decision
|
|
69
|
+
|
|
70
|
+
### Neutral Consequences
|
|
71
|
+
- **Impact 1**: Neither positive nor negative
|
|
72
|
+
- **Impact 2**: Neither positive nor negative
|
|
73
|
+
|
|
74
|
+
## Alternatives Considered
|
|
75
|
+
|
|
76
|
+
**What else did we consider?**
|
|
77
|
+
|
|
78
|
+
### Alternative 1: [Name]
|
|
79
|
+
- **Description**: What is it?
|
|
80
|
+
- **Pros**: Benefits
|
|
81
|
+
- **Cons**: Drawbacks
|
|
82
|
+
- **Why not chosen**: Reason we didn't select this
|
|
83
|
+
|
|
84
|
+
### Alternative 2: [Name]
|
|
85
|
+
- **Description**: What is it?
|
|
86
|
+
- **Pros**: Benefits
|
|
87
|
+
- **Cons**: Drawbacks
|
|
88
|
+
- **Why not chosen**: Reason we didn't select this
|
|
89
|
+
|
|
90
|
+
### Alternative 3: [Name]
|
|
91
|
+
- **Description**: What is it?
|
|
92
|
+
- **Pros**: Benefits
|
|
93
|
+
- **Cons**: Drawbacks
|
|
94
|
+
- **Why not chosen**: Reason we didn't select this
|
|
95
|
+
|
|
96
|
+
## References
|
|
97
|
+
|
|
98
|
+
**Related documentation and resources**
|
|
99
|
+
|
|
100
|
+
- [PRD: Product Requirements](../../strategy/prd-{feature}.md)
|
|
101
|
+
- [HLD: System Design](../hld-{system}.md)
|
|
102
|
+
- [RFC: API Design](../rfc/0001-{feature}.md)
|
|
103
|
+
- External resources: Links to articles, documentation, etc.
|
|
104
|
+
|
|
105
|
+
## Notes
|
|
106
|
+
|
|
107
|
+
**Additional context**
|
|
108
|
+
|
|
109
|
+
- Discussion notes
|
|
110
|
+
- Meeting decisions
|
|
111
|
+
- Future considerations
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
**Approval**:
|
|
116
|
+
- [ ] Architect: @name
|
|
117
|
+
- [ ] Tech Lead: @name
|
|
118
|
+
- [ ] Security (if applicable): @name
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# HLD: [System Name]
|
|
2
|
+
|
|
3
|
+
**Status**: draft | review | approved | deprecated
|
|
4
|
+
**Author**: [Your Name]
|
|
5
|
+
**Created**: YYYY-MM-DD
|
|
6
|
+
**Last Updated**: YYYY-MM-DD
|
|
7
|
+
**Reviewers**: @architect, @tech-lead
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
**Why does this system exist?**
|
|
14
|
+
|
|
15
|
+
Link to the business requirements and explain the context:
|
|
16
|
+
- **PRD**: [Link to PRD](../strategy/prd-{feature}.md)
|
|
17
|
+
- **Business Problem**: What are we solving?
|
|
18
|
+
- **Goals**: What are we trying to achieve?
|
|
19
|
+
|
|
20
|
+
## Requirements (Functional / Non-functional)
|
|
21
|
+
|
|
22
|
+
### Functional Requirements
|
|
23
|
+
- **FR1**: Feature requirement 1
|
|
24
|
+
- **FR2**: Feature requirement 2
|
|
25
|
+
- **FR3**: Feature requirement 3
|
|
26
|
+
|
|
27
|
+
### Non-Functional Requirements
|
|
28
|
+
- **Performance**: <XXms latency, XX req/sec throughput
|
|
29
|
+
- **Scalability**: Support XX concurrent users
|
|
30
|
+
- **Availability**: XX% uptime (SLO)
|
|
31
|
+
- **Reliability**: < XX errors per million requests
|
|
32
|
+
- **Security**: Authentication, authorization, encryption
|
|
33
|
+
- **Compliance**: GDPR, HIPAA, SOC 2, etc.
|
|
34
|
+
|
|
35
|
+
## Architecture Overview (diagram)
|
|
36
|
+
|
|
37
|
+
**High-level component diagram**
|
|
38
|
+
|
|
39
|
+
**Diagram File**: `hld-{system-name}.context.mmd` (co-located with this file)
|
|
40
|
+
|
|
41
|
+
```mermaid
|
|
42
|
+
graph TB
|
|
43
|
+
Client[Client Application]
|
|
44
|
+
API[API Gateway]
|
|
45
|
+
Service1[Service 1]
|
|
46
|
+
Service2[Service 2]
|
|
47
|
+
DB[(Database)]
|
|
48
|
+
Cache[(Cache)]
|
|
49
|
+
|
|
50
|
+
Client --> API
|
|
51
|
+
API --> Service1
|
|
52
|
+
API --> Service2
|
|
53
|
+
Service1 --> DB
|
|
54
|
+
Service2 --> DB
|
|
55
|
+
Service1 --> Cache
|
|
56
|
+
Service2 --> Cache
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Component Description**:
|
|
60
|
+
- **Client Application**: Web/mobile app
|
|
61
|
+
- **API Gateway**: Entry point, authentication, rate limiting
|
|
62
|
+
- **Service 1**: Core business logic
|
|
63
|
+
- **Service 2**: Secondary service
|
|
64
|
+
- **Database**: PostgreSQL, primary data store
|
|
65
|
+
- **Cache**: Redis, caching layer
|
|
66
|
+
|
|
67
|
+
**Related Diagrams**:
|
|
68
|
+
- `hld-{system-name}.context.mmd` - System context (this diagram)
|
|
69
|
+
- `hld-{system-name}.sequence-auth.mmd` - Authentication flow
|
|
70
|
+
- `hld-{system-name}.entity.mmd` - Data model
|
|
71
|
+
|
|
72
|
+
**See**: [Diagram Conventions](../delivery/guides/diagram-conventions-comprehensive.md) for best practices.
|
|
73
|
+
|
|
74
|
+
## Data Model
|
|
75
|
+
|
|
76
|
+
**Entities and relationships**
|
|
77
|
+
|
|
78
|
+
```mermaid
|
|
79
|
+
erDiagram
|
|
80
|
+
USER ||--o{ ORDER : places
|
|
81
|
+
ORDER ||--|{ ORDER_ITEM : contains
|
|
82
|
+
ORDER_ITEM }|--|| PRODUCT : references
|
|
83
|
+
|
|
84
|
+
USER {
|
|
85
|
+
uuid id PK
|
|
86
|
+
string email
|
|
87
|
+
string name
|
|
88
|
+
timestamp created_at
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
ORDER {
|
|
92
|
+
uuid id PK
|
|
93
|
+
uuid user_id FK
|
|
94
|
+
decimal total
|
|
95
|
+
string status
|
|
96
|
+
timestamp created_at
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
ORDER_ITEM {
|
|
100
|
+
uuid id PK
|
|
101
|
+
uuid order_id FK
|
|
102
|
+
uuid product_id FK
|
|
103
|
+
int quantity
|
|
104
|
+
decimal price
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
PRODUCT {
|
|
108
|
+
uuid id PK
|
|
109
|
+
string name
|
|
110
|
+
decimal price
|
|
111
|
+
int stock
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Schema Details**:
|
|
116
|
+
- **Users**: User accounts, authentication
|
|
117
|
+
- **Orders**: Purchase orders
|
|
118
|
+
- **Order Items**: Line items in orders
|
|
119
|
+
- **Products**: Product catalog
|
|
120
|
+
|
|
121
|
+
## Integrations
|
|
122
|
+
|
|
123
|
+
**External systems and APIs**
|
|
124
|
+
|
|
125
|
+
### External Services
|
|
126
|
+
- **Stripe**: Payment processing
|
|
127
|
+
- **Integration**: REST API
|
|
128
|
+
- **Authentication**: API key
|
|
129
|
+
- **Data Shared**: Payment details, customer info
|
|
130
|
+
|
|
131
|
+
- **SendGrid**: Email delivery
|
|
132
|
+
- **Integration**: REST API
|
|
133
|
+
- **Authentication**: API key
|
|
134
|
+
- **Data Shared**: Email addresses, templates
|
|
135
|
+
|
|
136
|
+
### Internal Services
|
|
137
|
+
- **Auth Service**: Authentication/authorization
|
|
138
|
+
- **Notification Service**: Email, SMS, push notifications
|
|
139
|
+
|
|
140
|
+
## Security & Privacy
|
|
141
|
+
|
|
142
|
+
### Authentication
|
|
143
|
+
- **Method**: OAuth 2.0, JWT tokens
|
|
144
|
+
- **MFA**: Optional multi-factor authentication
|
|
145
|
+
- **Session Management**: 24-hour token expiry
|
|
146
|
+
|
|
147
|
+
### Authorization
|
|
148
|
+
- **Model**: Role-Based Access Control (RBAC)
|
|
149
|
+
- **Roles**: Admin, User, Guest
|
|
150
|
+
- **Permissions**: Resource-level permissions
|
|
151
|
+
|
|
152
|
+
### Data Encryption
|
|
153
|
+
- **In Transit**: TLS 1.3
|
|
154
|
+
- **At Rest**: AES-256 encryption
|
|
155
|
+
- **Secrets Management**: HashiCorp Vault / AWS Secrets Manager
|
|
156
|
+
|
|
157
|
+
### Compliance
|
|
158
|
+
- **GDPR**: User data deletion, consent management
|
|
159
|
+
- **HIPAA**: (if applicable) PHI handling
|
|
160
|
+
- **SOC 2**: Access controls, audit logging
|
|
161
|
+
|
|
162
|
+
## Scaling & Capacity
|
|
163
|
+
|
|
164
|
+
### Performance Targets
|
|
165
|
+
- **Latency**: p95 < 200ms, p99 < 500ms
|
|
166
|
+
- **Throughput**: 1000 req/sec
|
|
167
|
+
- **Concurrent Users**: 10,000
|
|
168
|
+
|
|
169
|
+
### Scaling Strategy
|
|
170
|
+
- **Horizontal Scaling**: Auto-scaling groups
|
|
171
|
+
- **Database**: Read replicas, connection pooling
|
|
172
|
+
- **Caching**: Redis for frequently accessed data
|
|
173
|
+
- **CDN**: CloudFlare for static assets
|
|
174
|
+
|
|
175
|
+
### Capacity Planning
|
|
176
|
+
- **Current**: XXX users, XXX req/sec
|
|
177
|
+
- **6 months**: XXX users, XXX req/sec
|
|
178
|
+
- **12 months**: XXX users, XXX req/sec
|
|
179
|
+
|
|
180
|
+
## Trade-offs
|
|
181
|
+
|
|
182
|
+
**Design compromises and rationale**
|
|
183
|
+
|
|
184
|
+
### Trade-off 1: [Decision]
|
|
185
|
+
- **Choice**: What we chose
|
|
186
|
+
- **Alternative**: What we didn't choose
|
|
187
|
+
- **Reason**: Why we made this choice
|
|
188
|
+
- **Impact**: Consequences
|
|
189
|
+
|
|
190
|
+
### Trade-off 2: [Decision]
|
|
191
|
+
- **Choice**: What we chose
|
|
192
|
+
- **Alternative**: What we didn't choose
|
|
193
|
+
- **Reason**: Why we made this choice
|
|
194
|
+
- **Impact**: Consequences
|
|
195
|
+
|
|
196
|
+
## Open Questions
|
|
197
|
+
|
|
198
|
+
**Unresolved issues**
|
|
199
|
+
|
|
200
|
+
- [ ] **Q1**: Question about X?
|
|
201
|
+
- **Owner**: @name
|
|
202
|
+
- **Due Date**: YYYY-MM-DD
|
|
203
|
+
|
|
204
|
+
- [ ] **Q2**: Question about Y?
|
|
205
|
+
- **Owner**: @name
|
|
206
|
+
- **Due Date**: YYYY-MM-DD
|
|
207
|
+
|
|
208
|
+
## Related Documentation
|
|
209
|
+
|
|
210
|
+
- [PRD: Product Requirements](../strategy/prd-{feature}.md)
|
|
211
|
+
- [ADR: Architecture Decisions](adr/)
|
|
212
|
+
- [RFC: API Specifications](rfc/)
|
|
213
|
+
- [Runbook: Operations](../operations/runbook-{service}.md)
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
**Approval**:
|
|
218
|
+
- [ ] Architect: @name
|
|
219
|
+
- [ ] Tech Lead: @name
|
|
220
|
+
- [ ] Security: @name
|