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.
Files changed (261) hide show
  1. package/README.md +50 -0
  2. package/bin/cli.js +519 -0
  3. package/framework/agents/architecture-strategist.md +53 -0
  4. package/framework/agents/backend-agent.md +150 -0
  5. package/framework/agents/code-simplicity-reviewer.md +86 -0
  6. package/framework/agents/frontend-agent.md +111 -0
  7. package/framework/agents/kieran-typescript-reviewer.md +96 -0
  8. package/framework/agents/performance-oracle.md +111 -0
  9. package/framework/agents/qualia-codebase-mapper.md +760 -0
  10. package/framework/agents/qualia-debugger.md +1203 -0
  11. package/framework/agents/qualia-executor.md +881 -0
  12. package/framework/agents/qualia-integration-checker.md +423 -0
  13. package/framework/agents/qualia-phase-researcher.md +453 -0
  14. package/framework/agents/qualia-plan-checker.md +699 -0
  15. package/framework/agents/qualia-planner.md +1241 -0
  16. package/framework/agents/qualia-project-researcher.md +602 -0
  17. package/framework/agents/qualia-research-synthesizer.md +236 -0
  18. package/framework/agents/qualia-roadmapper.md +605 -0
  19. package/framework/agents/qualia-verifier.md +685 -0
  20. package/framework/agents/team-orchestrator.md +228 -0
  21. package/framework/agents/teams/full-stack-team.md +48 -0
  22. package/framework/agents/teams/optimize-team.md +53 -0
  23. package/framework/agents/teams/review-team.md +62 -0
  24. package/framework/agents/teams/ship-team.md +86 -0
  25. package/framework/agents/test-agent.md +182 -0
  26. package/framework/askpass.sh +2 -0
  27. package/framework/commands/design.md +53 -0
  28. package/framework/commands/quick-db.md +22 -0
  29. package/framework/config/retention.json +35 -0
  30. package/framework/core/PRINCIPLES.md +77 -0
  31. package/framework/hooks/auto-format.sh +45 -0
  32. package/framework/hooks/block-env-edit.sh +42 -0
  33. package/framework/hooks/branch-guard.sh +46 -0
  34. package/framework/hooks/confirm-delete.sh +56 -0
  35. package/framework/hooks/migration-validate.sh +68 -0
  36. package/framework/hooks/notification-speak.sh +15 -0
  37. package/framework/hooks/pre-commit.sh +80 -0
  38. package/framework/hooks/pre-compact.sh +55 -0
  39. package/framework/hooks/pre-deploy-gate.sh +151 -0
  40. package/framework/hooks/qualia-colors.sh +32 -0
  41. package/framework/hooks/retention-cleanup.sh +43 -0
  42. package/framework/hooks/save-session-state.sh +153 -0
  43. package/framework/hooks/session-context-loader.sh +28 -0
  44. package/framework/hooks/session-learn.sh +30 -0
  45. package/framework/knowledge/claudecode-bible.md +1384 -0
  46. package/framework/knowledge/client-prefs.md +22 -0
  47. package/framework/knowledge/common-fixes.md +25 -0
  48. package/framework/knowledge/deployment-map.md +35 -0
  49. package/framework/knowledge/email-signature.html +1 -0
  50. package/framework/knowledge/employees.md +8 -0
  51. package/framework/knowledge/learned-patterns.md +51 -0
  52. package/framework/knowledge/optimization-research-2026.md +137 -0
  53. package/framework/knowledge/qualia-context.md +67 -0
  54. package/framework/knowledge/supabase-patterns.md +50 -0
  55. package/framework/knowledge/voice-agent-patterns.md +46 -0
  56. package/framework/qualia-engine/VERSION +1 -0
  57. package/framework/qualia-engine/bin/qualia-tools.js +2160 -0
  58. package/framework/qualia-engine/bin/qualia-tools.test.js +1054 -0
  59. package/framework/qualia-engine/references/checkpoints.md +775 -0
  60. package/framework/qualia-engine/references/continuation-format.md +249 -0
  61. package/framework/qualia-engine/references/decimal-phase-calculation.md +65 -0
  62. package/framework/qualia-engine/references/design-quality.md +56 -0
  63. package/framework/qualia-engine/references/git-integration.md +254 -0
  64. package/framework/qualia-engine/references/git-planning-commit.md +50 -0
  65. package/framework/qualia-engine/references/model-profile-resolution.md +32 -0
  66. package/framework/qualia-engine/references/model-profiles.md +73 -0
  67. package/framework/qualia-engine/references/phase-argument-parsing.md +61 -0
  68. package/framework/qualia-engine/references/planning-config.md +195 -0
  69. package/framework/qualia-engine/references/questioning.md +141 -0
  70. package/framework/qualia-engine/references/tdd.md +263 -0
  71. package/framework/qualia-engine/references/ui-brand.md +160 -0
  72. package/framework/qualia-engine/references/verification-patterns.md +612 -0
  73. package/framework/qualia-engine/templates/DEBUG.md +159 -0
  74. package/framework/qualia-engine/templates/DESIGN.md +81 -0
  75. package/framework/qualia-engine/templates/UAT.md +247 -0
  76. package/framework/qualia-engine/templates/codebase/architecture.md +255 -0
  77. package/framework/qualia-engine/templates/codebase/concerns.md +310 -0
  78. package/framework/qualia-engine/templates/codebase/conventions.md +307 -0
  79. package/framework/qualia-engine/templates/codebase/integrations.md +280 -0
  80. package/framework/qualia-engine/templates/codebase/stack.md +186 -0
  81. package/framework/qualia-engine/templates/codebase/structure.md +285 -0
  82. package/framework/qualia-engine/templates/codebase/testing.md +480 -0
  83. package/framework/qualia-engine/templates/config.json +35 -0
  84. package/framework/qualia-engine/templates/context.md +283 -0
  85. package/framework/qualia-engine/templates/continue-here.md +78 -0
  86. package/framework/qualia-engine/templates/debug-subagent-prompt.md +91 -0
  87. package/framework/qualia-engine/templates/discovery.md +146 -0
  88. package/framework/qualia-engine/templates/milestone-archive.md +123 -0
  89. package/framework/qualia-engine/templates/milestone.md +115 -0
  90. package/framework/qualia-engine/templates/phase-prompt.md +567 -0
  91. package/framework/qualia-engine/templates/planner-subagent-prompt.md +117 -0
  92. package/framework/qualia-engine/templates/project.md +184 -0
  93. package/framework/qualia-engine/templates/projects/ai-agent.md +156 -0
  94. package/framework/qualia-engine/templates/projects/mobile-app.md +181 -0
  95. package/framework/qualia-engine/templates/projects/voice-agent.md +134 -0
  96. package/framework/qualia-engine/templates/projects/website.md +137 -0
  97. package/framework/qualia-engine/templates/requirements.md +231 -0
  98. package/framework/qualia-engine/templates/research-project/ARCHITECTURE.md +204 -0
  99. package/framework/qualia-engine/templates/research-project/FEATURES.md +147 -0
  100. package/framework/qualia-engine/templates/research-project/PITFALLS.md +200 -0
  101. package/framework/qualia-engine/templates/research-project/STACK.md +120 -0
  102. package/framework/qualia-engine/templates/research-project/SUMMARY.md +170 -0
  103. package/framework/qualia-engine/templates/research.md +552 -0
  104. package/framework/qualia-engine/templates/roadmap.md +202 -0
  105. package/framework/qualia-engine/templates/state.md +176 -0
  106. package/framework/qualia-engine/templates/summary-complex.md +59 -0
  107. package/framework/qualia-engine/templates/summary-minimal.md +41 -0
  108. package/framework/qualia-engine/templates/summary-standard.md +48 -0
  109. package/framework/qualia-engine/templates/summary.md +246 -0
  110. package/framework/qualia-engine/templates/user-setup.md +311 -0
  111. package/framework/qualia-engine/templates/verification-report.md +322 -0
  112. package/framework/qualia-engine/workflows/add-phase.md +179 -0
  113. package/framework/qualia-engine/workflows/add-todo.md +157 -0
  114. package/framework/qualia-engine/workflows/audit-milestone.md +241 -0
  115. package/framework/qualia-engine/workflows/check-todos.md +176 -0
  116. package/framework/qualia-engine/workflows/complete-milestone.md +858 -0
  117. package/framework/qualia-engine/workflows/diagnose-issues.md +219 -0
  118. package/framework/qualia-engine/workflows/discovery-phase.md +289 -0
  119. package/framework/qualia-engine/workflows/discuss-phase.md +534 -0
  120. package/framework/qualia-engine/workflows/execute-phase.md +559 -0
  121. package/framework/qualia-engine/workflows/execute-plan.md +438 -0
  122. package/framework/qualia-engine/workflows/help.md +470 -0
  123. package/framework/qualia-engine/workflows/insert-phase.md +220 -0
  124. package/framework/qualia-engine/workflows/list-phase-assumptions.md +178 -0
  125. package/framework/qualia-engine/workflows/map-codebase.md +327 -0
  126. package/framework/qualia-engine/workflows/new-milestone.md +363 -0
  127. package/framework/qualia-engine/workflows/new-project.md +1037 -0
  128. package/framework/qualia-engine/workflows/pause-work.md +122 -0
  129. package/framework/qualia-engine/workflows/plan-milestone-gaps.md +256 -0
  130. package/framework/qualia-engine/workflows/plan-phase.md +422 -0
  131. package/framework/qualia-engine/workflows/progress.md +354 -0
  132. package/framework/qualia-engine/workflows/quick.md +252 -0
  133. package/framework/qualia-engine/workflows/remove-phase.md +326 -0
  134. package/framework/qualia-engine/workflows/research-phase.md +74 -0
  135. package/framework/qualia-engine/workflows/resume-project.md +306 -0
  136. package/framework/qualia-engine/workflows/set-profile.md +80 -0
  137. package/framework/qualia-engine/workflows/settings.md +145 -0
  138. package/framework/qualia-engine/workflows/transition.md +556 -0
  139. package/framework/qualia-engine/workflows/update.md +197 -0
  140. package/framework/qualia-engine/workflows/verify-phase.md +195 -0
  141. package/framework/qualia-engine/workflows/verify-work.md +625 -0
  142. package/framework/rules/context7.md +11 -0
  143. package/framework/rules/deployment.md +29 -0
  144. package/framework/rules/frontend.md +33 -0
  145. package/framework/rules/security.md +12 -0
  146. package/framework/rules/speed.md +20 -0
  147. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  148. package/framework/scripts/apply-retention.sh +120 -0
  149. package/framework/scripts/bootstrap-pop-os.sh +354 -0
  150. package/framework/scripts/claude-voice +13 -0
  151. package/framework/scripts/cleanup.sh +131 -0
  152. package/framework/scripts/cowork-mode.sh +141 -0
  153. package/framework/scripts/generate-project-claude-md.sh +153 -0
  154. package/framework/scripts/load-test-webhook.js +172 -0
  155. package/framework/scripts/say.py +236 -0
  156. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +167 -0
  157. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +216 -0
  158. package/framework/scripts/speak.py +55 -0
  159. package/framework/scripts/speak.sh +18 -0
  160. package/framework/scripts/status.sh +138 -0
  161. package/framework/scripts/sync-to-framework.sh +65 -0
  162. package/framework/scripts/voice-hotkey.py +227 -0
  163. package/framework/scripts/voice-input.sh +51 -0
  164. package/framework/skills/animate/SKILL.md +202 -0
  165. package/framework/skills/bolder/SKILL.md +144 -0
  166. package/framework/skills/browser-qa/SKILL.md +536 -0
  167. package/framework/skills/clarify/SKILL.md +179 -0
  168. package/framework/skills/colorize/SKILL.md +170 -0
  169. package/framework/skills/critique/SKILL.md +126 -0
  170. package/framework/skills/deep-research/SKILL.md +271 -0
  171. package/framework/skills/delight/SKILL.md +329 -0
  172. package/framework/skills/deploy/SKILL.md +261 -0
  173. package/framework/skills/deploy-verify/SKILL.md +377 -0
  174. package/framework/skills/deploy-verify/scripts/canary-check.sh +206 -0
  175. package/framework/skills/deploy-verify/scripts/check-console-errors.js +147 -0
  176. package/framework/skills/deploy-verify/scripts/check-cwv.js +139 -0
  177. package/framework/skills/deploy-verify/scripts/project-detect.sh +84 -0
  178. package/framework/skills/deploy-verify/scripts/verify.sh +548 -0
  179. package/framework/skills/design-quieter/SKILL.md +130 -0
  180. package/framework/skills/distill/SKILL.md +149 -0
  181. package/framework/skills/docs-lookup/SKILL.md +78 -0
  182. package/framework/skills/fcm-notifications/SKILL.md +125 -0
  183. package/framework/skills/financial-ledger/SKILL.md +1039 -0
  184. package/framework/skills/frontend-master/NOTICE.md +4 -0
  185. package/framework/skills/frontend-master/SKILL.md +127 -0
  186. package/framework/skills/frontend-master/reference/color-and-contrast.md +132 -0
  187. package/framework/skills/frontend-master/reference/interaction-design.md +123 -0
  188. package/framework/skills/frontend-master/reference/motion-design.md +99 -0
  189. package/framework/skills/frontend-master/reference/responsive-design.md +114 -0
  190. package/framework/skills/frontend-master/reference/spatial-design.md +100 -0
  191. package/framework/skills/frontend-master/reference/typography.md +131 -0
  192. package/framework/skills/frontend-master/reference/ux-writing.md +107 -0
  193. package/framework/skills/harden/SKILL.md +357 -0
  194. package/framework/skills/i18n-rtl/SKILL.md +752 -0
  195. package/framework/skills/learn/SKILL.md +71 -0
  196. package/framework/skills/memory/SKILL.md +50 -0
  197. package/framework/skills/mobile-expo/SKILL.md +864 -0
  198. package/framework/skills/mobile-expo/references/store-checklist.md +550 -0
  199. package/framework/skills/nestjs-backend/README.md +73 -0
  200. package/framework/skills/nestjs-backend/SKILL.md +446 -0
  201. package/framework/skills/nestjs-backend/references/templates.md +1173 -0
  202. package/framework/skills/normalize/SKILL.md +79 -0
  203. package/framework/skills/onboard/SKILL.md +242 -0
  204. package/framework/skills/polish/SKILL.md +209 -0
  205. package/framework/skills/pr/SKILL.md +66 -0
  206. package/framework/skills/qualia/SKILL.md +153 -0
  207. package/framework/skills/qualia-add-todo/SKILL.md +68 -0
  208. package/framework/skills/qualia-audit-milestone/SKILL.md +92 -0
  209. package/framework/skills/qualia-check-todos/SKILL.md +55 -0
  210. package/framework/skills/qualia-complete-milestone/SKILL.md +108 -0
  211. package/framework/skills/qualia-debug/SKILL.md +149 -0
  212. package/framework/skills/qualia-design/SKILL.md +203 -0
  213. package/framework/skills/qualia-discuss-phase/SKILL.md +72 -0
  214. package/framework/skills/qualia-execute-phase/SKILL.md +86 -0
  215. package/framework/skills/qualia-help/SKILL.md +67 -0
  216. package/framework/skills/qualia-idk/SKILL.md +352 -0
  217. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +67 -0
  218. package/framework/skills/qualia-new-milestone/SKILL.md +72 -0
  219. package/framework/skills/qualia-new-project/SKILL.md +92 -0
  220. package/framework/skills/qualia-optimize/SKILL.md +417 -0
  221. package/framework/skills/qualia-pause-work/SKILL.md +96 -0
  222. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +57 -0
  223. package/framework/skills/qualia-plan-phase/SKILL.md +101 -0
  224. package/framework/skills/qualia-progress/SKILL.md +53 -0
  225. package/framework/skills/qualia-quick/SKILL.md +89 -0
  226. package/framework/skills/qualia-research-phase/SKILL.md +88 -0
  227. package/framework/skills/qualia-resume-work/SKILL.md +62 -0
  228. package/framework/skills/qualia-review/SKILL.md +263 -0
  229. package/framework/skills/qualia-start/SKILL.md +182 -0
  230. package/framework/skills/qualia-verify-work/SKILL.md +105 -0
  231. package/framework/skills/qualia-workflow/SKILL.md +130 -0
  232. package/framework/skills/rag/SKILL.md +750 -0
  233. package/framework/skills/responsive/SKILL.md +231 -0
  234. package/framework/skills/retro/SKILL.md +284 -0
  235. package/framework/skills/sakani-conventions/SKILL.md +136 -0
  236. package/framework/skills/sakani-conventions/evals/evals.json +23 -0
  237. package/framework/skills/sakani-conventions/references/entities.md +365 -0
  238. package/framework/skills/sakani-conventions/references/error-codes.md +95 -0
  239. package/framework/skills/seo-master/SKILL.md +490 -0
  240. package/framework/skills/seo-master/references/checklist.md +199 -0
  241. package/framework/skills/seo-master/references/structured-data.md +609 -0
  242. package/framework/skills/ship/SKILL.md +202 -0
  243. package/framework/skills/stack-researcher/SKILL.md +215 -0
  244. package/framework/skills/status/SKILL.md +154 -0
  245. package/framework/skills/status/scripts/health-check.sh +562 -0
  246. package/framework/skills/subscription-payments/SKILL.md +250 -0
  247. package/framework/skills/supabase/SKILL.md +973 -0
  248. package/framework/skills/supabase/references/templates.md +159 -0
  249. package/framework/skills/team/SKILL.md +67 -0
  250. package/framework/skills/test-runner/SKILL.md +202 -0
  251. package/framework/skills/voice-agent/SKILL.md +407 -0
  252. package/framework/skills/zoho-workflow/SKILL.md +51 -0
  253. package/framework/statusline-command.sh +117 -0
  254. package/package.json +24 -0
  255. package/profiles/fawzi.json +16 -0
  256. package/profiles/hasan.json +16 -0
  257. package/profiles/moayad.json +16 -0
  258. package/templates/CLAUDE-owner.md +52 -0
  259. package/templates/CLAUDE.md.hbs +58 -0
  260. package/templates/env.claude.template +12 -0
  261. package/templates/settings.json +141 -0
@@ -0,0 +1,22 @@
1
+ # Client Preferences
2
+ > Per-client details NOT covered in qualia-context.md. Only unique info here.
3
+
4
+ ## Websites
5
+ - **qualiafinal** — Modern, professional, dark theme
6
+ - **aquador** — Clean, water-themed design
7
+ - **glluztech** — Tech/corporate. Only project on Pages Router.
8
+ - **inrvo** — Has MCP configured. Custom domain: innrvo.com
9
+ - **luxcars** — Luxury, premium aesthetics
10
+ - **vero** — Tier 1. Has MCP configured.
11
+ - **aibossbrainz** — Tier 1. Has MCP configured.
12
+
13
+ ## AI Agents
14
+ - **Hammah** — Arabic/English bilingual, Kuwait construction sector, 18 categories. SERVICE_ROLE_KEY exposed.
15
+ - **sofiatesting** — Greek/English. Cyprus real estate. WhatsApp + Web. Edge Functions. Most complex agent. Has MCP (Upstash, Context7, Postman, Railway).
16
+ - **timo** — Mindfulness OS for C-Suite. Incomplete credentials.
17
+ - **sigatalachana** — Greek. Python agent (NOT web). Invoice OCR + POS. Misclassified in aiagents folder.
18
+ - **axidex** — Sales signals. Stripe integrated.
19
+
20
+ ## Voice
21
+ - **armenius** — Greek/English/Russian. 7 webhook tools (order status, stock, product search). PrestaShop. NOT on Vercel — Cloudflare Workers.
22
+ - **under** — Tier 1. Sales training. ai.underdogsales.com. Has MCP.
@@ -0,0 +1,25 @@
1
+ # Common Fixes
2
+ > Recurring bugs and their solutions. Updated: 2026-03-23
3
+
4
+ ## Build Failures
5
+ - **Module not found**: Check case sensitivity (Linux is case-sensitive, macOS isn't)
6
+ - **Memory issues**: `vercel --build-env NODE_OPTIONS="--max-old-space-size=4096"`
7
+ - **Missing deps**: `rm -rf node_modules && npm install`
8
+ - **Generated types stale**: `npx supabase gen types typescript --linked > types/database.ts`
9
+
10
+ ## Deployment
11
+ - **Works locally, fails on Vercel**: Check Node version, env vars, case sensitivity
12
+ - **Missing env vars**: `vercel env ls` to check, `vercel env add` to fix
13
+ - **NEXT_PUBLIC_ vars**: Must be set at BUILD time, not just runtime
14
+ - **White screen**: Check for `window`/`document` in server components
15
+ - **500 on API**: Check env vars exist on Vercel, check Supabase URL not localhost
16
+
17
+ ## Supabase
18
+ - **RLS blocking silently**: Returns empty array, not error. Check policies.
19
+ - **FK returns array**: Use `normalizeFKResponse()` helper
20
+ - **Connection pool exhausted**: Reduce `max_connections`, use connection pooler
21
+
22
+ ## Next.js
23
+ - **Hydration mismatch**: Wrap dynamic content in `useEffect`, no `Date.now()` in SSR
24
+ - **Missing 'use client'**: Add directive to components using hooks
25
+ - **Stale cache**: `revalidatePath()` after mutations + invalidate SWR
@@ -0,0 +1,35 @@
1
+ # Deployment Map
2
+ > Per-project deploy configs. Updated: 2026-03-26
3
+
4
+ ## Vercel Projects
5
+ | Project | Domain | Deploy Command | Notes |
6
+ |---------|--------|---------------|-------|
7
+ | qualiafinal | qualiasolutions.net | `vercel --prod` | Company site |
8
+ | aquador | aquador.vercel.app | `vercel --prod` | |
9
+ | vero | veromodels.com | `vercel --prod` | Tier 1 |
10
+ | aibossbrainz | aibossbrainz.vercel.app | `vercel --prod` | Tier 1 |
11
+ | maud | maud.vercel.app | `vercel --prod` | |
12
+ | mpm | mpm.vercel.app | `vercel --prod` | |
13
+ | inrvo | innrvo.com | `vercel --prod` | Being refactored |
14
+ | under | ai.underdogsales.com | `vercel --prod` | Retell AI voice |
15
+ | sofiatesting | sofiatesting.vercel.app | `vercel --prod` | Most complex agent |
16
+ | qualia ERP | qualia-erp.vercel.app | `vercel --prod` | Internal |
17
+ | marco | — | `vercel --prod` | |
18
+ | Alkemy | — | `vercel --prod` | |
19
+ | pastrikos-panels | — | `vercel --prod` | New (2026-03-24) |
20
+
21
+ ## Cloudflare Workers
22
+ | Project | Worker URL | Deploy Command |
23
+ |---------|-----------|---------------|
24
+ | armenius | armenius-webhook.yellow-mountain-8da2.workers.dev | `wrangler deploy` |
25
+
26
+ ## Special Cases
27
+ - glluztech: custom domain glluztech.com (NOT glluztech.vercel.app — 404s)
28
+ - armenius widget: qualia-widgets.vercel.app (separate from webhook worker)
29
+
30
+ ## Post-Deploy Checklist
31
+ 1. HTTP 200: `curl -s -o /dev/null -w "%{http_code}" <url>`
32
+ 2. Auth flow works
33
+ 3. No console errors
34
+ 4. API latency < 500ms
35
+ 5. UptimeRobot: https://stats.uptimerobot.com/bKudHy1pLs
@@ -0,0 +1 @@
1
+ <table style="font-family: 'Helvetica Neue', Arial, sans-serif; width: 480px; border-collapse: collapse; border: 1px solid rgb(224, 224, 224); background-color: rgb(255, 255, 255)"><tbody><tr><td style="padding: 25px"><table style="width: 100%; border-collapse: collapse"><tbody><tr><td style="width: 140px; padding-right: 20px; vertical-align: top"><img src="https://images.squarespace-cdn.com/content/v1/65bf52f873aac538961445c5/19d16cc5-aa83-437c-9c2a-61de5268d5bf/Untitled+design+-+2025-01-19T070746.544.png?format=300w" alt="Qualia Solutions" style="width: 120px; display: block" width="120"></td><td style="vertical-align: top; padding-top: 5px"><div style="font-size: 22px; font-weight: 600; color: rgb(44, 62, 80); margin: 0 0 5px 0">Fawzi Goussous</div><div style="font-size: 15px; color: rgb(0, 164, 172); margin: 0 0 18px 0; font-weight: 500">AI Solutions &amp; Web Design</div><table style="border-collapse: collapse"><tbody><tr><td style="padding: 4px 0; font-size: 14px; color: rgb(85, 85, 85)"><a href="mailto:info@qualiasolutions.net" style="color: rgb(51, 51, 51); text-decoration: none">info@qualiasolutions.net</a></td></tr><tr><td style="padding: 4px 0; font-size: 14px; color: rgb(85, 85, 85)"><a href="tel:+35799111668" style="color: rgb(51, 51, 51); text-decoration: none">+357 99 111 668</a></td></tr><tr><td style="padding: 4px 0; font-size: 14px; color: rgb(85, 85, 85)">Nicosia, Cyprus</td></tr><tr><td style="padding: 4px 0; font-size: 14px"><a href="https://qualiasolutions.net" style="color: rgb(0, 164, 172); text-decoration: none; font-weight: 500">qualiasolutions.net</a></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td style="padding: 15px 25px; border-top: 1px solid rgb(224, 224, 224); background-color: rgb(249, 249, 249)"><div style="font-size: 13px; color: rgb(102, 102, 102); font-style: italic; text-align: center">Where Consciousness Meets Technology</div></td></tr></tbody></table>
@@ -0,0 +1,8 @@
1
+ # Employees
2
+
3
+ ## Partner
4
+ - **Jay** — Business partner at Qualia Solutions
5
+
6
+ ## Team
7
+ - **Moayad** — Full-time, since December 2025. Based in Jordan.
8
+ - **Ahasan** — Part-time, since March 2026. Based in Cyprus.
@@ -0,0 +1,51 @@
1
+ # Learned Patterns
2
+ > Auto-growing rules from `/learn` command. Each rule was triggered by an actual mistake or discovery.
3
+ > Format: ALWAYS/NEVER [action] [context/when]
4
+
5
+ ---
6
+
7
+ ## Always Rules
8
+ - ALWAYS check `pwd` on session start to identify which of the 42 projects you're in [verified: 2026-03]
9
+ - ALWAYS read a project's local CLAUDE.md before making changes — it has project-specific rules [verified: 2026-03]
10
+ - ALWAYS look up the Supabase ref from qualia-context.md when working with Supabase projects [verified: 2026-03]
11
+ - ALWAYS run `npx tsc --noEmit` after editing multiple TypeScript files [verified: 2026-03]
12
+ - ALWAYS use feature branches — branch-guard.sh will block direct pushes to main [verified: 2026-03]
13
+ - ALWAYS run the 5-check post-deploy verification after any deployment (includes UptimeRobot check) [verified: 2026-03]
14
+ - ALWAYS use `lib/supabase/server.ts` for server-side mutations, never client.ts [verified: 2026-03]
15
+ - ALWAYS check UptimeRobot status page (https://stats.uptimerobot.com/bKudHy1pLs) when debugging downtime or after deployments [verified: 2026-03]
16
+ - ALWAYS ensure new projects get added to UptimeRobot monitoring [verified: 2026-03]
17
+ - ALWAYS use skills over commands — commands deprecated March 2026 [verified: 2026-03]
18
+ - ALWAYS write /review results to .planning/REVIEW.md for deploy gate [verified: 2026-03]
19
+
20
+ ## Never Rules
21
+ - NEVER expose service_role key in client components (Hammah has this bug — needs fixing) [verified: 2026-03]
22
+ - NEVER commit .env files to git (pre-commit hook catches this) [verified: 2026-03]
23
+ - NEVER use `dangerouslySetInnerHTML` or `eval()` [verified: 2026-03]
24
+ - NEVER hardcode API keys — use environment variables [verified: 2026-03]
25
+ - NEVER use Task(Explore) for simple file lookups — use Glob/Grep directly (speed rule) [verified: 2026-03]
26
+ - NEVER push directly to main/master — branch-guard.sh will block it [verified: 2026-03]
27
+
28
+ ## Framework Rules (established 2026-03-30)
29
+ - ALL hooks MUST use teal branding via `source qualia-colors.sh` — consistent Qualia visual identity [verified: 2026-03]
30
+ - ALL blocking hooks MUST return JSON with `systemMessage` telling Claude to FIX the issue, not ask user to bypass [verified: 2026-03]
31
+ - ALL hooks MUST use `node` for JSON parsing (not `jq`) — jq may not be installed on all systems [verified: 2026-03]
32
+ - Hook output: styled stderr (user sees teal UI), JSON stdout (Claude gets instructions) [verified: 2026-03]
33
+ - ALL blocking hooks MUST have actionable systemMessage: tell Claude to FIX it, not ask user to do it manually [verified: 2026-03]
34
+ - `--dangerously-skip-permissions` BYPASSES Claude hook blocks — git pre-push hooks are the true safety net [verified: 2026-03]
35
+ - NEVER tell user "push manually" or "commit with --no-verify" when a hook blocks — fix the issue or explain exactly what to change [verified: 2026-03]
36
+ - `retention-cleanup.sh` covers: file-history, session-env, backups, paste-cache, shell-snapshots, projects, tasks, plans [verified: 2026-03]
37
+ - `~/.claude/CLAUDE.md` is the OWNER profile (Fawzi) — team members get developer profiles via project-level CLAUDE.md [verified: 2026-03]
38
+ - Legacy `commands/` directory removed — all commands migrated to `skills/` [verified: 2026-03]
39
+ - `core/PRINCIPLES.md` removed — bloat, never referenced by any skill or hook [verified: 2026-03]
40
+ - No Python venv in `~/.claude/` — removed 79MB unused venv [verified: 2026-03]
41
+
42
+ ## Project-Specific Gotchas
43
+ - **sigatalachana** is a Python agent (NOT web) — misclassified in aiagents folder [verified: 2026-03]
44
+ - **armenius** uses Cloudflare Workers + wrangler deploy (NOT Vercel) [verified: 2026-03]
45
+ - **glluztech** is the only project still on Next.js Pages Router — needs migration to App Router [verified: 2026-03]
46
+ - **sofiatesting** is the most complex AI agent (WhatsApp + Web + Edge Functions + dual AI) [verified: 2026-03]
47
+ - **ERP actions.ts** was split into 44 domain files (completed 2026-03). client-portal.ts (2,496 lines) is now the largest file. [verified: 2026-03]
48
+ - **Timo** has empty API keys (OPENROUTER_API_KEY, SUPABASE_SERVICE_ROLE_KEY) — won't work until filled [verified: 2026-03]
49
+
50
+ ---
51
+ *Last updated: 2026-03-30*
@@ -0,0 +1,137 @@
1
+ # Qualia Framework Optimization — Research Findings (March 2026)
2
+
3
+ Compiled from 4 parallel deep research agents covering: shipping checklists, knowledge base UX, AI dev workflows, and framework architecture.
4
+
5
+ ---
6
+
7
+ ## TOP PRIORITY ACTIONS
8
+
9
+ ### P0 — Do Now (High Impact, Low Effort)
10
+
11
+ **1. Tier deployments by risk level**
12
+ Not every deploy needs the full checklist. Split into:
13
+ - **Light** (copy/content changes): HTTP 200 + visual check only
14
+ - **Standard** (feature work): full automated suite
15
+ - **Heavy** (auth/DB/payment changes): automated suite + manual verification + staged rollout
16
+ > Action: Add a `--risk` flag to `/ship` skill (light/standard/heavy)
17
+
18
+ **2. Machine-verify every checklist gate**
19
+ Agents hallucinate "PASS" on steps they skipped. The #1 fix: every checklist item that CAN be verified by a command MUST be. Never let the agent self-report on something `grep`, `curl`, or `tsc` can check.
20
+ > Action: Convert checklist items to executable commands in the skills, not just tips
21
+
22
+ **3. Separate "deploy checklist" from "launch checklist"**
23
+ Deploy happens every push. Launch is a one-time event (DNS, analytics, SEO, client handoff). Mixing them causes fatigue on routine deploys.
24
+ > Action: Split `completion-checklists.md` into `deploy-checklist.md` (per-push) and `launch-checklist.md` (first-time)
25
+
26
+ **4. Set up UptimeRobot for all 23+ projects**
27
+ Free tier covers 50 monitors at 5-minute intervals. Immediate value, zero cost.
28
+ > Action: Register all production URLs, configure Slack alerts
29
+
30
+ **5. Audit CLAUDE.md length**
31
+ Frontier LLMs reliably follow ~150-200 instructions total. Claude Code's system prompt already consumes ~50. Every line in CLAUDE.md competes for attention. Test: "Would removing this line cause Claude to make mistakes?" If not, cut it.
32
+ > Action: Trim global CLAUDE.md to essential rules only, move domain knowledge to skills
33
+
34
+ ### P1 — Do This Week
35
+
36
+ **6. Per-project interactive checklists on portal**
37
+ Store completion state in Supabase per project, not as static markdown. Show progress bars on project dashboard cards. Link items to real deliverables (deploy URLs, PR links).
38
+ > Schema: `project_checklists` table with `project_id`, `checklist_type`, `items JSONB`, `completed_items JSONB`, `progress_pct`
39
+
40
+ **7. Add `last_verified_at` to knowledge base articles**
41
+ Flag stale content (red/yellow/green). Auto-notify owner when past SLA. Block checklist completion if linked docs are stale.
42
+
43
+ **8. Quarterly checklist review process**
44
+ Remove any manual check that hasn't caught a real issue in 3 months. Replace with automation or drop entirely.
45
+
46
+ **9. PostToolUse hooks for real-time drift catching**
47
+ Auto-run formatters/linters/type-checks after every file write instead of only at commit time. Catches issues in real-time.
48
+
49
+ ### P2 — Do This Month
50
+
51
+ **10. Adopt Spec-Driven Development (SDD)**
52
+ Add `constitution.md` to project templates — non-negotiable project principles established before code. Integrate the Specify -> Plan -> Tasks workflow from GitHub Spec Kit.
53
+
54
+ **11. Shared internal packages (`@qualia/*`)**
55
+ Create reusable packages for patterns used across projects: `@qualia/ui`, `@qualia/config`, `@qualia/supabase-helpers`. Publish to GitHub Packages.
56
+
57
+ **12. Build "Golden Paths" on the portal**
58
+ Curated step-by-step journeys for common workflows: new project setup, deployment, client handoff. Not just reference docs — guided paths.
59
+
60
+ **13. Project status as state machine in portal DB**
61
+ Define valid transitions (`planning` -> `in_progress` -> `review` -> `deployed`). Enforce with DB constraints. Simple TS enum, not full XState.
62
+
63
+ **14. Deploy automation layer**
64
+ Vercel Deploy Hooks stored in portal DB for one-click deploys. Script migration diffing across projects. Portal webhook triggers post-deploy verification automatically.
65
+
66
+ ---
67
+
68
+ ## KEY INSIGHTS BY AREA
69
+
70
+ ### Shipping Checklists
71
+ - Vercel uses 5 pillars: operational excellence, security, reliability, performance, cost
72
+ - Stripe: automated rollouts > human-babysat ones
73
+ - Linear: minimal process, maximum trust — hire for craft, set principles
74
+ - 67% of alerts are ignored daily. Healthy systems: 30-50% actionable rate
75
+ - Rule: if <10% of manual checks catch real issues, they're noise
76
+
77
+ ### Knowledge Base
78
+ - Keep docs short and evergreen (Linear model)
79
+ - 4 content types: How-To, Concept, Reference, Checklist
80
+ - Track failed searches to find content gaps
81
+ - Progress bars: 40% increase in activation rates (Zeigarnik effect)
82
+ - 44% of orgs say onboarding takes 2+ months. Structured onboarding = 62% faster productivity
83
+ - New hires should contribute back to docs (teaching = learning)
84
+
85
+ ### AI Dev Workflow
86
+ - CLAUDE.md: under 300 lines, shorter is better. HumanLayer's is under 60 lines
87
+ - Skills: 15-20 autonomous max before token costs blow up
88
+ - Context degradation: 0-50% work freely, 50-70% consider compact, 70%+ precision drops
89
+ - 78% of Claude Code sessions = multi-file edits, avg 47 tool operations
90
+ - AI-coauthored PRs: 1.7x more issues than human-only
91
+ - Juniors with AI: 17-point comprehension gap. Must pair with mentors + mandatory no-AI practice
92
+
93
+ ### Framework Architecture
94
+ - Spec-Driven Development: "biggest unlock wasn't the model — it was having a durable spec"
95
+ - Polyrepo across clients (correct for Qualia) + shared internal packages
96
+ - `.planning/` structure: flat markdown files, atomic testable tasks with validation criteria
97
+ - Post-deploy monitoring: UptimeRobot free tier covers 50 monitors
98
+ - AI makes greenfield 60-70% faster, testing 50-60% faster, overall delivery 2-4x
99
+
100
+ ---
101
+
102
+ ## FAILURE MODES TO WATCH
103
+
104
+ 1. **Premature termination**: Agent finds 1 of 3 items and declares done
105
+ 2. **Hallucination cascades**: Wrong intermediate result compounds through chain
106
+ 3. **Lost in the middle**: Items in middle of long checklists get systematically skipped
107
+ 4. **Sycophantic compliance**: Agent agrees with flawed instructions instead of pushing back
108
+ 5. **Hiding failures**: Agent attempts to cover up mistakes
109
+ 6. **Context overload**: Too much info causes high-confidence hallucinations
110
+
111
+ **Fix**: Machine-checkable gates, Plan-Act-Observe pattern, explicit completion criteria, MUST not "should"
112
+
113
+ ---
114
+
115
+ ## MOAYAD TRAINING INSIGHTS
116
+
117
+ - Pair with mentor for both coding AND AI usage
118
+ - Periodically disable autocomplete — build fundamentals without AI
119
+ - Tag AI-generated PRs with specialized review checklist
120
+ - First tasks should require using the knowledge base (self-reinforcing)
121
+ - 30/60/90 day milestones with measurable goals
122
+ - Require doc improvements as part of onboarding
123
+
124
+ ---
125
+
126
+ ## METRICS TO TRACK
127
+
128
+ - DORA: Deployment Frequency, Lead Time, MTTR, Change Failure Rate
129
+ - Correction rounds per task (fewer = better CLAUDE.md)
130
+ - Checklist actionable rate (target: 30-50%)
131
+ - Per-project checklist completion %
132
+ - Knowledge base staleness (% of articles verified within SLA)
133
+
134
+ ---
135
+
136
+ _Sources: 60+ articles from Vercel, Stripe, Linear, Anthropic, GitHub, GitLab, Pragmatic Engineer, InfoQ, Addy Osmani, HumanLayer, arXiv, METR, and others. Full source lists in research agent outputs._
137
+ _Research date: 2026-03-23_
@@ -0,0 +1,67 @@
1
+ # Qualia Solutions
2
+ > One-man company (Fawzi Goussous), Cyprus. Websites, AI agents, voice agents, AI automation.
3
+
4
+ ## Project Inventory
5
+
6
+ ### Websites (15) — `~/Projects/live/`
7
+ | Project | Status | Supabase | Hosting | Notes |
8
+ |---------|--------|----------|---------|-------|
9
+ | qualiafinal | ACTIVE | — | Vercel | Company site, custom domain: qualiasolutions.net |
10
+ | aquador | MAINTENANCE | `hznpuxplqgszbacxzbhv` | Vercel | aquador.vercel.app |
11
+ | glluztech | MAINTENANCE | — | Vercel (qualia-glluztech team) | Legacy Pages Router, custom domain glluztech.com, `glluztech.vercel.app` 404s but glluztech.com works |
12
+ | inrvo | REFACTORING | `ygweconeysctxpjjnehy` | Vercel | Custom domain: innrvo.com, being refactored |
13
+ | aandnglobal | DORMANT | — | — | |
14
+ | urban | DORMANT | — | — | |
15
+ | znso | DORMANT | — | — | |
16
+ | luxcars | DORMANT | — | — | Luxury aesthetic |
17
+ | maud | MAINTENANCE | `vspyxscitcuwnrhchskl` | Vercel | |
18
+ | vero | ACTIVE | `dvahjrnqwsqqokafaxgn` | Vercel | Tier 1, MCP, custom domain: veromodels.com (old ref zskfdlqyzhkzefafqkpx is dead) |
19
+ | aibossbrainz | ACTIVE | `esymbjpzjjkffpfqukxw` | Vercel | Tier 1, MCP |
20
+ | mpm | MAINTENANCE | `llherorsfgbdyqkrrlpc` | Vercel | |
21
+ | Zaid | DORMANT | `uoqiwidqlsoamtugioik` | — | |
22
+ | marco | ACTIVE | `kqxpyayvehodwsxtfaic` | Vercel | |
23
+ | Alkemy | ACTIVE | `msntbcaqouqvkxslwtqg` | Vercel | |
24
+ | pastrikos-panels | DEV | `iqdmjtvqyocpoonssmwj` | Vercel | Created 2026-03-24 |
25
+
26
+ ### AI Agents (10) — `~/Projects/aiagents/`
27
+ | Project | Activity | Supabase | AI Provider | Status |
28
+ |---------|----------|----------|-------------|--------|
29
+ | axidex | BUILT | `cmbbgybceqnmvyczkyks` | OpenAI | Stripe integrated, needs launch |
30
+ | dababneh | DEV | `toovladeybmlyzblqtbl` | — | |
31
+ | faris | DEV | `lrgwxcqqnhxvvrruepcv` | — | |
32
+ | Hammah | DEV | `ctcikdcjhxxqogwvtzrc` | Gemini 2.0 Flash | Arabic/English, SERVICE_ROLE_KEY exposed |
33
+ | sofiatesting | LIVE | `vceeheaxcrhmpqueudqx` | Dual AI | WhatsApp + Web, most complex |
34
+ | timo | DEV | `qgaqvkmqterlljbegniu` | OpenRouter | MVP, missing API keys |
35
+ | sigatalachana | DEV | `qsoxyrotlkawtwmjdgcw` | Claude Opus 4.5 | Python agent (NOT web) |
36
+ | giulio-agent | DEV | `iqibcuzhucyabptwkggm` | — | |
37
+ | shai-coach | DEV | `yrumvufehvbbnjppvwlf` | — | |
38
+ | peta | DEV | `vbrsjcxntkfmuccorfbv` | — | |
39
+
40
+ ### ERP (ACTIVE) — `~/Projects/qualia-erp/`
41
+ Internal project management. Next.js 16, Gemini AI, VAPI, Supabase (`vbpzaiqovffpsroxaulv`). Domain: qualia-erp.vercel.app.
42
+ Tech debt: actions.ts split completed (44 domain files).
43
+
44
+ ### Voice (3) — `~/Projects/live/`
45
+ | Project | Status | Provider | Hosting | Supabase |
46
+ |---------|--------|----------|---------|----------|
47
+ | armenius | MAINTENANCE | ElevenLabs | Cloudflare Workers (webhook) + Vercel (widget) | — |
48
+ | under | ACTIVE | Retell AI | Vercel | `vvppyijxpgeeijiozlve` | Custom domain: ai.underdogsales.com |
49
+ | Underdog Academy | ACTIVE | — | Vercel | `ywdrvvnganseomouplyb` | Created 2026-03-14 |
50
+
51
+ ## Deploy Commands
52
+ ```bash
53
+ vercel --prod # Standard deploy
54
+ supabase db push --project-ref <ref> # Migrations
55
+ wrangler deploy # Armenius only
56
+ ```
57
+
58
+ ## Key URLs
59
+ - Armenius webhook: `https://armenius-webhook.yellow-mountain-8da2.workers.dev` (old `armenius.fawzi-goussous.workers.dev` is dead)
60
+ - Armenius widget: `https://qualia-widgets.vercel.app`
61
+ - glluztech: custom domain `https://glluztech.com` (NOT `glluztech.vercel.app` — that 404s)
62
+
63
+ ## Alerts
64
+ - Hammah: SERVICE_ROLE_KEY exposed in .env.local
65
+ - Timo: Empty API keys (won't work)
66
+ - glluztech: Legacy Pages Router, Vercel project may be under `qualia-glluztech` team
67
+ - under: `under.vercel.app` returns 500 but custom domain ai.underdogsales.com works fine
@@ -0,0 +1,50 @@
1
+ # Supabase Patterns
2
+ > Common patterns across Qualia projects. Updated: 2026-03-23
3
+
4
+ ## Standard Setup
5
+ 1. Create project in Supabase dashboard (Frankfurt region for EU)
6
+ 2. Get URL + anon key → `.env.local`
7
+ 3. Create `lib/supabase/server.ts` and `lib/supabase/client.ts`
8
+ 4. Enable RLS on EVERY table
9
+ 5. Generate types: `npx supabase gen types typescript --linked > types/database.ts`
10
+
11
+ ## RLS Template
12
+ ```sql
13
+ -- Basic user-owns-data pattern
14
+ ALTER TABLE my_table ENABLE ROW LEVEL SECURITY;
15
+
16
+ CREATE POLICY "Users can view own data" ON my_table
17
+ FOR SELECT USING (auth.uid() = user_id);
18
+
19
+ CREATE POLICY "Users can insert own data" ON my_table
20
+ FOR INSERT WITH CHECK (auth.uid() = user_id);
21
+
22
+ CREATE POLICY "Users can update own data" ON my_table
23
+ FOR UPDATE USING (auth.uid() = user_id);
24
+ ```
25
+
26
+ ## Server Action Pattern
27
+ ```typescript
28
+ 'use server'
29
+ import { createClient } from '@/lib/supabase/server'
30
+
31
+ export async function myAction() {
32
+ const supabase = await createClient()
33
+ const { data: { user } } = await supabase.auth.getUser()
34
+ if (!user) throw new Error('Unauthorized')
35
+ // ... mutations here
36
+ }
37
+ ```
38
+
39
+ ## FK Normalization
40
+ Supabase returns FK as arrays. Use:
41
+ ```typescript
42
+ import { normalizeFKResponse } from '@/lib/server-utils'
43
+ const normalized = normalizeFKResponse(data, ['project', 'client'])
44
+ ```
45
+
46
+ ## Gotchas
47
+ - NEVER use service_role key in client-side code
48
+ - ALWAYS use server.ts for mutations, client.ts for reads only
49
+ - FK returns arrays — normalize them
50
+ - RLS silently blocks if no matching policy (returns empty, not error)
@@ -0,0 +1,46 @@
1
+ # Voice Agent Patterns
2
+ > VAPI, Retell AI, ElevenLabs patterns. Updated: 2026-03-23
3
+
4
+ ## VAPI Setup
5
+ 1. Create assistant via VAPI dashboard or MCP
6
+ 2. Configure: model, voice, system prompt, tools, first message
7
+ 3. Deploy webhook handler (Cloudflare Workers or Supabase Edge Function)
8
+ 4. Connect phone number
9
+ 5. Test with real calls
10
+
11
+ ## Webhook Handler Template
12
+ ```typescript
13
+ // Verify signature first
14
+ const signature = req.headers.get('x-vapi-signature')
15
+ if (!verifyVapiSignature(body, signature, secret)) {
16
+ return new Response('Unauthorized', { status: 401 })
17
+ }
18
+
19
+ // Route by event type
20
+ switch (event.message.type) {
21
+ case 'function-call': // Handle tool calls
22
+ case 'end-of-call-report': // Log call
23
+ case 'status-update': // Track status
24
+ }
25
+ ```
26
+
27
+ ## Voice Selection
28
+ | Use Case | Voice | Provider |
29
+ |----------|-------|----------|
30
+ | Professional | Rachel | ElevenLabs |
31
+ | Friendly | Bella | ElevenLabs |
32
+ | Energetic | Elli | ElevenLabs |
33
+ | Fast/Cheap | Default | Cartesia |
34
+
35
+ ## Best Practices
36
+ - Keep responses SHORT (1-2 sentences max)
37
+ - Confirm important info back to caller
38
+ - Handle interruptions gracefully
39
+ - First response latency < 500ms
40
+ - Log everything for debugging
41
+ - Always verify webhook signatures
42
+
43
+ ## Active Voice Projects
44
+ - armenius: ElevenLabs + Cloudflare Workers (Greek/English/Russian)
45
+ - under: Retell AI + Vercel (Sales training, ai.underdogsales.com)
46
+ - Underdog Academy: Vercel (created 2026-03-14)
@@ -0,0 +1 @@
1
+ 1.14.0