@mrciphersmith/keryx 0.2.72 → 0.2.74

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 (144) hide show
  1. package/dist/cli.js +33409 -32626
  2. package/package.json +2 -2
  3. package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +1 -1
  4. package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +1 -1
  5. package/src/gdskills/bundled/rules/core/subagent-context-construction.md +1 -1
  6. package/src/gdskills/bundled/skills/core/reviewer-skill-creator/SKILL.md +214 -0
  7. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +326 -20
  8. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +320 -22
  9. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +326 -12
  10. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +333 -9
  11. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +92 -4
  12. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +92 -4
  13. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +92 -4
  14. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +92 -4
  15. package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +1 -1
  16. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +154 -1098
  17. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +154 -1098
  18. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +154 -1098
  19. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +154 -1098
  20. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +1 -1
  21. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +101 -41
  22. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +101 -41
  23. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +48 -1
  24. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/input-contract.schema.json +70 -4
  25. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +115 -49
  26. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +115 -49
  27. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +115 -49
  28. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +115 -49
  29. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
  30. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +15 -6
  31. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +15 -6
  32. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +15 -6
  33. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +15 -6
  34. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +1 -1
  35. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +1 -1
  36. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +1 -1
  37. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +1 -1
  38. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +1 -1
  39. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +300 -55
  40. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +300 -55
  41. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +120 -37
  42. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +300 -55
  43. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +300 -55
  44. package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +56 -14
  45. package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +50 -23
  46. package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +6 -2
  47. package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +18 -12
  48. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
  49. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
  50. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +169 -10
  51. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +169 -10
  52. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +1 -1
  53. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +7 -1
  54. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +7 -1
  55. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +7 -1
  56. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +7 -1
  57. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +216 -10
  58. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +216 -10
  59. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +1 -1
  60. package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +169 -10
  61. package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +169 -10
  62. package/src/gdskills/bundled/skills/planning/planner/SKILL.md +1 -1
  63. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +2 -2
  64. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +2 -2
  65. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +2 -2
  66. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +2 -2
  67. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +134 -10
  68. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +134 -10
  69. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +1 -1
  70. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +146 -10
  71. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +146 -10
  72. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +1 -1
  73. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +211 -10
  74. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +211 -10
  75. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +1 -1
  76. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +162 -10
  77. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +162 -10
  78. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +1 -1
  79. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +1 -1
  80. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +1 -1
  81. package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +1 -1
  82. package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +1 -1
  83. package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +1 -1
  84. package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +1 -1
  85. package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +1 -1
  86. package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +1 -1
  87. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +1 -1
  88. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +1 -1
  89. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +1 -1
  90. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +1 -1
  91. package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +1 -1
  92. package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +1 -1
  93. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +1 -1
  94. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +1 -1
  95. package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +1 -1
  96. package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +1 -1
  97. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +15 -1
  98. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +248 -165
  99. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +15 -1
  100. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +359 -19
  101. package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +1 -1
  102. package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +1 -1
  103. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +1 -1
  104. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +1 -1
  105. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +1 -1
  106. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +1 -1
  107. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +299 -24
  108. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +296 -31
  109. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +309 -18
  110. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +312 -17
  111. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +29 -30
  112. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +29 -30
  113. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +29 -30
  114. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +29 -30
  115. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +21 -30
  116. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +21 -30
  117. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +21 -30
  118. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +21 -30
  119. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +19 -23
  120. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +19 -23
  121. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +19 -23
  122. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +19 -23
  123. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +17 -24
  124. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +17 -24
  125. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +17 -24
  126. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +17 -24
  127. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +33 -1
  128. package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +217 -0
  129. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +26 -0
  130. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +320 -5
  131. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +644 -113
  132. package/src/gdskills/bundled/skills/review/review-pr-feedback/input-contract.schema.json +79 -0
  133. package/src/gdskills/bundled/skills/review/review-pr-feedback/output-contract.schema.json +375 -0
  134. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +111 -1
  135. package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +25 -1
  136. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +0 -46
  137. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +0 -94
  138. package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +0 -45
  139. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +0 -40
  140. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +0 -45
  141. package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +0 -42
  142. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +0 -48
  143. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +0 -40
  144. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +0 -30
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: context-collector
3
- description: "Collects, summarizes, and maintains a unified context document for a job. Gathers relevant local documentation (docs/, jobs/, rules), identifies libraries/patterns/references, fetches external documentation via web, extracts best practices, and produces a single context document that all sub-agents can reference during the job lifecycle. Can be invoked by job-orchestrator or directly by user."
3
+ description: "Use when a job needs a unified context document — gathering docs, libraries, and references for sub-agents before execution."
4
4
  triggers:
5
5
  - "Collect context"
6
6
  - "Build context"
@@ -11,12 +11,19 @@ triggers:
11
11
  - "Research context"
12
12
  metadata:
13
13
  author: "MrCipherSmith"
14
- version: "1.0.0"
14
+ version: "1.1.0"
15
15
  category: "context"
16
+ agent_worthy: true
16
17
  compatible_harnesses: "cursor,codex,zed,opencode"
17
18
  license: "MIT"
18
19
  ---
19
20
 
21
+ <SUBAGENT-STOP>
22
+ If you were dispatched as a subagent to execute a specific task, skip this skill entirely.
23
+ This skill is for orchestrators and interactive session-level routing only.
24
+ Proceed directly with your assigned task.
25
+ </SUBAGENT-STOP>
26
+
20
27
  # Context Collector
21
28
 
22
29
  ## Purpose
@@ -163,9 +170,15 @@ Scan local sources for relevant context. Be selective — only include what is d
163
170
  |------------|---------------|
164
171
  | React components | code-style-patterns.mdc, frontend-assistant.mdc, storybook-guidelines.mdc |
165
172
  | MobX stores | code-style-patterns.mdc, mobx-store-template.mdc |
166
- | API / DTOs | nestjs-dto.mdc, code-style-patterns.mdc |
167
- | Testing | playwright-testing.mdc, storybook-guidelines.mdc |
173
+ | API / DTOs | nestjs-dto.mdc, code-style-patterns.mdc, api-contracts.mdc |
174
+ | Testing | playwright-testing.mdc, storybook-guidelines.mdc, tdd-workflow.mdc |
168
175
  | General code | code-style-patterns.mdc, frontend-assistant.mdc |
176
+ | TDD / test-first | tdd-workflow.mdc |
177
+ | Architecture / layers | clean-architecture.mdc, solid-principles.mdc |
178
+ | Error handling | error-handling.mdc |
179
+ | Database / ORM | database-patterns.mdc |
180
+ | Security | security-baseline.mdc |
181
+ | Async code | async-patterns.mdc |
169
182
 
170
183
  2. Read each applicable rule
171
184
  3. Extract: specific conventions, required patterns, prohibited practices
@@ -189,6 +202,61 @@ Scan local sources for relevant context. Be selective — only include what is d
189
202
  - Key patterns to follow for consistency
190
203
  ```
191
204
 
205
+ ### 2.5 Test Framework Detection (`PROJECT_DIR`)
206
+
207
+ Always detect the test framework — `tests-creator` and `task-implementer` both need this.
208
+
209
+ ```
210
+ 1. Read package.json:
211
+ - Check "dependencies" and "devDependencies" for:
212
+ vitest, jest, @jest/*, mocha, jasmine, bun:test, pytest, go test
213
+
214
+ 2. Check for config files:
215
+ - vitest.config.ts / vitest.config.js
216
+ - jest.config.ts / jest.config.js
217
+ - .mocharc.* / mocha.opts
218
+
219
+ 3. Read 2-3 existing test files (*.test.ts, *.spec.ts, test_*.py):
220
+ - Import style (global vs explicit import)
221
+ - Describe/it/test nesting depth
222
+ - Assertion style (expect().toBe vs assert.equal)
223
+ - Mock library (vi.fn / jest.fn / sinon)
224
+ - Fixture patterns (factories, builders, inline data)
225
+ - Test file location convention (co-located vs __tests__/)
226
+
227
+ 4. Summarize as "Test Framework Context":
228
+ framework: <vitest|jest|bun:test|mocha|pytest>
229
+ import_style: esm | cjs | global
230
+ file_pattern: "*.test.ts" | "*.spec.ts"
231
+ file_location: co-located | __tests__ | tests/
232
+ mock_library: vi | jest | sinon
233
+ run_command: "bun test" | "npx vitest run" | "npm test"
234
+ example_test_file: <path to a representative test>
235
+ ```
236
+
237
+ ### 2.6 Greptile Codebase Context (when available)
238
+
239
+ Greptile indexes the full repository and stores codebase-level context. If Greptile MCP is available in the session, query it as an additional local source — it can surface cross-file patterns that a manual scan would miss.
240
+
241
+ ```
242
+ 1. Try fetching stored custom context:
243
+ mcp__greptile__get_custom_context({})
244
+ or
245
+ mcp__greptile__search_custom_context({ query: "<task_description>" })
246
+
247
+ 2. If Greptile context is returned:
248
+ - Extract: documented patterns, known exceptions, team conventions
249
+ - Note: "Source: Greptile codebase index"
250
+
251
+ 3. Check for relevant past review comments (signals about recurring issues):
252
+ mcp__greptile__search_greptile_comments({ query: "<focus_area>", limit: 5 })
253
+ - Extract recurring findings → add to "Known Issues / Watch Areas" section
254
+
255
+ 4. If Greptile MCP is not available or returns empty: skip silently, proceed normally.
256
+ ```
257
+
258
+ Greptile context is additive — it supplements local context, never replaces it.
259
+
192
260
  **Output of Phase 2:**
193
261
  ```
194
262
  LOCAL_CONTEXT:
@@ -196,6 +264,8 @@ LOCAL_CONTEXT:
196
264
  related_jobs: [{job_name, relevance, key_findings}]
197
265
  applicable_rules: [{rule, key_conventions: [string]}]
198
266
  codebase_patterns: [{area, patterns: [string], example_files: [path]}]
267
+ test_framework: {framework, import_style, file_pattern, file_location, mock_library, run_command, example_test_file}
268
+ greptile_context: {available: bool, patterns: [string], known_issues: [string]}
199
269
  ```
200
270
 
201
271
  ---
@@ -445,6 +515,24 @@ If no JOB_NAME is provided:
445
515
  - Write context to `<DOCS_ROOT>/context/<descriptive-slug>.md`
446
516
  - Include full metadata block
447
517
 
518
+ ## Reporting Results
519
+
520
+ Every final response to the orchestrator MUST begin with the status line:
521
+
522
+ ```
523
+ STATUS: DONE
524
+
525
+ ## Context collected
526
+ [summary of what was gathered]
527
+
528
+ ## CONTEXT_RESULT
529
+ [the full result block]
530
+ ```
531
+
532
+ Use `STATUS: DONE_WITH_CONCERNS` if context is partial. Use `STATUS: BLOCKED` if access fails.
533
+
534
+ **IRON LAW: THE FIRST LINE OF YOUR FINAL RESPONSE IS ALWAYS "STATUS: <STATUS>". THE CONTEXT_RESULT BLOCK FOLLOWS AFTER.**
535
+
448
536
  ### 5.3 Return Result
449
537
 
450
538
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: context-collector
3
- description: "Collects, summarizes, and maintains a unified context document for a job. Gathers relevant local documentation (docs/, jobs/, rules), identifies libraries/patterns/references, fetches external documentation via web, extracts best practices, and produces a single context document that all sub-agents can reference during the job lifecycle. Can be invoked by job-orchestrator or directly by user."
3
+ description: "Use when a job needs a unified context document — gathering docs, libraries, and references for sub-agents before execution."
4
4
  triggers:
5
5
  - "Collect context"
6
6
  - "Build context"
@@ -11,12 +11,19 @@ triggers:
11
11
  - "Research context"
12
12
  metadata:
13
13
  author: "MrCipherSmith"
14
- version: "1.0.0"
14
+ version: "1.1.0"
15
15
  category: "context"
16
+ agent_worthy: true
16
17
  compatible_harnesses: "cursor,codex,zed,opencode"
17
18
  license: "MIT"
18
19
  ---
19
20
 
21
+ <SUBAGENT-STOP>
22
+ If you were dispatched as a subagent to execute a specific task, skip this skill entirely.
23
+ This skill is for orchestrators and interactive session-level routing only.
24
+ Proceed directly with your assigned task.
25
+ </SUBAGENT-STOP>
26
+
20
27
  # Context Collector
21
28
 
22
29
  ## Purpose
@@ -163,9 +170,15 @@ Scan local sources for relevant context. Be selective — only include what is d
163
170
  |------------|---------------|
164
171
  | React components | code-style-patterns.mdc, frontend-assistant.mdc, storybook-guidelines.mdc |
165
172
  | MobX stores | code-style-patterns.mdc, mobx-store-template.mdc |
166
- | API / DTOs | nestjs-dto.mdc, code-style-patterns.mdc |
167
- | Testing | playwright-testing.mdc, storybook-guidelines.mdc |
173
+ | API / DTOs | nestjs-dto.mdc, code-style-patterns.mdc, api-contracts.mdc |
174
+ | Testing | playwright-testing.mdc, storybook-guidelines.mdc, tdd-workflow.mdc |
168
175
  | General code | code-style-patterns.mdc, frontend-assistant.mdc |
176
+ | TDD / test-first | tdd-workflow.mdc |
177
+ | Architecture / layers | clean-architecture.mdc, solid-principles.mdc |
178
+ | Error handling | error-handling.mdc |
179
+ | Database / ORM | database-patterns.mdc |
180
+ | Security | security-baseline.mdc |
181
+ | Async code | async-patterns.mdc |
169
182
 
170
183
  2. Read each applicable rule
171
184
  3. Extract: specific conventions, required patterns, prohibited practices
@@ -189,6 +202,61 @@ Scan local sources for relevant context. Be selective — only include what is d
189
202
  - Key patterns to follow for consistency
190
203
  ```
191
204
 
205
+ ### 2.5 Test Framework Detection (`PROJECT_DIR`)
206
+
207
+ Always detect the test framework — `tests-creator` and `task-implementer` both need this.
208
+
209
+ ```
210
+ 1. Read package.json:
211
+ - Check "dependencies" and "devDependencies" for:
212
+ vitest, jest, @jest/*, mocha, jasmine, bun:test, pytest, go test
213
+
214
+ 2. Check for config files:
215
+ - vitest.config.ts / vitest.config.js
216
+ - jest.config.ts / jest.config.js
217
+ - .mocharc.* / mocha.opts
218
+
219
+ 3. Read 2-3 existing test files (*.test.ts, *.spec.ts, test_*.py):
220
+ - Import style (global vs explicit import)
221
+ - Describe/it/test nesting depth
222
+ - Assertion style (expect().toBe vs assert.equal)
223
+ - Mock library (vi.fn / jest.fn / sinon)
224
+ - Fixture patterns (factories, builders, inline data)
225
+ - Test file location convention (co-located vs __tests__/)
226
+
227
+ 4. Summarize as "Test Framework Context":
228
+ framework: <vitest|jest|bun:test|mocha|pytest>
229
+ import_style: esm | cjs | global
230
+ file_pattern: "*.test.ts" | "*.spec.ts"
231
+ file_location: co-located | __tests__ | tests/
232
+ mock_library: vi | jest | sinon
233
+ run_command: "bun test" | "npx vitest run" | "npm test"
234
+ example_test_file: <path to a representative test>
235
+ ```
236
+
237
+ ### 2.6 Greptile Codebase Context (when available)
238
+
239
+ Greptile indexes the full repository and stores codebase-level context. If Greptile MCP is available in the session, query it as an additional local source — it can surface cross-file patterns that a manual scan would miss.
240
+
241
+ ```
242
+ 1. Try fetching stored custom context:
243
+ mcp__greptile__get_custom_context({})
244
+ or
245
+ mcp__greptile__search_custom_context({ query: "<task_description>" })
246
+
247
+ 2. If Greptile context is returned:
248
+ - Extract: documented patterns, known exceptions, team conventions
249
+ - Note: "Source: Greptile codebase index"
250
+
251
+ 3. Check for relevant past review comments (signals about recurring issues):
252
+ mcp__greptile__search_greptile_comments({ query: "<focus_area>", limit: 5 })
253
+ - Extract recurring findings → add to "Known Issues / Watch Areas" section
254
+
255
+ 4. If Greptile MCP is not available or returns empty: skip silently, proceed normally.
256
+ ```
257
+
258
+ Greptile context is additive — it supplements local context, never replaces it.
259
+
192
260
  **Output of Phase 2:**
193
261
  ```
194
262
  LOCAL_CONTEXT:
@@ -196,6 +264,8 @@ LOCAL_CONTEXT:
196
264
  related_jobs: [{job_name, relevance, key_findings}]
197
265
  applicable_rules: [{rule, key_conventions: [string]}]
198
266
  codebase_patterns: [{area, patterns: [string], example_files: [path]}]
267
+ test_framework: {framework, import_style, file_pattern, file_location, mock_library, run_command, example_test_file}
268
+ greptile_context: {available: bool, patterns: [string], known_issues: [string]}
199
269
  ```
200
270
 
201
271
  ---
@@ -445,6 +515,24 @@ If no JOB_NAME is provided:
445
515
  - Write context to `<DOCS_ROOT>/context/<descriptive-slug>.md`
446
516
  - Include full metadata block
447
517
 
518
+ ## Reporting Results
519
+
520
+ Every final response to the orchestrator MUST begin with the status line:
521
+
522
+ ```
523
+ STATUS: DONE
524
+
525
+ ## Context collected
526
+ [summary of what was gathered]
527
+
528
+ ## CONTEXT_RESULT
529
+ [the full result block]
530
+ ```
531
+
532
+ Use `STATUS: DONE_WITH_CONCERNS` if context is partial. Use `STATUS: BLOCKED` if access fails.
533
+
534
+ **IRON LAW: THE FIRST LINE OF YOUR FINAL RESPONSE IS ALWAYS "STATUS: <STATUS>". THE CONTEXT_RESULT BLOCK FOLLOWS AFTER.**
535
+
448
536
  ### 5.3 Return Result
449
537
 
450
538
  ```
@@ -111,7 +111,7 @@ CONTEXT_RESULT block as your final message.
111
111
  ```javascript
112
112
  Task({
113
113
  description: "context-collector: collect context for {{JOB_NAME}}",
114
- subagent_type: "general",
114
+ subagent_type: "general-purpose",
115
115
  prompt: "<generated prompt from template above>"
116
116
  })
117
117
  ```