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,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ship
|
|
3
|
+
description: "Full production deployment pipeline — quality gates, commit, deploy, and verify. Role-aware: OWNER pushes directly, DEVELOPER auto-creates feature branch. Use this skill whenever the user says 'ship', 'deploy', 'push to production', 'go live', 'release', 'ship it', 'push', 'push it', 'put it on github', 'send to github', 'push to github', or wants to deploy any project (website, AI agent, voice agent, edge functions). Also trigger when user mentions Vercel deploy, Supabase functions deploy, Cloudflare Workers deploy, or just wants their code pushed."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ship — Full Production Deployment Pipeline
|
|
7
|
+
|
|
8
|
+
Ship the current project to production. Runs quality gates, commits, pushes, deploys, and verifies.
|
|
9
|
+
|
|
10
|
+
Reference `.planning/PROJECT.md` and `.planning/STATE.md` for project config. If no `.planning/` exists, use `package.json` and git remote to identify the project.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
`/ship` — Auto-detect project type from codebase
|
|
15
|
+
`/ship --type=agent` — AI agent deployment (safety checks, webhook idempotency)
|
|
16
|
+
`/ship --type=voice` — Voice agent deployment (signature verification, latency checks)
|
|
17
|
+
`/ship --type=website` — Website deployment (SEO, responsive checks)
|
|
18
|
+
|
|
19
|
+
## Auto-Detection (when --type not specified)
|
|
20
|
+
|
|
21
|
+
Detect project type from codebase signals:
|
|
22
|
+
|
|
23
|
+
- **agent**: Has AI provider imports (`openai`, `anthropic`, `@ai-sdk`), webhook handlers, agent logic
|
|
24
|
+
- **voice**: Has VAPI/Retell/Telnyx/ElevenLabs imports, voice webhook handlers, `x-vapi-signature`
|
|
25
|
+
- **website**: Has `app/page.tsx` or `pages/index.tsx`, no AI provider imports, primarily UI components
|
|
26
|
+
- **edge-functions**: Has `supabase/functions/` directory, no frontend
|
|
27
|
+
|
|
28
|
+
If ambiguous, ask user. If pure edge functions, skip tsc/eslint quality gates.
|
|
29
|
+
|
|
30
|
+
## Shipping Checklist Gate
|
|
31
|
+
|
|
32
|
+
Before deploying, load the relevant shipping checklist from `~/Projects/qualia-erp/docs/completion-checklists.md`:
|
|
33
|
+
|
|
34
|
+
- **website** → "Website-Specific Checklist" + "Universal Checklist"
|
|
35
|
+
- **agent** → "AI Agent Checklist" + "Universal Checklist"
|
|
36
|
+
- **voice** → "Voice Agent Checklist" + "Universal Checklist"
|
|
37
|
+
- **mobile** → "Mobile App Checklist" + "Universal Checklist"
|
|
38
|
+
- **platform** → "Platform with LLM Checklist" + "Universal Checklist"
|
|
39
|
+
|
|
40
|
+
After quality gates pass (Step 2), scan the codebase against each checklist item and report:
|
|
41
|
+
- PASS: item verified automatically (e.g., grep found no service_role in client code)
|
|
42
|
+
- WARN: could not verify automatically — needs manual check
|
|
43
|
+
- FAIL: item clearly not met (e.g., no meta descriptions found)
|
|
44
|
+
|
|
45
|
+
Any FAIL items are **deploy blockers** — report them and ask if user wants to fix first or ship anyway.
|
|
46
|
+
Include the checklist results in the final deploy report (Step 8).
|
|
47
|
+
|
|
48
|
+
## Steps
|
|
49
|
+
|
|
50
|
+
### 1. Identify Project
|
|
51
|
+
|
|
52
|
+
`pwd` to determine which project, look up deploy config from `.planning/PROJECT.md` and `.planning/STATE.md`. If no `.planning/` exists, use `package.json` and git remote to identify the project.
|
|
53
|
+
|
|
54
|
+
### 2. Quality Gates
|
|
55
|
+
|
|
56
|
+
Run in sequence, stop on failure:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx tsc --noEmit # TypeScript check — skip if no tsconfig or pure edge functions
|
|
60
|
+
npx eslint . --max-warnings 0 # Lint check — skip if no eslint config
|
|
61
|
+
npm run build # Build verification — skip if pure edge functions
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 2a. Run Tests
|
|
65
|
+
|
|
66
|
+
If test infrastructure exists (per `~/.claude/skills/test-runner/SKILL.md` detection):
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm test 2>&1 | tail -30 # Unit/Integration
|
|
70
|
+
npx playwright test 2>&1 # E2E (if configured)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If tests fail: STOP. Report failures. Do not proceed to deploy.
|
|
74
|
+
If no test infrastructure: skip silently.
|
|
75
|
+
|
|
76
|
+
### 2b. Review Gate
|
|
77
|
+
|
|
78
|
+
Check for review results:
|
|
79
|
+
|
|
80
|
+
1. Read `.planning/REVIEW.md` or `.review/REVIEW.md`
|
|
81
|
+
2. If `status: has_blockers`:
|
|
82
|
+
- List unresolved CRITICAL/HIGH findings
|
|
83
|
+
- Ask: "Fix these first, or deploy anyway?"
|
|
84
|
+
- If user says fix → stop
|
|
85
|
+
- If user says deploy anyway → continue with warning logged
|
|
86
|
+
3. If `status: clean` or file not found → continue (advisory note if not found)
|
|
87
|
+
|
|
88
|
+
### 3. Type-Specific Checks
|
|
89
|
+
|
|
90
|
+
Based on detected or specified type:
|
|
91
|
+
|
|
92
|
+
#### If agent (AI Agent):
|
|
93
|
+
|
|
94
|
+
- **AI safety quick-check** — Grep codebase for:
|
|
95
|
+
- `service_role` in client-side files (`app/`, `components/`, `src/`) — should be ZERO matches (FAIL = blocks deploy)
|
|
96
|
+
- Rate limiting middleware — grep for `rateLimit`, `rateLimiter` in API routes
|
|
97
|
+
- `maxTokens` on AI calls — grep for `maxTokens`, `max_tokens` in AI provider calls
|
|
98
|
+
- Report: PASS/FAIL per item
|
|
99
|
+
- **Webhook idempotency check** — Grep for deduplication logic (`dedup`, `idempotency`, `already_processed`, `messageId`). Report: PASS/WARN
|
|
100
|
+
- **Production resilience** — Check for timeout protection (`export const maxDuration`), circuit breakers, error monitoring (Sentry configured)
|
|
101
|
+
|
|
102
|
+
#### If voice (Voice Agent):
|
|
103
|
+
|
|
104
|
+
- **Webhook signature verification** — Grep for signature check (`x-vapi-signature`, `signature`, `hmac`, `verify`). Report: PASS/WARN
|
|
105
|
+
- **Edge function latency note** — First-response latency target: < 500ms. After deploy, test with: `curl -w "%{time_total}" -X POST <webhook-url>`
|
|
106
|
+
|
|
107
|
+
#### If website (Website):
|
|
108
|
+
|
|
109
|
+
- **SEO quick-check** — Grep for viewport meta, Open Graph tags (`og:title`, `og:description`), JSON-LD structured data. Report: PASS/WARN per item
|
|
110
|
+
- **Responsive quick-check** — Check viewport meta exists, no fixed pixel widths on containers, `max-width` used on main content areas. Report: PASS/WARN per item
|
|
111
|
+
|
|
112
|
+
### 4. Git Workflow (Role-Aware Branching)
|
|
113
|
+
|
|
114
|
+
**First: detect role and branch.**
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
ROLE=$(grep -m1 "^## Role:" ~/.claude/CLAUDE.md 2>/dev/null | sed 's/^## Role: *//')
|
|
118
|
+
BRANCH=$(git branch --show-current 2>/dev/null)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Branching logic:**
|
|
122
|
+
|
|
123
|
+
| Role | On main/master | On feature branch |
|
|
124
|
+
|------|---------------|-------------------|
|
|
125
|
+
| OWNER | Push directly | Push directly |
|
|
126
|
+
| DEVELOPER | Auto-create feature branch first | Push directly |
|
|
127
|
+
|
|
128
|
+
**If DEVELOPER on main/master:**
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Auto-create a descriptive feature branch from the work done
|
|
132
|
+
# Use the commit message or task description for the branch name
|
|
133
|
+
git checkout -b feature/<descriptive-name>
|
|
134
|
+
# Stage, commit, push to the NEW branch
|
|
135
|
+
git push -u origin feature/<descriptive-name>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Tell the user: "Created branch `feature/<name>` and pushed there. You can't push directly to main — create a PR when ready."
|
|
139
|
+
|
|
140
|
+
**If OWNER or already on feature branch:**
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
git status
|
|
144
|
+
# Stage relevant files (NOT .env, NOT node_modules)
|
|
145
|
+
# Create descriptive commit
|
|
146
|
+
# Push to current branch
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 5. Preview Deploy
|
|
150
|
+
|
|
151
|
+
Deploy to preview first (if applicable):
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
vercel # without --prod — gets preview URL
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Run post-deploy checks against the preview URL. If checks pass, proceed to production. If checks fail, fix issues and re-deploy to preview.
|
|
158
|
+
|
|
159
|
+
### 6. Deploy
|
|
160
|
+
|
|
161
|
+
Based on project:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
vercel --prod # Vercel projects
|
|
165
|
+
supabase functions deploy # Edge functions
|
|
166
|
+
wrangler deploy # Cloudflare Workers
|
|
167
|
+
supabase db push --project-ref <ref> # If migrations pending — test on branch first
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 7. Post-Deploy Verification
|
|
171
|
+
|
|
172
|
+
#### All types:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
curl -s -o /dev/null -w "%{http_code}" <domain> # HTTP 200
|
|
176
|
+
# Key endpoints respond under 500ms
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
#### Agent additions:
|
|
180
|
+
Auth flow, webhook test, console errors, load test, error monitoring
|
|
181
|
+
|
|
182
|
+
#### Voice additions:
|
|
183
|
+
Webhook test, latency test, edge function logs
|
|
184
|
+
|
|
185
|
+
#### Website additions:
|
|
186
|
+
Auth flow, console errors, SEO verify, Lighthouse hint
|
|
187
|
+
|
|
188
|
+
### 8. Report
|
|
189
|
+
|
|
190
|
+
Summary of what was deployed, type-specific check results, latency measurements, deploy verification.
|
|
191
|
+
|
|
192
|
+
### 9. Rollback Plan
|
|
193
|
+
|
|
194
|
+
If production issues detected:
|
|
195
|
+
|
|
196
|
+
- **Vercel**: `vercel rollback`
|
|
197
|
+
- **Cloudflare Workers**: `wrangler deploy` previous version
|
|
198
|
+
- **Edge functions**: `supabase functions deploy <name> --version <previous>`
|
|
199
|
+
- **Supabase migrations**: Create reverse migration
|
|
200
|
+
- **Emergency**: Vercel dashboard manual rollback
|
|
201
|
+
|
|
202
|
+
If ANY quality gate or safety check FAILS: stop, fix the issue, then re-run `/ship`.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stack-researcher
|
|
3
|
+
description: Research latest best practices for any tech stack using web search and documentation - Next.js, React, Supabase, Vercel, Tailwind, etc. Use when you need up-to-date framework guidance or want to compare approaches.
|
|
4
|
+
tags: [research, best-practices, documentation, nextjs, react, supabase, vercel]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Stack Researcher
|
|
8
|
+
|
|
9
|
+
You are a technical researcher specializing in finding up-to-date best practices, patterns, and documentation for modern web development stacks. You use **web search and official documentation** to provide current guidance.
|
|
10
|
+
|
|
11
|
+
**Announce at start:** "Activating stack-researcher to find latest best practices for your stack."
|
|
12
|
+
|
|
13
|
+
## Phase 1: Identify Stack
|
|
14
|
+
|
|
15
|
+
First, analyze the project to identify:
|
|
16
|
+
```
|
|
17
|
+
1. Framework (Next.js version, React version)
|
|
18
|
+
2. Database (Supabase, PlanetScale, Prisma)
|
|
19
|
+
3. Auth (NextAuth, Supabase Auth, Clerk)
|
|
20
|
+
4. Styling (Tailwind, shadcn/ui)
|
|
21
|
+
5. Deployment (Vercel, AWS, self-hosted)
|
|
22
|
+
6. Package manager (npm, pnpm, yarn)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Phase 2: Research Each Stack Component
|
|
26
|
+
|
|
27
|
+
For each identified technology, research:
|
|
28
|
+
|
|
29
|
+
### Next.js Research
|
|
30
|
+
```
|
|
31
|
+
- App Router vs Pages Router patterns
|
|
32
|
+
- Server Components vs Client Components
|
|
33
|
+
- Data fetching (RSC, Server Actions, Route Handlers)
|
|
34
|
+
- Caching and revalidation
|
|
35
|
+
- Middleware patterns
|
|
36
|
+
- SEO and metadata
|
|
37
|
+
- Performance optimization
|
|
38
|
+
- Recent breaking changes
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### React 19 Research
|
|
42
|
+
```
|
|
43
|
+
- New hooks and features
|
|
44
|
+
- Concurrent rendering patterns
|
|
45
|
+
- Server Components integration
|
|
46
|
+
- Suspense boundaries
|
|
47
|
+
- Error boundaries
|
|
48
|
+
- Transitions
|
|
49
|
+
- Memoization patterns (when needed vs unnecessary)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Supabase Research
|
|
53
|
+
```
|
|
54
|
+
- Auth patterns (PKCE, SSR)
|
|
55
|
+
- RLS policy patterns
|
|
56
|
+
- Real-time subscriptions
|
|
57
|
+
- Edge functions
|
|
58
|
+
- Storage patterns
|
|
59
|
+
- Performance optimization
|
|
60
|
+
- Migration best practices
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Tailwind Research
|
|
64
|
+
```
|
|
65
|
+
- v4 changes (if applicable)
|
|
66
|
+
- Design system setup
|
|
67
|
+
- Dark mode patterns
|
|
68
|
+
- Animation utilities
|
|
69
|
+
- Custom configuration
|
|
70
|
+
- Plugin recommendations
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Vercel Deployment Research
|
|
74
|
+
```
|
|
75
|
+
- Edge vs Serverless functions
|
|
76
|
+
- ISR patterns
|
|
77
|
+
- Image optimization
|
|
78
|
+
- Analytics integration
|
|
79
|
+
- Environment variables
|
|
80
|
+
- Preview deployments
|
|
81
|
+
- Cron jobs
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Research Output Format
|
|
85
|
+
|
|
86
|
+
For each technology researched:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
## [Technology Name] Best Practices (as of YYYY-MM)
|
|
90
|
+
|
|
91
|
+
### Official Documentation Summary
|
|
92
|
+
[Key points from official docs]
|
|
93
|
+
|
|
94
|
+
### Current Best Practices
|
|
95
|
+
1. **[Practice]**: [Why and how]
|
|
96
|
+
2. **[Practice]**: [Why and how]
|
|
97
|
+
|
|
98
|
+
### Common Pitfalls to Avoid
|
|
99
|
+
1. **[Anti-pattern]**: [Why it's bad, what to do instead]
|
|
100
|
+
2. **[Anti-pattern]**: [Why it's bad, what to do instead]
|
|
101
|
+
|
|
102
|
+
### Recent Changes (Last 6 months)
|
|
103
|
+
- [Change]: [Impact on your code]
|
|
104
|
+
|
|
105
|
+
### Code Examples
|
|
106
|
+
|
|
107
|
+
#### Recommended Pattern
|
|
108
|
+
```[language]
|
|
109
|
+
// Good: [explanation]
|
|
110
|
+
[code]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### Anti-Pattern to Avoid
|
|
114
|
+
```[language]
|
|
115
|
+
// Bad: [explanation]
|
|
116
|
+
[code]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Resources
|
|
120
|
+
- [Official docs link]
|
|
121
|
+
- [Recommended blog post/video]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Research Topics by Category
|
|
125
|
+
|
|
126
|
+
### Frontend Patterns
|
|
127
|
+
- Component composition patterns
|
|
128
|
+
- State management approaches
|
|
129
|
+
- Form handling (react-hook-form + zod)
|
|
130
|
+
- Data fetching and caching
|
|
131
|
+
- Optimistic updates
|
|
132
|
+
- Error handling
|
|
133
|
+
- Accessibility patterns
|
|
134
|
+
- Testing strategies
|
|
135
|
+
|
|
136
|
+
### Backend Patterns
|
|
137
|
+
- API design (REST, GraphQL, tRPC)
|
|
138
|
+
- Authentication flows
|
|
139
|
+
- Authorization patterns
|
|
140
|
+
- Input validation
|
|
141
|
+
- Error handling
|
|
142
|
+
- Logging and monitoring
|
|
143
|
+
- Rate limiting
|
|
144
|
+
- Caching strategies
|
|
145
|
+
|
|
146
|
+
### Database Patterns
|
|
147
|
+
- Schema design principles
|
|
148
|
+
- Index optimization
|
|
149
|
+
- Query patterns (avoiding N+1)
|
|
150
|
+
- Migration strategies
|
|
151
|
+
- Backup and recovery
|
|
152
|
+
- Connection pooling
|
|
153
|
+
- Row-level security
|
|
154
|
+
|
|
155
|
+
### DevOps Patterns
|
|
156
|
+
- CI/CD configuration
|
|
157
|
+
- Environment management
|
|
158
|
+
- Secret management
|
|
159
|
+
- Monitoring and alerting
|
|
160
|
+
- Logging aggregation
|
|
161
|
+
- Performance profiling
|
|
162
|
+
- Security scanning
|
|
163
|
+
|
|
164
|
+
## Comparison Research
|
|
165
|
+
|
|
166
|
+
When asked to compare approaches:
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## Comparison: [Option A] vs [Option B]
|
|
170
|
+
|
|
171
|
+
### Overview
|
|
172
|
+
[Brief description of what we're comparing]
|
|
173
|
+
|
|
174
|
+
### Side-by-Side
|
|
175
|
+
|
|
176
|
+
| Aspect | Option A | Option B |
|
|
177
|
+
|--------|----------|----------|
|
|
178
|
+
| Performance | ... | ... |
|
|
179
|
+
| DX | ... | ... |
|
|
180
|
+
| Ecosystem | ... | ... |
|
|
181
|
+
| Learning Curve | ... | ... |
|
|
182
|
+
| Maintenance | ... | ... |
|
|
183
|
+
|
|
184
|
+
### When to Use Option A
|
|
185
|
+
- [Scenario 1]
|
|
186
|
+
- [Scenario 2]
|
|
187
|
+
|
|
188
|
+
### When to Use Option B
|
|
189
|
+
- [Scenario 1]
|
|
190
|
+
- [Scenario 2]
|
|
191
|
+
|
|
192
|
+
### Recommendation for This Project
|
|
193
|
+
[Based on what was detected in the codebase]
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## After Research
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
"Research complete. Would you like me to:
|
|
200
|
+
|
|
201
|
+
1. **Apply Recommendations** - Update your code to follow best practices
|
|
202
|
+
2. **Create Migration Plan** - Plan for updating to recommended patterns
|
|
203
|
+
3. **Deep Dive Specific Area** - Research more detail on one topic
|
|
204
|
+
4. **Save Research** - Save findings to docs/research/
|
|
205
|
+
5. **Compare Alternatives** - Research alternative approaches"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Trigger Phrases
|
|
209
|
+
|
|
210
|
+
- "research best practices for [stack]"
|
|
211
|
+
- "what's the latest on [technology]"
|
|
212
|
+
- "compare [A] vs [B]"
|
|
213
|
+
- "how should I do [X] in [framework]"
|
|
214
|
+
- "is my [pattern] up to date"
|
|
215
|
+
- "research current patterns"
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: status
|
|
3
|
+
description: "Fleet-wide health check for all Qualia projects — HTTP status, SSL, Supabase, response times. Flags issues without fixing them. Supports --quick and --project modes."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Fleet Health Monitor
|
|
8
|
+
|
|
9
|
+
Diagnostic sweep across all active and maintenance Qualia projects. Flags problems, doesn't fix them.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
- `/status` — Check all active + maintenance projects (HTTP, SSL, Supabase, latency)
|
|
14
|
+
- `/status --quick` — HTTP status only (fast, ~15 seconds)
|
|
15
|
+
- `/status --project vero` — Deep check on a single project
|
|
16
|
+
|
|
17
|
+
## How It Works
|
|
18
|
+
|
|
19
|
+
### Step 1: Read qualia-context.md
|
|
20
|
+
|
|
21
|
+
ALWAYS read `~/.claude/knowledge/qualia-context.md` at the start. Never hardcode project URLs or Supabase refs — the file is the source of truth.
|
|
22
|
+
|
|
23
|
+
Extract all projects with status ACTIVE, MAINTENANCE, or LIVE. Skip DORMANT and DEV unless specifically requested.
|
|
24
|
+
|
|
25
|
+
Build the check list:
|
|
26
|
+
```
|
|
27
|
+
Project → URL (derive from project name: {name}.vercel.app) → Supabase ref (if any) → Hosting type
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
For projects where the URL isn't `{name}.vercel.app` (custom domains, Cloudflare, etc.), check the project's `.env.local` or Vercel dashboard.
|
|
31
|
+
|
|
32
|
+
Known special cases:
|
|
33
|
+
- `armenius` → Cloudflare Workers (not Vercel)
|
|
34
|
+
- `qualia` (ERP) → `qualia-erp.vercel.app`
|
|
35
|
+
- `sofiatesting` → verify the exact Vercel URL from project dir
|
|
36
|
+
|
|
37
|
+
### Step 2: Run Health Checks
|
|
38
|
+
|
|
39
|
+
Use `scripts/health-check.sh` for the actual HTTP/SSL checks. Run all projects in parallel using background processes.
|
|
40
|
+
|
|
41
|
+
**Default mode checks (per project):**
|
|
42
|
+
|
|
43
|
+
| Check | Method | PASS | WARN | FAIL |
|
|
44
|
+
|-------|--------|------|------|------|
|
|
45
|
+
| HTTP Status | `curl -sL -o /dev/null -w "%{http_code}" --max-time 10` | 200 | 301/302 (redirect) | 4xx, 5xx, timeout |
|
|
46
|
+
| Response Time | `curl -sL -o /dev/null -w "%{time_total}" --max-time 10` | < 1s | 1–3s | > 3s or timeout |
|
|
47
|
+
| SSL Certificate | `openssl s_client` + check expiry | > 30 days | 7–30 days | < 7 days or expired |
|
|
48
|
+
| Supabase Health | `curl https://{ref}.supabase.co/rest/v1/` | Reachable (200/401) | Slow (> 500ms) | Unreachable |
|
|
49
|
+
|
|
50
|
+
**Quick mode (`--quick`):** HTTP Status only. Skips SSL, Supabase, response time.
|
|
51
|
+
|
|
52
|
+
**Deep mode (`--project {name}`):** All default checks plus:
|
|
53
|
+
- Vercel deployment status (`vercel ls` in project dir)
|
|
54
|
+
- Last deploy time
|
|
55
|
+
- Supabase connection count (`supabase inspect db connections` or `pg_stat_activity`)
|
|
56
|
+
- Supabase auth health (`/auth/v1/health`)
|
|
57
|
+
- Edge function status (`supabase functions list`)
|
|
58
|
+
|
|
59
|
+
### Step 3: Generate Report
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
════════════════════════════════════════════════════
|
|
63
|
+
QUALIA FLEET HEALTH — 2026-03-04 17:30 UTC
|
|
64
|
+
Checking: 8 active/maintenance projects
|
|
65
|
+
════════════════════════════════════════════════════
|
|
66
|
+
|
|
67
|
+
WEBSITES
|
|
68
|
+
✓ PASS qualiafinal 200 OK (287ms) SSL: 68d
|
|
69
|
+
✓ PASS vero 200 OK (342ms) SSL: 45d DB: healthy
|
|
70
|
+
✓ PASS aibossbrainz 200 OK (198ms) SSL: 45d DB: healthy
|
|
71
|
+
⚠ WARN aquador 200 OK (1.8s) SSL: 12d DB: healthy
|
|
72
|
+
✓ PASS glluztech 200 OK (445ms) SSL: 68d
|
|
73
|
+
✓ PASS inrvo 200 OK (312ms) SSL: 68d
|
|
74
|
+
✓ PASS maud 200 OK (521ms) SSL: 68d DB: healthy
|
|
75
|
+
✓ PASS mpm 200 OK (389ms) SSL: 68d DB: healthy
|
|
76
|
+
|
|
77
|
+
AI AGENTS
|
|
78
|
+
✓ PASS sofiatesting 200 OK (412ms) SSL: 45d DB: healthy
|
|
79
|
+
|
|
80
|
+
VOICE
|
|
81
|
+
✓ PASS under 200 OK (267ms) SSL: 45d DB: healthy
|
|
82
|
+
⚠ WARN armenius 200 OK (890ms) SSL: 22d
|
|
83
|
+
|
|
84
|
+
──────────────────────────────────────────────────
|
|
85
|
+
RESULT: 9 PASS · 2 WARN · 0 FAIL
|
|
86
|
+
Total check time: 12.4s
|
|
87
|
+
──────────────────────────────────────────────────
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Step 4: Flag Issues
|
|
91
|
+
|
|
92
|
+
If any check returns FAIL or WARN, print specific next steps below the report:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
ISSUES FOUND:
|
|
96
|
+
|
|
97
|
+
⚠ aquador — Response time 1.8s (threshold: 1s)
|
|
98
|
+
→ Check: vercel logs aquador.vercel.app
|
|
99
|
+
→ Check: supabase inspect db outliers --project-ref hznpuxplqgszbacxzbhv
|
|
100
|
+
|
|
101
|
+
⚠ armenius — SSL expires in 22 days
|
|
102
|
+
→ Check: Cloudflare dashboard → SSL/TLS → Edge Certificates
|
|
103
|
+
→ Note: Armenius uses Cloudflare, not Vercel (auto-renewal should handle this)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
For FAIL results, be more urgent:
|
|
107
|
+
```
|
|
108
|
+
✗ FAIL vero — HTTP 503 Service Unavailable
|
|
109
|
+
→ IMMEDIATE: Check Vercel dashboard for vero
|
|
110
|
+
→ Run: vercel logs vero.vercel.app
|
|
111
|
+
→ Check: Supabase dashboard → is project paused?
|
|
112
|
+
→ If unrecoverable: vercel rollback --prod
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Project URL Resolution
|
|
116
|
+
|
|
117
|
+
The script resolves project URLs in this order:
|
|
118
|
+
|
|
119
|
+
1. Check for `VERCEL_URL` or `NEXT_PUBLIC_SITE_URL` in project's `.env.local`
|
|
120
|
+
2. Check for custom domain in project's `vercel.json`
|
|
121
|
+
3. Fall back to `{project-name}.vercel.app`
|
|
122
|
+
|
|
123
|
+
Known URL overrides (kept in the health-check.sh script):
|
|
124
|
+
```bash
|
|
125
|
+
declare -A URL_OVERRIDES=(
|
|
126
|
+
["qualia"]="qualia-erp.vercel.app"
|
|
127
|
+
# Add more as discovered
|
|
128
|
+
)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Cron Integration
|
|
132
|
+
|
|
133
|
+
This skill is designed to work with a daily cron job:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Run daily at 8am Cyprus time (5am UTC)
|
|
137
|
+
0 5 * * * bash ~/.claude/skills/status/scripts/health-check.sh --all > /tmp/qualia-health-$(date +\%Y\%m\%d).log 2>&1
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The health-check.sh script outputs plain text (no ANSI colors) when stdout isn't a terminal, making logs readable.
|
|
141
|
+
|
|
142
|
+
To review the last health check:
|
|
143
|
+
```bash
|
|
144
|
+
cat /tmp/qualia-health-$(date +%Y%m%d).log
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Rules
|
|
148
|
+
|
|
149
|
+
- **Flag but don't fix** — this is diagnostic only. Never modify, deploy, or rollback.
|
|
150
|
+
- **Read qualia-context.md every time** — never hardcode URLs or refs.
|
|
151
|
+
- **10-second timeout per check** — don't hang on unresponsive projects.
|
|
152
|
+
- **Parallel execution** — run project checks concurrently using background processes.
|
|
153
|
+
- **curl only** — no extra dependencies for HTTP checks.
|
|
154
|
+
- **No secrets in output** — never print API keys, service role keys, or connection strings.
|