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,135 @@
1
+ ---
2
+ name: parallel-debugging
3
+ description: Leverage concurrent terminal background processes to debug multiple independent failures simultaneously using ACH methodology. Use when you have 2+ failures across different subsystems.
4
+ ---
5
+
6
+ # Parallel Debugging via Concurrent Streams
7
+
8
+ ## Overview
9
+
10
+ When a test suite or system has multiple independent failures, investigating them sequentially in a single terminal is slow. This skill teaches you to spawn multiple concurrent workstreams (e.g. background bash processes) per failure domain, investigating them simultaneously.
11
+
12
+ **Core principle:** This is a concurrency layer on top of `systematic-debugging`, not a replacement. You must still follow the full four-phase debugging process for each stream.
13
+
14
+ ## When to Use
15
+
16
+ - 2+ test failures across **different files or subsystems**
17
+ - Multiple error types in logs from **independent components**
18
+ - Post-refactor breakage across **unrelated modules**
19
+ - Production incidents affecting **separate services**
20
+
21
+ ## When NOT to Use
22
+
23
+ - **Related failures** — fixing one might fix others (investigate together first)
24
+ - **Shared state** — concurrent terminal commands might interfere (e.g. mutating the same database table)
25
+ - **Unknown scope** — you don't know what's broken yet (explore first, then go concurrent)
26
+ - **Single root cause suspected** — one investigation is faster
27
+
28
+ **Decision test:** If fixing Bug A could possibly affect Bug B, they are NOT independent. Investigate sequentially to avoid tool tool conflict.
29
+
30
+ ## The Protocol
31
+
32
+ ### Phase 1: Hypothesis Generation (ACH)
33
+
34
+ Before dispatching agents, generate competing hypotheses:
35
+
36
+ 1. **List all failures** with their error messages, stack traces, and last-known-good state
37
+ 2. **Group by domain** — which failures share files, state, or call paths?
38
+ 3. **Independence test** — for each group, ask: "Could fixing group A change group B's behavior?"
39
+ - **Yes** → merge into one investigation
40
+ - **No** → independent, can parallelize
41
+
42
+ ```markdown
43
+ ## Failure Analysis
44
+
45
+ | # | Failure | Domain | Files | Independent? |
46
+ |---|---------|--------|-------|-------------|
47
+ | 1 | `auth.test.ts` — token expired | Auth | `src/auth/*` | ✅ |
48
+ | 2 | `api.test.ts` — 500 on /users | API handler | `src/api/users.ts` | ✅ |
49
+ | 3 | `api.test.ts` — 500 on /users/me | API handler | `src/api/users.ts` | ❌ shares files with #2 |
50
+ | 4 | `db.test.ts` — connection refused | Database | `src/db/*` | ✅ |
51
+
52
+ → Dispatch: 3 agents (merge #2 + #3)
53
+ ```
54
+
55
+ ### Phase 2: Concurrent Investigation
56
+
57
+ For each independent failure domain, start a concurrent investigation stream:
58
+
59
+ 1. **Background Terminals**: Use your `WaitMsBeforeAsync` flag to run `npm run test -- path/to/failing.test.ts` in the background. Do this simultaneously for each independent domain.
60
+ 2. **Concurrent Analysis**: Check the status of all background commands concurrently. Read the logs side-by-side.
61
+
62
+ **Constraint per stream:**
63
+ - Mentally partition your execution space: Workstream 1 only looks at Files A and B. Workstream 2 only looks at Files C and D.
64
+ - Do NOT try to `replace_file_content` without strict certainty that the files don't overlap.
65
+ - Every stream still requires the full `systematic-debugging` methodology: gather evidence, find patterns, form hypothesis, test minimally.
66
+
67
+ ### Phase 3: Result Synthesis
68
+
69
+ After all agents complete:
70
+
71
+ ```markdown
72
+ ## Debug Synthesis
73
+
74
+ ### Results
75
+ | Agent | Domain | Root Cause | Fix | Confidence | Cross-Domain? |
76
+ |-------|--------|-----------|-----|------------|---------------|
77
+ | 1 | Auth | Expired token TTL config | Updated config | HIGH | No |
78
+ | 2+3 | API | Missing null check on user.email | Added guard | HIGH | No |
79
+ | 4 | Database | Connection pool exhausted | Increased pool size | MEDIUM | Possible |
80
+
81
+ ### Cross-Domain Discoveries
82
+ [Agent 4 noted: connection pool exhaustion could cause API timeouts under load.
83
+ This may be related to #2+3 under different conditions. Monitor after fix.]
84
+
85
+ ### Integration Verification
86
+ - [ ] All agent fixes applied
87
+ - [ ] No file conflicts between agents
88
+ - [ ] Full test suite passes (not just fixed tests)
89
+ - [ ] Cross-domain discoveries documented as issues
90
+ ```
91
+
92
+ **Synthesis rules:**
93
+ 1. **HIGH confidence + no cross-stream overlap** → apply fixes concurrently using batched `replace_file_content` calls.
94
+ 2. **MEDIUM confidence** → apply sequentially and test between each.
95
+ 3. **Cross-stream discovery** → stop concurrent execution, investigate sequentially.
96
+
97
+ ### Phase 4: Integration Verification
98
+
99
+ **Non-negotiable after merging all fixes:**
100
+
101
+ 1. Run full test suite (not just the tests each agent fixed)
102
+ 2. Check for new failures introduced by fixes
103
+ 3. Verify no files were modified by multiple agents
104
+ 4. Document cross-domain discoveries as issues for future investigation
105
+
106
+ ## Example: Real Session
107
+
108
+ **Scenario:** 6 failures across 3 files after refactoring
109
+
110
+ | File | Failures | Domain |
111
+ |------|----------|--------|
112
+ | `agent-tool-abort.test.ts` | 3 (timing issues) | Abort logic |
113
+ | `batch-completion.test.ts` | 2 (tools not executing) | Batch processing |
114
+ | `race-conditions.test.ts` | 1 (execution count = 0) | Race condition handling |
115
+
116
+ **Independence test:** Abort logic, batch processing, and race conditions are separate subsystems. ✅
117
+
118
+ **Dispatch:** Start 3 concurrent `run_command` tests in the background using `WaitMsBeforeAsync`, each tracing their subsystem. Check `command_status` concurrently for all 3.
119
+
120
+ **Results:**
121
+ - Stream 1: Replaced arbitrary timeouts with event-based waiting
122
+ - Stream 2: Fixed event structure bug (`threadId` in wrong place)
123
+ - Stream 3: Added wait for async tool execution to complete
124
+
125
+ **Integration:** All fixes independent, applied via batched `multi_replace_file_content` calls, full suite tested and green.
126
+
127
+ ## Common Mistakes
128
+
129
+ | Mistake | Consequence | Fix |
130
+ |---------|-------------|-----|
131
+ | Parallelizing related failures | One fix breaks another stream's assumptions | Independence test FIRST |
132
+ | Mismatched file edits | `replace_file_content` fails with hash mismatched | Ensure file scopes are 100% independent |
133
+ | Skipping systematic-debugging phases | Guessing instead of investigating | Run the actual tests concurrently |
134
+ | Running tests on shared DB | State leaks between background tests | Mock DB or run sequentially |
135
+ | Skipping integration verification | Silent regressions from fix interactions | Full suite after merge |
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: parallel-feature-development
3
+ description: Prevent tool call conflicts when making concurrent edits across a codebase. Establishes strict file ownership, interface contracts, and merge strategies. Use with parallel-agents when executing concurrent `replace_file_content` calls.
4
+ ---
5
+
6
+ # Concurrent Feature Development
7
+
8
+ ## Overview
9
+
10
+ When making concurrent code edits (e.g. implementing the frontend and backend of a slice simultaneously), the #1 risk is **file hash conflicts** — trying to execute multiple `replace_file_content` calls on the same file, which causes the operation to fail. This skill prevents that with strict file ownership, typed interface contracts, and batched execution.
11
+
12
+ **Core principle:** One concurrent stream per file, always. No exceptions. If two streams need the same file, they're not independent — restructure the decomposition.
13
+
14
+ ## When to Use
15
+
16
+ - Implementing multiple surfaces (e.g. `BE` and `FE`) in the same turn
17
+ - A phase plan has slices that can be implemented concurrently
18
+ - Multiple features touching different subsystems simultaneously
19
+ - Any time `parallel-agents` is used for implementation (not analysis)
20
+
21
+ ## When NOT to Use
22
+
23
+ - Single agent doing sequential work
24
+ - Agents only analyzing/reviewing (no code changes)
25
+ - All changes are in the same file or module
26
+
27
+ ## The Cardinal Rule
28
+
29
+ ```
30
+ ONE OWNER PER FILE. NO EXCEPTIONS.
31
+ ```
32
+
33
+ If Stream A owns `src/auth/login.ts`, no other stream may modify that file — not even to add an import.
34
+
35
+ ## The Protocol
36
+
37
+ ### 1. Ownership Declaration
38
+
39
+ Before writing code concurrently, create an explicit mental or written ownership manifest:
40
+
41
+ ```markdown
42
+ ## File Ownership Manifest
43
+
44
+ | Stream | Owned Files | Interface Files |
45
+ |--------|-------------|-----------------|
46
+ | Stream 1 (Auth) | `src/auth/*`, `src/middleware/auth.ts` | `src/types/auth.ts` |
47
+ | Stream 2 (API) | `src/api/*`, `src/middleware/api.ts` | `src/types/api.ts` |
48
+ | Stream 3 (UI) | `src/components/*`, `src/pages/*` | `src/types/ui.ts` |
49
+
50
+ ### Shared Files (Frozen)
51
+ - `src/types/shared.ts` — modify only in synthesis step
52
+ - `src/config.ts` — frozen during parallel work
53
+ - `package.json` — frozen during parallel work
54
+ ```
55
+
56
+ **Rules:**
57
+ - Every source file to be edited appears in exactly ONE workstream
58
+ - Shared files are **frozen** — do not mutate them concurrently
59
+ - If a stream needs a change to a shared file, document it as a `// BOUNDARY:` stub
60
+ - Interface files define the contract between streams
61
+
62
+ ### 2. Interface Contracts
63
+
64
+ Before generating concurrent edits, define the typed interfaces they'll communicate through:
65
+
66
+ ```typescript
67
+ // src/types/auth.ts — Stream 1 PRODUCES this, Stream 2 CONSUMES it
68
+ export interface AuthResult {
69
+ userId: string;
70
+ roles: string[];
71
+ token: string;
72
+ }
73
+
74
+ // src/types/api.ts — Stream 2 PRODUCES this, Stream 3 CONSUMES it
75
+ export interface UserResponse {
76
+ id: string;
77
+ name: string;
78
+ email: string;
79
+ }
80
+ ```
81
+
82
+ **Contract rules:**
83
+ - Interfaces are strictly defined BEFORE generating logic
84
+ - Do NOT change interface files during the concurrent implementation phase
85
+ - Each interface has exactly one PRODUCER and one or more CONSUMERS
86
+ - Develop against the interface, not assumptions
87
+
88
+ ### 3. Batched Tool Execution
89
+
90
+ When generating concurrent tool calls in the same turn:
91
+
92
+ ```markdown
93
+ ## Stream: [Role]
94
+
95
+ ### Your Owned Files
96
+ [Explicit list — you may ONLY create/modify these files]
97
+
98
+ ### Frozen Files (DO NOT MODIFY)
99
+ [List of shared files — read but never write]
100
+
101
+ ### Interface Contract
102
+ [The interfaces you produce and consume]
103
+
104
+ ### Boundary Protocol
105
+ If you need something from another stream's domain:
106
+ 1. Import the interface type (read-only)
107
+ 2. Code against the interface, not the implementation
108
+ 3. Add a `// BOUNDARY:` comment if you need a shared file change
109
+ ```
110
+
111
+ ### 4. Merge Protocol
112
+
113
+ Always execute edits that don't overlap in a single batched `multi_replace_file_content` call, but conceptually process dependencies:
114
+
115
+ ```
116
+ 1. Interface files (already defined, verify no changes)
117
+ 2. Stream with fewest dependencies first
118
+ 3. Stream with most dependencies last
119
+ 4. Shared file modifications (from BOUNDARY stubs)
120
+ ```
121
+
122
+ **Execution checklist:**
123
+ - [ ] No file appears in multiple streams' edits
124
+ - [ ] All interface contracts satisfied (types compile)
125
+ - [ ] Shared file BOUNDARY stubs resolved in a sequential commit
126
+ - [ ] Full test suite passes after the batched edit
127
+
128
+ ### 5. Conflict Resolution
129
+
130
+ If despite everything, a conflict is detected:
131
+
132
+ | Conflict Type | Resolution |
133
+ |---------------|-----------|
134
+ | **Same file modified** | `replace_file_content` block. Separate edits into sequential tool calls. |
135
+ | **Interface mismatch** | Producer's implementation doesn't match contract → fix producer |
136
+ | **Missing dependency** | Assumed something exists that doesn't → add BOUNDARY stub |
137
+ | **Mutual dependency** | A needs B's output AND B needs A's output → can't go concurrent, code sequentially |
138
+
139
+ ## Integration with Kit
140
+
141
+ - **With `session-continuity` Protocol 9 (Parallel Claim):** When tasks in progress files have surface tags (`BE`, `FE`, `QA`) and claim markers (`[!]`), the `files:` blocks under claimed tasks serve as your live ownership manifest. By analyzing these blocks, you can safely batch `replace_file_content` calls for both `FE` and `BE` tasks simultaneously.
142
+ - **With `boundary-not-placeholder`:** Use `// BOUNDARY:` stubs for cross-stream dependencies you can't resolve concurrently. Resolve them sequentially afterward.
143
+ - **With `implement-slice`:** When a slice enters parallel mode (step 1.5), claim all tags concurrently. The synthesis step (6.5) resolves BOUNDARY stubs on frozen files.
144
+
145
+ ## Example: Concurrent Vertical Slice
146
+
147
+ **Slice:** "User can view their profile"
148
+
149
+ | Stream | Surface | Owned Files | Produces | Consumes |
150
+ |--------|---------|-------------|----------|----------|
151
+ | DB Stream | Schema | `migrations/003-profile.sql`, `src/db/profile.ts` | `ProfileRecord` type | — |
152
+ | API Stream | Endpoint | `src/api/profile.ts`, `src/api/profile.test.ts` | `GET /api/profile` | `ProfileRecord` |
153
+ | UI Stream | Component | `src/components/Profile.tsx`, `src/pages/profile.astro` | Rendered page | `GET /api/profile` |
154
+
155
+ **Merge order:** DB → API → UI (dependency chain)
156
+
157
+ **Frozen files:** `src/types/shared.ts`, `astro.config.mjs`, `package.json`
158
+
159
+ ## Common Mistakes
160
+
161
+ | Mistake | Consequence | Fix |
162
+ |---------|-------------|-----|
163
+ | Two sub-tasks mutate the same file | Tool call conflict, lost edits | ONE STREAM PER FILE. NO EXCEPTIONS. |
164
+ | No interface contracts | Mismatched assumptions | Define types BEFORE editing |
165
+ | Skipping integration tests | Interfaces match but behavior doesn't | Full suite after batch edits |
166
+ | Parallelizing tightly coupled code | Constant blocking, BOUNDARY stubs everywhere | Code sequentially |
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: performance-budgeting
3
+ description: "Axis-by-axis interview methodology for establishing engineering performance budgets during architecture PRD compilation. Use when conducting the Step 10.5 performance budget interview in /create-prd-compile."
4
+ category: product
5
+ risk: none
6
+ source: self
7
+ date_added: "2026-03-03"
8
+ ---
9
+
10
+ # Performance Budgeting
11
+
12
+ ## Purpose
13
+
14
+ This skill owns the interview methodology for establishing concrete, enforceable performance thresholds across all applicable surfaces.
15
+
16
+ ## When to Use This Skill
17
+
18
+ - During `/create-prd-compile` Step 10.5 — the performance budget interview
19
+ - Any time engineering performance standards need to be established from scratch
20
+ - When updating `ENGINEERING-STANDARDS.md` for an existing project
21
+
22
+ ## Write-As-You-Go Rule
23
+
24
+ Performance budgets are written **as you go** — each axis is discussed, decided, and immediately written to the corresponding subsection of `docs/plans/ENGINEERING-STANDARDS.md`. Do not batch them.
25
+
26
+ ## Surface Conditioning
27
+
28
+ > **Surface conditioning**: Only present axes that apply to the confirmed tech stack surfaces. A CLI-only project skips Web Vitals and bundle-size axes. A web-only project skips Desktop and CLI axes. Always present API and DB axes.
29
+
30
+ ## Interview Protocol
31
+
32
+ ### Axis 0 — Target device tier and network baseline
33
+
34
+ Before any threshold is chosen, anchor all budgets to an explicit operating context. Require named choices — no vague defaults.
35
+
36
+ | Decision | Options (examples) |
37
+ |----------|---------------------|
38
+ | Target device tier | Low-end Android (Moto G Power), Mid-range (Pixel 7a), High-end (iPhone 15) |
39
+ | Target network condition | Slow 3G (400 Kbps, 400 ms RTT), Fast 3G (1.6 Mbps, 150 ms RTT), 4G (9 Mbps, 50 ms RTT), Wi-Fi |
40
+
41
+ Ask: "What is the lowest-spec device and slowest network your users will realistically use? All budgets will be validated against this baseline."
42
+
43
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `## Performance Budgets` baseline note — fill in the `[device tier]` and `[network condition]` placeholders.
44
+
45
+ ### Axis 1 — Web Vitals per page type (web/desktop surfaces only)
46
+
47
+ Define LCP, INP, and CLS targets **per page type** (e.g., landing, dashboard, detail). Different page types have different acceptable thresholds.
48
+
49
+ | Page Type | LCP | INP | CLS | Notes |
50
+ |-----------|-----|-----|-----|-------|
51
+ | Landing / marketing | ≤ 2.0 s | ≤ 150 ms | ≤ 0.05 | First-impression page; tightest targets |
52
+ | Dashboard / data-heavy | ≤ 2.5 s | ≤ 200 ms | ≤ 0.1 | Streaming data acceptable |
53
+ | Detail / form | ≤ 2.0 s | ≤ 100 ms | ≤ 0.05 | Interaction-heavy; INP matters most |
54
+
55
+ Ask: "Which page types does your app have, and do these starting points fit?"
56
+
57
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### Web Vitals per page type`
58
+
59
+ ### Axis 2 — JS bundle size per page type (web/desktop surfaces only)
60
+
61
+ Define initial and total JS budgets **per page type**, gzipped.
62
+
63
+ | Page Type | Initial JS (gzipped) | Total JS (gzipped) | Notes |
64
+ |-----------|---------------------|--------------------|-------|
65
+ | Landing / marketing | ≤ 80 KB | ≤ 150 KB | Must load fast on first visit |
66
+ | Dashboard / data-heavy | ≤ 150 KB | ≤ 300 KB | Lazy-load heavy components |
67
+
68
+ Ask: "Are there pages that pull in large libraries (maps, charts, editors)? Those need their own row."
69
+
70
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### JS Bundle Size per page type`
71
+
72
+ ### Axis 3 — API response time per tier
73
+
74
+ Define p50, p95, and p99 targets **per tier**, not a single number for the whole API.
75
+
76
+ | Tier | Description | p50 | p95 | p99 |
77
+ |------|-------------|-----|-----|-----|
78
+ | Tier 1 — Cached read | Response served from cache (Redis, CDN, in-memory) | ≤ 10 ms | ≤ 30 ms | ≤ 50 ms |
79
+ | Tier 2 — Uncached read | Single-entity DB fetch or simple join | ≤ 30 ms | ≤ 80 ms | ≤ 150 ms |
80
+ | Tier 3 — Write | Create, update, delete with validation | ≤ 80 ms | ≤ 200 ms | ≤ 400 ms |
81
+ | Tier 4 — Background | Async jobs, batch processing, external calls | Best-effort | ≤ 1000 ms | ≤ 3000 ms |
82
+
83
+ Ask: "Do any endpoints call external services? Those belong in Tier 4. Are there any endpoints that don't fit these four tiers?"
84
+
85
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### API Response Time per tier`
86
+
87
+ ### Axis 4 — DB query time per tier
88
+
89
+ Define p50 and p95 targets **per query tier**.
90
+
91
+ | Tier | Description | p50 | p95 |
92
+ |------|-------------|-----|-----|
93
+ | Tier 1 — Indexed point lookup | Primary-key or unique-index fetch | ≤ 5 ms | ≤ 15 ms |
94
+ | Tier 2 — Indexed range scan | Range or list query on indexed column | ≤ 15 ms | ≤ 50 ms |
95
+ | Tier 3 — Aggregation | COUNT, SUM, GROUP BY, window functions | ≤ 50 ms | ≤ 150 ms |
96
+ | Tier 4 — Full-text / vector / analytical | Search, similarity, or reporting queries | ≤ 100 ms | ≤ 300 ms |
97
+
98
+ Ask: "Are there any known heavy queries (reports, analytics)? Those belong in Tier 4. Any queries that don't fit these four tiers?"
99
+
100
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### DB Query Time per tier`
101
+
102
+ ### Axis 5 — Desktop / mobile surface budgets (if applicable)
103
+
104
+ Define surface-specific budgets using the reference table:
105
+
106
+ **Desktop**:
107
+ | Metric | Starting point |
108
+ |--------|---------------|
109
+ | Cold start | ≤ 2 s |
110
+ | Memory (idle / active) | ≤ 200 MB / ≤ 500 MB |
111
+ | Installer size | ≤ 100 MB |
112
+ | Window resize repaint | ≤ 16 ms (60 fps) |
113
+
114
+ **Mobile**:
115
+ | Metric | Starting point |
116
+ |--------|---------------|
117
+ | Cold launch | ≤ 1.5 s |
118
+ | Warm launch | ≤ 0.5 s |
119
+ | Battery drain (active) | ≤ 5 %/hr |
120
+ | Download size | ≤ 50 MB |
121
+
122
+ Ask: "Do these match your target devices and user expectations?"
123
+
124
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### Desktop surfaces` and/or `### Mobile surfaces`
125
+
126
+ ### Axis 6 — CI enforcement mapping
127
+
128
+ For **every budget defined in axes 0–5**, name the enforcement tool and fail condition.
129
+
130
+ | Budget Category | Enforcement Tool | Fail Condition | Fail vs. Warn |
131
+ |----------------|-----------------|----------------|---------------|
132
+ | Web Vitals | Lighthouse CI | Score below threshold | Fail |
133
+ | Bundle size | size-limit | Exceeds per-page-type cap | Fail |
134
+ | API response time | k6 / autocannon | p95 exceeds tier target | Warn (fail after baseline) |
135
+ | DB query time | pgbench / query timer | p95 exceeds tier target | Warn (fail after baseline) |
136
+ | Desktop/mobile | Platform profiler | Any metric exceeds threshold | Warn |
137
+
138
+ Ask: "For API and DB budgets, should CI fail immediately or warn-then-fail after a baseline run?"
139
+
140
+ **Write immediately** → `docs/plans/ENGINEERING-STANDARDS.md` § `### CI Enforcement`
141
+
142
+ ## Closing Summary
143
+
144
+ Summarise all confirmed performance budgets. Ask: "Any axis you want to tighten, loosen, or add?"
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: pipeline-rubrics
3
+ description: "Scoring rubrics for all 5 pipeline layers (Vision, Architecture, IA, BE, FE). Use when auditing specs, running self-checks, or remediating ambiguity gaps."
4
+ category: quality
5
+ risk: none
6
+ source: self
7
+ date_added: "2026-02-28"
8
+ ---
9
+
10
+ # Pipeline Rubrics
11
+
12
+ Standardized scoring rubrics for every pipeline layer. Used by audit workflows, self-checks in compilation workflows, and remediation workflows.
13
+
14
+ ## When to Use This Skill
15
+
16
+ - During `/audit-ambiguity` — load the rubric for the layer being audited
17
+ - During document compilation self-checks — load the relevant rubric to validate before presenting
18
+ - During `/remediate-pipeline` — load rubrics for adversarial scoring
19
+ - Any time a two-implementer test is needed on a pipeline document
20
+
21
+ ## How to Use
22
+
23
+ 1. Identify the pipeline layer being scored
24
+ 2. Load the matching reference file from `references/`
25
+ 3. Score each dimension using the ✅ / ⚠️ / ❌ criteria
26
+ 4. Apply the scoring formula from `references/scoring.md`
27
+
28
+ ## Reference Files
29
+
30
+ | Layer | File | Dimensions |
31
+ |-------|------|------------|
32
+ | Vision | `references/vision-rubric.md` | 7 |
33
+ | Architecture | `references/architecture-rubric.md` | 15 |
34
+ | IA | `references/ia-rubric.md` | 8 |
35
+ | BE | `references/be-rubric.md` | 10 |
36
+ | FE | `references/fe-rubric.md` | 10 |
37
+ | Scoring | `references/scoring.md` | Formula + cross-layer checks |
38
+
39
+ ## Two-Implementer Test
40
+
41
+ For every dimension: *"Would two different developers, reading only this spec with no other context, make the same decision?"*
42
+
43
+ - If YES with a specific citation → ✅
44
+ - If MAYBE or requires inference → ⚠️
45
+ - If NO or content is absent → ❌
46
+
47
+ ## Related Skills
48
+
49
+ - `resolve-ambiguity` — resolve gaps found by rubric scoring
50
+ - `technical-writer` — rewrite sections that score ⚠️ or ❌
51
+ - `code-review-pro` — adversarial review methodology
@@ -0,0 +1,19 @@
1
+ # Architecture Rubric (15 dimensions)
2
+
3
+ | # | Dimension | ✅ (must meet ALL criteria) | ⚠️ | ❌ |
4
+ |---|---|---|---|---|
5
+ | 1 | Tech Stack Decisiveness | Every applicable axis has a named technology + rationale + what alternatives were rejected and why. No axis uses "TBD" or "standard". | Some axes decided, some TBD or rationale missing | Major axes undecided |
6
+ | 2 | System Architecture | Every component is named. Every communication path has a protocol. Every component has a defined failure mode and fallback. Data flow is traced end-to-end with every hop named. Observability documented: logging library named, log format specified, PII scrubbing fields named, tracing boundaries named, alerting thresholds are numbers. | Some components or flows missing, or failure modes absent, or observability present but logging/tracing/alerting any one of these is missing or undocumented | Diagram only, no flows or failure modes; or no observability section at all |
7
+ | 3 | Data Strategy | Every entity has a named canonical store. Every hot query path is identified. Migration strategy names the tool and approach. PII fields are enumerated by name. | Some entities without canonical store, or PII not enumerated | Sketched only |
8
+ | 4 | Security Model | Auth flow is step-by-step. Every role has an explicit permission list. Rate limits are numbers (not "standard"). Input validation names the library and where it runs. | Some flows vague or rate limits unspecified | Not addressed |
9
+ | 5 | Compliance Depth | Every regulated domain (minors, payments, health) has its own section with: account type hierarchy, consent flows, content filtering rules, audit requirements. No compliance domain is a sub-bullet. | Mentioned but in a sub-bullet without full depth | Not addressed |
10
+ | 6 | API Design | Versioning strategy is named. Error format is defined (fields, types). Pagination strategy is named with parameters. Rate limit headers are specified. | Some conventions missing | Not addressed |
11
+ | 7 | Integration Robustness | Every external service has: what it provides + failure mode + fallback strategy + cost model. No external is listed without a fallback. | Some externals missing fallback or cost model | Externals unnamed |
12
+ | 8 | Phasing Clarity | Every phase has: entry criteria + exit criteria + dependency list. No phase uses "when ready" as a criterion. | Phases listed without entry/exit criteria | No phasing |
13
+ | 9 | Engineering Standards | Every threshold is a concrete number (coverage %, response time ms, bundle size KB). No threshold uses "good", "acceptable", or "TBD". Every threshold row names its enforcement tool (CI action, load test, profiler) — a threshold without a named enforcement tool is treated as incomplete. Performance budgets are per-page-type for web/desktop and per-tier for API and DB. | Some thresholds concrete but enforcement tool missing for one or more rows, or budgets use a single number for the whole app rather than per-page-type or per-tier | Thresholds missing entirely, or majority lack enforcement mechanisms |
14
+ | 10 | Persistence Architecture | Persistence map complete — all query types (find, store, relate, rank/search) mapped to a named store with rationale. Every entity spanning multiple stores has a documented cross-store consistency contract covering: canonical ID, creation sequence (with failure recovery), deletion cascade, and read join strategy. No store is chosen without a traced feature requirement. | Persistence map present but one or more cross-store entities missing their full consistency contract | No persistence map; single DATABASE decision with no query-type analysis |
15
+ | 11 | Error Architecture | Global error envelope defined with all four fields typed and a locked example JSON produced. Error propagation chain documents every layer (DB, service, API handler, transport, client) with explicit catch/log/expose rules. Unhandled exception strategy names the process-level mechanism, log fields, client response, and alerting timeline. Client fallback contract covers every surface with offline decision, UI behaviour, retry strategy, and timeout. Error boundary strategy names placement and fallback rendering for all applicable surfaces. | Envelope defined but propagation chain incomplete, or client fallback missing for one surface | No global error envelope; error handling left to individual spec writers |
16
+ | 12 | Attack Surface Coverage | Secret management plan documented (storage, access policy, rotation). Dependency audit cadence named with CI gate behaviour. Web surface: all OWASP Top 10 categories addressed with named mechanisms (not "handled by framework"). API surface: BOLA/IDOR addressed with per-endpoint ownership check strategy. Security headers documented with configured values (not just "enabled"). Observability: logging strategy documented (library, format, PII fields named), tracing documented (boundaries, sampling rate), alerting thresholds named with numbers. | Some surface checks present but one or more OWASP categories use vague mechanisms, or security headers missing configured values, or observability partially documented | No attack surface review present; secret management not documented |
17
+ | 13 | Observability & Operability Strategy | Runbook locations are named and linked. On-call escalation path defined with owner, contact method, and escalation timeline. At least one dashboard per service named with its hosting location. SLO defined per critical endpoint with a numeric target (e.g., "p99 < 300ms"). Mean-time-to-detection strategy named (what triggers the alert, which tool, which threshold number). Alert fatigue strategy addressed (severity tiers defined, silencing rules documented). | Some items present but runbooks missing, or SLOs not numeric, or escalation path absent, or dashboard named without hosting location | No operability strategy; observability only mentioned as sub-bullets in other dimensions with no dedicated analysis |
18
+ | 14 | Cost Architecture | Baseline cost documented (cost at 0 users / idle infrastructure). Scaling curve documented for at least two load points (e.g., 1k and 10k users) showing which component drives cost growth. Highest-cost operation per user action identified by name. Cost observability mechanism named (specific tool or method for seeing cost per feature or endpoint). Budget ceiling defined with a number and currency. | Cost mentioned but scaling curve absent, or budget ceiling missing, or no per-operation analysis, or cost observability mechanism unnamed | No cost analysis present; cost considerations absent from the architecture document |
19
+ | 15 | Testability Architecture | Test suite can run without live external network calls — dependency injection or service mocking strategy is named explicitly. Service boundaries are injectable for mocking (confirmed, not assumed). Local-dev environment topology mirrors production (or deviations are explicitly documented with rationale). Architecture avoids global shared mutable state that would create test-order dependencies — or an isolation strategy is named. Integration test data strategy documented (seed data approach, factory pattern, or test containers named). | Some criteria met but mocking strategy missing or undocumented, or local-dev parity undocumented, or test data strategy absent | No testability architecture consideration; testability left entirely to the implementation phase with no architectural decisions to support it |
@@ -0,0 +1,21 @@
1
+ # BE Rubric (11 dimensions)
2
+
3
+ | # | Dimension | ✅ (must meet ALL criteria) | ⚠️ | ❌ |
4
+ |---|---|---|---|---|
5
+ | 1 | Upstream Traceability | (a) Every endpoint cites its IA source shard + section. (b) Every schema field traces to an IA data model field. No endpoint is "inferred" from context. (c) Every sub-feature listed in the IA shard's `## Features` is represented by at least one endpoint in the BE spec — a sub-feature with zero endpoints and no explicit `[Deferred to Phase N]` note is a gap. | Some endpoints or fields missing IA citations, or ≤20% of sub-features lack endpoint representation | Orphan endpoints with no IA source, or >20% of sub-features have no endpoint and no deferral note |
6
+ | 2 | Contract Completeness | Every endpoint has: Zod request schema (all fields typed) + Zod response schema (all fields typed) + error schema. No field uses `any`, `unknown`, or untyped `string` where a more specific type exists. | Some schemas present but fields untyped or missing | Major schemas absent |
7
+ | 3 | Error Exhaustiveness | Every endpoint has: HTTP status code + application error code (not just HTTP) + error message format + retry guidance. No endpoint uses "standard error handling" without defining it. | Some endpoints missing error codes or retry guidance | Generic 500s or no error section |
8
+ | 4 | Schema Completeness | Every database table has: all fields with types + constraints (nullable, unique, indexed) + relationships with foreign keys + indexes for every query pattern. No field uses "standard" constraints without defining them. | Constraints or indexes missing | Sketched only |
9
+ | 5 | Middleware Explicitness | Every endpoint has an explicit middleware matrix: auth required (yes/no) + rate limit (number/window) + input validation (where it runs) + CORS policy. No endpoint inherits "default middleware" without defining it. | Some endpoints missing middleware entries | No matrix |
10
+ | 6 | State Transitions | Every stateful entity has a state machine: all states named + all valid transitions + what triggers each transition + what's blocked in each state. | Lifecycle mentioned but transitions or triggers missing | No lifecycle |
11
+ | 7 | Concurrency | Every write operation has an explicit concurrency strategy: optimistic locking, pessimistic locking, idempotency key, or "single writer" with justification. No operation uses "handle concurrency" without a named strategy. | Mentioned but strategy not named | Not addressed |
12
+ | 8 | Pagination & Limits | Every list endpoint has: pagination strategy (cursor/offset) + page size (default + max) + sort options + filter options. No endpoint uses "standard pagination" without defining it. | Some list endpoints missing pagination or limits | No strategy |
13
+ | 9 | Integration Seams | Every external service call has: request format + response format + timeout (ms) + retry policy (count + backoff) + circuit breaker behavior. No integration uses "standard retry" without defining it. | Some integrations missing timeout or retry policy | Unnamed externals |
14
+ | 10 | Security Rules | Every endpoint has explicit: authentication requirement + authorization check (which roles) + input sanitization + output filtering (what's excluded from response). No endpoint uses "standard security" without defining it. | Some endpoints missing auth or authz specification | Not mentioned |
15
+ | 11 | Global Error Envelope Conformance | Every endpoint's error section explicitly cites the global error envelope from `architecture-design.md` `## Error Architecture` (e.g., `[error-architecture]` reference or direct quote of the envelope shape). No endpoint defines its own error shape that differs from the global envelope. The `code` field in every error response uses the application-specific enum, not a raw HTTP status string. | Envelope referenced on most endpoints but one or more endpoints define a local error shape without justification | No reference to the global error envelope anywhere in the spec; each endpoint invents its own error shape |
16
+
17
+ > **Dimension 1 audit procedure**:
18
+ > 1. Read the IA shard's `## Features` section and list every Level-1 sub-feature.
19
+ > 2. For each sub-feature, search the BE spec for at least one endpoint that implements it. An endpoint "implements" a sub-feature if it directly creates, reads, updates, or deletes data for that capability.
20
+ > 3. If a sub-feature has no endpoint, check for an explicit `[Deferred to Phase N — reason]` note in the endpoint completeness reconciliation table. If neither an endpoint nor a deferral note exists, score it as a gap.
21
+ > 4. Score: ✅ if all sub-features are represented. ⚠️ if ≤20% of sub-features lack representation. ❌ if >20% of sub-features have no endpoint and no deferral note.
@@ -0,0 +1,20 @@
1
+ # FE Rubric (11 dimensions)
2
+
3
+ | # | Dimension | ✅ (must meet ALL criteria) | ⚠️ | ❌ |
4
+ |---|---|---|---|---|
5
+ | 1 | Upstream Traceability | Every component cites its BE source spec + field. Every page cites its IA user flow. No component is "inferred" from context. | Some components or pages missing source citations | No mapping |
6
+ | 2 | Component Inventory | (a) Every component has: name + props interface (all props typed) + children + variants. No component uses "standard props" or "typical interface". (b) Every IA user flow maps to at least one component or page entry in the FE spec — no user flow is unrepresented. (c) Every role-based rendering variant from the conditional rendering matrix (produced during `/write-fe-spec-classify` Step 4c.5) appears as a named component variant. | Some components missing props or variants, or some IA user flows not mapped to any component, or some conditional rendering variants missing | Vague component list, or IA user flows largely unrepresented, or no conditional rendering variants defined |
7
+ | 3 | State Management | Every piece of state is classified: server state (which query) + client state (which store) + URL state (which param). Loading, error, and empty states are defined for every async operation. | Some state unclassified or async states missing | Unspecified |
8
+ | 4 | Interactions | Every interactive element has: trigger + action + feedback (visual + timing). Every form has: validation rules + error display + submission behavior + success behavior. | Some interactions implicit or missing feedback | Unspecified |
9
+ | 5 | Routing | Every route has: URL pattern + auth guard (yes/no + redirect target) + page component + meta (title, description). No route uses "standard guard" without defining it. | Some routes missing guards or meta | Vague |
10
+ | 6 | Responsive | Every component has behavior defined at: mobile (≤768px) + tablet (769–1024px) + desktop (≥1025px). No component uses "responsive" without defining the behavior at each breakpoint. | Mobile mentioned but tablet/desktop missing | Not addressed |
11
+ | 7 | Accessibility | Every interactive element has: ARIA role + keyboard navigation + screen reader label. Every image has alt text policy. WCAG level is named. | Partial — some elements missing ARIA or keyboard nav | Not addressed |
12
+ | 8 | Error/Loading States | Every data-fetching view has: loading skeleton/spinner + error message + retry action + empty state. No state uses "standard loading" without defining it. | Some states missing or using generic messages | None |
13
+ | 9 | Performance | Every page has: bundle size budget + lazy loading strategy for heavy components + image optimization policy. No page uses "optimized" without a number. | Some pages missing budgets or lazy loading strategy | Not addressed |
14
+ | 10 | Security Rules | Every form has: CSRF protection + input sanitization + output encoding. Every auth-gated view has: token validation + expiry handling + redirect on failure. | Some forms or views missing security rules | Not mentioned |
15
+ | 11 | Design System Consistency | Every page component names its page archetype from design-system.md. Every loading/error/empty state uses the confirmed design language (skeleton vs. spinner, toast vs. inline error — no invention). Every navigation element is drawn from the global component inventory (not re-implemented). Motion durations and easing match the confirmed motion language. | Some components naming archetype but others missing; or some states using non-standard patterns | No reference to design-system.md; components invent their own layout conventions |
16
+
17
+ > **Dimension 2 audit procedure**:
18
+ > 1. Read the IA shard's `## User Interactions` section and list every user flow (each trigger → action → response sequence counts as one flow).
19
+ > 2. For each user flow, search the FE spec's `## Component Inventory` and `## Page/Route Definitions` for at least one component or page entry that implements it. A flow is "implemented" if a component or page handles the trigger and renders the expected response. Score ⚠️ if some flows are unmapped. Score ❌ if IA user flows are largely unrepresented.
20
+ > 3. Read the conditional rendering matrix from `/write-fe-spec-classify` Step 4c.5. For each non-trivial cell (any value other than `full` for the majority role), verify the FE spec's component inventory includes a named variant for that role × feature combination. Score ⚠️ if some variants are missing. Score ❌ if no conditional rendering variants are defined.
@@ -0,0 +1,19 @@
1
+ # IA Rubric (8 dimensions)
2
+
3
+ | # | Dimension | ✅ (must meet ALL criteria) | ⚠️ | ❌ |
4
+ |---|---|---|---|---|
5
+ | 1 | Feature Enumeration | (a) Every feature from the vision's Must Have list appears in at least one shard. (b) Every feature has a clear scope boundary (what's in, what's out). (c) Every shard's `## Features` section contains Level-1 sub-features from `ideation.md` — not architecture headlines — and every sub-feature is represented in at least one section body (User Interactions, Data Model, Access Control, or Edge Cases). | Some features vague, scope unclear, or sub-features listed in `## Features` but not represented in any section body | Major Must Have features missing, or `## Features` contains only architecture headlines with no sub-feature detail |
6
+ | 2 | Access Model | Every role has: a named role + an exhaustive list of what it CAN do + an exhaustive list of what it CANNOT do + escalation path. No role uses "standard access" without defining it. | Some roles defined but missing permission or restriction lists | No access model |
7
+ | 3 | Data Model | Every entity has: named fields + field types + constraints + relationships with cardinality. No field uses "standard" or "typical" without defining it. | Structure present but field types or constraints missing | Absent |
8
+ | 4 | User Flows | Every user flow has: trigger + step-by-step actions + system responses + error paths. No flow ends at "success" without defining what success looks like. | Happy path only, or flows missing error paths | None |
9
+ | 5 | Cross-Shard Contracts | Every cross-shard reference is bidirectional and cites the specific section in the referenced shard. No reference uses "see shard N" without a section name. | One-way references or missing section citations | None |
10
+ | 6 | Edge Cases | Every feature has ≥3 edge cases covering: concurrent access, invalid input, and deletion/cascade. No edge case uses "handle gracefully" without defining the handling. | Some edge cases listed but fewer than 3 per feature, or vague handling | None |
11
+ | 7 | Deep Dive Coverage | Every referenced deep dive file exists and contains exhaustive subsystem detail (technology choice + rationale + phasing + failure modes + integration contracts). No deep dive is a skeleton. | Some deep dives exist but are partial or skeleton | Referenced deep dives missing or empty |
12
+ | 8 | Testability | Every feature has ≥1 acceptance criterion in Given/When/Then format. No criterion uses "should work" or "should be fast" without a measurable threshold. | Some criteria present but not in Given/When/Then or missing thresholds | Mostly subjective |
13
+
14
+ > **Deep Dive audit note**: When auditing dimension 7, read each deep dive file directly — do not infer its completeness from the parent shard's reference to it. A parent shard that links to a deep dive scores ⚠️ (not ✅) if the deep dive file itself is still a skeleton. Score ✅ only when the deep dive file contains exhaustive subsystem detail that an implementer could work from without asking questions.
15
+
16
+ > **Dimension 1 audit procedure**:
17
+ > 1. Read `docs/plans/vision.md` (and `ideation.md` appendix if present) to extract the authoritative list of Level-1 sub-features per domain.
18
+ > 2. For each shard, open `docs/plans/ia/[NN-domain-name].md` and confirm every sub-feature from step 1 appears in the `## Features` section. Score ❌ if Must Have sub-features are missing entirely.
19
+ > 3. For each sub-feature listed in `## Features`, verify it is represented in at least one section body (User Interactions, Data Model, Access Control, or Edge Cases). A sub-feature that appears only as a headline in `## Features` but has no corresponding detail in any section body scores ⚠️ — headline only = warning, not pass.
@@ -0,0 +1,28 @@
1
+ # Scoring Formula
2
+
3
+ - ✅ = 0 points, ⚠️ = 0.5 points, ❌ = 1 point
4
+ - `ambiguity% = (points / applicable_checkpoints) × 100`
5
+ - Gaps found during Implementer Simulation are added directly to the punch list as ❌ items and also count toward the ambiguity score.
6
+
7
+ ## Cross-Layer Consistency Checks
8
+
9
+ Run after all per-document scoring is complete, whenever the current layer is BE, FE, or the scope is `all`.
10
+
11
+ | Check | How to Verify |
12
+ |-------|---------------|
13
+ | IA → BE coverage | For each user flow in each IA shard, verify a BE endpoint exists that handles it. Orphan endpoints or uncovered flows are ❌. |
14
+ | BE → FE field mapping | For each BE response field, verify at least one FE component prop consumes it. Unmapped fields or props are ❌. |
15
+ | IA → FE access control | For each access control rule in each IA shard, verify the FE spec has corresponding conditional rendering. Missing conditional rendering is ❌. |
16
+ | Error code coverage | For each BE error code, verify the FE spec has a corresponding error state. Missing error states are ❌. |
17
+
18
+ Write all cross-layer findings to a `## Cross-Layer Consistency` section in the layer's ambiguity report.
19
+
20
+ ## Document-to-Layer Mapping
21
+
22
+ | Layer | Documents to load |
23
+ |-------|-------------------|
24
+ | Vision | `docs/plans/vision.md` |
25
+ | Architecture | `docs/plans/*-architecture-design.md`, `docs/plans/ENGINEERING-STANDARDS.md` |
26
+ | IA | `docs/plans/ia/index.md` + each shard listed + `docs/plans/ia/deep-dives/*.md` (list directory; include all files present) |
27
+ | BE | `docs/plans/be/index.md` + each spec listed |
28
+ | FE | `docs/plans/fe/index.md` + each spec listed |
@@ -0,0 +1,11 @@
1
+ # Vision Rubric (7 dimensions)
2
+
3
+ | # | Dimension | ✅ (must meet ALL criteria) | ⚠️ | ❌ |
4
+ |---|---|---|---|---|
5
+ | 1 | Problem Clarity | Single sentence. Names a specific user. Names a specific pain. Is falsifiable. | Vague, multi-problem, or untestable | Missing |
6
+ | 2 | Persona Specificity | Each persona has: name + role + specific pain point + current workaround + success criteria + switching trigger. No persona uses "users" or "customers" without a role. | Named but missing ≥1 required field | Missing or generic "users" |
7
+ | 3 | Feature Completeness | Every Must Have has ≥2 levels of sub-features. Every sub-feature has at least one edge case. MoSCoW categories are mutually exclusive. | Some Must Haves at Level 1 only, or missing edge cases | Missing MoSCoW or major features absent |
8
+ | 4 | Constraint Explicitness | Every axis (budget, timeline, team size, compliance, performance) has a specific value or explicit "not applicable". No axis uses "standard" or "TBD". | Some axes addressed, some missing or vague | Missing |
9
+ | 5 | Success Measurability | Every metric is a number with a unit and a timeframe (e.g., "p95 < 500ms at launch"). No metric uses "fast", "good", or "acceptable". | Directional only | Missing |
10
+ | 6 | Competitive Positioning | ≥3 named competitors. Differentiation is a specific capability gap. Moat is a defensible mechanism. | Vague positioning or <3 competitors | Not addressed |
11
+ | 7 | Open Question Resolution | Every open question has: owner + deadline + what decision it blocks. No question is listed without an owner. | Questions listed, no owners or deadlines | No questions section |