ac-framework 1.6.0 → 1.8.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 (734) hide show
  1. package/README.md +299 -185
  2. package/bin/postinstall.js +8 -1
  3. package/framework/.agent/skills/acfm-memory/SKILL.md +312 -0
  4. package/framework/.agent/skills/acfm-spec-workflow/SKILL.md +269 -0
  5. package/framework/.agent/skills/brainstorming/SKILL.md +266 -38
  6. package/framework/.agent/skills/ci-deploy/SKILL.md +501 -0
  7. package/framework/.agent/skills/code-review/SKILL.md +250 -0
  8. package/framework/.agent/skills/context-synthesizer/SKILL.md +322 -0
  9. package/framework/.agent/skills/documentation/SKILL.md +441 -0
  10. package/framework/.agent/skills/microtask-decomposition/SKILL.md +368 -0
  11. package/framework/.agent/skills/openspec-apply-change/SKILL.md +23 -7
  12. package/framework/.agent/skills/openspec-archive-change/SKILL.md +22 -6
  13. package/framework/.agent/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  14. package/framework/.agent/skills/openspec-continue-change/SKILL.md +20 -4
  15. package/framework/.agent/skills/openspec-explore/SKILL.md +17 -1
  16. package/framework/.agent/skills/openspec-ff-change/SKILL.md +21 -5
  17. package/framework/.agent/skills/openspec-new-change/SKILL.md +23 -7
  18. package/framework/.agent/skills/openspec-sync-specs/SKILL.md +20 -4
  19. package/framework/.agent/skills/openspec-verify-change/SKILL.md +24 -8
  20. package/framework/.agent/skills/research-retrieval/SKILL.md +357 -0
  21. package/framework/.agent/skills/testing-qa/SKILL.md +249 -0
  22. package/framework/.agent/workflows/ac-lite.md +192 -0
  23. package/framework/.agent/workflows/ac.md +402 -177
  24. package/framework/.amazonq/prompts/ac-lite.md +192 -0
  25. package/framework/.amazonq/prompts/ac.md +402 -177
  26. package/framework/.amazonq/skills/acfm-memory/SKILL.md +312 -0
  27. package/framework/.amazonq/skills/acfm-spec-workflow/SKILL.md +269 -0
  28. package/framework/.amazonq/skills/brainstorming/SKILL.md +266 -38
  29. package/framework/.amazonq/skills/ci-deploy/SKILL.md +501 -0
  30. package/framework/.amazonq/skills/code-review/SKILL.md +250 -0
  31. package/framework/.amazonq/skills/context-synthesizer/SKILL.md +322 -0
  32. package/framework/.amazonq/skills/documentation/SKILL.md +441 -0
  33. package/framework/.amazonq/skills/microtask-decomposition/SKILL.md +368 -0
  34. package/framework/.amazonq/skills/openspec-apply-change/SKILL.md +23 -7
  35. package/framework/.amazonq/skills/openspec-archive-change/SKILL.md +22 -6
  36. package/framework/.amazonq/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  37. package/framework/.amazonq/skills/openspec-continue-change/SKILL.md +20 -4
  38. package/framework/.amazonq/skills/openspec-explore/SKILL.md +17 -1
  39. package/framework/.amazonq/skills/openspec-ff-change/SKILL.md +21 -5
  40. package/framework/.amazonq/skills/openspec-new-change/SKILL.md +23 -7
  41. package/framework/.amazonq/skills/openspec-sync-specs/SKILL.md +20 -4
  42. package/framework/.amazonq/skills/openspec-verify-change/SKILL.md +24 -8
  43. package/framework/.amazonq/skills/research-retrieval/SKILL.md +357 -0
  44. package/framework/.amazonq/skills/testing-qa/SKILL.md +249 -0
  45. package/framework/.antigravity/skills/acfm-memory/SKILL.md +312 -0
  46. package/framework/.antigravity/skills/acfm-spec-workflow/SKILL.md +269 -0
  47. package/framework/.antigravity/skills/api-design-principles/SKILL.md +528 -0
  48. package/framework/.antigravity/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  49. package/framework/.antigravity/skills/api-design-principles/assets/rest-api-template.py +182 -0
  50. package/framework/.antigravity/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  51. package/framework/.antigravity/skills/api-design-principles/references/rest-best-practices.md +408 -0
  52. package/framework/.antigravity/skills/brainstorming/SKILL.md +282 -0
  53. package/framework/.antigravity/skills/changelog-generator/SKILL.md +104 -0
  54. package/framework/.antigravity/skills/ci-deploy/SKILL.md +501 -0
  55. package/framework/.antigravity/skills/code-maintainability/SKILL.md +1108 -0
  56. package/framework/.antigravity/skills/code-review/SKILL.md +250 -0
  57. package/framework/.antigravity/skills/context-synthesizer/SKILL.md +322 -0
  58. package/framework/.antigravity/skills/documentation/SKILL.md +441 -0
  59. package/framework/.antigravity/skills/error-handling-patterns/SKILL.md +641 -0
  60. package/framework/.antigravity/skills/interface-design/SKILL.md +310 -0
  61. package/framework/.antigravity/skills/interface-design/references/example.md +86 -0
  62. package/framework/.antigravity/skills/interface-design/references/principles.md +235 -0
  63. package/framework/.antigravity/skills/interface-design/references/validation.md +48 -0
  64. package/framework/.antigravity/skills/microtask-decomposition/SKILL.md +368 -0
  65. package/framework/.antigravity/skills/openspec-apply-change/SKILL.md +172 -0
  66. package/framework/.antigravity/skills/openspec-archive-change/SKILL.md +130 -0
  67. package/framework/.antigravity/skills/openspec-bulk-archive-change/SKILL.md +262 -0
  68. package/framework/.antigravity/skills/openspec-continue-change/SKILL.md +134 -0
  69. package/framework/.antigravity/skills/openspec-explore/SKILL.md +306 -0
  70. package/framework/.antigravity/skills/openspec-ff-change/SKILL.md +117 -0
  71. package/framework/.antigravity/skills/openspec-new-change/SKILL.md +90 -0
  72. package/framework/.antigravity/skills/openspec-onboard/SKILL.md +529 -0
  73. package/framework/.antigravity/skills/openspec-sync-specs/SKILL.md +154 -0
  74. package/framework/.antigravity/skills/openspec-verify-change/SKILL.md +184 -0
  75. package/framework/.antigravity/skills/performance-optimizer/SKILL.md +43 -0
  76. package/framework/.antigravity/skills/project-constitution/SKILL.md +66 -0
  77. package/framework/.antigravity/skills/project-index/SKILL.md +234 -0
  78. package/framework/.antigravity/skills/project-index/scripts/scan_codebase.py +47 -0
  79. package/framework/.antigravity/skills/project-index/templates/agent-template.md +18 -0
  80. package/framework/.antigravity/skills/project-index/templates/skill-template.md +20 -0
  81. package/framework/.antigravity/skills/requirement-checklist/SKILL.md +90 -0
  82. package/framework/.antigravity/skills/research-retrieval/SKILL.md +357 -0
  83. package/framework/.antigravity/skills/secure-coding-cybersecurity/SKILL.md +793 -0
  84. package/framework/.antigravity/skills/secure-coding-cybersecurity/references/ai_coding_pitfalls.md +44 -0
  85. package/framework/.antigravity/skills/secure-coding-cybersecurity/references/owasp_top_10_2025.md +28 -0
  86. package/framework/.antigravity/skills/secure-coding-cybersecurity/references/secure_coding_examples.md +102 -0
  87. package/framework/.antigravity/skills/secure-coding-cybersecurity/scripts/security_audit.py +46 -0
  88. package/framework/.antigravity/skills/skill-writer/SKILL.md +385 -0
  89. package/framework/.antigravity/skills/spec-analysis/SKILL.md +65 -0
  90. package/framework/.antigravity/skills/spec-clarification/SKILL.md +73 -0
  91. package/framework/.antigravity/skills/sync-index/SKILL.md +35 -0
  92. package/framework/.antigravity/skills/systematic-debugging/SKILL.md +296 -0
  93. package/framework/.antigravity/skills/test-generator/SKILL.md +41 -0
  94. package/framework/.antigravity/skills/testing-qa/SKILL.md +249 -0
  95. package/framework/.antigravity/skills/vercel-react-best-practices/AGENTS.md +2934 -0
  96. package/framework/.antigravity/skills/vercel-react-best-practices/SKILL.md +136 -0
  97. package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  98. package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  99. package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  100. package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  101. package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  102. package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  103. package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  104. package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  105. package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  106. package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  107. package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  108. package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  109. package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  110. package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  111. package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  112. package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  113. package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  114. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  115. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  116. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  117. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  118. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  119. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  120. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  121. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  122. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  123. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  124. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  125. package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  126. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  127. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  128. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  129. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  130. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  131. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  132. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  133. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  134. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  135. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  136. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  137. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  138. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  139. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  140. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  141. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  142. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  143. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  144. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  145. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  146. package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  147. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  148. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  149. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  150. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  151. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  152. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  153. package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  154. package/framework/.antigravity/workflows/ac-lite.md +192 -0
  155. package/framework/.antigravity/workflows/ac.md +486 -0
  156. package/framework/.augment/commands/ac-lite.md +192 -0
  157. package/framework/.augment/commands/ac.md +402 -177
  158. package/framework/.augment/skills/acfm-memory/SKILL.md +312 -0
  159. package/framework/.augment/skills/acfm-spec-workflow/SKILL.md +269 -0
  160. package/framework/.augment/skills/brainstorming/SKILL.md +266 -38
  161. package/framework/.augment/skills/ci-deploy/SKILL.md +501 -0
  162. package/framework/.augment/skills/code-review/SKILL.md +250 -0
  163. package/framework/.augment/skills/context-synthesizer/SKILL.md +322 -0
  164. package/framework/.augment/skills/documentation/SKILL.md +441 -0
  165. package/framework/.augment/skills/microtask-decomposition/SKILL.md +368 -0
  166. package/framework/.augment/skills/openspec-apply-change/SKILL.md +23 -7
  167. package/framework/.augment/skills/openspec-archive-change/SKILL.md +22 -6
  168. package/framework/.augment/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  169. package/framework/.augment/skills/openspec-continue-change/SKILL.md +20 -4
  170. package/framework/.augment/skills/openspec-explore/SKILL.md +17 -1
  171. package/framework/.augment/skills/openspec-ff-change/SKILL.md +21 -5
  172. package/framework/.augment/skills/openspec-new-change/SKILL.md +23 -7
  173. package/framework/.augment/skills/openspec-sync-specs/SKILL.md +20 -4
  174. package/framework/.augment/skills/openspec-verify-change/SKILL.md +24 -8
  175. package/framework/.augment/skills/research-retrieval/SKILL.md +357 -0
  176. package/framework/.augment/skills/testing-qa/SKILL.md +249 -0
  177. package/framework/.claude/commands/opsx/ac-lite.md +192 -0
  178. package/framework/.claude/commands/opsx/ac.md +402 -177
  179. package/framework/.claude/skills/acfm-memory/SKILL.md +312 -0
  180. package/framework/.claude/skills/acfm-spec-workflow/SKILL.md +269 -0
  181. package/framework/.claude/skills/brainstorming/SKILL.md +266 -38
  182. package/framework/.claude/skills/ci-deploy/SKILL.md +501 -0
  183. package/framework/.claude/skills/code-review/SKILL.md +250 -0
  184. package/framework/.claude/skills/context-synthesizer/SKILL.md +322 -0
  185. package/framework/.claude/skills/documentation/SKILL.md +441 -0
  186. package/framework/.claude/skills/microtask-decomposition/SKILL.md +368 -0
  187. package/framework/.claude/skills/openspec-apply-change/SKILL.md +23 -7
  188. package/framework/.claude/skills/openspec-archive-change/SKILL.md +22 -6
  189. package/framework/.claude/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  190. package/framework/.claude/skills/openspec-continue-change/SKILL.md +20 -4
  191. package/framework/.claude/skills/openspec-explore/SKILL.md +17 -1
  192. package/framework/.claude/skills/openspec-ff-change/SKILL.md +21 -5
  193. package/framework/.claude/skills/openspec-new-change/SKILL.md +23 -7
  194. package/framework/.claude/skills/openspec-sync-specs/SKILL.md +20 -4
  195. package/framework/.claude/skills/openspec-verify-change/SKILL.md +24 -8
  196. package/framework/.claude/skills/research-retrieval/SKILL.md +357 -0
  197. package/framework/.claude/skills/testing-qa/SKILL.md +249 -0
  198. package/framework/.cline/commands/opsx/ac-lite.md +192 -0
  199. package/framework/.cline/commands/opsx/ac.md +486 -0
  200. package/framework/.cline/skills/acfm-memory/SKILL.md +312 -0
  201. package/framework/.cline/skills/acfm-spec-workflow/SKILL.md +269 -0
  202. package/framework/.cline/skills/brainstorming/SKILL.md +266 -38
  203. package/framework/.cline/skills/ci-deploy/SKILL.md +501 -0
  204. package/framework/.cline/skills/code-review/SKILL.md +250 -0
  205. package/framework/.cline/skills/context-synthesizer/SKILL.md +322 -0
  206. package/framework/.cline/skills/documentation/SKILL.md +441 -0
  207. package/framework/.cline/skills/microtask-decomposition/SKILL.md +368 -0
  208. package/framework/.cline/skills/openspec-apply-change/SKILL.md +23 -7
  209. package/framework/.cline/skills/openspec-archive-change/SKILL.md +22 -6
  210. package/framework/.cline/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  211. package/framework/.cline/skills/openspec-continue-change/SKILL.md +20 -4
  212. package/framework/.cline/skills/openspec-explore/SKILL.md +17 -1
  213. package/framework/.cline/skills/openspec-ff-change/SKILL.md +21 -5
  214. package/framework/.cline/skills/openspec-new-change/SKILL.md +23 -7
  215. package/framework/.cline/skills/openspec-sync-specs/SKILL.md +20 -4
  216. package/framework/.cline/skills/openspec-verify-change/SKILL.md +24 -8
  217. package/framework/.cline/skills/research-retrieval/SKILL.md +357 -0
  218. package/framework/.cline/skills/testing-qa/SKILL.md +249 -0
  219. package/framework/.clinerules/skills/acfm-memory/SKILL.md +312 -0
  220. package/framework/.clinerules/skills/acfm-spec-workflow/SKILL.md +269 -0
  221. package/framework/.clinerules/skills/brainstorming/SKILL.md +266 -38
  222. package/framework/.clinerules/skills/ci-deploy/SKILL.md +501 -0
  223. package/framework/.clinerules/skills/code-review/SKILL.md +250 -0
  224. package/framework/.clinerules/skills/context-synthesizer/SKILL.md +322 -0
  225. package/framework/.clinerules/skills/documentation/SKILL.md +441 -0
  226. package/framework/.clinerules/skills/microtask-decomposition/SKILL.md +368 -0
  227. package/framework/.clinerules/skills/openspec-apply-change/SKILL.md +23 -7
  228. package/framework/.clinerules/skills/openspec-archive-change/SKILL.md +22 -6
  229. package/framework/.clinerules/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  230. package/framework/.clinerules/skills/openspec-continue-change/SKILL.md +20 -4
  231. package/framework/.clinerules/skills/openspec-explore/SKILL.md +17 -1
  232. package/framework/.clinerules/skills/openspec-ff-change/SKILL.md +21 -5
  233. package/framework/.clinerules/skills/openspec-new-change/SKILL.md +23 -7
  234. package/framework/.clinerules/skills/openspec-sync-specs/SKILL.md +20 -4
  235. package/framework/.clinerules/skills/openspec-verify-change/SKILL.md +24 -8
  236. package/framework/.clinerules/skills/research-retrieval/SKILL.md +357 -0
  237. package/framework/.clinerules/skills/testing-qa/SKILL.md +249 -0
  238. package/framework/.clinerules/workflows/ac-lite.md +192 -0
  239. package/framework/.clinerules/workflows/ac.md +402 -177
  240. package/framework/.codebuddy/commands/opsx/ac-lite.md +192 -0
  241. package/framework/.codebuddy/commands/opsx/ac.md +402 -177
  242. package/framework/.codebuddy/skills/acfm-memory/SKILL.md +312 -0
  243. package/framework/.codebuddy/skills/acfm-spec-workflow/SKILL.md +269 -0
  244. package/framework/.codebuddy/skills/brainstorming/SKILL.md +266 -38
  245. package/framework/.codebuddy/skills/ci-deploy/SKILL.md +501 -0
  246. package/framework/.codebuddy/skills/code-review/SKILL.md +250 -0
  247. package/framework/.codebuddy/skills/context-synthesizer/SKILL.md +322 -0
  248. package/framework/.codebuddy/skills/documentation/SKILL.md +441 -0
  249. package/framework/.codebuddy/skills/microtask-decomposition/SKILL.md +368 -0
  250. package/framework/.codebuddy/skills/openspec-apply-change/SKILL.md +23 -7
  251. package/framework/.codebuddy/skills/openspec-archive-change/SKILL.md +22 -6
  252. package/framework/.codebuddy/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  253. package/framework/.codebuddy/skills/openspec-continue-change/SKILL.md +20 -4
  254. package/framework/.codebuddy/skills/openspec-explore/SKILL.md +17 -1
  255. package/framework/.codebuddy/skills/openspec-ff-change/SKILL.md +21 -5
  256. package/framework/.codebuddy/skills/openspec-new-change/SKILL.md +23 -7
  257. package/framework/.codebuddy/skills/openspec-sync-specs/SKILL.md +20 -4
  258. package/framework/.codebuddy/skills/openspec-verify-change/SKILL.md +24 -8
  259. package/framework/.codebuddy/skills/research-retrieval/SKILL.md +357 -0
  260. package/framework/.codebuddy/skills/testing-qa/SKILL.md +249 -0
  261. package/framework/.codex/skills/acfm-memory/SKILL.md +312 -0
  262. package/framework/.codex/skills/acfm-spec-workflow/SKILL.md +269 -0
  263. package/framework/.codex/skills/brainstorming/SKILL.md +266 -38
  264. package/framework/.codex/skills/ci-deploy/SKILL.md +501 -0
  265. package/framework/.codex/skills/code-review/SKILL.md +250 -0
  266. package/framework/.codex/skills/context-synthesizer/SKILL.md +322 -0
  267. package/framework/.codex/skills/documentation/SKILL.md +441 -0
  268. package/framework/.codex/skills/main-skill/SKILL.md +455 -0
  269. package/framework/.codex/skills/microtask-decomposition/SKILL.md +368 -0
  270. package/framework/.codex/skills/openspec-apply-change/SKILL.md +23 -7
  271. package/framework/.codex/skills/openspec-archive-change/SKILL.md +22 -6
  272. package/framework/.codex/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  273. package/framework/.codex/skills/openspec-continue-change/SKILL.md +20 -4
  274. package/framework/.codex/skills/openspec-explore/SKILL.md +17 -1
  275. package/framework/.codex/skills/openspec-ff-change/SKILL.md +21 -5
  276. package/framework/.codex/skills/openspec-new-change/SKILL.md +23 -7
  277. package/framework/.codex/skills/openspec-sync-specs/SKILL.md +20 -4
  278. package/framework/.codex/skills/openspec-verify-change/SKILL.md +24 -8
  279. package/framework/.codex/skills/research-retrieval/SKILL.md +357 -0
  280. package/framework/.codex/skills/testing-qa/SKILL.md +249 -0
  281. package/framework/.continue/prompts/ac-lite.md +192 -0
  282. package/framework/.continue/prompts/ac.md +486 -0
  283. package/framework/.continue/skills/acfm-memory/SKILL.md +312 -0
  284. package/framework/.continue/skills/acfm-spec-workflow/SKILL.md +269 -0
  285. package/framework/.continue/skills/brainstorming/SKILL.md +266 -38
  286. package/framework/.continue/skills/ci-deploy/SKILL.md +501 -0
  287. package/framework/.continue/skills/code-review/SKILL.md +250 -0
  288. package/framework/.continue/skills/context-synthesizer/SKILL.md +322 -0
  289. package/framework/.continue/skills/documentation/SKILL.md +441 -0
  290. package/framework/.continue/skills/microtask-decomposition/SKILL.md +368 -0
  291. package/framework/.continue/skills/openspec-apply-change/SKILL.md +23 -7
  292. package/framework/.continue/skills/openspec-archive-change/SKILL.md +22 -6
  293. package/framework/.continue/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  294. package/framework/.continue/skills/openspec-continue-change/SKILL.md +20 -4
  295. package/framework/.continue/skills/openspec-explore/SKILL.md +17 -1
  296. package/framework/.continue/skills/openspec-ff-change/SKILL.md +21 -5
  297. package/framework/.continue/skills/openspec-new-change/SKILL.md +23 -7
  298. package/framework/.continue/skills/openspec-sync-specs/SKILL.md +20 -4
  299. package/framework/.continue/skills/openspec-verify-change/SKILL.md +24 -8
  300. package/framework/.continue/skills/research-retrieval/SKILL.md +357 -0
  301. package/framework/.continue/skills/testing-qa/SKILL.md +249 -0
  302. package/framework/.cospec/openspec/commands/ac-lite.md +192 -0
  303. package/framework/.cospec/openspec/commands/ac.md +402 -177
  304. package/framework/.cospec/skills/acfm-memory/SKILL.md +312 -0
  305. package/framework/.cospec/skills/acfm-spec-workflow/SKILL.md +269 -0
  306. package/framework/.cospec/skills/brainstorming/SKILL.md +266 -38
  307. package/framework/.cospec/skills/ci-deploy/SKILL.md +501 -0
  308. package/framework/.cospec/skills/code-review/SKILL.md +250 -0
  309. package/framework/.cospec/skills/context-synthesizer/SKILL.md +322 -0
  310. package/framework/.cospec/skills/documentation/SKILL.md +441 -0
  311. package/framework/.cospec/skills/microtask-decomposition/SKILL.md +368 -0
  312. package/framework/.cospec/skills/openspec-apply-change/SKILL.md +23 -7
  313. package/framework/.cospec/skills/openspec-archive-change/SKILL.md +22 -6
  314. package/framework/.cospec/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  315. package/framework/.cospec/skills/openspec-continue-change/SKILL.md +20 -4
  316. package/framework/.cospec/skills/openspec-explore/SKILL.md +17 -1
  317. package/framework/.cospec/skills/openspec-ff-change/SKILL.md +21 -5
  318. package/framework/.cospec/skills/openspec-new-change/SKILL.md +23 -7
  319. package/framework/.cospec/skills/openspec-sync-specs/SKILL.md +20 -4
  320. package/framework/.cospec/skills/openspec-verify-change/SKILL.md +24 -8
  321. package/framework/.cospec/skills/research-retrieval/SKILL.md +357 -0
  322. package/framework/.cospec/skills/testing-qa/SKILL.md +249 -0
  323. package/framework/.crush/commands/opsx/ac-lite.md +192 -0
  324. package/framework/.crush/commands/opsx/ac.md +402 -177
  325. package/framework/.crush/skills/acfm-memory/SKILL.md +312 -0
  326. package/framework/.crush/skills/acfm-spec-workflow/SKILL.md +269 -0
  327. package/framework/.crush/skills/brainstorming/SKILL.md +266 -38
  328. package/framework/.crush/skills/ci-deploy/SKILL.md +501 -0
  329. package/framework/.crush/skills/code-review/SKILL.md +250 -0
  330. package/framework/.crush/skills/context-synthesizer/SKILL.md +322 -0
  331. package/framework/.crush/skills/documentation/SKILL.md +441 -0
  332. package/framework/.crush/skills/microtask-decomposition/SKILL.md +368 -0
  333. package/framework/.crush/skills/openspec-apply-change/SKILL.md +23 -7
  334. package/framework/.crush/skills/openspec-archive-change/SKILL.md +22 -6
  335. package/framework/.crush/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  336. package/framework/.crush/skills/openspec-continue-change/SKILL.md +20 -4
  337. package/framework/.crush/skills/openspec-explore/SKILL.md +17 -1
  338. package/framework/.crush/skills/openspec-ff-change/SKILL.md +21 -5
  339. package/framework/.crush/skills/openspec-new-change/SKILL.md +23 -7
  340. package/framework/.crush/skills/openspec-sync-specs/SKILL.md +20 -4
  341. package/framework/.crush/skills/openspec-verify-change/SKILL.md +24 -8
  342. package/framework/.crush/skills/research-retrieval/SKILL.md +357 -0
  343. package/framework/.crush/skills/testing-qa/SKILL.md +249 -0
  344. package/framework/.cursor/commands/ac-lite.md +192 -0
  345. package/framework/.cursor/commands/ac.md +402 -177
  346. package/framework/.cursor/skills/acfm-memory/SKILL.md +312 -0
  347. package/framework/.cursor/skills/acfm-spec-workflow/SKILL.md +269 -0
  348. package/framework/.cursor/skills/brainstorming/SKILL.md +266 -38
  349. package/framework/.cursor/skills/ci-deploy/SKILL.md +501 -0
  350. package/framework/.cursor/skills/code-review/SKILL.md +250 -0
  351. package/framework/.cursor/skills/context-synthesizer/SKILL.md +322 -0
  352. package/framework/.cursor/skills/documentation/SKILL.md +441 -0
  353. package/framework/.cursor/skills/microtask-decomposition/SKILL.md +368 -0
  354. package/framework/.cursor/skills/openspec-apply-change/SKILL.md +23 -7
  355. package/framework/.cursor/skills/openspec-archive-change/SKILL.md +22 -6
  356. package/framework/.cursor/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  357. package/framework/.cursor/skills/openspec-continue-change/SKILL.md +20 -4
  358. package/framework/.cursor/skills/openspec-explore/SKILL.md +17 -1
  359. package/framework/.cursor/skills/openspec-ff-change/SKILL.md +21 -5
  360. package/framework/.cursor/skills/openspec-new-change/SKILL.md +23 -7
  361. package/framework/.cursor/skills/openspec-sync-specs/SKILL.md +20 -4
  362. package/framework/.cursor/skills/openspec-verify-change/SKILL.md +24 -8
  363. package/framework/.cursor/skills/research-retrieval/SKILL.md +357 -0
  364. package/framework/.cursor/skills/testing-qa/SKILL.md +249 -0
  365. package/framework/.factory/commands/ac-lite.md +192 -0
  366. package/framework/.factory/commands/ac.md +402 -177
  367. package/framework/.factory/skills/acfm-memory/SKILL.md +312 -0
  368. package/framework/.factory/skills/acfm-spec-workflow/SKILL.md +269 -0
  369. package/framework/.factory/skills/brainstorming/SKILL.md +266 -38
  370. package/framework/.factory/skills/ci-deploy/SKILL.md +501 -0
  371. package/framework/.factory/skills/code-review/SKILL.md +250 -0
  372. package/framework/.factory/skills/context-synthesizer/SKILL.md +322 -0
  373. package/framework/.factory/skills/documentation/SKILL.md +441 -0
  374. package/framework/.factory/skills/microtask-decomposition/SKILL.md +368 -0
  375. package/framework/.factory/skills/openspec-apply-change/SKILL.md +23 -7
  376. package/framework/.factory/skills/openspec-archive-change/SKILL.md +22 -6
  377. package/framework/.factory/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  378. package/framework/.factory/skills/openspec-continue-change/SKILL.md +20 -4
  379. package/framework/.factory/skills/openspec-explore/SKILL.md +17 -1
  380. package/framework/.factory/skills/openspec-ff-change/SKILL.md +21 -5
  381. package/framework/.factory/skills/openspec-new-change/SKILL.md +23 -7
  382. package/framework/.factory/skills/openspec-sync-specs/SKILL.md +20 -4
  383. package/framework/.factory/skills/openspec-verify-change/SKILL.md +24 -8
  384. package/framework/.factory/skills/research-retrieval/SKILL.md +357 -0
  385. package/framework/.factory/skills/testing-qa/SKILL.md +249 -0
  386. package/framework/.gemini/commands/opsx/ac-lite.md +192 -0
  387. package/framework/.gemini/commands/opsx/ac.md +486 -0
  388. package/framework/.gemini/skills/acfm-memory/SKILL.md +312 -0
  389. package/framework/.gemini/skills/acfm-spec-workflow/SKILL.md +269 -0
  390. package/framework/.gemini/skills/brainstorming/SKILL.md +266 -38
  391. package/framework/.gemini/skills/ci-deploy/SKILL.md +501 -0
  392. package/framework/.gemini/skills/code-review/SKILL.md +250 -0
  393. package/framework/.gemini/skills/context-synthesizer/SKILL.md +322 -0
  394. package/framework/.gemini/skills/documentation/SKILL.md +441 -0
  395. package/framework/.gemini/skills/microtask-decomposition/SKILL.md +368 -0
  396. package/framework/.gemini/skills/openspec-apply-change/SKILL.md +23 -7
  397. package/framework/.gemini/skills/openspec-archive-change/SKILL.md +22 -6
  398. package/framework/.gemini/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  399. package/framework/.gemini/skills/openspec-continue-change/SKILL.md +20 -4
  400. package/framework/.gemini/skills/openspec-explore/SKILL.md +17 -1
  401. package/framework/.gemini/skills/openspec-ff-change/SKILL.md +21 -5
  402. package/framework/.gemini/skills/openspec-new-change/SKILL.md +23 -7
  403. package/framework/.gemini/skills/openspec-sync-specs/SKILL.md +20 -4
  404. package/framework/.gemini/skills/openspec-verify-change/SKILL.md +24 -8
  405. package/framework/.gemini/skills/research-retrieval/SKILL.md +357 -0
  406. package/framework/.gemini/skills/testing-qa/SKILL.md +249 -0
  407. package/framework/.github/prompts/ac-lite.md +192 -0
  408. package/framework/.github/prompts/ac.md +486 -0
  409. package/framework/.github/skills/acfm-memory/SKILL.md +312 -0
  410. package/framework/.github/skills/acfm-spec-workflow/SKILL.md +269 -0
  411. package/framework/.github/skills/brainstorming/SKILL.md +266 -38
  412. package/framework/.github/skills/ci-deploy/SKILL.md +501 -0
  413. package/framework/.github/skills/code-review/SKILL.md +250 -0
  414. package/framework/.github/skills/context-synthesizer/SKILL.md +322 -0
  415. package/framework/.github/skills/documentation/SKILL.md +441 -0
  416. package/framework/.github/skills/microtask-decomposition/SKILL.md +368 -0
  417. package/framework/.github/skills/openspec-apply-change/SKILL.md +23 -7
  418. package/framework/.github/skills/openspec-archive-change/SKILL.md +22 -6
  419. package/framework/.github/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  420. package/framework/.github/skills/openspec-continue-change/SKILL.md +20 -4
  421. package/framework/.github/skills/openspec-explore/SKILL.md +17 -1
  422. package/framework/.github/skills/openspec-ff-change/SKILL.md +21 -5
  423. package/framework/.github/skills/openspec-new-change/SKILL.md +23 -7
  424. package/framework/.github/skills/openspec-sync-specs/SKILL.md +20 -4
  425. package/framework/.github/skills/openspec-verify-change/SKILL.md +24 -8
  426. package/framework/.github/skills/research-retrieval/SKILL.md +357 -0
  427. package/framework/.github/skills/testing-qa/SKILL.md +249 -0
  428. package/framework/.iflow/commands/ac-lite.md +192 -0
  429. package/framework/.iflow/commands/ac.md +402 -177
  430. package/framework/.iflow/skills/acfm-memory/SKILL.md +312 -0
  431. package/framework/.iflow/skills/acfm-spec-workflow/SKILL.md +269 -0
  432. package/framework/.iflow/skills/brainstorming/SKILL.md +266 -38
  433. package/framework/.iflow/skills/ci-deploy/SKILL.md +501 -0
  434. package/framework/.iflow/skills/code-review/SKILL.md +250 -0
  435. package/framework/.iflow/skills/context-synthesizer/SKILL.md +322 -0
  436. package/framework/.iflow/skills/documentation/SKILL.md +441 -0
  437. package/framework/.iflow/skills/microtask-decomposition/SKILL.md +368 -0
  438. package/framework/.iflow/skills/openspec-apply-change/SKILL.md +23 -7
  439. package/framework/.iflow/skills/openspec-archive-change/SKILL.md +22 -6
  440. package/framework/.iflow/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  441. package/framework/.iflow/skills/openspec-continue-change/SKILL.md +20 -4
  442. package/framework/.iflow/skills/openspec-explore/SKILL.md +17 -1
  443. package/framework/.iflow/skills/openspec-ff-change/SKILL.md +21 -5
  444. package/framework/.iflow/skills/openspec-new-change/SKILL.md +23 -7
  445. package/framework/.iflow/skills/openspec-sync-specs/SKILL.md +20 -4
  446. package/framework/.iflow/skills/openspec-verify-change/SKILL.md +24 -8
  447. package/framework/.iflow/skills/research-retrieval/SKILL.md +357 -0
  448. package/framework/.iflow/skills/testing-qa/SKILL.md +249 -0
  449. package/framework/.kilocode/skills/acfm-memory/SKILL.md +312 -0
  450. package/framework/.kilocode/skills/acfm-spec-workflow/SKILL.md +269 -0
  451. package/framework/.kilocode/skills/brainstorming/SKILL.md +266 -38
  452. package/framework/.kilocode/skills/ci-deploy/SKILL.md +501 -0
  453. package/framework/.kilocode/skills/code-review/SKILL.md +250 -0
  454. package/framework/.kilocode/skills/context-synthesizer/SKILL.md +322 -0
  455. package/framework/.kilocode/skills/documentation/SKILL.md +441 -0
  456. package/framework/.kilocode/skills/microtask-decomposition/SKILL.md +368 -0
  457. package/framework/.kilocode/skills/openspec-apply-change/SKILL.md +23 -7
  458. package/framework/.kilocode/skills/openspec-archive-change/SKILL.md +22 -6
  459. package/framework/.kilocode/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  460. package/framework/.kilocode/skills/openspec-continue-change/SKILL.md +20 -4
  461. package/framework/.kilocode/skills/openspec-explore/SKILL.md +17 -1
  462. package/framework/.kilocode/skills/openspec-ff-change/SKILL.md +21 -5
  463. package/framework/.kilocode/skills/openspec-new-change/SKILL.md +23 -7
  464. package/framework/.kilocode/skills/openspec-sync-specs/SKILL.md +20 -4
  465. package/framework/.kilocode/skills/openspec-verify-change/SKILL.md +24 -8
  466. package/framework/.kilocode/skills/research-retrieval/SKILL.md +357 -0
  467. package/framework/.kilocode/skills/testing-qa/SKILL.md +249 -0
  468. package/framework/.kilocode/workflows/ac-lite.md +192 -0
  469. package/framework/.kilocode/workflows/ac.md +402 -177
  470. package/framework/.kimi/skills/acfm-memory/SKILL.md +312 -0
  471. package/framework/.kimi/skills/acfm-spec-workflow/SKILL.md +269 -0
  472. package/framework/.kimi/skills/api-design-principles/SKILL.md +528 -0
  473. package/framework/.kimi/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  474. package/framework/.kimi/skills/api-design-principles/assets/rest-api-template.py +182 -0
  475. package/framework/.kimi/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  476. package/framework/.kimi/skills/api-design-principles/references/rest-best-practices.md +408 -0
  477. package/framework/.kimi/skills/brainstorming/SKILL.md +282 -0
  478. package/framework/.kimi/skills/changelog-generator/SKILL.md +104 -0
  479. package/framework/.kimi/skills/ci-deploy/SKILL.md +501 -0
  480. package/framework/.kimi/skills/code-maintainability/SKILL.md +1108 -0
  481. package/framework/.kimi/skills/code-review/SKILL.md +250 -0
  482. package/framework/.kimi/skills/context-synthesizer/SKILL.md +322 -0
  483. package/framework/.kimi/skills/documentation/SKILL.md +441 -0
  484. package/framework/.kimi/skills/error-handling-patterns/SKILL.md +641 -0
  485. package/framework/.kimi/skills/interface-design/SKILL.md +310 -0
  486. package/framework/.kimi/skills/interface-design/references/example.md +86 -0
  487. package/framework/.kimi/skills/interface-design/references/principles.md +235 -0
  488. package/framework/.kimi/skills/interface-design/references/validation.md +48 -0
  489. package/framework/.kimi/skills/microtask-decomposition/SKILL.md +368 -0
  490. package/framework/.kimi/skills/openspec-apply-change/SKILL.md +172 -0
  491. package/framework/.kimi/skills/openspec-archive-change/SKILL.md +130 -0
  492. package/framework/.kimi/skills/openspec-bulk-archive-change/SKILL.md +262 -0
  493. package/framework/.kimi/skills/openspec-continue-change/SKILL.md +134 -0
  494. package/framework/.kimi/skills/openspec-explore/SKILL.md +306 -0
  495. package/framework/.kimi/skills/openspec-ff-change/SKILL.md +117 -0
  496. package/framework/.kimi/skills/openspec-new-change/SKILL.md +90 -0
  497. package/framework/.kimi/skills/openspec-onboard/SKILL.md +529 -0
  498. package/framework/.kimi/skills/openspec-sync-specs/SKILL.md +154 -0
  499. package/framework/.kimi/skills/openspec-verify-change/SKILL.md +184 -0
  500. package/framework/.kimi/skills/performance-optimizer/SKILL.md +43 -0
  501. package/framework/.kimi/skills/project-constitution/SKILL.md +66 -0
  502. package/framework/.kimi/skills/project-index/SKILL.md +234 -0
  503. package/framework/.kimi/skills/project-index/scripts/scan_codebase.py +47 -0
  504. package/framework/.kimi/skills/project-index/templates/agent-template.md +18 -0
  505. package/framework/.kimi/skills/project-index/templates/skill-template.md +20 -0
  506. package/framework/.kimi/skills/requirement-checklist/SKILL.md +90 -0
  507. package/framework/.kimi/skills/research-retrieval/SKILL.md +357 -0
  508. package/framework/.kimi/skills/secure-coding-cybersecurity/SKILL.md +793 -0
  509. package/framework/.kimi/skills/secure-coding-cybersecurity/references/ai_coding_pitfalls.md +44 -0
  510. package/framework/.kimi/skills/secure-coding-cybersecurity/references/owasp_top_10_2025.md +28 -0
  511. package/framework/.kimi/skills/secure-coding-cybersecurity/references/secure_coding_examples.md +102 -0
  512. package/framework/.kimi/skills/secure-coding-cybersecurity/scripts/security_audit.py +46 -0
  513. package/framework/.kimi/skills/skill-writer/SKILL.md +385 -0
  514. package/framework/.kimi/skills/spec-analysis/SKILL.md +65 -0
  515. package/framework/.kimi/skills/spec-clarification/SKILL.md +73 -0
  516. package/framework/.kimi/skills/sync-index/SKILL.md +35 -0
  517. package/framework/.kimi/skills/systematic-debugging/SKILL.md +296 -0
  518. package/framework/.kimi/skills/test-generator/SKILL.md +41 -0
  519. package/framework/.kimi/skills/testing-qa/SKILL.md +249 -0
  520. package/framework/.kimi/skills/vercel-react-best-practices/AGENTS.md +2934 -0
  521. package/framework/.kimi/skills/vercel-react-best-practices/SKILL.md +136 -0
  522. package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  523. package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  524. package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  525. package/framework/.kimi/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  526. package/framework/.kimi/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  527. package/framework/.kimi/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  528. package/framework/.kimi/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  529. package/framework/.kimi/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  530. package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  531. package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  532. package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  533. package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  534. package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  535. package/framework/.kimi/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  536. package/framework/.kimi/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  537. package/framework/.kimi/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  538. package/framework/.kimi/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  539. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  540. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  541. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  542. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  543. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  544. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  545. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  546. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  547. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  548. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  549. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  550. package/framework/.kimi/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  551. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  552. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  553. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  554. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  555. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  556. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  557. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  558. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  559. package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  560. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  561. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  562. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  563. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  564. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  565. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  566. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  567. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  568. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  569. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  570. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  571. package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  572. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  573. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  574. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  575. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  576. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  577. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  578. package/framework/.kimi/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  579. package/framework/.kimi/workflows/ac-lite.md +192 -0
  580. package/framework/.kimi/workflows/ac.md +486 -0
  581. package/framework/.kimi/workflows/opsx-apply.md +149 -0
  582. package/framework/.kimi/workflows/opsx-archive.md +154 -0
  583. package/framework/.kimi/workflows/opsx-bulk-archive.md +239 -0
  584. package/framework/.kimi/workflows/opsx-continue.md +111 -0
  585. package/framework/.kimi/workflows/opsx-explore.md +171 -0
  586. package/framework/.kimi/workflows/opsx-ff.md +91 -0
  587. package/framework/.kimi/workflows/opsx-new.md +66 -0
  588. package/framework/.kimi/workflows/opsx-onboard.md +522 -0
  589. package/framework/.kimi/workflows/opsx-sync.md +131 -0
  590. package/framework/.kimi/workflows/opsx-verify.md +161 -0
  591. package/framework/.opencode/command/ac-lite.md +192 -0
  592. package/framework/.opencode/command/ac.md +402 -177
  593. package/framework/.opencode/skills/acfm-memory/SKILL.md +312 -0
  594. package/framework/.opencode/skills/acfm-spec-workflow/SKILL.md +269 -0
  595. package/framework/.opencode/skills/brainstorming/SKILL.md +266 -38
  596. package/framework/.opencode/skills/ci-deploy/SKILL.md +501 -0
  597. package/framework/.opencode/skills/code-review/SKILL.md +250 -0
  598. package/framework/.opencode/skills/context-synthesizer/SKILL.md +322 -0
  599. package/framework/.opencode/skills/documentation/SKILL.md +441 -0
  600. package/framework/.opencode/skills/microtask-decomposition/SKILL.md +368 -0
  601. package/framework/.opencode/skills/openspec-apply-change/SKILL.md +23 -7
  602. package/framework/.opencode/skills/openspec-archive-change/SKILL.md +22 -6
  603. package/framework/.opencode/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  604. package/framework/.opencode/skills/openspec-continue-change/SKILL.md +20 -4
  605. package/framework/.opencode/skills/openspec-explore/SKILL.md +17 -1
  606. package/framework/.opencode/skills/openspec-ff-change/SKILL.md +21 -5
  607. package/framework/.opencode/skills/openspec-new-change/SKILL.md +23 -7
  608. package/framework/.opencode/skills/openspec-sync-specs/SKILL.md +20 -4
  609. package/framework/.opencode/skills/openspec-verify-change/SKILL.md +24 -8
  610. package/framework/.opencode/skills/research-retrieval/SKILL.md +357 -0
  611. package/framework/.opencode/skills/testing-qa/SKILL.md +249 -0
  612. package/framework/.qoder/commands/opsx/ac-lite.md +192 -0
  613. package/framework/.qoder/commands/opsx/ac.md +402 -177
  614. package/framework/.qoder/skills/acfm-memory/SKILL.md +312 -0
  615. package/framework/.qoder/skills/acfm-spec-workflow/SKILL.md +269 -0
  616. package/framework/.qoder/skills/brainstorming/SKILL.md +266 -38
  617. package/framework/.qoder/skills/ci-deploy/SKILL.md +501 -0
  618. package/framework/.qoder/skills/code-review/SKILL.md +250 -0
  619. package/framework/.qoder/skills/context-synthesizer/SKILL.md +322 -0
  620. package/framework/.qoder/skills/documentation/SKILL.md +441 -0
  621. package/framework/.qoder/skills/microtask-decomposition/SKILL.md +368 -0
  622. package/framework/.qoder/skills/openspec-apply-change/SKILL.md +23 -7
  623. package/framework/.qoder/skills/openspec-archive-change/SKILL.md +22 -6
  624. package/framework/.qoder/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  625. package/framework/.qoder/skills/openspec-continue-change/SKILL.md +20 -4
  626. package/framework/.qoder/skills/openspec-explore/SKILL.md +17 -1
  627. package/framework/.qoder/skills/openspec-ff-change/SKILL.md +21 -5
  628. package/framework/.qoder/skills/openspec-new-change/SKILL.md +23 -7
  629. package/framework/.qoder/skills/openspec-sync-specs/SKILL.md +20 -4
  630. package/framework/.qoder/skills/openspec-verify-change/SKILL.md +24 -8
  631. package/framework/.qoder/skills/research-retrieval/SKILL.md +357 -0
  632. package/framework/.qoder/skills/testing-qa/SKILL.md +249 -0
  633. package/framework/.qwen/commands/ac-lite.md +192 -0
  634. package/framework/.qwen/commands/ac.md +402 -177
  635. package/framework/.qwen/skills/acfm-memory/SKILL.md +312 -0
  636. package/framework/.qwen/skills/acfm-spec-workflow/SKILL.md +269 -0
  637. package/framework/.qwen/skills/brainstorming/SKILL.md +266 -38
  638. package/framework/.qwen/skills/ci-deploy/SKILL.md +501 -0
  639. package/framework/.qwen/skills/code-review/SKILL.md +250 -0
  640. package/framework/.qwen/skills/context-synthesizer/SKILL.md +322 -0
  641. package/framework/.qwen/skills/documentation/SKILL.md +441 -0
  642. package/framework/.qwen/skills/microtask-decomposition/SKILL.md +368 -0
  643. package/framework/.qwen/skills/openspec-apply-change/SKILL.md +23 -7
  644. package/framework/.qwen/skills/openspec-archive-change/SKILL.md +22 -6
  645. package/framework/.qwen/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  646. package/framework/.qwen/skills/openspec-continue-change/SKILL.md +20 -4
  647. package/framework/.qwen/skills/openspec-explore/SKILL.md +17 -1
  648. package/framework/.qwen/skills/openspec-ff-change/SKILL.md +21 -5
  649. package/framework/.qwen/skills/openspec-new-change/SKILL.md +23 -7
  650. package/framework/.qwen/skills/openspec-sync-specs/SKILL.md +20 -4
  651. package/framework/.qwen/skills/openspec-verify-change/SKILL.md +24 -8
  652. package/framework/.qwen/skills/research-retrieval/SKILL.md +357 -0
  653. package/framework/.qwen/skills/testing-qa/SKILL.md +249 -0
  654. package/framework/.roo/commands/ac-lite.md +192 -0
  655. package/framework/.roo/commands/ac.md +402 -177
  656. package/framework/.roo/skills/acfm-memory/SKILL.md +312 -0
  657. package/framework/.roo/skills/acfm-spec-workflow/SKILL.md +269 -0
  658. package/framework/.roo/skills/brainstorming/SKILL.md +266 -38
  659. package/framework/.roo/skills/ci-deploy/SKILL.md +501 -0
  660. package/framework/.roo/skills/code-review/SKILL.md +250 -0
  661. package/framework/.roo/skills/context-synthesizer/SKILL.md +322 -0
  662. package/framework/.roo/skills/documentation/SKILL.md +441 -0
  663. package/framework/.roo/skills/microtask-decomposition/SKILL.md +368 -0
  664. package/framework/.roo/skills/openspec-apply-change/SKILL.md +23 -7
  665. package/framework/.roo/skills/openspec-archive-change/SKILL.md +22 -6
  666. package/framework/.roo/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  667. package/framework/.roo/skills/openspec-continue-change/SKILL.md +20 -4
  668. package/framework/.roo/skills/openspec-explore/SKILL.md +17 -1
  669. package/framework/.roo/skills/openspec-ff-change/SKILL.md +21 -5
  670. package/framework/.roo/skills/openspec-new-change/SKILL.md +23 -7
  671. package/framework/.roo/skills/openspec-sync-specs/SKILL.md +20 -4
  672. package/framework/.roo/skills/openspec-verify-change/SKILL.md +24 -8
  673. package/framework/.roo/skills/research-retrieval/SKILL.md +357 -0
  674. package/framework/.roo/skills/testing-qa/SKILL.md +249 -0
  675. package/framework/.trae/skills/acfm-memory/SKILL.md +312 -0
  676. package/framework/.trae/skills/acfm-spec-workflow/SKILL.md +269 -0
  677. package/framework/.trae/skills/brainstorming/SKILL.md +266 -38
  678. package/framework/.trae/skills/ci-deploy/SKILL.md +501 -0
  679. package/framework/.trae/skills/code-review/SKILL.md +250 -0
  680. package/framework/.trae/skills/context-synthesizer/SKILL.md +322 -0
  681. package/framework/.trae/skills/documentation/SKILL.md +441 -0
  682. package/framework/.trae/skills/main-skill/SKILL.md +455 -0
  683. package/framework/.trae/skills/microtask-decomposition/SKILL.md +368 -0
  684. package/framework/.trae/skills/openspec-apply-change/SKILL.md +23 -7
  685. package/framework/.trae/skills/openspec-archive-change/SKILL.md +22 -6
  686. package/framework/.trae/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  687. package/framework/.trae/skills/openspec-continue-change/SKILL.md +20 -4
  688. package/framework/.trae/skills/openspec-explore/SKILL.md +17 -1
  689. package/framework/.trae/skills/openspec-ff-change/SKILL.md +21 -5
  690. package/framework/.trae/skills/openspec-new-change/SKILL.md +23 -7
  691. package/framework/.trae/skills/openspec-sync-specs/SKILL.md +20 -4
  692. package/framework/.trae/skills/openspec-verify-change/SKILL.md +24 -8
  693. package/framework/.trae/skills/research-retrieval/SKILL.md +357 -0
  694. package/framework/.trae/skills/testing-qa/SKILL.md +249 -0
  695. package/framework/.windsurf/skills/acfm-memory/SKILL.md +312 -0
  696. package/framework/.windsurf/skills/acfm-spec-workflow/SKILL.md +269 -0
  697. package/framework/.windsurf/skills/brainstorming/SKILL.md +266 -38
  698. package/framework/.windsurf/skills/ci-deploy/SKILL.md +501 -0
  699. package/framework/.windsurf/skills/code-review/SKILL.md +250 -0
  700. package/framework/.windsurf/skills/context-synthesizer/SKILL.md +322 -0
  701. package/framework/.windsurf/skills/documentation/SKILL.md +441 -0
  702. package/framework/.windsurf/skills/microtask-decomposition/SKILL.md +368 -0
  703. package/framework/.windsurf/skills/openspec-apply-change/SKILL.md +23 -7
  704. package/framework/.windsurf/skills/openspec-archive-change/SKILL.md +22 -6
  705. package/framework/.windsurf/skills/openspec-bulk-archive-change/SKILL.md +25 -9
  706. package/framework/.windsurf/skills/openspec-continue-change/SKILL.md +20 -4
  707. package/framework/.windsurf/skills/openspec-explore/SKILL.md +17 -1
  708. package/framework/.windsurf/skills/openspec-ff-change/SKILL.md +21 -5
  709. package/framework/.windsurf/skills/openspec-new-change/SKILL.md +23 -7
  710. package/framework/.windsurf/skills/openspec-sync-specs/SKILL.md +20 -4
  711. package/framework/.windsurf/skills/openspec-verify-change/SKILL.md +24 -8
  712. package/framework/.windsurf/skills/research-retrieval/SKILL.md +357 -0
  713. package/framework/.windsurf/skills/testing-qa/SKILL.md +249 -0
  714. package/framework/.windsurf/workflows/ac-lite.md +192 -0
  715. package/framework/.windsurf/workflows/ac.md +402 -177
  716. package/framework/AGENTS.md +428 -135
  717. package/framework/CLAUDE.md +428 -135
  718. package/framework/GEMINI.md +428 -135
  719. package/framework/copilot-instructions.md +429 -136
  720. package/package.json +2 -1
  721. package/src/cli.js +2 -0
  722. package/src/commands/init.js +10 -12
  723. package/src/commands/memory.js +772 -0
  724. package/src/commands/spec.js +40 -8
  725. package/src/config/constants.js +10 -2
  726. package/src/config/ide-mapping.js +1 -0
  727. package/src/index.js +46 -0
  728. package/src/memory/autosave.js +382 -0
  729. package/src/memory/database.js +178 -0
  730. package/src/memory/engine.js +727 -0
  731. package/src/memory/index.js +62 -0
  732. package/src/memory/utils.js +128 -0
  733. package/src/services/spec-engine.js +170 -26
  734. package/src/ui/animations.js +82 -0
@@ -0,0 +1,583 @@
1
+ # GraphQL Schema Design Patterns
2
+
3
+ ## Schema Organization
4
+
5
+ ### Modular Schema Structure
6
+
7
+ ```graphql
8
+ # user.graphql
9
+ type User {
10
+ id: ID!
11
+ email: String!
12
+ name: String!
13
+ posts: [Post!]!
14
+ }
15
+
16
+ extend type Query {
17
+ user(id: ID!): User
18
+ users(first: Int, after: String): UserConnection!
19
+ }
20
+
21
+ extend type Mutation {
22
+ createUser(input: CreateUserInput!): CreateUserPayload!
23
+ }
24
+
25
+ # post.graphql
26
+ type Post {
27
+ id: ID!
28
+ title: String!
29
+ content: String!
30
+ author: User!
31
+ }
32
+
33
+ extend type Query {
34
+ post(id: ID!): Post
35
+ }
36
+ ```
37
+
38
+ ## Type Design Patterns
39
+
40
+ ### 1. Non-Null Types
41
+
42
+ ```graphql
43
+ type User {
44
+ id: ID! # Always required
45
+ email: String! # Required
46
+ phone: String # Optional (nullable)
47
+ posts: [Post!]! # Non-null array of non-null posts
48
+ tags: [String!] # Nullable array of non-null strings
49
+ }
50
+ ```
51
+
52
+ ### 2. Interfaces for Polymorphism
53
+
54
+ ```graphql
55
+ interface Node {
56
+ id: ID!
57
+ createdAt: DateTime!
58
+ }
59
+
60
+ type User implements Node {
61
+ id: ID!
62
+ createdAt: DateTime!
63
+ email: String!
64
+ }
65
+
66
+ type Post implements Node {
67
+ id: ID!
68
+ createdAt: DateTime!
69
+ title: String!
70
+ }
71
+
72
+ type Query {
73
+ node(id: ID!): Node
74
+ }
75
+ ```
76
+
77
+ ### 3. Unions for Heterogeneous Results
78
+
79
+ ```graphql
80
+ union SearchResult = User | Post | Comment
81
+
82
+ type Query {
83
+ search(query: String!): [SearchResult!]!
84
+ }
85
+
86
+ # Query example
87
+ {
88
+ search(query: "graphql") {
89
+ ... on User {
90
+ name
91
+ email
92
+ }
93
+ ... on Post {
94
+ title
95
+ content
96
+ }
97
+ ... on Comment {
98
+ text
99
+ author {
100
+ name
101
+ }
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### 4. Input Types
108
+
109
+ ```graphql
110
+ input CreateUserInput {
111
+ email: String!
112
+ name: String!
113
+ password: String!
114
+ profileInput: ProfileInput
115
+ }
116
+
117
+ input ProfileInput {
118
+ bio: String
119
+ avatar: String
120
+ website: String
121
+ }
122
+
123
+ input UpdateUserInput {
124
+ id: ID!
125
+ email: String
126
+ name: String
127
+ profileInput: ProfileInput
128
+ }
129
+ ```
130
+
131
+ ## Pagination Patterns
132
+
133
+ ### Relay Cursor Pagination (Recommended)
134
+
135
+ ```graphql
136
+ type UserConnection {
137
+ edges: [UserEdge!]!
138
+ pageInfo: PageInfo!
139
+ totalCount: Int!
140
+ }
141
+
142
+ type UserEdge {
143
+ node: User!
144
+ cursor: String!
145
+ }
146
+
147
+ type PageInfo {
148
+ hasNextPage: Boolean!
149
+ hasPreviousPage: Boolean!
150
+ startCursor: String
151
+ endCursor: String
152
+ }
153
+
154
+ type Query {
155
+ users(first: Int, after: String, last: Int, before: String): UserConnection!
156
+ }
157
+
158
+ # Usage
159
+ {
160
+ users(first: 10, after: "cursor123") {
161
+ edges {
162
+ cursor
163
+ node {
164
+ id
165
+ name
166
+ }
167
+ }
168
+ pageInfo {
169
+ hasNextPage
170
+ endCursor
171
+ }
172
+ }
173
+ }
174
+ ```
175
+
176
+ ### Offset Pagination (Simpler)
177
+
178
+ ```graphql
179
+ type UserList {
180
+ items: [User!]!
181
+ total: Int!
182
+ page: Int!
183
+ pageSize: Int!
184
+ }
185
+
186
+ type Query {
187
+ users(page: Int = 1, pageSize: Int = 20): UserList!
188
+ }
189
+ ```
190
+
191
+ ## Mutation Design Patterns
192
+
193
+ ### 1. Input/Payload Pattern
194
+
195
+ ```graphql
196
+ input CreatePostInput {
197
+ title: String!
198
+ content: String!
199
+ tags: [String!]
200
+ }
201
+
202
+ type CreatePostPayload {
203
+ post: Post
204
+ errors: [Error!]
205
+ success: Boolean!
206
+ }
207
+
208
+ type Error {
209
+ field: String
210
+ message: String!
211
+ code: String!
212
+ }
213
+
214
+ type Mutation {
215
+ createPost(input: CreatePostInput!): CreatePostPayload!
216
+ }
217
+ ```
218
+
219
+ ### 2. Optimistic Response Support
220
+
221
+ ```graphql
222
+ type UpdateUserPayload {
223
+ user: User
224
+ clientMutationId: String
225
+ errors: [Error!]
226
+ }
227
+
228
+ input UpdateUserInput {
229
+ id: ID!
230
+ name: String
231
+ clientMutationId: String
232
+ }
233
+
234
+ type Mutation {
235
+ updateUser(input: UpdateUserInput!): UpdateUserPayload!
236
+ }
237
+ ```
238
+
239
+ ### 3. Batch Mutations
240
+
241
+ ```graphql
242
+ input BatchCreateUserInput {
243
+ users: [CreateUserInput!]!
244
+ }
245
+
246
+ type BatchCreateUserPayload {
247
+ results: [CreateUserResult!]!
248
+ successCount: Int!
249
+ errorCount: Int!
250
+ }
251
+
252
+ type CreateUserResult {
253
+ user: User
254
+ errors: [Error!]
255
+ index: Int!
256
+ }
257
+
258
+ type Mutation {
259
+ batchCreateUsers(input: BatchCreateUserInput!): BatchCreateUserPayload!
260
+ }
261
+ ```
262
+
263
+ ## Field Design
264
+
265
+ ### Arguments and Filtering
266
+
267
+ ```graphql
268
+ type Query {
269
+ posts(
270
+ # Pagination
271
+ first: Int = 20
272
+ after: String
273
+
274
+ # Filtering
275
+ status: PostStatus
276
+ authorId: ID
277
+ tag: String
278
+
279
+ # Sorting
280
+ orderBy: PostOrderBy = CREATED_AT
281
+ orderDirection: OrderDirection = DESC
282
+
283
+ # Searching
284
+ search: String
285
+ ): PostConnection!
286
+ }
287
+
288
+ enum PostStatus {
289
+ DRAFT
290
+ PUBLISHED
291
+ ARCHIVED
292
+ }
293
+
294
+ enum PostOrderBy {
295
+ CREATED_AT
296
+ UPDATED_AT
297
+ TITLE
298
+ }
299
+
300
+ enum OrderDirection {
301
+ ASC
302
+ DESC
303
+ }
304
+ ```
305
+
306
+ ### Computed Fields
307
+
308
+ ```graphql
309
+ type User {
310
+ firstName: String!
311
+ lastName: String!
312
+ fullName: String! # Computed in resolver
313
+ posts: [Post!]!
314
+ postCount: Int! # Computed, doesn't load all posts
315
+ }
316
+
317
+ type Post {
318
+ likeCount: Int!
319
+ commentCount: Int!
320
+ isLikedByViewer: Boolean! # Context-dependent
321
+ }
322
+ ```
323
+
324
+ ## Subscriptions
325
+
326
+ ```graphql
327
+ type Subscription {
328
+ postAdded: Post!
329
+
330
+ postUpdated(postId: ID!): Post!
331
+
332
+ userStatusChanged(userId: ID!): UserStatus!
333
+ }
334
+
335
+ type UserStatus {
336
+ userId: ID!
337
+ online: Boolean!
338
+ lastSeen: DateTime!
339
+ }
340
+
341
+ # Client usage
342
+ subscription {
343
+ postAdded {
344
+ id
345
+ title
346
+ author {
347
+ name
348
+ }
349
+ }
350
+ }
351
+ ```
352
+
353
+ ## Custom Scalars
354
+
355
+ ```graphql
356
+ scalar DateTime
357
+ scalar Email
358
+ scalar URL
359
+ scalar JSON
360
+ scalar Money
361
+
362
+ type User {
363
+ email: Email!
364
+ website: URL
365
+ createdAt: DateTime!
366
+ metadata: JSON
367
+ }
368
+
369
+ type Product {
370
+ price: Money!
371
+ }
372
+ ```
373
+
374
+ ## Directives
375
+
376
+ ### Built-in Directives
377
+
378
+ ```graphql
379
+ type User {
380
+ name: String!
381
+ email: String! @deprecated(reason: "Use emails field instead")
382
+ emails: [String!]!
383
+
384
+ # Conditional inclusion
385
+ privateData: PrivateData @include(if: $isOwner)
386
+ }
387
+
388
+ # Query
389
+ query GetUser($isOwner: Boolean!) {
390
+ user(id: "123") {
391
+ name
392
+ privateData @include(if: $isOwner) {
393
+ ssn
394
+ }
395
+ }
396
+ }
397
+ ```
398
+
399
+ ### Custom Directives
400
+
401
+ ```graphql
402
+ directive @auth(requires: Role = USER) on FIELD_DEFINITION
403
+
404
+ enum Role {
405
+ USER
406
+ ADMIN
407
+ MODERATOR
408
+ }
409
+
410
+ type Mutation {
411
+ deleteUser(id: ID!): Boolean! @auth(requires: ADMIN)
412
+ updateProfile(input: ProfileInput!): User! @auth
413
+ }
414
+ ```
415
+
416
+ ## Error Handling
417
+
418
+ ### Union Error Pattern
419
+
420
+ ```graphql
421
+ type User {
422
+ id: ID!
423
+ email: String!
424
+ }
425
+
426
+ type ValidationError {
427
+ field: String!
428
+ message: String!
429
+ }
430
+
431
+ type NotFoundError {
432
+ message: String!
433
+ resourceType: String!
434
+ resourceId: ID!
435
+ }
436
+
437
+ type AuthorizationError {
438
+ message: String!
439
+ }
440
+
441
+ union UserResult = User | ValidationError | NotFoundError | AuthorizationError
442
+
443
+ type Query {
444
+ user(id: ID!): UserResult!
445
+ }
446
+
447
+ # Usage
448
+ {
449
+ user(id: "123") {
450
+ ... on User {
451
+ id
452
+ email
453
+ }
454
+ ... on NotFoundError {
455
+ message
456
+ resourceType
457
+ }
458
+ ... on AuthorizationError {
459
+ message
460
+ }
461
+ }
462
+ }
463
+ ```
464
+
465
+ ### Errors in Payload
466
+
467
+ ```graphql
468
+ type CreateUserPayload {
469
+ user: User
470
+ errors: [Error!]
471
+ success: Boolean!
472
+ }
473
+
474
+ type Error {
475
+ field: String
476
+ message: String!
477
+ code: ErrorCode!
478
+ }
479
+
480
+ enum ErrorCode {
481
+ VALIDATION_ERROR
482
+ UNAUTHORIZED
483
+ NOT_FOUND
484
+ INTERNAL_ERROR
485
+ }
486
+ ```
487
+
488
+ ## N+1 Query Problem Solutions
489
+
490
+ ### DataLoader Pattern
491
+
492
+ ```python
493
+ from aiodataloader import DataLoader
494
+
495
+ class PostLoader(DataLoader):
496
+ async def batch_load_fn(self, post_ids):
497
+ posts = await db.posts.find({"id": {"$in": post_ids}})
498
+ post_map = {post["id"]: post for post in posts}
499
+ return [post_map.get(pid) for pid in post_ids]
500
+
501
+ # Resolver
502
+ @user_type.field("posts")
503
+ async def resolve_posts(user, info):
504
+ loader = info.context["loaders"]["post"]
505
+ return await loader.load_many(user["post_ids"])
506
+ ```
507
+
508
+ ### Query Depth Limiting
509
+
510
+ ```python
511
+ from graphql import GraphQLError
512
+
513
+ def depth_limit_validator(max_depth: int):
514
+ def validate(context, node, ancestors):
515
+ depth = len(ancestors)
516
+ if depth > max_depth:
517
+ raise GraphQLError(
518
+ f"Query depth {depth} exceeds maximum {max_depth}"
519
+ )
520
+ return validate
521
+ ```
522
+
523
+ ### Query Complexity Analysis
524
+
525
+ ```python
526
+ def complexity_limit_validator(max_complexity: int):
527
+ def calculate_complexity(node):
528
+ # Each field = 1, lists multiply
529
+ complexity = 1
530
+ if is_list_field(node):
531
+ complexity *= get_list_size_arg(node)
532
+ return complexity
533
+
534
+ return validate_complexity
535
+ ```
536
+
537
+ ## Schema Versioning
538
+
539
+ ### Field Deprecation
540
+
541
+ ```graphql
542
+ type User {
543
+ name: String! @deprecated(reason: "Use firstName and lastName")
544
+ firstName: String!
545
+ lastName: String!
546
+ }
547
+ ```
548
+
549
+ ### Schema Evolution
550
+
551
+ ```graphql
552
+ # v1 - Initial
553
+ type User {
554
+ name: String!
555
+ }
556
+
557
+ # v2 - Add optional field (backward compatible)
558
+ type User {
559
+ name: String!
560
+ email: String
561
+ }
562
+
563
+ # v3 - Deprecate and add new field
564
+ type User {
565
+ name: String! @deprecated(reason: "Use firstName/lastName")
566
+ firstName: String!
567
+ lastName: String!
568
+ email: String
569
+ }
570
+ ```
571
+
572
+ ## Best Practices Summary
573
+
574
+ 1. **Nullable vs Non-Null**: Start nullable, make non-null when guaranteed
575
+ 2. **Input Types**: Always use input types for mutations
576
+ 3. **Payload Pattern**: Return errors in mutation payloads
577
+ 4. **Pagination**: Use cursor-based for infinite scroll, offset for simple cases
578
+ 5. **Naming**: Use camelCase for fields, PascalCase for types
579
+ 6. **Deprecation**: Use `@deprecated` instead of removing fields
580
+ 7. **DataLoaders**: Always use for relationships to prevent N+1
581
+ 8. **Complexity Limits**: Protect against expensive queries
582
+ 9. **Custom Scalars**: Use for domain-specific types (Email, DateTime)
583
+ 10. **Documentation**: Document all fields with descriptions