@mrciphersmith/keryx 0.2.71 → 0.2.73

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 (162) hide show
  1. package/dist/cli.js +4632 -2229
  2. package/package.json +2 -2
  3. package/src/gdskills/bundled/rules/core/code-review-learned-profile.mdc +81 -0
  4. package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +1 -1
  5. package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +2 -2
  6. package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +8 -4
  7. package/src/gdskills/bundled/rules/core/subagent-context-construction.md +1 -1
  8. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +326 -20
  9. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +320 -22
  10. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +326 -12
  11. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +333 -9
  12. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +94 -6
  13. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +94 -6
  14. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +2 -2
  15. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +94 -6
  16. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +94 -6
  17. package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +3 -3
  18. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +154 -1098
  19. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +154 -1098
  20. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +3 -3
  21. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +154 -1098
  22. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +154 -1098
  23. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +1 -1
  24. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +102 -42
  25. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +102 -42
  26. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
  27. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +2 -2
  28. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +115 -49
  29. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +115 -49
  30. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +115 -49
  31. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +115 -49
  32. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
  33. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +16 -7
  34. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +16 -7
  35. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +1 -1
  36. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +16 -7
  37. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +16 -7
  38. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +973 -510
  39. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +973 -510
  40. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +944 -514
  41. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +973 -510
  42. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +973 -510
  43. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +38 -28
  44. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +98 -66
  45. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +27 -5
  46. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +300 -55
  47. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +300 -55
  48. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +120 -37
  49. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +300 -55
  50. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +300 -55
  51. package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +57 -15
  52. package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +50 -23
  53. package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +6 -2
  54. package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +18 -12
  55. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
  56. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
  57. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +168 -9
  58. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +168 -9
  59. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +7 -1
  60. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +7 -1
  61. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +7 -1
  62. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +7 -1
  63. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +215 -9
  64. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +215 -9
  65. package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +168 -9
  66. package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +168 -9
  67. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +2 -2
  68. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +2 -2
  69. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +2 -2
  70. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +2 -2
  71. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +133 -9
  72. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +133 -9
  73. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +145 -9
  74. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +145 -9
  75. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +210 -9
  76. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +210 -9
  77. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +161 -9
  78. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +161 -9
  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.md +2 -2
  114. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +29 -30
  115. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +29 -30
  116. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +243 -0
  117. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +243 -0
  118. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +243 -0
  119. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +243 -0
  120. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +243 -0
  121. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +19 -23
  122. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +19 -23
  123. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +1 -1
  124. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +19 -23
  125. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +19 -23
  126. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +17 -24
  127. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +17 -24
  128. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +1 -1
  129. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +17 -24
  130. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +17 -24
  131. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +1 -1
  132. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +1 -1
  133. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +1 -1
  134. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
  135. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
  136. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +1 -1
  137. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
  138. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +1 -1
  139. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
  140. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +26 -13
  141. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +1 -1
  142. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +36 -17
  143. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +1 -1
  144. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +1 -1
  145. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
  146. package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
  147. package/src/gdskills/bundled/skills/shared/git-merge-base.md +1 -1
  148. package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +0 -48
  149. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +0 -46
  150. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +0 -94
  151. package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +0 -45
  152. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +0 -40
  153. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +0 -45
  154. package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +0 -42
  155. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +0 -48
  156. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +0 -40
  157. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +0 -30
  158. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +0 -209
  159. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +0 -209
  160. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +0 -208
  161. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +0 -209
  162. package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +0 -209
@@ -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
  ```
@@ -512,7 +600,7 @@ When the orchestrator dispatches this skill as a sub-agent:
512
600
  You are the context-collector agent. Your task is to research and build
513
601
  a context document for the current job.
514
602
 
515
- Load the skill from: skills/context-collector/SKILL.md
603
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
516
604
 
517
605
  ACTION: collect
518
606
  JOB_NAME: <job-name>
@@ -534,7 +622,7 @@ For updates:
534
622
  You are the context-collector agent. Your task is to update the existing
535
623
  context document for this job.
536
624
 
537
- Load the skill from: skills/context-collector/SKILL.md
625
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
538
626
 
539
627
  ACTION: update
540
628
  JOB_NAME: <job-name>
@@ -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
  ```
@@ -512,7 +600,7 @@ When the orchestrator dispatches this skill as a sub-agent:
512
600
  You are the context-collector agent. Your task is to research and build
513
601
  a context document for the current job.
514
602
 
515
- Load the skill from: skills/context-collector/SKILL.md
603
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
516
604
 
517
605
  ACTION: collect
518
606
  JOB_NAME: <job-name>
@@ -534,7 +622,7 @@ For updates:
534
622
  You are the context-collector agent. Your task is to update the existing
535
623
  context document for this job.
536
624
 
537
- Load the skill from: skills/context-collector/SKILL.md
625
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
538
626
 
539
627
  ACTION: update
540
628
  JOB_NAME: <job-name>
@@ -58,7 +58,7 @@ IF ACTION == "update":
58
58
  You are the context-collector agent. Your task is to research and build
59
59
  a context document for the current job.
60
60
 
61
- Load the skill from: skills/context-collector/SKILL.md
61
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
62
62
 
63
63
  DO NOT ask the user any questions. Execute all phases autonomously.
64
64
 
@@ -85,7 +85,7 @@ and return a CONTEXT_RESULT block as your final message.
85
85
  You are the context-collector agent. Your task is to update the existing
86
86
  context document for this job.
87
87
 
88
- Load the skill from: skills/context-collector/SKILL.md
88
+ Load the skill from: skills/orchestration/context-collector/SKILL.md
89
89
 
90
90
  DO NOT ask the user any questions. Execute the update flow autonomously.
91
91
 
@@ -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
  ```