@mrciphersmith/keryx 0.2.97 → 0.2.99

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 (210) hide show
  1. package/dist/cli.js +4583 -2702
  2. package/dist/core.js +40 -2
  3. package/package.json +1 -1
  4. package/src/gdskills/bundled/rules/core/api-contracts.mdc +1 -0
  5. package/src/gdskills/bundled/rules/core/cli-interface-design.mdc +237 -0
  6. package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +1 -0
  7. package/src/gdskills/bundled/rules/core/database-patterns.mdc +1 -0
  8. package/src/gdskills/bundled/rules/core/definition-of-done.mdc +116 -0
  9. package/src/gdskills/bundled/rules/core/documentation-management.mdc +33 -38
  10. package/src/gdskills/bundled/rules/core/error-handling.mdc +1 -11
  11. package/src/gdskills/bundled/rules/core/execution-metrics.md +1 -2
  12. package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +1 -0
  13. package/src/gdskills/bundled/rules/core/git-concurrency.mdc +101 -0
  14. package/src/gdskills/bundled/rules/core/implementation-plans.mdc +23 -11
  15. package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +1 -0
  16. package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +1 -0
  17. package/src/gdskills/bundled/rules/core/playwright-testing.mdc +1 -0
  18. package/src/gdskills/bundled/rules/core/requirements-management.mdc +15 -11
  19. package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +29 -14
  20. package/src/gdskills/bundled/rules/core/shared-definitions.mdc +1 -1
  21. package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +9 -5
  22. package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +156 -23
  23. package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +1 -0
  24. package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +9 -2
  25. package/src/gdskills/bundled/skills/core/reviewer-skill-creator/SKILL.md +42 -5
  26. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +67 -74
  27. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +24 -8
  28. package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
  29. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +12 -22
  30. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +44 -31
  31. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +2 -2
  32. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +1 -1
  33. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +4 -4
  34. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +2 -2
  35. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +20 -6
  36. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +67 -9
  37. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +6 -6
  38. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
  39. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +45 -5
  40. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +88 -32
  41. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +52 -41
  42. package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +32 -1
  43. package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +16 -0
  44. package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +16 -0
  45. package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +16 -0
  46. package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +17 -0
  47. package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +16 -0
  48. package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +16 -0
  49. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +29 -4
  50. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +17 -0
  51. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +17 -0
  52. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +17 -0
  53. package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +32 -2
  54. package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +14 -2
  55. package/src/gdskills/bundled/skills/planning/interview/SKILL.md +30 -8
  56. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +33 -7
  57. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +16 -0
  58. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +16 -0
  59. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +16 -0
  60. package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +17 -0
  61. package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +17 -0
  62. package/src/gdskills/bundled/skills/planning/planner/SKILL.md +17 -0
  63. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +27 -10
  64. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +16 -0
  65. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +16 -0
  66. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +16 -0
  67. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +16 -0
  68. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +16 -0
  69. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +16 -0
  70. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +4 -0
  71. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +4 -0
  72. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +4 -0
  73. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +4 -0
  74. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +4 -0
  75. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +4 -0
  76. package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +31 -4
  77. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +27 -3
  78. package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +29 -4
  79. package/src/gdskills/bundled/skills/quality/api-truth/SKILL.md +226 -0
  80. package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +25 -5
  81. package/src/gdskills/bundled/skills/quality/commit/SKILL.md +26 -5
  82. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +25 -4
  83. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +26 -5
  84. package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +27 -4
  85. package/src/gdskills/bundled/skills/quality/deprecation-path/SKILL.md +268 -0
  86. package/src/gdskills/bundled/skills/quality/fresh-eyes/SKILL.md +190 -0
  87. package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +24 -3
  88. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +30 -9
  89. package/src/gdskills/bundled/skills/quality/pr/SKILL.md +25 -5
  90. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +27 -4
  91. package/src/gdskills/bundled/skills/quality/push/SKILL.md +25 -4
  92. package/src/gdskills/bundled/skills/quality/root-cause/SKILL.md +204 -0
  93. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +25 -4
  94. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +31 -5
  95. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +32 -11
  96. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +42 -7
  97. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +43 -3
  98. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +46 -4
  99. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +46 -6
  100. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +5 -5
  101. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +5 -6
  102. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +6 -6
  103. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +37 -3
  104. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +38 -4
  105. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +4 -6
  106. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +37 -3
  107. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +5 -7
  108. package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +24 -3
  109. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +5 -5
  110. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +49 -64
  111. package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +1 -2
  112. package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +1 -5
  113. package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +53 -9
  114. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +11 -11
  115. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +9 -8
  116. package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +33 -2
  117. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +6 -4
  118. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +5 -5
  119. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +41 -3
  120. package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +2 -2
  121. package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +0 -49
  122. package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +0 -48
  123. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +0 -353
  124. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +0 -353
  125. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +0 -353
  126. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +0 -353
  127. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +0 -655
  128. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +0 -655
  129. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +0 -655
  130. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +0 -655
  131. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +0 -434
  132. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +0 -434
  133. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +0 -434
  134. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +0 -434
  135. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +0 -163
  136. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +0 -163
  137. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +0 -373
  138. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +0 -373
  139. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +0 -373
  140. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +0 -373
  141. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +0 -374
  142. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +0 -374
  143. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +0 -374
  144. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +0 -374
  145. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +0 -2190
  146. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +0 -2190
  147. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +0 -2190
  148. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +0 -2190
  149. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +0 -659
  150. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +0 -659
  151. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +0 -659
  152. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +0 -659
  153. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +0 -90
  154. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +0 -90
  155. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +0 -187
  156. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +0 -187
  157. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +0 -105
  158. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +0 -105
  159. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +0 -193
  160. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +0 -193
  161. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +0 -193
  162. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +0 -193
  163. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +0 -87
  164. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +0 -87
  165. package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +0 -100
  166. package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +0 -100
  167. package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +0 -84
  168. package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +0 -84
  169. package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +0 -66
  170. package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +0 -66
  171. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +0 -66
  172. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +0 -66
  173. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +0 -81
  174. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +0 -81
  175. package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +0 -70
  176. package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +0 -70
  177. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +0 -83
  178. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +0 -83
  179. package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +0 -75
  180. package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +0 -75
  181. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +0 -378
  182. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +0 -378
  183. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +0 -378
  184. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +0 -378
  185. package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +0 -52
  186. package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +0 -52
  187. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +0 -108
  188. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +0 -108
  189. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +0 -75
  190. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +0 -75
  191. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +0 -339
  192. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +0 -339
  193. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +0 -339
  194. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +0 -339
  195. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +0 -203
  196. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +0 -203
  197. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +0 -203
  198. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +0 -203
  199. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +0 -243
  200. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +0 -243
  201. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +0 -243
  202. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +0 -243
  203. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +0 -259
  204. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +0 -259
  205. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +0 -259
  206. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +0 -259
  207. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +0 -168
  208. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +0 -168
  209. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +0 -168
  210. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +0 -168
@@ -1,659 +0,0 @@
1
- ---
2
- name: task-implementer
3
- model_tier: standard
4
- description: "Use when implementing a single decomposed task from issue-analyzer end-to-end, or executing autonomous code changes from a JSON task object."
5
- triggers:
6
- - "Implement task"
7
- - "Execute task scenario"
8
- - "Code this task"
9
- - "Run task-implementer"
10
- - "Implement issue task"
11
- metadata:
12
- author: "MrCipherSmith"
13
- version: "1.3.1"
14
- category: "implementation"
15
- agent_worthy: true
16
- compatible_harnesses: "claude,cursor,codex,zed,opencode"
17
- license: "MIT"
18
- ---
19
-
20
- # Task Implementer
21
-
22
- ## Purpose
23
-
24
- Receives a single atomic task (JSON task object from `issue-analyzer`) and implements it end-to-end. Designed to run autonomously as a sub-agent — no user interaction required. Commits its changes to a shared feature branch managed by the orchestrator.
25
-
26
- **Input:** JSON task object + workspace context (branch, codebase path, optional real issue number)
27
- **Output:** JSON result object with implementation status, files modified, verification results
28
-
29
- ## When to Use
30
-
31
- - Orchestrator dispatches a task from `issue-analyzer` decomposition
32
- - Implementing a single atomic code change (new component, store change, API fix, etc.)
33
- - Fixing review findings dispatched back by orchestrator (`task_type: "fix"`)
34
-
35
- ## Architecture: 6 Phases
36
-
37
- ```
38
- Phase 1: RECEIVE → Parse task input, validate, set up context
39
- Phase 2: RESEARCH → Deep-read target files, understand module patterns
40
- Phase 3: PLAN → Decide implementation approach, list file changes
41
- Phase 4: IMPLEMENT → Write code, tests, stories
42
- Phase 5: VERIFY → Run lint, type-check, tests
43
- Phase 6: REPORT → Write result file + emit compact STATUS response
44
- ```
45
-
46
- ---
47
-
48
- ## Workflow
49
-
50
- ```
51
- Task Implementer Progress:
52
- - [ ] Phase 1: Receive and parse task input
53
- - [ ] Phase 2: Research target files and module patterns
54
- - [ ] Phase 3: Plan implementation approach
55
- - [ ] Phase 4: Implement code changes
56
- - [ ] Phase 5: Verify (lint, type-check, test)
57
- - [ ] Phase 6: Report results
58
- ```
59
-
60
- ### Phase 1: RECEIVE
61
-
62
- Parse the incoming task and validate all required fields.
63
-
64
- **1.1 Extract from JSON task object:**
65
-
66
- ```
67
- TASK: (from JSON object passed by orchestrator)
68
- task_id: string, e.g. "task-1"
69
- task_name: string, e.g. "Add validation to form"
70
- task_type: string: ui_component|store_logic|service_api|refactoring|fix|mixed
71
- complexity: string: low|medium|high
72
- dependencies: array of task_id strings this task reads from
73
- description: string: what to implement
74
- target_files: array of file path strings
75
- acceptance_criteria: array of criterion strings
76
- context: string: code context, types, signatures
77
- existing_tests: array of file path strings (may be empty)
78
- existing_stories: array of file path strings (may be empty)
79
- module_patterns: string: how similar code is written in this module
80
- test_case_specs: optional — provided by tests-creator (RED-phase test stubs already committed)
81
- ```
82
-
83
- **1.2 Extract from workspace context:**
84
-
85
- ```
86
- WORKSPACE:
87
- codebase_path: absolute path to the repository
88
- branch: feature branch to work on (already checked out by orchestrator)
89
- issue_number: Optional real GitHub issue number; omit for description-based tasks
90
- issue_title: issue title (for commit messages)
91
- ```
92
-
93
- For a description-based task, omit `issue_number` and issue references in commit messages. Never substitute a flow ID or fabricate a GitHub issue. A supplied issue number must remain a positive integer.
94
-
95
- **1.3 For fix tasks (dispatched from review loop):**
96
-
97
- ```
98
- FIX_CONTEXT:
99
- review_feedback: structured findings from reviewer (file, line, severity, message)
100
- original_task_ids: the tasks that introduced the findings (array)
101
- iteration: fix iteration number, 1..3 — the same repair bound as 5.4
102
- ```
103
-
104
- **1.4 Validate the request against the contract:**
105
-
106
- Write the request you were handed to a file and run:
107
-
108
- ```bash
109
- keryx skills contracts validate <request.json> --schema task-implementer-input
110
- ```
111
-
112
- Non-zero exit means the dispatch is malformed — ABORT and report `NEEDS_CONTEXT`
113
- with the validator's own message. Do not repair the request yourself; the
114
- orchestrator owns it.
115
-
116
- The refusals are the contract's, not a checklist you run by eye
117
- (`input-contract.schema.json`, registered in `src/gdskills/contracts.ts`):
118
-
119
- | What is refused | Where the schema says so |
120
- |---|---|
121
- | Missing `task_id` / `task_name` / `task_type` / `description` / `target_files` / `acceptance_criteria` | `task.required` |
122
- | `task_type` outside `ui_component\|store_logic\|service_api\|refactoring\|fix\|mixed` | `task.task_type.enum` |
123
- | A `task_id` that is not `task-<n>` | `task.task_id.pattern` |
124
- | Empty `target_files` or empty `acceptance_criteria` | `minItems: 1` on both |
125
- | Missing `codebase_path` / `branch` | `workspace.required` |
126
- | `skip_confirmation` anything but `true` | `automation.skip_confirmation.const` |
127
- | `max_self_fix_attempts` above 3 | `automation.max_self_fix_attempts.maximum` |
128
- | Any field the contract does not declare | `additionalProperties: false` |
129
-
130
- The list above is a reading aid. The schema is the authority, and if the two
131
- disagree the schema wins.
132
-
133
- Two things a schema cannot check, because they are facts about the machine
134
- rather than about the payload. Check them yourself and ABORT with
135
- `STATUS: NEEDS_CONTEXT` on either:
136
-
137
- ```bash
138
- test -d "<codebase_path>" # otherwise: codebase path not found
139
- git -C "<codebase_path>" rev-parse --abbrev-ref HEAD # must equal <branch>
140
- ```
141
-
142
- **1.5 TDD Check (if `test_case_specs` is present):**
143
-
144
- If the task object contains `test_case_specs` (provided by `tests-creator`):
145
- 1. Read each test file listed in `test_case_specs.test_files`
146
- 2. Run the tests using `test_case_specs.run_command` — confirm they FAIL
147
- 3. If tests pass already → report `DONE_WITH_CONCERNS` (tests may not be testing the right thing)
148
- 4. Note: **implementation goal is to make these tests GREEN** — do not rewrite or delete them
149
-
150
- If `test_case_specs` is absent:
151
- - The task was not pre-processed by `tests-creator`
152
- - Write tests as part of Phase 4 (standard mode) following `tdd-workflow.mdc`
153
-
154
- ### Phase 2: RESEARCH
155
-
156
- Deep-read the target files and surrounding module to understand patterns.
157
-
158
- **2.0 Read job context (if available):**
159
-
160
- If the orchestrator provided `JOB_NAME` and `CONTEXT_PATH`:
161
- - Read `CONTEXT_PATH` (e.g., `<JOBS_ROOT>/<job-name>/ai/context.md`)
162
- - Extract relevant sections: library docs, codebase patterns, conventions, best practices
163
- - Use this context throughout Phase 2-4 to guide implementation decisions
164
- - If the file does not exist, proceed without it — context is optional
165
-
166
- **2.0b Verify the project-skill covering the target (see `rules/core/skill-lifecycle.mdc`):**
167
-
168
- Before you rely on a project-skill's guidance, confirm it still matches the code:
169
- - `keryx skills route <target_file>` — find the project-skill for this module/entity (if any).
170
- - If one exists: `keryx skills verify <module>/<skill>` — classifies it `fresh | stale | needs-review | blocked`.
171
- - If it is **not `fresh`**: do not follow it blindly. Verify each claim against the code you read in Phase 2, and note the drift in `notes` (Phase 6.1) so the orchestrator can trigger `skills learn`.
172
- - If no skill exists for a non-trivial module you had to reverse-engineer, note that too — it's a candidate for `skills create`.
173
-
174
- This step is read-only and inline; do not spawn a subagent for it.
175
-
176
- **2.1 Read all target files:**
177
- - Read each file from `target_files` in full
178
- - If a file does not exist yet, note it as "new file to create"
179
- - Read the `context` field for additional type/signature info
180
-
181
- **2.2 Read existing tests and stories:**
182
- - `existing_tests` and `existing_stories` are arrays and default to `[]`
183
- (`input-contract.schema.json`). Empty means none; the string `"none"` is not a
184
- legal value and a request carrying it is refused by 1.4
185
- - Read each file listed in either array
186
- - Understand existing test patterns (describe/it structure, mocks, fixtures)
187
-
188
- **2.3 Read module neighbors:**
189
- - List sibling files in the same directory as each target file
190
- - Read 2-3 similar files to understand module patterns (naming, exports, structure)
191
- - Pay attention to:
192
- - Import aliases used (e.g., `@components`, `@utils`)
193
- - Export patterns (named vs default)
194
- - TypeScript patterns (interfaces vs types, generics usage)
195
- - Component patterns (observer wrapping, props interface naming)
196
- - Store patterns (makeObservable(this), explicit decorators, private fields before public fields, thin public @action.bound UI actions, non-mutating public helpers, private API methods, runInAction inside private mutation blocks after await)
197
-
198
- **2.4 Load relevant rules (from `module_patterns` or by detection):**
199
-
200
- Based on what you're implementing, load and follow the relevant project rules.
201
-
202
- **Always load (all task types):**
203
- - `tdd-workflow.mdc` — red-green-refactor, STATUS: DONE requires passing tests
204
- - `error-handling.mdc` — Result pattern, no silent failures
205
- - `solid-principles.mdc` — SRP, OCP, DIP (load for any task that creates new classes/services)
206
-
207
- **Load by task type:**
208
-
209
- | Task Type | Additional Rules |
210
- |-----------|---------------|
211
- | `ui_component` | `code-style-patterns.mdc`, `frontend-assistant.mdc`, `storybook-guidelines.mdc` |
212
- | `store_logic` | `code-style-patterns.mdc`, `mobx-store-template.mdc` |
213
- | `service_api` | `code-style-patterns.mdc`, `nestjs-dto.mdc`, `api-contracts.mdc` |
214
- | `fix` | Rules based on the files being fixed; always `error-handling.mdc` |
215
- | `mixed` | All applicable rules above |
216
-
217
- **Load when detected:**
218
- - Database/ORM files touched → `database-patterns.mdc`
219
- - Auth, API keys, user input → `security-baseline.mdc`
220
- - `async`/`await` or queue code → `async-patterns.mdc`
221
- - New architectural layers or modules → `clean-architecture.mdc`
222
-
223
- Rules live at `.metaproject/rules/core/<rule>.mdc` on every harness — that is the
224
- one tree `keryx init` installs and the one every build of this skill reads.
225
- Cursor additionally mirrors them under `.cursor/rules/core/<rule>.mdc`; when both
226
- are present they are copies of the same file, so read either.
227
-
228
- **Output of Phase 2:** Mental model of the implementation:
229
- ```
230
- RESEARCH_SUMMARY:
231
- target_files_status: [{path, exists: bool, line_count, key_exports}]
232
- test_pattern: <describe structure, assertion style>
233
- story_pattern: <Meta/StoryObj, args pattern>
234
- module_conventions: <naming, imports, exports, TS patterns>
235
- relevant_rules_loaded: [<rule names>]
236
- ```
237
-
238
- ### Phase 3: PLAN
239
-
240
- Decide the implementation approach. Self-validate — no orchestrator approval needed.
241
-
242
- **3.1 Create change plan:**
243
-
244
- For each file to modify or create, plan:
245
- ```
246
- CHANGE_PLAN:
247
- - file: <path>
248
- action: create | modify | delete
249
- changes:
250
- - <description of what to add/change/remove>
251
- - <description of types/interfaces needed>
252
- rationale: <why this change is needed>
253
- ```
254
-
255
- **3.2 Determine required outputs based on task_type:**
256
-
257
- | Task Type | Code | Unit Test | Story | Screenshot Test |
258
- |-----------|------|-----------|-------|-----------------|
259
- | `ui_component` | Yes | Optional | Yes | Yes (if visual) |
260
- | `store_logic` | Yes | Yes | No | No |
261
- | `service_api` | Yes | Yes | No | No |
262
- | `refactoring` | Yes | Verify existing pass | No | No |
263
- | `fix` | Yes | Regression test | No | No |
264
- | `mixed` | Yes | Per layer | Per UI component | Per visual change |
265
-
266
- **3.3 Self-validation checklist:**
267
- - [ ] All acceptance criteria are addressable with this plan
268
- - [ ] No files outside the task's scope are being modified
269
- - [ ] Changes follow the 3-layer architecture (Service → Store → Component)
270
- - [ ] TypeScript types are planned (no `any`, proper interfaces)
271
- - [ ] Imports use project path aliases
272
- - [ ] Plan is consistent with `module_patterns`
273
-
274
- ### Phase 4: IMPLEMENT
275
-
276
- Execute the change plan. Write production-quality code.
277
-
278
- **4.0 TDD Mode Selection:**
279
-
280
- - **TDD Mode** (when `test_case_specs` is present): tests already exist and are RED. Skip to writing implementation code that makes them GREEN. Do NOT write new tests — only write code that satisfies the existing stubs.
281
- - **Standard Mode** (no `test_case_specs`): write tests first (per `tdd-workflow.mdc`), then implementation.
282
-
283
- **4.1 Implementation order (Standard Mode):**
284
- 1. Types and interfaces first (shared types, DTOs)
285
- 2. Write failing tests for each acceptance criterion (RED)
286
- 3. Service/API layer implementation (make service tests GREEN)
287
- 4. Store/logic layer implementation (make store tests GREEN)
288
- 5. Component/UI layer implementation (make component tests GREEN)
289
- 6. Stories (if needed)
290
-
291
- **4.1 Implementation order (TDD Mode — test_case_specs provided):**
292
- 1. Read all test stubs from `test_case_specs.test_files`
293
- 2. Understand the expected API shape from test assertions
294
- 3. Implement types/interfaces to satisfy test imports
295
- 4. Implement code layer by layer until all tests are GREEN
296
- 5. Stories (if needed)
297
-
298
- **4.2 Code standards (always follow):**
299
- - TypeScript strict mode — no `any`, no `as` casts unless justified
300
- - Use project path aliases for imports (`@components/...`, `@utils/...`)
301
- - React components: `observer()` wrapping for MobX, named function components
302
- - MobX stores: `makeObservable(this)` in constructor with explicit decorators, member order `private fields → public fields → constructor → public methods → private methods`, thin public `@action.bound` UI methods, non-mutating public helpers without actions, private API/IO methods, and `runInAction()` in private mutation blocks after every `await`
303
- - Naming: PascalCase for components/types, camelCase for functions/variables, kebab-case for files
304
- - Follow existing module patterns discovered in Phase 2
305
-
306
- **4.3 Test standards:**
307
- - Unit tests: Vitest with `describe`/`it`, `@testing-library/react` for components
308
- - Use `data-testid` for test selectors
309
- - Follow AAA pattern (Arrange, Act, Assert)
310
- - Mock external dependencies, not internal module logic
311
-
312
- **4.4 Story standards:**
313
- - `Meta` + `StoryObj` pattern
314
- - `args`-based variants
315
- - `fn()` for action callbacks
316
- - Cover: default state, edge cases, error states
317
-
318
- **4.5 Commit after implementation:**
319
-
320
- When auto-commit is enabled, create a conventional commit with the changes. Include the `refs #<issue_number>` line below only when a positive real issue number was supplied; otherwise omit that entire line:
321
- ```bash
322
- git add <modified files>
323
- git commit -m "<type>(<scope>): <description>
324
-
325
- refs #<issue_number>
326
- task: <task_id>"
327
- ```
328
-
329
- Commit type mapping:
330
- | Task Type | Commit Type |
331
- |-----------|-------------|
332
- | `ui_component` | `feat` |
333
- | `store_logic` | `feat` |
334
- | `service_api` | `feat` |
335
- | `refactoring` | `refactor` |
336
- | `fix` | `fix` |
337
- | `mixed` | `feat` (or `fix` if bug-related) |
338
-
339
- ### Phase 5: VERIFY
340
-
341
- Run verification checks appropriate to the task type.
342
-
343
- **5.1 Always run:**
344
-
345
- ```bash
346
- keryx health run --changed --source eslint,typescript
347
- ```
348
-
349
- Lint and type-check in one call, over the changed files only. Do NOT hard-code a
350
- package manager and a script name: the project may not be an npm project, and
351
- `src/health/sources/eslint.ts` and `src/health/sources/typescript.ts` resolve the
352
- real invocation. The run writes a normalized report; `keryx health status` prints
353
- it.
354
-
355
- **5.2 Run if tests exist:**
356
-
357
- ```bash
358
- keryx test run --changed --strict
359
- ```
360
-
361
- `src/testing/service.ts:780` detects `bun` / `pnpm` / `yarn` / `npm` from the
362
- lockfile and builds the argv from the project's own test script — the
363
- if-chain you would otherwise write in shell, already written. `--strict` makes a
364
- non-zero exit the signal; if tests were created or modified they must pass.
365
-
366
- **5.3 Run if stories were created (optional, only if the script exists):**
367
- ```bash
368
- <pm> run build-storybook # <pm> is the package manager keryx test run detected
369
- ```
370
-
371
- **5.4 Handle failures:**
372
-
373
- | Failure | Action |
374
- |---------|--------|
375
- | Lint errors | Fix them in code, re-run `keryx health run --changed` |
376
- | Type errors | Fix the type errors in code, re-commit |
377
- | Test failures | Fix failing tests, re-commit |
378
- | Story build failure | Fix story code, re-commit |
379
-
380
- Maximum 3 self-fix attempts per verification step.
381
-
382
- Three, and it is the same three `job-orchestrator` and `flow-orchestrator`
383
- use: one round bound, not four. *"The first three to four repair iterations
384
- account for most achievable gains"*
385
- ([arXiv:2607.05197](https://arxiv.org/abs/2607.05197)); correctness falls
386
- **0.820 -> 0.673** across two forced revisions while cumulative ever-correct is
387
- **0.847** ([arXiv:2607.24604](https://arxiv.org/abs/2607.24604)) — the agent
388
- finds the fix and then destroys it. Aider hardcodes `max_reflections = 3`;
389
- OpenHands' critic uses 3.
390
-
391
- **Stop earlier on repetition, whatever the count says.** If an attempt produces
392
- the same failure output as the previous attempt — the same failing test with the
393
- same message, the same type error at the same site — do NOT spend the remaining
394
- attempts. The counter cannot tell "converging slowly" from "stuck", and three
395
- identical outputs cost the whole budget to learn what the second one already
396
- said. Report the block instead, naming what repeated.
397
-
398
-
399
- **ROLLBACK POLICY**: If implementation fatally fails (tests still failing after 3 attempts, or unresolvable compilation errors), restore ONLY the files this task changed — `git checkout -- <your files>` for tracked ones, delete the untracked ones you created — then report the failure in Phase 6.
400
-
401
- **Never run `git reset --hard`, `git clean`, or any unscoped revert.** You do not own the worktree. `job-orchestrator` dispatches implementers in PARALLEL WAVES sharing a single worktree, so an unscoped reset destroys a wave-mate's uncommitted work — work that is not yours, cannot be recovered, and whose loss is invisible to you because the other agent's failure surfaces somewhere else entirely. If you cannot identify which files are yours, leave the tree exactly as it is and say so in the report: a dirty tree is recoverable, a destroyed one is not.
402
-
403
- **5.5 Re-commit fixes if any:**
404
- When auto-commit is enabled, use the template below. Include `refs #<issue_number>` only for a supplied positive real issue number; otherwise omit that entire line.
405
- ```bash
406
- git add <fixed files>
407
- git commit -m "fix(<scope>): resolve lint/type/test issues
408
-
409
- refs #<issue_number>
410
- task: <task_id>"
411
- ```
412
-
413
- ### Phase 6: REPORT
414
-
415
- Write the full result to a file, then emit a compact STATUS response to the orchestrator.
416
-
417
- **6.1 Write result file (when `JOB_NAME` is provided):**
418
-
419
- If the orchestrator provided `JOB_NAME` in the workspace context:
420
- ```bash
421
- mkdir -p <JOBS_ROOT>/<JOB_NAME>/results
422
- ```
423
- Write full JSON to `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`:
424
- ```json
425
- {
426
- "task_id": "<task_id>",
427
- "task_name": "<task_name>",
428
- "task_type": "<task_type>",
429
- "status": "<success|partial|failed>",
430
- "description": "<what was implemented>",
431
- "files_modified": ["src/path/file.ts"],
432
- "files_created": ["src/path/newfile.ts"],
433
- "files_deleted": [],
434
- "commits": ["abc1234", "def5678"],
435
- "lint_result": "<pass|N errors: details>",
436
- "type_check_result": "<pass|N errors: details>",
437
- "test_result": "<pass|N passed, M failed: details|skipped>",
438
- "story_result": "<pass|build error: details|not applicable>",
439
- "acceptance_criteria_met": "<all|partial: list of unmet criteria|none>",
440
- "skill_drift": "<none | stale: <module>/<skill> — <what diverged> | missing: <module> should have a project-skill>",
441
- "notes": "<any warnings, blockers, or additional context>"
442
- }
443
- ```
444
-
445
- Set `skill_drift` from Phase 2.0b: if the project-skill you used was not `fresh`, or the code you wrote diverged from what a skill documents, name the skill and the divergence. The orchestrator uses this to decide whether to trigger `skills learn` (do NOT run `learn` yourself — it is a mutating step the orchestrator dispatches; see `rules/core/skill-lifecycle.mdc`).
446
-
447
- Then check the shape and record the file — two commands, both of which refuse
448
- rather than warn:
449
-
450
- ```bash
451
- keryx skills contracts validate <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json \
452
- --schema task-implementer-output
453
- keryx job document <JOB_NAME> --type implementation-report \
454
- --file <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json
455
- ```
456
-
457
- - `contracts validate` exits non-zero on a missing required field, a `status`
458
- outside `success|partial|failed`, a `task_id` that is not `task-<n>`, or any
459
- key the contract does not declare (`additionalProperties: false`). Fix the
460
- result and re-run; do not report a result the contract rejects.
461
- - `job document` **refuses when the file does not exist** — "`--file` not found:
462
- … Write the document first, then record it" (`src/job/service.ts`) — and
463
- refuses a `--type` outside `analysis|implementation-report|review|verification-report`
464
- and a job name no package matches. On success it copies the result into the
465
- job package and appends it to `documentation.documents_created` in
466
- `state.json`, which is what makes "the result was recorded" a fact
467
- `keryx job status <JOB_NAME> --json` can be asked about instead of a sentence
468
- in this file.
469
-
470
- One caveat, stated because it is real: the package holds ONE
471
- `implementation-report.json` per job, so a later task in the same wave replaces
472
- it. The per-task files under `results/` are the complete set; the recorded
473
- document is the most recent.
474
-
475
- If `JOB_NAME` is not provided, skip the file write and both commands — there is
476
- no job package to record against.
477
-
478
- The step's own status is the orchestrator's to write (`keryx job step <JOB_NAME>
479
- <step-id> --status …`). Do not write it yourself: `src/job/plans.ts` makes
480
- `implement` ONE step for a whole wave, so a single task cannot close it, and
481
- `keryx job complete` refuses while any step is still open.
482
-
483
- **6.2 Emit compact STATUS response:**
484
-
485
- Return a compact STATUS response following `rules/core/subagent-status-protocol.md`.
486
- **Do NOT include the full JSON block inline** — the orchestrator reads the result file when it needs details.
487
- The inline response must contain only: STATUS line + Completed bullets + Files changed + Verification summary.
488
-
489
- **Status classification:**
490
- - `success` → `STATUS: DONE`
491
- - `partial` → `STATUS: DONE_WITH_CONCERNS`
492
- - `failed` → `STATUS: BLOCKED`
493
-
494
- ---
495
-
496
- ## Automation Settings
497
-
498
- This skill is designed to run fully autonomously. The settings, their types,
499
- their defaults and their bounds are declared in one place —
500
- `input-contract.schema.json`, the `automation` object — and are checked by the
501
- validation in Phase 1.4. To see them:
502
-
503
- ```bash
504
- keryx skills contracts list # names task-implementer-input and its file
505
- ```
506
-
507
- They are deliberately not restated here. The table that used to sit in this spot
508
- said `max_self_fix_attempts: 1-5` while Phase 5.4 says the maximum is 3, and a
509
- second copy of a schema is how that happens.
510
-
511
- ---
512
-
513
- ## Error Handling
514
-
515
- | Error | Action |
516
- |-------|--------|
517
- | Target file not found (expected to exist) | ABORT with error — dependency task may not have run |
518
- | Branch mismatch | ABORT — orchestrator must fix branch |
519
- | Lint fails after max attempts | Report as `partial`, include error details |
520
- | Type-check fails after max attempts | Report as `partial`, include error details |
521
- | Tests fail after max attempts | Report as `partial`, include failing test details |
522
- | Git commit fails (pre-commit hook) | Fix lint-staged issues, retry commit |
523
- | Acceptance criteria unclear | Implement best interpretation, note in report |
524
-
525
- ---
526
-
527
- ## Rules of Engagement
528
-
529
- 1. **DO NOT** ask the user any questions. All input comes from the task Scenario and workspace context.
530
- 2. **DO NOT** modify files outside the task's target scope unless absolutely necessary (e.g., shared type file).
531
- 3. **DO** follow the project's existing code patterns discovered in Phase 2.
532
- 4. **DO** write TypeScript-strict code — no `any`, no untyped functions.
533
- 5. **DO** use project path aliases (`@components`, `@utils`, etc.) for imports.
534
- 6. **DO** wrap React components with `observer()` when they access MobX stores.
535
- 7. **DO** use `runInAction()` after every `await` in MobX actions.
536
- 8. **DO** use conventional commit format when auto-commit is enabled. Reference only a supplied real issue number; omit the issue reference when absent.
537
- 9. **DO** verify your work before reporting.
538
- 10. **DO** make `STATUS: <TOKEN>` the first line of your final message, and put no
539
- JSON in the response body. The full JSON result is the file Phase 6.1 writes
540
- and records. `parseChildResult` throws on any first line that is not a
541
- canonical STATUS token.
542
-
543
- ---
544
-
545
- ## Red Flags — Stop and re-read this skill if you are thinking:
546
-
547
- | Rationalization | Why it's wrong |
548
- |---|---|
549
- | "I'll implement first and verify acceptance criteria later" | Implementing without criteria means you might build the wrong thing correctly |
550
- | "This is a small change, I don't need to read the context document" | Context documents exist because the task description alone is incomplete by design |
551
- | "The task description is clear, I don't need to read related files first" | Module patterns and conventions only emerge from reading the actual files, not the description |
552
- | "I'll report DONE and note the skipped tests as a concern" | Skipped verification is a failed verification — partial is not done |
553
- | "I understand how this module works from previous tasks" | Each task targets a specific slice; read the files fresh to catch state that has changed |
554
-
555
- **IRON LAW: READ ALL SPECIFIED FILES AND THE CONTEXT DOCUMENT BEFORE WRITING A SINGLE LINE OF CODE.**
556
-
557
- ---
558
-
559
- ## Reporting Results
560
-
561
- **Rule:** `rules/core/subagent-status-protocol.md`
562
-
563
- Every final response to the orchestrator MUST begin with `STATUS: <STATUS>`. The full JSON result object is written to a file in Phase 6.1 — the inline response contains only the compact STATUS format. No JSON in the response body.
564
-
565
- ### Iron Law
566
-
567
- **STATUS LINE IS MANDATORY — ORCHESTRATOR CANNOT INTERPRET FREE TEXT**
568
-
569
- ### When to use each status
570
-
571
- | Status | Use when |
572
- |--------|----------|
573
- | `DONE` | All acceptance criteria met, all verifications pass (or pass after self-fix) |
574
- | `DONE_WITH_CONCERNS` | Task complete but: criteria required interpretation, workaround was used, unexpected discovery, verification passed with warnings |
575
- | `BLOCKED` | Unresolvable blocker: required file missing after checking, unresolvable type errors after 3 attempts, branch conflict needing orchestrator action |
576
- | `NEEDS_CONTEXT` | Task input is incomplete: `target_files` empty, `acceptance_criteria` uses undefined terms, `context` field missing required types |
577
-
578
- ### Correct final response format
579
-
580
- ```
581
- STATUS: DONE
582
-
583
- ## Completed
584
- - Added validation logic to PipelineStep component
585
- - Created unit tests covering all 4 acceptance criteria
586
- - Committed 2 conventional commits
587
-
588
- ## Files changed
589
- - src/components/PipelineStep.tsx — added validateStep() method
590
- - src/components/PipelineStep.test.tsx — new test file, 14 tests
591
-
592
- ## Verification
593
- - lint: pass
594
- - type-check: pass
595
- - tests: 14 passed, 0 failed
596
-
597
- Result file: <JOBS_ROOT>/<job-name>/results/task-1.json
598
- ```
599
-
600
- For `DONE_WITH_CONCERNS`:
601
-
602
- ```
603
- STATUS: DONE_WITH_CONCERNS
604
-
605
- ## Completed
606
- - Implemented feature as described
607
-
608
- ## Files changed
609
- - src/services/auth.ts — updated token refresh logic
610
-
611
- ## Verification
612
- - lint: pass
613
- - type-check: pass
614
- - tests: 8 passed, 0 failed
615
-
616
- ## Concerns for orchestrator
617
- - The acceptance criterion "support legacy tokens" was ambiguous — implemented support for both v1 and v2 token formats. If only v2 is needed, the v1 branch can be removed.
618
-
619
- Result file: <JOBS_ROOT>/<job-name>/results/task-2.json
620
- ```
621
-
622
- For `BLOCKED`:
623
-
624
- ```
625
- STATUS: BLOCKED
626
-
627
- ## Reason
628
- src/types/pipeline.ts does not exist and is listed as a dependency. Cannot implement the store layer without the type definitions.
629
-
630
- ## What I need from orchestrator
631
- Run task-1 (which creates pipeline.ts) before re-dispatching this task, or provide the type definitions directly.
632
-
633
- ## Work completed so far
634
- - (nothing — blocked before implementation could start)
635
- ```
636
-
637
- See `rules/core/subagent-status-protocol.md` for the full format specification. Four statuses are yours as a skill worker; the fifth, `FAILED`, belongs to harness child workers and you must never emit it — report `BLOCKED` instead.
638
-
639
- ---
640
-
641
- ## Job Context Awareness
642
-
643
- When dispatched by `job-orchestrator`, the prompt MAY include:
644
-
645
- ```
646
- JOB_NAME: <job-name>
647
- CONTEXT_PATH: <JOBS_ROOT>/<job-name>/ai/context.md
648
- ```
649
-
650
- If provided, read the context document at the start of Phase 2 (RESEARCH) before reading target files. The context document contains:
651
- - Library documentation and API references relevant to the task
652
- - Codebase patterns and conventions discovered during analysis
653
- - Best practices for the specific libraries and frameworks in use
654
-
655
- Use this context to:
656
- - Follow established patterns and conventions
657
- - Use correct API signatures for libraries
658
- - Avoid anti-patterns documented in the context
659
- - Make implementation decisions consistent with the project style