@mrciphersmith/keryx 0.2.9

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 (297) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +351 -0
  3. package/dist/cli.js +48427 -0
  4. package/dist/proxy-worker.js +381 -0
  5. package/package.json +63 -0
  6. package/src/gdgraph/affected.test.ts +100 -0
  7. package/src/gdgraph/affected.ts +135 -0
  8. package/src/gdgraph/build-integrity.test.ts +193 -0
  9. package/src/gdgraph/build-lang.test.ts +399 -0
  10. package/src/gdgraph/build.test.ts +120 -0
  11. package/src/gdgraph/build.ts +804 -0
  12. package/src/gdgraph/config.test.ts +47 -0
  13. package/src/gdgraph/config.ts +113 -0
  14. package/src/gdgraph/core-sources.test.ts +99 -0
  15. package/src/gdgraph/core-sources.ts +20 -0
  16. package/src/gdgraph/enrich.ts +79 -0
  17. package/src/gdgraph/fallback.test.ts +153 -0
  18. package/src/gdgraph/find.test.ts +78 -0
  19. package/src/gdgraph/find.ts +107 -0
  20. package/src/gdgraph/pagerank.ts +129 -0
  21. package/src/gdgraph/path.test.ts +56 -0
  22. package/src/gdgraph/path.ts +112 -0
  23. package/src/gdgraph/query.ts +133 -0
  24. package/src/gdgraph/repomap.test.ts +110 -0
  25. package/src/gdgraph/repomap.ts +193 -0
  26. package/src/gdgraph/service.test.ts +59 -0
  27. package/src/gdgraph/service.ts +51 -0
  28. package/src/gdgraph/staleness.ts +20 -0
  29. package/src/gdgraph/symbol.test.ts +89 -0
  30. package/src/gdgraph/symbol.ts +123 -0
  31. package/src/gdgraph/symbols-capability.test.ts +41 -0
  32. package/src/gdgraph/symbols-capability.ts +49 -0
  33. package/src/gdgraph/target.ts +56 -0
  34. package/src/gdgraph/treesitter/adapter.test.ts +249 -0
  35. package/src/gdgraph/treesitter/adapter.ts +213 -0
  36. package/src/gdgraph/treesitter/extract.test.ts +278 -0
  37. package/src/gdgraph/treesitter/extract.ts +389 -0
  38. package/src/gdgraph/treesitter/grammars.ts +110 -0
  39. package/src/gdgraph/treesitter/no-treesitter-import.test.ts +51 -0
  40. package/src/gdgraph/treesitter/resolve-calls.test.ts +38 -0
  41. package/src/gdgraph/types.ts +63 -0
  42. package/src/gdskills/bundled/rules/core/api-contracts.mdc +148 -0
  43. package/src/gdskills/bundled/rules/core/async-patterns.mdc +185 -0
  44. package/src/gdskills/bundled/rules/core/clean-architecture.mdc +163 -0
  45. package/src/gdskills/bundled/rules/core/code-review-ai-assistant.mdc +49 -0
  46. package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +48 -0
  47. package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +54 -0
  48. package/src/gdskills/bundled/rules/core/commit-message-formatting.mdc +25 -0
  49. package/src/gdskills/bundled/rules/core/database-patterns.mdc +162 -0
  50. package/src/gdskills/bundled/rules/core/documentation-management.mdc +106 -0
  51. package/src/gdskills/bundled/rules/core/error-handling.mdc +163 -0
  52. package/src/gdskills/bundled/rules/core/execution-metrics.md +99 -0
  53. package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +40 -0
  54. package/src/gdskills/bundled/rules/core/git-rules.mdc +37 -0
  55. package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +198 -0
  56. package/src/gdskills/bundled/rules/core/implementation-doc-mandate.mdc +149 -0
  57. package/src/gdskills/bundled/rules/core/implementation-plans.mdc +58 -0
  58. package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +221 -0
  59. package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +561 -0
  60. package/src/gdskills/bundled/rules/core/model-selection.mdc +53 -0
  61. package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +50 -0
  62. package/src/gdskills/bundled/rules/core/playwright-testing.mdc +321 -0
  63. package/src/gdskills/bundled/rules/core/requirements-management.mdc +35 -0
  64. package/src/gdskills/bundled/rules/core/requirements-package-standard.mdc +103 -0
  65. package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +49 -0
  66. package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +44 -0
  67. package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +62 -0
  68. package/src/gdskills/bundled/rules/core/security-baseline.mdc +155 -0
  69. package/src/gdskills/bundled/rules/core/shared-definitions.mdc +79 -0
  70. package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +55 -0
  71. package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +88 -0
  72. package/src/gdskills/bundled/rules/core/solid-principles.mdc +149 -0
  73. package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +36 -0
  74. package/src/gdskills/bundled/rules/core/subagent-context-construction.md +107 -0
  75. package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +169 -0
  76. package/src/gdskills/bundled/rules/core/tdd-workflow.mdc +96 -0
  77. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +47 -0
  78. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +55 -0
  79. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +352 -0
  80. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +39 -0
  81. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +29 -0
  82. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +567 -0
  83. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +567 -0
  84. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +655 -0
  85. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +567 -0
  86. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +567 -0
  87. package/src/gdskills/bundled/skills/orchestration/context-collector/input-contract.schema.json +134 -0
  88. package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +183 -0
  89. package/src/gdskills/bundled/skills/orchestration/context-collector/output-contract.schema.json +208 -0
  90. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +1412 -0
  91. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +1412 -0
  92. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +735 -0
  93. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +468 -0
  94. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +1412 -0
  95. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +1412 -0
  96. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +62 -0
  97. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +79 -0
  98. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +247 -0
  99. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +362 -0
  100. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/output-contract.schema.json +87 -0
  101. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +105 -0
  102. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +105 -0
  103. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +165 -0
  104. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +379 -0
  105. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/input-contract.schema.json +33 -0
  106. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/output-contract.schema.json +41 -0
  107. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +307 -0
  108. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +307 -0
  109. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +373 -0
  110. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +307 -0
  111. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +307 -0
  112. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/input-contract.schema.json +130 -0
  113. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/issue-request.template.md +50 -0
  114. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +155 -0
  115. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/output-contract.schema.json +61 -0
  116. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +365 -0
  117. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +365 -0
  118. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +373 -0
  119. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +365 -0
  120. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +365 -0
  121. package/src/gdskills/bundled/skills/orchestration/job-documenter/input-contract.schema.json +55 -0
  122. package/src/gdskills/bundled/skills/orchestration/job-documenter/output-contract.schema.json +58 -0
  123. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +1701 -0
  124. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +1701 -0
  125. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +1734 -0
  126. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +1701 -0
  127. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +1701 -0
  128. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +188 -0
  129. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +179 -0
  130. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +103 -0
  131. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/state.schema.json +164 -0
  132. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +395 -0
  133. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +395 -0
  134. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +556 -0
  135. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +395 -0
  136. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +395 -0
  137. package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +204 -0
  138. package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +206 -0
  139. package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +51 -0
  140. package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +111 -0
  141. package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +163 -0
  142. package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +161 -0
  143. package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +128 -0
  144. package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +321 -0
  145. package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +166 -0
  146. package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +253 -0
  147. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +46 -0
  148. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +90 -0
  149. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +90 -0
  150. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +90 -0
  151. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +33 -0
  152. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +33 -0
  153. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +190 -0
  154. package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +142 -0
  155. package/src/gdskills/bundled/skills/planning/docpack-orchestrator/input-contract.schema.json +31 -0
  156. package/src/gdskills/bundled/skills/planning/docpack-orchestrator/output-contract.schema.json +31 -0
  157. package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +80 -0
  158. package/src/gdskills/bundled/skills/planning/docpack-review/input-contract.schema.json +20 -0
  159. package/src/gdskills/bundled/skills/planning/docpack-review/output-contract.schema.json +36 -0
  160. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +181 -0
  161. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +181 -0
  162. package/src/gdskills/bundled/skills/planning/interview/SKILL.md +187 -0
  163. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +94 -0
  164. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +99 -0
  165. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +99 -0
  166. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +105 -0
  167. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +33 -0
  168. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +33 -0
  169. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +237 -0
  170. package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +33 -0
  171. package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +33 -0
  172. package/src/gdskills/bundled/skills/planning/planner/SKILL.md +190 -0
  173. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +193 -0
  174. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +193 -0
  175. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +193 -0
  176. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +193 -0
  177. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +193 -0
  178. package/src/gdskills/bundled/skills/planning/prd-creator/input-contract.schema.json +63 -0
  179. package/src/gdskills/bundled/skills/planning/prd-creator/output-contract.schema.json +175 -0
  180. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +31 -0
  181. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +31 -0
  182. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +153 -0
  183. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +32 -0
  184. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +32 -0
  185. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +166 -0
  186. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +44 -0
  187. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +44 -0
  188. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +243 -0
  189. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +43 -0
  190. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +43 -0
  191. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +193 -0
  192. package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +47 -0
  193. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +87 -0
  194. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +87 -0
  195. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +87 -0
  196. package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +100 -0
  197. package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +100 -0
  198. package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +100 -0
  199. package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +45 -0
  200. package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +84 -0
  201. package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +84 -0
  202. package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +84 -0
  203. package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +66 -0
  204. package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +66 -0
  205. package/src/gdskills/bundled/skills/quality/commit/SKILL.md +66 -0
  206. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +40 -0
  207. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +66 -0
  208. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +66 -0
  209. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +66 -0
  210. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +45 -0
  211. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +81 -0
  212. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +81 -0
  213. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +81 -0
  214. package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +42 -0
  215. package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +70 -0
  216. package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +70 -0
  217. package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +70 -0
  218. package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +103 -0
  219. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +48 -0
  220. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +83 -0
  221. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +83 -0
  222. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +83 -0
  223. package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +75 -0
  224. package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +75 -0
  225. package/src/gdskills/bundled/skills/quality/pr/SKILL.md +75 -0
  226. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +364 -0
  227. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +295 -0
  228. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +378 -0
  229. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +364 -0
  230. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +38 -0
  231. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/input-contract.schema.json +53 -0
  232. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/output-contract.schema.json +46 -0
  233. package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +52 -0
  234. package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +52 -0
  235. package/src/gdskills/bundled/skills/quality/push/SKILL.md +52 -0
  236. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +40 -0
  237. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +61 -0
  238. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +61 -0
  239. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +61 -0
  240. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +30 -0
  241. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +75 -0
  242. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +75 -0
  243. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +75 -0
  244. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +64 -0
  245. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +74 -0
  246. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +339 -0
  247. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +48 -0
  248. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +44 -0
  249. package/src/gdskills/bundled/skills/quality/tests-creator/input-contract.schema.json +121 -0
  250. package/src/gdskills/bundled/skills/quality/tests-creator/output-contract.schema.json +127 -0
  251. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +204 -0
  252. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +204 -0
  253. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +203 -0
  254. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +204 -0
  255. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +204 -0
  256. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +209 -0
  257. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +209 -0
  258. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +208 -0
  259. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +209 -0
  260. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +209 -0
  261. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +263 -0
  262. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +263 -0
  263. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +258 -0
  264. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +263 -0
  265. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +263 -0
  266. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +175 -0
  267. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +175 -0
  268. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +168 -0
  269. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +175 -0
  270. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +175 -0
  271. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +360 -0
  272. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +337 -0
  273. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +477 -0
  274. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +93 -0
  275. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +119 -0
  276. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +595 -0
  277. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +144 -0
  278. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +519 -0
  279. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +323 -0
  280. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +927 -0
  281. package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +153 -0
  282. package/src/gdskills/bundled/skills/review/review-orchestrator/output-contract.schema.json +77 -0
  283. package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +389 -0
  284. package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-finding.schema.json +189 -0
  285. package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +241 -0
  286. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +344 -0
  287. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +327 -0
  288. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +348 -0
  289. package/src/gdskills/bundled/skills/review/review-strict/SKILL.md +328 -0
  290. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +343 -0
  291. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +134 -0
  292. package/src/gdskills/bundled/skills/shared/git-merge-base.md +33 -0
  293. package/src/gdskills/contracts/agent-event.schema.json +32 -0
  294. package/src/gdskills/contracts/orchestrator-state.schema.json +58 -0
  295. package/src/gdskills/contracts/review-finding.schema.json +59 -0
  296. package/src/gdskills/contracts/subagent-dispatch.schema.json +123 -0
  297. package/src/gdskills/contracts/subagent-result.schema.json +136 -0
@@ -0,0 +1,321 @@
1
+ ---
2
+ description: "Playwright E2E testing standards, test structure, and UI verification workflows."
3
+ alwaysApply: false
4
+ globs:
5
+ - "e2e/**"
6
+ - "**/*.spec.ts"
7
+ - "playwright.config.ts"
8
+ ---
9
+
10
+ # Playwright E2E Testing Guidelines
11
+
12
+ ## Purpose
13
+ Standardize E2E test creation, execution, and UI verification workflows using Playwright.
14
+
15
+ ## When to Apply
16
+ - Writing new E2E tests
17
+ - Debugging failing tests
18
+ - Setting up visual regression tests
19
+ - Analyzing UI behavior changes
20
+
21
+ ## Prerequisites
22
+
23
+ Check Playwright is installed and configured:
24
+ ```bash
25
+ npm list @playwright/test
26
+ ls playwright.config.ts
27
+ ```
28
+
29
+ ## Run Commands
30
+
31
+ ```bash
32
+ # Run all tests
33
+ npm run e2e
34
+
35
+ # Run specific test file
36
+ npx playwright test e2e/example.spec.ts
37
+
38
+ # Run in headed mode (see browser)
39
+ npx playwright test --headed
40
+
41
+ # Run with UI mode (interactive debugging)
42
+ npx playwright test --ui
43
+
44
+ # Run specific project (chromium/firefox/webkit)
45
+ npx playwright test --project=chromium
46
+
47
+ # Run with trace (for debugging)
48
+ npx playwright test --trace on
49
+
50
+ # View trace report
51
+ npx playwright show-trace trace.zip
52
+
53
+ # Generate HTML report
54
+ npx playwright test --reporter=html
55
+ npx playwright show-report
56
+ ```
57
+
58
+ ## Test File Structure
59
+
60
+ ```typescript
61
+ // e2e/feature-name.spec.ts
62
+ import { test, expect } from '@playwright/test';
63
+
64
+ test.describe('Feature Name', () => {
65
+ test.beforeEach(async ({ page }) => {
66
+ // Setup: login, navigate, etc.
67
+ await page.goto('/path');
68
+ });
69
+
70
+ test('should display correct initial state', async ({ page }) => {
71
+ // Arrange
72
+
73
+ // Act
74
+
75
+ // Assert
76
+ await expect(page.locator('[data-testid="element"]')).toBeVisible();
77
+ });
78
+
79
+ test('should handle user interaction', async ({ page }) => {
80
+ // Test steps
81
+ });
82
+ });
83
+ ```
84
+
85
+ ## UI Verification Patterns
86
+
87
+ ### Element Visibility
88
+ ```typescript
89
+ // Check element is visible
90
+ await expect(page.locator('.my-class')).toBeVisible();
91
+
92
+ // Check element is hidden
93
+ await expect(page.locator('.loading')).toBeHidden();
94
+
95
+ // Check element contains text
96
+ await expect(page.locator('h1')).toContainText('Expected Title');
97
+
98
+ // Check element has exact text
99
+ await expect(page.locator('.status')).toHaveText('Active');
100
+ ```
101
+
102
+ ### Form Interactions
103
+
104
+ > **Deprecation notice:** `page.fill()`, `page.click()`, and `page.check()` are deprecated.
105
+ > Use the locator-based equivalents instead:
106
+ > - `page.fill(selector, value)` → `page.locator(selector).fill(value)`
107
+ > - `page.click(selector)` → `page.locator(selector).click()`
108
+ > - `page.check(selector)` → `page.locator(selector).check()`
109
+
110
+ ```typescript
111
+ // Fill input
112
+ await page.locator('[data-testid="email-input"]').fill('test@example.com');
113
+
114
+ // Select from dropdown
115
+ await page.locator('select[name="country"]').selectOption('US');
116
+
117
+ // Click button
118
+ await page.locator('button[type="submit"]').click();
119
+
120
+ // Check checkbox
121
+ await page.locator('input[type="checkbox"]').check();
122
+ ```
123
+
124
+ ### Visual Regression Testing
125
+
126
+ ```typescript
127
+ // Screenshot comparison
128
+ test('visual regression - component state', async ({ page }) => {
129
+ await page.goto('/component-url');
130
+
131
+ // Wait for stability
132
+ // DEPRECATED: waitUntil: 'networkidle' / waitForLoadState('networkidle') is deprecated.
133
+ // Prefer waitUntil: 'load', waitForLoadState('load'), or explicit waitForSelector / UI state checks.
134
+ await page.waitForLoadState('load');
135
+
136
+ // Take screenshot
137
+ await expect(page).toHaveScreenshot('component-state.png', {
138
+ maxDiffPixels: 100
139
+ });
140
+ });
141
+ ```
142
+
143
+ **Screenshot Configuration** in `playwright.config.ts`:
144
+ ```typescript
145
+ expect: {
146
+ toHaveScreenshot: {
147
+ maxDiffPixels: 100,
148
+ threshold: 0.2,
149
+ },
150
+ },
151
+ ```
152
+
153
+ ### Responsive Testing
154
+
155
+ ```typescript
156
+ test('responsive layout', async ({ page }) => {
157
+ // Test mobile
158
+ await page.setViewportSize({ width: 375, height: 667 });
159
+ await page.goto('/');
160
+ await expect(page.locator('.mobile-menu')).toBeVisible();
161
+
162
+ // Test desktop
163
+ await page.setViewportSize({ width: 1280, height: 720 });
164
+ await page.goto('/');
165
+ await expect(page.locator('.desktop-nav')).toBeVisible();
166
+ });
167
+ ```
168
+
169
+ ## Test Data Attributes
170
+
171
+ Use `data-testid` for stable selectors:
172
+ ```tsx
173
+ // Component
174
+ <button data-testid="submit-button">Submit</button>
175
+
176
+ // Test (page.click() is deprecated — use locator-based API)
177
+ await page.locator('[data-testid="submit-button"]').click();
178
+ ```
179
+
180
+ ## API Mocking
181
+
182
+ ```typescript
183
+ import { test, expect } from '@playwright/test';
184
+
185
+ test('handles API error', async ({ page }) => {
186
+ // Mock API response
187
+ await page.route('**/api/users', async route => {
188
+ await route.fulfill({
189
+ status: 500,
190
+ body: JSON.stringify({ error: 'Server error' })
191
+ });
192
+ });
193
+
194
+ await page.goto('/users');
195
+ await expect(page.locator('.error-message')).toBeVisible();
196
+ });
197
+ ```
198
+
199
+ ## Authentication Patterns
200
+
201
+ ```typescript
202
+ test.describe('Authenticated Routes', () => {
203
+ test.use({ storageState: 'e2e/auth.json' });
204
+
205
+ test('access protected page', async ({ page }) => {
206
+ await page.goto('/dashboard');
207
+ await expect(page.locator('.dashboard')).toBeVisible();
208
+ });
209
+ });
210
+
211
+ // Setup auth in global setup
212
+ test('login flow', async ({ page }) => {
213
+ await page.goto('/login');
214
+ await page.locator('[data-testid="username"]').fill('user');
215
+ await page.locator('[data-testid="password"]').fill('pass');
216
+ await page.locator('[data-testid="login-button"]').click();
217
+
218
+ // Save state
219
+ await page.context().storageState({ path: 'e2e/auth.json' });
220
+ });
221
+ ```
222
+
223
+ ## Debugging Failed Tests
224
+
225
+ ```bash
226
+ # Run with trace
227
+ npx playwright test --trace on
228
+
229
+ # View trace
230
+ npx playwright show-trace test-results/trace.zip
231
+
232
+ # Run in debug mode
233
+ npx playwright test --debug
234
+
235
+ # Slow motion execution
236
+ npx playwright test --headed --slow-mo 1000
237
+ ```
238
+
239
+ ## Common Issues and Solutions
240
+
241
+ ### Flaky Tests
242
+ ```typescript
243
+ // Add retry logic
244
+ await expect.poll(async () => {
245
+ const response = await page.evaluate(() => fetch('/api/status'));
246
+ return response.status;
247
+ }).toBe(200);
248
+
249
+ // DEPRECATED: waitForLoadState('networkidle') / waitUntil: 'networkidle' is deprecated.
250
+ // Prefer waitForLoadState('load') or explicit waitForSelector / UI state checks.
251
+ await page.waitForLoadState('load');
252
+ ```
253
+
254
+ ### Timing Issues
255
+ ```typescript
256
+ // Wait for specific element
257
+ await page.waitForSelector('.loaded', { timeout: 10000 });
258
+
259
+ // Wait for request
260
+ await page.waitForRequest('**/api/data');
261
+
262
+ // Wait for response
263
+ await page.waitForResponse('**/api/data');
264
+ ```
265
+
266
+ ### Dynamic Content
267
+ ```typescript
268
+ // Wait for text to appear
269
+ await page.waitForFunction(() => {
270
+ return document.querySelector('.status')?.textContent === 'Ready';
271
+ });
272
+ ```
273
+
274
+ ## Integration with Feature Analysis
275
+
276
+ When using Playwright with `feature-analyzer`:
277
+
278
+ 1. **Visual Verification**: After code changes, run visual tests to detect UI regressions
279
+ 2. **Flow Validation**: Test critical user flows affected by the feature
280
+ 3. **Cross-browser Check**: Verify functionality in all supported browsers
281
+ 4. **Responsive Check**: Ensure UI works across different viewports
282
+
283
+ ```typescript
284
+ // Example: Testing a feature from analysis
285
+ test.describe('Feature: User Profile Update (from analysis)', () => {
286
+ test('validates profile form changes', async ({ page }) => {
287
+ // Based on analysis: test form validation
288
+ await page.goto('/profile');
289
+
290
+ // Clear and fill (as per DTO changes)
291
+ await page.locator('[data-testid="name-input"]').fill('New Name');
292
+ await page.locator('[data-testid="save-button"]').click();
293
+
294
+ // Verify success (as per API contract)
295
+ await expect(page.locator('.success-message')).toBeVisible();
296
+ });
297
+ });
298
+ ```
299
+
300
+ ## Output Contract
301
+
302
+ - Test files must be TypeScript
303
+ - Use descriptive test names
304
+ - Include Arrange-Act-Assert comments
305
+ - Provide trace/logs for failed tests
306
+ - Screenshots must be in `e2e/screenshots/`
307
+
308
+ ## CI/CD Integration
309
+
310
+ ```yaml
311
+ # Example CI step
312
+ - name: Run Playwright tests
313
+ run: npx playwright test
314
+
315
+ - name: Upload test results
316
+ uses: actions/upload-artifact@v4
317
+ if: always()
318
+ with:
319
+ name: playwright-report
320
+ path: playwright-report/
321
+ ```
@@ -0,0 +1,35 @@
1
+ ---
2
+ description: "Rules for creating and updating requirement documents with multilingual outputs."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Requirements Management Rules
7
+
8
+ ## Purpose
9
+ Standardize how requirement sets are created and maintained.
10
+
11
+ ## When To Apply
12
+ Apply when creating or updating requirement documents.
13
+
14
+ ## Location
15
+ `<DOCS_ROOT>/requirements/<requirement-name>/<YYYY-MM-DD>/`
16
+
17
+ ## Mandatory Behavior
18
+ 1. Ask for target location and requirement folder name before writing.
19
+ 2. Confirm naming convention before creation.
20
+ 3. Always create a new date-stamped subfolder; do not overwrite old sets.
21
+ 4. Generate synchronized `ru`, `en`, and `ai` versions.
22
+ 5. Document assumptions and open questions explicitly.
23
+
24
+ ## Output Contract
25
+ - Use Markdown (`.md`) only.
26
+ - Keep sections explicit: context, scope, requirements, constraints, open questions.
27
+ - Code snippets must be fenced code blocks.
28
+
29
+ ## Workflow
30
+ 1. Capture request.
31
+ 2. Clarify folder/location.
32
+ 3. Create folder structure.
33
+ 4. Create all required language files.
34
+ 5. Validate synchronization.
35
+ 6. Ask whether to apply changes.
@@ -0,0 +1,103 @@
1
+ ---
2
+ description: "Defines Metaproject requirements package structure, versioning, verification and review rules."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Requirements Package Standard
7
+
8
+ ## Purpose
9
+
10
+ Use this rule when creating or updating a requirements package under
11
+ `docs/requirements/<module-or-topic>/`.
12
+
13
+ ## Required Core Files
14
+
15
+ Every module-level documentation package must contain:
16
+
17
+ ```text
18
+ docs/requirements/<name>/
19
+ README.md
20
+ prd.md
21
+ specification.md
22
+ ```
23
+
24
+ Optional files are added only when the topic needs them:
25
+
26
+ ```text
27
+ brainstorm.md
28
+ policies.md
29
+ agent-protocol.md
30
+ ci-protocol.md
31
+ artifact-lifecycle.md
32
+ metrics-and-validation.md
33
+ implementation-plan.md
34
+ schemas/*.json
35
+ ```
36
+
37
+ ## Required Metadata
38
+
39
+ Every Markdown document must include:
40
+
41
+ ```markdown
42
+ Version: x.y.z
43
+ ```
44
+
45
+ The field must be directly under the H1. Increment the version whenever the
46
+ document changes.
47
+
48
+ ## README Contract
49
+
50
+ `README.md` must state:
51
+
52
+ - package purpose;
53
+ - current status;
54
+ - document index;
55
+ - scope and non-goals;
56
+ - related modules.
57
+
58
+ ## PRD Contract
59
+
60
+ `prd.md` must state:
61
+
62
+ - problem;
63
+ - goal;
64
+ - users;
65
+ - requirements;
66
+ - success criteria;
67
+ - risks;
68
+ - recommendation.
69
+
70
+ ## Specification Contract
71
+
72
+ `specification.md` must state:
73
+
74
+ - module identity;
75
+ - storage structure;
76
+ - manifest/config shape;
77
+ - CLI or skill surface;
78
+ - data contracts;
79
+ - integration points;
80
+ - acceptance criteria.
81
+
82
+ ## Verification Contract
83
+
84
+ Before finishing:
85
+
86
+ - verify required files exist;
87
+ - verify all Markdown files have `Version`;
88
+ - verify README links to all package files;
89
+ - verify schemas are referenced from specification when present;
90
+ - verify status is honest: `draft`, `spec ready`, `implemented`, or `future`;
91
+ - update `docs/requirements/roadmap.md` when the package represents a module or
92
+ standard capability.
93
+
94
+ ## Review Contract
95
+
96
+ Documentation review must check:
97
+
98
+ - completeness against this rule;
99
+ - contradictions across README/PRD/spec;
100
+ - unsupported implementation claims;
101
+ - missing integration points;
102
+ - stale roadmap or version references;
103
+ - unsafe overpromising versus current implementation.
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: "Baseline AI code review standards for correctness, architecture, safety, and maintainability."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # AI Code Review Assistant
7
+
8
+ ## Purpose
9
+ Provide strict, high-signal code reviews with actionable findings.
10
+
11
+ ## When To Apply
12
+ Apply when performing AI-assisted code review; loaded automatically by the code-ai-review skill.
13
+
14
+ ## Verdict Labels
15
+
16
+ All reviews must end with exactly one of the following verdict labels:
17
+
18
+ | Verdict | Meaning |
19
+ |---------|---------|
20
+ | `APPROVE` | Changes accepted as-is; no outstanding issues. |
21
+ | `APPROVE WITH SUGGESTIONS` | Accepted and can merge, but improvements are noted for follow-up. |
22
+ | `REQUEST CHANGES` | Must fix identified issues before merge. |
23
+ | `COMMENT` | Informational findings only; no blocking action required. |
24
+
25
+ ## Review Output Structure
26
+ 1. Verdict label (from the table above)
27
+ 2. Findings by severity and category
28
+ 3. Concrete fix proposals
29
+ 4. Residual risks and test gaps
30
+
31
+ ## Priority Categories
32
+ - Correctness
33
+ - Types and safety
34
+ - Architecture and state boundaries
35
+ - Performance
36
+ - UX/A11y
37
+ - Tests
38
+
39
+ ## Mandatory Rules
40
+ - Prioritize correctness over style.
41
+ - Do not request massive refactors unless user asks.
42
+ - Flag unsafe casts and hidden complexity.
43
+ - Align suggestions with existing project patterns.
44
+ - Keep comments specific, respectful, and actionable.
45
+
46
+ ## Output Contract
47
+ - Final review must be Markdown.
48
+ - Code snippets/diffs must be fenced code blocks.
49
+ - Response language follows user query language.
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: "boss-style review profile: direct, strict, architecture-first feedback with concrete fixes."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # boss Review Profile
7
+
8
+ ## Purpose
9
+ Replicate the boss review style for requested reviews.
10
+
11
+ ## When To Apply
12
+ Apply when user explicitly asks for review in boss style.
13
+
14
+ ## Style Profile
15
+ - Direct and concise.
16
+ - Architecture-first.
17
+ - Strongly against duct-tape fixes.
18
+ - Focus on testability and single source of truth.
19
+
20
+ ## What To Flag
21
+ - Business logic in UI instead of store/service.
22
+ - Duplicate rule checks in multiple places.
23
+ - Unsafe casts (`any`, disguised casts).
24
+ - Mocks inheriting production classes.
25
+ - Loading/no-data semantics confusion.
26
+ - Magic numbers without rationale.
27
+ - **Status/result mapping semantics**: Mapping "none" or absence-of-result to a semantic outcome (e.g. canceled, failed) without domain justification. Verify that source enum values (e.g. none, killed, cancelled) have distinct meanings and that the mapping preserves them; flag mappings that equate semantically different states (e.g. `none === canceled`, `killed === canceled` without explicit product rationale).
28
+ - **Store method accessibility** — See `core/mobx-store-template.mdc` for definitive rules on public vs private store methods. Key violations to flag:
29
+ - Public `onChangeX` / `handleX` methods (must be private)
30
+ - Public `action.bound` that should be private callbacks
31
+
32
+ ## Response Format
33
+ 1. Verdict in one line — use the canonical verdict vocabulary (same set as `core/code-review-ai-assistant.mdc`):
34
+ - `APPROVE` — no blocking issues; changes accepted as-is
35
+ - `APPROVE WITH SUGGESTIONS` — accepted but improvements noted for follow-up
36
+ - `REQUEST CHANGES` — has issues that must be fixed before merge
37
+ - `COMMENT` — informational findings only; no blocking action required
38
+ 2. Top 1-3 blocking findings.
39
+ 3. Concrete replacement/fix path.
40
+
41
+ ## Guardrails
42
+ - No personal attacks.
43
+ - No empty nitpicks.
44
+ - Keep recommendations lint-safe and scoped.
@@ -0,0 +1,62 @@
1
+ ---
2
+ description: "Workflow for adding or editing rules in the AGENTS.mdc + rules/core structure."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Rule Management Workflow
7
+
8
+ ## Purpose
9
+ Define a deterministic workflow for adding, editing, and syncing rules.
10
+
11
+ ## Trigger
12
+ Apply when user asks to create, update, move, reorganize, or sync rules.
13
+
14
+ ## Source of Truth
15
+ - Repository source: `.metaproject/rules`
16
+ - Root always-on file (plain): `AGENTS.md`
17
+ - Root always-on file (Cursor): `AGENTS.mdc` (frontmatter wrapper around AGENTS.md)
18
+ - Thematic files: `.metaproject/rules/core/*.mdc`
19
+
20
+ ## Mandatory Clarification Step
21
+ Before creating or editing any rule, the agent MUST ask and confirm:
22
+ 1. Target location
23
+ 2. Target folder name
24
+ 3. Rule file name (semantic, no numeric prefix)
25
+ 4. Rule scope and trigger conditions
26
+
27
+ ## Mandatory Behavior
28
+ 1. Update or create thematic rule files only under `rules/core`.
29
+ 2. Keep all rule files in English.
30
+ 3. Keep frontmatter valid YAML.
31
+ 4. If core files changed, update `AGENTS.md` catalog (and keep AGENTS.mdc in sync).
32
+ 5. Run synchronization only after source files are updated.
33
+
34
+ ## How to Run Synchronization
35
+ After editing rules under `.metaproject/rules/` or `AGENTS.md`, sync to all targets:
36
+
37
+ ```bash
38
+ keryx update
39
+ ```
40
+
41
+ ### Sync Targets
42
+ - `~/.cursor/rules/AGENTS.md` — Cursor global rules
43
+ - `~/.codex/AGENTS.md` — Codex global rules
44
+ - `~/.config/zed/AGENTS.md` — Zed global rules
45
+ - `~/.config/opencode/AGENTS.md` — OpenCode global rules
46
+
47
+ ## Rule File Standard
48
+ Every core rule MUST include:
49
+ - Purpose
50
+ - When To Apply
51
+ - Mandatory Behavior
52
+ - Output Contract (when the rule defines user-facing deliverables)
53
+ - Optional examples
54
+
55
+ ## Output Contract for Rule Work
56
+ - Any produced rule text must be Markdown.
57
+ - Any code example must be fenced.
58
+ - Final response language must follow user query language.
59
+
60
+ ## Apply Changes Workflow
61
+ After rule changes, ask whether to apply changes.
62
+ If approved: create branch from `main`, commit, and open PR to `main`.