cfsa-antigravity 1.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 (378) hide show
  1. package/bin/cli.mjs +324 -0
  2. package/package.json +34 -0
  3. package/template/.agent/instructions/commands.md +48 -0
  4. package/template/.agent/instructions/patterns.md +61 -0
  5. package/template/.agent/instructions/structure.md +29 -0
  6. package/template/.agent/instructions/tech-stack.md +43 -0
  7. package/template/.agent/instructions/workflow.md +41 -0
  8. package/template/.agent/kit-sync.md +15 -0
  9. package/template/.agent/rules/boundary-not-placeholder.md +146 -0
  10. package/template/.agent/rules/completion-checklist.md +48 -0
  11. package/template/.agent/rules/decision-classification.md +103 -0
  12. package/template/.agent/rules/extensibility.md +47 -0
  13. package/template/.agent/rules/question-vs-command.md +81 -0
  14. package/template/.agent/rules/security-first.md +43 -0
  15. package/template/.agent/rules/specificity-standards.md +54 -0
  16. package/template/.agent/rules/tdd-contract-first.md +57 -0
  17. package/template/.agent/rules/vertical-slices.md +42 -0
  18. package/template/.agent/skill-library/MANIFEST.md +480 -0
  19. package/template/.agent/skill-library/README.md +38 -0
  20. package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
  21. package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
  22. package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  23. package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  24. package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  25. package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
  26. package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
  27. package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  28. package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
  29. package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
  30. package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  31. package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  32. package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  33. package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
  34. package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
  35. package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  36. package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  37. package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
  38. package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
  39. package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
  40. package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
  41. package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  42. package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  43. package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  44. package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  45. package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  46. package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  47. package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  48. package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  49. package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  50. package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  51. package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  52. package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  53. package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  54. package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  55. package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  56. package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  57. package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  58. package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
  59. package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  60. package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  61. package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
  62. package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  63. package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  64. package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  65. package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  66. package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  67. package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
  68. package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
  69. package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
  70. package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
  71. package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  72. package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  73. package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  74. package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  75. package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  76. package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  77. package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  78. package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  79. package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  80. package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  81. package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  82. package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  83. package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  84. package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
  85. package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  86. package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  87. package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  88. package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  89. package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  90. package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  91. package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
  92. package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
  93. package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  94. package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
  95. package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
  96. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  97. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  98. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  99. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  100. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  101. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  102. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  103. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  104. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  105. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  106. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  107. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  108. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  109. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  110. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  111. package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  112. package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  113. package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  114. package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  115. package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  116. package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  117. package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  118. package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
  119. package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  120. package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
  121. package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  122. package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  123. package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  124. package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  125. package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
  126. package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  127. package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  128. package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  129. package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
  130. package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  131. package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  132. package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  133. package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  134. package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  135. package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  136. package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  137. package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  138. package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  139. package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
  140. package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  141. package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
  142. package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
  143. package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  144. package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
  145. package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  146. package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  147. package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  148. package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  149. package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
  150. package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  151. package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  152. package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  153. package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
  154. package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  155. package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  156. package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
  157. package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  158. package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  159. package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  160. package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  161. package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  162. package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  163. package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  164. package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  165. package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  166. package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  167. package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  168. package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  169. package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  170. package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  171. package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  172. package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  173. package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  174. package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  175. package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  176. package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  177. package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  178. package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  179. package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  180. package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  181. package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  182. package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  183. package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  184. package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  185. package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  186. package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  187. package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  188. package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  189. package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  190. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  191. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  192. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  193. package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  194. package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  195. package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  196. package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  197. package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  198. package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  199. package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
  200. package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  201. package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
  202. package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  203. package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  204. package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  205. package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  206. package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  207. package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  208. package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  209. package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  210. package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  211. package/template/.agent/skills/accessibility/SKILL.md +522 -0
  212. package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
  213. package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
  214. package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
  215. package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  216. package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
  217. package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  218. package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  219. package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  220. package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  221. package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  222. package/template/.agent/skills/api-versioning/SKILL.md +420 -0
  223. package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
  224. package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
  225. package/template/.agent/skills/brainstorming/SKILL.md +236 -0
  226. package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
  227. package/template/.agent/skills/clean-code/SKILL.md +94 -0
  228. package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
  229. package/template/.agent/skills/concise-planning/SKILL.md +68 -0
  230. package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
  231. package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
  232. package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
  233. package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
  234. package/template/.agent/skills/design-direction/SKILL.md +45 -0
  235. package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
  236. package/template/.agent/skills/find-skills/SKILL.md +145 -0
  237. package/template/.agent/skills/git-advanced/SKILL.md +972 -0
  238. package/template/.agent/skills/git-workflow/SKILL.md +420 -0
  239. package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
  240. package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
  241. package/template/.agent/skills/migration-management/SKILL.md +384 -0
  242. package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
  243. package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
  244. package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
  245. package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
  246. package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
  247. package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
  248. package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  249. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  250. package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  251. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  252. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
  253. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
  254. package/template/.agent/skills/prd-templates/SKILL.md +88 -0
  255. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
  256. package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
  257. package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
  258. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
  259. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
  260. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
  261. package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  262. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
  263. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  264. package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
  265. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  266. package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
  267. package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
  268. package/template/.agent/skills/prompt-engineer/README.md +659 -0
  269. package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
  270. package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
  271. package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
  272. package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
  273. package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
  274. package/template/.agent/skills/session-continuity/SKILL.md +730 -0
  275. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  276. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  277. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
  278. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  279. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
  280. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  281. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  282. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
  283. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  284. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
  285. package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  286. package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
  287. package/template/.agent/skills/skill-creator/README.md +270 -0
  288. package/template/.agent/skills/skill-creator/SKILL.md +590 -0
  289. package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  290. package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
  291. package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  292. package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  293. package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  294. package/template/.agent/skills/spec-writing/SKILL.md +110 -0
  295. package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
  296. package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
  297. package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  298. package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  299. package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  300. package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
  301. package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  302. package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
  303. package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
  304. package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
  305. package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
  306. package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
  307. package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
  308. package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
  309. package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  310. package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  311. package/template/.agent/skills/technical-writer/SKILL.md +242 -0
  312. package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
  313. package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
  314. package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
  315. package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
  316. package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
  317. package/template/.agent/workflows/audit-ambiguity.md +64 -0
  318. package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
  319. package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
  320. package/template/.agent/workflows/bootstrap-agents.md +66 -0
  321. package/template/.agent/workflows/create-prd-architecture.md +119 -0
  322. package/template/.agent/workflows/create-prd-compile.md +138 -0
  323. package/template/.agent/workflows/create-prd-design-system.md +135 -0
  324. package/template/.agent/workflows/create-prd-security.md +113 -0
  325. package/template/.agent/workflows/create-prd-stack.md +91 -0
  326. package/template/.agent/workflows/create-prd.md +168 -0
  327. package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
  328. package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
  329. package/template/.agent/workflows/decompose-architecture.md +111 -0
  330. package/template/.agent/workflows/evolve-contract.md +98 -0
  331. package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
  332. package/template/.agent/workflows/evolve-feature-classify.md +116 -0
  333. package/template/.agent/workflows/evolve-feature.md +56 -0
  334. package/template/.agent/workflows/ideate-discover.md +144 -0
  335. package/template/.agent/workflows/ideate-extract.md +129 -0
  336. package/template/.agent/workflows/ideate-validate.md +117 -0
  337. package/template/.agent/workflows/ideate.md +113 -0
  338. package/template/.agent/workflows/implement-slice-setup.md +113 -0
  339. package/template/.agent/workflows/implement-slice-tdd.md +198 -0
  340. package/template/.agent/workflows/implement-slice.md +50 -0
  341. package/template/.agent/workflows/plan-phase.md +202 -0
  342. package/template/.agent/workflows/propagate-decision-apply.md +135 -0
  343. package/template/.agent/workflows/propagate-decision-scan.md +147 -0
  344. package/template/.agent/workflows/propagate-decision.md +56 -0
  345. package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
  346. package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
  347. package/template/.agent/workflows/remediate-pipeline.md +55 -0
  348. package/template/.agent/workflows/resolve-ambiguity.md +82 -0
  349. package/template/.agent/workflows/sync-kit.md +209 -0
  350. package/template/.agent/workflows/update-architecture-map.md +74 -0
  351. package/template/.agent/workflows/validate-phase.md +219 -0
  352. package/template/.agent/workflows/verify-infrastructure.md +207 -0
  353. package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
  354. package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
  355. package/template/.agent/workflows/write-architecture-spec.md +63 -0
  356. package/template/.agent/workflows/write-be-spec-classify.md +165 -0
  357. package/template/.agent/workflows/write-be-spec-write.md +98 -0
  358. package/template/.agent/workflows/write-be-spec.md +76 -0
  359. package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
  360. package/template/.agent/workflows/write-fe-spec-write.md +94 -0
  361. package/template/.agent/workflows/write-fe-spec.md +71 -0
  362. package/template/AGENTS.md +176 -0
  363. package/template/GEMINI.md +177 -0
  364. package/template/docs/README.md +187 -0
  365. package/template/docs/audits/.gitkeep +0 -0
  366. package/template/docs/audits/README.md +10 -0
  367. package/template/docs/plans/.gitkeep +0 -0
  368. package/template/docs/plans/README.md +21 -0
  369. package/template/docs/plans/be/.gitkeep +0 -0
  370. package/template/docs/plans/be/README.md +11 -0
  371. package/template/docs/plans/fe/.gitkeep +0 -0
  372. package/template/docs/plans/fe/README.md +11 -0
  373. package/template/docs/plans/ia/.gitkeep +0 -0
  374. package/template/docs/plans/ia/README.md +17 -0
  375. package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
  376. package/template/docs/plans/ia/deep-dives/README.md +5 -0
  377. package/template/docs/plans/phases/.gitkeep +0 -0
  378. package/template/docs/plans/phases/README.md +11 -0
@@ -0,0 +1,409 @@
1
+ ---
2
+ name: tdd-workflow
3
+ description: Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.
4
+ ---
5
+
6
+ # Test-Driven Development Workflow
7
+
8
+ This skill ensures all code development follows TDD principles with comprehensive test coverage.
9
+
10
+ ## When to Activate
11
+
12
+ - Writing new features or functionality
13
+ - Fixing bugs or issues
14
+ - Refactoring existing code
15
+ - Adding API endpoints
16
+ - Creating new components
17
+
18
+ ## Core Principles
19
+
20
+ ### 1. Tests BEFORE Code
21
+ ALWAYS write tests first, then implement code to make tests pass.
22
+
23
+ ### 2. Coverage Requirements
24
+ - Minimum 80% coverage (unit + integration + E2E)
25
+ - All edge cases covered
26
+ - Error scenarios tested
27
+ - Boundary conditions verified
28
+
29
+ ### 3. Test Types
30
+
31
+ #### Unit Tests
32
+ - Individual functions and utilities
33
+ - Component logic
34
+ - Pure functions
35
+ - Helpers and utilities
36
+
37
+ #### Integration Tests
38
+ - API endpoints
39
+ - Database operations
40
+ - Service interactions
41
+ - External API calls
42
+
43
+ #### E2E Tests (Playwright)
44
+ - Critical user flows
45
+ - Complete workflows
46
+ - Browser automation
47
+ - UI interactions
48
+
49
+ ## TDD Workflow Steps
50
+
51
+ ### Step 1: Write User Journeys
52
+ ```
53
+ As a [role], I want to [action], so that [benefit]
54
+
55
+ Example:
56
+ As a user, I want to search for markets semantically,
57
+ so that I can find relevant markets even without exact keywords.
58
+ ```
59
+
60
+ ### Step 2: Generate Test Cases
61
+ For each user journey, create comprehensive test cases:
62
+
63
+ ```typescript
64
+ describe('Semantic Search', () => {
65
+ it('returns relevant markets for query', async () => {
66
+ // Test implementation
67
+ })
68
+
69
+ it('handles empty query gracefully', async () => {
70
+ // Test edge case
71
+ })
72
+
73
+ it('falls back to substring search when Redis unavailable', async () => {
74
+ // Test fallback behavior
75
+ })
76
+
77
+ it('sorts results by similarity score', async () => {
78
+ // Test sorting logic
79
+ })
80
+ })
81
+ ```
82
+
83
+ ### Step 3: Run Tests (They Should Fail)
84
+ ```bash
85
+ npm test
86
+ # Tests should fail - we haven't implemented yet
87
+ ```
88
+
89
+ ### Step 4: Implement Code
90
+ Write minimal code to make tests pass:
91
+
92
+ ```typescript
93
+ // Implementation guided by tests
94
+ export async function searchMarkets(query: string) {
95
+ // Implementation here
96
+ }
97
+ ```
98
+
99
+ ### Step 5: Run Tests Again
100
+ ```bash
101
+ npm test
102
+ # Tests should now pass
103
+ ```
104
+
105
+ ### Step 6: Refactor
106
+ Improve code quality while keeping tests green:
107
+ - Remove duplication
108
+ - Improve naming
109
+ - Optimize performance
110
+ - Enhance readability
111
+
112
+ ### Step 7: Verify Coverage
113
+ ```bash
114
+ npm run test:coverage
115
+ # Verify 80%+ coverage achieved
116
+ ```
117
+
118
+ ## Testing Patterns
119
+
120
+ ### Unit Test Pattern (Jest/Vitest)
121
+ ```typescript
122
+ import { render, screen, fireEvent } from '@testing-library/react'
123
+ import { Button } from './Button'
124
+
125
+ describe('Button Component', () => {
126
+ it('renders with correct text', () => {
127
+ render(<Button>Click me</Button>)
128
+ expect(screen.getByText('Click me')).toBeInTheDocument()
129
+ })
130
+
131
+ it('calls onClick when clicked', () => {
132
+ const handleClick = jest.fn()
133
+ render(<Button onClick={handleClick}>Click</Button>)
134
+
135
+ fireEvent.click(screen.getByRole('button'))
136
+
137
+ expect(handleClick).toHaveBeenCalledTimes(1)
138
+ })
139
+
140
+ it('is disabled when disabled prop is true', () => {
141
+ render(<Button disabled>Click</Button>)
142
+ expect(screen.getByRole('button')).toBeDisabled()
143
+ })
144
+ })
145
+ ```
146
+
147
+ ### API Integration Test Pattern
148
+ ```typescript
149
+ import { NextRequest } from 'next/server'
150
+ import { GET } from './route'
151
+
152
+ describe('GET /api/markets', () => {
153
+ it('returns markets successfully', async () => {
154
+ const request = new NextRequest('http://localhost/api/markets')
155
+ const response = await GET(request)
156
+ const data = await response.json()
157
+
158
+ expect(response.status).toBe(200)
159
+ expect(data.success).toBe(true)
160
+ expect(Array.isArray(data.data)).toBe(true)
161
+ })
162
+
163
+ it('validates query parameters', async () => {
164
+ const request = new NextRequest('http://localhost/api/markets?limit=invalid')
165
+ const response = await GET(request)
166
+
167
+ expect(response.status).toBe(400)
168
+ })
169
+
170
+ it('handles database errors gracefully', async () => {
171
+ // Mock database failure
172
+ const request = new NextRequest('http://localhost/api/markets')
173
+ // Test error handling
174
+ })
175
+ })
176
+ ```
177
+
178
+ ### E2E Test Pattern (Playwright)
179
+ ```typescript
180
+ import { test, expect } from '@playwright/test'
181
+
182
+ test('user can search and filter markets', async ({ page }) => {
183
+ // Navigate to markets page
184
+ await page.goto('/')
185
+ await page.click('a[href="/markets"]')
186
+
187
+ // Verify page loaded
188
+ await expect(page.locator('h1')).toContainText('Markets')
189
+
190
+ // Search for markets
191
+ await page.fill('input[placeholder="Search markets"]', 'election')
192
+
193
+ // Wait for debounce and results
194
+ await page.waitForTimeout(600)
195
+
196
+ // Verify search results displayed
197
+ const results = page.locator('[data-testid="market-card"]')
198
+ await expect(results).toHaveCount(5, { timeout: 5000 })
199
+
200
+ // Verify results contain search term
201
+ const firstResult = results.first()
202
+ await expect(firstResult).toContainText('election', { ignoreCase: true })
203
+
204
+ // Filter by status
205
+ await page.click('button:has-text("Active")')
206
+
207
+ // Verify filtered results
208
+ await expect(results).toHaveCount(3)
209
+ })
210
+
211
+ test('user can create a new market', async ({ page }) => {
212
+ // Login first
213
+ await page.goto('/creator-dashboard')
214
+
215
+ // Fill market creation form
216
+ await page.fill('input[name="name"]', 'Test Market')
217
+ await page.fill('textarea[name="description"]', 'Test description')
218
+ await page.fill('input[name="endDate"]', '2025-12-31')
219
+
220
+ // Submit form
221
+ await page.click('button[type="submit"]')
222
+
223
+ // Verify success message
224
+ await expect(page.locator('text=Market created successfully')).toBeVisible()
225
+
226
+ // Verify redirect to market page
227
+ await expect(page).toHaveURL(/\/markets\/test-market/)
228
+ })
229
+ ```
230
+
231
+ ## Test File Organization
232
+
233
+ ```
234
+ src/
235
+ ├── components/
236
+ │ ├── Button/
237
+ │ │ ├── Button.tsx
238
+ │ │ ├── Button.test.tsx # Unit tests
239
+ │ │ └── Button.stories.tsx # Storybook
240
+ │ └── MarketCard/
241
+ │ ├── MarketCard.tsx
242
+ │ └── MarketCard.test.tsx
243
+ ├── app/
244
+ │ └── api/
245
+ │ └── markets/
246
+ │ ├── route.ts
247
+ │ └── route.test.ts # Integration tests
248
+ └── e2e/
249
+ ├── markets.spec.ts # E2E tests
250
+ ├── trading.spec.ts
251
+ └── auth.spec.ts
252
+ ```
253
+
254
+ ## Mocking External Services
255
+
256
+ ### Supabase Mock
257
+ ```typescript
258
+ jest.mock('@/lib/supabase', () => ({
259
+ supabase: {
260
+ from: jest.fn(() => ({
261
+ select: jest.fn(() => ({
262
+ eq: jest.fn(() => Promise.resolve({
263
+ data: [{ id: 1, name: 'Test Market' }],
264
+ error: null
265
+ }))
266
+ }))
267
+ }))
268
+ }
269
+ }))
270
+ ```
271
+
272
+ ### Redis Mock
273
+ ```typescript
274
+ jest.mock('@/lib/redis', () => ({
275
+ searchMarketsByVector: jest.fn(() => Promise.resolve([
276
+ { slug: 'test-market', similarity_score: 0.95 }
277
+ ])),
278
+ checkRedisHealth: jest.fn(() => Promise.resolve({ connected: true }))
279
+ }))
280
+ ```
281
+
282
+ ### OpenAI Mock
283
+ ```typescript
284
+ jest.mock('@/lib/openai', () => ({
285
+ generateEmbedding: jest.fn(() => Promise.resolve(
286
+ new Array(1536).fill(0.1) // Mock 1536-dim embedding
287
+ ))
288
+ }))
289
+ ```
290
+
291
+ ## Test Coverage Verification
292
+
293
+ ### Run Coverage Report
294
+ ```bash
295
+ npm run test:coverage
296
+ ```
297
+
298
+ ### Coverage Thresholds
299
+ ```json
300
+ {
301
+ "jest": {
302
+ "coverageThresholds": {
303
+ "global": {
304
+ "branches": 80,
305
+ "functions": 80,
306
+ "lines": 80,
307
+ "statements": 80
308
+ }
309
+ }
310
+ }
311
+ }
312
+ ```
313
+
314
+ ## Common Testing Mistakes to Avoid
315
+
316
+ ### ❌ WRONG: Testing Implementation Details
317
+ ```typescript
318
+ // Don't test internal state
319
+ expect(component.state.count).toBe(5)
320
+ ```
321
+
322
+ ### ✅ CORRECT: Test User-Visible Behavior
323
+ ```typescript
324
+ // Test what users see
325
+ expect(screen.getByText('Count: 5')).toBeInTheDocument()
326
+ ```
327
+
328
+ ### ❌ WRONG: Brittle Selectors
329
+ ```typescript
330
+ // Breaks easily
331
+ await page.click('.css-class-xyz')
332
+ ```
333
+
334
+ ### ✅ CORRECT: Semantic Selectors
335
+ ```typescript
336
+ // Resilient to changes
337
+ await page.click('button:has-text("Submit")')
338
+ await page.click('[data-testid="submit-button"]')
339
+ ```
340
+
341
+ ### ❌ WRONG: No Test Isolation
342
+ ```typescript
343
+ // Tests depend on each other
344
+ test('creates user', () => { /* ... */ })
345
+ test('updates same user', () => { /* depends on previous test */ })
346
+ ```
347
+
348
+ ### ✅ CORRECT: Independent Tests
349
+ ```typescript
350
+ // Each test sets up its own data
351
+ test('creates user', () => {
352
+ const user = createTestUser()
353
+ // Test logic
354
+ })
355
+
356
+ test('updates user', () => {
357
+ const user = createTestUser()
358
+ // Update logic
359
+ })
360
+ ```
361
+
362
+ ## Continuous Testing
363
+
364
+ ### Watch Mode During Development
365
+ ```bash
366
+ npm test -- --watch
367
+ # Tests run automatically on file changes
368
+ ```
369
+
370
+ ### Pre-Commit Hook
371
+ ```bash
372
+ # Runs before every commit
373
+ npm test && npm run lint
374
+ ```
375
+
376
+ ### CI/CD Integration
377
+ ```yaml
378
+ # GitHub Actions
379
+ - name: Run Tests
380
+ run: npm test -- --coverage
381
+ - name: Upload Coverage
382
+ uses: codecov/codecov-action@v3
383
+ ```
384
+
385
+ ## Best Practices
386
+
387
+ 1. **Write Tests First** - Always TDD
388
+ 2. **One Assert Per Test** - Focus on single behavior
389
+ 3. **Descriptive Test Names** - Explain what's tested
390
+ 4. **Arrange-Act-Assert** - Clear test structure
391
+ 5. **Mock External Dependencies** - Isolate unit tests
392
+ 6. **Test Edge Cases** - Null, undefined, empty, large
393
+ 7. **Test Error Paths** - Not just happy paths
394
+ 8. **Keep Tests Fast** - Unit tests < 50ms each
395
+ 9. **Clean Up After Tests** - No side effects
396
+ 10. **Review Coverage Reports** - Identify gaps
397
+
398
+ ## Success Metrics
399
+
400
+ - 80%+ code coverage achieved
401
+ - All tests passing (green)
402
+ - No skipped or disabled tests
403
+ - Fast test execution (< 30s for unit tests)
404
+ - E2E tests cover critical user flows
405
+ - Tests catch bugs before production
406
+
407
+ ---
408
+
409
+ **Remember**: Tests are not optional. They are the safety net that enables confident refactoring, rapid development, and production reliability.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: tech-stack-catalog
3
+ description: "Per-surface tech stack decision tables and development tooling options. Use during /create-prd-stack to present constraint-filtered options to the user."
4
+ category: reference
5
+ risk: none
6
+ source: self
7
+ date_added: "2026-02-28"
8
+ ---
9
+
10
+ # Tech Stack Catalog
11
+
12
+ Reference tables for tech stack decisions organized by project surface type. Used by `/create-prd-stack` to present constraint-filtered options.
13
+
14
+ ## When to Use This Skill
15
+
16
+ - During `/create-prd-stack` — load the decision tables for each applicable surface
17
+ - When adding a new surface to an existing project
18
+ - When evaluating tech stack alternatives
19
+
20
+ ## How to Use
21
+
22
+ 1. Read the project's surface classification from `vision.md`
23
+ 2. Load `references/surface-decision-tables.md` for the applicable surface sections
24
+ 3. Filter options using constraint questions before presenting
25
+ 4. Load `references/dev-tooling-decisions.md` for development tooling
26
+
27
+ ## Reference Files
28
+
29
+ | File | Contents |
30
+ |------|----------|
31
+ | `references/surface-decision-tables.md` | Universal, web, desktop, mobile, CLI, multi-surface decision axes |
32
+ | `references/dev-tooling-decisions.md` | Package manager, test runner, linter, type checker + bootstrap keys |
33
+ | `references/constraint-questions.md` | Per-axis constraint questions for filtering options |
34
+
35
+ ## Option Presentation Format
36
+
37
+ For each axis, filter options using constraints, then present:
38
+
39
+ | # | Option | Strengths | Risks | Fit |
40
+ |---|--------|-----------|-------|-----|
41
+ | 1 | [Option] | ... | ... | [/5] |
42
+ | H | **Hybrid** | [Combine elements] | ... | [/5] |
43
+
44
+ > **Recommendation**: Based on constraints [list], **Option [N]** scores highest because [rationale].
45
+
46
+ ## Related Skills
47
+
48
+ - `design-direction` — visual direction interview (runs during stack decisions)
49
+ - `brainstorming` — one-decision-at-a-time approach
@@ -0,0 +1,21 @@
1
+ # Constraint Questions
2
+
3
+ Use these per-axis constraint questions to filter the option space before presenting choices.
4
+
5
+ | Axis | Constraint Questions |
6
+ |------|---------------------|
7
+ | **Hosting** | Is there an existing cloud provider? Budget ceiling per month? Compliance requirements (data residency, SOC2)? Team familiarity? |
8
+ | **Database** | Expected data volume? Read/write ratio? Need for graph/document/relational? Existing database expertise? Multi-tenancy requirements? |
9
+ | **Auth** | Social login required? SSO/SAML needed? Age verification? Compliance (COPPA, GDPR)? Budget for auth provider? |
10
+ | **Frontend framework** | SSR required for SEO? Static site sufficient? Interactive app needs? Team framework experience? |
11
+ | **Backend runtime** | Latency requirements? Cold start tolerance? Existing language expertise? Deployment target (edge, server, serverless)? |
12
+ | **CI/CD** | Existing CI provider? Monorepo or polyrepo? Deployment frequency? Manual approval gates needed? |
13
+
14
+ ## Per-axis flow
15
+
16
+ 1. Ask the constraint questions for this axis
17
+ 2. Filter options based on answers
18
+ 3. Present the filtered option table with recommendation
19
+ 4. Wait for user confirmation
20
+ 5. Fire bootstrap with only that key: read `.agent/workflows/bootstrap-agents.md` and call with `PIPELINE_STAGE=create-prd` + the confirmed key (e.g., `DATABASE=SurrealDB`)
21
+ 6. Move to next axis
@@ -0,0 +1,37 @@
1
+ # Development Tooling Decisions
2
+
3
+ ## Tooling axes
4
+
5
+ | Tool | Question |
6
+ |------|----------|
7
+ | **Package manager / build system** | pnpm, npm, yarn, bun, cargo, go modules, pip/poetry? |
8
+ | **Test runner** | Vitest, Jest, pytest, cargo test, go test, XCTest? |
9
+ | **Linter** | ESLint, Biome, Ruff, clippy, golangci-lint? |
10
+ | **Type checker** | TypeScript (tsc), mypy, Rust compiler, Go compiler? |
11
+ | **Build command** | What builds the project for production? |
12
+
13
+ ## Bootstrap keys to fire after confirmation
14
+
15
+ After the user confirms all development tooling, fire bootstrap with `PIPELINE_STAGE=create-prd` and ALL of these keys:
16
+
17
+ - `PACKAGE_MANAGER` — the confirmed package manager (e.g., `pnpm`)
18
+ - `TEST_RUNNER` — the confirmed test runner (e.g., `vitest`)
19
+ - `LINTER` — the confirmed linter (e.g., `eslint`)
20
+ - `TYPE_CHECKER` — the confirmed type checker (e.g., `tsc`)
21
+ - `TEST_COMMAND` — derived from package manager + test runner (e.g., `pnpm test`)
22
+ - `TEST_WATCH_COMMAND` — derived test watch command (e.g., `pnpm test:watch`)
23
+ - `TEST_COVERAGE_COMMAND` — derived coverage command (e.g., `pnpm test:coverage`)
24
+ - `LINT_COMMAND` — derived lint command (e.g., `pnpm lint`)
25
+ - `LINT_FIX_COMMAND` — derived lint fix command (e.g., `pnpm lint:fix`)
26
+ - `FORMAT_COMMAND` — derived format command (e.g., `pnpm format`)
27
+ - `TYPE_CHECK_COMMAND` — derived type-check command (e.g., `pnpm type-check`)
28
+ - `BUILD_COMMAND` — derived build command (e.g., `pnpm build`)
29
+ - `VALIDATION_COMMAND` — the full validation pipeline (e.g., `pnpm test && pnpm lint && pnpm type-check && pnpm build`)
30
+
31
+ This fills command placeholders in `commands.md`, `workflow.md`, `implement-slice-tdd.md`, and `validate-phase.md`.
32
+
33
+ ## Validation command derivation
34
+
35
+ ```
36
+ {{BUILD_TOOL}} test && {{BUILD_TOOL}} lint && {{BUILD_TOOL}} type-check && {{BUILD_TOOL}} build
37
+ ```
@@ -0,0 +1,69 @@
1
+ # Surface Decision Tables
2
+
3
+ ## Universal decisions (all project types)
4
+
5
+ | Axis | Decision Needed |
6
+ |------|----------------|
7
+ | **Primary language(s)** | TypeScript, Rust, Go, Python, Swift, Kotlin, C++, etc. |
8
+ | **Database** | ⚠️ **Handled by Persistence Map Interview** in `create-prd-stack.md` — do NOT process as a single axis. Covers primary, vector, graph, cache, and time-series sub-keys. |
9
+ | **Auth provider** | Firebase vs Auth0 vs Clerk vs custom vs OS-level keychain |
10
+ | **CI/CD** | GitHub Actions vs GitLab CI vs custom |
11
+ | **Monitoring** | Sentry vs Datadog vs custom |
12
+
13
+ ## Web surface decisions
14
+
15
+ | Axis | Decision Needed |
16
+ |------|----------------|
17
+ | **Frontend framework** | SSR vs SSG vs hybrid, which framework (Next.js, Astro, SvelteKit, etc.) |
18
+ | **Backend runtime** | Edge workers vs traditional server vs serverless |
19
+ | **Hosting** | Cloudflare vs Vercel vs AWS vs self-hosted |
20
+ | **CDN/Assets** | Provider-native vs S3 vs Cloudinary |
21
+
22
+ ## Desktop surface decisions
23
+
24
+ | Axis | Decision Needed |
25
+ |------|----------------|
26
+ | **UI framework** | Tauri vs Electron vs native (GTK, Qt, SwiftUI, WPF, WinUI) |
27
+ | **Cross-platform strategy** | Single OS, cross-platform with shared UI (Tauri, Electron, Flutter Desktop), or cross-platform with native UI per OS |
28
+ | **Local data storage** | SQLite vs LevelDB vs filesystem vs embedded DB (RocksDB, etc.) |
29
+ | **Distribution** | Installer type (MSI, DMG, AppImage, Flatpak), auto-updater strategy (Sparkle, squirrel, custom) |
30
+ | **OS targets** | Windows, macOS, Linux — which combinations and minimum versions? |
31
+
32
+ ## Mobile surface decisions
33
+
34
+ | Axis | Decision Needed |
35
+ |------|----------------|
36
+ | **Framework** | Native per-platform (Swift/Kotlin) vs cross-platform (React Native, Flutter, .NET MAUI, Kotlin Multiplatform) |
37
+ | **Cross-platform strategy** | iOS-only, Android-only, or both? Shared codebase or separate? |
38
+ | **Local data storage** | SQLite, Realm, Core Data, Room |
39
+ | **Distribution** | App Store, Play Store, enterprise sideload, TestFlight/Firebase App Distribution |
40
+ | **OS targets** | iOS minimum version, Android minimum API level |
41
+
42
+ ## Desktop + Mobile shared decisions
43
+
44
+ Some frameworks support building for **both** desktop and mobile from one codebase. If the vision indicates this is desired:
45
+
46
+ | Axis | Decision Needed |
47
+ |------|----------------|
48
+ | **Shared framework** | Flutter (desktop + mobile + web), Kotlin Multiplatform, .NET MAUI, Compose Multiplatform |
49
+ | **Shared vs platform-specific UI** | Fully shared UI, shared logic with native UI per platform, or hybrid? |
50
+ | **Platform-specific features** | What functionality requires native code per platform? (file system, notifications, hardware access) |
51
+
52
+ ## CLI surface decisions
53
+
54
+ | Axis | Decision Needed |
55
+ |------|----------------|
56
+ | **Language** | Rust (clap), Go (cobra), Python (click/typer), Node (commander/yargs) |
57
+ | **Distribution** | npm, cargo, homebrew, apt, binary releases (goreleaser, cross) |
58
+ | **Shell integration** | Tab completions, man pages, config file format (TOML, YAML, JSON) |
59
+
60
+ ## Multi-surface connection decisions (2+ connected surfaces)
61
+
62
+ | Axis | Decision Needed |
63
+ |------|----------------|
64
+ | **Shared API protocol** | REST vs gRPC vs GraphQL vs WebSocket between surfaces |
65
+ | **Sync strategy** | Real-time (WebSocket/SSE), eventual consistency (message queue), batch (cron), offline-first (CRDT/merge) |
66
+ | **Shared contract layer** | How are data shapes shared? Monorepo with shared package? Published npm/crate package? Code generation from OpenAPI/protobuf? |
67
+ | **Auth federation** | Shared auth server with SSO? OAuth2 token exchange? Separate auth per surface? |
68
+ | **Conflict resolution** | Last-write-wins, operational transform, CRDT, manual resolution, server-authoritative |
69
+ | **Offline support** | Which surfaces work offline? What data is cached locally? How are conflicts resolved on reconnect? |