@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,188 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "job-orchestrator-input-contract",
4
+ "title": "Job Orchestrator Input Contract",
5
+ "description": "Defines all input parameters required to run job-orchestrator. This is the top-level entry point for the AI implementation pipeline.",
6
+ "type": "object",
7
+ "required": ["issue", "codebase", "automation"],
8
+ "properties": {
9
+ "issue": {
10
+ "type": "object",
11
+ "description": "GitHub issue identification. Provide EITHER url OR repo+number.",
12
+ "properties": {
13
+ "url": {
14
+ "type": "string",
15
+ "format": "uri",
16
+ "description": "Full GitHub issue URL",
17
+ "examples": ["https://github.com/<ORG>/<PROJECT>/issues/4141"]
18
+ },
19
+ "repo": {
20
+ "type": "string",
21
+ "pattern": "^[\\w.-]+/[\\w.-]+$",
22
+ "description": "GitHub owner/repo (alternative to url)",
23
+ "examples": ["<ORG>/<PROJECT>"]
24
+ },
25
+ "number": {
26
+ "type": "integer",
27
+ "minimum": 1,
28
+ "description": "Issue number (alternative to url)",
29
+ "examples": [4141]
30
+ }
31
+ },
32
+ "oneOf": [
33
+ { "required": ["url"] },
34
+ { "required": ["repo", "number"] }
35
+ ]
36
+ },
37
+ "codebase": {
38
+ "type": "object",
39
+ "description": "Codebase configuration for implementation.",
40
+ "required": ["path"],
41
+ "properties": {
42
+ "path": {
43
+ "type": "string",
44
+ "description": "Absolute path to the repository root",
45
+ "examples": ["/Users/dev/<PROJECT>"]
46
+ },
47
+ "role": {
48
+ "type": "string",
49
+ "enum": ["frontend", "backend", "shared"],
50
+ "default": "frontend",
51
+ "description": "Role of this codebase"
52
+ },
53
+ "base_branch": {
54
+ "type": "string",
55
+ "default": "develop-2",
56
+ "description": "Base branch to create feature branch from"
57
+ },
58
+ "additional_codebases": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "required": ["path", "role"],
63
+ "properties": {
64
+ "path": {
65
+ "type": "string",
66
+ "description": "Absolute path"
67
+ },
68
+ "role": {
69
+ "type": "string",
70
+ "enum": ["frontend", "backend", "shared"]
71
+ },
72
+ "branch": {
73
+ "type": "string"
74
+ }
75
+ }
76
+ },
77
+ "description": "Additional codebases for issue-analyzer cross-repo analysis (read-only, implementation happens in primary codebase)"
78
+ }
79
+ }
80
+ },
81
+ "automation": {
82
+ "type": "object",
83
+ "description": "Controls for the orchestration pipeline.",
84
+ "required": ["skip_confirmation"],
85
+ "properties": {
86
+ "skip_confirmation": {
87
+ "type": "boolean",
88
+ "const": true,
89
+ "description": "Must be true — sub-agents run without confirmation"
90
+ },
91
+ "max_review_iterations": {
92
+ "type": "integer",
93
+ "minimum": 1,
94
+ "maximum": 3,
95
+ "default": 2,
96
+ "description": "Max review → fix iterations"
97
+ },
98
+ "auto_create_pr": {
99
+ "type": "boolean",
100
+ "default": false,
101
+ "description": "Auto-create draft PR without asking user (default: ask)"
102
+ },
103
+ "reviewers": {
104
+ "type": "array",
105
+ "items": {
106
+ "type": "string",
107
+ "enum": [
108
+ "code-ai-review",
109
+ "code-boss-review",
110
+ "code-style-review",
111
+ "code-mobx-store-review"
112
+ ]
113
+ },
114
+ "default": ["code-ai-review", "code-boss-review", "code-style-review"],
115
+ "description": "Review skills to always run"
116
+ },
117
+ "conditional_reviewers": {
118
+ "type": "object",
119
+ "additionalProperties": {
120
+ "type": "string"
121
+ },
122
+ "default": {
123
+ "code-mobx-store-review": "*.store.ts"
124
+ },
125
+ "description": "Review skills to run conditionally: {skill_name: file_glob_pattern}"
126
+ },
127
+ "run_final_checks": {
128
+ "type": "boolean",
129
+ "default": true,
130
+ "description": "Run lint/type-check/test after review loop"
131
+ },
132
+ "analyzer_settings": {
133
+ "type": "object",
134
+ "description": "Settings passed to issue-analyzer sub-agent",
135
+ "properties": {
136
+ "max_tasks": {
137
+ "type": "integer",
138
+ "minimum": 1,
139
+ "maximum": 10,
140
+ "default": 7
141
+ },
142
+ "search_depth": {
143
+ "type": "string",
144
+ "enum": ["shallow", "focused", "deep"],
145
+ "default": "focused"
146
+ },
147
+ "include_context": {
148
+ "type": "boolean",
149
+ "default": true
150
+ }
151
+ }
152
+ },
153
+ "implementer_settings": {
154
+ "type": "object",
155
+ "description": "Settings passed to task-implementer sub-agents",
156
+ "properties": {
157
+ "auto_commit": {
158
+ "type": "boolean",
159
+ "default": true
160
+ },
161
+ "verify_lint": {
162
+ "type": "boolean",
163
+ "default": true
164
+ },
165
+ "verify_types": {
166
+ "type": "boolean",
167
+ "default": true
168
+ },
169
+ "verify_tests": {
170
+ "type": "boolean",
171
+ "default": true
172
+ },
173
+ "verify_stories": {
174
+ "type": "boolean",
175
+ "default": false
176
+ },
177
+ "max_self_fix_attempts": {
178
+ "type": "integer",
179
+ "minimum": 1,
180
+ "maximum": 5,
181
+ "default": 3
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
@@ -0,0 +1,179 @@
1
+ # Job Orchestrator — Quick Reference Checklist
2
+
3
+ > **Purpose:** Condensed execution checklist for the orchestrator agent.
4
+ > This file is a quick reference — the full specification is in `SKILL.md`.
5
+ > The orchestrator is NOT a sub-agent; it IS the primary agent executing this checklist.
6
+ > When in doubt, refer to `SKILL.md` for complete details.
7
+
8
+ ## Data Flow
9
+
10
+ ```
11
+ [User] → "implement issue #4141" / "analyze issue" / other request
12
+
13
+ [Orchestrator] → loads SKILL.md, follows this checklist
14
+
15
+ Phase 0: Context collection, intent determination, plan building
16
+
17
+ Phase 1: [job-documenter sub-agent] → initialize .metaproject/jobs/<job-name>/ + README + plan
18
+
19
+ Phase 2: Execute plan dynamically:
20
+
21
+ ├─ [issue-analyzer sub-agent] → JSON analysis result
22
+ ├─ git worktree add → feature branch (NEVER git checkout -b)
23
+ ├─ FOR EACH wave → [wave-executor sub-agent] → compact WAVE_DONE summary
24
+ ├─ Load review skills → findings
25
+ ├─ IF findings → [task-implementer sub-agent (fix)] → re-review (max 2x)
26
+ ├─ npm run lint && type-check && test
27
+ └─ [job-documenter] → document each step result
28
+
29
+ Phase 3: [job-documenter] → finalize → final report
30
+
31
+ (Optional) gh pr create --draft
32
+ ```
33
+
34
+ ## Phase 0: Context Collection (Guard Clause)
35
+
36
+ Before starting, determine intent and collect context:
37
+
38
+ 1. **Determine intent** from user request:
39
+ - "Implement issue" → `implement` (full cycle)
40
+ - "Analyze issue" / "Study issue" → `analyze` (analysis first, then offer implementation)
41
+ - "Review" → `review` (review only)
42
+ - Other → `custom` (dynamic plan)
43
+
44
+ 2. **Project directory** → ALWAYS ask, never assume:
45
+ ```
46
+ Which project directory should I use?
47
+ ○ Type the full absolute path to your project
48
+ ```
49
+
50
+ 3. **Base branch** → ask to confirm (no default).
51
+
52
+ 4. **Job name** → auto-generate + confirm:
53
+ - `issue-<N>--<slug>` for implement
54
+ - `analysis--issue-<N>` for analyze
55
+ - `review--<slug>` for review
56
+ - `task--<slug>` for custom
57
+
58
+ 5. **Additional questions** by intent:
59
+ - `implement`: Create PR? (default: yes)
60
+ - `analyze`: nothing (ask about implementation after analysis)
61
+
62
+ 6. **Show summary and ask for confirmation** before starting.
63
+
64
+ ## Phase 1: Initialize Documentation
65
+
66
+ Dispatch `job-documenter` sub-agent with `ACTION: init`.
67
+
68
+ Write initial `state.json` to `.metaproject/jobs/<job-name>/state.json` after job docs are initialized.
69
+
70
+ Verify `DOCUMENTER_RESULT.status == "success"`.
71
+
72
+ ## Phase 2: Execute Plan
73
+
74
+ Execute plan steps sequentially. After each step:
75
+ 1. Collect result
76
+ 2. Send to `job-documenter` (ACTION: add-document)
77
+ 3. Update README (ACTION: update-readme)
78
+ 4. Update `state.json` with step completion
79
+ 5. Mark step as completed
80
+
81
+ ### Step: ANALYZE
82
+
83
+ Read `skills/issue-analyzer/orchestrator-prompt.md`, fill in parameters:
84
+
85
+ ```
86
+ ISSUE_URL: <url> (or ISSUE_REPO + ISSUE_NUMBER)
87
+ CODEBASE_PATHS: [{path, role, branch}]
88
+ MAX_TASKS: 7 (default)
89
+ SEARCH_DEPTH: focused (default)
90
+ ```
91
+
92
+ Launch Task(issue-analyzer). Parse JSON result — extract tasks and dependency_order.
93
+
94
+ For `analyze` intent: show result, ask "Implement? (yes/no)".
95
+ - yes → extend plan: prepare → implement → review → fix → checks → report → pr
96
+ - no → Phase 3
97
+
98
+ ### Step: PREPARE — Create Feature Branch
99
+
100
+ > **CRITICAL**: Use ONLY `git worktree add`. NEVER `git checkout -b`.
101
+
102
+ ```bash
103
+ git -C <project_dir> fetch origin <base_branch>
104
+ git -C <project_dir> worktree add ../<branch-slug> -b feature/<branch-slug> origin/<base_branch>
105
+ npm install --prefix <worktree_path>
106
+ ```
107
+
108
+ All subsequent operations ONLY in worktree directory.
109
+
110
+ ### Step: IMPLEMENT — Wave Isolation
111
+
112
+ ```
113
+ WAVES = topological_sort_into_waves(dependency_order, task_dependencies)
114
+
115
+ FOR wave_index, wave_tasks in enumerate(WAVES):
116
+ 1. Dispatch single Agent("wave-executor") with all tasks in this wave
117
+ (see skills/job-orchestrator/SKILL.md step 2.4.1 for full prompt template)
118
+ 2. Receive compact WAVE_RESULT:
119
+ STATUS: WAVE_DONE | WAVE_PARTIAL | WAVE_FAILED
120
+ Commits: [hash msg, ...]
121
+ Tests: N passed, M failed
122
+ Tasks: task-1 ✅, task-2 ✅
123
+ 3. Decision:
124
+ WAVE_DONE → continue to next wave
125
+ WAVE_PARTIAL → log concerns (read result files if needed), continue
126
+ WAVE_FAILED → STOP, read result files for failed tasks, ask user
127
+
128
+ Do NOT dispatch task-implementers directly — always via wave-executor.
129
+ Context budget rule: orchestrator only accumulates compact wave summaries,
130
+ never raw task-implementer output.
131
+ ```
132
+
133
+ Document result in job-documenter.
134
+
135
+ ### Step: REVIEW — Run Reviewers
136
+
137
+ ```
138
+ REVIEWERS = ["code-ai-review", "code-boss-review", "code-style-review"]
139
+ IF *.store.ts modified: add "code-mobx-store-review"
140
+
141
+ FOR reviewer in REVIEWERS:
142
+ Load skill → execute → collect findings as JSON
143
+ ```
144
+
145
+ Document result.
146
+
147
+ ### Step: FIX — Review-Fix Loop (max 2 iterations)
148
+
149
+ If CRITICAL or WARNING findings exist:
150
+ 1. Group by file
151
+ 2. Launch task-implementer (task_type: "fix") with review findings JSON
152
+ 3. Re-run reviewers
153
+ 4. Recount findings
154
+
155
+ ### Step: CHECKS — Final Verification
156
+
157
+ ```bash
158
+ npm run lint
159
+ npm run type-check
160
+ npm test
161
+ ```
162
+
163
+ ### Step: REPORT — Generate Final Report
164
+
165
+ Markdown report per template in SKILL.md (section 2.9).
166
+
167
+ ### Step: PR — Propose Draft PR (optional)
168
+
169
+ Dispatch `pr-issue-documenter` to generate PR description.
170
+ Present to user, ask confirmation, then:
171
+ ```bash
172
+ gh pr create --title "<title>" --body "..." --base <base> --head <head> --draft
173
+ ```
174
+
175
+ ## Phase 3: Completion
176
+
177
+ 1. Dispatch `job-documenter` with `ACTION: finalize`
178
+ 2. Update `state.json` with `phase: "COMPLETION"`
179
+ 3. Tell user what was accomplished + documentation path + PR URL (if created)
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "job-orchestrator-output-contract",
4
+ "title": "Job Orchestrator Output Contract",
5
+ "description": "Defines the structure of the final report and PR proposal produced by job-orchestrator.",
6
+ "type": "object",
7
+ "required": ["format", "structure"],
8
+ "properties": {
9
+ "format": {
10
+ "type": "string",
11
+ "const": "markdown",
12
+ "description": "Output is in Markdown format (not Gherkin — this is the top-level human-readable report)"
13
+ },
14
+ "structure": {
15
+ "type": "object",
16
+ "description": "Structure of the implementation report",
17
+ "required": ["sections"],
18
+ "properties": {
19
+ "sections": {
20
+ "type": "array",
21
+ "items": {
22
+ "type": "string",
23
+ "enum": [
24
+ "Summary",
25
+ "Tasks",
26
+ "Review Results",
27
+ "Unresolved Issues",
28
+ "Final Checks",
29
+ "Changes Summary",
30
+ "PR Proposal"
31
+ ]
32
+ },
33
+ "description": "Sections in the report"
34
+ }
35
+ }
36
+ },
37
+ "report_fields": {
38
+ "type": "object",
39
+ "description": "Key fields in the report for programmatic access",
40
+ "properties": {
41
+ "summary": {
42
+ "type": "object",
43
+ "properties": {
44
+ "issue_number": { "type": "integer" },
45
+ "issue_title": { "type": "string" },
46
+ "issue_type": { "type": "string" },
47
+ "branch_name": { "type": "string" },
48
+ "tasks_completed": { "type": "integer" },
49
+ "tasks_total": { "type": "integer" },
50
+ "review_iterations": { "type": "integer" },
51
+ "final_status": {
52
+ "type": "string",
53
+ "enum": ["READY FOR PR", "HAS WARNINGS", "HAS ISSUES", "FAILED"]
54
+ }
55
+ }
56
+ },
57
+ "task_results": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "object",
61
+ "properties": {
62
+ "task_id": { "type": "string" },
63
+ "task_name": { "type": "string" },
64
+ "status": { "type": "string", "enum": ["success", "partial", "failed"] },
65
+ "files": { "type": "array", "items": { "type": "string" } },
66
+ "commits": { "type": "array", "items": { "type": "string" } }
67
+ }
68
+ }
69
+ },
70
+ "review_results": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "object",
74
+ "properties": {
75
+ "reviewer": { "type": "string" },
76
+ "critical": { "type": "integer" },
77
+ "warning": { "type": "integer" },
78
+ "info": { "type": "integer" }
79
+ }
80
+ }
81
+ },
82
+ "final_checks": {
83
+ "type": "object",
84
+ "properties": {
85
+ "lint": { "type": "string" },
86
+ "type_check": { "type": "string" },
87
+ "tests": { "type": "string" }
88
+ }
89
+ },
90
+ "pr_data": {
91
+ "type": "object",
92
+ "properties": {
93
+ "title": { "type": "string" },
94
+ "base": { "type": "string" },
95
+ "head": { "type": "string" },
96
+ "draft": { "type": "boolean" },
97
+ "body": { "type": "string" }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,164 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://keryx.local/schemas/job-orchestrator/state.schema.json",
4
+ "title": "Job Orchestrator State",
5
+ "description": "Schema for .metaproject/jobs/<job-name>/state.json — persisted orchestrator state for job resumption.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["phase", "intent", "job_name", "context", "plan"],
9
+ "properties": {
10
+ "phase": {
11
+ "type": "string",
12
+ "enum": ["CONTEXT", "PLAN", "EXECUTION", "COMPLETION"],
13
+ "description": "Current orchestrator phase"
14
+ },
15
+ "intent": {
16
+ "type": "string",
17
+ "enum": ["implement", "analyze", "review", "custom"]
18
+ },
19
+ "create_pr": { "type": "boolean" },
20
+ "job_name": { "type": "string", "pattern": "^[a-z0-9-]+$" },
21
+ "context": {
22
+ "type": "object",
23
+ "properties": {
24
+ "issue": {
25
+ "type": "object",
26
+ "properties": {
27
+ "number": { "type": "integer" },
28
+ "title": { "type": "string" },
29
+ "url": { "type": "string" },
30
+ "type": { "type": "string" }
31
+ }
32
+ },
33
+ "project_dir": { "type": "string" },
34
+ "base_branch": { "type": "string" }
35
+ }
36
+ },
37
+ "branch": {
38
+ "type": "object",
39
+ "properties": {
40
+ "name": { "type": "string" },
41
+ "worktree_path": { "type": "string" },
42
+ "merge_base": { "type": "string" },
43
+ "package_manager": { "type": "string", "enum": ["npm", "bun", "yarn", "pnpm", "python", "go", "unknown"] },
44
+ "run_command": { "type": "string", "description": "Command prefix for running scripts (e.g., 'npm run', 'bun run', 'yarn')" }
45
+ }
46
+ },
47
+ "interview": {
48
+ "type": "object",
49
+ "description": "Results from the interview skill (Phase 0.3)",
50
+ "properties": {
51
+ "decisions": { "type": "array", "items": { "type": "object" } },
52
+ "constraints": { "type": "array", "items": { "type": "string" } },
53
+ "assumptions": { "type": "array", "items": { "type": "string" } },
54
+ "risks": { "type": "array", "items": { "type": "string" } },
55
+ "refined_goal": { "type": "string" }
56
+ }
57
+ },
58
+ "plan": {
59
+ "type": "object",
60
+ "required": ["steps"],
61
+ "properties": {
62
+ "steps": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "required": ["id", "type", "agent", "status"],
67
+ "properties": {
68
+ "id": { "type": "string" },
69
+ "type": { "type": "string" },
70
+ "agent": { "type": "string" },
71
+ "depends": { "type": "array", "items": { "type": "string" } },
72
+ "status": {
73
+ "type": "string",
74
+ "enum": ["pending", "in_progress", "completed", "skipped", "failed"]
75
+ },
76
+ "conditional": { "type": "boolean" }
77
+ }
78
+ }
79
+ },
80
+ "current_step": { "type": "string" }
81
+ }
82
+ },
83
+ "analysis": {
84
+ "type": "object",
85
+ "properties": {
86
+ "total_tasks": { "type": "integer" },
87
+ "tasks": { "type": "array" },
88
+ "dependency_order": { "type": "array", "items": { "type": "string" } }
89
+ }
90
+ },
91
+ "context_doc": {
92
+ "type": "object",
93
+ "properties": {
94
+ "path": { "type": "string" },
95
+ "version": { "type": "string" },
96
+ "status": { "type": "string", "enum": ["collected", "updated", "not-collected"] }
97
+ }
98
+ },
99
+ "implementation": {
100
+ "type": "object",
101
+ "properties": {
102
+ "task_results": { "type": "object" },
103
+ "all_commits": { "type": "array", "items": { "type": "string" } },
104
+ "all_files": { "type": "array", "items": { "type": "string" } }
105
+ }
106
+ },
107
+ "review": {
108
+ "type": "object",
109
+ "properties": {
110
+ "iteration": { "type": "integer" },
111
+ "findings": { "type": "array" },
112
+ "needs_fix": { "type": "boolean" },
113
+ "unresolved": { "type": "array" }
114
+ }
115
+ },
116
+ "final_checks": {
117
+ "type": "object",
118
+ "properties": {
119
+ "lint": { "type": "string" },
120
+ "type_check": { "type": "string" },
121
+ "tests": { "type": "string" }
122
+ }
123
+ },
124
+ "documentation": {
125
+ "type": "object",
126
+ "properties": {
127
+ "job_path": { "type": "string" },
128
+ "documents_created": { "type": "array", "items": { "type": "string" } }
129
+ }
130
+ },
131
+ "metrics": {
132
+ "type": "object",
133
+ "description": "Timing and token usage per step",
134
+ "properties": {
135
+ "steps": {
136
+ "type": "array",
137
+ "items": {
138
+ "type": "object",
139
+ "properties": {
140
+ "step_id": { "type": "string" },
141
+ "started_at": { "type": "string", "format": "date-time" },
142
+ "completed_at": { "type": "string", "format": "date-time" },
143
+ "duration_ms": { "type": "integer" },
144
+ "total_tokens": { "type": "integer" },
145
+ "status": { "type": "string" },
146
+ "retries": { "type": "integer" }
147
+ }
148
+ }
149
+ },
150
+ "total_duration_ms": { "type": "integer" },
151
+ "total_tokens": { "type": "integer" }
152
+ }
153
+ },
154
+ "jobs_root": {
155
+ "type": "string",
156
+ "description": "Resolved jobs root directory"
157
+ },
158
+ "updated_at": {
159
+ "type": "string",
160
+ "format": "date-time",
161
+ "description": "ISO 8601 UTC timestamp of last state update"
162
+ }
163
+ }
164
+ }