cfsa-antigravity 2.19.3 → 3.0.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 (838) hide show
  1. package/README.md +65 -9
  2. package/bin/cli.mjs +720 -135
  3. package/package.json +3 -2
  4. package/template/.agent/PRDS/codex-runtime-support.md +96 -0
  5. package/template/.agent/TASKS/codex-runtime-support.md +11 -0
  6. package/template/.agent/instructions/structure.md +1 -1
  7. package/template/.agent/instructions/tech-stack.md +2 -2
  8. package/template/.agent/instructions/workflow.md +3 -2
  9. package/template/.agent/kit-sync.md +3 -3
  10. package/template/.agent/rules/completion-checklist.md +1 -1
  11. package/template/.agent/rules/memory-capture.md +9 -9
  12. package/template/.agent/skills/architecture-mapping/SKILL.md +3 -3
  13. package/template/.agent/skills/bootstrap-agents/SKILL.md +1 -1
  14. package/template/.agent/skills/brainstorming/SKILL.md +1 -1
  15. package/template/.agent/skills/cross-layer-consistency/SKILL.md +3 -3
  16. package/template/.agent/skills/database-schema-design/SKILL.md +1 -1
  17. package/template/.agent/skills/idea-extraction/SKILL.md +1 -1
  18. package/template/.agent/skills/performance-budgeting/SKILL.md +8 -8
  19. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +2 -2
  20. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +5 -5
  21. package/template/.agent/skills/prd-templates/SKILL.md +10 -10
  22. package/template/.agent/skills/prd-templates/references/architecture-completeness-checklist.md +1 -1
  23. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +1 -1
  24. package/template/.agent/skills/prd-templates/references/be-spec-template.md +1 -1
  25. package/template/.agent/skills/prd-templates/references/constraint-exploration.md +2 -2
  26. package/template/.agent/skills/prd-templates/references/data-placement-template.md +1 -1
  27. package/template/.agent/skills/prd-templates/references/decision-propagation.md +5 -5
  28. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +5 -5
  29. package/template/.agent/skills/prd-templates/references/deep-ideation-loading-protocol.md +1 -1
  30. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +2 -2
  31. package/template/.agent/skills/prd-templates/references/design-system-prerequisite-check.md +1 -1
  32. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +1 -1
  33. package/template/.agent/skills/prd-templates/references/evolution-layer-guidance.md +1 -1
  34. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +1 -1
  35. package/template/.agent/skills/prd-templates/references/feature-ledger-protocol.md +8 -8
  36. package/template/.agent/skills/prd-templates/references/folder-seeding-protocol.md +5 -5
  37. package/template/.agent/skills/prd-templates/references/gate-applicability.md +1 -1
  38. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +1 -1
  39. package/template/.agent/skills/prd-templates/references/map-guard-protocol.md +1 -1
  40. package/template/.agent/skills/prd-templates/references/operational-templates.md +1 -1
  41. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +1 -1
  42. package/template/.agent/skills/prd-templates/references/placeholder-workflow-mapping.md +1 -1
  43. package/template/.agent/skills/prd-templates/references/shard-boundary-analysis.md +3 -3
  44. package/template/.agent/skills/prd-templates/references/shard-split-remediation.md +12 -12
  45. package/template/.agent/skills/prd-templates/references/skill-loading-protocol.md +1 -1
  46. package/template/.agent/skills/prd-templates/references/spec-coverage-sweep.md +2 -2
  47. package/template/.agent/skills/prd-templates/references/vision-template.md +2 -2
  48. package/template/.agent/skills/prd-templates/references/workflow-checkpoint-protocol.md +5 -5
  49. package/template/.agent/skills/resolve-ambiguity/SKILL.md +7 -7
  50. package/template/.agent/skills/session-continuity/SKILL.md +12 -10
  51. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +2 -2
  52. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +3 -3
  53. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +1 -1
  54. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +2 -2
  55. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +1 -1
  56. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +3 -3
  57. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +11 -1
  58. package/template/.agent/skills/spec-writing/SKILL.md +1 -1
  59. package/template/.agent/skills/tech-stack-catalog/SKILL.md +1 -1
  60. package/template/.agent/workflows/audit-ambiguity-execute.md +16 -14
  61. package/template/.agent/workflows/audit-ambiguity-rubrics.md +2 -2
  62. package/template/.agent/workflows/audit-ambiguity.md +1 -1
  63. package/template/.agent/workflows/create-prd-architecture.md +15 -15
  64. package/template/.agent/workflows/create-prd-compile.md +15 -15
  65. package/template/.agent/workflows/create-prd-design-system.md +16 -16
  66. package/template/.agent/workflows/create-prd-security.md +10 -10
  67. package/template/.agent/workflows/create-prd-stack.md +13 -13
  68. package/template/.agent/workflows/create-prd.md +11 -11
  69. package/template/.agent/workflows/decompose-architecture-structure.md +15 -15
  70. package/template/.agent/workflows/decompose-architecture-validate.md +6 -6
  71. package/template/.agent/workflows/decompose-architecture.md +8 -8
  72. package/template/.agent/workflows/evolve-contract.md +1 -1
  73. package/template/.agent/workflows/evolve-feature-cascade.md +7 -5
  74. package/template/.agent/workflows/evolve-feature-classify.md +4 -4
  75. package/template/.agent/workflows/ideate-discover.md +11 -11
  76. package/template/.agent/workflows/ideate-extract.md +3 -3
  77. package/template/.agent/workflows/ideate-validate.md +8 -8
  78. package/template/.agent/workflows/ideate.md +10 -10
  79. package/template/.agent/workflows/implement-slice-setup.md +1 -1
  80. package/template/.agent/workflows/implement-slice-tdd.md +1 -1
  81. package/template/.agent/workflows/implement-slice.md +1 -1
  82. package/template/.agent/workflows/plan-phase-preflight.md +6 -6
  83. package/template/.agent/workflows/plan-phase-write.md +8 -6
  84. package/template/.agent/workflows/plan-phase.md +4 -4
  85. package/template/.agent/workflows/propagate-decision-apply.md +8 -6
  86. package/template/.agent/workflows/propagate-decision-scan.md +1 -1
  87. package/template/.agent/workflows/propagate-decision.md +1 -1
  88. package/template/.agent/workflows/remediate-pipeline-assess.md +10 -10
  89. package/template/.agent/workflows/remediate-pipeline-execute.md +10 -7
  90. package/template/.agent/workflows/remediate-pipeline.md +1 -1
  91. package/template/.agent/workflows/remediate-shard-split.md +6 -6
  92. package/template/.agent/workflows/resolve-ambiguity.md +15 -6
  93. package/template/.agent/workflows/setup-workspace-cicd.md +2 -2
  94. package/template/.agent/workflows/setup-workspace-data.md +3 -3
  95. package/template/.agent/workflows/setup-workspace-hosting.md +2 -2
  96. package/template/.agent/workflows/setup-workspace-scaffold.md +7 -7
  97. package/template/.agent/workflows/setup-workspace.md +5 -5
  98. package/template/.agent/workflows/sync-kit.md +8 -8
  99. package/template/.agent/workflows/update-architecture-map.md +3 -3
  100. package/template/.agent/workflows/validate-phase-quality.md +2 -2
  101. package/template/.agent/workflows/validate-phase-readiness.md +8 -8
  102. package/template/.agent/workflows/validate-phase.md +2 -2
  103. package/template/.agent/workflows/verify-infrastructure.md +8 -8
  104. package/template/.agent/workflows/write-architecture-spec-deepen.md +14 -13
  105. package/template/.agent/workflows/write-architecture-spec-design.md +9 -9
  106. package/template/.agent/workflows/write-architecture-spec.md +1 -1
  107. package/template/.agent/workflows/write-be-spec-classify.md +10 -10
  108. package/template/.agent/workflows/write-be-spec-write.md +13 -12
  109. package/template/.agent/workflows/write-be-spec.md +2 -2
  110. package/template/.agent/workflows/write-fe-spec-classify.md +11 -11
  111. package/template/.agent/workflows/write-fe-spec-write.md +13 -12
  112. package/template/.agent/workflows/write-fe-spec.md +2 -2
  113. package/template/.claude/README.md +37 -13
  114. package/template/.claude/commands/audit-ambiguity-execute.md +1 -1
  115. package/template/.claude/commands/audit-ambiguity-rubrics.md +1 -1
  116. package/template/.claude/commands/audit-ambiguity.md +1 -1
  117. package/template/.claude/commands/bootstrap-agents-fill.md +1 -1
  118. package/template/.claude/commands/bootstrap-agents-provision.md +1 -1
  119. package/template/.claude/commands/bootstrap-agents.md +1 -1
  120. package/template/.claude/commands/create-prd-architecture.md +1 -1
  121. package/template/.claude/commands/create-prd-compile.md +1 -1
  122. package/template/.claude/commands/create-prd-design-system.md +1 -1
  123. package/template/.claude/commands/create-prd-security.md +1 -1
  124. package/template/.claude/commands/create-prd-stack.md +1 -1
  125. package/template/.claude/commands/create-prd.md +1 -1
  126. package/template/.claude/commands/decompose-architecture-structure.md +1 -1
  127. package/template/.claude/commands/decompose-architecture-validate.md +1 -1
  128. package/template/.claude/commands/decompose-architecture.md +1 -1
  129. package/template/.claude/commands/evolve-contract.md +1 -1
  130. package/template/.claude/commands/evolve-feature-cascade.md +1 -1
  131. package/template/.claude/commands/evolve-feature-classify.md +1 -1
  132. package/template/.claude/commands/evolve-feature.md +1 -1
  133. package/template/.claude/commands/ideate-discover.md +1 -1
  134. package/template/.claude/commands/ideate-extract.md +1 -1
  135. package/template/.claude/commands/ideate-validate.md +1 -1
  136. package/template/.claude/commands/ideate.md +1 -1
  137. package/template/.claude/commands/implement-slice-setup.md +1 -1
  138. package/template/.claude/commands/implement-slice-tdd.md +1 -1
  139. package/template/.claude/commands/implement-slice.md +1 -1
  140. package/template/.claude/commands/plan-phase-preflight.md +1 -1
  141. package/template/.claude/commands/plan-phase-write.md +1 -1
  142. package/template/.claude/commands/plan-phase.md +1 -1
  143. package/template/.claude/commands/propagate-decision-apply.md +1 -1
  144. package/template/.claude/commands/propagate-decision-scan.md +1 -1
  145. package/template/.claude/commands/propagate-decision.md +1 -1
  146. package/template/.claude/commands/remediate-pipeline-assess.md +1 -1
  147. package/template/.claude/commands/remediate-pipeline-execute.md +1 -1
  148. package/template/.claude/commands/remediate-pipeline.md +1 -1
  149. package/template/.claude/commands/remediate-shard-split.md +1 -1
  150. package/template/.claude/commands/resolve-ambiguity.md +3 -1
  151. package/template/.claude/commands/setup-workspace-cicd.md +1 -1
  152. package/template/.claude/commands/setup-workspace-data.md +1 -1
  153. package/template/.claude/commands/setup-workspace-hosting.md +1 -1
  154. package/template/.claude/commands/setup-workspace-scaffold.md +1 -1
  155. package/template/.claude/commands/setup-workspace.md +1 -1
  156. package/template/.claude/commands/sync-kit.md +1 -1
  157. package/template/.claude/commands/update-architecture-map.md +1 -1
  158. package/template/.claude/commands/validate-phase-quality.md +1 -1
  159. package/template/.claude/commands/validate-phase-readiness.md +1 -1
  160. package/template/.claude/commands/validate-phase.md +1 -1
  161. package/template/.claude/commands/verify-infrastructure.md +1 -1
  162. package/template/.claude/commands/write-architecture-spec-deepen.md +1 -1
  163. package/template/.claude/commands/write-architecture-spec-design.md +1 -1
  164. package/template/.claude/commands/write-architecture-spec.md +1 -1
  165. package/template/.claude/commands/write-be-spec-classify.md +1 -1
  166. package/template/.claude/commands/write-be-spec-write.md +1 -1
  167. package/template/.claude/commands/write-be-spec.md +1 -1
  168. package/template/.claude/commands/write-fe-spec-classify.md +1 -1
  169. package/template/.claude/commands/write-fe-spec-write.md +1 -1
  170. package/template/.claude/commands/write-fe-spec.md +1 -1
  171. package/template/.claude/instructions/structure.md +3 -3
  172. package/template/.claude/instructions/tech-stack.md +2 -2
  173. package/template/.claude/instructions/workflow.md +8 -8
  174. package/template/.claude/kit-sync.md +6 -0
  175. package/template/.claude/rules/completion-checklist.md +5 -5
  176. package/template/.claude/rules/extensibility.md +1 -1
  177. package/template/.claude/rules/memory-capture.md +11 -11
  178. package/template/.claude/rules/vertical-slices.md +1 -1
  179. package/template/.claude/skill-library/MANIFEST.md +7 -7
  180. package/template/.claude/skill-library/README.md +3 -3
  181. package/template/.claude/skill-library/meta/claude-code/README.md +1 -1
  182. package/template/.claude/skill-library/surface/web/design-reference-data/SKILL.md +4 -4
  183. package/template/.claude/skill-library/surface/web/frontend-design/SKILL.md +1 -1
  184. package/template/.claude/skill-library/surface/web/frontend-verification/SKILL.md +3 -3
  185. package/template/.claude/skills/README.md +10 -61
  186. package/template/.claude/skills/architecture-mapping/SKILL.md +3 -3
  187. package/template/.claude/skills/{workflows/workflow-audit-ambiguity.md → audit-ambiguity/SKILL.md} +2 -6
  188. package/template/.claude/skills/audit-ambiguity-execute/SKILL.md +86 -0
  189. package/template/.claude/skills/{workflows/workflow-audit-ambiguity-rubrics.md → audit-ambiguity-rubrics/SKILL.md} +1 -5
  190. package/template/.claude/skills/bootstrap-agents/SKILL.md +14 -14
  191. package/template/.claude/skills/{workflows/workflow-bootstrap-agents-fill.md → bootstrap-agents-fill/SKILL.md} +1 -5
  192. package/template/.claude/skills/bootstrap-agents-provision/SKILL.md +22 -0
  193. package/template/.claude/skills/brainstorming/SKILL.md +1 -1
  194. package/template/.claude/skills/{workflows/workflow-create-prd.md → create-prd/SKILL.md} +17 -24
  195. package/template/.claude/skills/{workflows/workflow-create-prd-architecture.md → create-prd-architecture/SKILL.md} +2 -6
  196. package/template/.claude/skills/{workflows/workflow-create-prd-compile.md → create-prd-compile/SKILL.md} +3 -7
  197. package/template/.claude/skills/{workflows/workflow-create-prd-design-system.md → create-prd-design-system/SKILL.md} +3 -7
  198. package/template/.claude/skills/{workflows/workflow-create-prd-security.md → create-prd-security/SKILL.md} +0 -4
  199. package/template/.claude/skills/{workflows/workflow-create-prd-stack.md → create-prd-stack/SKILL.md} +6 -10
  200. package/template/.claude/skills/cross-layer-consistency/SKILL.md +3 -3
  201. package/template/.claude/skills/database-schema-design/SKILL.md +4 -4
  202. package/template/.claude/skills/{workflows/workflow-decompose-architecture.md → decompose-architecture/SKILL.md} +10 -14
  203. package/template/.claude/skills/{workflows/workflow-decompose-architecture-structure.md → decompose-architecture-structure/SKILL.md} +9 -13
  204. package/template/.claude/skills/{workflows/workflow-decompose-architecture-validate.md → decompose-architecture-validate/SKILL.md} +2 -6
  205. package/template/.claude/skills/error-handling-patterns/SKILL.md +1 -1
  206. package/template/.claude/skills/{workflows/workflow-evolve-contract.md → evolve-contract/SKILL.md} +0 -4
  207. package/template/.claude/skills/{workflows/workflow-evolve-feature.md → evolve-feature/SKILL.md} +0 -4
  208. package/template/.claude/skills/evolve-feature-cascade/SKILL.md +24 -0
  209. package/template/.claude/skills/{workflows/workflow-evolve-feature-classify.md → evolve-feature-classify/SKILL.md} +0 -4
  210. package/template/.claude/skills/find-skills/SKILL.md +1 -1
  211. package/template/.claude/skills/idea-extraction/SKILL.md +6 -6
  212. package/template/.claude/skills/{workflows/workflow-ideate.md → ideate/SKILL.md} +6 -11
  213. package/template/.claude/skills/{workflows/workflow-ideate-discover.md → ideate-discover/SKILL.md} +6 -10
  214. package/template/.claude/skills/{workflows/workflow-ideate-extract.md → ideate-extract/SKILL.md} +5 -9
  215. package/template/.claude/skills/{workflows/workflow-ideate-validate.md → ideate-validate/SKILL.md} +6 -10
  216. package/template/.claude/skills/{workflows/workflow-implement-slice.md → implement-slice/SKILL.md} +0 -4
  217. package/template/.claude/skills/{workflows/workflow-implement-slice-setup.md → implement-slice-setup/SKILL.md} +0 -4
  218. package/template/.claude/skills/{workflows/workflow-implement-slice-tdd.md → implement-slice-tdd/SKILL.md} +0 -4
  219. package/template/.claude/skills/migration-management/SKILL.md +1 -1
  220. package/template/.claude/skills/parallel-agents/SKILL.md +2 -2
  221. package/template/.claude/skills/performance-budgeting/SKILL.md +8 -8
  222. package/template/.claude/skills/pipeline-rubrics/references/ia-rubric.md +2 -2
  223. package/template/.claude/skills/pipeline-rubrics/references/scoring.md +5 -5
  224. package/template/.claude/skills/{workflows/workflow-plan-phase.md → plan-phase/SKILL.md} +5 -9
  225. package/template/.claude/skills/{workflows/workflow-plan-phase-preflight.md → plan-phase-preflight/SKILL.md} +3 -7
  226. package/template/.claude/skills/plan-phase-write/SKILL.md +85 -0
  227. package/template/.claude/skills/prd-templates/SKILL.md +10 -10
  228. package/template/.claude/skills/prd-templates/references/architecture-completeness-checklist.md +1 -1
  229. package/template/.claude/skills/prd-templates/references/architecture-design-template.md +1 -1
  230. package/template/.claude/skills/prd-templates/references/be-spec-template.md +1 -1
  231. package/template/.claude/skills/prd-templates/references/bootstrap-verification-protocol.md +6 -6
  232. package/template/.claude/skills/prd-templates/references/constraint-exploration.md +2 -2
  233. package/template/.claude/skills/prd-templates/references/data-placement-template.md +1 -1
  234. package/template/.claude/skills/prd-templates/references/decision-confirmation-protocol.md +1 -1
  235. package/template/.claude/skills/prd-templates/references/decision-propagation.md +8 -8
  236. package/template/.claude/skills/prd-templates/references/decomposition-templates.md +5 -5
  237. package/template/.claude/skills/prd-templates/references/deep-ideation-loading-protocol.md +1 -1
  238. package/template/.claude/skills/prd-templates/references/design-system-decisions.md +2 -2
  239. package/template/.claude/skills/prd-templates/references/design-system-prerequisite-check.md +1 -1
  240. package/template/.claude/skills/prd-templates/references/engagement-tier-protocol.md +1 -1
  241. package/template/.claude/skills/prd-templates/references/engineering-standards-template.md +1 -1
  242. package/template/.claude/skills/prd-templates/references/evolution-layer-guidance.md +3 -3
  243. package/template/.claude/skills/prd-templates/references/fe-spec-template.md +1 -1
  244. package/template/.claude/skills/prd-templates/references/feature-ledger-protocol.md +8 -8
  245. package/template/.claude/skills/prd-templates/references/folder-seeding-protocol.md +10 -10
  246. package/template/.claude/skills/prd-templates/references/gate-applicability.md +1 -1
  247. package/template/.claude/skills/prd-templates/references/infrastructure-report-template.md +1 -1
  248. package/template/.claude/skills/prd-templates/references/input-classification.md +1 -1
  249. package/template/.claude/skills/prd-templates/references/map-guard-protocol.md +3 -3
  250. package/template/.claude/skills/prd-templates/references/operational-templates.md +1 -1
  251. package/template/.claude/skills/prd-templates/references/persona-completeness-gate.md +1 -1
  252. package/template/.claude/skills/prd-templates/references/placeholder-guard-template.md +1 -1
  253. package/template/.claude/skills/prd-templates/references/placeholder-workflow-mapping.md +2 -2
  254. package/template/.claude/skills/prd-templates/references/shard-boundary-analysis.md +3 -3
  255. package/template/.claude/skills/prd-templates/references/shard-split-remediation.md +12 -12
  256. package/template/.claude/skills/prd-templates/references/skill-loading-protocol.md +4 -4
  257. package/template/.claude/skills/prd-templates/references/spec-coverage-sweep.md +3 -3
  258. package/template/.claude/skills/prd-templates/references/vision-template.md +2 -2
  259. package/template/.claude/skills/prd-templates/references/workflow-checkpoint-protocol.md +6 -6
  260. package/template/.claude/skills/{workflows/workflow-propagate-decision.md → propagate-decision/SKILL.md} +0 -4
  261. package/template/.claude/skills/propagate-decision-apply/SKILL.md +22 -0
  262. package/template/.claude/skills/{workflows/workflow-propagate-decision-scan.md → propagate-decision-scan/SKILL.md} +1 -5
  263. package/template/.claude/skills/{workflows/workflow-remediate-pipeline.md → remediate-pipeline/SKILL.md} +0 -4
  264. package/template/.claude/skills/{workflows/workflow-remediate-pipeline-assess.md → remediate-pipeline-assess/SKILL.md} +1 -5
  265. package/template/.claude/skills/remediate-pipeline-execute/SKILL.md +23 -0
  266. package/template/.claude/skills/{workflows/workflow-remediate-shard-split.md → remediate-shard-split/SKILL.md} +0 -4
  267. package/template/.claude/skills/resolve-ambiguity/SKILL.md +11 -11
  268. package/template/.claude/skills/session-continuity/SKILL.md +8 -8
  269. package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +2 -2
  270. package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +8 -8
  271. package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +5 -5
  272. package/template/.claude/skills/session-continuity/protocols/04-pattern-extraction.md +1 -1
  273. package/template/.claude/skills/session-continuity/protocols/05-session-close.md +1 -1
  274. package/template/.claude/skills/session-continuity/protocols/06-decision-analysis.md +1 -1
  275. package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +5 -5
  276. package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +14 -4
  277. package/template/.claude/skills/session-continuity/protocols/09-parallel-claim.md +1 -1
  278. package/template/.claude/skills/session-continuity/protocols/10-placeholder-verification-gate.md +3 -3
  279. package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +2 -2
  280. package/template/.claude/skills/session-continuity/protocols/ambiguity-gates.md +1 -1
  281. package/template/.claude/skills/setup/setup-cfsa.md +1 -1
  282. package/template/.claude/skills/setup/setup-provision-skills.md +1 -1
  283. package/template/.claude/skills/{workflows/workflow-setup-workspace.md → setup-workspace/SKILL.md} +0 -6
  284. package/template/.claude/skills/{workflows/workflow-setup-workspace-cicd.md → setup-workspace-cicd/SKILL.md} +0 -4
  285. package/template/.claude/skills/{workflows/workflow-setup-workspace-data.md → setup-workspace-data/SKILL.md} +0 -4
  286. package/template/.claude/skills/{workflows/workflow-setup-workspace-hosting.md → setup-workspace-hosting/SKILL.md} +0 -4
  287. package/template/.claude/skills/{workflows/workflow-setup-workspace-scaffold.md → setup-workspace-scaffold/SKILL.md} +0 -4
  288. package/template/.claude/skills/skill-creator/SKILL.md +11 -11
  289. package/template/.claude/skills/spec-writing/SKILL.md +1 -1
  290. package/template/.claude/skills/{workflows/workflow-sync-kit.md → sync-kit/SKILL.md} +2 -6
  291. package/template/.claude/skills/tdd-workflow/SKILL.md +1 -1
  292. package/template/.claude/skills/tech-stack-catalog/SKILL.md +1 -1
  293. package/template/.claude/skills/testing-strategist/SKILL.md +1 -1
  294. package/template/.claude/skills/{workflows/workflow-update-architecture-map.md → update-architecture-map/SKILL.md} +0 -4
  295. package/template/.claude/skills/{workflows/workflow-validate-phase.md → validate-phase/SKILL.md} +1 -5
  296. package/template/.claude/skills/{workflows/workflow-validate-phase-quality.md → validate-phase-quality/SKILL.md} +0 -4
  297. package/template/.claude/skills/{workflows/workflow-validate-phase-readiness.md → validate-phase-readiness/SKILL.md} +0 -4
  298. package/template/.claude/skills/{workflows/workflow-verify-infrastructure.md → verify-infrastructure/SKILL.md} +0 -4
  299. package/template/.claude/skills/{workflows/workflow-write-architecture-spec.md → write-architecture-spec/SKILL.md} +3 -7
  300. package/template/.claude/skills/write-architecture-spec-deepen/SKILL.md +82 -0
  301. package/template/.claude/skills/{workflows/workflow-write-architecture-spec-design.md → write-architecture-spec-design/SKILL.md} +3 -7
  302. package/template/.claude/skills/{workflows/workflow-write-be-spec.md → write-be-spec/SKILL.md} +7 -11
  303. package/template/.claude/skills/{workflows/workflow-write-be-spec-classify.md → write-be-spec-classify/SKILL.md} +1 -5
  304. package/template/.claude/skills/write-be-spec-write/SKILL.md +99 -0
  305. package/template/.claude/skills/{workflows/workflow-write-fe-spec.md → write-fe-spec/SKILL.md} +6 -10
  306. package/template/.claude/skills/{workflows/workflow-write-fe-spec-classify.md → write-fe-spec-classify/SKILL.md} +0 -4
  307. package/template/.claude/skills/write-fe-spec-write/SKILL.md +88 -0
  308. package/template/.factory/README.md +133 -0
  309. package/template/.factory/instructions/commands.md +24 -0
  310. package/template/.factory/instructions/example.md +21 -0
  311. package/template/.factory/instructions/patterns.md +61 -0
  312. package/template/.factory/instructions/structure.md +29 -0
  313. package/template/.factory/instructions/tech-stack.md +93 -0
  314. package/template/.factory/instructions/workflow.md +65 -0
  315. package/template/.factory/kit-sync.md +6 -0
  316. package/template/.factory/skill-library/MANIFEST.md +498 -0
  317. package/template/.factory/skill-library/README.md +38 -0
  318. package/template/.factory/skill-library/meta/claude-code/README.md +9 -0
  319. package/template/.factory/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  320. package/template/.factory/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  321. package/template/.factory/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  322. package/template/.factory/skill-library/meta/mcp-builder/SKILL.md +236 -0
  323. package/template/.factory/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  324. package/template/.factory/skill-library/meta/tmux-processes/SKILL.md +210 -0
  325. package/template/.factory/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  326. package/template/.factory/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  327. package/template/.factory/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  328. package/template/.factory/skill-library/stack/ai/langchain/SKILL.md +530 -0
  329. package/template/.factory/skill-library/stack/ai/ollama/SKILL.md +321 -0
  330. package/template/.factory/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  331. package/template/.factory/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  332. package/template/.factory/skill-library/stack/api/graphql/SKILL.md +1061 -0
  333. package/template/.factory/skill-library/stack/api/trpc/SKILL.md +576 -0
  334. package/template/.factory/skill-library/stack/auth/authjs/SKILL.md +569 -0
  335. package/template/.factory/skill-library/stack/auth/clerk/SKILL.md +590 -0
  336. package/template/.factory/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  337. package/template/.factory/skill-library/stack/auth/lucia/SKILL.md +230 -0
  338. package/template/.factory/skill-library/stack/auth/supabase-auth/SKILL.md +293 -0
  339. package/template/.factory/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  340. package/template/.factory/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  341. package/template/.factory/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  342. package/template/.factory/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  343. package/template/.factory/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  344. package/template/.factory/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  345. package/template/.factory/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  346. package/template/.factory/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  347. package/template/.factory/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  348. package/template/.factory/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  349. package/template/.factory/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  350. package/template/.factory/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  351. package/template/.factory/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  352. package/template/.factory/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  353. package/template/.factory/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  354. package/template/.factory/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  355. package/template/.factory/skill-library/stack/databases/redis/SKILL.md +1079 -0
  356. package/template/.factory/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  357. package/template/.factory/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  358. package/template/.factory/skill-library/stack/databases/supabase/SKILL.md +640 -0
  359. package/template/.factory/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  360. package/template/.factory/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  361. package/template/.factory/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  362. package/template/.factory/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
  363. package/template/.factory/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
  364. package/template/.factory/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  365. package/template/.factory/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  366. package/template/.factory/skill-library/stack/devops/nginx/SKILL.md +841 -0
  367. package/template/.factory/skill-library/stack/devops/terraform/SKILL.md +860 -0
  368. package/template/.factory/skill-library/stack/email/resend/SKILL.md +391 -0
  369. package/template/.factory/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  370. package/template/.factory/skill-library/stack/extensions/plasmo/SKILL.md +195 -0
  371. package/template/.factory/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  372. package/template/.factory/skill-library/stack/extensions/wxt/SKILL.md +216 -0
  373. package/template/.factory/skill-library/stack/feature-flags/flagsmith/SKILL.md +187 -0
  374. package/template/.factory/skill-library/stack/feature-flags/launchdarkly/SKILL.md +183 -0
  375. package/template/.factory/skill-library/stack/feature-flags/posthog-flags/SKILL.md +189 -0
  376. package/template/.factory/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  377. package/template/.factory/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  378. package/template/.factory/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  379. package/template/.factory/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  380. package/template/.factory/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  381. package/template/.factory/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  382. package/template/.factory/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  383. package/template/.factory/skill-library/stack/frameworks/svelte5/SKILL.md +81 -0
  384. package/template/.factory/skill-library/stack/frameworks/svelte5/references/events.md +353 -0
  385. package/template/.factory/skill-library/stack/frameworks/svelte5/references/migration.md +339 -0
  386. package/template/.factory/skill-library/stack/frameworks/svelte5/references/performance.md +443 -0
  387. package/template/.factory/skill-library/stack/frameworks/svelte5/references/runes.md +394 -0
  388. package/template/.factory/skill-library/stack/frameworks/svelte5/references/snippets.md +291 -0
  389. package/template/.factory/skill-library/stack/frameworks/svelte5/references/sveltekit.md +401 -0
  390. package/template/.factory/skill-library/stack/frameworks/svelte5/references/typescript.md +305 -0
  391. package/template/.factory/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  392. package/template/.factory/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  393. package/template/.factory/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  394. package/template/.factory/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  395. package/template/.factory/skill-library/stack/hosting/aws/SKILL.md +467 -0
  396. package/template/.factory/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  397. package/template/.factory/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  398. package/template/.factory/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  399. package/template/.factory/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  400. package/template/.factory/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  401. package/template/.factory/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  402. package/template/.factory/skill-library/stack/languages/go/SKILL.md +664 -0
  403. package/template/.factory/skill-library/stack/languages/java/SKILL.md +778 -0
  404. package/template/.factory/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  405. package/template/.factory/skill-library/stack/languages/python/SKILL.md +678 -0
  406. package/template/.factory/skill-library/stack/languages/rust/SKILL.md +673 -0
  407. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  408. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  409. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  410. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  411. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  412. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  413. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  414. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  415. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  416. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  417. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  418. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  419. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  420. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  421. package/template/.factory/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  422. package/template/.factory/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  423. package/template/.factory/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  424. package/template/.factory/skill-library/stack/messaging/nats/SKILL.md +147 -0
  425. package/template/.factory/skill-library/stack/messaging/rabbitmq/SKILL.md +178 -0
  426. package/template/.factory/skill-library/stack/messaging/sqs/SKILL.md +187 -0
  427. package/template/.factory/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  428. package/template/.factory/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  429. package/template/.factory/skill-library/stack/mobile/kotlin-compose/SKILL.md +215 -0
  430. package/template/.factory/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  431. package/template/.factory/skill-library/stack/mobile/swiftui/SKILL.md +261 -0
  432. package/template/.factory/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  433. package/template/.factory/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  434. package/template/.factory/skill-library/stack/notifications/fcm/SKILL.md +229 -0
  435. package/template/.factory/skill-library/stack/notifications/sendgrid/SKILL.md +220 -0
  436. package/template/.factory/skill-library/stack/notifications/twilio/SKILL.md +204 -0
  437. package/template/.factory/skill-library/stack/observability/datadog/SKILL.md +179 -0
  438. package/template/.factory/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  439. package/template/.factory/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  440. package/template/.factory/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  441. package/template/.factory/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  442. package/template/.factory/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  443. package/template/.factory/skill-library/stack/orm/prisma/SKILL.md +744 -0
  444. package/template/.factory/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  445. package/template/.factory/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  446. package/template/.factory/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  447. package/template/.factory/skill-library/stack/queue/inngest/SKILL.md +438 -0
  448. package/template/.factory/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  449. package/template/.factory/skill-library/stack/search/algolia/SKILL.md +206 -0
  450. package/template/.factory/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  451. package/template/.factory/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  452. package/template/.factory/skill-library/stack/search/typesense/SKILL.md +189 -0
  453. package/template/.factory/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  454. package/template/.factory/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  455. package/template/.factory/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  456. package/template/.factory/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  457. package/template/.factory/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  458. package/template/.factory/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  459. package/template/.factory/skill-library/stack/state/zustand/SKILL.md +483 -0
  460. package/template/.factory/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  461. package/template/.factory/skill-library/stack/storage/cloudflare-r2/SKILL.md +252 -0
  462. package/template/.factory/skill-library/stack/storage/gcs/SKILL.md +229 -0
  463. package/template/.factory/skill-library/stack/testing/playwright/SKILL.md +641 -0
  464. package/template/.factory/skill-library/stack/testing/storybook/SKILL.md +923 -0
  465. package/template/.factory/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  466. package/template/.factory/skill-library/stack/testing/vitest/SKILL.md +714 -0
  467. package/template/.factory/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  468. package/template/.factory/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  469. package/template/.factory/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  470. package/template/.factory/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  471. package/template/.factory/skill-library/stack/ui/svelte-flow/SKILL.md +390 -0
  472. package/template/.factory/skill-library/surface/api/api-caching/SKILL.md +458 -0
  473. package/template/.factory/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  474. package/template/.factory/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  475. package/template/.factory/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  476. package/template/.factory/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  477. package/template/.factory/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  478. package/template/.factory/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  479. package/template/.factory/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  480. package/template/.factory/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  481. package/template/.factory/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  482. package/template/.factory/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  483. package/template/.factory/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  484. package/template/.factory/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  485. package/template/.factory/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  486. package/template/.factory/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  487. package/template/.factory/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  488. package/template/.factory/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  489. package/template/.factory/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  490. package/template/.factory/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  491. package/template/.factory/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  492. package/template/.factory/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  493. package/template/.factory/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  494. package/template/.factory/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  495. package/template/.factory/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  496. package/template/.factory/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  497. package/template/.factory/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  498. package/template/.factory/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  499. package/template/.factory/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  500. package/template/.factory/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  501. package/template/.factory/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  502. package/template/.factory/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  503. package/template/.factory/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  504. package/template/.factory/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  505. package/template/.factory/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  506. package/template/.factory/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  507. package/template/.factory/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  508. package/template/.factory/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  509. package/template/.factory/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  510. package/template/.factory/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  511. package/template/.factory/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  512. package/template/.factory/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  513. package/template/.factory/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  514. package/template/.factory/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  515. package/template/.factory/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  516. package/template/.factory/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  517. package/template/.factory/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  518. package/template/.factory/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  519. package/template/.factory/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  520. package/template/.factory/skill-library/surface/web/i18n-localization/SKILL.md +332 -0
  521. package/template/.factory/skill-library/surface/web/i18n-localization/references/icu-message-format.md +223 -0
  522. package/template/.factory/skill-library/surface/web/i18n-localization/references/intl-api-patterns.md +326 -0
  523. package/template/.factory/skill-library/surface/web/i18n-localization/references/rtl-support.md +298 -0
  524. package/template/.factory/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  525. package/template/.factory/skill-library/surface/web/page-cro/SKILL.md +182 -0
  526. package/template/.factory/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  527. package/template/.factory/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  528. package/template/.factory/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  529. package/template/.factory/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  530. package/template/.factory/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  531. package/template/.factory/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  532. package/template/.factory/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  533. package/template/.factory/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  534. package/template/.factory/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  535. package/template/.factory/skills/accessibility/SKILL.md +522 -0
  536. package/template/.factory/skills/accessibility/references/WCAG.md +162 -0
  537. package/template/.factory/skills/accessibility/references/ia-spec-checklist.md +35 -0
  538. package/template/.factory/skills/adversarial-review/SKILL.md +90 -0
  539. package/template/.factory/skills/antigravity-workflows/SKILL.md +81 -0
  540. package/template/.factory/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  541. package/template/.factory/skills/api-design-principles/SKILL.md +169 -0
  542. package/template/.factory/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  543. package/template/.factory/skills/api-design-principles/assets/rest-api-template.py +182 -0
  544. package/template/.factory/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  545. package/template/.factory/skills/api-design-principles/references/rest-best-practices.md +408 -0
  546. package/template/.factory/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  547. package/template/.factory/skills/api-versioning/SKILL.md +166 -0
  548. package/template/.factory/skills/api-versioning/references/typescript.md +157 -0
  549. package/template/.factory/skills/architecture-mapping/SKILL.md +219 -0
  550. package/template/.factory/skills/audit-ambiguity/SKILL.md +54 -0
  551. package/template/{.claude/skills/workflows/workflow-audit-ambiguity-execute.md → .factory/skills/audit-ambiguity-execute/SKILL.md} +2 -6
  552. package/template/.factory/skills/audit-ambiguity-rubrics/SKILL.md +58 -0
  553. package/template/{.claude/skills/workflows/workflow-bootstrap-agents.md → .factory/skills/bootstrap-agents/SKILL.md} +0 -4
  554. package/template/.factory/skills/bootstrap-agents-fill/SKILL.md +25 -0
  555. package/template/{.claude/skills/workflows/workflow-bootstrap-agents-provision.md → .factory/skills/bootstrap-agents-provision/SKILL.md} +1 -5
  556. package/template/.factory/skills/boundary-not-placeholder/SKILL.md +148 -0
  557. package/template/.factory/skills/brainstorming/SKILL.md +177 -0
  558. package/template/.factory/skills/brand-guidelines/SKILL.md +44 -0
  559. package/template/.factory/skills/clean-code/SKILL.md +196 -0
  560. package/template/.factory/skills/clean-code/references/typescript.md +126 -0
  561. package/template/.factory/skills/code-review-pro/SKILL.md +152 -0
  562. package/template/.factory/skills/completion-checklist/SKILL.md +62 -0
  563. package/template/.factory/skills/concise-planning/SKILL.md +107 -0
  564. package/template/.factory/skills/create-prd/SKILL.md +94 -0
  565. package/template/.factory/skills/create-prd-architecture/SKILL.md +72 -0
  566. package/template/.factory/skills/create-prd-compile/SKILL.md +85 -0
  567. package/template/.factory/skills/create-prd-design-system/SKILL.md +69 -0
  568. package/template/.factory/skills/create-prd-security/SKILL.md +66 -0
  569. package/template/.factory/skills/create-prd-stack/SKILL.md +84 -0
  570. package/template/.factory/skills/cross-layer-consistency/SKILL.md +117 -0
  571. package/template/.factory/skills/database-schema-design/SKILL.md +205 -0
  572. package/template/.factory/skills/database-schema-design/references/relational.md +228 -0
  573. package/template/.factory/skills/debug-by-test/SKILL.md +51 -0
  574. package/template/.factory/skills/decision-classification/SKILL.md +115 -0
  575. package/template/.factory/skills/decompose-architecture/SKILL.md +72 -0
  576. package/template/.factory/skills/decompose-architecture-structure/SKILL.md +62 -0
  577. package/template/.factory/skills/decompose-architecture-validate/SKILL.md +72 -0
  578. package/template/.factory/skills/deployment-procedures/SKILL.md +241 -0
  579. package/template/.factory/skills/design-anti-cliche/SKILL.md +159 -0
  580. package/template/.factory/skills/design-direction/SKILL.md +45 -0
  581. package/template/.factory/skills/error-handling-patterns/SKILL.md +226 -0
  582. package/template/.factory/skills/error-handling-patterns/references/go.md +162 -0
  583. package/template/.factory/skills/error-handling-patterns/references/python.md +262 -0
  584. package/template/.factory/skills/error-handling-patterns/references/rust.md +112 -0
  585. package/template/.factory/skills/error-handling-patterns/references/typescript.md +178 -0
  586. package/template/.factory/skills/evolve-contract/SKILL.md +24 -0
  587. package/template/.factory/skills/evolve-feature/SKILL.md +18 -0
  588. package/template/{.claude/skills/workflows/workflow-evolve-feature-cascade.md → .factory/skills/evolve-feature-cascade/SKILL.md} +0 -4
  589. package/template/.factory/skills/evolve-feature-classify/SKILL.md +21 -0
  590. package/template/.factory/skills/extensibility/SKILL.md +54 -0
  591. package/template/.factory/skills/find-skills/SKILL.md +145 -0
  592. package/template/.factory/skills/git-advanced/SKILL.md +972 -0
  593. package/template/.factory/skills/git-workflow/SKILL.md +420 -0
  594. package/template/.factory/skills/idea-extraction/SKILL.md +644 -0
  595. package/template/.factory/skills/ideate/SKILL.md +77 -0
  596. package/template/.factory/skills/ideate-discover/SKILL.md +89 -0
  597. package/template/.factory/skills/ideate-extract/SKILL.md +77 -0
  598. package/template/.factory/skills/ideate-validate/SKILL.md +75 -0
  599. package/template/.factory/skills/implement-slice/SKILL.md +64 -0
  600. package/template/.factory/skills/implement-slice-setup/SKILL.md +70 -0
  601. package/template/.factory/skills/implement-slice-tdd/SKILL.md +78 -0
  602. package/template/.factory/skills/logging-best-practices/SKILL.md +192 -0
  603. package/template/.factory/skills/logging-best-practices/references/go.md +49 -0
  604. package/template/.factory/skills/logging-best-practices/references/python.md +52 -0
  605. package/template/.factory/skills/logging-best-practices/references/typescript.md +215 -0
  606. package/template/.factory/skills/memory-capture/SKILL.md +86 -0
  607. package/template/.factory/skills/migration-management/SKILL.md +200 -0
  608. package/template/.factory/skills/migration-management/references/relational.md +214 -0
  609. package/template/.factory/skills/minimalist-surgical-development/SKILL.md +135 -0
  610. package/template/.factory/skills/parallel-agents/SKILL.md +165 -0
  611. package/template/.factory/skills/parallel-debugging/SKILL.md +135 -0
  612. package/template/.factory/skills/parallel-feature-development/SKILL.md +157 -0
  613. package/template/.factory/skills/performance-budgeting/SKILL.md +144 -0
  614. package/template/.factory/skills/pipeline-rubrics/SKILL.md +51 -0
  615. package/template/.factory/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  616. package/template/.factory/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  617. package/template/.factory/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  618. package/template/.factory/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  619. package/template/.factory/skills/pipeline-rubrics/references/scoring.md +32 -0
  620. package/template/.factory/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
  621. package/template/.factory/skills/plan-phase/SKILL.md +62 -0
  622. package/template/.factory/skills/plan-phase-preflight/SKILL.md +75 -0
  623. package/template/{.claude/skills/workflows/workflow-plan-phase-write.md → .factory/skills/plan-phase-write/SKILL.md} +0 -4
  624. package/template/.factory/skills/prd-templates/SKILL.md +107 -0
  625. package/template/.factory/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
  626. package/template/.factory/skills/prd-templates/references/architecture-design-template.md +88 -0
  627. package/template/.factory/skills/prd-templates/references/be-spec-classification.md +41 -0
  628. package/template/.factory/skills/prd-templates/references/be-spec-template.md +107 -0
  629. package/template/.factory/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
  630. package/template/.factory/skills/prd-templates/references/constraint-exploration.md +41 -0
  631. package/template/.factory/skills/prd-templates/references/data-placement-template.md +74 -0
  632. package/template/.factory/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
  633. package/template/.factory/skills/prd-templates/references/decision-propagation.md +121 -0
  634. package/template/.factory/skills/prd-templates/references/decomposition-templates.md +226 -0
  635. package/template/.factory/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
  636. package/template/.factory/skills/prd-templates/references/design-system-decisions.md +198 -0
  637. package/template/.factory/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
  638. package/template/.factory/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
  639. package/template/.factory/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
  640. package/template/.factory/skills/prd-templates/references/engineering-standards-template.md +126 -0
  641. package/template/.factory/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
  642. package/template/.factory/skills/prd-templates/references/expansion-modes.md +27 -0
  643. package/template/.factory/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  644. package/template/.factory/skills/prd-templates/references/fe-spec-template.md +90 -0
  645. package/template/.factory/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
  646. package/template/.factory/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
  647. package/template/.factory/skills/prd-templates/references/fractal-cx-template.md +58 -0
  648. package/template/.factory/skills/prd-templates/references/fractal-feature-template.md +93 -0
  649. package/template/.factory/skills/prd-templates/references/fractal-node-index-template.md +55 -0
  650. package/template/.factory/skills/prd-templates/references/gate-applicability.md +92 -0
  651. package/template/.factory/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
  652. package/template/.factory/skills/prd-templates/references/ideation-index-template.md +111 -0
  653. package/template/.factory/skills/prd-templates/references/ideation-meta-template.md +126 -0
  654. package/template/.factory/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  655. package/template/.factory/skills/prd-templates/references/input-classification.md +23 -0
  656. package/template/.factory/skills/prd-templates/references/map-guard-protocol.md +65 -0
  657. package/template/.factory/skills/prd-templates/references/operational-templates.md +116 -0
  658. package/template/.factory/skills/prd-templates/references/persona-completeness-gate.md +20 -0
  659. package/template/.factory/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  660. package/template/.factory/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
  661. package/template/.factory/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
  662. package/template/.factory/skills/prd-templates/references/shard-split-remediation.md +157 -0
  663. package/template/.factory/skills/prd-templates/references/skill-loading-protocol.md +36 -0
  664. package/template/.factory/skills/prd-templates/references/slice-completion-gates.md +29 -0
  665. package/template/.factory/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
  666. package/template/.factory/skills/prd-templates/references/surface-model.md +61 -0
  667. package/template/.factory/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  668. package/template/.factory/skills/prd-templates/references/vision-template.md +57 -0
  669. package/template/.factory/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
  670. package/template/.factory/skills/prd-templates/references/write-verification-protocol.md +57 -0
  671. package/template/.factory/skills/prompt-engineer/SKILL.md +203 -0
  672. package/template/.factory/skills/propagate-decision/SKILL.md +18 -0
  673. package/template/{.claude/skills/workflows/workflow-propagate-decision-apply.md → .factory/skills/propagate-decision-apply/SKILL.md} +1 -5
  674. package/template/.factory/skills/propagate-decision-scan/SKILL.md +20 -0
  675. package/template/.factory/skills/question-vs-command/SKILL.md +93 -0
  676. package/template/.factory/skills/regex-patterns/SKILL.md +333 -0
  677. package/template/.factory/skills/regex-patterns/references/go.md +44 -0
  678. package/template/.factory/skills/regex-patterns/references/javascript.md +63 -0
  679. package/template/.factory/skills/regex-patterns/references/python.md +77 -0
  680. package/template/.factory/skills/regex-patterns/references/rust.md +43 -0
  681. package/template/.factory/skills/remediate-pipeline/SKILL.md +18 -0
  682. package/template/.factory/skills/remediate-pipeline-assess/SKILL.md +21 -0
  683. package/template/{.claude/skills/workflows/workflow-remediate-pipeline-execute.md → .factory/skills/remediate-pipeline-execute/SKILL.md} +0 -4
  684. package/template/.factory/skills/remediate-shard-split/SKILL.md +21 -0
  685. package/template/{.claude/skills/workflows/workflow-resolve-ambiguity.md → .factory/skills/resolve-ambiguity/SKILL.md} +2 -5
  686. package/template/.factory/skills/resolve-skill/SKILL.md +195 -0
  687. package/template/.factory/skills/security-first/SKILL.md +56 -0
  688. package/template/.factory/skills/security-scanning-security-hardening/SKILL.md +231 -0
  689. package/template/.factory/skills/session-continuity/SKILL.md +734 -0
  690. package/template/.factory/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  691. package/template/.factory/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  692. package/template/.factory/skills/session-continuity/protocols/03-progress-update.md +70 -0
  693. package/template/.factory/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  694. package/template/.factory/skills/session-continuity/protocols/05-session-close.md +37 -0
  695. package/template/.factory/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  696. package/template/.factory/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  697. package/template/.factory/skills/session-continuity/protocols/08-spec-pipeline-update.md +65 -0
  698. package/template/.factory/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  699. package/template/.factory/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
  700. package/template/.factory/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
  701. package/template/.factory/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  702. package/template/.factory/skills/setup-cfsa/SKILL.md +200 -0
  703. package/template/.factory/skills/setup-fill-placeholders/SKILL.md +192 -0
  704. package/template/.factory/skills/setup-provision-skills/SKILL.md +82 -0
  705. package/template/.factory/skills/setup-verify/SKILL.md +89 -0
  706. package/template/.factory/skills/setup-workspace/SKILL.md +83 -0
  707. package/template/.factory/skills/setup-workspace-cicd/SKILL.md +56 -0
  708. package/template/.factory/skills/setup-workspace-data/SKILL.md +69 -0
  709. package/template/.factory/skills/setup-workspace-hosting/SKILL.md +59 -0
  710. package/template/.factory/skills/setup-workspace-scaffold/SKILL.md +72 -0
  711. package/template/.factory/skills/single-question/SKILL.md +61 -0
  712. package/template/.factory/skills/skill-creator/SKILL.md +203 -0
  713. package/template/.factory/skills/skill-mcp-first/SKILL.md +47 -0
  714. package/template/.factory/skills/source-before-ask/SKILL.md +95 -0
  715. package/template/.factory/skills/spec-writing/SKILL.md +110 -0
  716. package/template/.factory/skills/specificity-standards/SKILL.md +66 -0
  717. package/template/.factory/skills/sync-kit/SKILL.md +23 -0
  718. package/template/.factory/skills/systematic-debugging/CREATION-LOG.md +119 -0
  719. package/template/.factory/skills/systematic-debugging/SKILL.md +297 -0
  720. package/template/.factory/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  721. package/template/.factory/skills/systematic-debugging/condition-based-waiting.md +115 -0
  722. package/template/.factory/skills/systematic-debugging/defense-in-depth.md +122 -0
  723. package/template/.factory/skills/systematic-debugging/find-polluter.sh +63 -0
  724. package/template/.factory/skills/systematic-debugging/root-cause-tracing.md +169 -0
  725. package/template/.factory/skills/systematic-debugging/test-academic.md +14 -0
  726. package/template/.factory/skills/systematic-debugging/test-pressure-1.md +58 -0
  727. package/template/.factory/skills/systematic-debugging/test-pressure-2.md +68 -0
  728. package/template/.factory/skills/systematic-debugging/test-pressure-3.md +69 -0
  729. package/template/.factory/skills/tdd-contract-first/SKILL.md +69 -0
  730. package/template/.factory/skills/tdd-workflow/SKILL.md +186 -0
  731. package/template/.factory/skills/tdd-workflow/references/typescript.md +231 -0
  732. package/template/.factory/skills/tech-stack-catalog/SKILL.md +49 -0
  733. package/template/.factory/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
  734. package/template/.factory/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  735. package/template/.factory/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  736. package/template/.factory/skills/technical-writer/SKILL.md +242 -0
  737. package/template/.factory/skills/testing-strategist/SKILL.md +319 -0
  738. package/template/.factory/skills/testing-strategist/references/typescript.md +328 -0
  739. package/template/.factory/skills/update-architecture-map/SKILL.md +21 -0
  740. package/template/.factory/skills/validate-phase/SKILL.md +62 -0
  741. package/template/.factory/skills/validate-phase-quality/SKILL.md +67 -0
  742. package/template/.factory/skills/validate-phase-readiness/SKILL.md +74 -0
  743. package/template/.factory/skills/verification-before-completion/SKILL.md +97 -0
  744. package/template/.factory/skills/verify-infrastructure/SKILL.md +25 -0
  745. package/template/.factory/skills/vertical-slices/SKILL.md +85 -0
  746. package/template/.factory/skills/workflow-automation/SKILL.md +166 -0
  747. package/template/.factory/skills/workflow-automation/references/inngest.md +88 -0
  748. package/template/.factory/skills/workflow-automation/references/temporal.md +64 -0
  749. package/template/.factory/skills/write-architecture-spec/SKILL.md +78 -0
  750. package/template/{.claude/skills/workflows/workflow-write-architecture-spec-deepen.md → .factory/skills/write-architecture-spec-deepen/SKILL.md} +3 -7
  751. package/template/.factory/skills/write-architecture-spec-design/SKILL.md +80 -0
  752. package/template/.factory/skills/write-be-spec/SKILL.md +75 -0
  753. package/template/.factory/skills/write-be-spec-classify/SKILL.md +80 -0
  754. package/template/{.claude/skills/workflows/workflow-write-be-spec-write.md → .factory/skills/write-be-spec-write/SKILL.md} +2 -6
  755. package/template/.factory/skills/write-fe-spec/SKILL.md +79 -0
  756. package/template/.factory/skills/write-fe-spec-classify/SKILL.md +77 -0
  757. package/template/{.claude/skills/workflows/workflow-write-fe-spec-write.md → .factory/skills/write-fe-spec-write/SKILL.md} +2 -6
  758. package/template/.memory/.obsidian/app.json +13 -0
  759. package/template/.memory/.obsidian/core-plugins.json +10 -0
  760. package/template/.memory/.obsidian/daily-notes.json +5 -0
  761. package/template/.memory/.obsidian/workspace.json +55 -0
  762. package/template/.memory/README.md +18 -0
  763. package/template/.memory/config.json +6 -0
  764. package/template/.memory/hooks/README.md +11 -0
  765. package/template/.memory/hooks/pre-compact.mjs +27 -0
  766. package/template/.memory/hooks/session-end.mjs +29 -0
  767. package/template/.memory/hooks/session-start.mjs +20 -0
  768. package/template/.memory/mcp-server/README.md +10 -0
  769. package/template/.memory/mcp-server/client.mjs +41 -0
  770. package/template/.memory/mcp-server/daemon.mjs +152 -0
  771. package/template/.memory/mcp-server/index.mjs +9 -0
  772. package/template/.memory/mcp-server/runtime.mjs +64 -0
  773. package/template/.memory/mcp-server/start.mjs +44 -0
  774. package/template/.memory/mcp-server/tools/compile.mjs +5 -0
  775. package/template/.memory/mcp-server/tools/flush.mjs +5 -0
  776. package/template/.memory/mcp-server/tools/graph.mjs +34 -0
  777. package/template/.memory/mcp-server/tools/ingest.mjs +33 -0
  778. package/template/.memory/mcp-server/tools/lint.mjs +5 -0
  779. package/template/.memory/mcp-server/tools/query.mjs +46 -0
  780. package/template/.memory/migrate/README.md +9 -0
  781. package/template/.memory/migrate/migrate-legacy.mjs +151 -0
  782. package/template/.memory/pipeline/README.md +15 -0
  783. package/template/.memory/pipeline/compile.mjs +356 -0
  784. package/template/.memory/pipeline/flush.mjs +33 -0
  785. package/template/.memory/pipeline/ingest.mjs +39 -0
  786. package/template/.memory/pipeline/lint.mjs +54 -0
  787. package/template/.memory/pipeline/mirror-plans.mjs +110 -0
  788. package/template/.memory/pipeline/query.mjs +118 -0
  789. package/template/.memory/pipeline/semantic.mjs +193 -0
  790. package/template/.memory/pipeline/semantic_backend.py +25 -0
  791. package/template/.memory/pipeline/spec-graph.mjs +358 -0
  792. package/template/.memory/pipeline/utils.mjs +206 -0
  793. package/template/.memory/raw/daily/.gitkeep +0 -0
  794. package/template/.memory/raw/events/.gitkeep +0 -0
  795. package/template/.memory/raw/sessions/.gitkeep +0 -0
  796. package/template/.memory/schema/entry.schema.json +21 -0
  797. package/template/.memory/schema/index.schema.json +17 -0
  798. package/template/.memory/schema/spec-graph.schema.json +50 -0
  799. package/template/.memory/wiki/README.md +15 -0
  800. package/template/.memory/wiki/knowledge/.gitkeep +0 -0
  801. package/template/.memory/wiki/specs/.gitkeep +0 -0
  802. package/template/.memory/wiki/specs/README.md +20 -0
  803. package/template/.memory/wiki/specs/architecture/.gitkeep +0 -0
  804. package/template/.memory/wiki/specs/audits/.gitkeep +0 -0
  805. package/template/.memory/wiki/specs/be/.gitkeep +0 -0
  806. package/template/.memory/wiki/specs/fe/.gitkeep +0 -0
  807. package/template/.memory/wiki/specs/ia/.gitkeep +0 -0
  808. package/template/.memory/wiki/specs/ideation/.gitkeep +0 -0
  809. package/template/.memory/wiki/specs/phases/.gitkeep +0 -0
  810. package/template/.memory/wiki-home.md +50 -0
  811. package/template/AGENTS.md +11 -9
  812. package/template/CLAUDE.md +34 -26
  813. package/template/CODEX.md +118 -0
  814. package/template/GEMINI.md +12 -11
  815. package/template/docs/README.md +70 -27
  816. package/template/docs/kit-architecture.md +113 -33
  817. package/template/.claude/memory/README.md +0 -134
  818. package/template/.claude/memory/blockers.md +0 -10
  819. package/template/.claude/memory/decisions.md +0 -12
  820. package/template/.claude/memory/patterns.md +0 -12
  821. package/template/.claude/memory/sessions/README.md +0 -5
  822. package/template/.claude/skills/workflows/README.md +0 -79
  823. package/template/docs/audits/README.md +0 -10
  824. package/template/docs/plans/README.md +0 -22
  825. package/template/docs/plans/be/README.md +0 -11
  826. package/template/docs/plans/fe/README.md +0 -11
  827. package/template/docs/plans/ia/README.md +0 -17
  828. package/template/docs/plans/ia/deep-dives/README.md +0 -5
  829. package/template/docs/plans/ideation/README.md +0 -28
  830. package/template/docs/plans/phases/README.md +0 -11
  831. /package/template/{docs/audits → .claude/progress}/.gitkeep +0 -0
  832. /package/template/{docs/plans → .claude/progress/memory}/.gitkeep +0 -0
  833. /package/template/{docs/plans/be → .claude/progress/sessions}/.gitkeep +0 -0
  834. /package/template/{docs/plans/fe → .factory/progress}/.gitkeep +0 -0
  835. /package/template/{docs/plans/ia → .factory/progress/memory}/.gitkeep +0 -0
  836. /package/template/{docs/plans/ia/deep-dives → .factory/skills/skill-creator/references}/.gitkeep +0 -0
  837. /package/template/{docs/plans/ideation → .factory/skills/skill-creator/scripts}/.gitkeep +0 -0
  838. /package/template/{docs/plans/phases → .memory/raw/assets}/.gitkeep +0 -0
package/bin/cli.mjs CHANGED
@@ -1,9 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { existsSync, mkdirSync, cpSync, readdirSync, readFileSync, statSync, rmSync } from "node:fs";
3
+ import { existsSync, mkdirSync, cpSync, readdirSync, readFileSync, statSync, rmSync, writeFileSync } from "node:fs";
4
4
  import { resolve, join, dirname } from "node:path";
5
+ import { pathToFileURL } from "node:url";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { argv, exit, cwd } from "node:process";
8
+ import { createInterface } from "node:readline";
7
9
 
8
10
  const __filename = fileURLToPath(import.meta.url);
9
11
  const __dirname = dirname(__filename);
@@ -21,6 +23,7 @@ const c = {
21
23
  red: isTTY ? "\x1b[31m" : "",
22
24
  cyan: isTTY ? "\x1b[36m" : "",
23
25
  magenta: isTTY ? "\x1b[35m" : "",
26
+ white: isTTY ? "\x1b[37m" : "",
24
27
  };
25
28
 
26
29
  // --- Logging ---
@@ -30,8 +33,150 @@ const info = (msg) => log(`${c.green}✓${c.reset} ${msg}`);
30
33
  const warn = (msg) => log(`${c.yellow}⚠${c.reset} ${msg}`);
31
34
  const error = (msg) => { console.error(`${c.red}✗${c.reset} ${msg}`); };
32
35
 
36
+ // --- Runtime display names (fallback to directory name for unknown runtimes) ---
37
+ const RUNTIME_DISPLAY = {
38
+ ".agent": { name: "Antigravity", desc: "Antigravity, Cursor, Codex, Gemini CLI" },
39
+ ".claude": { name: "Claude Code", desc: "Standalone Claude Code runtime" },
40
+ ".factory": { name: "Factory Droid", desc: "Standalone Factory Droid runtime" },
41
+ };
42
+
43
+ // --- Discover available runtimes from template/ ---
44
+ function discoverRuntimes() {
45
+ if (!existsSync(TEMPLATE_DIR)) return [];
46
+ return readdirSync(TEMPLATE_DIR, { withFileTypes: true })
47
+ .filter(e => e.isDirectory() && e.name.startsWith(".") && existsSync(join(TEMPLATE_DIR, e.name, "kit-sync.md")))
48
+ .map(e => {
49
+ const meta = RUNTIME_DISPLAY[e.name];
50
+ return {
51
+ dir: e.name,
52
+ name: meta?.name || e.name.replace(/^\./, ""),
53
+ desc: meta?.desc || "",
54
+ files: countFiles(join(TEMPLATE_DIR, e.name)),
55
+ };
56
+ })
57
+ .sort((a, b) => a.dir.localeCompare(b.dir));
58
+ }
59
+
60
+ // --- Interactive multi-select TUI ---
61
+ function multiSelect(runtimes) {
62
+ return new Promise((resolve, reject) => {
63
+ if (!isTTY || !process.stdin.setRawMode) {
64
+ reject(new Error("Interactive mode requires a TTY. Use --agent to specify runtimes."));
65
+ return;
66
+ }
67
+
68
+ const selected = new Set();
69
+ let cursor = 0;
70
+ const stdin = process.stdin;
71
+
72
+ function render() {
73
+ // Move cursor to start and clear
74
+ process.stdout.write(`\x1b[${runtimes.length + 2}A\x1b[J`);
75
+ draw();
76
+ }
77
+
78
+ function draw() {
79
+ log(`${c.bold}Select agent runtimes to install:${c.reset} ${c.dim}(multiple allowed)${c.reset}`);
80
+ log("");
81
+ for (let i = 0; i < runtimes.length; i++) {
82
+ const rt = runtimes[i];
83
+ const isCur = i === cursor;
84
+ const isSel = selected.has(i);
85
+ const pointer = isCur ? `${c.cyan}>${c.reset}` : " ";
86
+ const check = isSel ? `${c.green}●${c.reset}` : `${c.dim}○${c.reset}`;
87
+ const name = isCur ? `${c.bold}${c.white}${rt.name}${c.reset}` : rt.name;
88
+ const dir = `${c.dim}${rt.dir}/${c.reset}`;
89
+ const desc = rt.desc ? ` ${c.dim}${rt.desc}${c.reset}` : "";
90
+ const files = `${c.dim}(${rt.files} files)${c.reset}`;
91
+ log(` ${pointer} ${check} ${name.padEnd(isCur ? 33 : 20)} ${dir.padEnd(isCur ? 26 : 22)} ${files}${desc}`);
92
+ }
93
+ log("");
94
+ log(` ${c.dim}↑↓${c.reset} move ${c.dim}space${c.reset} toggle ${c.dim}a${c.reset} all ${c.dim}enter${c.reset} confirm ${c.dim}q${c.reset} quit`);
95
+ }
96
+
97
+ // Initial draw
98
+ draw();
99
+
100
+ stdin.setRawMode(true);
101
+ stdin.resume();
102
+ stdin.setEncoding("utf-8");
103
+
104
+ function cleanup() {
105
+ stdin.setRawMode(false);
106
+ stdin.pause();
107
+ stdin.removeListener("data", onKey);
108
+ }
109
+
110
+ function onKey(key) {
111
+ // Ctrl+C
112
+ if (key === "\x03") {
113
+ cleanup();
114
+ log("\nAborted.");
115
+ exit(0);
116
+ }
117
+ // q
118
+ if (key === "q") {
119
+ cleanup();
120
+ log("\nAborted.");
121
+ exit(0);
122
+ }
123
+ // Enter
124
+ if (key === "\r" || key === "\n") {
125
+ cleanup();
126
+ if (selected.size === 0) {
127
+ render();
128
+ log(`\n${c.yellow}⚠${c.reset} Select at least one runtime.`);
129
+ stdin.setRawMode(true);
130
+ stdin.resume();
131
+ stdin.on("data", onKey);
132
+ return;
133
+ }
134
+ const result = [...selected].sort().map(i => runtimes[i]);
135
+ resolve(result);
136
+ return;
137
+ }
138
+ // Space — toggle
139
+ if (key === " ") {
140
+ if (selected.has(cursor)) {
141
+ selected.delete(cursor);
142
+ } else {
143
+ selected.add(cursor);
144
+ }
145
+ render();
146
+ return;
147
+ }
148
+ // a — toggle all
149
+ if (key === "a") {
150
+ if (selected.size === runtimes.length) {
151
+ selected.clear();
152
+ } else {
153
+ for (let i = 0; i < runtimes.length; i++) selected.add(i);
154
+ }
155
+ render();
156
+ return;
157
+ }
158
+ // Arrow keys (escape sequences)
159
+ if (key === "\x1b[A" || key === "k") { // Up
160
+ cursor = (cursor - 1 + runtimes.length) % runtimes.length;
161
+ render();
162
+ return;
163
+ }
164
+ if (key === "\x1b[B" || key === "j") { // Down
165
+ cursor = (cursor + 1) % runtimes.length;
166
+ render();
167
+ return;
168
+ }
169
+ }
170
+
171
+ stdin.on("data", onKey);
172
+ });
173
+ }
174
+
33
175
  // --- Usage ---
34
176
  function usage() {
177
+ const runtimes = discoverRuntimes();
178
+ const rtList = runtimes.map(r => r.dir.replace(/^\./, "")).join(", ");
179
+
35
180
  log(`
36
181
  ${c.bold}${c.magenta}CFSA Antigravity${c.reset} ${c.dim}v${PKG.version}${c.reset}
37
182
  ${c.dim}Constraint-First Specification Architecture for AI agents${c.reset}
@@ -44,34 +189,42 @@ ${c.bold}Commands:${c.reset}
44
189
  ${c.cyan}status${c.reset} Check installation status
45
190
  ${c.cyan}version${c.reset} Show version
46
191
 
192
+ ${c.bold}Status Options:${c.reset}
193
+ --json Output machine-readable status JSON
194
+
47
195
  ${c.bold}Init Options:${c.reset}
48
- --agent <type> Agent type: antigravity or claude (default: antigravity)
49
- --force Overwrite existing agent folder
50
- --path <dir> Install into specific directory (default: current directory)
51
- --dry-run Preview what would be copied without making changes
52
- --quiet Suppress output (for CI/CD)
196
+ --agent <list> Comma-separated runtimes for non-interactive install (${rtList})
197
+ --force Overwrite existing agent folders
198
+ --path <dir> Install into specific directory (default: current directory)
199
+ --dry-run Preview what would be copied without making changes
200
+ --quiet Suppress output (for CI/CD — installs all runtimes)
201
+ --memory Scaffold unified .memory/ and MCP integration
202
+ --migrate-memory Scaffold .memory/ and migrate legacy runtime memory
53
203
 
54
204
  ${c.bold}Examples:${c.reset}
55
- ${c.dim}# Install Antigravity version (default)${c.reset}
205
+ ${c.dim}# Interactive pick which runtimes to install${c.reset}
56
206
  npx cfsa-antigravity init
57
207
 
58
- ${c.dim}# Install Claude Code version${c.reset}
59
- npx cfsa-antigravity init --agent claude
208
+ ${c.dim}# Non-interactive install specific runtimes${c.reset}
209
+ npx cfsa-antigravity init --agent claude,factory
210
+
211
+ ${c.dim}# Install a single runtime${c.reset}
212
+ npx cfsa-antigravity init --agent factory
60
213
 
61
214
  ${c.dim}# Install into a specific directory${c.reset}
62
215
  npx cfsa-antigravity init --agent claude --path ./my-project
63
216
 
64
217
  ${c.dim}# Preview what will be installed${c.reset}
65
- npx cfsa-antigravity init --agent claude --dry-run
218
+ npx cfsa-antigravity init --dry-run
66
219
 
67
220
  ${c.dim}# Overwrite existing installation${c.reset}
68
- npx cfsa-antigravity init --agent claude --force
221
+ npx cfsa-antigravity init --force
69
222
  `);
70
223
  }
71
224
 
72
225
  // --- Parse Arguments ---
73
226
  function parseArgs(args) {
74
- const parsed = { command: null, agent: null, force: false, dryRun: false, path: null, quiet: false };
227
+ const parsed = { command: null, agents: null, force: false, dryRun: false, path: null, quiet: false, memory: false, migrateMemory: false, json: false };
75
228
 
76
229
  let i = 0;
77
230
  while (i < args.length) {
@@ -100,15 +253,11 @@ function parseArgs(args) {
100
253
  case "--agent":
101
254
  case "-a":
102
255
  i++;
103
- parsed.agent = args[i];
104
- if (!parsed.agent) {
105
- error("--agent requires an argument (antigravity or claude)");
106
- exit(1);
107
- }
108
- if (!["antigravity", "claude"].includes(parsed.agent)) {
109
- error(`Invalid agent type: ${parsed.agent}. Must be 'antigravity' or 'claude'`);
256
+ if (!args[i]) {
257
+ error("--agent requires a comma-separated list of runtimes");
110
258
  exit(1);
111
259
  }
260
+ parsed.agents = args[i].split(",").map(s => s.trim()).filter(Boolean);
112
261
  break;
113
262
  case "--path":
114
263
  case "-p":
@@ -119,6 +268,16 @@ function parseArgs(args) {
119
268
  exit(1);
120
269
  }
121
270
  break;
271
+ case "--memory":
272
+ parsed.memory = true;
273
+ break;
274
+ case "--migrate-memory":
275
+ parsed.memory = true;
276
+ parsed.migrateMemory = true;
277
+ break;
278
+ case "--json":
279
+ parsed.json = true;
280
+ break;
122
281
  case "--version":
123
282
  case "-v":
124
283
  parsed.command = "version";
@@ -129,7 +288,6 @@ function parseArgs(args) {
129
288
  usage();
130
289
  exit(1);
131
290
  }
132
- // Treat first positional as command if not set
133
291
  if (!parsed.command) {
134
292
  parsed.command = arg;
135
293
  }
@@ -164,62 +322,226 @@ function ensureTemplateDir() {
164
322
  }
165
323
  }
166
324
 
167
- // --- Init Command ---
168
- function cmdInit(opts) {
169
- ensureTemplateDir();
325
+ // --- Resolve agent names to runtime directories ---
326
+ function resolveAgentNames(agentNames, available) {
327
+ const resolved = [];
328
+ for (const name of agentNames) {
329
+ // Try exact dir match first (.agent, .claude, .factory)
330
+ const dotName = name.startsWith(".") ? name : `.${name}`;
331
+ const match = available.find(r => r.dir === dotName);
332
+ if (match) {
333
+ resolved.push(match);
334
+ continue;
335
+ }
336
+ // Try display name match (case-insensitive)
337
+ const byName = available.find(r => r.name.toLowerCase() === name.toLowerCase());
338
+ if (byName) {
339
+ resolved.push(byName);
340
+ continue;
341
+ }
342
+ // Legacy single-agent names: "antigravity" / "codex" → .agent
343
+ if (name === "antigravity" || name === "codex") {
344
+ const agentRt = available.find(r => r.dir === ".agent");
345
+ if (agentRt && !resolved.find(r => r.dir === ".agent")) {
346
+ resolved.push(agentRt);
347
+ }
348
+ continue;
349
+ }
350
+ error(`Unknown runtime: ${name}`);
351
+ const names = available.map(r => r.dir.replace(/^\./, "")).join(", ");
352
+ error(`Available: ${names}`);
353
+ exit(1);
354
+ }
355
+ // Deduplicate
356
+ const seen = new Set();
357
+ return resolved.filter(r => {
358
+ if (seen.has(r.dir)) return false;
359
+ seen.add(r.dir);
360
+ return true;
361
+ });
362
+ }
170
363
 
171
- const targetDir = resolve(opts.path || cwd());
172
- const agentType = opts.agent || "antigravity";
173
- const agentDir = agentType === "claude" ? ".claude" : ".agent";
364
+ function readJsonFile(filePath, fallback = {}) {
365
+ if (!existsSync(filePath)) return fallback;
366
+ return JSON.parse(readFileSync(filePath, "utf-8"));
367
+ }
174
368
 
175
- log("");
176
- log(`${c.bold}${c.magenta}CFSA Antigravity${c.reset} ${c.dim}v${PKG.version}${c.reset}`);
177
- log(`${c.dim}Installing into: ${targetDir}${c.reset}`);
178
- log(`${c.dim}Agent type: ${agentType}${c.reset}`);
179
- log("");
369
+ function writeJsonFile(filePath, value) {
370
+ mkdirSync(dirname(filePath), { recursive: true });
371
+ writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
372
+ }
180
373
 
181
- // Check if target directory exists
182
- if (!existsSync(targetDir)) {
183
- if (opts.dryRun) {
184
- warn(`Directory does not exist: ${targetDir} (would create)`);
185
- } else {
186
- mkdirSync(targetDir, { recursive: true });
187
- info(`Created directory: ${targetDir}`);
374
+ function mergeUniqueObjects(existing = [], additions = [], matcher = (left, right) => JSON.stringify(left) === JSON.stringify(right)) {
375
+ const merged = [...existing];
376
+ for (const addition of additions) {
377
+ if (!merged.some(entry => matcher(entry, addition))) {
378
+ merged.push(addition);
188
379
  }
189
380
  }
381
+ return merged;
382
+ }
383
+
384
+ function mergeHookConfig(existing = {}, additions = {}) {
385
+ const merged = { ...existing };
386
+ for (const [eventName, hookGroups] of Object.entries(additions)) {
387
+ const currentGroups = Array.isArray(merged[eventName]) ? merged[eventName] : [];
388
+ merged[eventName] = mergeUniqueObjects(currentGroups, hookGroups, (left, right) => {
389
+ return left.matcher === right.matcher && JSON.stringify(left.hooks || []) === JSON.stringify(right.hooks || []);
390
+ });
391
+ }
392
+ return merged;
393
+ }
190
394
 
191
- // Copy agent-specific folder
192
- const srcAgentDir = join(TEMPLATE_DIR, agentDir);
193
- const destAgentDir = join(targetDir, agentDir);
395
+ function installMemoryScaffold(targetDir, opts) {
396
+ const srcMemoryDir = join(TEMPLATE_DIR, ".memory");
397
+ const destMemoryDir = join(targetDir, ".memory");
194
398
 
195
- if (!existsSync(srcAgentDir)) {
196
- error(`${agentDir}/ not found in template. Package may be corrupted.`);
399
+ if (!existsSync(srcMemoryDir)) {
400
+ error("template/.memory/ not found. Run npm run build to regenerate the template.");
197
401
  exit(1);
198
402
  }
199
403
 
200
- let copied = 0;
201
- let skipped = 0;
404
+ if (opts.dryRun) {
405
+ info(`Would copy ${c.bold}.memory/${c.reset} (${countFiles(srcMemoryDir)} files)`);
406
+ info(`Would merge ${c.bold}.mcp.json${c.reset} and ${c.bold}.claude/settings.json${c.reset}`);
407
+ return;
408
+ }
409
+
410
+ if (existsSync(destMemoryDir) && opts.force) {
411
+ rmSync(destMemoryDir, { recursive: true, force: true });
412
+ }
202
413
 
203
- // Check if agent directory already exists
204
- if (existsSync(destAgentDir) && !opts.force) {
205
- const fileCount = countFiles(srcAgentDir);
206
- skipped += fileCount;
207
- warn(`Skipped ${c.bold}${agentDir}/${c.reset} (already exists — use --force to overwrite)`);
414
+ if (!existsSync(destMemoryDir)) {
415
+ cpSync(srcMemoryDir, destMemoryDir, { recursive: true });
416
+ info(`Copied ${c.bold}.memory/${c.reset} (${countFiles(destMemoryDir)} files)`);
208
417
  } else {
209
- if (opts.dryRun) {
210
- const fileCount = countFiles(srcAgentDir);
211
- copied += fileCount;
212
- info(`Would copy ${c.bold}${agentDir}/${c.reset} (${fileCount} files)`);
418
+ cpSync(srcMemoryDir, destMemoryDir, { recursive: true, force: false, errorOnExist: false });
419
+ info(`Merged ${c.bold}.memory/${c.reset}`);
420
+ }
421
+
422
+ const mcpPath = join(targetDir, ".mcp.json");
423
+ const currentMcp = readJsonFile(mcpPath, {});
424
+ const nextMcp = {
425
+ ...currentMcp,
426
+ mcpServers: {
427
+ ...(currentMcp.mcpServers || {}),
428
+ "cfsa-memory": {
429
+ command: "node",
430
+ args: [".memory/mcp-server/client.mjs"],
431
+ env: {
432
+ MEMORY_ROOT: ".memory",
433
+ CFSA_MEMORY_HOST: "127.0.0.1",
434
+ CFSA_MEMORY_PORT: "4317",
435
+ CFSA_MEMORY_URL: "http://127.0.0.1:4317/mcp",
436
+ CFSA_MEMORY_HEALTH_URL: "http://127.0.0.1:4317/health"
437
+ }
438
+ }
439
+ }
440
+ };
441
+ writeJsonFile(mcpPath, nextMcp);
442
+ info(`Updated ${c.bold}.mcp.json${c.reset}`);
443
+
444
+ const claudeSettingsPath = join(targetDir, ".claude", "settings.json");
445
+ const currentClaudeSettings = readJsonFile(claudeSettingsPath, {});
446
+ const memoryHooks = {
447
+ SessionStart: [
448
+ {
449
+ hooks: [
450
+ {
451
+ type: "command",
452
+ command: "node .memory/hooks/session-start.mjs"
453
+ }
454
+ ]
455
+ }
456
+ ],
457
+ PreCompact: [
458
+ {
459
+ matcher: "manual|auto",
460
+ hooks: [
461
+ {
462
+ type: "command",
463
+ command: "node .memory/hooks/pre-compact.mjs"
464
+ }
465
+ ]
466
+ }
467
+ ],
468
+ Stop: [
469
+ {
470
+ hooks: [
471
+ {
472
+ type: "command",
473
+ command: "node .memory/hooks/session-end.mjs"
474
+ }
475
+ ]
476
+ }
477
+ ]
478
+ };
479
+ const daemonHooks = {
480
+ SessionStart: [
481
+ {
482
+ hooks: [
483
+ {
484
+ type: "command",
485
+ command: "node .memory/mcp-server/start.mjs"
486
+ }
487
+ ]
488
+ }
489
+ ]
490
+ };
491
+
492
+ const nextClaudeSettings = {
493
+ ...currentClaudeSettings,
494
+ hooks: mergeHookConfig(mergeHookConfig(currentClaudeSettings.hooks || {}, daemonHooks), memoryHooks)
495
+ };
496
+ writeJsonFile(claudeSettingsPath, nextClaudeSettings);
497
+ info(`Updated ${c.bold}.claude/settings.json${c.reset}`);
498
+ }
499
+
500
+ async function migrateMemory(targetDir) {
501
+ const migratePath = join(targetDir, ".memory", "migrate", "migrate-legacy.mjs");
502
+ if (!existsSync(migratePath)) {
503
+ error("Unified memory migration script not found after scaffold.");
504
+ exit(1);
505
+ }
506
+
507
+ const migrationModule = await import(pathToFileURL(migratePath).href);
508
+ const result = migrationModule.migrateLegacyMemory({ projectRoot: targetDir });
509
+ info(`Migrated legacy memory (${result.migratedCount} item(s))`);
510
+ }
511
+
512
+ // --- Install runtimes ---
513
+ function installRuntimes(runtimes, targetDir, opts) {
514
+ let totalCopied = 0;
515
+ let totalSkipped = 0;
516
+
517
+ // Install each runtime directory
518
+ for (const rt of runtimes) {
519
+ const srcDir = join(TEMPLATE_DIR, rt.dir);
520
+ const destDir = join(targetDir, rt.dir);
521
+
522
+ if (!existsSync(srcDir)) {
523
+ error(`${rt.dir}/ not found in template. Package may be corrupted.`);
524
+ exit(1);
525
+ }
526
+
527
+ if (existsSync(destDir) && !opts.force) {
528
+ const fileCount = countFiles(srcDir);
529
+ totalSkipped += fileCount;
530
+ warn(`Skipped ${c.bold}${rt.dir}/${c.reset} (already exists — use --force to overwrite)`);
213
531
  } else {
214
- if (existsSync(destAgentDir)) {
215
- log(`Removing existing ${agentDir}/...`);
216
- // Remove existing directory
217
- rmSync(destAgentDir, { recursive: true, force: true });
532
+ if (opts.dryRun) {
533
+ const fileCount = countFiles(srcDir);
534
+ totalCopied += fileCount;
535
+ info(`Would copy ${c.bold}${rt.dir}/${c.reset} (${fileCount} files)`);
536
+ } else {
537
+ if (existsSync(destDir)) {
538
+ rmSync(destDir, { recursive: true, force: true });
539
+ }
540
+ cpSync(srcDir, destDir, { recursive: true });
541
+ const fileCount = countFiles(destDir);
542
+ totalCopied += fileCount;
543
+ info(`Copied ${c.bold}${rt.dir}/${c.reset} (${fileCount} files)`);
218
544
  }
219
- cpSync(srcAgentDir, destAgentDir, { recursive: true });
220
- const fileCount = countFiles(destAgentDir);
221
- copied += fileCount;
222
- info(`Copied ${c.bold}${agentDir}/${c.reset} (${fileCount} files)`);
223
545
  }
224
546
  }
225
547
 
@@ -228,54 +550,122 @@ function cmdInit(opts) {
228
550
  const destDocsDir = join(targetDir, "docs");
229
551
 
230
552
  if (opts.dryRun) {
231
- if (existsSync(srcDocsDir)) {
553
+ if (existsSync(srcDocsDir) && !existsSync(destDocsDir)) {
232
554
  const fileCount = countFiles(srcDocsDir);
233
- if (!existsSync(destDocsDir)) {
234
- copied += fileCount;
235
- info(`Would copy ${c.bold}docs/${c.reset} (${fileCount} files)`);
236
- }
555
+ totalCopied += fileCount;
556
+ info(`Would copy ${c.bold}docs/${c.reset} (${fileCount} files)`);
237
557
  }
238
558
  } else if (existsSync(srcDocsDir) && !existsSync(destDocsDir)) {
239
559
  cpSync(srcDocsDir, destDocsDir, { recursive: true });
240
560
  const fileCount = countFiles(destDocsDir);
241
- copied += fileCount;
561
+ totalCopied += fileCount;
242
562
  info(`Copied ${c.bold}docs/${c.reset} (${fileCount} files)`);
243
563
  } else if (existsSync(destDocsDir)) {
244
564
  warn(`Skipped ${c.bold}docs/${c.reset} (already exists)`);
245
565
  }
246
566
 
247
- // Copy root config files if they don't exist
248
- const configFiles = ["GEMINI.md", "AGENTS.md", "CLAUDE.md"];
249
- for (const file of configFiles) {
567
+ // Copy root config files that exist in template
568
+ const configCandidates = readdirSync(TEMPLATE_DIR)
569
+ .filter(f => f.endsWith(".md") && f === f.toUpperCase() && statSync(join(TEMPLATE_DIR, f)).isFile());
570
+
571
+ for (const file of configCandidates) {
250
572
  const srcFile = join(TEMPLATE_DIR, file);
251
573
  const destFile = join(targetDir, file);
252
574
 
253
- if (existsSync(srcFile) && !existsSync(destFile)) {
575
+ if (!existsSync(destFile)) {
254
576
  if (opts.dryRun) {
255
577
  info(`Would copy ${c.bold}${file}${c.reset}`);
256
578
  } else {
257
579
  cpSync(srcFile, destFile);
258
- copied++;
580
+ totalCopied++;
259
581
  info(`Copied ${c.bold}${file}${c.reset}`);
260
582
  }
261
583
  }
262
584
  }
263
585
 
586
+ return { totalCopied, totalSkipped };
587
+ }
588
+
589
+ // --- Init Command ---
590
+ async function cmdInit(opts) {
591
+ ensureTemplateDir();
592
+
593
+ const available = discoverRuntimes();
594
+ if (available.length === 0) {
595
+ error("No runtimes found in template directory. Package may be corrupted.");
596
+ exit(1);
597
+ }
598
+
599
+ const targetDir = resolve(opts.path || cwd());
600
+
601
+ log("");
602
+ log(`${c.bold}${c.magenta}CFSA Antigravity${c.reset} ${c.dim}v${PKG.version}${c.reset}`);
603
+ log(`${c.dim}Installing into: ${targetDir}${c.reset}`);
604
+ log("");
605
+
606
+ let selected;
607
+
608
+ if (opts.agents) {
609
+ // Non-interactive: --agent flag provided
610
+ selected = resolveAgentNames(opts.agents, available);
611
+ } else if (!isTTY || QUIET) {
612
+ // Non-TTY or quiet: install all runtimes
613
+ selected = available;
614
+ if (!QUIET) {
615
+ log(`${c.dim}Non-interactive mode — installing all ${available.length} runtimes${c.reset}`);
616
+ log("");
617
+ }
618
+ } else {
619
+ // Interactive: show multi-select picker
620
+ try {
621
+ selected = await multiSelect(available);
622
+ log("");
623
+ } catch (e) {
624
+ error(e.message);
625
+ exit(1);
626
+ }
627
+ }
628
+
629
+ log(`${c.dim}Runtimes: ${selected.map(r => r.name).join(", ")}${c.reset}`);
630
+ log("");
631
+
632
+ // Check if target directory exists
633
+ if (!existsSync(targetDir)) {
634
+ if (opts.dryRun) {
635
+ warn(`Directory does not exist: ${targetDir} (would create)`);
636
+ } else {
637
+ mkdirSync(targetDir, { recursive: true });
638
+ info(`Created directory: ${targetDir}`);
639
+ }
640
+ }
641
+
642
+ const { totalCopied, totalSkipped } = installRuntimes(selected, targetDir, opts);
643
+
644
+ installMemoryScaffold(targetDir, opts);
645
+ if (opts.migrateMemory && !opts.dryRun) {
646
+ await migrateMemory(targetDir);
647
+ }
648
+
649
+ if (!opts.dryRun) {
650
+ const compilePath = join(targetDir, ".memory", "pipeline", "compile.mjs");
651
+ if (existsSync(compilePath)) {
652
+ const compileModule = await import(pathToFileURL(compilePath).href);
653
+ compileModule.compileMemory({ projectRoot: targetDir });
654
+ info(`Initialized ${c.bold}.memory/schema/${c.reset}`);
655
+ }
656
+ }
657
+
264
658
  // Summary
265
659
  log("");
266
660
  if (opts.dryRun) {
267
- log(`${c.bold}Dry run complete:${c.reset} ${copied} files would be copied, ${skipped} skipped`);
268
- } else if (copied > 0) {
269
- log(`${c.bold}${c.green}Installation complete!${c.reset} ${copied} files copied, ${skipped} skipped`);
661
+ log(`${c.bold}Dry run complete:${c.reset} ${totalCopied} files would be copied, ${totalSkipped} skipped`);
662
+ } else if (totalCopied > 0) {
663
+ log(`${c.bold}${c.green}Installation complete!${c.reset} ${totalCopied} files copied, ${totalSkipped} skipped`);
270
664
  log("");
271
665
  log(`${c.bold}Next steps:${c.reset}`);
272
- if (agentType === "claude") {
273
- log(` 1. Open your project in Claude Code`);
274
- log(` 2. Run the ideate workflow to start the pipeline`);
275
- } else {
276
- log(` 1. Open your project in an AI editor (Antigravity, Cursor, etc.)`);
277
- log(` 2. Run ${c.cyan}/ideate${c.reset} to start the pipeline`);
278
- }
666
+ log(` 1. Open your project in your agent of choice`);
667
+ log(` 2. Verify ${c.cyan}.memory/${c.reset}, ${c.cyan}.mcp.json${c.reset}, and ${c.cyan}.claude/settings.json${c.reset}`);
668
+ log(` 3. Run ${c.cyan}/ideate${c.reset} to start the pipeline`);
279
669
  log("");
280
670
  log(`${c.dim}Documentation: https://github.com/RepairYourTech/cfsa-antigravity${c.reset}`);
281
671
  } else {
@@ -286,85 +676,280 @@ function cmdInit(opts) {
286
676
  }
287
677
 
288
678
  // --- Status Command ---
289
- function cmdStatus(opts) {
679
+ function cmdStatus() {
290
680
  const targetDir = cwd();
681
+ const available = discoverRuntimes();
682
+
683
+ if (!args.json) {
684
+ log("");
685
+ log(`${c.bold}${c.magenta}CFSA Antigravity${c.reset} ${c.dim}v${PKG.version}${c.reset}`);
686
+ log(`${c.dim}Checking: ${targetDir}${c.reset}`);
687
+ log("");
688
+ }
291
689
 
292
- const agentType = opts.agent || (existsSync(join(targetDir, ".agent")) ? "antigravity" : (existsSync(join(targetDir, ".claude")) ? "claude" : null));
293
- const agentDir = agentType === "claude" ? ".claude" : ".agent";
690
+ // Detect all installed runtimes
691
+ const installed = available.filter(r => existsSync(join(targetDir, r.dir)));
294
692
 
295
- log("");
296
- log(`${c.bold}${c.magenta}CFSA Antigravity${c.reset} ${c.dim}v${PKG.version}${c.reset}`);
297
- log(`${c.dim}Checking: ${targetDir}${c.reset}`);
298
- if (agentType) {
299
- log(`${c.dim}Agent type: ${agentType}${c.reset}`);
693
+ if (installed.length === 0) {
694
+ const dirNames = available.map(r => `${r.dir}/`).join(", ");
695
+ if (args.json) {
696
+ console.log(JSON.stringify({ ok: false, targetDir, installedRuntimes: [], message: `No runtime directory found (${dirNames})` }, null, 2));
697
+ } else {
698
+ warn(`Not installed — no runtime directory found (${dirNames})`);
699
+ log(` Run ${c.cyan}cfsa-antigravity init${c.reset} to install`);
700
+ log("");
701
+ }
702
+ exit(1);
300
703
  }
301
- log("");
302
704
 
303
- if (!agentType || !existsSync(join(targetDir, agentDir))) {
304
- warn("Not installed no .agent/ or .claude/ directory found");
305
- log(` Run ${c.cyan}cfsa-antigravity init${c.reset} to install`);
705
+ if (!args.json) {
706
+ log(`${c.bold}Installed runtimes:${c.reset} ${installed.map(r => `${r.name} (${r.dir}/)`).join(", ")}`);
306
707
  log("");
307
- exit(1);
308
708
  }
309
709
 
310
- info(`${agentDir}/ directory found`);
311
-
312
- const checks = [
313
- ...(agentType === "claude"
314
- ? [{ path: `${agentDir}/commands`, label: "Commands" }]
315
- : [{ path: `${agentDir}/workflows`, label: "Workflows" }]),
316
- { path: `${agentDir}/skills`, label: "Skills" },
317
- { path: `${agentDir}/skill-library`, label: "Skill Library" },
318
- { path: `${agentDir}/instructions`, label: "Instructions" },
319
- { path: `${agentDir}/rules`, label: "Rules" },
320
- { path: "docs/plans", label: "Plans directory" },
321
- { path: "GEMINI.md", label: "GEMINI.md" },
322
- { path: "AGENTS.md", label: "AGENTS.md" },
323
- { path: "CLAUDE.md", label: "CLAUDE.md" },
710
+ let totalInstalled = 0;
711
+ let totalMissing = 0;
712
+ const statusJson = {
713
+ ok: true,
714
+ targetDir,
715
+ installedRuntimes: installed.map(r => ({ name: r.name, dir: r.dir })),
716
+ runtimeChecks: [],
717
+ sharedChecks: [],
718
+ memoryHealth: [],
719
+ placeholders: []
720
+ };
721
+
722
+ for (const rt of installed) {
723
+ const agentDir = rt.dir;
724
+ const runtimeRecord = { name: rt.name, dir: agentDir, checks: [] };
725
+ if (!args.json) {
726
+ info(`${c.bold}${rt.name}${c.reset} — ${agentDir}/`);
727
+ }
728
+
729
+ // Build checks based on what the runtime contains
730
+ const checks = [
731
+ { path: `${agentDir}/skills`, label: " Skills" },
732
+ { path: `${agentDir}/skill-library`, label: " Skill Library" },
733
+ { path: `${agentDir}/instructions`, label: " Instructions" },
734
+ ];
735
+
736
+ // Runtime-specific checks
737
+ if (existsSync(join(targetDir, agentDir, "commands"))) {
738
+ checks.unshift({ path: `${agentDir}/commands`, label: " Commands" });
739
+ }
740
+ if (existsSync(join(targetDir, agentDir, "workflows"))) {
741
+ checks.unshift({ path: `${agentDir}/workflows`, label: " Workflows" });
742
+ }
743
+ if (existsSync(join(targetDir, agentDir, "rules"))) {
744
+ checks.push({ path: `${agentDir}/rules`, label: " Rules" });
745
+ }
746
+
747
+ for (const check of checks) {
748
+ const fullPath = join(targetDir, check.path);
749
+ if (existsSync(fullPath)) {
750
+ const isDir = statSync(fullPath).isDirectory();
751
+ const detail = isDir ? `${countFiles(fullPath)} files` : "present";
752
+ if (!args.json) {
753
+ info(`${check.label} ${c.dim}(${detail})${c.reset}`);
754
+ }
755
+ runtimeRecord.checks.push({ label: check.label.trim(), status: "present", detail });
756
+ totalInstalled++;
757
+ } else {
758
+ if (!args.json) {
759
+ warn(`${check.label} — missing`);
760
+ }
761
+ runtimeRecord.checks.push({ label: check.label.trim(), status: "missing" });
762
+ totalMissing++;
763
+ }
764
+ }
765
+ statusJson.runtimeChecks.push(runtimeRecord);
766
+ if (!args.json) {
767
+ log("");
768
+ }
769
+ }
770
+
771
+ // Shared resources
772
+ const sharedChecks = [
773
+ { path: ".memory/wiki/specs", label: "Vault specs directory" },
324
774
  ];
325
775
 
326
- let installed = 0;
327
- let missing = 0;
776
+ // Auto-detect config files (uppercase .md files)
777
+ const configFiles = readdirSync(targetDir)
778
+ .filter(f => f.endsWith(".md") && f === f.toUpperCase() && statSync(join(targetDir, f)).isFile());
328
779
 
329
- for (const check of checks) {
780
+ for (const check of sharedChecks) {
330
781
  const fullPath = join(targetDir, check.path);
331
782
  if (existsSync(fullPath)) {
332
- const isDir = statSync(fullPath).isDirectory();
333
- const detail = isDir ? `${countFiles(fullPath)} files` : "present";
334
- info(`${check.label} ${c.dim}(${detail})${c.reset}`);
335
- installed++;
783
+ const detail = `${countFiles(fullPath)} files`;
784
+ if (!args.json) {
785
+ info(`${check.label} ${c.dim}(${detail})${c.reset}`);
786
+ }
787
+ statusJson.sharedChecks.push({ label: check.label, status: "present", detail });
788
+ totalInstalled++;
336
789
  } else {
337
- warn(`${check.label} — missing`);
338
- missing++;
790
+ if (!args.json) {
791
+ warn(`${check.label} — missing`);
792
+ }
793
+ statusJson.sharedChecks.push({ label: check.label, status: "missing" });
794
+ totalMissing++;
339
795
  }
340
796
  }
341
797
 
342
- log("");
343
- log(`${c.bold}Status:${c.reset} ${installed} components found, ${missing} missing`);
798
+ for (const file of configFiles) {
799
+ if (!args.json) {
800
+ info(`${file} ${c.dim}(present)${c.reset}`);
801
+ }
802
+ statusJson.sharedChecks.push({ label: file, status: "present", detail: "present" });
803
+ totalInstalled++;
804
+ }
344
805
 
345
- for (const configFile of ["GEMINI.md", "AGENTS.md", "CLAUDE.md"]) {
346
- const configPath = join(targetDir, configFile);
347
- if (!existsSync(configPath)) {
348
- continue;
806
+ const memoryChecks = [
807
+ { path: ".memory", label: "Unified memory root" },
808
+ { path: ".memory/mcp-server/daemon.mjs", label: "Memory MCP daemon" },
809
+ { path: ".memory/mcp-server/client.mjs", label: "Memory MCP client" },
810
+ { path: ".memory/runtime", label: "Memory daemon runtime dir" },
811
+ { path: ".memory/schema/index.jsonl", label: "Compiled memory index" },
812
+ { path: ".memory/schema/chunks.jsonl", label: "Compiled memory chunks" },
813
+ { path: ".memory/wiki/hubs/shards.md", label: "Shard graph hub" },
814
+ { path: ".memory/wiki/hubs/phases.md", label: "Phase graph hub" },
815
+ { path: ".memory/wiki/hubs/operations.md", label: "Operations graph hub" },
816
+ { path: ".memory/wiki/hubs/surfaces.md", label: "Surface graph hub" },
817
+ { path: ".mcp.json", label: "MCP config" },
818
+ ];
819
+
820
+ if (!args.json) {
821
+ log("");
822
+ log(`${c.bold}Memory health:${c.reset}`);
823
+ }
824
+ for (const check of memoryChecks) {
825
+ const fullPath = join(targetDir, check.path);
826
+ if (existsSync(fullPath)) {
827
+ if (!args.json) {
828
+ info(` ${check.label} ${c.dim}(present)${c.reset}`);
829
+ }
830
+ statusJson.memoryHealth.push({ label: check.label, status: "present" });
831
+ totalInstalled++;
832
+ } else {
833
+ if (!args.json) {
834
+ warn(` ${check.label} — missing`);
835
+ }
836
+ statusJson.memoryHealth.push({ label: check.label, status: "missing" });
837
+ totalMissing++;
838
+ }
839
+ }
840
+
841
+ const runtimeStatePath = join(targetDir, ".memory", "runtime", "cfsa-memory-daemon.json");
842
+ if (existsSync(runtimeStatePath)) {
843
+ try {
844
+ const runtimeState = JSON.parse(readFileSync(runtimeStatePath, "utf-8"));
845
+ const detail = `pid=${runtimeState.pid}, port=${runtimeState.port}`;
846
+ if (!args.json) {
847
+ info(` Daemon runtime state ${c.dim}(${detail})${c.reset}`);
848
+ }
849
+ statusJson.memoryHealth.push({ label: "Daemon runtime state", status: "present", detail });
850
+ totalInstalled++;
851
+ } catch {
852
+ if (!args.json) {
853
+ warn(" Daemon runtime state — invalid JSON");
854
+ }
855
+ statusJson.memoryHealth.push({ label: "Daemon runtime state", status: "invalid" });
856
+ totalMissing++;
349
857
  }
858
+ } else {
859
+ if (!args.json) {
860
+ warn(" Daemon runtime state — missing");
861
+ }
862
+ statusJson.memoryHealth.push({ label: "Daemon runtime state", status: "missing" });
863
+ totalMissing++;
864
+ }
350
865
 
866
+ const mcpPath = join(targetDir, ".mcp.json");
867
+ if (existsSync(mcpPath)) {
868
+ try {
869
+ const mcpConfig = JSON.parse(readFileSync(mcpPath, "utf-8"));
870
+ if (mcpConfig.mcpServers?.["cfsa-memory"]?.args?.includes(".memory/mcp-server/client.mjs")) {
871
+ if (!args.json) {
872
+ info(` MCP registration ${c.dim}(cfsa-memory configured)${c.reset}`);
873
+ }
874
+ statusJson.memoryHealth.push({ label: "MCP registration", status: "present", detail: "cfsa-memory configured" });
875
+ totalInstalled++;
876
+ } else {
877
+ if (!args.json) {
878
+ warn(" MCP registration — cfsa-memory missing or misconfigured");
879
+ }
880
+ statusJson.memoryHealth.push({ label: "MCP registration", status: "missing", detail: "cfsa-memory missing or misconfigured" });
881
+ totalMissing++;
882
+ }
883
+ } catch {
884
+ if (!args.json) {
885
+ warn(" MCP config — invalid JSON");
886
+ }
887
+ statusJson.memoryHealth.push({ label: "MCP config", status: "invalid" });
888
+ totalMissing++;
889
+ }
890
+ }
891
+
892
+ const claudeSettingsPath = join(targetDir, ".claude", "settings.json");
893
+ if (existsSync(claudeSettingsPath)) {
894
+ try {
895
+ const claudeSettings = JSON.parse(readFileSync(claudeSettingsPath, "utf-8"));
896
+ const hasHooks = Boolean(claudeSettings.hooks?.SessionStart?.length);
897
+ if (hasHooks) {
898
+ if (!args.json) {
899
+ info(` Claude memory hooks ${c.dim}(configured)${c.reset}`);
900
+ }
901
+ statusJson.memoryHealth.push({ label: "Claude memory hooks", status: "present", detail: "configured" });
902
+ totalInstalled++;
903
+ } else {
904
+ if (!args.json) {
905
+ warn(" Claude memory hooks — not configured");
906
+ }
907
+ statusJson.memoryHealth.push({ label: "Claude memory hooks", status: "missing" });
908
+ totalMissing++;
909
+ }
910
+ } catch {
911
+ if (!args.json) {
912
+ warn(" Claude settings — invalid JSON");
913
+ }
914
+ statusJson.memoryHealth.push({ label: "Claude settings", status: "invalid" });
915
+ totalMissing++;
916
+ }
917
+ }
918
+
919
+ if (!args.json) {
920
+ log("");
921
+ log(`${c.bold}Status:${c.reset} ${totalInstalled} components found, ${totalMissing} missing`);
922
+ }
923
+
924
+ // Check placeholders in config files
925
+ for (const file of configFiles) {
926
+ const configPath = join(targetDir, file);
351
927
  const content = readFileSync(configPath, "utf-8");
352
928
  const placeholders = content.match(/\{\{[A-Z_]+\}\}/g);
353
929
  if (placeholders) {
354
930
  const unique = [...new Set(placeholders)];
355
- log("");
356
- warn(`${unique.length} unfilled placeholder(s) in ${configFile} — run /create-prd to fill them`);
357
- for (const p of unique.slice(0, 5)) {
358
- log(` ${c.dim}${p}${c.reset}`);
359
- }
360
- if (unique.length > 5) {
361
- log(` ${c.dim}... and ${unique.length - 5} more${c.reset}`);
931
+ statusJson.placeholders.push({ file, count: unique.length, values: unique });
932
+ if (!args.json) {
933
+ log("");
934
+ warn(`${unique.length} unfilled placeholder(s) in ${file} — run /create-prd to fill them`);
935
+ for (const p of unique.slice(0, 5)) {
936
+ log(` ${c.dim}${p}${c.reset}`);
937
+ }
938
+ if (unique.length > 5) {
939
+ log(` ${c.dim}... and ${unique.length - 5} more${c.reset}`);
940
+ }
362
941
  }
363
- } else {
364
- info(`${configFile} — all placeholders filled`);
942
+ } else if (!args.json) {
943
+ info(`${file} — all placeholders filled`);
365
944
  }
366
945
  }
367
946
 
947
+ statusJson.summary = { totalInstalled, totalMissing };
948
+ if (args.json) {
949
+ console.log(JSON.stringify(statusJson, null, 2));
950
+ return;
951
+ }
952
+
368
953
  log("");
369
954
  }
370
955
 
@@ -377,7 +962,7 @@ switch (args.command) {
377
962
  cmdInit(args);
378
963
  break;
379
964
  case "status":
380
- cmdStatus(args);
965
+ cmdStatus();
381
966
  break;
382
967
  case "version":
383
968
  log(PKG.version);