gaia-framework 1.58.0 → 1.59.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 (521) hide show
  1. package/.claude/commands/gaia-a11y-testing.md +17 -0
  2. package/.claude/commands/gaia-action-items.md +23 -0
  3. package/.claude/commands/gaia-add-feature.md +17 -0
  4. package/.claude/commands/gaia-add-stories.md +17 -0
  5. package/.claude/commands/gaia-advanced-elicitation.md +17 -0
  6. package/.claude/commands/gaia-adversarial.md +15 -0
  7. package/.claude/commands/gaia-agent-analyst.md +14 -0
  8. package/.claude/commands/gaia-agent-architect.md +14 -0
  9. package/.claude/commands/gaia-agent-brainstorming.md +14 -0
  10. package/.claude/commands/gaia-agent-data-engineer.md +14 -0
  11. package/.claude/commands/gaia-agent-design-thinking.md +14 -0
  12. package/.claude/commands/gaia-agent-dev-angular.md +14 -0
  13. package/.claude/commands/gaia-agent-dev-flutter.md +14 -0
  14. package/.claude/commands/gaia-agent-dev-go.md +14 -0
  15. package/.claude/commands/gaia-agent-dev-java.md +14 -0
  16. package/.claude/commands/gaia-agent-dev-mobile.md +14 -0
  17. package/.claude/commands/gaia-agent-dev-python.md +14 -0
  18. package/.claude/commands/gaia-agent-dev-typescript.md +14 -0
  19. package/.claude/commands/gaia-agent-devops.md +14 -0
  20. package/.claude/commands/gaia-agent-innovation.md +14 -0
  21. package/.claude/commands/gaia-agent-performance.md +14 -0
  22. package/.claude/commands/gaia-agent-pm.md +14 -0
  23. package/.claude/commands/gaia-agent-presentation.md +14 -0
  24. package/.claude/commands/gaia-agent-problem-solver.md +14 -0
  25. package/.claude/commands/gaia-agent-qa.md +14 -0
  26. package/.claude/commands/gaia-agent-security.md +14 -0
  27. package/.claude/commands/gaia-agent-sm.md +14 -0
  28. package/.claude/commands/gaia-agent-storyteller.md +14 -0
  29. package/.claude/commands/gaia-agent-tech-writer.md +14 -0
  30. package/.claude/commands/gaia-agent-test-architect.md +14 -0
  31. package/.claude/commands/gaia-agent-ux-designer.md +14 -0
  32. package/.claude/commands/gaia-agent-validator.md +14 -0
  33. package/.claude/commands/gaia-atdd.md +17 -0
  34. package/.claude/commands/gaia-brainstorm.md +17 -0
  35. package/.claude/commands/gaia-brainstorming.md +17 -0
  36. package/.claude/commands/gaia-brownfield.md +17 -0
  37. package/.claude/commands/gaia-build-configs.md +22 -0
  38. package/.claude/commands/gaia-change-request.md +11 -0
  39. package/.claude/commands/gaia-changelog.md +16 -0
  40. package/.claude/commands/gaia-check-dod.md +17 -0
  41. package/.claude/commands/gaia-check-review-gate.md +17 -0
  42. package/.claude/commands/gaia-ci-setup.md +17 -0
  43. package/.claude/commands/gaia-code-review.md +17 -0
  44. package/.claude/commands/gaia-correct-course.md +17 -0
  45. package/.claude/commands/gaia-create-arch.md +17 -0
  46. package/.claude/commands/gaia-create-epics.md +17 -0
  47. package/.claude/commands/gaia-create-prd.md +17 -0
  48. package/.claude/commands/gaia-create-story.md +23 -0
  49. package/.claude/commands/gaia-create-ux.md +17 -0
  50. package/.claude/commands/gaia-creative-sprint.md +17 -0
  51. package/.claude/commands/gaia-deploy-checklist.md +17 -0
  52. package/.claude/commands/gaia-design-thinking.md +17 -0
  53. package/.claude/commands/gaia-dev-story.md +23 -0
  54. package/.claude/commands/gaia-document-project.md +17 -0
  55. package/.claude/commands/gaia-domain-research.md +17 -0
  56. package/.claude/commands/gaia-edge-cases.md +15 -0
  57. package/.claude/commands/gaia-edit-arch.md +17 -0
  58. package/.claude/commands/gaia-edit-prd.md +17 -0
  59. package/.claude/commands/gaia-edit-test-plan.md +17 -0
  60. package/.claude/commands/gaia-editorial-prose.md +15 -0
  61. package/.claude/commands/gaia-editorial-structure.md +15 -0
  62. package/.claude/commands/gaia-epic-status.md +17 -0
  63. package/.claude/commands/gaia-fix-story.md +17 -0
  64. package/.claude/commands/gaia-help.md +15 -0
  65. package/.claude/commands/gaia-index-docs.md +15 -0
  66. package/.claude/commands/gaia-infra-design.md +17 -0
  67. package/.claude/commands/gaia-innovation.md +17 -0
  68. package/.claude/commands/gaia-market-research.md +17 -0
  69. package/.claude/commands/gaia-memory-hygiene.md +17 -0
  70. package/.claude/commands/gaia-merge-docs.md +16 -0
  71. package/.claude/commands/gaia-mobile-testing.md +17 -0
  72. package/.claude/commands/gaia-nfr.md +17 -0
  73. package/.claude/commands/gaia-party.md +17 -0
  74. package/.claude/commands/gaia-perf-testing.md +17 -0
  75. package/.claude/commands/gaia-performance-review.md +17 -0
  76. package/.claude/commands/gaia-pitch-deck.md +17 -0
  77. package/.claude/commands/gaia-post-deploy.md +17 -0
  78. package/.claude/commands/gaia-problem-solving.md +17 -0
  79. package/.claude/commands/gaia-product-brief.md +17 -0
  80. package/.claude/commands/gaia-project-context.md +17 -0
  81. package/.claude/commands/gaia-qa-tests.md +17 -0
  82. package/.claude/commands/gaia-quick-dev.md +17 -0
  83. package/.claude/commands/gaia-quick-spec.md +17 -0
  84. package/.claude/commands/gaia-readiness-check.md +17 -0
  85. package/.claude/commands/gaia-refresh-ground-truth.md +17 -0
  86. package/.claude/commands/gaia-release-plan.md +17 -0
  87. package/.claude/commands/gaia-resume.md +25 -0
  88. package/.claude/commands/gaia-retro.md +20 -0
  89. package/.claude/commands/gaia-review-a11y.md +16 -0
  90. package/.claude/commands/gaia-review-api.md +16 -0
  91. package/.claude/commands/gaia-review-deps.md +16 -0
  92. package/.claude/commands/gaia-review-perf.md +16 -0
  93. package/.claude/commands/gaia-review-security.md +16 -0
  94. package/.claude/commands/gaia-rollback-plan.md +17 -0
  95. package/.claude/commands/gaia-run-all-reviews.md +17 -0
  96. package/.claude/commands/gaia-security-review.md +17 -0
  97. package/.claude/commands/gaia-shard-doc.md +15 -0
  98. package/.claude/commands/gaia-slide-deck.md +17 -0
  99. package/.claude/commands/gaia-sprint-plan.md +17 -0
  100. package/.claude/commands/gaia-sprint-status.md +17 -0
  101. package/.claude/commands/gaia-storytelling.md +17 -0
  102. package/.claude/commands/gaia-summarize.md +16 -0
  103. package/.claude/commands/gaia-teach-testing.md +17 -0
  104. package/.claude/commands/gaia-tech-debt-review.md +20 -0
  105. package/.claude/commands/gaia-tech-research.md +17 -0
  106. package/.claude/commands/gaia-test-automate.md +17 -0
  107. package/.claude/commands/gaia-test-design.md +17 -0
  108. package/.claude/commands/gaia-test-framework.md +17 -0
  109. package/.claude/commands/gaia-test-review.md +17 -0
  110. package/.claude/commands/gaia-threat-model.md +17 -0
  111. package/.claude/commands/gaia-trace.md +17 -0
  112. package/.claude/commands/gaia-triage-findings.md +20 -0
  113. package/.claude/commands/gaia-val-validate-plan.md +17 -0
  114. package/.claude/commands/gaia-val-validate.md +17 -0
  115. package/.claude/commands/gaia-validate-framework.md +17 -0
  116. package/.claude/commands/gaia-validate-prd.md +17 -0
  117. package/.claude/commands/gaia-validate-story.md +22 -0
  118. package/.claude/commands/gaia.md +32 -0
  119. package/CLAUDE.md +165 -0
  120. package/README.md +3 -3
  121. package/_gaia/_config/agent-manifest.csv +29 -0
  122. package/_gaia/_config/agents/CUSTOMIZATION-README.md +117 -0
  123. package/_gaia/_config/files-manifest.csv +30 -0
  124. package/_gaia/_config/gaia-help.csv +82 -0
  125. package/_gaia/_config/global.yaml +45 -0
  126. package/_gaia/_config/lifecycle-sequence.yaml +623 -0
  127. package/_gaia/_config/manifest.yaml +24 -0
  128. package/_gaia/_config/skill-manifest.csv +12 -0
  129. package/_gaia/_config/task-manifest.csv +17 -0
  130. package/_gaia/_config/workflow-manifest.csv +73 -0
  131. package/_gaia/_memory/tier2-results/.gitkeep +0 -0
  132. package/_gaia/_memory/tier2-results/checkpoint-resume-2026-03-24.yaml +6 -0
  133. package/_gaia/_memory/tier2-results/engine-scenarios-2026-03-22.yaml +14 -0
  134. package/_gaia/core/.resolved/.gitkeep +0 -0
  135. package/_gaia/core/agents/orchestrator.md +303 -0
  136. package/_gaia/core/config.yaml +8 -0
  137. package/_gaia/core/engine/error-recovery.xml +28 -0
  138. package/_gaia/core/engine/protocols/discover-inputs.xml +31 -0
  139. package/_gaia/core/engine/protocols/handoff.xml +21 -0
  140. package/_gaia/core/engine/protocols/preflight-check.xml +31 -0
  141. package/_gaia/core/engine/task-runner.xml +63 -0
  142. package/_gaia/core/engine/workflow.xml +234 -0
  143. package/_gaia/core/module-help.csv +21 -0
  144. package/_gaia/core/protocols/agent-specification-protocol.md +103 -0
  145. package/_gaia/core/protocols/review-gate-check.xml +29 -0
  146. package/_gaia/core/protocols/sprint-status-write-safety.xml +35 -0
  147. package/_gaia/core/protocols/status-sync.xml +49 -0
  148. package/_gaia/core/tasks/editorial-review-prose.xml +42 -0
  149. package/_gaia/core/tasks/editorial-review-structure.xml +43 -0
  150. package/_gaia/core/tasks/generate-changelog.xml +35 -0
  151. package/_gaia/core/tasks/help.md +45 -0
  152. package/_gaia/core/tasks/index-docs.xml +46 -0
  153. package/_gaia/core/tasks/merge-docs.xml +34 -0
  154. package/_gaia/core/tasks/review-accessibility.xml +47 -0
  155. package/_gaia/core/tasks/review-adversarial.xml +55 -0
  156. package/_gaia/core/tasks/review-api-design.xml +38 -0
  157. package/_gaia/core/tasks/review-dependency-audit.xml +38 -0
  158. package/_gaia/core/tasks/review-edge-case-hunter.xml +52 -0
  159. package/_gaia/core/tasks/review-performance.xml +49 -0
  160. package/_gaia/core/tasks/review-security.xml +37 -0
  161. package/_gaia/core/tasks/shard-doc.xml +49 -0
  162. package/_gaia/core/tasks/summarize-doc.xml +33 -0
  163. package/_gaia/core/tasks/validate-framework.xml +66 -0
  164. package/_gaia/core/workflows/brainstorming/steps/step-01-session-setup.md +7 -0
  165. package/_gaia/core/workflows/brainstorming/steps/step-02-technique-selection.md +20 -0
  166. package/_gaia/core/workflows/brainstorming/steps/step-03-technique-execution.md +11 -0
  167. package/_gaia/core/workflows/brainstorming/steps/step-04-idea-organization.md +14 -0
  168. package/_gaia/core/workflows/brainstorming/template.md +38 -0
  169. package/_gaia/core/workflows/brainstorming/workflow.yaml +26 -0
  170. package/_gaia/core/workflows/party-mode/steps/step-01-agent-loading.md +11 -0
  171. package/_gaia/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +16 -0
  172. package/_gaia/core/workflows/party-mode/steps/step-03-graceful-exit.md +10 -0
  173. package/_gaia/core/workflows/party-mode/workflow.yaml +23 -0
  174. package/_gaia/creative/.resolved/.gitkeep +0 -0
  175. package/_gaia/creative/agents/brainstorming-coach.md +93 -0
  176. package/_gaia/creative/agents/design-thinking-coach.md +91 -0
  177. package/_gaia/creative/agents/innovation-strategist.md +89 -0
  178. package/_gaia/creative/agents/presentation-designer.md +99 -0
  179. package/_gaia/creative/agents/problem-solver.md +90 -0
  180. package/_gaia/creative/agents/storyteller.md +90 -0
  181. package/_gaia/creative/config.yaml +8 -0
  182. package/_gaia/creative/data/design-methods.csv +28 -0
  183. package/_gaia/creative/data/innovation-frameworks.csv +15 -0
  184. package/_gaia/creative/data/solving-methods.csv +14 -0
  185. package/_gaia/creative/data/story-types.csv +12 -0
  186. package/_gaia/creative/module-help.csv +8 -0
  187. package/_gaia/creative/teams/creative-squad.yaml +10 -0
  188. package/_gaia/creative/workflows/creative-sprint/checklist.md +10 -0
  189. package/_gaia/creative/workflows/creative-sprint/instructions.xml +40 -0
  190. package/_gaia/creative/workflows/creative-sprint/workflow.yaml +11 -0
  191. package/_gaia/creative/workflows/design-thinking/checklist.md +25 -0
  192. package/_gaia/creative/workflows/design-thinking/instructions.xml +38 -0
  193. package/_gaia/creative/workflows/design-thinking/workflow.yaml +13 -0
  194. package/_gaia/creative/workflows/innovation-strategy/checklist.md +26 -0
  195. package/_gaia/creative/workflows/innovation-strategy/instructions.xml +34 -0
  196. package/_gaia/creative/workflows/innovation-strategy/workflow.yaml +13 -0
  197. package/_gaia/creative/workflows/pitch-deck/checklist.md +22 -0
  198. package/_gaia/creative/workflows/pitch-deck/instructions.xml +49 -0
  199. package/_gaia/creative/workflows/pitch-deck/workflow.yaml +15 -0
  200. package/_gaia/creative/workflows/problem-solving/checklist.md +26 -0
  201. package/_gaia/creative/workflows/problem-solving/instructions.xml +39 -0
  202. package/_gaia/creative/workflows/problem-solving/workflow.yaml +13 -0
  203. package/_gaia/creative/workflows/slide-deck/checklist.md +21 -0
  204. package/_gaia/creative/workflows/slide-deck/instructions.xml +39 -0
  205. package/_gaia/creative/workflows/slide-deck/workflow.yaml +15 -0
  206. package/_gaia/creative/workflows/storytelling/checklist.md +26 -0
  207. package/_gaia/creative/workflows/storytelling/instructions.xml +38 -0
  208. package/_gaia/creative/workflows/storytelling/workflow.yaml +13 -0
  209. package/_gaia/dev/agents/_base-dev.md +180 -0
  210. package/_gaia/dev/agents/angular-dev.md +70 -0
  211. package/_gaia/dev/agents/flutter-dev.md +70 -0
  212. package/_gaia/dev/agents/go-dev.md +72 -0
  213. package/_gaia/dev/agents/java-dev.md +70 -0
  214. package/_gaia/dev/agents/mobile-dev.md +70 -0
  215. package/_gaia/dev/agents/python-dev.md +70 -0
  216. package/_gaia/dev/agents/typescript-dev.md +70 -0
  217. package/_gaia/dev/config.yaml +11 -0
  218. package/_gaia/dev/knowledge/_index.csv +25 -0
  219. package/_gaia/dev/knowledge/angular/angular-conventions.md +119 -0
  220. package/_gaia/dev/knowledge/angular/angular-patterns.md +126 -0
  221. package/_gaia/dev/knowledge/angular/ngrx-state.md +124 -0
  222. package/_gaia/dev/knowledge/angular/rxjs-patterns.md +119 -0
  223. package/_gaia/dev/knowledge/flutter/dart-conventions.md +143 -0
  224. package/_gaia/dev/knowledge/flutter/platform-channels.md +144 -0
  225. package/_gaia/dev/knowledge/flutter/state-management.md +144 -0
  226. package/_gaia/dev/knowledge/flutter/widget-patterns.md +134 -0
  227. package/_gaia/dev/knowledge/go/gin-fiber-patterns.md +40 -0
  228. package/_gaia/dev/knowledge/go/go-conventions.md +54 -0
  229. package/_gaia/dev/knowledge/go/go-stdlib-patterns.md +39 -0
  230. package/_gaia/dev/knowledge/go/go-testing-patterns.md +39 -0
  231. package/_gaia/dev/knowledge/java/jpa-patterns.md +136 -0
  232. package/_gaia/dev/knowledge/java/maven-gradle.md +189 -0
  233. package/_gaia/dev/knowledge/java/microservices.md +159 -0
  234. package/_gaia/dev/knowledge/java/spring-boot-patterns.md +160 -0
  235. package/_gaia/dev/knowledge/mobile/kotlin-patterns.md +193 -0
  236. package/_gaia/dev/knowledge/mobile/mobile-testing.md +186 -0
  237. package/_gaia/dev/knowledge/mobile/react-native-patterns.md +162 -0
  238. package/_gaia/dev/knowledge/mobile/swift-patterns.md +190 -0
  239. package/_gaia/dev/knowledge/python/data-pipelines.md +169 -0
  240. package/_gaia/dev/knowledge/python/django-patterns.md +145 -0
  241. package/_gaia/dev/knowledge/python/fastapi-patterns.md +164 -0
  242. package/_gaia/dev/knowledge/python/python-conventions.md +170 -0
  243. package/_gaia/dev/knowledge/typescript/express-patterns.md +188 -0
  244. package/_gaia/dev/knowledge/typescript/nextjs-patterns.md +166 -0
  245. package/_gaia/dev/knowledge/typescript/react-patterns.md +176 -0
  246. package/_gaia/dev/knowledge/typescript/ts-conventions.md +133 -0
  247. package/_gaia/dev/module-help.csv +10 -0
  248. package/_gaia/dev/skills/_skill-index.yaml +55 -0
  249. package/_gaia/dev/skills/api-design.md +229 -0
  250. package/_gaia/dev/skills/code-review-standards.md +226 -0
  251. package/_gaia/dev/skills/database-design.md +172 -0
  252. package/_gaia/dev/skills/docker-workflow.md +222 -0
  253. package/_gaia/dev/skills/documentation-standards.md +256 -0
  254. package/_gaia/dev/skills/git-workflow.md +157 -0
  255. package/_gaia/dev/skills/security-basics.md +230 -0
  256. package/_gaia/dev/skills/testing-patterns.md +232 -0
  257. package/_gaia/lifecycle/.resolved/.gitkeep +0 -0
  258. package/_gaia/lifecycle/agents/analyst.md +104 -0
  259. package/_gaia/lifecycle/agents/architect.md +109 -0
  260. package/_gaia/lifecycle/agents/data-engineer.md +99 -0
  261. package/_gaia/lifecycle/agents/devops.md +110 -0
  262. package/_gaia/lifecycle/agents/performance.md +92 -0
  263. package/_gaia/lifecycle/agents/pm.md +112 -0
  264. package/_gaia/lifecycle/agents/qa.md +89 -0
  265. package/_gaia/lifecycle/agents/security.md +108 -0
  266. package/_gaia/lifecycle/agents/sm.md +119 -0
  267. package/_gaia/lifecycle/agents/tech-writer.md +94 -0
  268. package/_gaia/lifecycle/agents/ux-designer.md +94 -0
  269. package/_gaia/lifecycle/agents/validator.md +189 -0
  270. package/_gaia/lifecycle/config.yaml +14 -0
  271. package/_gaia/lifecycle/module-help.csv +39 -0
  272. package/_gaia/lifecycle/skills/ground-truth-management.md +252 -0
  273. package/_gaia/lifecycle/skills/memory-management.md +322 -0
  274. package/_gaia/lifecycle/skills/validation-patterns.md +230 -0
  275. package/_gaia/lifecycle/teams/team-data-intensive.yaml +12 -0
  276. package/_gaia/lifecycle/teams/team-enterprise.yaml +16 -0
  277. package/_gaia/lifecycle/teams/team-full.yaml +13 -0
  278. package/_gaia/lifecycle/teams/team-implementation.yaml +8 -0
  279. package/_gaia/lifecycle/teams/team-planning.yaml +9 -0
  280. package/_gaia/lifecycle/teams/team-quick-ship.yaml +6 -0
  281. package/_gaia/lifecycle/teams/team-security-focused.yaml +13 -0
  282. package/_gaia/lifecycle/templates/api-documentation-template.md +112 -0
  283. package/_gaia/lifecycle/templates/architecture-template.md +65 -0
  284. package/_gaia/lifecycle/templates/brownfield-architecture-template.md +198 -0
  285. package/_gaia/lifecycle/templates/brownfield-assessment-template.md +78 -0
  286. package/_gaia/lifecycle/templates/brownfield-onboarding-template.md +160 -0
  287. package/_gaia/lifecycle/templates/dependency-map-template.md +73 -0
  288. package/_gaia/lifecycle/templates/deployment-template.md +52 -0
  289. package/_gaia/lifecycle/templates/epic-status-template.md +64 -0
  290. package/_gaia/lifecycle/templates/event-catalog-template.md +78 -0
  291. package/_gaia/lifecycle/templates/nfr-assessment-template.md +96 -0
  292. package/_gaia/lifecycle/templates/prd-template.md +83 -0
  293. package/_gaia/lifecycle/templates/product-brief-template.md +48 -0
  294. package/_gaia/lifecycle/templates/review-template.md +47 -0
  295. package/_gaia/lifecycle/templates/sprint-plan-template.md +45 -0
  296. package/_gaia/lifecycle/templates/story-template.md +118 -0
  297. package/_gaia/lifecycle/templates/tech-debt-dashboard-template.md +71 -0
  298. package/_gaia/lifecycle/templates/test-plan-template.md +56 -0
  299. package/_gaia/lifecycle/templates/ux-design-assessment-template.md +122 -0
  300. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/instructions.xml +44 -0
  301. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/methods.csv +9 -0
  302. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/workflow.yaml +33 -0
  303. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/checklist.md +24 -0
  304. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/instructions.xml +39 -0
  305. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/workflow.yaml +19 -0
  306. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/checklist.md +27 -0
  307. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/instructions.xml +57 -0
  308. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/workflow.yaml +38 -0
  309. package/_gaia/lifecycle/workflows/1-analysis/domain-research/checklist.md +22 -0
  310. package/_gaia/lifecycle/workflows/1-analysis/domain-research/instructions.xml +34 -0
  311. package/_gaia/lifecycle/workflows/1-analysis/domain-research/workflow.yaml +15 -0
  312. package/_gaia/lifecycle/workflows/1-analysis/market-research/checklist.md +28 -0
  313. package/_gaia/lifecycle/workflows/1-analysis/market-research/instructions.xml +42 -0
  314. package/_gaia/lifecycle/workflows/1-analysis/market-research/workflow.yaml +15 -0
  315. package/_gaia/lifecycle/workflows/1-analysis/technical-research/checklist.md +22 -0
  316. package/_gaia/lifecycle/workflows/1-analysis/technical-research/instructions.xml +34 -0
  317. package/_gaia/lifecycle/workflows/1-analysis/technical-research/workflow.yaml +15 -0
  318. package/_gaia/lifecycle/workflows/2-planning/create-prd/checklist.md +36 -0
  319. package/_gaia/lifecycle/workflows/2-planning/create-prd/instructions.xml +80 -0
  320. package/_gaia/lifecycle/workflows/2-planning/create-prd/workflow.yaml +23 -0
  321. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/checklist.md +26 -0
  322. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/instructions.xml +49 -0
  323. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/workflow.yaml +23 -0
  324. package/_gaia/lifecycle/workflows/2-planning/edit-prd/checklist.md +17 -0
  325. package/_gaia/lifecycle/workflows/2-planning/edit-prd/instructions.xml +50 -0
  326. package/_gaia/lifecycle/workflows/2-planning/edit-prd/workflow.yaml +22 -0
  327. package/_gaia/lifecycle/workflows/2-planning/validate-prd/checklist.md +12 -0
  328. package/_gaia/lifecycle/workflows/2-planning/validate-prd/instructions.xml +52 -0
  329. package/_gaia/lifecycle/workflows/2-planning/validate-prd/workflow.yaml +19 -0
  330. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/checklist.md +32 -0
  331. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/instructions.xml +100 -0
  332. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/workflow.yaml +41 -0
  333. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/checklist.md +30 -0
  334. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/instructions.xml +86 -0
  335. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/workflow.yaml +34 -0
  336. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/checklist.md +24 -0
  337. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/instructions.xml +91 -0
  338. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/workflow.yaml +32 -0
  339. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/checklist.md +66 -0
  340. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/instructions.xml +160 -0
  341. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/workflow.yaml +48 -0
  342. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/checklist.md +24 -0
  343. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/instructions.xml +44 -0
  344. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/workflow.yaml +23 -0
  345. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/checklist.md +24 -0
  346. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/instructions.xml +55 -0
  347. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/workflow.yaml +23 -0
  348. package/_gaia/lifecycle/workflows/4-implementation/action-items/instructions.xml +131 -0
  349. package/_gaia/lifecycle/workflows/4-implementation/action-items/workflow.yaml +19 -0
  350. package/_gaia/lifecycle/workflows/4-implementation/add-stories/checklist.md +27 -0
  351. package/_gaia/lifecycle/workflows/4-implementation/add-stories/instructions.xml +100 -0
  352. package/_gaia/lifecycle/workflows/4-implementation/add-stories/workflow.yaml +35 -0
  353. package/_gaia/lifecycle/workflows/4-implementation/change-request/checklist.md +25 -0
  354. package/_gaia/lifecycle/workflows/4-implementation/change-request/instructions.xml +123 -0
  355. package/_gaia/lifecycle/workflows/4-implementation/change-request/workflow.yaml +38 -0
  356. package/_gaia/lifecycle/workflows/4-implementation/check-dod/checklist.md +18 -0
  357. package/_gaia/lifecycle/workflows/4-implementation/check-dod/instructions.xml +54 -0
  358. package/_gaia/lifecycle/workflows/4-implementation/check-dod/workflow.yaml +19 -0
  359. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/checklist.md +18 -0
  360. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/instructions.xml +53 -0
  361. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/workflow.yaml +19 -0
  362. package/_gaia/lifecycle/workflows/4-implementation/code-review/checklist.md +18 -0
  363. package/_gaia/lifecycle/workflows/4-implementation/code-review/instructions.xml +50 -0
  364. package/_gaia/lifecycle/workflows/4-implementation/code-review/workflow.yaml +24 -0
  365. package/_gaia/lifecycle/workflows/4-implementation/correct-course/checklist.md +21 -0
  366. package/_gaia/lifecycle/workflows/4-implementation/correct-course/instructions.xml +63 -0
  367. package/_gaia/lifecycle/workflows/4-implementation/correct-course/workflow.yaml +25 -0
  368. package/_gaia/lifecycle/workflows/4-implementation/create-story/checklist.md +38 -0
  369. package/_gaia/lifecycle/workflows/4-implementation/create-story/instructions.xml +194 -0
  370. package/_gaia/lifecycle/workflows/4-implementation/create-story/workflow.yaml +26 -0
  371. package/_gaia/lifecycle/workflows/4-implementation/dev-story/checklist.md +26 -0
  372. package/_gaia/lifecycle/workflows/4-implementation/dev-story/instructions.xml +268 -0
  373. package/_gaia/lifecycle/workflows/4-implementation/dev-story/workflow.yaml +51 -0
  374. package/_gaia/lifecycle/workflows/4-implementation/epic-status/checklist.md +25 -0
  375. package/_gaia/lifecycle/workflows/4-implementation/epic-status/instructions.xml +62 -0
  376. package/_gaia/lifecycle/workflows/4-implementation/epic-status/workflow.yaml +24 -0
  377. package/_gaia/lifecycle/workflows/4-implementation/fix-story/checklist.md +12 -0
  378. package/_gaia/lifecycle/workflows/4-implementation/fix-story/instructions.xml +67 -0
  379. package/_gaia/lifecycle/workflows/4-implementation/fix-story/workflow.yaml +17 -0
  380. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/checklist.md +19 -0
  381. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/instructions.xml +52 -0
  382. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/workflow.yaml +20 -0
  383. package/_gaia/lifecycle/workflows/4-implementation/retrospective/checklist.md +15 -0
  384. package/_gaia/lifecycle/workflows/4-implementation/retrospective/instructions.xml +164 -0
  385. package/_gaia/lifecycle/workflows/4-implementation/retrospective/workflow.yaml +30 -0
  386. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/checklist.md +14 -0
  387. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/instructions.xml +78 -0
  388. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/workflow.yaml +16 -0
  389. package/_gaia/lifecycle/workflows/4-implementation/security-review/checklist.md +29 -0
  390. package/_gaia/lifecycle/workflows/4-implementation/security-review/instructions.xml +80 -0
  391. package/_gaia/lifecycle/workflows/4-implementation/security-review/workflow.yaml +27 -0
  392. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/checklist.md +29 -0
  393. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/instructions.xml +140 -0
  394. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/workflow.yaml +33 -0
  395. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/checklist.md +18 -0
  396. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/instructions.xml +36 -0
  397. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/workflow.yaml +19 -0
  398. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/checklist.md +30 -0
  399. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/instructions.xml +147 -0
  400. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/workflow.yaml +24 -0
  401. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/checklist.md +17 -0
  402. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/instructions.xml +124 -0
  403. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/workflow.yaml +15 -0
  404. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/checklist.md +48 -0
  405. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/instructions.xml +125 -0
  406. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/workflow.yaml +31 -0
  407. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/checklist.md +54 -0
  408. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/instructions.xml +147 -0
  409. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/test-structure.sh +116 -0
  410. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/workflow.yaml +29 -0
  411. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/checklist.md +34 -0
  412. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/instructions.xml +162 -0
  413. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/workflow.yaml +39 -0
  414. package/_gaia/lifecycle/workflows/4-implementation/validate-story/checklist.md +23 -0
  415. package/_gaia/lifecycle/workflows/4-implementation/validate-story/instructions.xml +146 -0
  416. package/_gaia/lifecycle/workflows/4-implementation/validate-story/workflow.yaml +25 -0
  417. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/checklist.md +29 -0
  418. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/instructions.xml +59 -0
  419. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/workflow.yaml +39 -0
  420. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/checklist.md +19 -0
  421. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/instructions.xml +33 -0
  422. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/workflow.yaml +15 -0
  423. package/_gaia/lifecycle/workflows/5-deployment/release-plan/checklist.md +20 -0
  424. package/_gaia/lifecycle/workflows/5-deployment/release-plan/instructions.xml +33 -0
  425. package/_gaia/lifecycle/workflows/5-deployment/release-plan/workflow.yaml +19 -0
  426. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/checklist.md +20 -0
  427. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/instructions.xml +33 -0
  428. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/workflow.yaml +15 -0
  429. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/checklist.md +52 -0
  430. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/instructions.xml +122 -0
  431. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/test-step7.sh +149 -0
  432. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/workflow.yaml +33 -0
  433. package/_gaia/lifecycle/workflows/anytime/document-project/checklist.md +11 -0
  434. package/_gaia/lifecycle/workflows/anytime/document-project/instructions.xml +26 -0
  435. package/_gaia/lifecycle/workflows/anytime/document-project/workflow.yaml +15 -0
  436. package/_gaia/lifecycle/workflows/anytime/generate-project-context/checklist.md +11 -0
  437. package/_gaia/lifecycle/workflows/anytime/generate-project-context/instructions.xml +22 -0
  438. package/_gaia/lifecycle/workflows/anytime/generate-project-context/workflow.yaml +15 -0
  439. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/checklist.md +66 -0
  440. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/instructions.xml +206 -0
  441. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/workflow.yaml +15 -0
  442. package/_gaia/lifecycle/workflows/anytime/performance-review/checklist.md +25 -0
  443. package/_gaia/lifecycle/workflows/anytime/performance-review/instructions.xml +62 -0
  444. package/_gaia/lifecycle/workflows/anytime/performance-review/workflow.yaml +15 -0
  445. package/_gaia/lifecycle/workflows/cross-phase/add-feature/checklist.md +30 -0
  446. package/_gaia/lifecycle/workflows/cross-phase/add-feature/instructions.xml +85 -0
  447. package/_gaia/lifecycle/workflows/cross-phase/add-feature/workflow.yaml +37 -0
  448. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/checklist.md +11 -0
  449. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/instructions.xml +26 -0
  450. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/workflow.yaml +19 -0
  451. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/checklist.md +13 -0
  452. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/instructions.xml +27 -0
  453. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/workflow.yaml +15 -0
  454. package/_gaia/testing/.resolved/.gitkeep +0 -0
  455. package/_gaia/testing/agents/test-architect.md +131 -0
  456. package/_gaia/testing/config.yaml +8 -0
  457. package/_gaia/testing/knowledge/_index.csv +22 -0
  458. package/_gaia/testing/knowledge/accessibility/axe-core-patterns.md +177 -0
  459. package/_gaia/testing/knowledge/accessibility/wcag-checks.md +191 -0
  460. package/_gaia/testing/knowledge/core/deterministic-testing.md +167 -0
  461. package/_gaia/testing/knowledge/core/fixture-architecture.md +131 -0
  462. package/_gaia/testing/knowledge/core/test-isolation.md +142 -0
  463. package/_gaia/testing/knowledge/core/test-pyramid.md +129 -0
  464. package/_gaia/testing/knowledge/extended/api-testing-patterns.md +196 -0
  465. package/_gaia/testing/knowledge/extended/data-factories.md +158 -0
  466. package/_gaia/testing/knowledge/extended/risk-governance.md +119 -0
  467. package/_gaia/testing/knowledge/extended/selector-resilience.md +109 -0
  468. package/_gaia/testing/knowledge/mobile-testing/appium-patterns.md +164 -0
  469. package/_gaia/testing/knowledge/mobile-testing/react-native-testing.md +193 -0
  470. package/_gaia/testing/knowledge/mobile-testing/responsive-testing.md +177 -0
  471. package/_gaia/testing/knowledge/performance/k6-patterns.md +200 -0
  472. package/_gaia/testing/knowledge/performance/lighthouse-ci.md +158 -0
  473. package/_gaia/testing/knowledge/specialized/contract-testing.md +173 -0
  474. package/_gaia/testing/knowledge/specialized/test-healing.md +129 -0
  475. package/_gaia/testing/knowledge/specialized/visual-testing.md +129 -0
  476. package/_gaia/testing/knowledge/unit-testing/jest-vitest-patterns.md +193 -0
  477. package/_gaia/testing/knowledge/unit-testing/junit5-patterns.md +200 -0
  478. package/_gaia/testing/knowledge/unit-testing/pytest-patterns.md +185 -0
  479. package/_gaia/testing/module-help.csv +13 -0
  480. package/_gaia/testing/workflows/accessibility-testing/checklist.md +12 -0
  481. package/_gaia/testing/workflows/accessibility-testing/instructions.xml +41 -0
  482. package/_gaia/testing/workflows/accessibility-testing/workflow.yaml +13 -0
  483. package/_gaia/testing/workflows/atdd/checklist.md +6 -0
  484. package/_gaia/testing/workflows/atdd/instructions.xml +36 -0
  485. package/_gaia/testing/workflows/atdd/workflow.yaml +22 -0
  486. package/_gaia/testing/workflows/ci-setup/checklist.md +9 -0
  487. package/_gaia/testing/workflows/ci-setup/instructions.xml +43 -0
  488. package/_gaia/testing/workflows/ci-setup/workflow.yaml +11 -0
  489. package/_gaia/testing/workflows/edit-test-plan/checklist.md +20 -0
  490. package/_gaia/testing/workflows/edit-test-plan/instructions.xml +65 -0
  491. package/_gaia/testing/workflows/edit-test-plan/workflow.yaml +35 -0
  492. package/_gaia/testing/workflows/mobile-testing/checklist.md +13 -0
  493. package/_gaia/testing/workflows/mobile-testing/instructions.xml +41 -0
  494. package/_gaia/testing/workflows/mobile-testing/workflow.yaml +11 -0
  495. package/_gaia/testing/workflows/nfr-assessment/checklist.md +7 -0
  496. package/_gaia/testing/workflows/nfr-assessment/instructions.xml +26 -0
  497. package/_gaia/testing/workflows/nfr-assessment/workflow.yaml +11 -0
  498. package/_gaia/testing/workflows/performance-testing/checklist.md +11 -0
  499. package/_gaia/testing/workflows/performance-testing/instructions.xml +41 -0
  500. package/_gaia/testing/workflows/performance-testing/workflow.yaml +11 -0
  501. package/_gaia/testing/workflows/teach-me-testing/checklist.md +6 -0
  502. package/_gaia/testing/workflows/teach-me-testing/instructions.xml +28 -0
  503. package/_gaia/testing/workflows/teach-me-testing/workflow.yaml +12 -0
  504. package/_gaia/testing/workflows/test-automation/checklist.md +6 -0
  505. package/_gaia/testing/workflows/test-automation/instructions.xml +49 -0
  506. package/_gaia/testing/workflows/test-automation/workflow.yaml +11 -0
  507. package/_gaia/testing/workflows/test-design/checklist.md +9 -0
  508. package/_gaia/testing/workflows/test-design/instructions.xml +47 -0
  509. package/_gaia/testing/workflows/test-design/workflow.yaml +11 -0
  510. package/_gaia/testing/workflows/test-framework/checklist.md +8 -0
  511. package/_gaia/testing/workflows/test-framework/instructions.xml +25 -0
  512. package/_gaia/testing/workflows/test-framework/workflow.yaml +11 -0
  513. package/_gaia/testing/workflows/test-review/checklist.md +9 -0
  514. package/_gaia/testing/workflows/test-review/instructions.xml +51 -0
  515. package/_gaia/testing/workflows/test-review/workflow.yaml +11 -0
  516. package/_gaia/testing/workflows/traceability/checklist.md +6 -0
  517. package/_gaia/testing/workflows/traceability/instructions.xml +49 -0
  518. package/_gaia/testing/workflows/traceability/workflow.yaml +21 -0
  519. package/bin/gaia-framework.js +58 -20
  520. package/gaia-install.sh +1 -1
  521. package/package.json +21 -7
@@ -0,0 +1,49 @@
1
+ <workflow name="test-automation">
2
+ <critical>
3
+ <mandate>Identify coverage gaps before writing new tests</mandate>
4
+ <mandate>Load unit testing knowledge for the project stack</mandate>
5
+ <mandate>Story must be in review status before test automation</mandate>
6
+ <mandate>Output must include machine-readable PASSED or FAILED verdict</mandate>
7
+ <mandate>When reading or running application source code, use {project-path} as the base directory — NOT {project-root}. {project-path} is resolved by the engine from global.yaml.</mandate>
8
+ </critical>
9
+ <step n="1" title="Load Story and Code">
10
+ <action>Resolve story file: search for {story_key}-*.md in {implementation_artifacts}/ using glob pattern to match the full filename ({story_key}-{title_slug}.md)</action>
11
+ <action>Read story file, identify files changed and acceptance criteria</action>
12
+ <action>Read implemented code files</action>
13
+ </step>
14
+ <step n="2" title="Status Gate">
15
+ <action>Verify story is in 'review' status</action>
16
+ <check if="status != review">HALT: Story must be in review status before test automation</check>
17
+ </step>
18
+ <step n="3" title="Identify Coverage Gaps">
19
+ <action>Analyze existing tests vs code paths</action>
20
+ </step>
21
+ <step n="4" title="Load Knowledge">
22
+ <action>Load unit test patterns for the project's stack from {knowledge_path}/</action>
23
+ </step>
24
+ <step n="5" title="Generate Tests">
25
+ <action>Write tests for uncovered code paths</action>
26
+ <action>Follow AAA pattern and naming conventions</action>
27
+ </step>
28
+ <step n="6" title="Run and Validate">
29
+ <action>Execute tests, verify they pass and cover intended paths</action>
30
+ <action>If ALL tests pass: verdict is PASSED</action>
31
+ <action>If ANY test fails: verdict is FAILED — list failing tests with reasons</action>
32
+ </step>
33
+ <step n="7" title="Generate Report">
34
+ <action>Generate automation report with coverage gaps filled and test results</action>
35
+ <template-output file="{test_artifacts}/{story_key}-test-automation.md">
36
+ Generate automation report with coverage gaps filled, test results, and machine-readable verdict (PASSED/FAILED).
37
+ </template-output>
38
+ </step>
39
+ <step n="8" title="Update Review Gate and Transition">
40
+ <action>Read story file, locate Review Gate table</action>
41
+ <action>If PASSED: update Test Automation row status to PASSED, link report file</action>
42
+ <action>If FAILED: update Test Automation row status to FAILED, link report file. Do NOT change story status — the review-gate-check protocol or run-all-reviews orchestrator handles status transitions.</action>
43
+ <template-output file="{implementation_artifacts}/{story_key}-*.md">
44
+ Update story file Review Gate table with test automation result and report link.
45
+ </template-output>
46
+ <action>Inform user: "Note: sprint-status.yaml may now be out of sync. Run /gaia-sprint-status to reconcile."</action>
47
+ <invoke-protocol name="review-gate-check" file="{project-root}/_gaia/core/protocols/review-gate-check.xml" />
48
+ </step>
49
+ </workflow>
@@ -0,0 +1,11 @@
1
+ name: test-automation
2
+ description: 'Expand test automation coverage for codebase'
3
+ module: testing
4
+ agent: test-architect
5
+ config_resolved: "{installed_path}/.resolved/test-automation.yaml"
6
+ config_source: "{project-root}/_gaia/testing/config.yaml"
7
+ installed_path: "{project-root}/_gaia/testing/workflows/test-automation"
8
+ instructions: "{installed_path}/instructions.xml"
9
+ validation: "{installed_path}/checklist.md"
10
+ output:
11
+ primary: "{test_artifacts}/{story_key}-test-automation.md"
@@ -0,0 +1,9 @@
1
+ # Test Design Checklist
2
+ - [ ] Project context loaded and understood
3
+ - [ ] Risk assessment completed with probability × impact ratings
4
+ - [ ] Test levels defined per component
5
+ - [ ] Test pyramid applied appropriately
6
+ - [ ] Legacy integration boundaries identified and tested (if brownfield)
7
+ - [ ] Data migration validation tests defined (if applicable)
8
+ - [ ] Coverage targets defined
9
+ - [ ] Quality gates specified for CI
@@ -0,0 +1,47 @@
1
+ <workflow name="test-design">
2
+ <critical>
3
+ <mandate>Start with risk assessment — not all areas need equal coverage</mandate>
4
+ <mandate>Define quality gates for CI pipeline</mandate>
5
+ </critical>
6
+ <step n="1" title="Load Project Context">
7
+ <action>Read architecture doc, PRD, or project-context.md</action>
8
+ <action>Understand system components and their interactions</action>
9
+ </step>
10
+ <step n="2" title="Risk Assessment">
11
+ <action>Identify high-risk areas: revenue-critical, security-sensitive, complex logic</action>
12
+ <action>Rate each area: probability × impact</action>
13
+ </step>
14
+ <step n="3" title="Legacy Integration Boundaries (Brownfield)" optional="true">
15
+ <action>If PRD contains "Mode: Brownfield" or project has brownfield-assessment.md: activate this step</action>
16
+ <action>Identify integration boundaries: where new code calls legacy code and vice versa</action>
17
+ <action>For each boundary: define contract test (input/output schema validation between old and new)</action>
18
+ <action>For each legacy API wrapper or adapter: define adapter test (legacy behavior preserved)</action>
19
+ <action>If data migration exists: define migration validation tests (row counts, data integrity, rollback verification)</action>
20
+ <action>If dual-write strategy: define consistency tests (both stores reflect same state)</action>
21
+ <action>Add legacy boundary risks to risk assessment from step 2</action>
22
+ </step>
23
+ <step n="4" title="Test Strategy">
24
+ <action>Define test levels per component: unit, integration, E2E, contract</action>
25
+ <action>Apply test pyramid — most tests at lowest effective level</action>
26
+ </step>
27
+ <step n="5" title="Test Plan">
28
+ <action>Create test plan with coverage targets per component</action>
29
+ <action>Define test naming conventions and organization</action>
30
+ </step>
31
+ <step n="6" title="Quality Gates">
32
+ <action>Define automated gates: coverage %, pass rate, performance budgets</action>
33
+ </step>
34
+ <step n="7" title="Generate Output">
35
+ <action>Compile test plan with risk assessment, strategy, and quality gates</action>
36
+ <template-output file="{test_artifacts}/test-plan.md" />
37
+ </step>
38
+ <step n="8" title="Optional: Scaffold Test Framework">
39
+ <action>Check if the project already has a test framework configured (look for jest.config, vitest.config, playwright.config, pytest.ini, build.gradle test blocks, etc.)</action>
40
+ <ask>Would you like to scaffold the test framework now? /gaia-test-framework will detect your stack, generate config files, folder structure, fixture patterns, and a sample test. Recommended if no test framework is installed yet. (yes/no)</ask>
41
+ <action>If yes: run /gaia-test-framework</action>
42
+ <action>If no: skip — you can run /gaia-test-framework anytime later</action>
43
+ </step>
44
+ <next-step source="lifecycle-sequence.yaml">
45
+ <primary command="/gaia-create-epics">Break requirements into epics and stories (test plan is required before this step)</primary>
46
+ </next-step>
47
+ </workflow>
@@ -0,0 +1,11 @@
1
+ name: test-design
2
+ description: 'Create system-level or epic-level test plans'
3
+ module: testing
4
+ agent: test-architect
5
+ config_resolved: "{installed_path}/.resolved/test-design.yaml"
6
+ config_source: "{project-root}/_gaia/testing/config.yaml"
7
+ installed_path: "{project-root}/_gaia/testing/workflows/test-design"
8
+ instructions: "{installed_path}/instructions.xml"
9
+ validation: "{installed_path}/checklist.md"
10
+ output:
11
+ primary: "{test_artifacts}/test-plan.md"
@@ -0,0 +1,8 @@
1
+ # Test Framework Checklist
2
+ - [ ] Project stack detected correctly
3
+ - [ ] Framework recommendation matches stack
4
+ - [ ] Config files generated
5
+ - [ ] Folder structure scaffolded
6
+ - [ ] Test runner script configured and executable (e.g., npm test)
7
+ - [ ] Fixture architecture designed
8
+ - [ ] No actual test implementations created — tests are written in Phase 4
@@ -0,0 +1,25 @@
1
+ <workflow name="test-framework">
2
+ <critical>
3
+ <mandate>Detect project stack before recommending framework</mandate>
4
+ <mandate>Scaffold complete setup: config files, folder structure, npm scripts (or equivalent). Do NOT implement or run any tests — test implementation happens in Phase 4 workflows (/gaia-dev-story, /gaia-qa-tests, /gaia-atdd).</mandate>
5
+ </critical>
6
+ <step n="1" title="Detect Stack">
7
+ <action>Identify project language, framework, and existing test setup</action>
8
+ </step>
9
+ <step n="2" title="Select Framework">
10
+ <action>Recommend test framework: Playwright/Cypress for E2E, Jest/Vitest/pytest/JUnit for unit</action>
11
+ <action>Consider existing project conventions</action>
12
+ </step>
13
+ <step n="3" title="Scaffold">
14
+ <action>Generate config files, folder structure, and test runner scripts. Do NOT write sample tests or run any test suite — only set up the infrastructure so tests can be added later.</action>
15
+ <action>Load fixture-architecture knowledge fragment</action>
16
+ </step>
17
+ <step n="4" title="Fixture Architecture">
18
+ <action>Design fixture/factory patterns per knowledge fragments</action>
19
+ <action>Pure functions first, framework fixtures as wrappers</action>
20
+ </step>
21
+ <step n="5" title="Generate Output">
22
+ <action>Generate test framework setup document with config, folder structure, fixture patterns, and instructions for running tests</action>
23
+ <template-output file="{test_artifacts}/test-framework-setup.md" />
24
+ </step>
25
+ </workflow>
@@ -0,0 +1,11 @@
1
+ name: test-framework
2
+ description: 'Initialize test framework with appropriate tooling'
3
+ module: testing
4
+ agent: test-architect
5
+ config_resolved: "{installed_path}/.resolved/test-framework.yaml"
6
+ config_source: "{project-root}/_gaia/testing/config.yaml"
7
+ installed_path: "{project-root}/_gaia/testing/workflows/test-framework"
8
+ instructions: "{installed_path}/instructions.xml"
9
+ validation: "{installed_path}/checklist.md"
10
+ output:
11
+ primary: "{test_artifacts}/test-framework-setup.md"
@@ -0,0 +1,9 @@
1
+ # Test Review Checklist
2
+ - [ ] Target test files loaded and analyzed
3
+ - [ ] Determinism verified (no timing dependencies)
4
+ - [ ] Test isolation confirmed (no shared mutable state)
5
+ - [ ] Naming conventions assessed
6
+ - [ ] Coverage gaps identified (untested paths, edge cases, boundary conditions)
7
+ - [ ] Critical path coverage assessed (high-risk functions have happy/error/boundary tests)
8
+ - [ ] Flaky test candidates identified
9
+ - [ ] Actionable recommendations provided
@@ -0,0 +1,51 @@
1
+ <workflow name="test-review">
2
+ <critical>
3
+ <mandate>Check for flaky test patterns — they are critical technical debt</mandate>
4
+ <mandate>Story must be in review status before test review</mandate>
5
+ <mandate>Output must include machine-readable PASSED or FAILED verdict</mandate>
6
+ <mandate>When reading or running application source code, use {project-path} as the base directory — NOT {project-root}. {project-path} is resolved by the engine from global.yaml.</mandate>
7
+ </critical>
8
+ <step n="1" title="Load Story and Tests">
9
+ <action>Resolve story file: search for {story_key}-*.md in {implementation_artifacts}/ using glob pattern to match the full filename ({story_key}-{title_slug}.md)</action>
10
+ <action>Read story file, identify files changed</action>
11
+ <action>Read test files for the target area</action>
12
+ </step>
13
+ <step n="2" title="Status Gate">
14
+ <action>Verify story is in 'review' status</action>
15
+ <check if="status != review">HALT: Story must be in review status before test review</check>
16
+ </step>
17
+ <step n="3" title="Quality Assessment">
18
+ <action>Check: determinism (no timing/order dependencies), isolation (no shared mutable state), naming (descriptive test names reflecting behavior), assertions (meaningful assertions, not just "no error")</action>
19
+ <action>Coverage gap analysis: identify untested code paths — error handling branches, boundary conditions, edge cases, null/empty inputs, concurrent access paths, and failure/retry scenarios</action>
20
+ <action>Assess critical path coverage: for each high-risk or business-critical function touched by the story, verify that tests exist for the happy path, at least one error path, and boundary values. Flag any critical function with no tests as a blocking gap.</action>
21
+ <action>List specific coverage gaps: for each gap, note the function/module, the missing scenario (e.g., "no test for timeout handling in fetchUser"), and rate risk as Critical/High/Medium/Low based on likelihood and impact of the untested path failing in production</action>
22
+ </step>
23
+ <step n="4" title="Flakiness Analysis">
24
+ <action>Identify potentially flaky tests: timing, state, network dependencies</action>
25
+ </step>
26
+ <step n="5" title="Verdict">
27
+ <action>If no critical quality issues or flaky tests found: verdict is PASSED</action>
28
+ <action>If critical quality issues or flaky tests found: verdict is FAILED — list blocking findings</action>
29
+ </step>
30
+ <step n="6" title="Generate Report">
31
+ <action>Generate test review report with quality assessment and flakiness findings</action>
32
+ <template-output file="{test_artifacts}/{story_key}-test-review.md">
33
+ Generate test review report with:
34
+ - Quality assessment (determinism, isolation, naming, assertions)
35
+ - Coverage Gaps section: table of untested paths (Function/Module | Missing Scenario | Risk Rating). Include untested error handling, boundary conditions, and edge cases.
36
+ - Critical Path Coverage: list each critical function and whether it has happy-path, error-path, and boundary tests
37
+ - Flakiness findings
38
+ - Machine-readable verdict (PASSED/FAILED)
39
+ </template-output>
40
+ </step>
41
+ <step n="7" title="Update Review Gate and Transition">
42
+ <action>Read story file, locate Review Gate table</action>
43
+ <action>If PASSED: update Test Review row status to PASSED, link report file</action>
44
+ <action>If FAILED: update Test Review row status to FAILED, link report file. Do NOT change story status — the review-gate-check protocol or run-all-reviews orchestrator handles status transitions.</action>
45
+ <template-output file="{implementation_artifacts}/{story_key}-*.md">
46
+ Update story file Review Gate table with test review result and report link.
47
+ </template-output>
48
+ <action>Inform user: "Note: sprint-status.yaml may now be out of sync. Run /gaia-sprint-status to reconcile."</action>
49
+ <invoke-protocol name="review-gate-check" file="{project-root}/_gaia/core/protocols/review-gate-check.xml" />
50
+ </step>
51
+ </workflow>
@@ -0,0 +1,11 @@
1
+ name: test-review
2
+ description: 'Review test quality using best practices validation'
3
+ module: testing
4
+ agent: test-architect
5
+ config_resolved: "{installed_path}/.resolved/test-review.yaml"
6
+ config_source: "{project-root}/_gaia/testing/config.yaml"
7
+ installed_path: "{project-root}/_gaia/testing/workflows/test-review"
8
+ instructions: "{installed_path}/instructions.xml"
9
+ validation: "{installed_path}/checklist.md"
10
+ output:
11
+ primary: "{test_artifacts}/test-review.md"
@@ -0,0 +1,6 @@
1
+ # Traceability Checklist
2
+ - [ ] All requirements loaded (PRD, stories, AC)
3
+ - [ ] Existing tests inventoried
4
+ - [ ] Requirement-to-test matrix built
5
+ - [ ] Coverage gaps identified and prioritized
6
+ - [ ] Gap closure recommendations provided
@@ -0,0 +1,49 @@
1
+ <workflow name="traceability">
2
+ <critical>
3
+ <mandate>Map every requirement to at least one test</mandate>
4
+ <mandate>Identify requirements without test coverage as gaps</mandate>
5
+ <mandate>Matrix rows MUST be PRD requirements (FR-001…FR-N, NFR-001…NFR-N), NOT story acceptance criteria. Stories are an intermediate mapping between requirements and tests, not the primary dimension.</mandate>
6
+ </critical>
7
+ <step n="1" title="Load Requirements">
8
+ <action>Load {planning_artifacts}/prd.md — extract ALL functional requirements (FR-001 through FR-N) and non-functional requirements (NFR-001 through NFR-N) as the primary requirement inventory. These are the matrix rows.</action>
9
+ <check>If prd.md does not exist or cannot be loaded: HALT — "PRD not found at {planning_artifacts}/prd.md. Run /gaia-create-prd first. The traceability matrix requires PRD requirements as its primary dimension."</check>
10
+ <action>Load {planning_artifacts}/epics-and-stories.md — for each story, identify which FR/NFR it implements. Build a mapping: FR/NFR → Story(s) → Story ACs.</action>
11
+ <action>Load {test_artifacts}/test-plan.md if it exists — extract planned test IDs and their categories (Unit, Integration, E2E, Manual, Performance, Security, Accessibility).</action>
12
+ </step>
13
+ <step n="2" title="Load Test Inventory">
14
+ <action>Scan existing test files and test descriptions from test-plan.md</action>
15
+ <action>For each test, record: test ID, test type (Unit/Integration/E2E/Manual/Performance/Security/Accessibility), implementation status (planned/implemented), and file path if implemented</action>
16
+ </step>
17
+ <step n="3" title="Build Matrix">
18
+ <action>Build the Functional Requirements matrix section:
19
+ Rows: FR-001 through FR-N (from PRD)
20
+ Columns: FR ID | Description | Story(s) | Unit | Integration | E2E | Manual | Coverage %
21
+ For each FR, map to its implementing story(s) via the FR→Story mapping from Step 1, then map stories to their planned/implemented tests.</action>
22
+ <action>Build the Non-Functional Requirements matrix section:
23
+ Rows: NFR-001 through NFR-N (from PRD)
24
+ Columns: NFR ID | Description | Category | Target | Test(s) | Status
25
+ Categories: Performance, Security, Accessibility, Scalability, Reliability, etc.
26
+ Map each NFR to its non-functional test(s) — these may not have story intermediaries.</action>
27
+ <action>Build the Story→Test detail section as a supplementary view:
28
+ For each story with ACs, list the specific test IDs covering each AC.
29
+ This section supports the primary FR/NFR matrix but is NOT the primary dimension.</action>
30
+ </step>
31
+ <step n="4" title="Gap Analysis">
32
+ <action>Identify FR/NFR requirements with no mapped story — flag as "No implementing story" gap</action>
33
+ <action>Identify FR/NFR requirements with stories but no mapped tests — flag as "No test coverage" gap</action>
34
+ <action>Identify tests with no requirement mapping — flag as "Orphan test" warning</action>
35
+ <action>For each story tagged Risk: HIGH — check if {test_artifacts}/atdd-{story_key}.md exists. If missing, flag as "HIGH-RISK STORY WITHOUT ATDD — run /gaia-atdd before /gaia-dev-story" gap. This is a blocking gap.</action>
36
+ <action>Prioritize gaps by risk level (High-risk FR/NFRs without coverage are blocking)</action>
37
+ <action>Calculate implementation rate: count implemented tests vs total planned tests. Record as: Total planned: N, Implemented: M ({percentage}%)</action>
38
+ </step>
39
+ <step n="5" title="Generate Matrix">
40
+ <action>Generate traceability matrix with:
41
+ 1. FR Requirements → Test mapping table
42
+ 2. NFR Requirements → Test mapping table
43
+ 3. Story AC → Test detail (supplementary)
44
+ 4. Gap analysis summary
45
+ 5. Coverage statistics
46
+ 6. Implementation-readiness gate decision: if all High-risk FR/NFRs have at least one planned test AND implementation rate > 50%, declare PASS. If any High-risk FR/NFR has zero test coverage, declare BLOCKED. Otherwise declare CONDITIONAL.</action>
47
+ <template-output file="{test_artifacts}/traceability-matrix.md" />
48
+ </step>
49
+ </workflow>
@@ -0,0 +1,21 @@
1
+ name: traceability
2
+ description: 'Generate traceability matrix and quality gate decision'
3
+ module: testing
4
+ agent: test-architect
5
+ config_resolved: "{installed_path}/.resolved/traceability.yaml"
6
+ config_source: "{project-root}/_gaia/testing/config.yaml"
7
+ installed_path: "{project-root}/_gaia/testing/workflows/traceability"
8
+ instructions: "{installed_path}/instructions.xml"
9
+ validation: "{installed_path}/checklist.md"
10
+ input_file_patterns:
11
+ prd:
12
+ whole: "{planning_artifacts}/prd.md"
13
+ load_strategy: "FULL_LOAD"
14
+ epics_and_stories:
15
+ whole: "{planning_artifacts}/epics-and-stories.md"
16
+ load_strategy: "FULL_LOAD"
17
+ test_plan:
18
+ whole: "{test_artifacts}/test-plan.md"
19
+ load_strategy: "FULL_LOAD"
20
+ output:
21
+ primary: "{test_artifacts}/traceability-matrix.md"
@@ -6,10 +6,40 @@
6
6
  // ─────────────────────────────────────────────────────────────────────────────
7
7
 
8
8
  const { execSync, execFileSync } = require("child_process");
9
- const { mkdtempSync, rmSync, existsSync, readFileSync, realpathSync } = require("fs");
9
+ const { mkdtempSync, rmSync, existsSync, readFileSync } = require("fs");
10
10
  const { join } = require("path");
11
11
  const { tmpdir } = require("os");
12
12
 
13
+ // ─── Node.js Version Guard (E7-S2) ─────────────────────────────────────────
14
+
15
+ const MIN_NODE_MAJOR = 20;
16
+
17
+ function stripPrefix(version) {
18
+ return (version || "").replace(/^v/, "");
19
+ }
20
+
21
+ function checkNodeVersion(version) {
22
+ const major = parseInt(stripPrefix(version).split(".")[0], 10);
23
+ return major >= MIN_NODE_MAJOR;
24
+ }
25
+
26
+ function getNodeVersionWarning(version) {
27
+ const current = stripPrefix(version);
28
+ return (
29
+ `\x1b[31m✖\x1b[0m Node.js ${current} is not supported.\n` +
30
+ ` GAIA Framework requires Node.js >= ${MIN_NODE_MAJOR}.\n` +
31
+ ` Download the latest version: https://nodejs.org/en/download\n` +
32
+ ` Current: ${current} | Required: >= ${MIN_NODE_MAJOR}`
33
+ );
34
+ }
35
+
36
+ if (require.main === module && !checkNodeVersion(process.version)) {
37
+ console.error(getNodeVersionWarning(process.version));
38
+ process.exit(1);
39
+ }
40
+
41
+ // ─────────────────────────────────────────────────────────────────────────────
42
+
13
43
  const REPO_URL = "https://github.com/jlouage/Gaia-framework.git";
14
44
  const SCRIPT_NAME = "gaia-install.sh";
15
45
  const IS_WINDOWS = process.platform === "win32";
@@ -35,9 +65,9 @@ function findBash() {
35
65
 
36
66
  // 1. Try Git for Windows FIRST (preferred — simpler path mapping)
37
67
  const gitBashPaths = [
38
- path.join(process.env.ProgramFiles || "C:\\Program Files", "Git", "bin", "bash.exe"),
39
- path.join(process.env["ProgramFiles(x86)"] || "C:\\Program Files (x86)", "Git", "bin", "bash.exe"),
40
- path.join(process.env.LOCALAPPDATA || "", "Programs", "Git", "bin", "bash.exe"),
68
+ join(process.env.ProgramFiles || "C:\\Program Files", "Git", "bin", "bash.exe"),
69
+ join(process.env["ProgramFiles(x86)"] || "C:\\Program Files (x86)", "Git", "bin", "bash.exe"),
70
+ join(process.env.LOCALAPPDATA || "", "Programs", "Git", "bin", "bash.exe"),
41
71
  ];
42
72
 
43
73
  for (const p of gitBashPaths) {
@@ -52,7 +82,10 @@ function findBash() {
52
82
  execSync("bash --version", { stdio: "ignore" });
53
83
  // Detect WSL vs Git Bash by checking uname
54
84
  try {
55
- const uname = execSync('bash -c "uname -r"', { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
85
+ const uname = execSync('bash -c "uname -r"', {
86
+ encoding: "utf8",
87
+ stdio: ["pipe", "pipe", "ignore"],
88
+ }).trim();
56
89
  if (/microsoft|wsl/i.test(uname)) {
57
90
  bashType = "wsl";
58
91
  } else {
@@ -61,7 +94,10 @@ function findBash() {
61
94
  } catch {
62
95
  // Can't detect — try MSYSTEM env which Git Bash sets
63
96
  try {
64
- const msys = execSync('bash -c "echo $MSYSTEM"', { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
97
+ const msys = execSync('bash -c "echo $MSYSTEM"', {
98
+ encoding: "utf8",
99
+ stdio: ["pipe", "pipe", "ignore"],
100
+ }).trim();
65
101
  bashType = msys ? "gitbash" : "wsl";
66
102
  } catch {
67
103
  bashType = "wsl"; // Assume WSL if detection fails — safer path mapping
@@ -96,10 +132,7 @@ function ensureGit() {
96
132
  try {
97
133
  execSync("git --version", { stdio: "ignore" });
98
134
  } catch {
99
- fail(
100
- "git is required but was not found.\n" +
101
- " Install git: https://git-scm.com/downloads"
102
- );
135
+ fail("git is required but was not found.\n" + " Install git: https://git-scm.com/downloads");
103
136
  }
104
137
  }
105
138
 
@@ -144,12 +177,9 @@ Examples:
144
177
 
145
178
  function main(deps) {
146
179
  // Dependency injection for testability — defaults to real modules
147
- const _exec = deps && deps.execSync || execSync;
148
- const _execFile = deps && deps.execFileSync || execFileSync;
149
- const _mkdtemp = deps && deps.mkdtempSync || mkdtempSync;
150
- const _exists = deps && deps.existsSync || existsSync;
151
- const _join = deps && deps.join || join;
152
- const _tmpdir = deps && deps.tmpdir || tmpdir;
180
+ const _exec = (deps && deps.execSync) || execSync;
181
+ const _exists = (deps && deps.existsSync) || existsSync;
182
+ const _join = (deps && deps.join) || join;
153
183
 
154
184
  const args = process.argv.slice(2);
155
185
 
@@ -191,8 +221,14 @@ function main(deps) {
191
221
 
192
222
  // Register cleanup for all exit scenarios
193
223
  process.on("exit", cleanup);
194
- process.on("SIGINT", () => { cleanup(); process.exit(130); });
195
- process.on("SIGTERM", () => { cleanup(); process.exit(143); });
224
+ process.on("SIGINT", () => {
225
+ cleanup();
226
+ process.exit(130);
227
+ });
228
+ process.on("SIGTERM", () => {
229
+ cleanup();
230
+ process.exit(143);
231
+ });
196
232
 
197
233
  info("Cloning GAIA framework from GitHub...");
198
234
 
@@ -233,7 +269,9 @@ function main(deps) {
233
269
 
234
270
  try {
235
271
  // Convert all passthrough args that look like paths (contain backslash or drive letter)
236
- const posixArgs = passthrough.map(a => IS_WINDOWS && /[\\:]/.test(a) && !a.startsWith("--") ? toPosixPath(a) : a);
272
+ const posixArgs = passthrough.map((a) =>
273
+ IS_WINDOWS && /[\\:]/.test(a) && !a.startsWith("--") ? toPosixPath(a) : a
274
+ );
237
275
  const posixScript = toPosixPath(scriptPath);
238
276
 
239
277
  // Debug: on Windows, log the resolved paths if --verbose is passed
@@ -257,4 +295,4 @@ if (require.main === module) {
257
295
  main();
258
296
  }
259
297
 
260
- module.exports = { findBash, ensureGit, showUsage, fail, info, cleanup, readPackageVersion, main };
298
+ module.exports = { checkNodeVersion, getNodeVersionWarning, findBash, ensureGit, showUsage, fail, info, cleanup, readPackageVersion, main };
package/gaia-install.sh CHANGED
@@ -6,7 +6,7 @@ set -euo pipefail
6
6
  # Installs, updates, validates, and reports on GAIA installations.
7
7
  # ─────────────────────────────────────────────────────────────────────────────
8
8
 
9
- readonly VERSION="1.58.0"
9
+ readonly VERSION="1.59.0"
10
10
  readonly GITHUB_REPO="https://github.com/jlouage/Gaia-framework.git"
11
11
  readonly MANIFEST_REL="_gaia/_config/manifest.yaml"
12
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-framework",
3
- "version": "1.58.0",
3
+ "version": "1.59.0",
4
4
  "description": "GAIA — Generative Agile Intelligence Architecture installer",
5
5
  "bin": {
6
6
  "gaia-framework": "./bin/gaia-framework.js"
@@ -15,7 +15,11 @@
15
15
  "test:shell": "node -e \"if(process.platform==='win32'){console.log('BATS tests skipped on Windows');process.exit(0)}\" && bats test/shell/",
16
16
  "test:all": "vitest run && node -e \"if(process.platform==='win32'){console.log('BATS tests skipped on Windows');process.exit(0)}\" && bats test/shell/",
17
17
  "test:tier2": "vitest run --config vitest.config.tier2.js",
18
- "fixtures:check": "node test/fixtures/sync-check.js"
18
+ "fixtures:check": "node test/fixtures/sync-check.js",
19
+ "lint": "eslint bin/**/*.js test/**/*.js",
20
+ "lint:fix": "eslint --fix bin/**/*.js test/**/*.js",
21
+ "format:check": "prettier --check \"bin/**/*.js\" \"test/**/*.js\"",
22
+ "format": "prettier --write \"bin/**/*.js\" \"test/**/*.js\""
19
23
  },
20
24
  "keywords": [
21
25
  "gaia",
@@ -32,17 +36,27 @@
32
36
  },
33
37
  "license": "AGPL-3.0",
34
38
  "engines": {
35
- "node": ">=18"
39
+ "node": ">=20"
36
40
  },
37
41
  "files": [
38
42
  "bin/",
39
- "gaia-install.sh"
43
+ "gaia-install.sh",
44
+ "_gaia/",
45
+ ".claude/",
46
+ "CLAUDE.md",
47
+ "README.md",
48
+ "LICENSE"
40
49
  ],
41
50
  "devDependencies": {
42
- "vitest": "^3.1.0",
51
+ "@eslint/js": "^9.39.4",
43
52
  "@vitest/coverage-v8": "^3.1.0",
44
- "js-yaml": "^4.1.0",
53
+ "csv-parse": "^5.6.0",
54
+ "eslint": "^9.39.4",
55
+ "eslint-config-prettier": "^10.1.8",
45
56
  "fast-xml-parser": "^5.2.0",
46
- "csv-parse": "^5.6.0"
57
+ "globals": "^17.4.0",
58
+ "js-yaml": "^4.1.0",
59
+ "prettier": "^3.8.1",
60
+ "vitest": "^3.1.0"
47
61
  }
48
62
  }