qualia-framework 2.5.1 → 3.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 (327) hide show
  1. package/CLAUDE.md +63 -0
  2. package/README.md +108 -30
  3. package/agents/builder.md +110 -0
  4. package/agents/planner.md +186 -0
  5. package/agents/qa-browser.md +186 -0
  6. package/agents/verifier.md +369 -0
  7. package/bin/cli.js +706 -417
  8. package/bin/install.js +622 -0
  9. package/bin/qualia-ui.js +284 -0
  10. package/bin/state.js +824 -0
  11. package/bin/statusline.js +252 -0
  12. package/docs/erp-contract.md +161 -0
  13. package/guide.md +63 -0
  14. package/hooks/auto-update.js +117 -0
  15. package/hooks/block-env-edit.js +52 -0
  16. package/hooks/branch-guard.js +68 -0
  17. package/hooks/migration-guard.js +83 -0
  18. package/hooks/pre-compact.js +52 -0
  19. package/hooks/pre-deploy-gate.js +149 -0
  20. package/hooks/pre-push.js +53 -0
  21. package/hooks/session-start.js +126 -0
  22. package/package.json +31 -17
  23. package/rules/design-reference.md +179 -0
  24. package/rules/frontend.md +126 -0
  25. package/rules/infrastructure.md +87 -0
  26. package/skills/qualia/SKILL.md +88 -0
  27. package/skills/qualia-build/SKILL.md +115 -0
  28. package/skills/qualia-debug/SKILL.md +87 -0
  29. package/skills/qualia-design/SKILL.md +99 -0
  30. package/skills/qualia-handoff/SKILL.md +66 -0
  31. package/skills/qualia-help/SKILL.md +60 -0
  32. package/skills/qualia-idk/SKILL.md +8 -0
  33. package/skills/qualia-learn/SKILL.md +111 -0
  34. package/skills/qualia-new/SKILL.md +323 -0
  35. package/skills/qualia-pause/SKILL.md +63 -0
  36. package/skills/qualia-plan/SKILL.md +101 -0
  37. package/skills/qualia-polish/SKILL.md +207 -0
  38. package/skills/qualia-quick/SKILL.md +37 -0
  39. package/skills/qualia-report/SKILL.md +114 -0
  40. package/skills/qualia-resume/SKILL.md +49 -0
  41. package/skills/qualia-review/SKILL.md +161 -0
  42. package/skills/qualia-ship/SKILL.md +90 -0
  43. package/skills/qualia-skill-new/SKILL.md +167 -0
  44. package/skills/qualia-task/SKILL.md +91 -0
  45. package/skills/qualia-test/SKILL.md +134 -0
  46. package/skills/qualia-verify/SKILL.md +113 -0
  47. package/templates/DESIGN.md +475 -0
  48. package/templates/help.html +476 -0
  49. package/templates/plan.md +42 -0
  50. package/templates/project.md +22 -0
  51. package/templates/state.md +27 -0
  52. package/templates/tracking.json +20 -0
  53. package/tests/bin.test.sh +687 -0
  54. package/tests/hooks.test.sh +384 -0
  55. package/tests/runner.js +1956 -0
  56. package/tests/state.test.sh +713 -0
  57. package/tests/statusline.test.sh +243 -0
  58. package/bin/collect-metrics.sh +0 -62
  59. package/framework/.claudeignore +0 -51
  60. package/framework/CLAUDE.md +0 -51
  61. package/framework/MCP_SETUP.md +0 -229
  62. package/framework/agents/architecture-strategist.md +0 -53
  63. package/framework/agents/backend-agent.md +0 -150
  64. package/framework/agents/code-simplicity-reviewer.md +0 -86
  65. package/framework/agents/frontend-agent.md +0 -111
  66. package/framework/agents/kieran-typescript-reviewer.md +0 -96
  67. package/framework/agents/performance-oracle.md +0 -111
  68. package/framework/agents/qualia-codebase-mapper.md +0 -761
  69. package/framework/agents/qualia-debugger.md +0 -1204
  70. package/framework/agents/qualia-executor.md +0 -882
  71. package/framework/agents/qualia-integration-checker.md +0 -424
  72. package/framework/agents/qualia-phase-researcher.md +0 -457
  73. package/framework/agents/qualia-plan-checker.md +0 -700
  74. package/framework/agents/qualia-planner.md +0 -1245
  75. package/framework/agents/qualia-project-researcher.md +0 -603
  76. package/framework/agents/qualia-research-synthesizer.md +0 -200
  77. package/framework/agents/qualia-roadmapper.md +0 -606
  78. package/framework/agents/qualia-verifier.md +0 -686
  79. package/framework/agents/red-team-qa.md +0 -130
  80. package/framework/agents/security-auditor.md +0 -72
  81. package/framework/agents/team-orchestrator.md +0 -229
  82. package/framework/agents/teams/framework-audit-team.md +0 -66
  83. package/framework/agents/teams/full-stack-team.md +0 -48
  84. package/framework/agents/teams/optimize-team.md +0 -53
  85. package/framework/agents/teams/review-team.md +0 -70
  86. package/framework/agents/teams/ship-team.md +0 -86
  87. package/framework/agents/test-agent.md +0 -182
  88. package/framework/hooks/auto-format.sh +0 -54
  89. package/framework/hooks/block-env-edit.sh +0 -42
  90. package/framework/hooks/branch-guard.sh +0 -43
  91. package/framework/hooks/confirm-delete.sh +0 -59
  92. package/framework/hooks/migration-validate.sh +0 -77
  93. package/framework/hooks/notification-speak.sh +0 -16
  94. package/framework/hooks/pre-commit.sh +0 -100
  95. package/framework/hooks/pre-compact.sh +0 -56
  96. package/framework/hooks/pre-deploy-gate.sh +0 -160
  97. package/framework/hooks/qualia-colors.sh +0 -32
  98. package/framework/hooks/retention-cleanup.sh +0 -62
  99. package/framework/hooks/save-session-state.sh +0 -185
  100. package/framework/hooks/session-context-loader.sh +0 -96
  101. package/framework/hooks/session-learn.sh +0 -32
  102. package/framework/hooks/skill-announce.sh +0 -123
  103. package/framework/hooks/tool-error-announce.sh +0 -27
  104. package/framework/install.ps1 +0 -323
  105. package/framework/install.sh +0 -313
  106. package/framework/qualia-framework/VERSION +0 -1
  107. package/framework/qualia-framework/assets/qualia-logo.png +0 -0
  108. package/framework/qualia-framework/bin/collect-metrics.sh +0 -67
  109. package/framework/qualia-framework/bin/generate-report-docx.py +0 -429
  110. package/framework/qualia-framework/bin/qualia-tools.js +0 -2201
  111. package/framework/qualia-framework/bin/qualia-tools.test.js +0 -1054
  112. package/framework/qualia-framework/references/checkpoints.md +0 -775
  113. package/framework/qualia-framework/references/completion-checklists.md +0 -359
  114. package/framework/qualia-framework/references/continuation-format.md +0 -249
  115. package/framework/qualia-framework/references/continuation-prompt.md +0 -97
  116. package/framework/qualia-framework/references/decimal-phase-calculation.md +0 -65
  117. package/framework/qualia-framework/references/design-quality.md +0 -56
  118. package/framework/qualia-framework/references/employee-guide.md +0 -167
  119. package/framework/qualia-framework/references/git-integration.md +0 -254
  120. package/framework/qualia-framework/references/git-planning-commit.md +0 -50
  121. package/framework/qualia-framework/references/model-profile-resolution.md +0 -32
  122. package/framework/qualia-framework/references/model-profiles.md +0 -73
  123. package/framework/qualia-framework/references/phase-argument-parsing.md +0 -61
  124. package/framework/qualia-framework/references/planning-config.md +0 -195
  125. package/framework/qualia-framework/references/questioning.md +0 -141
  126. package/framework/qualia-framework/references/tdd.md +0 -263
  127. package/framework/qualia-framework/references/ui-brand.md +0 -160
  128. package/framework/qualia-framework/references/verification-patterns.md +0 -612
  129. package/framework/qualia-framework/templates/DEBUG.md +0 -159
  130. package/framework/qualia-framework/templates/DESIGN.md +0 -81
  131. package/framework/qualia-framework/templates/UAT.md +0 -247
  132. package/framework/qualia-framework/templates/codebase/architecture.md +0 -255
  133. package/framework/qualia-framework/templates/codebase/concerns.md +0 -310
  134. package/framework/qualia-framework/templates/codebase/conventions.md +0 -307
  135. package/framework/qualia-framework/templates/codebase/integrations.md +0 -280
  136. package/framework/qualia-framework/templates/codebase/stack.md +0 -186
  137. package/framework/qualia-framework/templates/codebase/structure.md +0 -285
  138. package/framework/qualia-framework/templates/codebase/testing.md +0 -480
  139. package/framework/qualia-framework/templates/config.json +0 -35
  140. package/framework/qualia-framework/templates/context.md +0 -283
  141. package/framework/qualia-framework/templates/continue-here.md +0 -78
  142. package/framework/qualia-framework/templates/debug-subagent-prompt.md +0 -91
  143. package/framework/qualia-framework/templates/discovery.md +0 -146
  144. package/framework/qualia-framework/templates/lab-notes.md +0 -16
  145. package/framework/qualia-framework/templates/milestone-archive.md +0 -123
  146. package/framework/qualia-framework/templates/milestone.md +0 -115
  147. package/framework/qualia-framework/templates/phase-prompt.md +0 -567
  148. package/framework/qualia-framework/templates/planner-subagent-prompt.md +0 -117
  149. package/framework/qualia-framework/templates/project.md +0 -184
  150. package/framework/qualia-framework/templates/projects/ai-agent.md +0 -156
  151. package/framework/qualia-framework/templates/projects/mobile-app.md +0 -181
  152. package/framework/qualia-framework/templates/projects/voice-agent.md +0 -134
  153. package/framework/qualia-framework/templates/projects/website.md +0 -137
  154. package/framework/qualia-framework/templates/requirements.md +0 -231
  155. package/framework/qualia-framework/templates/research-project/ARCHITECTURE.md +0 -204
  156. package/framework/qualia-framework/templates/research-project/FEATURES.md +0 -147
  157. package/framework/qualia-framework/templates/research-project/PITFALLS.md +0 -200
  158. package/framework/qualia-framework/templates/research-project/STACK.md +0 -120
  159. package/framework/qualia-framework/templates/research-project/SUMMARY.md +0 -170
  160. package/framework/qualia-framework/templates/research.md +0 -552
  161. package/framework/qualia-framework/templates/roadmap.md +0 -206
  162. package/framework/qualia-framework/templates/state.md +0 -179
  163. package/framework/qualia-framework/templates/summary-complex.md +0 -59
  164. package/framework/qualia-framework/templates/summary-minimal.md +0 -41
  165. package/framework/qualia-framework/templates/summary-standard.md +0 -48
  166. package/framework/qualia-framework/templates/summary.md +0 -246
  167. package/framework/qualia-framework/templates/user-setup.md +0 -311
  168. package/framework/qualia-framework/templates/verification-report.md +0 -322
  169. package/framework/qualia-framework/workflows/add-phase.md +0 -179
  170. package/framework/qualia-framework/workflows/add-todo.md +0 -157
  171. package/framework/qualia-framework/workflows/audit-milestone.md +0 -241
  172. package/framework/qualia-framework/workflows/check-todos.md +0 -176
  173. package/framework/qualia-framework/workflows/complete-milestone.md +0 -858
  174. package/framework/qualia-framework/workflows/diagnose-issues.md +0 -219
  175. package/framework/qualia-framework/workflows/discovery-phase.md +0 -289
  176. package/framework/qualia-framework/workflows/discuss-phase.md +0 -534
  177. package/framework/qualia-framework/workflows/execute-phase.md +0 -559
  178. package/framework/qualia-framework/workflows/execute-plan.md +0 -438
  179. package/framework/qualia-framework/workflows/help.md +0 -470
  180. package/framework/qualia-framework/workflows/insert-phase.md +0 -220
  181. package/framework/qualia-framework/workflows/list-phase-assumptions.md +0 -178
  182. package/framework/qualia-framework/workflows/map-codebase.md +0 -327
  183. package/framework/qualia-framework/workflows/new-milestone.md +0 -363
  184. package/framework/qualia-framework/workflows/new-project.md +0 -982
  185. package/framework/qualia-framework/workflows/pause-work.md +0 -122
  186. package/framework/qualia-framework/workflows/plan-milestone-gaps.md +0 -256
  187. package/framework/qualia-framework/workflows/plan-phase.md +0 -422
  188. package/framework/qualia-framework/workflows/progress.md +0 -389
  189. package/framework/qualia-framework/workflows/quick.md +0 -252
  190. package/framework/qualia-framework/workflows/remove-phase.md +0 -326
  191. package/framework/qualia-framework/workflows/research-phase.md +0 -74
  192. package/framework/qualia-framework/workflows/resume-project.md +0 -306
  193. package/framework/qualia-framework/workflows/set-profile.md +0 -80
  194. package/framework/qualia-framework/workflows/settings.md +0 -145
  195. package/framework/qualia-framework/workflows/transition.md +0 -556
  196. package/framework/qualia-framework/workflows/update.md +0 -197
  197. package/framework/qualia-framework/workflows/verify-phase.md +0 -195
  198. package/framework/qualia-framework/workflows/verify-work.md +0 -625
  199. package/framework/rules/context7.md +0 -14
  200. package/framework/rules/frontend.md +0 -33
  201. package/framework/rules/speed.md +0 -23
  202. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  203. package/framework/scripts/apply-retention.sh +0 -120
  204. package/framework/scripts/bootstrap-pop-os.sh +0 -354
  205. package/framework/scripts/claude-voice +0 -13
  206. package/framework/scripts/cleanup.sh +0 -131
  207. package/framework/scripts/cowork-mode.sh +0 -141
  208. package/framework/scripts/generate-project-claude-md.sh +0 -153
  209. package/framework/scripts/load-test-webhook.js +0 -172
  210. package/framework/scripts/say.py +0 -236
  211. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +0 -167
  212. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +0 -216
  213. package/framework/scripts/speak.py +0 -55
  214. package/framework/scripts/speak.sh +0 -18
  215. package/framework/scripts/status.sh +0 -138
  216. package/framework/scripts/sync-to-framework.sh +0 -65
  217. package/framework/scripts/voice-hotkey.py +0 -227
  218. package/framework/scripts/voice-input.sh +0 -51
  219. package/framework/skills/animate/SKILL.md +0 -202
  220. package/framework/skills/bolder/SKILL.md +0 -144
  221. package/framework/skills/browser-qa/SKILL.md +0 -536
  222. package/framework/skills/clarify/SKILL.md +0 -179
  223. package/framework/skills/client-handoff/SKILL.md +0 -135
  224. package/framework/skills/collab-onboard/SKILL.md +0 -111
  225. package/framework/skills/colorize/SKILL.md +0 -170
  226. package/framework/skills/critique/SKILL.md +0 -126
  227. package/framework/skills/deep-research/SKILL.md +0 -240
  228. package/framework/skills/delight/SKILL.md +0 -329
  229. package/framework/skills/deploy/SKILL.md +0 -261
  230. package/framework/skills/deploy-verify/SKILL.md +0 -377
  231. package/framework/skills/deploy-verify/scripts/canary-check.sh +0 -206
  232. package/framework/skills/deploy-verify/scripts/check-console-errors.js +0 -147
  233. package/framework/skills/deploy-verify/scripts/check-cwv.js +0 -139
  234. package/framework/skills/deploy-verify/scripts/project-detect.sh +0 -84
  235. package/framework/skills/deploy-verify/scripts/verify.sh +0 -548
  236. package/framework/skills/design-quieter/SKILL.md +0 -130
  237. package/framework/skills/distill/SKILL.md +0 -149
  238. package/framework/skills/docs-lookup/SKILL.md +0 -79
  239. package/framework/skills/fcm-notifications/SKILL.md +0 -125
  240. package/framework/skills/financial-ledger/SKILL.md +0 -1039
  241. package/framework/skills/frontend-master/NOTICE.md +0 -4
  242. package/framework/skills/frontend-master/SKILL.md +0 -127
  243. package/framework/skills/frontend-master/reference/color-and-contrast.md +0 -132
  244. package/framework/skills/frontend-master/reference/interaction-design.md +0 -123
  245. package/framework/skills/frontend-master/reference/motion-design.md +0 -99
  246. package/framework/skills/frontend-master/reference/responsive-design.md +0 -114
  247. package/framework/skills/frontend-master/reference/spatial-design.md +0 -100
  248. package/framework/skills/frontend-master/reference/typography.md +0 -131
  249. package/framework/skills/frontend-master/reference/ux-writing.md +0 -107
  250. package/framework/skills/harden/SKILL.md +0 -357
  251. package/framework/skills/i18n-rtl/SKILL.md +0 -752
  252. package/framework/skills/learn/SKILL.md +0 -95
  253. package/framework/skills/memory/SKILL.md +0 -50
  254. package/framework/skills/mobile-expo/SKILL.md +0 -977
  255. package/framework/skills/mobile-expo/references/store-checklist.md +0 -550
  256. package/framework/skills/nestjs-backend/README.md +0 -73
  257. package/framework/skills/nestjs-backend/SKILL.md +0 -446
  258. package/framework/skills/nestjs-backend/references/templates.md +0 -1173
  259. package/framework/skills/normalize/SKILL.md +0 -79
  260. package/framework/skills/onboard/SKILL.md +0 -242
  261. package/framework/skills/openrouter-agent/SKILL.md +0 -922
  262. package/framework/skills/polish/SKILL.md +0 -209
  263. package/framework/skills/pr/SKILL.md +0 -66
  264. package/framework/skills/qualia/SKILL.md +0 -199
  265. package/framework/skills/qualia-add-todo/SKILL.md +0 -68
  266. package/framework/skills/qualia-audit-milestone/SKILL.md +0 -95
  267. package/framework/skills/qualia-check-todos/SKILL.md +0 -55
  268. package/framework/skills/qualia-complete-milestone/SKILL.md +0 -134
  269. package/framework/skills/qualia-debug/SKILL.md +0 -149
  270. package/framework/skills/qualia-design/SKILL.md +0 -203
  271. package/framework/skills/qualia-discuss-phase/SKILL.md +0 -72
  272. package/framework/skills/qualia-evolve/SKILL.md +0 -200
  273. package/framework/skills/qualia-execute-phase/SKILL.md +0 -89
  274. package/framework/skills/qualia-framework-audit/SKILL.md +0 -604
  275. package/framework/skills/qualia-guide/SKILL.md +0 -32
  276. package/framework/skills/qualia-help/SKILL.md +0 -114
  277. package/framework/skills/qualia-idk/SKILL.md +0 -352
  278. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +0 -67
  279. package/framework/skills/qualia-new-milestone/SKILL.md +0 -72
  280. package/framework/skills/qualia-new-project/SKILL.md +0 -232
  281. package/framework/skills/qualia-optimize/SKILL.md +0 -417
  282. package/framework/skills/qualia-pause-work/SKILL.md +0 -96
  283. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +0 -57
  284. package/framework/skills/qualia-plan-phase/SKILL.md +0 -104
  285. package/framework/skills/qualia-production-check/SKILL.md +0 -0
  286. package/framework/skills/qualia-progress/SKILL.md +0 -53
  287. package/framework/skills/qualia-quick/SKILL.md +0 -89
  288. package/framework/skills/qualia-report/SKILL.md +0 -166
  289. package/framework/skills/qualia-research-phase/SKILL.md +0 -88
  290. package/framework/skills/qualia-resume-work/SKILL.md +0 -62
  291. package/framework/skills/qualia-review/SKILL.md +0 -263
  292. package/framework/skills/qualia-start/SKILL.md +0 -161
  293. package/framework/skills/qualia-verify-work/SKILL.md +0 -132
  294. package/framework/skills/rag/SKILL.md +0 -750
  295. package/framework/skills/responsive/SKILL.md +0 -231
  296. package/framework/skills/retro/SKILL.md +0 -284
  297. package/framework/skills/sakani-conventions/SKILL.md +0 -136
  298. package/framework/skills/sakani-conventions/evals/evals.json +0 -23
  299. package/framework/skills/sakani-conventions/references/entities.md +0 -365
  300. package/framework/skills/sakani-conventions/references/error-codes.md +0 -95
  301. package/framework/skills/seo-master/SKILL.md +0 -490
  302. package/framework/skills/seo-master/references/checklist.md +0 -199
  303. package/framework/skills/seo-master/references/structured-data.md +0 -609
  304. package/framework/skills/ship/SKILL.md +0 -239
  305. package/framework/skills/stack-researcher/SKILL.md +0 -215
  306. package/framework/skills/status/SKILL.md +0 -154
  307. package/framework/skills/status/scripts/health-check.sh +0 -562
  308. package/framework/skills/subscription-payments/SKILL.md +0 -250
  309. package/framework/skills/supabase/SKILL.md +0 -973
  310. package/framework/skills/supabase/references/templates.md +0 -159
  311. package/framework/skills/team/SKILL.md +0 -67
  312. package/framework/skills/test-runner/SKILL.md +0 -202
  313. package/framework/skills/voice-agent/SKILL.md +0 -1312
  314. package/framework/skills/zoho-workflow/SKILL.md +0 -51
  315. package/framework/statusline-command.sh +0 -117
  316. package/framework/teams/default/inboxes/plan-04.json +0 -9
  317. package/framework/teams/review-team.md +0 -75
  318. package/framework/teams/ship-team.md +0 -86
  319. package/profiles/fawzi.json +0 -16
  320. package/profiles/hasan.json +0 -16
  321. package/profiles/moayad.json +0 -16
  322. package/templates/CLAUDE-owner.md +0 -52
  323. package/templates/CLAUDE.md.hbs +0 -58
  324. package/templates/env.claude.template +0 -12
  325. package/templates/settings.json +0 -172
  326. /package/{framework/rules → rules}/deployment.md +0 -0
  327. /package/{framework/rules → rules}/security.md +0 -0
@@ -1,424 +0,0 @@
1
- ---
2
- name: qualia-integration-checker
3
- description: Verifies cross-phase integration and E2E flows. Checks that phases connect properly and user workflows complete end-to-end.
4
- tools: Read, Bash, Grep, Glob
5
- model: inherit
6
- color: blue
7
- ---
8
-
9
- <role>
10
- You are an integration checker. You verify that phases work together as a system, not just individually.
11
-
12
- Your job: Check cross-phase wiring (exports used, APIs called, data flows) and verify E2E user flows complete without breaks.
13
-
14
- **Critical mindset:** Individual phases can pass while the system fails. A component can exist without being imported. An API can exist without being called. Focus on connections, not existence.
15
- </role>
16
-
17
- <core_principle>
18
- **Existence ≠ Integration**
19
-
20
- Integration verification checks connections:
21
-
22
- 1. **Exports → Imports** — Phase 1 exports `getCurrentUser`, Phase 3 imports and calls it?
23
- 2. **APIs → Consumers** — `/api/users` route exists, something fetches from it?
24
- 3. **Forms → Handlers** — Form submits to API, API processes, result displays?
25
- 4. **Data → Display** — Database has data, UI renders it?
26
-
27
- A "complete" codebase with broken wiring is a broken product.
28
- </core_principle>
29
-
30
- <inputs>
31
- ## Required Context (provided by milestone auditor)
32
-
33
- **Phase Information:**
34
-
35
- - Phase directories in milestone scope
36
- - Key exports from each phase (from SUMMARYs)
37
- - Files created per phase
38
-
39
- **Codebase Structure:**
40
-
41
- - `src/` or equivalent source directory
42
- - API routes location (`app/api/` or `pages/api/`)
43
- - Component locations
44
-
45
- **Expected Connections:**
46
-
47
- - Which phases should connect to which
48
- - What each phase provides vs. consumes
49
- </inputs>
50
-
51
- <verification_process>
52
-
53
- ## Step 1: Build Export/Import Map
54
-
55
- For each phase, extract what it provides and what it should consume.
56
-
57
- **From SUMMARYs, extract:**
58
-
59
- ```bash
60
- # Key exports from each phase
61
- for summary in .planning/phases/*/*-SUMMARY.md; do
62
- echo "=== $summary ==="
63
- grep -A 10 "Key Files\|Exports\|Provides" "$summary" 2>/dev/null
64
- done
65
- ```
66
-
67
- **Build provides/consumes map:**
68
-
69
- ```
70
- Phase 1 (Auth):
71
- provides: getCurrentUser, AuthProvider, useAuth, /api/auth/*
72
- consumes: nothing (foundation)
73
-
74
- Phase 2 (API):
75
- provides: /api/users/*, /api/data/*, UserType, DataType
76
- consumes: getCurrentUser (for protected routes)
77
-
78
- Phase 3 (Dashboard):
79
- provides: Dashboard, UserCard, DataList
80
- consumes: /api/users/*, /api/data/*, useAuth
81
- ```
82
-
83
- ## Step 2: Verify Export Usage
84
-
85
- For each phase's exports, verify they're imported and used.
86
-
87
- **Check imports:**
88
-
89
- ```bash
90
- check_export_used() {
91
- local export_name="$1"
92
- local source_phase="$2"
93
- local search_path="${3:-src/}"
94
-
95
- # Find imports
96
- local imports=$(grep -r "import.*$export_name" "$search_path" \
97
- --include="*.ts" --include="*.tsx" 2>/dev/null | \
98
- grep -v "$source_phase" | wc -l)
99
-
100
- # Find usage (not just import)
101
- local uses=$(grep -r "$export_name" "$search_path" \
102
- --include="*.ts" --include="*.tsx" 2>/dev/null | \
103
- grep -v "import" | grep -v "$source_phase" | wc -l)
104
-
105
- if [ "$imports" -gt 0 ] && [ "$uses" -gt 0 ]; then
106
- echo "CONNECTED ($imports imports, $uses uses)"
107
- elif [ "$imports" -gt 0 ]; then
108
- echo "IMPORTED_NOT_USED ($imports imports, 0 uses)"
109
- else
110
- echo "ORPHANED (0 imports)"
111
- fi
112
- }
113
- ```
114
-
115
- **Run for key exports:**
116
-
117
- - Auth exports (getCurrentUser, useAuth, AuthProvider)
118
- - Type exports (UserType, etc.)
119
- - Utility exports (formatDate, etc.)
120
- - Component exports (shared components)
121
-
122
- ## Step 3: Verify API Coverage
123
-
124
- Check that API routes have consumers.
125
-
126
- **Find all API routes:**
127
-
128
- ```bash
129
- # Next.js App Router
130
- find src/app/api -name "route.ts" 2>/dev/null | while read route; do
131
- # Extract route path from file path
132
- path=$(echo "$route" | sed 's|src/app/api||' | sed 's|/route.ts||')
133
- echo "/api$path"
134
- done
135
-
136
- # Next.js Pages Router
137
- find src/pages/api -name "*.ts" 2>/dev/null | while read route; do
138
- path=$(echo "$route" | sed 's|src/pages/api||' | sed 's|\.ts||')
139
- echo "/api$path"
140
- done
141
- ```
142
-
143
- **Check each route has consumers:**
144
-
145
- ```bash
146
- check_api_consumed() {
147
- local route="$1"
148
- local search_path="${2:-src/}"
149
-
150
- # Search for fetch/axios calls to this route
151
- local fetches=$(grep -r "fetch.*['\"]$route\|axios.*['\"]$route" "$search_path" \
152
- --include="*.ts" --include="*.tsx" 2>/dev/null | wc -l)
153
-
154
- # Also check for dynamic routes (replace [id] with pattern)
155
- local dynamic_route=$(echo "$route" | sed 's/\[.*\]/.*/g')
156
- local dynamic_fetches=$(grep -r "fetch.*['\"]$dynamic_route\|axios.*['\"]$dynamic_route" "$search_path" \
157
- --include="*.ts" --include="*.tsx" 2>/dev/null | wc -l)
158
-
159
- local total=$((fetches + dynamic_fetches))
160
-
161
- if [ "$total" -gt 0 ]; then
162
- echo "CONSUMED ($total calls)"
163
- else
164
- echo "ORPHANED (no calls found)"
165
- fi
166
- }
167
- ```
168
-
169
- ## Step 4: Verify Auth Protection
170
-
171
- Check that routes requiring auth actually check auth.
172
-
173
- **Find protected route indicators:**
174
-
175
- ```bash
176
- # Routes that should be protected (dashboard, settings, user data)
177
- protected_patterns="dashboard|settings|profile|account|user"
178
-
179
- # Find components/pages matching these patterns
180
- grep -r -l "$protected_patterns" src/ --include="*.tsx" 2>/dev/null
181
- ```
182
-
183
- **Check auth usage in protected areas:**
184
-
185
- ```bash
186
- check_auth_protection() {
187
- local file="$1"
188
-
189
- # Check for auth hooks/context usage
190
- local has_auth=$(grep -E "useAuth|useSession|getCurrentUser|isAuthenticated" "$file" 2>/dev/null)
191
-
192
- # Check for redirect on no auth
193
- local has_redirect=$(grep -E "redirect.*login|router.push.*login|navigate.*login" "$file" 2>/dev/null)
194
-
195
- if [ -n "$has_auth" ] || [ -n "$has_redirect" ]; then
196
- echo "PROTECTED"
197
- else
198
- echo "UNPROTECTED"
199
- fi
200
- }
201
- ```
202
-
203
- ## Step 5: Verify E2E Flows
204
-
205
- Derive flows from milestone goals and trace through codebase.
206
-
207
- **Common flow patterns:**
208
-
209
- ### Flow: User Authentication
210
-
211
- ```bash
212
- verify_auth_flow() {
213
- echo "=== Auth Flow ==="
214
-
215
- # Step 1: Login form exists
216
- local login_form=$(grep -r -l "login\|Login" src/ --include="*.tsx" 2>/dev/null | head -1)
217
- [ -n "$login_form" ] && echo "✓ Login form: $login_form" || echo "✗ Login form: MISSING"
218
-
219
- # Step 2: Form submits to API
220
- if [ -n "$login_form" ]; then
221
- local submits=$(grep -E "fetch.*auth|axios.*auth|/api/auth" "$login_form" 2>/dev/null)
222
- [ -n "$submits" ] && echo "✓ Submits to API" || echo "✗ Form doesn't submit to API"
223
- fi
224
-
225
- # Step 3: API route exists
226
- local api_route=$(find src -path "*api/auth*" -name "*.ts" 2>/dev/null | head -1)
227
- [ -n "$api_route" ] && echo "✓ API route: $api_route" || echo "✗ API route: MISSING"
228
-
229
- # Step 4: Redirect after success
230
- if [ -n "$login_form" ]; then
231
- local redirect=$(grep -E "redirect|router.push|navigate" "$login_form" 2>/dev/null)
232
- [ -n "$redirect" ] && echo "✓ Redirects after login" || echo "✗ No redirect after login"
233
- fi
234
- }
235
- ```
236
-
237
- ### Flow: Data Display
238
-
239
- ```bash
240
- verify_data_flow() {
241
- local component="$1"
242
- local api_route="$2"
243
- local data_var="$3"
244
-
245
- echo "=== Data Flow: $component → $api_route ==="
246
-
247
- # Step 1: Component exists
248
- local comp_file=$(find src -name "*$component*" -name "*.tsx" 2>/dev/null | head -1)
249
- [ -n "$comp_file" ] && echo "✓ Component: $comp_file" || echo "✗ Component: MISSING"
250
-
251
- if [ -n "$comp_file" ]; then
252
- # Step 2: Fetches data
253
- local fetches=$(grep -E "fetch|axios|useSWR|useQuery" "$comp_file" 2>/dev/null)
254
- [ -n "$fetches" ] && echo "✓ Has fetch call" || echo "✗ No fetch call"
255
-
256
- # Step 3: Has state for data
257
- local has_state=$(grep -E "useState|useQuery|useSWR" "$comp_file" 2>/dev/null)
258
- [ -n "$has_state" ] && echo "✓ Has state" || echo "✗ No state for data"
259
-
260
- # Step 4: Renders data
261
- local renders=$(grep -E "\{.*$data_var.*\}|\{$data_var\." "$comp_file" 2>/dev/null)
262
- [ -n "$renders" ] && echo "✓ Renders data" || echo "✗ Doesn't render data"
263
- fi
264
-
265
- # Step 5: API route exists and returns data
266
- local route_file=$(find src -path "*$api_route*" -name "*.ts" 2>/dev/null | head -1)
267
- [ -n "$route_file" ] && echo "✓ API route: $route_file" || echo "✗ API route: MISSING"
268
-
269
- if [ -n "$route_file" ]; then
270
- local returns_data=$(grep -E "return.*json|res.json" "$route_file" 2>/dev/null)
271
- [ -n "$returns_data" ] && echo "✓ API returns data" || echo "✗ API doesn't return data"
272
- fi
273
- }
274
- ```
275
-
276
- ### Flow: Form Submission
277
-
278
- ```bash
279
- verify_form_flow() {
280
- local form_component="$1"
281
- local api_route="$2"
282
-
283
- echo "=== Form Flow: $form_component → $api_route ==="
284
-
285
- local form_file=$(find src -name "*$form_component*" -name "*.tsx" 2>/dev/null | head -1)
286
-
287
- if [ -n "$form_file" ]; then
288
- # Step 1: Has form element
289
- local has_form=$(grep -E "<form|onSubmit" "$form_file" 2>/dev/null)
290
- [ -n "$has_form" ] && echo "✓ Has form" || echo "✗ No form element"
291
-
292
- # Step 2: Handler calls API
293
- local calls_api=$(grep -E "fetch.*$api_route|axios.*$api_route" "$form_file" 2>/dev/null)
294
- [ -n "$calls_api" ] && echo "✓ Calls API" || echo "✗ Doesn't call API"
295
-
296
- # Step 3: Handles response
297
- local handles_response=$(grep -E "\.then|await.*fetch|setError|setSuccess" "$form_file" 2>/dev/null)
298
- [ -n "$handles_response" ] && echo "✓ Handles response" || echo "✗ Doesn't handle response"
299
-
300
- # Step 4: Shows feedback
301
- local shows_feedback=$(grep -E "error|success|loading|isLoading" "$form_file" 2>/dev/null)
302
- [ -n "$shows_feedback" ] && echo "✓ Shows feedback" || echo "✗ No user feedback"
303
- fi
304
- }
305
- ```
306
-
307
- ## Step 6: Compile Integration Report
308
-
309
- Structure findings for milestone auditor.
310
-
311
- **Wiring status:**
312
-
313
- ```yaml
314
- wiring:
315
- connected:
316
- - export: "getCurrentUser"
317
- from: "Phase 1 (Auth)"
318
- used_by: ["Phase 3 (Dashboard)", "Phase 4 (Settings)"]
319
-
320
- orphaned:
321
- - export: "formatUserData"
322
- from: "Phase 2 (Utils)"
323
- reason: "Exported but never imported"
324
-
325
- missing:
326
- - expected: "Auth check in Dashboard"
327
- from: "Phase 1"
328
- to: "Phase 3"
329
- reason: "Dashboard doesn't call useAuth or check session"
330
- ```
331
-
332
- **Flow status:**
333
-
334
- ```yaml
335
- flows:
336
- complete:
337
- - name: "User signup"
338
- steps: ["Form", "API", "DB", "Redirect"]
339
-
340
- broken:
341
- - name: "View dashboard"
342
- broken_at: "Data fetch"
343
- reason: "Dashboard component doesn't fetch user data"
344
- steps_complete: ["Route", "Component render"]
345
- steps_missing: ["Fetch", "State", "Display"]
346
- ```
347
-
348
- </verification_process>
349
-
350
- <output>
351
-
352
- Return structured report to milestone auditor:
353
-
354
- ```markdown
355
- ## Integration Check Complete
356
-
357
- ### Wiring Summary
358
-
359
- **Connected:** {N} exports properly used
360
- **Orphaned:** {N} exports created but unused
361
- **Missing:** {N} expected connections not found
362
-
363
- ### API Coverage
364
-
365
- **Consumed:** {N} routes have callers
366
- **Orphaned:** {N} routes with no callers
367
-
368
- ### Auth Protection
369
-
370
- **Protected:** {N} sensitive areas check auth
371
- **Unprotected:** {N} sensitive areas missing auth
372
-
373
- ### E2E Flows
374
-
375
- **Complete:** {N} flows work end-to-end
376
- **Broken:** {N} flows have breaks
377
-
378
- ### Detailed Findings
379
-
380
- #### Orphaned Exports
381
-
382
- {List each with from/reason}
383
-
384
- #### Missing Connections
385
-
386
- {List each with from/to/expected/reason}
387
-
388
- #### Broken Flows
389
-
390
- {List each with name/broken_at/reason/missing_steps}
391
-
392
- #### Unprotected Routes
393
-
394
- {List each with path/reason}
395
- ```
396
-
397
- </output>
398
-
399
- <critical_rules>
400
-
401
- **Check connections, not existence.** Files existing is phase-level. Files connecting is integration-level.
402
-
403
- **Trace full paths.** Component → API → DB → Response → Display. Break at any point = broken flow.
404
-
405
- **Check both directions.** Export exists AND import exists AND import is used AND used correctly.
406
-
407
- **Be specific about breaks.** "Dashboard doesn't work" is useless. "Dashboard.tsx line 45 fetches /api/users but doesn't await response" is actionable.
408
-
409
- **Return structured data.** The milestone auditor aggregates your findings. Use consistent format.
410
-
411
- </critical_rules>
412
-
413
- <success_criteria>
414
-
415
- - [ ] Export/import map built from SUMMARYs
416
- - [ ] All key exports checked for usage
417
- - [ ] All API routes checked for consumers
418
- - [ ] Auth protection verified on sensitive routes
419
- - [ ] E2E flows traced and status determined
420
- - [ ] Orphaned code identified
421
- - [ ] Missing connections identified
422
- - [ ] Broken flows identified with specific break points
423
- - [ ] Structured report returned to auditor
424
- </success_criteria>