qualia-framework 2.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/README.md +50 -0
- package/bin/cli.js +519 -0
- package/framework/agents/architecture-strategist.md +53 -0
- package/framework/agents/backend-agent.md +150 -0
- package/framework/agents/code-simplicity-reviewer.md +86 -0
- package/framework/agents/frontend-agent.md +111 -0
- package/framework/agents/kieran-typescript-reviewer.md +96 -0
- package/framework/agents/performance-oracle.md +111 -0
- package/framework/agents/qualia-codebase-mapper.md +760 -0
- package/framework/agents/qualia-debugger.md +1203 -0
- package/framework/agents/qualia-executor.md +881 -0
- package/framework/agents/qualia-integration-checker.md +423 -0
- package/framework/agents/qualia-phase-researcher.md +453 -0
- package/framework/agents/qualia-plan-checker.md +699 -0
- package/framework/agents/qualia-planner.md +1241 -0
- package/framework/agents/qualia-project-researcher.md +602 -0
- package/framework/agents/qualia-research-synthesizer.md +236 -0
- package/framework/agents/qualia-roadmapper.md +605 -0
- package/framework/agents/qualia-verifier.md +685 -0
- package/framework/agents/team-orchestrator.md +228 -0
- package/framework/agents/teams/full-stack-team.md +48 -0
- package/framework/agents/teams/optimize-team.md +53 -0
- package/framework/agents/teams/review-team.md +62 -0
- package/framework/agents/teams/ship-team.md +86 -0
- package/framework/agents/test-agent.md +182 -0
- package/framework/askpass.sh +2 -0
- package/framework/commands/design.md +53 -0
- package/framework/commands/quick-db.md +22 -0
- package/framework/config/retention.json +35 -0
- package/framework/core/PRINCIPLES.md +77 -0
- package/framework/hooks/auto-format.sh +45 -0
- package/framework/hooks/block-env-edit.sh +42 -0
- package/framework/hooks/branch-guard.sh +46 -0
- package/framework/hooks/confirm-delete.sh +56 -0
- package/framework/hooks/migration-validate.sh +68 -0
- package/framework/hooks/notification-speak.sh +15 -0
- package/framework/hooks/pre-commit.sh +80 -0
- package/framework/hooks/pre-compact.sh +55 -0
- package/framework/hooks/pre-deploy-gate.sh +151 -0
- package/framework/hooks/qualia-colors.sh +32 -0
- package/framework/hooks/retention-cleanup.sh +43 -0
- package/framework/hooks/save-session-state.sh +153 -0
- package/framework/hooks/session-context-loader.sh +28 -0
- package/framework/hooks/session-learn.sh +30 -0
- package/framework/knowledge/claudecode-bible.md +1384 -0
- package/framework/knowledge/client-prefs.md +22 -0
- package/framework/knowledge/common-fixes.md +25 -0
- package/framework/knowledge/deployment-map.md +35 -0
- package/framework/knowledge/email-signature.html +1 -0
- package/framework/knowledge/employees.md +8 -0
- package/framework/knowledge/learned-patterns.md +51 -0
- package/framework/knowledge/optimization-research-2026.md +137 -0
- package/framework/knowledge/qualia-context.md +67 -0
- package/framework/knowledge/supabase-patterns.md +50 -0
- package/framework/knowledge/voice-agent-patterns.md +46 -0
- package/framework/qualia-engine/VERSION +1 -0
- package/framework/qualia-engine/bin/qualia-tools.js +2160 -0
- package/framework/qualia-engine/bin/qualia-tools.test.js +1054 -0
- package/framework/qualia-engine/references/checkpoints.md +775 -0
- package/framework/qualia-engine/references/continuation-format.md +249 -0
- package/framework/qualia-engine/references/decimal-phase-calculation.md +65 -0
- package/framework/qualia-engine/references/design-quality.md +56 -0
- package/framework/qualia-engine/references/git-integration.md +254 -0
- package/framework/qualia-engine/references/git-planning-commit.md +50 -0
- package/framework/qualia-engine/references/model-profile-resolution.md +32 -0
- package/framework/qualia-engine/references/model-profiles.md +73 -0
- package/framework/qualia-engine/references/phase-argument-parsing.md +61 -0
- package/framework/qualia-engine/references/planning-config.md +195 -0
- package/framework/qualia-engine/references/questioning.md +141 -0
- package/framework/qualia-engine/references/tdd.md +263 -0
- package/framework/qualia-engine/references/ui-brand.md +160 -0
- package/framework/qualia-engine/references/verification-patterns.md +612 -0
- package/framework/qualia-engine/templates/DEBUG.md +159 -0
- package/framework/qualia-engine/templates/DESIGN.md +81 -0
- package/framework/qualia-engine/templates/UAT.md +247 -0
- package/framework/qualia-engine/templates/codebase/architecture.md +255 -0
- package/framework/qualia-engine/templates/codebase/concerns.md +310 -0
- package/framework/qualia-engine/templates/codebase/conventions.md +307 -0
- package/framework/qualia-engine/templates/codebase/integrations.md +280 -0
- package/framework/qualia-engine/templates/codebase/stack.md +186 -0
- package/framework/qualia-engine/templates/codebase/structure.md +285 -0
- package/framework/qualia-engine/templates/codebase/testing.md +480 -0
- package/framework/qualia-engine/templates/config.json +35 -0
- package/framework/qualia-engine/templates/context.md +283 -0
- package/framework/qualia-engine/templates/continue-here.md +78 -0
- package/framework/qualia-engine/templates/debug-subagent-prompt.md +91 -0
- package/framework/qualia-engine/templates/discovery.md +146 -0
- package/framework/qualia-engine/templates/milestone-archive.md +123 -0
- package/framework/qualia-engine/templates/milestone.md +115 -0
- package/framework/qualia-engine/templates/phase-prompt.md +567 -0
- package/framework/qualia-engine/templates/planner-subagent-prompt.md +117 -0
- package/framework/qualia-engine/templates/project.md +184 -0
- package/framework/qualia-engine/templates/projects/ai-agent.md +156 -0
- package/framework/qualia-engine/templates/projects/mobile-app.md +181 -0
- package/framework/qualia-engine/templates/projects/voice-agent.md +134 -0
- package/framework/qualia-engine/templates/projects/website.md +137 -0
- package/framework/qualia-engine/templates/requirements.md +231 -0
- package/framework/qualia-engine/templates/research-project/ARCHITECTURE.md +204 -0
- package/framework/qualia-engine/templates/research-project/FEATURES.md +147 -0
- package/framework/qualia-engine/templates/research-project/PITFALLS.md +200 -0
- package/framework/qualia-engine/templates/research-project/STACK.md +120 -0
- package/framework/qualia-engine/templates/research-project/SUMMARY.md +170 -0
- package/framework/qualia-engine/templates/research.md +552 -0
- package/framework/qualia-engine/templates/roadmap.md +202 -0
- package/framework/qualia-engine/templates/state.md +176 -0
- package/framework/qualia-engine/templates/summary-complex.md +59 -0
- package/framework/qualia-engine/templates/summary-minimal.md +41 -0
- package/framework/qualia-engine/templates/summary-standard.md +48 -0
- package/framework/qualia-engine/templates/summary.md +246 -0
- package/framework/qualia-engine/templates/user-setup.md +311 -0
- package/framework/qualia-engine/templates/verification-report.md +322 -0
- package/framework/qualia-engine/workflows/add-phase.md +179 -0
- package/framework/qualia-engine/workflows/add-todo.md +157 -0
- package/framework/qualia-engine/workflows/audit-milestone.md +241 -0
- package/framework/qualia-engine/workflows/check-todos.md +176 -0
- package/framework/qualia-engine/workflows/complete-milestone.md +858 -0
- package/framework/qualia-engine/workflows/diagnose-issues.md +219 -0
- package/framework/qualia-engine/workflows/discovery-phase.md +289 -0
- package/framework/qualia-engine/workflows/discuss-phase.md +534 -0
- package/framework/qualia-engine/workflows/execute-phase.md +559 -0
- package/framework/qualia-engine/workflows/execute-plan.md +438 -0
- package/framework/qualia-engine/workflows/help.md +470 -0
- package/framework/qualia-engine/workflows/insert-phase.md +220 -0
- package/framework/qualia-engine/workflows/list-phase-assumptions.md +178 -0
- package/framework/qualia-engine/workflows/map-codebase.md +327 -0
- package/framework/qualia-engine/workflows/new-milestone.md +363 -0
- package/framework/qualia-engine/workflows/new-project.md +1037 -0
- package/framework/qualia-engine/workflows/pause-work.md +122 -0
- package/framework/qualia-engine/workflows/plan-milestone-gaps.md +256 -0
- package/framework/qualia-engine/workflows/plan-phase.md +422 -0
- package/framework/qualia-engine/workflows/progress.md +354 -0
- package/framework/qualia-engine/workflows/quick.md +252 -0
- package/framework/qualia-engine/workflows/remove-phase.md +326 -0
- package/framework/qualia-engine/workflows/research-phase.md +74 -0
- package/framework/qualia-engine/workflows/resume-project.md +306 -0
- package/framework/qualia-engine/workflows/set-profile.md +80 -0
- package/framework/qualia-engine/workflows/settings.md +145 -0
- package/framework/qualia-engine/workflows/transition.md +556 -0
- package/framework/qualia-engine/workflows/update.md +197 -0
- package/framework/qualia-engine/workflows/verify-phase.md +195 -0
- package/framework/qualia-engine/workflows/verify-work.md +625 -0
- package/framework/rules/context7.md +11 -0
- package/framework/rules/deployment.md +29 -0
- package/framework/rules/frontend.md +33 -0
- package/framework/rules/security.md +12 -0
- package/framework/rules/speed.md +20 -0
- package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
- package/framework/scripts/apply-retention.sh +120 -0
- package/framework/scripts/bootstrap-pop-os.sh +354 -0
- package/framework/scripts/claude-voice +13 -0
- package/framework/scripts/cleanup.sh +131 -0
- package/framework/scripts/cowork-mode.sh +141 -0
- package/framework/scripts/generate-project-claude-md.sh +153 -0
- package/framework/scripts/load-test-webhook.js +172 -0
- package/framework/scripts/say.py +236 -0
- package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +167 -0
- package/framework/scripts/showcase-video-recorder/playwright-helpers.js +216 -0
- package/framework/scripts/speak.py +55 -0
- package/framework/scripts/speak.sh +18 -0
- package/framework/scripts/status.sh +138 -0
- package/framework/scripts/sync-to-framework.sh +65 -0
- package/framework/scripts/voice-hotkey.py +227 -0
- package/framework/scripts/voice-input.sh +51 -0
- package/framework/skills/animate/SKILL.md +202 -0
- package/framework/skills/bolder/SKILL.md +144 -0
- package/framework/skills/browser-qa/SKILL.md +536 -0
- package/framework/skills/clarify/SKILL.md +179 -0
- package/framework/skills/colorize/SKILL.md +170 -0
- package/framework/skills/critique/SKILL.md +126 -0
- package/framework/skills/deep-research/SKILL.md +271 -0
- package/framework/skills/delight/SKILL.md +329 -0
- package/framework/skills/deploy/SKILL.md +261 -0
- package/framework/skills/deploy-verify/SKILL.md +377 -0
- package/framework/skills/deploy-verify/scripts/canary-check.sh +206 -0
- package/framework/skills/deploy-verify/scripts/check-console-errors.js +147 -0
- package/framework/skills/deploy-verify/scripts/check-cwv.js +139 -0
- package/framework/skills/deploy-verify/scripts/project-detect.sh +84 -0
- package/framework/skills/deploy-verify/scripts/verify.sh +548 -0
- package/framework/skills/design-quieter/SKILL.md +130 -0
- package/framework/skills/distill/SKILL.md +149 -0
- package/framework/skills/docs-lookup/SKILL.md +78 -0
- package/framework/skills/fcm-notifications/SKILL.md +125 -0
- package/framework/skills/financial-ledger/SKILL.md +1039 -0
- package/framework/skills/frontend-master/NOTICE.md +4 -0
- package/framework/skills/frontend-master/SKILL.md +127 -0
- package/framework/skills/frontend-master/reference/color-and-contrast.md +132 -0
- package/framework/skills/frontend-master/reference/interaction-design.md +123 -0
- package/framework/skills/frontend-master/reference/motion-design.md +99 -0
- package/framework/skills/frontend-master/reference/responsive-design.md +114 -0
- package/framework/skills/frontend-master/reference/spatial-design.md +100 -0
- package/framework/skills/frontend-master/reference/typography.md +131 -0
- package/framework/skills/frontend-master/reference/ux-writing.md +107 -0
- package/framework/skills/harden/SKILL.md +357 -0
- package/framework/skills/i18n-rtl/SKILL.md +752 -0
- package/framework/skills/learn/SKILL.md +71 -0
- package/framework/skills/memory/SKILL.md +50 -0
- package/framework/skills/mobile-expo/SKILL.md +864 -0
- package/framework/skills/mobile-expo/references/store-checklist.md +550 -0
- package/framework/skills/nestjs-backend/README.md +73 -0
- package/framework/skills/nestjs-backend/SKILL.md +446 -0
- package/framework/skills/nestjs-backend/references/templates.md +1173 -0
- package/framework/skills/normalize/SKILL.md +79 -0
- package/framework/skills/onboard/SKILL.md +242 -0
- package/framework/skills/polish/SKILL.md +209 -0
- package/framework/skills/pr/SKILL.md +66 -0
- package/framework/skills/qualia/SKILL.md +153 -0
- package/framework/skills/qualia-add-todo/SKILL.md +68 -0
- package/framework/skills/qualia-audit-milestone/SKILL.md +92 -0
- package/framework/skills/qualia-check-todos/SKILL.md +55 -0
- package/framework/skills/qualia-complete-milestone/SKILL.md +108 -0
- package/framework/skills/qualia-debug/SKILL.md +149 -0
- package/framework/skills/qualia-design/SKILL.md +203 -0
- package/framework/skills/qualia-discuss-phase/SKILL.md +72 -0
- package/framework/skills/qualia-execute-phase/SKILL.md +86 -0
- package/framework/skills/qualia-help/SKILL.md +67 -0
- package/framework/skills/qualia-idk/SKILL.md +352 -0
- package/framework/skills/qualia-list-phase-assumptions/SKILL.md +67 -0
- package/framework/skills/qualia-new-milestone/SKILL.md +72 -0
- package/framework/skills/qualia-new-project/SKILL.md +92 -0
- package/framework/skills/qualia-optimize/SKILL.md +417 -0
- package/framework/skills/qualia-pause-work/SKILL.md +96 -0
- package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +57 -0
- package/framework/skills/qualia-plan-phase/SKILL.md +101 -0
- package/framework/skills/qualia-progress/SKILL.md +53 -0
- package/framework/skills/qualia-quick/SKILL.md +89 -0
- package/framework/skills/qualia-research-phase/SKILL.md +88 -0
- package/framework/skills/qualia-resume-work/SKILL.md +62 -0
- package/framework/skills/qualia-review/SKILL.md +263 -0
- package/framework/skills/qualia-start/SKILL.md +182 -0
- package/framework/skills/qualia-verify-work/SKILL.md +105 -0
- package/framework/skills/qualia-workflow/SKILL.md +130 -0
- package/framework/skills/rag/SKILL.md +750 -0
- package/framework/skills/responsive/SKILL.md +231 -0
- package/framework/skills/retro/SKILL.md +284 -0
- package/framework/skills/sakani-conventions/SKILL.md +136 -0
- package/framework/skills/sakani-conventions/evals/evals.json +23 -0
- package/framework/skills/sakani-conventions/references/entities.md +365 -0
- package/framework/skills/sakani-conventions/references/error-codes.md +95 -0
- package/framework/skills/seo-master/SKILL.md +490 -0
- package/framework/skills/seo-master/references/checklist.md +199 -0
- package/framework/skills/seo-master/references/structured-data.md +609 -0
- package/framework/skills/ship/SKILL.md +202 -0
- package/framework/skills/stack-researcher/SKILL.md +215 -0
- package/framework/skills/status/SKILL.md +154 -0
- package/framework/skills/status/scripts/health-check.sh +562 -0
- package/framework/skills/subscription-payments/SKILL.md +250 -0
- package/framework/skills/supabase/SKILL.md +973 -0
- package/framework/skills/supabase/references/templates.md +159 -0
- package/framework/skills/team/SKILL.md +67 -0
- package/framework/skills/test-runner/SKILL.md +202 -0
- package/framework/skills/voice-agent/SKILL.md +407 -0
- package/framework/skills/zoho-workflow/SKILL.md +51 -0
- package/framework/statusline-command.sh +117 -0
- package/package.json +24 -0
- package/profiles/fawzi.json +16 -0
- package/profiles/hasan.json +16 -0
- package/profiles/moayad.json +16 -0
- package/templates/CLAUDE-owner.md +52 -0
- package/templates/CLAUDE.md.hbs +58 -0
- package/templates/env.claude.template +12 -0
- package/templates/settings.json +141 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Project Template: Voice Agent
|
|
2
|
+
|
|
3
|
+
> Voice AI agent with Supabase Edge Functions, VAPI/Retell AI, and ElevenLabs.
|
|
4
|
+
|
|
5
|
+
**Stack:** Supabase Edge Functions (Deno), VAPI / Retell AI, ElevenLabs, TypeScript
|
|
6
|
+
**Phases:** 6
|
|
7
|
+
**Type:** voice-agent
|
|
8
|
+
|
|
9
|
+
## Phases
|
|
10
|
+
|
|
11
|
+
### Phase 1: Foundation
|
|
12
|
+
**Goal:** Supabase project with schema, edge function boilerplate, and voice provider connection
|
|
13
|
+
**Skills:** [@supabase, @voice-agent]
|
|
14
|
+
**Tasks:**
|
|
15
|
+
- Design Supabase schema: calls, call_events, contacts, tools, system_config
|
|
16
|
+
- Create edge function scaffold (Deno, cors headers, error handling)
|
|
17
|
+
- Configure voice provider (VAPI or Retell AI): API keys, assistant creation
|
|
18
|
+
- Environment variables in Supabase (voice provider keys, webhook secret)
|
|
19
|
+
- Basic webhook endpoint that receives and logs call events
|
|
20
|
+
- RLS policies on all tables
|
|
21
|
+
|
|
22
|
+
**Success Criteria:**
|
|
23
|
+
1. Edge function deployed and responding to health check
|
|
24
|
+
2. Voice provider can reach webhook endpoint
|
|
25
|
+
3. Schema deployed with RLS enabled
|
|
26
|
+
4. Call events logging to database
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### Phase 2: Voice Flow Design
|
|
31
|
+
**Goal:** Complete conversation state machine with branching paths and slot filling
|
|
32
|
+
**Skills:** [@voice-agent]
|
|
33
|
+
**Tasks:**
|
|
34
|
+
- Design conversation flow (state machine: greeting → discovery → action → closing)
|
|
35
|
+
- Create VAPI/Retell assistant configuration (system prompt, voice, language)
|
|
36
|
+
- Define conversation states and transitions
|
|
37
|
+
- Slot filling logic (extract key info from conversation)
|
|
38
|
+
- Multi-language support (if applicable — e.g., Greek/English/Russian)
|
|
39
|
+
- Interruption handling (user interrupts mid-sentence)
|
|
40
|
+
- Silence detection and re-engagement prompts
|
|
41
|
+
- Transfer-to-human escalation path
|
|
42
|
+
|
|
43
|
+
**Success Criteria:**
|
|
44
|
+
1. Assistant follows designed flow in test calls
|
|
45
|
+
2. Slot filling correctly extracts required information
|
|
46
|
+
3. Language switching works naturally (if multi-language)
|
|
47
|
+
4. Escalation to human triggers correctly
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### Phase 3: Webhook Handlers
|
|
52
|
+
**Goal:** Robust webhook processing for all voice provider events
|
|
53
|
+
**Skills:** [@supabase, @voice-agent]
|
|
54
|
+
**Tasks:**
|
|
55
|
+
- Webhook signature verification (prevent spoofing)
|
|
56
|
+
- Call start handler: create call record, load contact context
|
|
57
|
+
- Call end handler: save transcript, update call status, trigger follow-ups
|
|
58
|
+
- Function call handler: route tool calls to appropriate handlers
|
|
59
|
+
- Status update handler: track call progress in real-time
|
|
60
|
+
- Error handler: graceful failure with logging
|
|
61
|
+
- Idempotency: handle duplicate webhook deliveries
|
|
62
|
+
|
|
63
|
+
**Success Criteria:**
|
|
64
|
+
1. All webhook events processed and logged
|
|
65
|
+
2. Signature verification blocks invalid requests
|
|
66
|
+
3. Duplicate deliveries don't create duplicate records
|
|
67
|
+
4. Failed handlers don't crash the entire endpoint
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Phase 4: Tool Functions
|
|
72
|
+
**Goal:** Business logic tools the voice agent can call during conversations
|
|
73
|
+
**Skills:** [@supabase]
|
|
74
|
+
**Tasks:**
|
|
75
|
+
- Tool definition schema (name, description, parameters)
|
|
76
|
+
- Tool router: dispatch function calls to handlers
|
|
77
|
+
- Business-specific tools (varies per project):
|
|
78
|
+
- Database lookups (order status, product search, appointment check)
|
|
79
|
+
- External API calls (CRM, inventory, booking system)
|
|
80
|
+
- Data mutations (create appointment, update record, send notification)
|
|
81
|
+
- Tool response formatting (structured → natural language for voice)
|
|
82
|
+
- Tool error handling (timeout, API failure → graceful voice response)
|
|
83
|
+
- Tool call logging (for analytics and debugging)
|
|
84
|
+
|
|
85
|
+
**Success Criteria:**
|
|
86
|
+
1. Voice agent can call tools mid-conversation and use results
|
|
87
|
+
2. Tool failures produce graceful voice responses (not errors)
|
|
88
|
+
3. All tool calls logged with input/output
|
|
89
|
+
4. Tool response latency < 2s (voice conversations are latency-sensitive)
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Phase 5: Testing & Tuning
|
|
94
|
+
**Goal:** Reliable voice agent with optimized latency and conversation quality
|
|
95
|
+
**Skills:** [@voice-agent]
|
|
96
|
+
**Tasks:**
|
|
97
|
+
- Test call suite: happy path, edge cases, error scenarios
|
|
98
|
+
- Latency profiling: identify slow tool calls, optimize
|
|
99
|
+
- Voice quality tuning: adjust voice provider settings (speed, pitch, stability)
|
|
100
|
+
- Prompt engineering: refine system prompt based on test call results
|
|
101
|
+
- Edge case handling: unknown inputs, off-topic queries, hostile callers
|
|
102
|
+
- Load testing: concurrent calls (if applicable)
|
|
103
|
+
- Transcript review: analyze test transcripts for quality issues
|
|
104
|
+
- Cost analysis: per-call cost breakdown (voice + AI + telephony)
|
|
105
|
+
|
|
106
|
+
**Success Criteria:**
|
|
107
|
+
1. Happy path call completes successfully in < 3 minutes
|
|
108
|
+
2. All tool calls respond within 2s
|
|
109
|
+
3. Voice sounds natural (no robotic artifacts or awkward pauses)
|
|
110
|
+
4. Edge cases handled gracefully (no hangups or infinite loops)
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Phase 6: Deploy & Verify
|
|
115
|
+
**Goal:** Production edge functions deployed with voice provider configured
|
|
116
|
+
**Skills:** [@deploy-verify, @voice-agent]
|
|
117
|
+
**Team:** ship-team
|
|
118
|
+
**Tasks:**
|
|
119
|
+
- Final type check on edge functions
|
|
120
|
+
- Deploy edge functions to Supabase production
|
|
121
|
+
- Configure voice provider webhooks to production URLs
|
|
122
|
+
- Verify webhook signature validation in production
|
|
123
|
+
- Test call in production environment
|
|
124
|
+
- Monitor first 10 production calls for issues
|
|
125
|
+
- Set up alerting for webhook failures
|
|
126
|
+
- Document: phone number, webhook URLs, provider dashboard links
|
|
127
|
+
|
|
128
|
+
**Success Criteria:**
|
|
129
|
+
1. Edge function responds 200 to health check
|
|
130
|
+
2. Voice provider webhook configured and verified
|
|
131
|
+
3. Test call completes full flow in production
|
|
132
|
+
4. Tool calls work with production data
|
|
133
|
+
5. No secrets exposed in edge function logs
|
|
134
|
+
6. Webhook failures trigger alerts
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Project Template: Website
|
|
2
|
+
|
|
3
|
+
> Opinionated Next.js + Supabase + Vercel template. Fawzi's exact stack.
|
|
4
|
+
|
|
5
|
+
**Stack:** Next.js 16+, React 19, TypeScript, Tailwind v4, Supabase, Vercel
|
|
6
|
+
**Phases:** 6
|
|
7
|
+
**Type:** website
|
|
8
|
+
|
|
9
|
+
## Phases
|
|
10
|
+
|
|
11
|
+
### Phase 1: Foundation
|
|
12
|
+
**Goal:** Working Next.js app with auth, Supabase connected, protected routes, base layout
|
|
13
|
+
**Skills:** [@supabase]
|
|
14
|
+
**Tasks:**
|
|
15
|
+
- Initialize Next.js 16+ with App Router, TypeScript strict, Tailwind v4
|
|
16
|
+
- Configure Supabase client (server.ts + client.ts pattern from `lib/supabase/`)
|
|
17
|
+
- Implement auth: login, signup, password reset (Supabase Auth)
|
|
18
|
+
- Create protected route middleware (redirect unauthenticated users)
|
|
19
|
+
- Set up base layout: header, footer, navigation shell
|
|
20
|
+
- Configure environment variables (.env.local)
|
|
21
|
+
- Set up RLS on auth-related tables
|
|
22
|
+
|
|
23
|
+
**Success Criteria:**
|
|
24
|
+
1. User can create account, log in, and see protected dashboard
|
|
25
|
+
2. Unauthenticated users redirected to login
|
|
26
|
+
3. Server-side auth check works (not just client-side)
|
|
27
|
+
4. `npx tsc --noEmit` passes
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### Phase 2: Landing & Marketing
|
|
32
|
+
**Goal:** Polished public-facing pages that convert visitors
|
|
33
|
+
**Skills:** [@frontend-master, @seo-master]
|
|
34
|
+
**Team:** full-stack-team
|
|
35
|
+
**Tasks:**
|
|
36
|
+
- Hero section with distinctive typography and animations
|
|
37
|
+
- Features section with staggered reveal animations
|
|
38
|
+
- Testimonials/social proof section
|
|
39
|
+
- Pricing section (if applicable)
|
|
40
|
+
- CTA sections with micro-interactions
|
|
41
|
+
- About/company page
|
|
42
|
+
- Contact page with form (Supabase insert or email)
|
|
43
|
+
- Footer with navigation, social links
|
|
44
|
+
|
|
45
|
+
**Success Criteria:**
|
|
46
|
+
1. Landing page loads in under 3s on mobile
|
|
47
|
+
2. All sections have CSS transitions and staggered animations
|
|
48
|
+
3. No generic card grids or blue-purple gradients (Fawzi's frontend rules)
|
|
49
|
+
4. Distinctive fonts (not Inter/Arial)
|
|
50
|
+
5. Mobile-responsive from the start
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### Phase 3: Dashboard / App
|
|
55
|
+
**Goal:** Authenticated user area with full CRUD and real-time data
|
|
56
|
+
**Skills:** [@admin-panel, @supabase]
|
|
57
|
+
**Team:** full-stack-team
|
|
58
|
+
**Tasks:**
|
|
59
|
+
- Dashboard overview page with key metrics
|
|
60
|
+
- Data listing pages with pagination, search, filters
|
|
61
|
+
- Create/edit forms with Zod validation
|
|
62
|
+
- Delete with confirmation dialog
|
|
63
|
+
- Real-time updates (Supabase subscriptions)
|
|
64
|
+
- User profile/settings page
|
|
65
|
+
- Role-based access (if multi-user)
|
|
66
|
+
|
|
67
|
+
**Success Criteria:**
|
|
68
|
+
1. User can create, read, update, delete core resources
|
|
69
|
+
2. Forms validate with Zod and show clear error messages
|
|
70
|
+
3. Data persists correctly in Supabase with RLS
|
|
71
|
+
4. Loading states and error boundaries on all data-fetching pages
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### Phase 4: SEO & Performance
|
|
76
|
+
**Goal:** Production-grade SEO and Core Web Vitals passing scores
|
|
77
|
+
**Skills:** [@seo-master]
|
|
78
|
+
**Tasks:**
|
|
79
|
+
- Dynamic metadata for all pages (title, description, OG image)
|
|
80
|
+
- JSON-LD structured data (Organization, WebSite, BreadcrumbList)
|
|
81
|
+
- Sitemap.xml generation (dynamic from routes)
|
|
82
|
+
- robots.txt
|
|
83
|
+
- Open Graph and Twitter card meta tags
|
|
84
|
+
- Image optimization (next/image, WebP, lazy loading)
|
|
85
|
+
- Font optimization (next/font, preload critical fonts)
|
|
86
|
+
- Bundle analysis and code splitting review
|
|
87
|
+
|
|
88
|
+
**Success Criteria:**
|
|
89
|
+
1. Lighthouse SEO score ≥ 95
|
|
90
|
+
2. Core Web Vitals: LCP < 2.5s, FID < 100ms, CLS < 0.1
|
|
91
|
+
3. All pages have unique title and description
|
|
92
|
+
4. JSON-LD renders correctly in Google Rich Results Test
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Phase 5: Responsive & Polish
|
|
97
|
+
**Goal:** Flawless experience across all screen sizes with refined animations
|
|
98
|
+
**Skills:** [@responsive, @frontend-master]
|
|
99
|
+
**Tasks:**
|
|
100
|
+
- Mobile layout audit and fixes (320px–480px)
|
|
101
|
+
- Tablet layout adjustments (768px–1024px)
|
|
102
|
+
- Desktop optimization (1280px+)
|
|
103
|
+
- Touch targets ≥ 44px on mobile
|
|
104
|
+
- Loading skeletons for all async content
|
|
105
|
+
- Error boundaries with recovery UI
|
|
106
|
+
- Page transitions and route animations
|
|
107
|
+
- Micro-interactions on buttons, links, form elements
|
|
108
|
+
- Dark mode (if in scope)
|
|
109
|
+
|
|
110
|
+
**Success Criteria:**
|
|
111
|
+
1. Usable on 320px width without horizontal scroll
|
|
112
|
+
2. Touch targets ≥ 44px on all interactive elements
|
|
113
|
+
3. No layout shifts on route navigation
|
|
114
|
+
4. Loading states visible for all data-fetching operations
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### Phase 6: Deploy & Verify
|
|
119
|
+
**Goal:** Production deployment with full verification suite passing
|
|
120
|
+
**Skills:** [@deploy-verify]
|
|
121
|
+
**Team:** ship-team
|
|
122
|
+
**Tasks:**
|
|
123
|
+
- Final `npx tsc --noEmit` check
|
|
124
|
+
- Final `next lint` check
|
|
125
|
+
- Production build (`next build`)
|
|
126
|
+
- Deploy to Vercel (`vercel --prod`)
|
|
127
|
+
- Configure custom domain (if applicable)
|
|
128
|
+
- Run 6-check post-deploy verification
|
|
129
|
+
- Supabase production config review (RLS, service key not exposed)
|
|
130
|
+
|
|
131
|
+
**Success Criteria:**
|
|
132
|
+
1. HTTP 200 on homepage
|
|
133
|
+
2. Auth flow works in production
|
|
134
|
+
3. No console errors on key pages
|
|
135
|
+
4. API latency < 500ms
|
|
136
|
+
5. SSL certificate valid
|
|
137
|
+
6. No source maps exposed
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Requirements Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/REQUIREMENTS.md` — checkable requirements that define "done."
|
|
4
|
+
|
|
5
|
+
<template>
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Requirements: [Project Name]
|
|
9
|
+
|
|
10
|
+
**Defined:** [date]
|
|
11
|
+
**Core Value:** [from PROJECT.md]
|
|
12
|
+
|
|
13
|
+
## v1 Requirements
|
|
14
|
+
|
|
15
|
+
Requirements for initial release. Each maps to roadmap phases.
|
|
16
|
+
|
|
17
|
+
### Authentication
|
|
18
|
+
|
|
19
|
+
- [ ] **AUTH-01**: User can sign up with email and password
|
|
20
|
+
- [ ] **AUTH-02**: User receives email verification after signup
|
|
21
|
+
- [ ] **AUTH-03**: User can reset password via email link
|
|
22
|
+
- [ ] **AUTH-04**: User session persists across browser refresh
|
|
23
|
+
|
|
24
|
+
### [Category 2]
|
|
25
|
+
|
|
26
|
+
- [ ] **[CAT]-01**: [Requirement description]
|
|
27
|
+
- [ ] **[CAT]-02**: [Requirement description]
|
|
28
|
+
- [ ] **[CAT]-03**: [Requirement description]
|
|
29
|
+
|
|
30
|
+
### [Category 3]
|
|
31
|
+
|
|
32
|
+
- [ ] **[CAT]-01**: [Requirement description]
|
|
33
|
+
- [ ] **[CAT]-02**: [Requirement description]
|
|
34
|
+
|
|
35
|
+
## v2 Requirements
|
|
36
|
+
|
|
37
|
+
Deferred to future release. Tracked but not in current roadmap.
|
|
38
|
+
|
|
39
|
+
### [Category]
|
|
40
|
+
|
|
41
|
+
- **[CAT]-01**: [Requirement description]
|
|
42
|
+
- **[CAT]-02**: [Requirement description]
|
|
43
|
+
|
|
44
|
+
## Out of Scope
|
|
45
|
+
|
|
46
|
+
Explicitly excluded. Documented to prevent scope creep.
|
|
47
|
+
|
|
48
|
+
| Feature | Reason |
|
|
49
|
+
|---------|--------|
|
|
50
|
+
| [Feature] | [Why excluded] |
|
|
51
|
+
| [Feature] | [Why excluded] |
|
|
52
|
+
|
|
53
|
+
## Traceability
|
|
54
|
+
|
|
55
|
+
Which phases cover which requirements. Updated during roadmap creation.
|
|
56
|
+
|
|
57
|
+
| Requirement | Phase | Status |
|
|
58
|
+
|-------------|-------|--------|
|
|
59
|
+
| AUTH-01 | Phase 1 | Pending |
|
|
60
|
+
| AUTH-02 | Phase 1 | Pending |
|
|
61
|
+
| AUTH-03 | Phase 1 | Pending |
|
|
62
|
+
| AUTH-04 | Phase 1 | Pending |
|
|
63
|
+
| [REQ-ID] | Phase [N] | Pending |
|
|
64
|
+
|
|
65
|
+
**Coverage:**
|
|
66
|
+
- v1 requirements: [X] total
|
|
67
|
+
- Mapped to phases: [Y]
|
|
68
|
+
- Unmapped: [Z] ⚠️
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
*Requirements defined: [date]*
|
|
72
|
+
*Last updated: [date] after [trigger]*
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
</template>
|
|
76
|
+
|
|
77
|
+
<guidelines>
|
|
78
|
+
|
|
79
|
+
**Requirement Format:**
|
|
80
|
+
- ID: `[CATEGORY]-[NUMBER]` (AUTH-01, CONTENT-02, SOCIAL-03)
|
|
81
|
+
- Description: User-centric, testable, atomic
|
|
82
|
+
- Checkbox: Only for v1 requirements (v2 are not yet actionable)
|
|
83
|
+
|
|
84
|
+
**Categories:**
|
|
85
|
+
- Derive from research FEATURES.md categories
|
|
86
|
+
- Keep consistent with domain conventions
|
|
87
|
+
- Typical: Authentication, Content, Social, Notifications, Moderation, Payments, Admin
|
|
88
|
+
|
|
89
|
+
**v1 vs v2:**
|
|
90
|
+
- v1: Committed scope, will be in roadmap phases
|
|
91
|
+
- v2: Acknowledged but deferred, not in current roadmap
|
|
92
|
+
- Moving v2 → v1 requires roadmap update
|
|
93
|
+
|
|
94
|
+
**Out of Scope:**
|
|
95
|
+
- Explicit exclusions with reasoning
|
|
96
|
+
- Prevents "why didn't you include X?" later
|
|
97
|
+
- Anti-features from research belong here with warnings
|
|
98
|
+
|
|
99
|
+
**Traceability:**
|
|
100
|
+
- Empty initially, populated during roadmap creation
|
|
101
|
+
- Each requirement maps to exactly one phase
|
|
102
|
+
- Unmapped requirements = roadmap gap
|
|
103
|
+
|
|
104
|
+
**Status Values:**
|
|
105
|
+
- Pending: Not started
|
|
106
|
+
- In Progress: Phase is active
|
|
107
|
+
- Complete: Requirement verified
|
|
108
|
+
- Blocked: Waiting on external factor
|
|
109
|
+
|
|
110
|
+
</guidelines>
|
|
111
|
+
|
|
112
|
+
<evolution>
|
|
113
|
+
|
|
114
|
+
**After each phase completes:**
|
|
115
|
+
1. Mark covered requirements as Complete
|
|
116
|
+
2. Update traceability status
|
|
117
|
+
3. Note any requirements that changed scope
|
|
118
|
+
|
|
119
|
+
**After roadmap updates:**
|
|
120
|
+
1. Verify all v1 requirements still mapped
|
|
121
|
+
2. Add new requirements if scope expanded
|
|
122
|
+
3. Move requirements to v2/out of scope if descoped
|
|
123
|
+
|
|
124
|
+
**Requirement completion criteria:**
|
|
125
|
+
- Requirement is "Complete" when:
|
|
126
|
+
- Feature is implemented
|
|
127
|
+
- Feature is verified (tests pass, manual check done)
|
|
128
|
+
- Feature is committed
|
|
129
|
+
|
|
130
|
+
</evolution>
|
|
131
|
+
|
|
132
|
+
<example>
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
# Requirements: CommunityApp
|
|
136
|
+
|
|
137
|
+
**Defined:** 2025-01-14
|
|
138
|
+
**Core Value:** Users can share and discuss content with people who share their interests
|
|
139
|
+
|
|
140
|
+
## v1 Requirements
|
|
141
|
+
|
|
142
|
+
### Authentication
|
|
143
|
+
|
|
144
|
+
- [ ] **AUTH-01**: User can sign up with email and password
|
|
145
|
+
- [ ] **AUTH-02**: User receives email verification after signup
|
|
146
|
+
- [ ] **AUTH-03**: User can reset password via email link
|
|
147
|
+
- [ ] **AUTH-04**: User session persists across browser refresh
|
|
148
|
+
|
|
149
|
+
### Profiles
|
|
150
|
+
|
|
151
|
+
- [ ] **PROF-01**: User can create profile with display name
|
|
152
|
+
- [ ] **PROF-02**: User can upload avatar image
|
|
153
|
+
- [ ] **PROF-03**: User can write bio (max 500 chars)
|
|
154
|
+
- [ ] **PROF-04**: User can view other users' profiles
|
|
155
|
+
|
|
156
|
+
### Content
|
|
157
|
+
|
|
158
|
+
- [ ] **CONT-01**: User can create text post
|
|
159
|
+
- [ ] **CONT-02**: User can upload image with post
|
|
160
|
+
- [ ] **CONT-03**: User can edit own posts
|
|
161
|
+
- [ ] **CONT-04**: User can delete own posts
|
|
162
|
+
- [ ] **CONT-05**: User can view feed of posts
|
|
163
|
+
|
|
164
|
+
### Social
|
|
165
|
+
|
|
166
|
+
- [ ] **SOCL-01**: User can follow other users
|
|
167
|
+
- [ ] **SOCL-02**: User can unfollow users
|
|
168
|
+
- [ ] **SOCL-03**: User can like posts
|
|
169
|
+
- [ ] **SOCL-04**: User can comment on posts
|
|
170
|
+
- [ ] **SOCL-05**: User can view activity feed (followed users' posts)
|
|
171
|
+
|
|
172
|
+
## v2 Requirements
|
|
173
|
+
|
|
174
|
+
### Notifications
|
|
175
|
+
|
|
176
|
+
- **NOTF-01**: User receives in-app notifications
|
|
177
|
+
- **NOTF-02**: User receives email for new followers
|
|
178
|
+
- **NOTF-03**: User receives email for comments on own posts
|
|
179
|
+
- **NOTF-04**: User can configure notification preferences
|
|
180
|
+
|
|
181
|
+
### Moderation
|
|
182
|
+
|
|
183
|
+
- **MODR-01**: User can report content
|
|
184
|
+
- **MODR-02**: User can block other users
|
|
185
|
+
- **MODR-03**: Admin can view reported content
|
|
186
|
+
- **MODR-04**: Admin can remove content
|
|
187
|
+
- **MODR-05**: Admin can ban users
|
|
188
|
+
|
|
189
|
+
## Out of Scope
|
|
190
|
+
|
|
191
|
+
| Feature | Reason |
|
|
192
|
+
|---------|--------|
|
|
193
|
+
| Real-time chat | High complexity, not core to community value |
|
|
194
|
+
| Video posts | Storage/bandwidth costs, defer to v2+ |
|
|
195
|
+
| OAuth login | Email/password sufficient for v1 |
|
|
196
|
+
| Mobile app | Web-first, mobile later |
|
|
197
|
+
|
|
198
|
+
## Traceability
|
|
199
|
+
|
|
200
|
+
| Requirement | Phase | Status |
|
|
201
|
+
|-------------|-------|--------|
|
|
202
|
+
| AUTH-01 | Phase 1 | Pending |
|
|
203
|
+
| AUTH-02 | Phase 1 | Pending |
|
|
204
|
+
| AUTH-03 | Phase 1 | Pending |
|
|
205
|
+
| AUTH-04 | Phase 1 | Pending |
|
|
206
|
+
| PROF-01 | Phase 2 | Pending |
|
|
207
|
+
| PROF-02 | Phase 2 | Pending |
|
|
208
|
+
| PROF-03 | Phase 2 | Pending |
|
|
209
|
+
| PROF-04 | Phase 2 | Pending |
|
|
210
|
+
| CONT-01 | Phase 3 | Pending |
|
|
211
|
+
| CONT-02 | Phase 3 | Pending |
|
|
212
|
+
| CONT-03 | Phase 3 | Pending |
|
|
213
|
+
| CONT-04 | Phase 3 | Pending |
|
|
214
|
+
| CONT-05 | Phase 3 | Pending |
|
|
215
|
+
| SOCL-01 | Phase 4 | Pending |
|
|
216
|
+
| SOCL-02 | Phase 4 | Pending |
|
|
217
|
+
| SOCL-03 | Phase 4 | Pending |
|
|
218
|
+
| SOCL-04 | Phase 4 | Pending |
|
|
219
|
+
| SOCL-05 | Phase 4 | Pending |
|
|
220
|
+
|
|
221
|
+
**Coverage:**
|
|
222
|
+
- v1 requirements: 18 total
|
|
223
|
+
- Mapped to phases: 18
|
|
224
|
+
- Unmapped: 0 ✓
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
*Requirements defined: 2025-01-14*
|
|
228
|
+
*Last updated: 2025-01-14 after initial definition*
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
</example>
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Architecture Research Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/research/ARCHITECTURE.md` — system structure patterns for the project domain.
|
|
4
|
+
|
|
5
|
+
<template>
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Architecture Research
|
|
9
|
+
|
|
10
|
+
**Domain:** [domain type]
|
|
11
|
+
**Researched:** [date]
|
|
12
|
+
**Confidence:** [HIGH/MEDIUM/LOW]
|
|
13
|
+
|
|
14
|
+
## Standard Architecture
|
|
15
|
+
|
|
16
|
+
### System Overview
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
20
|
+
│ [Layer Name] │
|
|
21
|
+
├─────────────────────────────────────────────────────────────┤
|
|
22
|
+
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
23
|
+
│ │ [Comp] │ │ [Comp] │ │ [Comp] │ │ [Comp] │ │
|
|
24
|
+
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
|
|
25
|
+
│ │ │ │ │ │
|
|
26
|
+
├───────┴────────────┴────────────┴────────────┴──────────────┤
|
|
27
|
+
│ [Layer Name] │
|
|
28
|
+
├─────────────────────────────────────────────────────────────┤
|
|
29
|
+
│ ┌─────────────────────────────────────────────────────┐ │
|
|
30
|
+
│ │ [Component] │ │
|
|
31
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
32
|
+
├─────────────────────────────────────────────────────────────┤
|
|
33
|
+
│ [Layer Name] │
|
|
34
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
35
|
+
│ │ [Store] │ │ [Store] │ │ [Store] │ │
|
|
36
|
+
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
37
|
+
└─────────────────────────────────────────────────────────────┘
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Component Responsibilities
|
|
41
|
+
|
|
42
|
+
| Component | Responsibility | Typical Implementation |
|
|
43
|
+
|-----------|----------------|------------------------|
|
|
44
|
+
| [name] | [what it owns] | [how it's usually built] |
|
|
45
|
+
| [name] | [what it owns] | [how it's usually built] |
|
|
46
|
+
| [name] | [what it owns] | [how it's usually built] |
|
|
47
|
+
|
|
48
|
+
## Recommended Project Structure
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
src/
|
|
52
|
+
├── [folder]/ # [purpose]
|
|
53
|
+
│ ├── [subfolder]/ # [purpose]
|
|
54
|
+
│ └── [file].ts # [purpose]
|
|
55
|
+
├── [folder]/ # [purpose]
|
|
56
|
+
│ ├── [subfolder]/ # [purpose]
|
|
57
|
+
│ └── [file].ts # [purpose]
|
|
58
|
+
├── [folder]/ # [purpose]
|
|
59
|
+
└── [folder]/ # [purpose]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Structure Rationale
|
|
63
|
+
|
|
64
|
+
- **[folder]/:** [why organized this way]
|
|
65
|
+
- **[folder]/:** [why organized this way]
|
|
66
|
+
|
|
67
|
+
## Architectural Patterns
|
|
68
|
+
|
|
69
|
+
### Pattern 1: [Pattern Name]
|
|
70
|
+
|
|
71
|
+
**What:** [description]
|
|
72
|
+
**When to use:** [conditions]
|
|
73
|
+
**Trade-offs:** [pros and cons]
|
|
74
|
+
|
|
75
|
+
**Example:**
|
|
76
|
+
```typescript
|
|
77
|
+
// [Brief code example showing the pattern]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Pattern 2: [Pattern Name]
|
|
81
|
+
|
|
82
|
+
**What:** [description]
|
|
83
|
+
**When to use:** [conditions]
|
|
84
|
+
**Trade-offs:** [pros and cons]
|
|
85
|
+
|
|
86
|
+
**Example:**
|
|
87
|
+
```typescript
|
|
88
|
+
// [Brief code example showing the pattern]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Pattern 3: [Pattern Name]
|
|
92
|
+
|
|
93
|
+
**What:** [description]
|
|
94
|
+
**When to use:** [conditions]
|
|
95
|
+
**Trade-offs:** [pros and cons]
|
|
96
|
+
|
|
97
|
+
## Data Flow
|
|
98
|
+
|
|
99
|
+
### Request Flow
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
[User Action]
|
|
103
|
+
↓
|
|
104
|
+
[Component] → [Handler] → [Service] → [Data Store]
|
|
105
|
+
↓ ↓ ↓ ↓
|
|
106
|
+
[Response] ← [Transform] ← [Query] ← [Database]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### State Management
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
[State Store]
|
|
113
|
+
↓ (subscribe)
|
|
114
|
+
[Components] ←→ [Actions] → [Reducers/Mutations] → [State Store]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Key Data Flows
|
|
118
|
+
|
|
119
|
+
1. **[Flow name]:** [description of how data moves]
|
|
120
|
+
2. **[Flow name]:** [description of how data moves]
|
|
121
|
+
|
|
122
|
+
## Scaling Considerations
|
|
123
|
+
|
|
124
|
+
| Scale | Architecture Adjustments |
|
|
125
|
+
|-------|--------------------------|
|
|
126
|
+
| 0-1k users | [approach — usually monolith is fine] |
|
|
127
|
+
| 1k-100k users | [approach — what to optimize first] |
|
|
128
|
+
| 100k+ users | [approach — when to consider splitting] |
|
|
129
|
+
|
|
130
|
+
### Scaling Priorities
|
|
131
|
+
|
|
132
|
+
1. **First bottleneck:** [what breaks first, how to fix]
|
|
133
|
+
2. **Second bottleneck:** [what breaks next, how to fix]
|
|
134
|
+
|
|
135
|
+
## Anti-Patterns
|
|
136
|
+
|
|
137
|
+
### Anti-Pattern 1: [Name]
|
|
138
|
+
|
|
139
|
+
**What people do:** [the mistake]
|
|
140
|
+
**Why it's wrong:** [the problem it causes]
|
|
141
|
+
**Do this instead:** [the correct approach]
|
|
142
|
+
|
|
143
|
+
### Anti-Pattern 2: [Name]
|
|
144
|
+
|
|
145
|
+
**What people do:** [the mistake]
|
|
146
|
+
**Why it's wrong:** [the problem it causes]
|
|
147
|
+
**Do this instead:** [the correct approach]
|
|
148
|
+
|
|
149
|
+
## Integration Points
|
|
150
|
+
|
|
151
|
+
### External Services
|
|
152
|
+
|
|
153
|
+
| Service | Integration Pattern | Notes |
|
|
154
|
+
|---------|---------------------|-------|
|
|
155
|
+
| [service] | [how to connect] | [gotchas] |
|
|
156
|
+
| [service] | [how to connect] | [gotchas] |
|
|
157
|
+
|
|
158
|
+
### Internal Boundaries
|
|
159
|
+
|
|
160
|
+
| Boundary | Communication | Notes |
|
|
161
|
+
|----------|---------------|-------|
|
|
162
|
+
| [module A ↔ module B] | [API/events/direct] | [considerations] |
|
|
163
|
+
|
|
164
|
+
## Sources
|
|
165
|
+
|
|
166
|
+
- [Architecture references]
|
|
167
|
+
- [Official documentation]
|
|
168
|
+
- [Case studies]
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
*Architecture research for: [domain]*
|
|
172
|
+
*Researched: [date]*
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
</template>
|
|
176
|
+
|
|
177
|
+
<guidelines>
|
|
178
|
+
|
|
179
|
+
**System Overview:**
|
|
180
|
+
- Use ASCII box-drawing diagrams for clarity (├── └── │ ─ for structure visualization only)
|
|
181
|
+
- Show major components and their relationships
|
|
182
|
+
- Don't over-detail — this is conceptual, not implementation
|
|
183
|
+
|
|
184
|
+
**Project Structure:**
|
|
185
|
+
- Be specific about folder organization
|
|
186
|
+
- Explain the rationale for grouping
|
|
187
|
+
- Match conventions of the chosen stack
|
|
188
|
+
|
|
189
|
+
**Patterns:**
|
|
190
|
+
- Include code examples where helpful
|
|
191
|
+
- Explain trade-offs honestly
|
|
192
|
+
- Note when patterns are overkill for small projects
|
|
193
|
+
|
|
194
|
+
**Scaling Considerations:**
|
|
195
|
+
- Be realistic — most projects don't need to scale to millions
|
|
196
|
+
- Focus on "what breaks first" not theoretical limits
|
|
197
|
+
- Avoid premature optimization recommendations
|
|
198
|
+
|
|
199
|
+
**Anti-Patterns:**
|
|
200
|
+
- Specific to this domain
|
|
201
|
+
- Include what to do instead
|
|
202
|
+
- Helps prevent common mistakes during implementation
|
|
203
|
+
|
|
204
|
+
</guidelines>
|