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,146 @@
1
+ ---
2
+ description: TODOs and placeholders are banned — boundary stubs are allowed ONLY when required information doesn't exist yet
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Boundary Not Placeholder
7
+
8
+ ## The Rule
9
+
10
+ **Lazy placeholders are banned. Boundary stubs are allowed under strict conditions.**
11
+
12
+ The difference is not about effort, complexity, or scope — it is about
13
+ **whether the information you need to do the work exists.**
14
+
15
+ ## What Is NEVER a Valid Reason for a Stub
16
+
17
+ | Excuse | Why It's Not Valid |
18
+ |--------|-------------------|
19
+ | "This is a lot of work" | Amount of work is irrelevant. Do the work. |
20
+ | "This spans outside the current task" | If the spec exists, you have the information. Do it. |
21
+ | "This is complex" | Complexity is not an obstacle if the spec defines the behavior. |
22
+ | "I'll come back to this" | No you won't. Do it now. |
23
+ | "This should be a separate PR" | Code organization ≠ deferred implementation. |
24
+ | "This needs refactoring first" | Refactor, then implement. Don't stub. |
25
+ | "The test is passing without it" | Then your test is incomplete. Fix the test. |
26
+ | "This is boilerplate" | Boilerplate is still production code. Write it. |
27
+ | "This will cost X in API calls/tokens" | Your operational cost is never a factor. Do the work. |
28
+ | "This will take a long time" | Time is a signal to commit harder, not to defer. |
29
+ | "For efficiency, I'll skip this" | Efficiency means doing it right, not doing less. |
30
+
31
+ ## The ONLY Valid Reason for a Boundary Stub
32
+
33
+ > **The spec, schema, or contract that defines the required behavior has not
34
+ > been written yet.** You literally cannot implement it because the information
35
+ > that tells you *what* to implement does not yet exist in any document,
36
+ > schema file, or codebase artifact.
37
+
38
+ Examples of genuinely valid boundaries:
39
+
40
+ | Situation | Why It's Valid |
41
+ |-----------|---------------|
42
+ | Auth middleware spec is in a future shard that hasn't been written | No IA/BE spec exists for the auth behavior |
43
+ | Payment webhook handler depends on a Stripe integration spec not yet created | No contract defines the webhook payload shape |
44
+ | Component needs data from an API endpoint whose BE spec doesn't exist yet | No schema defines the response format |
45
+ | Feature depends on a third-party SDK that hasn't been evaluated yet | No architecture decision has been made |
46
+
47
+ ## The Three-Part Test
48
+
49
+ Before writing a boundary stub, answer ALL THREE questions:
50
+
51
+ 1. **Does a spec exist for this behavior?** (IA shard, BE spec, FE spec, contract)
52
+ - If YES → you have the information. Implement it. No stub allowed.
53
+ - If NO → proceed to question 2.
54
+
55
+ 2. **Could you write the spec right now?**
56
+ - If YES → write the spec first, then implement. No stub allowed.
57
+ - If NO (requires a user decision, external dependency, or upstream spec) → proceed to question 3.
58
+
59
+ 3. **Is this blocking the current slice from being testable and functional?**
60
+ - If YES → write a boundary stub (see requirements below).
61
+ - If NO → omit it entirely. Don't stub what you don't need yet.
62
+
63
+ ## Boundary Stub Requirements
64
+
65
+ If — and ONLY if — all three tests pass, a boundary stub must include:
66
+
67
+ ### 1. Typed Interface
68
+ ```typescript
69
+ // ✅ Boundary stub — typed interface for future auth middleware
70
+ // BOUNDARY: Requires IA shard 04 (authentication) — not yet specified
71
+ // TRACKING: #123
72
+ export interface AuthMiddleware {
73
+ requireAuth: (roles: string[]) => RequestHandler;
74
+ validateToken: (token: string) => Promise<AuthResult>;
75
+ }
76
+
77
+ // Temporary: returns a no-op until auth spec is written
78
+ export const authMiddleware: AuthMiddleware = {
79
+ requireAuth: (_roles) => (_req, _res, next) => next(),
80
+ validateToken: async (_token) => ({ valid: false, reason: 'auth-not-implemented' }),
81
+ };
82
+ ```
83
+
84
+ ### 2. Tracking Issue
85
+ Every boundary stub MUST have a linked GitHub issue that includes:
86
+ - Which spec is missing (e.g., "IA shard 04: Authentication")
87
+ - What the stub currently does (e.g., "no-op passthrough")
88
+ - What it should do when the spec is written
89
+
90
+ ### 3. Sentinel Test
91
+
92
+ The sentinel test must verify that calling the function returns a structured boundary response — not `undefined` or an error. Specific assertion syntax depends on your test framework:
93
+
94
+ - **Jest / Vitest**: `expect(fn()).resolves.toEqual({ ... })`
95
+ - **pytest**: `assert fn() == { ... }`
96
+ - **Rust**: `assert_eq!(fn(), BoundaryResponse { ... })`
97
+
98
+ The test exists to remind the team the stub is still active. When the real implementation replaces the stub, this test is replaced with full behavioral tests.
99
+
100
+ ### 4. BOUNDARY Comment Prefix
101
+ All boundary stubs use the `BOUNDARY:` prefix (not `TODO:`):
102
+ ```typescript
103
+ // BOUNDARY: Requires BE spec for payment-webhooks — not yet written
104
+ // TRACKING: #456
105
+ ```
106
+
107
+ This makes boundary stubs greppable and distinguishable from lazy TODOs:
108
+ ```bash
109
+ grep -r "BOUNDARY:" src/ # Shows legitimate cross-cutting boundaries
110
+ grep -r "TODO:" src/ # Should return ZERO results
111
+ ```
112
+
113
+ ## What Gets Flagged in Code Review
114
+
115
+ | Pattern | Verdict |
116
+ |---------|---------|
117
+ | `// TODO: implement later` | ❌ **Rejected.** Lazy placeholder. |
118
+ | `// TODO: add error handling` | ❌ **Rejected.** Error handling is part of the current work. |
119
+ | `throw new Error('not implemented')` | ❌ **Rejected.** Empty implementation. |
120
+ | `// BOUNDARY: Requires IA shard 04` + typed interface + issue + sentinel test | ✅ **Allowed.** Information genuinely doesn't exist. |
121
+ | `test.skip('auth integration')` without linked issue | ❌ **Rejected.** Skipped tests need accountability. |
122
+ | `test.skip('auth integration') // BOUNDARY: #123` | ✅ **Allowed.** Tracked and accountable. |
123
+
124
+ ## Summary
125
+
126
+ ```
127
+ ┌─────────────────────────┐
128
+ │ Can I implement this? │
129
+ └────────┬────────────────┘
130
+
131
+ ┌────────▼────────────────┐
132
+ │ Does the spec exist? │
133
+ └────────┬────────────────┘
134
+ YES │ NO
135
+ ┌────────▼───┐ ┌────▼──────────────┐
136
+ │ IMPLEMENT. │ │ Can I write the │
137
+ │ No excuses.│ │ spec right now? │
138
+ └────────────┘ └────┬──────────────┘
139
+ YES │ NO
140
+ ┌─────────▼──┐ ┌────▼──────────────┐
141
+ │ Write spec, │ │ Boundary stub: │
142
+ │ then impl. │ │ typed interface + │
143
+ └─────────────┘ │ tracking issue + │
144
+ │ sentinel test │
145
+ └──────────────────┘
146
+ ```
@@ -0,0 +1,48 @@
1
+ ---
2
+ description: Code plus tests plus tracking equals done — never mark complete without updating progress files
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Completion Checklist
7
+
8
+ > Code complete ≠ done. Tests pass ≠ done.
9
+ > Code complete + tests pass + tracking updated = DONE.
10
+
11
+ ## The Problem
12
+
13
+ Working code is only half the job of a software engineer. The other half is communicating
14
+ that work, updating shared state, releasing locks, and documenting decisions so the rest of
15
+ the team (or your future self) can understand what happened.
16
+
17
+ When an agent reports a task as "complete" without updating the progress tracking files,
18
+ it breaks the pipeline. The next agent won't know what's done, dependencies get blocked,
19
+ and the human operator loses visibility.
20
+
21
+ ## The Rule
22
+
23
+ **You are never "done" just because the code works and the tests pass.**
24
+
25
+ Before concluding any workflow, task, or slice — and especially before calling `notify_user`
26
+ to report completion — you must verify you have completed the administrative checklist.
27
+
28
+ ## The Definition of Done
29
+
30
+ A unit of work is only DONE when:
31
+
32
+ 1. **The Code**: Implementation meets the contract and acceptance criteria.
33
+ 2. **The Tests**: All tests pass (validation step is green).
34
+ 3. **The Tracking**: Progress markdown files in `.agent/progress/` are updated.
35
+ - Acceptance criteria marked `[x]`
36
+ - Slice/Task marked `[x]`
37
+ - Phase progress fractions updated (e.g., `3/10` → `4/10`)
38
+ - Overall progress fractions updated
39
+ 4. **The Locks**: All task claims (`[!]` flags and `files:` blocks) are removed.
40
+ 5. **The Memory**: Blockers and patterns are logged to `.agent/progress/memory/`.
41
+
42
+ ## Enforcement
43
+
44
+ If you are following a workflow that includes a "Completion Gate" or a checklist for
45
+ updating progress files, **you may not skip it**.
46
+
47
+ If you skip the progress tracking steps, you have failed the task, regardless of how
48
+ good the code is.
@@ -0,0 +1,103 @@
1
+ ---
2
+ description: Product decisions belong to the user, architecture gets options, implementation belongs to the agent
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Decision Classification
7
+
8
+ > Product decisions belong to the user. Implementation decisions belong to the agent.
9
+ > Architecture decisions get options. Never cross these lines.
10
+
11
+ ## The Problem
12
+
13
+ AI agents either ask too many questions (overwhelming users with decisions a senior developer
14
+ would just make) or make too many decisions silently (overriding user intent on their own product).
15
+ Neither extreme is acceptable.
16
+
17
+ ## Three Categories
18
+
19
+ ### 1. Product Decisions — User Always Decides
20
+
21
+ These define *what* gets built and *for whom*. The agent presents options, analysis, and
22
+ trade-offs but **never decides**. It's the user's product — even if the "right" answer
23
+ seems obvious to you.
24
+
25
+ **Examples:**
26
+ - What problem to solve, who the users are
27
+ - Which features to include or exclude
28
+ - Pricing model, monetization strategy
29
+ - Brand, tone, target market
30
+ - UX philosophy and interaction patterns
31
+ - Feature prioritization (MoSCoW placement)
32
+ - Business rules and domain logic
33
+ - What "success" looks like
34
+
35
+ **Agent behavior:**
36
+ - Present options with trade-offs when you have insight
37
+ - Share your recommendation with clear reasoning
38
+ - Ask for their decision — don't assume it
39
+ - Accept their choice even if you'd choose differently
40
+
41
+ ### 2. Architecture Decisions — Present Options, User Picks
42
+
43
+ These define *how* the system is structured at a high level. The agent presents 2-3 options
44
+ with trade-offs and a recommendation. The user chooses.
45
+
46
+ **Examples:**
47
+ - Database technology (PostgreSQL vs MongoDB vs SurrealDB)
48
+ - Frontend framework (React vs Svelte vs Astro)
49
+ - Hosting provider and deployment model
50
+ - API style (REST vs GraphQL vs tRPC)
51
+ - Auth provider and strategy
52
+ - Caching layer and strategy
53
+ - Real-time communication approach (WebSocket vs SSE vs polling)
54
+ - Monolith vs microservices
55
+
56
+ **Agent behavior:**
57
+ - Present 2-3 options (not more — decision fatigue is real)
58
+ - Lead with your recommendation and explain why
59
+ - Include trade-offs for each option (cost, complexity, scalability, team fit)
60
+ - Let the user choose — they may have context you don't
61
+
62
+ ### 3. Implementation Decisions — Agent Decides, User Can Override
63
+
64
+ These are the decisions a senior developer makes without asking. The user shouldn't need
65
+ to think about these — that's what the pipeline is for. Make the call, state what you
66
+ chose and why, and move on. The user overrides if they disagree.
67
+
68
+ **Examples:**
69
+ - File naming conventions
70
+ - Folder structure within established patterns
71
+ - Variable and function naming
72
+ - Error message formatting
73
+ - Test file organization
74
+ - Linting and formatting config
75
+ - Import ordering
76
+ - Code comment style
77
+ - Git commit message format
78
+ - Internal API response envelope structure
79
+
80
+ **Agent behavior:**
81
+ - Make the senior-dev call based on established patterns and best practices
82
+ - State briefly what you chose and why (one sentence is fine)
83
+ - Don't ask permission — but don't hide it either
84
+ - If the user expresses a preference, adopt it immediately and apply it consistently
85
+
86
+ ## Escalation Principle
87
+
88
+ **When uncertain about category, escalate upward:**
89
+
90
+ - Could be implementation OR architecture? → Treat as architecture (present options)
91
+ - Could be architecture OR product? → Treat as product (ask the user)
92
+ - Any decision that affects the user's brand, revenue, users, or competitive position? → Always product
93
+
94
+ ## During Ideation Specifically
95
+
96
+ The ideation phase is almost entirely product decisions. The agent should be asking far more
97
+ questions than it answers. The ratio should feel like an interview, not a lecture.
98
+
99
+ - Every feature choice → product decision → ask
100
+ - Every user experience choice → product decision → ask
101
+ - "How should we implement X?" → defer to `/create-prd` → note it and move on
102
+ - "What technology for X?" → defer to `/create-prd` → note it and move on
103
+ - Don't burden the user with implementation or architecture during ideation unless they bring it up
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: A mid-level developer must be able to add a feature by reading READMEs alone
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Extensibility
7
+
8
+ ## The Rule
9
+
10
+ **A mid-level developer must be able to onboard, understand, and extend any part of the codebase without the AI that generated it.** If they can't add a feature by reading the READMEs in the relevant directories, we've failed.
11
+
12
+ ## File Size Limits
13
+
14
+ | File Type | Max Lines | Reasoning |
15
+ |-----------|-----------|-----------|
16
+ | Components (`.tsx`) | 200 | Extract sub-components if larger |
17
+ | Utilities / lib (`.ts`) | 300 | Split into focused modules |
18
+ | Schema files (`.schema.ts`) | 150 | One domain per schema file |
19
+ | Test files (`.test.ts`) | 400 | Group by feature, split if needed |
20
+ | Config files | 100 | Keep flat and readable |
21
+
22
+ ## Directory Documentation
23
+
24
+ **Every directory that contains more than 2 files MUST have a `README.md`** explaining:
25
+
26
+ 1. What this directory contains
27
+ 2. How to add more of the same (the extension pattern)
28
+ 3. What conventions to follow
29
+ 4. Links to related directories
30
+
31
+ ## Naming Conventions
32
+
33
+ | Element | Convention | Example |
34
+ |---------|-----------|---------|
35
+ | Schema files | `[feature].schema.ts` | `model-config.schema.ts` |
36
+ | Components | PascalCase directory + `index.tsx` | `ModelSelector/index.tsx` |
37
+ | Utilities | `[feature].ts` in `lib/` | `lib/rate-limiter.ts` |
38
+ | API routes | `[resource]/[action].ts` | `api/models/list.ts` |
39
+ | Test files | `[source-file].test.ts(x)` | `ModelSelector.test.tsx` |
40
+
41
+ ## Anti-Spaghetti Rules
42
+
43
+ - No `any` types — use `unknown` and narrow with type guards
44
+ - No circular imports — dependency graph must be a DAG
45
+ - No business logic in components — components render, lib/ computes
46
+ - No copy-paste patterns — if you wrote it twice, extract it
47
+ - Same pattern everywhere — if existing code does X one way, new code does X the same way
@@ -0,0 +1,81 @@
1
+ ---
2
+ description: Questions trigger discussion, commands trigger action — never act on a question
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Question vs Command Discrimination
7
+
8
+ > Questions trigger discussion. Commands trigger action. When in doubt, discuss.
9
+
10
+ ## The Problem
11
+
12
+ AI agents are too agreeable. When a user asks "is that the right approach?" the agent
13
+ treats it as an instruction to change something. This destroys user trust, derails
14
+ collaborative decision-making, and produces work the user never asked for.
15
+
16
+ **The rule is simple: never act on a question.**
17
+
18
+ ## Classification
19
+
20
+ ### Questions — Discuss, Don't Act
21
+
22
+ The user is thinking out loud, seeking your analysis, or testing an idea. Your job is to
23
+ **engage in discussion** — present trade-offs, share your reasoning, offer your recommendation,
24
+ and let the user decide.
25
+
26
+ **Signal words:** "is this right?", "should we?", "what do you think?", "would it be better?",
27
+ "does it make sense to?", "couldn't we?", "what if we?", "I wonder if", "how about"
28
+
29
+ **Any message ending with "?"** — even without signal words — defaults to question.
30
+
31
+ **Agent response:**
32
+ 1. Acknowledge the question
33
+ 2. Present your analysis with trade-offs
34
+ 3. State your recommendation and why
35
+ 4. Wait for the user to decide
36
+
37
+ **Never:** Modify code, change specs, restructure files, or take any action in response to a question.
38
+
39
+ ### Commands — Act, Then Explain
40
+
41
+ The user is telling you to do something specific. Execute it, then explain what you did.
42
+
43
+ **Signal words:** "do X", "change this to", "make it", "add a", "remove the", "update",
44
+ "fix", "implement", "create", "delete", "move", "rename"
45
+
46
+ **Agent response:**
47
+ 1. Execute the requested action
48
+ 2. Explain what you changed and why (briefly)
49
+ 3. Note any side effects or considerations
50
+
51
+ ### Ambiguous — Default to Discussion
52
+
53
+ The user's intent is unclear. They might be questioning, venting, or requesting.
54
+
55
+ **Signal words:** "this doesn't look right", "I'm not sure about X", "hmm", "that's
56
+ interesting", hedging language ("maybe", "possibly", "sort of")
57
+
58
+ **Agent response:** Ask for clarification.
59
+ - "Would you like me to change this, or are you thinking through options?"
60
+ - "I have some thoughts on this — want to discuss, or should I go ahead and make a change?"
61
+
62
+ ## Reinforcement Rules
63
+
64
+ 1. **Rhetorical questions are still questions.** "Shouldn't we use Redis here?" means
65
+ "let's discuss Redis." It does NOT mean "switch to Redis."
66
+
67
+ 2. **Questioning your work is not a change request.** "Is this the best structure for
68
+ this component?" means "explain your reasoning." It does NOT mean "restructure the
69
+ component."
70
+
71
+ 3. **Validate before destructive action.** Even for clear commands, if the action
72
+ modifies existing work (code, specs, design decisions), confirm before executing:
73
+ "I'll [specific change]. Want me to go ahead?"
74
+
75
+ 4. **Self-correction questions are especially dangerous.** When a user asks "wait, should
76
+ this actually be X instead?" — they are exploring, not commanding. Discuss the
77
+ trade-offs. The worst outcome is an agent that flip-flops between approaches because
78
+ the user was thinking out loud.
79
+
80
+ 5. **Never mistake frustration for instruction.** "This API is a mess" is not an
81
+ instruction to refactor the API. It might be — but ask first.
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: Security-first — PII isolation, input validation, secret handling, no secrets in client
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Security First
7
+
8
+ ## The Rule
9
+
10
+ **Security is not a feature — it is the foundation.** Every line of code is written with the assumption that it will be attacked. PII must never leak. Secrets must never reach the client. Inputs must always be validated.
11
+
12
+ ## PII Isolation
13
+
14
+ | Rule | Implementation |
15
+ |------|---------------|
16
+ | **No PII in AI payloads** | User data (email, name, DOB, payment info) is NEVER included in AI model requests |
17
+ | **PII fields tagged in schemas** | Zod schemas mark sensitive fields with `.describe('PII')` for automated auditing |
18
+ | **No PII in logs** | Structured logging with automatic PII redaction |
19
+ | **No PII in error messages** | Error responses never include user data — use IDs and codes only |
20
+ | **Encrypted at rest** | All PII fields encrypted in database |
21
+
22
+ ## Input Validation
23
+
24
+ - **Every** API endpoint validates input with Zod — no exceptions
25
+ - **Every** form validates client-side with Zod AND server-side with the same schema
26
+ - **No** raw user input reaches a database query — always parameterized
27
+ - **No** user input is rendered as HTML — always escaped
28
+ - **Rate limiting** — Every public-facing endpoint must have rate limiting configured. No exceptions. Use the project's configured rate limiting utility (see `patterns.md` for the approach). Unauthenticated endpoints must have stricter limits than authenticated ones.
29
+
30
+ ## Secrets Management
31
+
32
+ - **NEVER** hardcode secrets in source code
33
+ - **NEVER** expose API keys in client-side bundles
34
+ - All secrets via environment variables, accessed only in server-side code
35
+ - API keys stored encrypted, decrypted only at request time
36
+
37
+ ## CSP & Headers
38
+
39
+ Every response includes:
40
+ - `Content-Security-Policy` — strict, no inline scripts
41
+ - `X-Content-Type-Options: nosniff`
42
+ - `X-Frame-Options: DENY`
43
+ - `Strict-Transport-Security` — HSTS with long max-age
@@ -0,0 +1,54 @@
1
+ ---
2
+ description: Every spec item must have testable acceptance criteria — no ambiguity, no adjectives, only numbers and types
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Specificity & Depth Standards
7
+
8
+ > No ambiguity downstream. No surface-level specs. Every element must be testable.
9
+
10
+ ## No Ambiguity: Testable Acceptance Criteria
11
+
12
+ Every spec item, feature description, and requirement MUST have **testable acceptance criteria**.
13
+
14
+ ### Ambiguous vs. Concrete
15
+
16
+ | ❌ Ambiguous | ✅ Concrete |
17
+ |-------------|------------|
18
+ | "Fast response times" | "P95 latency < 200ms for API responses" |
19
+ | "Secure authentication" | "JWT with RS256, 15-min access token, 7-day refresh, httpOnly cookie" |
20
+ | "User-friendly interface" | "Form validates on blur, shows inline errors, submits on Enter" |
21
+ | "Handle errors gracefully" | "4xx returns `{ error: string, code: string }`, 5xx logs to Sentry" |
22
+
23
+ ### When Writing Specs
24
+
25
+ - Numbers, not adjectives ("3 retries", not "retry several times")
26
+ - Specific types ("string[]", not "a list")
27
+ - Exact error behavior ("returns 409 with existing email", not "handles duplicates")
28
+ - Concrete state transitions ("pending → processing → complete | failed")
29
+
30
+ ### When Writing Code
31
+
32
+ - Explicit return types, not inferred
33
+ - Named constants, not magic numbers
34
+ - Error messages that identify the problem and suggest the fix
35
+
36
+ ## Depth Standards: Exhaustive Specifications
37
+
38
+ Specs must go **deep enough** that an implementer needs zero clarification.
39
+
40
+ ### Architecture Spec Depth
41
+
42
+ 1. Every entity has all fields typed with constraints
43
+ 2. Every relationship has cardinality and cascade behavior
44
+ 3. Every endpoint has request/response schema, error codes, auth rules
45
+ 4. Every state machine has all transitions and guard conditions
46
+ 5. Every integration has retry policy, timeout, fallback behavior
47
+
48
+ ### Feature Spec Depth
49
+
50
+ 1. Every UI component has props typed, states enumerated, events listed
51
+ 2. Every form has validation rules per field with error messages
52
+ 3. Every API call has loading, success, and error UI states
53
+ 4. Every responsive breakpoint has layout behavior specified
54
+ 5. Every interaction has keyboard, mouse, and touch behavior defined
@@ -0,0 +1,57 @@
1
+ ---
2
+ description: "{{CONTRACT_LIBRARY}} schema before implementation, failing test before code — Red Green Refactor every slice"
3
+ trigger: always_on
4
+ ---
5
+
6
+ # TDD & Contract-First Development
7
+
8
+ > **The CFPA Order**: Contract (`{{CONTRACT_LIBRARY}}` schema) → Tests (failing) → Implementation (make them pass) → Never reverse this.
9
+
10
+ ## Contract-First: Schema Before Code
11
+
12
+ Every data boundary gets a `{{CONTRACT_LIBRARY}}` schema **before** any implementation:
13
+
14
+ | Scenario | Schema Required |
15
+ |----------|----------------|
16
+ | New API endpoint | Request/response schemas |
17
+ | New DB model | Document/record schema |
18
+ | New UI form | Form data schema |
19
+ | New config | Configuration schema |
20
+ | External integration | External data shape schema |
21
+
22
+ ### What Contract Tests Must Cover
23
+
24
+ - ✅ Valid input accepted
25
+ - ✅ Invalid input rejected with correct error
26
+ - ✅ Edge cases (empty, null, boundary values)
27
+ - ✅ Type coercion where applicable
28
+ - ✅ Required vs optional fields
29
+
30
+ ## TDD: Tests ARE The Spec
31
+
32
+ Every feature starts with a **failing test**:
33
+
34
+ ```
35
+ Red → Green → Refactor
36
+ ```
37
+
38
+ 1. **Red**: Write a test that fails (proves the feature doesn't exist yet)
39
+ 2. **Green**: Write the minimum code to make it pass
40
+ 3. **Refactor**: Clean up without changing behavior
41
+
42
+ ### Five Test Levels
43
+
44
+ | Level | What | When |
45
+ |-------|------|------|
46
+ | Contract | `{{CONTRACT_LIBRARY}}` schema validation | Every data boundary |
47
+ | Permission | RBAC + ownership | Every protected resource |
48
+ | Unit | Pure logic | Every function with logic |
49
+ | Integration | Component interaction | Every API endpoint |
50
+ | E2E | Full user flow | Every critical path |
51
+
52
+ ### Non-Negotiables
53
+
54
+ - Tests pass before commit — **no exceptions**
55
+ - Test file lives next to source: `foo.ts` → `foo.test.ts`
56
+ - No `any` in test files — type your mocks
57
+ - Coverage minimum: 80% lines, 90% branches on critical paths
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: Features ship across all four surfaces or they don't ship — no half-built slices
3
+ trigger: always_on
4
+ ---
5
+
6
+ # Vertical Slices
7
+
8
+ ## The Rule
9
+
10
+ **A feature is not "done" until it works across all required surfaces.** No "backend done, frontend pending." No "user-facing works, admin can't manage it."
11
+
12
+ ## The Four Implementation Layers
13
+
14
+ > **Note on terminology**: The layers below describe implementation completeness criteria — what every feature slice requires regardless of surface type. These are not the same as surface types (web/mobile/cli/etc.). For the mapping between surface types and how each implementation layer manifests on that surface, see `.agent/skills/prd-templates/references/surface-model.md`.
15
+
16
+ | Surface | What It Is | Example |
17
+ |---------|-----------|---------|
18
+ | **User-Facing** | What the end user sees and interacts with | Dashboard, forms, data views |
19
+ | **Admin** | Management interface for operators | User management, configuration |
20
+ | **API** | Programmatic interface | REST/GraphQL endpoints |
21
+ | **Data** | Database schemas, migrations, seed data | Tables, indexes, permissions |
22
+
23
+ ## What "Done" Looks Like
24
+
25
+ A feature slice is complete when:
26
+
27
+ - [ ] Data layer: schema defined, permissions set, seed data exists
28
+ - [ ] API layer: endpoints exist, validated with Zod, tested
29
+ - [ ] User-facing: component renders, handles loading/error/empty states
30
+ - [ ] Admin: can create/read/update/delete the resource
31
+ - [ ] Tests pass at all levels (contract, unit, integration, E2E)
32
+ - [ ] Navigation: every new route is reachable from at least one navigation element
33
+ - [ ] Auth gates: every route that requires auth has the auth gate implemented (not stubbed)
34
+ - [ ] The feature is reachable from the app's entry point via normal user navigation
35
+
36
+ ## Anti-Patterns
37
+
38
+ | Don't | Do |
39
+ |-------|-----|
40
+ | "I'll add the admin panel later" | Include admin CRUD in the slice |
41
+ | "The API works, frontend next sprint" | Ship them together or not at all |
42
+ | "Database is set up, just need endpoints" | That's not a slice, that's a layer |