qualia-framework 2.6.0 → 3.2.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 (321) hide show
  1. package/CLAUDE.md +64 -0
  2. package/README.md +103 -30
  3. package/agents/builder.md +110 -0
  4. package/agents/planner.md +134 -0
  5. package/agents/qa-browser.md +186 -0
  6. package/agents/verifier.md +221 -0
  7. package/bin/cli.js +336 -531
  8. package/bin/install.js +570 -0
  9. package/bin/qualia-ui.js +299 -0
  10. package/bin/state.js +630 -0
  11. package/bin/statusline.js +252 -0
  12. package/guide.md +63 -0
  13. package/hooks/auto-update.js +139 -0
  14. package/hooks/branch-guard.js +47 -0
  15. package/hooks/migration-guard.js +60 -0
  16. package/hooks/pre-compact.js +32 -0
  17. package/hooks/pre-deploy-gate.js +110 -0
  18. package/hooks/pre-push.js +33 -0
  19. package/hooks/session-start.js +170 -0
  20. package/package.json +29 -20
  21. package/rules/design-reference.md +179 -0
  22. package/rules/frontend.md +126 -0
  23. package/skills/qualia/SKILL.md +87 -0
  24. package/skills/qualia-build/SKILL.md +97 -0
  25. package/skills/qualia-debug/SKILL.md +87 -0
  26. package/skills/qualia-design/SKILL.md +93 -0
  27. package/skills/qualia-handoff/SKILL.md +66 -0
  28. package/skills/qualia-idk/SKILL.md +8 -0
  29. package/skills/qualia-learn/SKILL.md +88 -0
  30. package/skills/qualia-new/SKILL.md +323 -0
  31. package/{framework/skills → skills}/qualia-optimize/SKILL.md +1 -1
  32. package/skills/qualia-pause/SKILL.md +63 -0
  33. package/skills/qualia-plan/SKILL.md +101 -0
  34. package/skills/qualia-polish/SKILL.md +157 -0
  35. package/skills/qualia-quick/SKILL.md +37 -0
  36. package/skills/qualia-report/SKILL.md +105 -0
  37. package/skills/qualia-resume/SKILL.md +49 -0
  38. package/skills/qualia-review/SKILL.md +76 -0
  39. package/skills/qualia-ship/SKILL.md +90 -0
  40. package/skills/qualia-skill-new/SKILL.md +167 -0
  41. package/skills/qualia-task/SKILL.md +91 -0
  42. package/skills/qualia-verify/SKILL.md +113 -0
  43. package/templates/DESIGN.md +137 -0
  44. package/templates/plan.md +28 -0
  45. package/templates/project.md +22 -0
  46. package/templates/state.md +27 -0
  47. package/templates/tracking.json +20 -0
  48. package/tests/bin.test.sh +673 -0
  49. package/tests/hooks.test.sh +315 -0
  50. package/tests/state.test.sh +535 -0
  51. package/tests/statusline.test.sh +243 -0
  52. package/bin/collect-metrics.sh +0 -62
  53. package/framework/.claudeignore +0 -51
  54. package/framework/CLAUDE.md +0 -51
  55. package/framework/MCP_SETUP.md +0 -229
  56. package/framework/agents/architecture-strategist.md +0 -53
  57. package/framework/agents/backend-agent.md +0 -150
  58. package/framework/agents/code-simplicity-reviewer.md +0 -86
  59. package/framework/agents/frontend-agent.md +0 -111
  60. package/framework/agents/kieran-typescript-reviewer.md +0 -96
  61. package/framework/agents/performance-oracle.md +0 -111
  62. package/framework/agents/qualia-codebase-mapper.md +0 -761
  63. package/framework/agents/qualia-debugger.md +0 -1204
  64. package/framework/agents/qualia-executor.md +0 -882
  65. package/framework/agents/qualia-integration-checker.md +0 -424
  66. package/framework/agents/qualia-phase-researcher.md +0 -457
  67. package/framework/agents/qualia-plan-checker.md +0 -700
  68. package/framework/agents/qualia-planner.md +0 -1245
  69. package/framework/agents/qualia-project-researcher.md +0 -603
  70. package/framework/agents/qualia-research-synthesizer.md +0 -200
  71. package/framework/agents/qualia-roadmapper.md +0 -606
  72. package/framework/agents/qualia-verifier.md +0 -686
  73. package/framework/agents/red-team-qa.md +0 -130
  74. package/framework/agents/security-auditor.md +0 -72
  75. package/framework/agents/team-orchestrator.md +0 -229
  76. package/framework/agents/teams/framework-audit-team.md +0 -66
  77. package/framework/agents/teams/full-stack-team.md +0 -48
  78. package/framework/agents/teams/optimize-team.md +0 -53
  79. package/framework/agents/teams/review-team.md +0 -70
  80. package/framework/agents/teams/ship-team.md +0 -86
  81. package/framework/agents/test-agent.md +0 -182
  82. package/framework/hooks/auto-format.sh +0 -54
  83. package/framework/hooks/block-env-edit.sh +0 -42
  84. package/framework/hooks/branch-guard.sh +0 -43
  85. package/framework/hooks/confirm-delete.sh +0 -59
  86. package/framework/hooks/migration-validate.sh +0 -77
  87. package/framework/hooks/notification-speak.sh +0 -16
  88. package/framework/hooks/pre-commit.sh +0 -100
  89. package/framework/hooks/pre-compact.sh +0 -56
  90. package/framework/hooks/pre-deploy-gate.sh +0 -160
  91. package/framework/hooks/qualia-colors.sh +0 -32
  92. package/framework/hooks/retention-cleanup.sh +0 -62
  93. package/framework/hooks/save-session-state.sh +0 -185
  94. package/framework/hooks/session-context-loader.sh +0 -96
  95. package/framework/hooks/session-learn.sh +0 -32
  96. package/framework/hooks/skill-announce.sh +0 -123
  97. package/framework/hooks/tool-error-announce.sh +0 -27
  98. package/framework/install.ps1 +0 -323
  99. package/framework/install.sh +0 -313
  100. package/framework/qualia-framework/VERSION +0 -1
  101. package/framework/qualia-framework/assets/qualia-logo.png +0 -0
  102. package/framework/qualia-framework/bin/collect-metrics.sh +0 -67
  103. package/framework/qualia-framework/bin/generate-report-docx.py +0 -429
  104. package/framework/qualia-framework/bin/qualia-tools.js +0 -2201
  105. package/framework/qualia-framework/bin/qualia-tools.test.js +0 -1054
  106. package/framework/qualia-framework/references/checkpoints.md +0 -775
  107. package/framework/qualia-framework/references/completion-checklists.md +0 -359
  108. package/framework/qualia-framework/references/continuation-format.md +0 -249
  109. package/framework/qualia-framework/references/continuation-prompt.md +0 -97
  110. package/framework/qualia-framework/references/decimal-phase-calculation.md +0 -65
  111. package/framework/qualia-framework/references/design-quality.md +0 -56
  112. package/framework/qualia-framework/references/employee-guide.md +0 -167
  113. package/framework/qualia-framework/references/git-integration.md +0 -254
  114. package/framework/qualia-framework/references/git-planning-commit.md +0 -50
  115. package/framework/qualia-framework/references/model-profile-resolution.md +0 -32
  116. package/framework/qualia-framework/references/model-profiles.md +0 -73
  117. package/framework/qualia-framework/references/phase-argument-parsing.md +0 -61
  118. package/framework/qualia-framework/references/planning-config.md +0 -195
  119. package/framework/qualia-framework/references/questioning.md +0 -141
  120. package/framework/qualia-framework/references/tdd.md +0 -263
  121. package/framework/qualia-framework/references/ui-brand.md +0 -160
  122. package/framework/qualia-framework/references/verification-patterns.md +0 -612
  123. package/framework/qualia-framework/templates/DEBUG.md +0 -159
  124. package/framework/qualia-framework/templates/DESIGN.md +0 -81
  125. package/framework/qualia-framework/templates/UAT.md +0 -247
  126. package/framework/qualia-framework/templates/codebase/architecture.md +0 -255
  127. package/framework/qualia-framework/templates/codebase/concerns.md +0 -310
  128. package/framework/qualia-framework/templates/codebase/conventions.md +0 -307
  129. package/framework/qualia-framework/templates/codebase/integrations.md +0 -280
  130. package/framework/qualia-framework/templates/codebase/stack.md +0 -186
  131. package/framework/qualia-framework/templates/codebase/structure.md +0 -285
  132. package/framework/qualia-framework/templates/codebase/testing.md +0 -480
  133. package/framework/qualia-framework/templates/config.json +0 -35
  134. package/framework/qualia-framework/templates/context.md +0 -283
  135. package/framework/qualia-framework/templates/continue-here.md +0 -78
  136. package/framework/qualia-framework/templates/debug-subagent-prompt.md +0 -91
  137. package/framework/qualia-framework/templates/discovery.md +0 -146
  138. package/framework/qualia-framework/templates/lab-notes.md +0 -16
  139. package/framework/qualia-framework/templates/milestone-archive.md +0 -123
  140. package/framework/qualia-framework/templates/milestone.md +0 -115
  141. package/framework/qualia-framework/templates/phase-prompt.md +0 -567
  142. package/framework/qualia-framework/templates/planner-subagent-prompt.md +0 -117
  143. package/framework/qualia-framework/templates/project.md +0 -184
  144. package/framework/qualia-framework/templates/projects/ai-agent.md +0 -156
  145. package/framework/qualia-framework/templates/projects/mobile-app.md +0 -181
  146. package/framework/qualia-framework/templates/projects/voice-agent.md +0 -134
  147. package/framework/qualia-framework/templates/projects/website.md +0 -137
  148. package/framework/qualia-framework/templates/requirements.md +0 -231
  149. package/framework/qualia-framework/templates/research-project/ARCHITECTURE.md +0 -204
  150. package/framework/qualia-framework/templates/research-project/FEATURES.md +0 -147
  151. package/framework/qualia-framework/templates/research-project/PITFALLS.md +0 -200
  152. package/framework/qualia-framework/templates/research-project/STACK.md +0 -120
  153. package/framework/qualia-framework/templates/research-project/SUMMARY.md +0 -170
  154. package/framework/qualia-framework/templates/research.md +0 -552
  155. package/framework/qualia-framework/templates/roadmap.md +0 -206
  156. package/framework/qualia-framework/templates/state.md +0 -179
  157. package/framework/qualia-framework/templates/summary-complex.md +0 -59
  158. package/framework/qualia-framework/templates/summary-minimal.md +0 -41
  159. package/framework/qualia-framework/templates/summary-standard.md +0 -48
  160. package/framework/qualia-framework/templates/summary.md +0 -246
  161. package/framework/qualia-framework/templates/user-setup.md +0 -311
  162. package/framework/qualia-framework/templates/verification-report.md +0 -322
  163. package/framework/qualia-framework/workflows/add-phase.md +0 -179
  164. package/framework/qualia-framework/workflows/add-todo.md +0 -157
  165. package/framework/qualia-framework/workflows/audit-milestone.md +0 -241
  166. package/framework/qualia-framework/workflows/check-todos.md +0 -176
  167. package/framework/qualia-framework/workflows/complete-milestone.md +0 -858
  168. package/framework/qualia-framework/workflows/diagnose-issues.md +0 -219
  169. package/framework/qualia-framework/workflows/discovery-phase.md +0 -289
  170. package/framework/qualia-framework/workflows/discuss-phase.md +0 -534
  171. package/framework/qualia-framework/workflows/execute-phase.md +0 -559
  172. package/framework/qualia-framework/workflows/execute-plan.md +0 -438
  173. package/framework/qualia-framework/workflows/help.md +0 -470
  174. package/framework/qualia-framework/workflows/insert-phase.md +0 -220
  175. package/framework/qualia-framework/workflows/list-phase-assumptions.md +0 -178
  176. package/framework/qualia-framework/workflows/map-codebase.md +0 -327
  177. package/framework/qualia-framework/workflows/new-milestone.md +0 -363
  178. package/framework/qualia-framework/workflows/new-project.md +0 -982
  179. package/framework/qualia-framework/workflows/pause-work.md +0 -122
  180. package/framework/qualia-framework/workflows/plan-milestone-gaps.md +0 -256
  181. package/framework/qualia-framework/workflows/plan-phase.md +0 -422
  182. package/framework/qualia-framework/workflows/progress.md +0 -389
  183. package/framework/qualia-framework/workflows/quick.md +0 -252
  184. package/framework/qualia-framework/workflows/remove-phase.md +0 -326
  185. package/framework/qualia-framework/workflows/research-phase.md +0 -74
  186. package/framework/qualia-framework/workflows/resume-project.md +0 -306
  187. package/framework/qualia-framework/workflows/set-profile.md +0 -80
  188. package/framework/qualia-framework/workflows/settings.md +0 -145
  189. package/framework/qualia-framework/workflows/transition.md +0 -556
  190. package/framework/qualia-framework/workflows/update.md +0 -197
  191. package/framework/qualia-framework/workflows/verify-phase.md +0 -195
  192. package/framework/qualia-framework/workflows/verify-work.md +0 -625
  193. package/framework/rules/context7.md +0 -14
  194. package/framework/rules/frontend.md +0 -33
  195. package/framework/rules/speed.md +0 -23
  196. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  197. package/framework/scripts/apply-retention.sh +0 -120
  198. package/framework/scripts/bootstrap-pop-os.sh +0 -354
  199. package/framework/scripts/claude-voice +0 -13
  200. package/framework/scripts/cleanup.sh +0 -131
  201. package/framework/scripts/cowork-mode.sh +0 -141
  202. package/framework/scripts/generate-project-claude-md.sh +0 -153
  203. package/framework/scripts/load-test-webhook.js +0 -172
  204. package/framework/scripts/say.py +0 -236
  205. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +0 -167
  206. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +0 -216
  207. package/framework/scripts/speak.py +0 -55
  208. package/framework/scripts/speak.sh +0 -18
  209. package/framework/scripts/status.sh +0 -138
  210. package/framework/scripts/sync-to-framework.sh +0 -65
  211. package/framework/scripts/voice-hotkey.py +0 -227
  212. package/framework/scripts/voice-input.sh +0 -51
  213. package/framework/skills/animate/SKILL.md +0 -202
  214. package/framework/skills/bolder/SKILL.md +0 -144
  215. package/framework/skills/browser-qa/SKILL.md +0 -536
  216. package/framework/skills/clarify/SKILL.md +0 -179
  217. package/framework/skills/client-handoff/SKILL.md +0 -135
  218. package/framework/skills/collab-onboard/SKILL.md +0 -111
  219. package/framework/skills/colorize/SKILL.md +0 -170
  220. package/framework/skills/critique/SKILL.md +0 -126
  221. package/framework/skills/deep-research/SKILL.md +0 -240
  222. package/framework/skills/delight/SKILL.md +0 -329
  223. package/framework/skills/deploy/SKILL.md +0 -261
  224. package/framework/skills/deploy-verify/SKILL.md +0 -377
  225. package/framework/skills/deploy-verify/scripts/canary-check.sh +0 -206
  226. package/framework/skills/deploy-verify/scripts/check-console-errors.js +0 -147
  227. package/framework/skills/deploy-verify/scripts/check-cwv.js +0 -139
  228. package/framework/skills/deploy-verify/scripts/project-detect.sh +0 -84
  229. package/framework/skills/deploy-verify/scripts/verify.sh +0 -548
  230. package/framework/skills/design-quieter/SKILL.md +0 -130
  231. package/framework/skills/distill/SKILL.md +0 -149
  232. package/framework/skills/docs-lookup/SKILL.md +0 -79
  233. package/framework/skills/fcm-notifications/SKILL.md +0 -125
  234. package/framework/skills/financial-ledger/SKILL.md +0 -1039
  235. package/framework/skills/frontend-master/NOTICE.md +0 -4
  236. package/framework/skills/frontend-master/SKILL.md +0 -127
  237. package/framework/skills/frontend-master/reference/color-and-contrast.md +0 -132
  238. package/framework/skills/frontend-master/reference/interaction-design.md +0 -123
  239. package/framework/skills/frontend-master/reference/motion-design.md +0 -99
  240. package/framework/skills/frontend-master/reference/responsive-design.md +0 -114
  241. package/framework/skills/frontend-master/reference/spatial-design.md +0 -100
  242. package/framework/skills/frontend-master/reference/typography.md +0 -131
  243. package/framework/skills/frontend-master/reference/ux-writing.md +0 -107
  244. package/framework/skills/harden/SKILL.md +0 -357
  245. package/framework/skills/i18n-rtl/SKILL.md +0 -752
  246. package/framework/skills/learn/SKILL.md +0 -95
  247. package/framework/skills/memory/SKILL.md +0 -50
  248. package/framework/skills/mobile-expo/SKILL.md +0 -977
  249. package/framework/skills/mobile-expo/references/store-checklist.md +0 -550
  250. package/framework/skills/nestjs-backend/README.md +0 -73
  251. package/framework/skills/nestjs-backend/SKILL.md +0 -446
  252. package/framework/skills/nestjs-backend/references/templates.md +0 -1173
  253. package/framework/skills/normalize/SKILL.md +0 -79
  254. package/framework/skills/onboard/SKILL.md +0 -242
  255. package/framework/skills/openrouter-agent/SKILL.md +0 -922
  256. package/framework/skills/polish/SKILL.md +0 -209
  257. package/framework/skills/pr/SKILL.md +0 -66
  258. package/framework/skills/qualia/SKILL.md +0 -199
  259. package/framework/skills/qualia-add-todo/SKILL.md +0 -68
  260. package/framework/skills/qualia-audit-milestone/SKILL.md +0 -95
  261. package/framework/skills/qualia-check-todos/SKILL.md +0 -55
  262. package/framework/skills/qualia-complete-milestone/SKILL.md +0 -134
  263. package/framework/skills/qualia-debug/SKILL.md +0 -149
  264. package/framework/skills/qualia-design/SKILL.md +0 -203
  265. package/framework/skills/qualia-discuss-phase/SKILL.md +0 -72
  266. package/framework/skills/qualia-evolve/SKILL.md +0 -200
  267. package/framework/skills/qualia-execute-phase/SKILL.md +0 -89
  268. package/framework/skills/qualia-framework-audit/SKILL.md +0 -604
  269. package/framework/skills/qualia-guide/SKILL.md +0 -32
  270. package/framework/skills/qualia-help/SKILL.md +0 -114
  271. package/framework/skills/qualia-idk/SKILL.md +0 -352
  272. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +0 -67
  273. package/framework/skills/qualia-new-milestone/SKILL.md +0 -72
  274. package/framework/skills/qualia-new-project/SKILL.md +0 -232
  275. package/framework/skills/qualia-pause-work/SKILL.md +0 -96
  276. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +0 -57
  277. package/framework/skills/qualia-plan-phase/SKILL.md +0 -104
  278. package/framework/skills/qualia-production-check/SKILL.md +0 -0
  279. package/framework/skills/qualia-progress/SKILL.md +0 -53
  280. package/framework/skills/qualia-quick/SKILL.md +0 -89
  281. package/framework/skills/qualia-report/SKILL.md +0 -166
  282. package/framework/skills/qualia-research-phase/SKILL.md +0 -88
  283. package/framework/skills/qualia-resume-work/SKILL.md +0 -62
  284. package/framework/skills/qualia-review/SKILL.md +0 -263
  285. package/framework/skills/qualia-start/SKILL.md +0 -161
  286. package/framework/skills/qualia-verify-work/SKILL.md +0 -132
  287. package/framework/skills/rag/SKILL.md +0 -750
  288. package/framework/skills/responsive/SKILL.md +0 -231
  289. package/framework/skills/retro/SKILL.md +0 -284
  290. package/framework/skills/sakani-conventions/SKILL.md +0 -136
  291. package/framework/skills/sakani-conventions/evals/evals.json +0 -23
  292. package/framework/skills/sakani-conventions/references/entities.md +0 -365
  293. package/framework/skills/sakani-conventions/references/error-codes.md +0 -95
  294. package/framework/skills/seo-master/SKILL.md +0 -490
  295. package/framework/skills/seo-master/references/checklist.md +0 -199
  296. package/framework/skills/seo-master/references/structured-data.md +0 -609
  297. package/framework/skills/ship/SKILL.md +0 -239
  298. package/framework/skills/stack-researcher/SKILL.md +0 -215
  299. package/framework/skills/status/SKILL.md +0 -154
  300. package/framework/skills/status/scripts/health-check.sh +0 -562
  301. package/framework/skills/subscription-payments/SKILL.md +0 -250
  302. package/framework/skills/supabase/SKILL.md +0 -973
  303. package/framework/skills/supabase/references/templates.md +0 -159
  304. package/framework/skills/team/SKILL.md +0 -67
  305. package/framework/skills/test-runner/SKILL.md +0 -202
  306. package/framework/skills/voice-agent/SKILL.md +0 -1312
  307. package/framework/skills/zoho-workflow/SKILL.md +0 -51
  308. package/framework/statusline-command.sh +0 -117
  309. package/framework/teams/default/inboxes/plan-04.json +0 -9
  310. package/framework/teams/review-team.md +0 -75
  311. package/framework/teams/ship-team.md +0 -86
  312. package/profiles/fawzi.json +0 -16
  313. package/profiles/hasan.json +0 -16
  314. package/profiles/moayad.json +0 -16
  315. package/templates/CLAUDE-owner.md +0 -52
  316. package/templates/CLAUDE.md.hbs +0 -58
  317. package/templates/env.claude.template +0 -12
  318. package/templates/settings.json +0 -172
  319. package/uninstall.sh +0 -90
  320. /package/{framework/rules → rules}/deployment.md +0 -0
  321. /package/{framework/rules → rules}/security.md +0 -0
@@ -1,261 +0,0 @@
1
- ---
2
- name: deploy
3
- description: "Quick deploy, troubleshoot, or rollback Vercel deployments. Use --quick for fast push, --fix for troubleshooting, --preview for staging. For full pipeline with quality gates, use /ship instead."
4
- tags: [deployment, vercel, ci-cd, production]
5
- ---
6
-
7
- # Deploy — Quick Deploy & Troubleshooting
8
-
9
- > For the full production pipeline (quality gates, commit, deploy, verify), use `/ship`.
10
- > This skill handles quick deploys, troubleshooting, and rollbacks.
11
-
12
- ## Usage
13
-
14
- - `/deploy --quick` — Skip tests, just build and push to production
15
- - `/deploy --preview` — Deploy to preview/staging environment
16
- - `/deploy --fix` — Troubleshoot a failed deployment
17
- - `/deploy` — Redirects to `/ship` for full pipeline
18
-
19
- ## --quick (Fast Deploy)
20
-
21
- Skip tests, just build and ship:
22
- ```bash
23
- npm run build && vercel --prod
24
- ```
25
-
26
- ---
27
-
28
- ## --fix (Troubleshoot Failures)
29
-
30
- ### Build Failures
31
-
32
- **Module Not Found:** Check case sensitivity (Linux is case-sensitive). Run `vercel --force` to clear cache.
33
-
34
- **Memory Issues:** Add to vercel.json:
35
- ```json
36
- { "functions": { "app/api/heavy/route.ts": { "maxDuration": 60, "memory": 3008 } } }
37
- ```
38
-
39
- **Build Command Issues:**
40
- ```bash
41
- vercel --build-env NODE_OPTIONS="--max-old-space-size=4096"
42
- ```
43
-
44
- ### Environment Variables
45
-
46
- ```bash
47
- vercel env ls # List all env vars
48
- vercel env add VAR_NAME # Add missing var
49
- vercel env pull .env.local # Pull to local
50
- ```
51
-
52
- **Remember:** `NEXT_PUBLIC_*` for client-side, plain names for server-side only.
53
-
54
- ### CORS Issues
55
- Add proper CORS headers in API routes with explicit origin allowlist.
56
-
57
- ### Function Timeouts
58
- Increase `maxDuration` in vercel.json (up to 300s on Pro plan).
59
-
60
- ---
61
-
62
- ## Rollback
63
-
64
- ```bash
65
- vercel ls # List deployments
66
- vercel rollback # Rollback to previous
67
- vercel rollback [url] # Rollback to specific deployment
68
- ```
69
-
70
- ---
71
-
72
- ## Domain Management
73
-
74
- ```bash
75
- vercel domains add example.com
76
- vercel domains ls
77
- vercel certs issue example.com # Force SSL renewal
78
- ```
79
-
80
- DNS: A record `@ → 76.76.21.21`, CNAME `www → cname.vercel-dns.com`
81
-
82
- ---
83
-
84
- ## vercel.json Reference
85
-
86
- ```json
87
- {
88
- "framework": "nextjs",
89
- "regions": ["iad1"],
90
- "headers": [
91
- {
92
- "source": "/(.*)",
93
- "headers": [
94
- { "key": "X-Frame-Options", "value": "DENY" },
95
- { "key": "X-Content-Type-Options", "value": "nosniff" },
96
- { "key": "Strict-Transport-Security", "value": "max-age=63072000; includeSubDomains; preload" }
97
- ]
98
- }
99
- ],
100
- "crons": [{ "path": "/api/cron/daily", "schedule": "0 0 * * *" }]
101
- }
102
- ```
103
-
104
- ---
105
-
106
- ## When Things Go Wrong
107
-
108
- ### Build Fails Locally
109
-
110
- **TypeScript errors:**
111
- ```bash
112
- npx tsc --noEmit 2>&1 | head -40 # See first errors
113
- npx tsc --noEmit 2>&1 | grep -c "error TS" # Count total errors
114
- ```
115
- - Fix type errors before deploying — Vercel will hit the same failures
116
- - If errors are in node_modules: `rm -rf node_modules && npm install`
117
- - If errors are in generated types: `supabase gen types typescript --linked > types/supabase.ts`
118
-
119
- **Missing dependencies:**
120
- ```bash
121
- npm ls 2>&1 | grep "MISSING" # Find missing deps
122
- npm install # Reinstall all
123
- rm -rf node_modules/.cache && npm run build # Clear build cache
124
- ```
125
-
126
- **Environment variables not set:**
127
- ```bash
128
- # Check what the build expects
129
- grep -r "process.env\." --include="*.ts" --include="*.tsx" -h | grep -oP 'process\.env\.\K[A-Z_]+' | sort -u
130
- # Compare with what's set
131
- env | grep -E "^(NEXT_|SUPABASE_|VAPI_)" | cut -d= -f1 | sort
132
- ```
133
- Fix: Copy from `.env.local` or `vercel env pull .env.local`.
134
-
135
- ### Build Passes Locally, Fails on Vercel
136
-
137
- **Different Node version:**
138
- ```bash
139
- node -v # Local version
140
- # Check Vercel: Settings → General → Node.js Version
141
- ```
142
- Fix: Add to `package.json`:
143
- ```json
144
- { "engines": { "node": ">=20.0.0" } }
145
- ```
146
-
147
- **Missing env vars on Vercel:**
148
- ```bash
149
- vercel env ls # See what's set per environment
150
- vercel env ls production # Production-specific
151
- ```
152
- Fix: `vercel env add VARIABLE_NAME production` — or use Vercel dashboard → Settings → Environment Variables.
153
-
154
- Common gotcha: `NEXT_PUBLIC_*` vars must be set at **build time** (not just runtime). If you added one after the last deploy, redeploy.
155
-
156
- **Case sensitivity:** Linux (Vercel) is case-sensitive, macOS isn't.
157
- ```bash
158
- # Find case mismatches in imports
159
- grep -rn "from ['\"]\./" --include="*.ts" --include="*.tsx" | while read line; do
160
- file=$(echo "$line" | grep -oP "from ['\"]\.\/\K[^'\"]+")
161
- # Check if the file exists with exact case
162
- done
163
- ```
164
- Fix: Rename files to match import casing exactly.
165
-
166
- ### Deploy Succeeds But Site is Broken
167
-
168
- **White screen (client crash):**
169
- ```bash
170
- # Check Vercel function logs
171
- vercel logs <deployment-url> --follow
172
- # Check for hydration errors in browser console
173
- node ~/.claude/skills/deploy-verify/scripts/check-console-errors.js <url>
174
- ```
175
- Common causes:
176
- - `window` or `document` used in server component → wrap in `useEffect` or add `'use client'`
177
- - Hydration mismatch → check for `Date.now()`, `Math.random()`, or browser-only APIs in SSR
178
- - Missing `'use client'` directive on component using hooks
179
-
180
- **500 errors on API routes:**
181
- ```bash
182
- vercel logs <deployment-url> 2>&1 | grep -i "error\|500"
183
- ```
184
- Common causes:
185
- - Env var exists locally but not on Vercel (`vercel env ls`)
186
- - API route importing a server-only module incorrectly
187
- - Database connection string pointing to localhost
188
-
189
- **Hydration mismatch:**
190
- ```bash
191
- # Search for dynamic content rendered during SSR
192
- grep -rn "Date.now\|Math.random\|window\.\|document\.\|localStorage" --include="*.tsx" --include="*.ts" app/
193
- ```
194
- Fix: Wrap dynamic content in `useEffect` or use `suppressHydrationWarning` on the specific element (not as a blanket fix).
195
-
196
- **Rollback immediately if production is broken:**
197
- ```bash
198
- vercel rollback --prod # Instant rollback
199
- vercel ls | head -5 # See recent deployments
200
- vercel inspect <old-deployment-url> # Check what was different
201
- ```
202
-
203
- ### Deploy Succeeds But Migrations Weren't Applied
204
-
205
- Symptoms: New columns/tables don't exist, API returns "column X does not exist".
206
-
207
- ```bash
208
- # Check what migrations are pending
209
- supabase migration list --project-ref <ref>
210
- # Push pending migrations
211
- supabase db push --project-ref <ref>
212
- # Verify the schema
213
- supabase db dump --schema public --project-ref <ref> | grep "table_name"
214
- ```
215
-
216
- Prevention: Add migration push to your deploy flow:
217
- ```bash
218
- supabase db push --project-ref <ref> && vercel --prod
219
- ```
220
-
221
- ### Vercel Rate Limit or Quota Exceeded
222
-
223
- Symptoms: `429 Too Many Requests` or deployment stuck in queue.
224
-
225
- ```bash
226
- # Check current usage
227
- vercel teams ls # See team/plan info
228
- # Wait and retry
229
- sleep 60 && vercel --prod # Rate limits usually clear in ~60s
230
- ```
231
-
232
- If on Hobby plan: max 100 deployments/day. Switch to `--preview` for testing, save `--prod` for real deploys.
233
-
234
- If build minutes exhausted: Wait for monthly reset, or upgrade plan.
235
-
236
- ### Domain DNS Not Propagating
237
-
238
- Symptoms: Site works at `*.vercel.app` but not at custom domain.
239
-
240
- ```bash
241
- # Check DNS resolution
242
- dig A yourdomain.com +short # Should show 76.76.21.21
243
- dig CNAME www.yourdomain.com +short # Should show cname.vercel-dns.com
244
- nslookup yourdomain.com # Alternative check
245
- ```
246
-
247
- **DNS not pointing to Vercel:**
248
- ```bash
249
- vercel domains inspect yourdomain.com # Shows expected DNS records
250
- ```
251
- Fix: Update DNS at your registrar. A record → `76.76.21.21`, CNAME → `cname.vercel-dns.com`.
252
-
253
- **SSL not provisioning:**
254
- ```bash
255
- vercel certs ls # Check cert status
256
- vercel certs issue yourdomain.com # Force re-issue
257
- ```
258
- Note: DNS propagation takes 5 min to 48 hours. Check with `dig` — if DNS is correct but SSL isn't ready, wait or force re-issue.
259
-
260
- **Temporary workaround while DNS propagates:**
261
- Share the `*.vercel.app` URL with the client until the custom domain resolves.
@@ -1,377 +0,0 @@
1
- ---
2
- name: deploy-verify
3
- description: Run post-deploy 8-check verification and T+2min canary health check against baseline. Run after vercel --prod deployments to verify.
4
- user-invocable: true
5
- ---
6
-
7
- # Deploy Verification
8
-
9
- Production verification suite — 8 checks with retry logic, auto-detection of the current project, and actionable failure remediation.
10
-
11
- Invoked automatically after `vercel --prod` (via PostToolUse hook) or manually with `/deploy-verify <URL>`.
12
-
13
- ## Project Auto-Detection
14
-
15
- The skill determines which project is being verified:
16
-
17
- 1. Read the current working directory name
18
- 2. Match against the project inventory in `~/.claude/knowledge/qualia-context.md`
19
- 3. Extract: project name, Supabase ref (if any), hosting type, known endpoints
20
- 4. If no match: run in generic mode (skip Supabase-specific checks)
21
-
22
- This means you don't need to pass a Supabase ref or project name — it's derived from context.
23
-
24
- ## The 8 Checks
25
-
26
- ### Check 1: HTTP Status (CRITICAL)
27
-
28
- Verify the site loads successfully.
29
-
30
- - **Endpoints tested:** Root URL (`/`) and `/api/health` (if it exists)
31
- - **Retry:** 3 attempts with exponential backoff (5s → 15s → 30s)
32
- - **Follow redirects** (`-L`) — but log the redirect chain
33
- - **PASS:** HTTP 200 on root URL
34
- - **WARN:** HTTP 200 but only after redirect (3xx → 200)
35
- - **FAIL:** Any non-200 final status, timeout, or connection refused
36
- - **CRITICAL:** If root URL fails all 3 retries, halt verification — nothing else matters
37
-
38
- ```bash
39
- # Core logic
40
- curl -sL -o /dev/null -w "%{http_code}" --max-time 15 "$URL"
41
- curl -sL -o /dev/null -w "%{http_code}" --max-time 15 "$URL/api/health"
42
- ```
43
-
44
- ### Check 2: Auth Flow
45
-
46
- Verify authentication is functional (if the project uses auth).
47
-
48
- - **Step 1:** Hit a known protected route (e.g., `/dashboard`, `/admin`, `/app`)
49
- - Expect: 302/307 redirect to login page OR 401
50
- - PASS if redirect target contains `/login`, `/auth`, `/sign-in`
51
- - **Step 2:** Check Supabase auth health (if project has a Supabase ref)
52
- - Query: `https://<ref>.supabase.co/auth/v1/health`
53
- - Expect: HTTP 200 with `{"status":"ok"}`
54
- - **Step 3:** Verify auth callback endpoint exists
55
- - Check: `/api/auth/callback`, `/auth/callback`
56
- - Expect: non-404 response
57
- - **PASS:** Protected route redirects correctly AND Supabase auth is healthy
58
- - **WARN:** Auth callback exists but protected route test is ambiguous
59
- - **SKIP:** No auth endpoints detected and no Supabase ref (static site)
60
- - **FAIL:** Supabase auth unhealthy, or protected route returns 500
61
-
62
- ```bash
63
- # Supabase auth health
64
- curl -s "https://${SUPABASE_REF}.supabase.co/auth/v1/health" | jq -r '.status'
65
- ```
66
-
67
- ### Check 3: Console Errors (Headless Browser)
68
-
69
- Detect client-side JavaScript errors using Playwright.
70
-
71
- - **How:** Run `scripts/check-console-errors.js` which:
72
- 1. Launches headless Chromium via Playwright
73
- 2. Navigates to the URL
74
- 3. Listens for `console.error` and `pageerror` events
75
- 4. Waits for `networkidle`
76
- 5. Returns collected errors
77
- - **PASS:** Zero console errors
78
- - **WARN:** Console errors present but all are known benign patterns (e.g., third-party tracking, browser extension noise)
79
- - **FAIL:** Any console error matching: `TypeError`, `ReferenceError`, `SyntaxError`, `ChunkLoadError`, `Unhandled`, `NEXT_`, `500`, `Internal Server Error`
80
- - **Fallback:** If Playwright unavailable, fall back to curl-based HTML inspection (check for server error strings in page source — same as the old approach, clearly marked as degraded)
81
-
82
- ```bash
83
- node ~/.claude/skills/deploy-verify/scripts/check-console-errors.js "$URL"
84
- ```
85
-
86
- ### Check 4: API Latency
87
-
88
- Measure response times against defined thresholds.
89
-
90
- - **Endpoints tested:** At minimum the root URL + one API route (auto-detected or `/api/health`)
91
- - **Thresholds:**
92
- - `< 500ms` → **PASS** (green)
93
- - `500ms – 1000ms` → **WARN** (yellow — acceptable but monitor)
94
- - `> 1000ms` → **FAIL** (red — too slow for production)
95
- - **Measurement:** `curl -w "%{time_total}"` — measures full request cycle (DNS + connect + TLS + transfer)
96
- - **Run 3 times** and report the median to avoid outliers
97
-
98
- ```bash
99
- # Measure in ms
100
- curl -sL -o /dev/null -w "%{time_total}" --max-time 15 "$URL" | awk '{printf "%.0f", $1 * 1000}'
101
- ```
102
-
103
- ### Check 5: Database Connectivity (NEW)
104
-
105
- Verify Supabase is reachable and responding.
106
-
107
- - **Requires:** Supabase ref from qualia-context.md
108
- - **Method:** Use the Supabase REST API to run a simple health query
109
- - `GET https://<ref>.supabase.co/rest/v1/?apikey=<anon_key>` — should return non-error
110
- - OR use `supabase` CLI: `supabase db execute --project-ref <ref> "SELECT 1"`
111
- - **PASS:** Query returns successfully
112
- - **WARN:** Query succeeds but latency > 500ms
113
- - **FAIL:** Connection refused, timeout, or auth error
114
- - **SKIP:** Project has no Supabase ref (static site)
115
-
116
- ```bash
117
- # CLI approach
118
- supabase db execute --project-ref "$SUPABASE_REF" "SELECT 1 AS health"
119
- ```
120
-
121
- ### Check 6: Core Web Vitals (NEW)
122
-
123
- Measure LCP, CLS, and INP using Google PageSpeed Insights API.
124
-
125
- - **Method:** Run `scripts/check-cwv.js` which calls the PageSpeed Insights API (no key needed for basic usage)
126
- - `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=<URL>&strategy=mobile`
127
- - **Metrics and thresholds** (from Google's standards):
128
- - **LCP** (Largest Contentful Paint): < 2.5s PASS, 2.5–4s WARN, > 4s FAIL
129
- - **CLS** (Cumulative Layout Shift): < 0.1 PASS, 0.1–0.25 WARN, > 0.25 FAIL
130
- - **INP** (Interaction to Next Paint): < 200ms PASS, 200–500ms WARN, > 500ms FAIL
131
- - **PASS:** All three metrics in green
132
- - **WARN:** Any metric in yellow range
133
- - **FAIL:** Any metric in red range
134
- - **Fallback:** If API is unreachable, mark as SKIP with note
135
-
136
- ```bash
137
- node ~/.claude/skills/deploy-verify/scripts/check-cwv.js "$URL"
138
- ```
139
-
140
- ### Check 7: Dependency Services (NEW)
141
-
142
- Verify external services the project depends on.
143
-
144
- - **Auto-detect dependencies** by reading the project's `.env.local` or `.env` variable names (not values):
145
- - `NEXT_PUBLIC_SUPABASE_URL` → Supabase (already checked in #5)
146
- - `VAPI_*` → VAPI API health
147
- - `OPENROUTER_*` → OpenRouter status
148
- - `ELEVEN_LABS_*` → ElevenLabs status
149
- - `RETELL_*` → Retell AI status
150
- - `STRIPE_*` → Stripe API status
151
- - `TELNYX_*` → Telnyx status
152
- - **Method:** HTTP GET to each service's known status/health endpoint
153
- - **PASS:** All detected services responding
154
- - **WARN:** A non-critical service is degraded (e.g., analytics)
155
- - **FAIL:** A critical dependency is down
156
- - **SKIP:** No external dependencies detected beyond Supabase
157
-
158
- ### Check 8: SSL Certificate (NEW)
159
-
160
- Verify TLS certificate validity.
161
-
162
- - **Method:** `openssl s_client` to inspect the certificate
163
- - **Check:** Certificate is valid, matches the domain, and has > 30 days until expiry
164
- - **PASS:** Valid cert, > 30 days remaining
165
- - **WARN:** Valid cert, 7–30 days remaining
166
- - **FAIL:** Expired, mismatched domain, or < 7 days remaining
167
-
168
- ```bash
169
- echo | openssl s_client -servername "$DOMAIN" -connect "$DOMAIN:443" 2>/dev/null | openssl x509 -noout -dates -checkend 2592000
170
- ```
171
-
172
- ## Retry Logic
173
-
174
- Applied to **every check** (not just HTTP):
175
-
176
- | Attempt | Delay Before Retry |
177
- |---------|-------------------|
178
- | 1st | Immediate |
179
- | 2nd | 5 seconds |
180
- | 3rd | 15 seconds |
181
- | Final | 30 seconds |
182
-
183
- - A check only gets status FAIL after **all retries exhausted**
184
- - Between retries, log: `⟳ Retrying <check> (attempt 2/3, waiting 15s)...`
185
- - Checks that PASS or WARN on any attempt stop retrying
186
-
187
- ## Output Format
188
-
189
- ```
190
- ══════════════════════════════════════════════════════
191
- DEPLOY VERIFICATION — projectname
192
- URL: https://project.vercel.app
193
- Timestamp: 2026-03-04 17:30:42 UTC
194
- ══════════════════════════════════════════════════════
195
-
196
- ✓ PASS HTTP Status 200 OK (142ms)
197
- ✓ PASS Auth Flow Protected /dashboard → /login redirect, Supabase auth healthy
198
- ⚠ WARN Console Errors 1 non-critical error (third-party tracking pixel)
199
- ✓ PASS API Latency Root: 287ms, /api/health: 145ms
200
- ✓ PASS DB Connectivity Supabase responding (89ms)
201
- ⚠ WARN Core Web Vitals LCP: 2.1s ✓ CLS: 0.12 ⚠ INP: 95ms ✓
202
- ✓ PASS Dependencies Stripe ✓ VAPI ✓
203
- ✓ PASS SSL Certificate Valid, expires in 68 days
204
-
205
- ──────────────────────────────────────────────────────
206
- RESULT: 6 PASS · 2 WARN · 0 FAIL
207
- Total verification time: 34.2s
208
- ──────────────────────────────────────────────────────
209
- ```
210
-
211
- - Each line shows: status icon, check name (padded), and specific detail
212
- - Timestamps in UTC
213
- - Total time measured from start to finish
214
-
215
- ## When Verification Fails
216
-
217
- ### Decision Tree
218
-
219
- ```
220
- ┌─────────────────┐
221
- │ Run 8 Checks │
222
- └────────┬────────┘
223
-
224
- ┌────────────┴────────────┐
225
- │ │
226
- All PASS/WARN Any FAIL
227
- │ │
228
- ✅ Deploy OK ┌────────┴────────┐
229
- │ │
230
- 1 FAIL only 2+ FAIL
231
- │ │
232
- Investigate & ROLLBACK
233
- fix specific immediately
234
- check │
235
- ┌─────┴──────┐
236
- │ │
237
- HTTP FAIL Other FAIL
238
- (CRITICAL) │
239
- │ vercel rollback
240
- IMMEDIATE --prod
241
- ROLLBACK │
242
- │ Re-verify
243
- vercel rollback previous
244
- --prod deployment
245
- ```
246
-
247
- ### Severity Levels
248
-
249
- - **CRITICAL** (immediate rollback): HTTP Status fails (site is down)
250
- - **HIGH** (rollback if can't fix in 10 min): Auth flow broken, DB connectivity lost
251
- - **MEDIUM** (investigate, no rollback): Console errors, high latency, SSL warning
252
- - **LOW** (monitor): CWV warnings, dependency warnings
253
-
254
- ### Rollback Procedure
255
-
256
- ```bash
257
- # 1. Rollback to previous deployment
258
- vercel rollback --prod
259
-
260
- # 2. Re-run verification on rolled-back version
261
- bash ~/.claude/skills/deploy-verify/scripts/verify.sh <URL>
262
-
263
- # 3. Investigate the failed deployment
264
- vercel inspect <deployment-url>
265
- vercel logs <deployment-url>
266
- ```
267
-
268
- ### What to Check Per Failure
269
-
270
- | Failed Check | First Step |
271
- |---------------------|------------------------------------------------------|
272
- | HTTP Status | `vercel logs <url>` — check for build/runtime errors |
273
- | Auth Flow | Check Supabase dashboard → Auth → Settings |
274
- | Console Errors | Open browser DevTools → Console, look for the error |
275
- | API Latency | `vercel logs <url>` — check for slow queries |
276
- | DB Connectivity | Supabase dashboard → Database → check if paused |
277
- | Core Web Vitals | PageSpeed Insights → check largest element, layout shifts |
278
- | Dependencies | Check service status page for the failing provider |
279
- | SSL Certificate | Vercel dashboard → Domains → check cert status |
280
-
281
- ## Scripts
282
-
283
- All helper scripts live in `~/.claude/skills/deploy-verify/scripts/`:
284
-
285
- | Script | Purpose |
286
- |---------------------------|-------------------------------------------|
287
- | `verify.sh` | Main orchestrator — runs all 8 checks |
288
- | `check-console-errors.js`| Playwright headless browser console check |
289
- | `check-cwv.js` | PageSpeed Insights API for Core Web Vitals |
290
- | `project-detect.sh` | Auto-detect project from cwd |
291
-
292
- ## Usage
293
-
294
- ```bash
295
- # Auto-detect project, run full verification
296
- bash ~/.claude/skills/deploy-verify/scripts/verify.sh <URL>
297
-
298
- # The skill is also invoked automatically by the PostToolUse hook
299
- # after any `vercel --prod` command completes
300
- ```
301
-
302
- ## Pre-Deploy Review Check
303
-
304
- Before running the 8 verification checks, read the review file:
305
-
306
- 1. Check `.planning/REVIEW.md` then `.review/REVIEW.md`
307
- 2. If found: parse frontmatter of the most recent entry
308
- - `status: has_blockers` → **WARN** with list of CRITICAL/HIGH findings. Ask user: "Deploy anyway?" or "Fix first?"
309
- - `status: clean` → Note "Pre-deploy review: clean" and continue
310
- 3. If not found → **WARN**: "No `/review` found. Consider running `/review` before deploying." (advisory only, not blocking)
311
-
312
- Recommended workflow: `/review` → fix findings → `/ship` → (auto-triggers `/deploy-verify`)
313
-
314
- ## When to Invoke
315
-
316
- - Automatically after `vercel --prod` (PostToolUse hook)
317
- - After any production deployment via `/ship`
318
- - Manually when you want to verify a live deployment
319
- - After a rollback to confirm the previous version is healthy
320
-
321
- ## Canary Monitoring (T+2min Post-Deploy)
322
-
323
- After the 8 verification checks pass, a canary check is automatically scheduled to run 120 seconds later. This catches regressions that manifest after CDN propagation and cache warming.
324
-
325
- ### What It Checks
326
-
327
- | Metric | Baseline Source | Regression Threshold |
328
- |--------|----------------|---------------------|
329
- | HTTP Status | `canary-baseline.json` | Any status change from baseline |
330
- | Console Errors | `canary-baseline.json` | Any increase over baseline count |
331
- | Page Load Time | `canary-baseline.json` | Exceeds 2x baseline time |
332
-
333
- ### Baseline Management
334
-
335
- The baseline is stored per-project at `.planning/canary-baseline.json`. It is auto-created on first deploy-verify run (captures current metrics as the known-good state).
336
-
337
- To manually update the baseline (after intentional performance changes):
338
-
339
- ```bash
340
- bash ~/.claude/skills/deploy-verify/scripts/canary-check.sh <URL> --update-baseline --project-dir /path/to/project
341
- ```
342
-
343
- ### Consecutive Failure Policy
344
-
345
- A single canary failure produces a warning but no alert. Only 2 or more consecutive failures trigger a regression flag. This prevents false alarms from transient network issues or CDN cache warming.
346
-
347
- Consecutive failure state is tracked in `/tmp/.canary-failures-<url-hash>` and resets automatically on any passing canary check.
348
-
349
- ### Canary Output
350
-
351
- ```
352
- ──────────────────────────────────────────────────────
353
- CANARY CHECK — T+2min post-deploy
354
- URL: https://project.vercel.app
355
- Baseline: 2026-03-29T12:00:00Z
356
- ──────────────────────────────────────────────────────
357
-
358
- Metric Baseline Current Status
359
- ──────────────────── ──────────── ──────────── ────────────
360
- HTTP Status 200 200 OK
361
- Console Errors 0 0 OK
362
- Load Time (ms) 287 312 OK (<574ms)
363
-
364
- CANARY PASS — All metrics within baseline thresholds
365
- ```
366
-
367
- ### Scripts
368
-
369
- | Script | Purpose |
370
- |--------|---------|
371
- | `canary-check.sh` | Canary engine — collect metrics, compare to baseline, track failures |
372
-
373
- ### When Canary Runs
374
-
375
- - Automatically: 120s after `verify.sh` completes with 0 failures (background process)
376
- - Manually: `bash ~/.claude/skills/deploy-verify/scripts/canary-check.sh <URL> --project-dir /path`
377
- - Baseline update: Add `--update-baseline` flag to capture current state as new baseline