@mrciphersmith/keryx 0.2.98 → 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 (182) hide show
  1. package/dist/cli.js +4057 -2510
  2. package/dist/core.js +39 -1
  3. package/package.json +1 -1
  4. package/src/gdskills/bundled/rules/core/cli-interface-design.mdc +237 -0
  5. package/src/gdskills/bundled/rules/core/definition-of-done.mdc +116 -0
  6. package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +101 -11
  7. package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +9 -2
  8. package/src/gdskills/bundled/skills/core/reviewer-skill-creator/SKILL.md +42 -5
  9. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +19 -3
  10. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +20 -4
  11. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +32 -9
  12. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +18 -4
  13. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +21 -5
  14. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +4 -4
  15. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
  16. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +42 -2
  17. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +23 -9
  18. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +33 -31
  19. package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +32 -1
  20. package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +16 -0
  21. package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +16 -0
  22. package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +16 -0
  23. package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +17 -0
  24. package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +16 -0
  25. package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +16 -0
  26. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +28 -3
  27. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +17 -0
  28. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +17 -0
  29. package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +17 -0
  30. package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +32 -2
  31. package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +14 -2
  32. package/src/gdskills/bundled/skills/planning/interview/SKILL.md +29 -7
  33. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +32 -6
  34. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +16 -0
  35. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +16 -0
  36. package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +16 -0
  37. package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +17 -0
  38. package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +17 -0
  39. package/src/gdskills/bundled/skills/planning/planner/SKILL.md +17 -0
  40. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +20 -3
  41. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +16 -0
  42. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +16 -0
  43. package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +16 -0
  44. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +16 -0
  45. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +16 -0
  46. package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +16 -0
  47. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +4 -0
  48. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +4 -0
  49. package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +4 -0
  50. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +4 -0
  51. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +4 -0
  52. package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +4 -0
  53. package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +31 -4
  54. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +26 -2
  55. package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +28 -3
  56. package/src/gdskills/bundled/skills/quality/api-truth/SKILL.md +226 -0
  57. package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +24 -4
  58. package/src/gdskills/bundled/skills/quality/commit/SKILL.md +24 -3
  59. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +24 -3
  60. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +25 -4
  61. package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +26 -3
  62. package/src/gdskills/bundled/skills/quality/deprecation-path/SKILL.md +268 -0
  63. package/src/gdskills/bundled/skills/quality/fresh-eyes/SKILL.md +190 -0
  64. package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +24 -3
  65. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +29 -8
  66. package/src/gdskills/bundled/skills/quality/pr/SKILL.md +24 -4
  67. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +25 -2
  68. package/src/gdskills/bundled/skills/quality/push/SKILL.md +24 -3
  69. package/src/gdskills/bundled/skills/quality/root-cause/SKILL.md +204 -0
  70. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +25 -4
  71. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +24 -3
  72. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +17 -2
  73. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +40 -5
  74. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +41 -1
  75. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +44 -2
  76. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +44 -4
  77. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +3 -3
  78. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +2 -3
  79. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +4 -4
  80. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +36 -2
  81. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +37 -3
  82. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +2 -4
  83. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +36 -2
  84. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +3 -5
  85. package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +23 -2
  86. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +3 -3
  87. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +9 -29
  88. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +9 -9
  89. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +3 -2
  90. package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +33 -2
  91. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +4 -2
  92. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +2 -2
  93. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +40 -2
  94. package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
  95. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +0 -330
  96. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +0 -330
  97. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +0 -330
  98. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +0 -330
  99. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +0 -655
  100. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +0 -655
  101. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +0 -655
  102. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +0 -655
  103. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +0 -424
  104. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +0 -424
  105. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +0 -424
  106. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +0 -424
  107. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +0 -163
  108. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +0 -163
  109. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +0 -373
  110. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +0 -373
  111. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +0 -373
  112. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +0 -373
  113. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +0 -374
  114. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +0 -374
  115. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +0 -374
  116. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +0 -374
  117. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +0 -2232
  118. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +0 -2232
  119. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +0 -2232
  120. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +0 -2232
  121. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +0 -668
  122. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +0 -668
  123. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +0 -668
  124. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +0 -668
  125. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +0 -90
  126. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +0 -90
  127. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +0 -187
  128. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +0 -187
  129. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +0 -105
  130. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +0 -105
  131. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +0 -193
  132. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +0 -193
  133. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +0 -193
  134. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +0 -193
  135. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +0 -87
  136. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +0 -87
  137. package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +0 -100
  138. package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +0 -100
  139. package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +0 -84
  140. package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +0 -84
  141. package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +0 -66
  142. package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +0 -66
  143. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +0 -66
  144. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +0 -66
  145. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +0 -81
  146. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +0 -81
  147. package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +0 -70
  148. package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +0 -70
  149. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +0 -83
  150. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +0 -83
  151. package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +0 -75
  152. package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +0 -75
  153. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +0 -378
  154. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +0 -378
  155. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +0 -378
  156. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +0 -378
  157. package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +0 -52
  158. package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +0 -52
  159. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +0 -108
  160. package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +0 -108
  161. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +0 -80
  162. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +0 -80
  163. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +0 -345
  164. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +0 -345
  165. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +0 -345
  166. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +0 -345
  167. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +0 -203
  168. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +0 -203
  169. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +0 -203
  170. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +0 -203
  171. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +0 -243
  172. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +0 -243
  173. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +0 -243
  174. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +0 -243
  175. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +0 -259
  176. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +0 -259
  177. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +0 -259
  178. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +0 -259
  179. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +0 -168
  180. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +0 -168
  181. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +0 -168
  182. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +0 -168
@@ -5,6 +5,10 @@ description: >
5
5
  to extract purpose, structure, public API surface, patterns, and key dependencies.
6
6
  Use when: dispatched by autodoc-orchestrator Phase 2 (one instance per module).
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "autodoc analyst"
10
+ - "analyze module docs"
11
+ - "reverse engineer module"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -26,6 +30,18 @@ and writers can use without re-reading the source code.
26
30
  | 4 | Document what the code DOES, not how it does it internally |
27
31
  | 5 | Extract concrete examples from code (real function names, real endpoints) |
28
32
 
33
+ ## Red Flags
34
+
35
+ Stop and re-read this skill if you are thinking:
36
+
37
+ | Rationalization | Rebuttal |
38
+ |---|---|
39
+ | "This module imports from the shared module, so I should analyze that too." | Iron Law 1: one module per invocation. Another analyst has `shared` and is reading it right now. Record the dependency as a dependency; analysing across the boundary duplicates their work and produces two disagreeing accounts of the same code. |
40
+ | "The framework's conventions tell me what this service does." | Iron Law 2: understanding comes from the code in front of you. A NestJS service named `UserService` does whatever this repository made it do, and the convention-based description is the one no reader can catch as wrong. |
41
+ | "This internal helper is the clever part, so it deserves the most detail." | Iron Law 3 and 4: public interfaces first, and document what the module DOES, not how. Internals change without notice; the exported surface is what the writers and the architect can actually build on. |
42
+ | "A real endpoint list would be long — a representative example is clearer." | Iron Law 5 asks for concrete names from the code. A representative example is indistinguishable from an invented one to everyone downstream, and Phase 4 will publish it as if it were real. |
43
+ | "The entry point isn't where project-map said — I'll analyze what I can find." | That mismatch is exactly what `NEEDS_CONTEXT` (and `concerns`) exist for. Quietly analysing a different starting point produces an artifact the architect will merge without knowing it describes something else. |
44
+
29
45
  ---
30
46
 
31
47
  ## Input Contract
@@ -7,6 +7,10 @@ description: >
7
7
  points, and cross-cutting concerns.
8
8
  Use when: dispatched by autodoc-orchestrator Phase 3.
9
9
  NOT for: direct user invocation.
10
+ triggers:
11
+ - "autodoc architect"
12
+ - "architecture docs"
13
+ - "reverse engineer architecture"
10
14
  metadata:
11
15
  version: 1.0.0
12
16
  ---
@@ -28,6 +32,18 @@ fit together — something no single module analyst can see alone.
28
32
  | 3 | Map ALL cross-module interactions found in the analyses |
29
33
  | 4 | Identify the system's architectural style (what it IS, not what it should be) |
30
34
 
35
+ ## Red Flags
36
+
37
+ Stop and re-read this skill if you are thinking:
38
+
39
+ | Rationalization | Rebuttal |
40
+ |---|---|
41
+ | "One analysis file is thin — the others are enough to see the shape." | Iron Law 1: every module analysis is read, none ignored. The thin one is usually the integration edge (infra, shared, a worker) whose absence turns a real topology into a tidy diagram of the parts you liked. |
42
+ | "This looks like clean architecture, so the layers are the usual four." | Iron Law 4: describe what the system IS. A named style imported from outside the evidence makes the document describe a project the reader does not have, and every later doc inherits it. |
43
+ | "The frontend obviously calls the backend — that interaction needs no evidence." | Iron Law 2 and 3: every cross-module interaction is derived from something an analysis actually reported. "Obviously" is where a message queue, a BFF, or a direct database read from the frontend disappears from the map. |
44
+ | "The analyses contradict each other about this contract, so I'll pick the more plausible one." | A contradiction is a finding. Record it in `concerns` and return `DONE_WITH_CONCERNS`. Choosing silently buries the one thing the module analysts could not see and you can. |
45
+ | "The architecture is clear to me, so the document can stay at a high level." | The writers in Phase 4 have only this file for anything spanning modules. A high-level summary without data flows and integration points means the architecture section is written from the same summary, twice. |
46
+
31
47
  ---
32
48
 
33
49
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  into a cohesive package: main README.md and navigation index.
6
6
  Use when: dispatched by autodoc-orchestrator Phase 5.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "autodoc assemble"
10
+ - "assemble docs"
11
+ - "assemble documentation package"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -25,6 +29,18 @@ verify cross-references, write the main README and navigation index.
25
29
  | 3 | All cross-links between docs must use relative paths |
26
30
  | 4 | Do NOT repeat content from sections — summarize and link |
27
31
 
32
+ ## Red Flags
33
+
34
+ Stop and re-read this skill if you are thinking:
35
+
36
+ | Rationalization | Rebuttal |
37
+ |---|---|
38
+ | "I know what `api-reference.md` contains from its name — no need to open it." | Iron Law 1: read every section before writing. A writer that returned `DONE_WITH_CONCERNS` may have left a half-written file or a [TODO]; the index would then link confidently to a page that does not deliver what the link promises. |
39
+ | "The onboarding steps are the most important thing, so I'll repeat them in the README." | Iron Law 4: summarize and link. Duplicated steps drift the moment one copy is updated, and the reader has no way to tell which copy is current. |
40
+ | "An absolute path works on my machine and is unambiguous." | Iron Law 3: relative paths only. The docs package gets moved, committed, and read from a repository checkout — an absolute path from the job directory breaks on every machine but the one that wrote it. |
41
+ | "A writer left `[TODO: add X]`, but the section is otherwise complete." | Those TODOs are what `concerns` is for. The orchestrator's final report is the only place the user learns the documentation has known holes; an assembler that filters them out reports a complete package that is not. |
42
+ | "A section is missing from `docs/`, so it must not have been needed." | A missing file means a Phase 4 writer failed or was never dispatched. Report it as a concern — inferring intent from an absence is how a documentation package quietly ships without its API reference. |
43
+
28
44
  ---
29
45
 
30
46
  ## Input Contract
@@ -8,6 +8,8 @@ description: >
8
8
  NOT for: writing new PRDs or planning new features (use gproject-orchestrator).
9
9
  triggers:
10
10
  - "autodoc"
11
+ - "document codebase"
12
+ - "reverse engineer docs"
11
13
  - "автодок"
12
14
  - "document this codebase"
13
15
  - "generate docs for my project"
@@ -55,6 +57,21 @@ emit it when dispatched as a subagent.
55
57
 
56
58
  ---
57
59
 
60
+ ## Red Flags
61
+
62
+ Stop and re-read this skill if you are thinking:
63
+
64
+ | Rationalization | Rebuttal |
65
+ |---|---|
66
+ | "The subagent's response summarized its findings, so the phase is complete." | Iron Law 3 requires an artifact FILE. The next phase reads `artifacts/analysis/*.md`, not your transcript — a phase whose file is missing produces a downstream subagent documenting nothing. Check the path exists before advancing. |
67
+ | "This module is tiny — faster to describe it myself than to dispatch an analyst." | Iron Laws 1 and 2 have no size exception. The moment the orchestrator writes content, the pipeline has one unreviewed author whose output no artifact backs, and the parallel structure silently becomes serial guesswork. |
68
+ | "The scanner found 12 modules; I'll analyze the important ones and cover the rest later." | Phase 2 is one analyst per detected module, launched together, and Phase 3 waits for all of them. A partial analysis set yields an architecture doc that describes a system missing several of its parts, with nothing marking the omission. |
69
+ | "A writer came back DONE_WITH_CONCERNS, but the file looks fine, so I'll drop the concern." | `DONE_WITH_CONCERNS` exists so the concern reaches the user. It goes into `state.json` and into the Final Report's `Concerns` line. A dropped concern is indistinguishable from a clean run. |
70
+ | "The subagent asked for context twice — I know this repo, I'll answer from memory." | Iron Law 1 again: answering from your own reading of the code is the orchestrator reading code. Resolve from artifacts or a dispatched collector; after two rounds, ask the user with A/B/C/D options. |
71
+ | "There is an interrupted job in `jobs/`, but starting fresh is cleaner." | State Resumption is the user's call, offered as A/B/C. Starting fresh silently discards completed phases they paid for and may overwrite `docs/` files they have already read. |
72
+
73
+ ---
74
+
58
75
  ## Pipeline Overview
59
76
 
60
77
  ```
@@ -5,6 +5,10 @@ description: >
5
5
  detects stack, identifies module boundaries, entry points, and dependencies.
6
6
  Use when: dispatched by autodoc-orchestrator Phase 1.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "autodoc scan"
10
+ - "scan codebase"
11
+ - "documentation targets"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -25,6 +29,18 @@ and writers can rely on without re-scanning the codebase.
25
29
  | 3 | Always list entry points (main files, index files, app bootstraps) |
26
30
  | 4 | Return module list in `next_phase_hints.modules[]` — orchestrator uses this to spawn analysts |
27
31
 
32
+ ## Red Flags
33
+
34
+ Stop and re-read this skill if you are thinking:
35
+
36
+ | Rationalization | Rebuttal |
37
+ |---|---|
38
+ | "These two packages are small — I'll list them as one module." | Phase 2 spawns exactly one analyst per entry in `next_phase_hints.modules[]`. A merged entry gives one analyst two codebases and leaves a module nobody documents under its own name. |
39
+ | "`package.json` is ambiguous about the framework, so I'll read the source to be sure." | Iron Law 1: directory listings and targeted config reads only. An unknown framework is reported as unknown — reading source here does Phase 2's job with a Phase 1 budget, and the analyst will read it properly anyway. |
40
+ | "These directories are named like features, so they are modules." | Iron Law 2: boundaries come from directory structure AND build config. Names alone invent modules the build system does not have, and each invented one costs a full analyst dispatch. |
41
+ | "There is no `openapi.yaml`, so `has_api` is false." | Step 5 lists five independent signals, any one of which is sufficient. A false from checking one of them tells Phase 4 not to write an API reference for a project that has an API. |
42
+ | "The main app's entry point is obvious — one entry is enough." | Iron Law 3 asks for entry points per module. An analyst handed a module with no entry point starts from the directory listing and guesses at what bootstraps it. |
43
+
28
44
  ---
29
45
 
30
46
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  from analysis artifacts. Dispatched in parallel — one instance per section.
6
6
  Use when: dispatched by autodoc-orchestrator Phase 4.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "autodoc writer"
10
+ - "write docs"
11
+ - "generate documentation pages"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -26,6 +30,18 @@ for one specific section. Each instance handles exactly one output file.
26
30
  | 4 | Use concrete examples from the actual codebase (real file paths, real commands) |
27
31
  | 5 | If a section requires info not in the artifacts, note it as [TODO: add X] rather than inventing |
28
32
 
33
+ ## Red Flags
34
+
35
+ Stop and re-read this skill if you are thinking:
36
+
37
+ | Rationalization | Rebuttal |
38
+ |---|---|
39
+ | "The artifacts don't give the install command, but `npm install` is always right." | Iron Law 2 and 5: write `[TODO: add install command]` instead. A plausible command in an onboarding doc is worse than a gap — the new developer runs it, it fails, and they stop trusting the rest of the page. |
40
+ | "This belongs in the architecture section too, so I'll cover it here as well." | Iron Law 1: one section per invocation. Another writer owns that section right now, and two independently written accounts of the same thing will not agree by the time the assembler links them. |
41
+ | "A generic example reads more cleanly than the real file path." | Iron Law 4 requires real paths and real commands. `src/foo/bar.ts` teaches nothing and cannot be checked; the actual path is the part the reader copies. |
42
+ | "The API section is for developers, so more implementation detail is better." | Iron Law 3: write for the section's audience. API consumers need the contract — request, response, errors — not the service internals, which change without any promise to them. |
43
+ | "I left a few TODOs, but the section reads as finished, so `DONE`." | Every gap goes into `concerns`, and a section held together by TODOs is `DONE_WITH_CONCERNS`. The assembler collects those TODOs in Phase 5; one that never reached `concerns` ships as finished documentation. |
44
+
29
45
  ---
30
46
 
31
47
  ## Input Contract
@@ -1,9 +1,10 @@
1
1
  ---
2
2
  name: brainstorm
3
- description: "Use when exploring architecture decisions, tech choices, feature ideas, or any open-ended problem that benefits from multiple perspectives."
3
+ description: "Use when exploring architecture decisions, tech choices, feature ideas, or any open-ended problem that benefits from multiple perspectives. NOT for: writing the chosen option up as a formal requirements document (use prd-creator)."
4
4
  triggers:
5
- - "/brainstorm"
6
- - "Brainstorm"
5
+ - "brainstorm"
6
+ - "explore options"
7
+ - "architecture decision"
7
8
  - "Let's think about"
8
9
  - "What are options for"
9
10
  - "How should we approach"
@@ -88,3 +89,27 @@ Add: **Security Analyst** (auth, data exposure, compliance) and **UX Advocate**
88
89
  - The Critic's questions must be answered by the recommendation
89
90
  - Don't dismiss "boring" solutions — they often win
90
91
  - End with concrete next steps, not just analysis
92
+
93
+ ## Red Flags
94
+
95
+ Stop and re-read this skill if you are thinking:
96
+
97
+ | Rationalization | Rebuttal |
98
+ |---|---|
99
+ | "All three agents converged on the same option, so it must be right." | Three agents given one framing usually converge because the framing already decided it. Convergence is evidence about the prompt, not about the option. Check whether all three skipped the same constraint before calling agreement a result. |
100
+ | "The best option is obvious, so the comparison matrix is busywork." | The matrix is the only part the user can audit. Without effort, risk and time-to-ship side by side, "recommended" is an assertion they have to take on trust — and the obvious option is exactly the one whose cost nobody checked. |
101
+ | "The Critic raised risks, but they apply to the runner-up, not my pick." | The Critic's questions apply to ALL options by construction. The recommendation must answer each one or explicitly accept it as a known risk. Silently routing a question to the option you did not pick is how the risk ships. |
102
+ | "This is early exploration, so effort estimates would be premature." | An idea without an estimate is not actionable, which is the whole output of this skill. A labelled guess (S/M/L, stated as a guess) is usable; no number is not. |
103
+ | "The innovative option is more interesting, so it is the better recommendation." | Novelty is not a criterion in the matrix. If the boring option scores better on effort, risk and time to ship, it wins — say so, and put the interesting one in the runner-up slot with the condition that would flip the call. |
104
+
105
+ ## Verification
106
+
107
+ Before reporting, all of these must hold:
108
+
109
+ - The Ideas Map has at least two distinct options, each with approach, pros, cons, effort (S/M/L) and risk.
110
+ - The comparison matrix has one column per option and a row per criterion — no blank cells.
111
+ - Every Critical Question from the Critic is listed, and the recommendation either answers it or names it as an accepted risk.
112
+ - The recommendation names a runner-up and the specific condition under which the runner-up would be chosen instead.
113
+ - Next steps are concrete actions, each specific enough to become a task — not "investigate further".
114
+ - In `--quick` mode: 3-5 scored options in a table and one recommendation. In `--deep` mode: the Security Analyst and UX Advocate perspectives both appear in the synthesis, not just in the agent output.
115
+ - Options are grounded in the project's actual stack and constraints; anything assumed about the stack is labelled as an assumption.
@@ -5,6 +5,10 @@ description: >
5
5
  and best practices constraints. Catches contradictions, gaps, and violations.
6
6
  Use when: dispatched by gproject-orchestrator Phase 5.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "check consistency"
10
+ - "validate spec"
11
+ - "doc contradictions"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  compatible_harnesses: "cursor,codex,zed,opencode"
@@ -29,6 +33,19 @@ This agent is adversarial — its job is to find problems, not to approve.
29
33
  | 5 | NEVER fix violations yourself — only report them |
30
34
  | 6 | A clean report still lists what was checked (audit trail) |
31
35
 
36
+ ## Red Flags
37
+
38
+ Stop and re-read this skill if you are thinking:
39
+
40
+ | Rationalization | Rebuttal |
41
+ |---|---|
42
+ | "The first decisions all check out, so the rest of the registry is fine." | Iron Law 1: every decision, no sampling. The registry's later entries are the ones added late under pressure — the most likely to contradict a PRD written before them. |
43
+ | "This violation is one line to fix — cheaper to correct than to report." | Iron Law 5: never fix, only report. This agent is the gate; a gate that edits the artifact it is judging has approved its own change, and the spec-writer never learns its output drifted. |
44
+ | "One CRITICAL violation, but the PRD is strong overall — `DONE` with a note." | The status logic is mechanical: any CRITICAL means `DONE_WITH_CONCERNS`. Softening it lets a document reach human approval carrying exactly the contradiction this phase exists to surface. |
45
+ | "The PRD contradicts a decision, but the PRD's version is clearly better." | Being right is not this agent's job. Report the contradiction and let the orchestrator or the human resolve it — a checker that picks a winner has quietly changed a project decision nobody recorded. |
46
+ | "Nothing was wrong, so a short 'all clear' is the report." | Iron Law 6: a clean report still lists what was checked. Without the audit trail, "no violations" and "did not look" produce the same document. |
47
+ | "I found several violations already — that is enough to block approval." | Iron Law 3: report ALL violations. Stopping early guarantees a second review round for the ones you did not name, and each round costs another full pipeline pass. |
48
+
32
49
  ---
33
50
 
34
51
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  and best practices constraints. Catches contradictions, gaps, and violations.
6
6
  Use when: dispatched by gproject-orchestrator Phase 5.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "check consistency"
10
+ - "validate spec"
11
+ - "doc contradictions"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  compatible_harnesses: "cursor,codex,zed,opencode"
@@ -29,6 +33,19 @@ This agent is adversarial — its job is to find problems, not to approve.
29
33
  | 5 | NEVER fix violations yourself — only report them |
30
34
  | 6 | A clean report still lists what was checked (audit trail) |
31
35
 
36
+ ## Red Flags
37
+
38
+ Stop and re-read this skill if you are thinking:
39
+
40
+ | Rationalization | Rebuttal |
41
+ |---|---|
42
+ | "The first decisions all check out, so the rest of the registry is fine." | Iron Law 1: every decision, no sampling. The registry's later entries are the ones added late under pressure — the most likely to contradict a PRD written before them. |
43
+ | "This violation is one line to fix — cheaper to correct than to report." | Iron Law 5: never fix, only report. This agent is the gate; a gate that edits the artifact it is judging has approved its own change, and the spec-writer never learns its output drifted. |
44
+ | "One CRITICAL violation, but the PRD is strong overall — `DONE` with a note." | The status logic is mechanical: any CRITICAL means `DONE_WITH_CONCERNS`. Softening it lets a document reach human approval carrying exactly the contradiction this phase exists to surface. |
45
+ | "The PRD contradicts a decision, but the PRD's version is clearly better." | Being right is not this agent's job. Report the contradiction and let the orchestrator or the human resolve it — a checker that picks a winner has quietly changed a project decision nobody recorded. |
46
+ | "Nothing was wrong, so a short 'all clear' is the report." | Iron Law 6: a clean report still lists what was checked. Without the audit trail, "no violations" and "did not look" produce the same document. |
47
+ | "I found several violations already — that is enough to block approval." | Iron Law 3: report ALL violations. Stopping early guarantees a second review round for the ones you did not name, and each round costs another full pipeline pass. |
48
+
32
49
  ---
33
50
 
34
51
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  and best practices constraints. Catches contradictions, gaps, and violations.
6
6
  Use when: dispatched by gproject-orchestrator Phase 5.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "check consistency"
10
+ - "validate spec"
11
+ - "doc contradictions"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -28,6 +32,19 @@ This agent is adversarial — its job is to find problems, not to approve.
28
32
  | 5 | NEVER fix violations yourself — only report them |
29
33
  | 6 | A clean report still lists what was checked (audit trail) |
30
34
 
35
+ ## Red Flags
36
+
37
+ Stop and re-read this skill if you are thinking:
38
+
39
+ | Rationalization | Rebuttal |
40
+ |---|---|
41
+ | "The first decisions all check out, so the rest of the registry is fine." | Iron Law 1: every decision, no sampling. The registry's later entries are the ones added late under pressure — the most likely to contradict a PRD written before them. |
42
+ | "This violation is one line to fix — cheaper to correct than to report." | Iron Law 5: never fix, only report. This agent is the gate; a gate that edits the artifact it is judging has approved its own change, and the spec-writer never learns its output drifted. |
43
+ | "One CRITICAL violation, but the PRD is strong overall — `DONE` with a note." | The status logic is mechanical: any CRITICAL means `DONE_WITH_CONCERNS`. Softening it lets a document reach human approval carrying exactly the contradiction this phase exists to surface. |
44
+ | "The PRD contradicts a decision, but the PRD's version is clearly better." | Being right is not this agent's job. Report the contradiction and let the orchestrator or the human resolve it — a checker that picks a winner has quietly changed a project decision nobody recorded. |
45
+ | "Nothing was wrong, so a short 'all clear' is the report." | Iron Law 6: a clean report still lists what was checked. Without the audit trail, "no violations" and "did not look" produce the same document. |
46
+ | "I found several violations already — that is enough to block approval." | Iron Law 3: report ALL violations. Stopping early guarantees a second review round for the ones you did not name, and each round costs another full pipeline pass. |
47
+
31
48
  ---
32
49
 
33
50
  ## Input Contract
@@ -2,11 +2,15 @@
2
2
  name: docpack-orchestrator
3
3
  description: "Use when creating or updating a Metaproject requirements package under docs/requirements: PRD, specification, README, policies/protocols/schemas, roadmap updates, verification, and package review. Use for requests like 'create requirements package', 'prepare module documentation', 'write PRD/spec for module', or 'оформи пакет документации'. Not for reverse-engineering current codebase documentation; use autodoc-orchestrator for that."
4
4
  triggers:
5
- - "create requirements package"
6
5
  - "requirements package"
6
+ - "create requirements package"
7
+ - "module documentation"
8
+ - "documentation package for implementation"
9
+ - "пакет документации"
10
+ - "оформи пакет документации"
11
+ - "подготовь пакет документации"
7
12
  - "prepare module documentation"
8
13
  - "write PRD and spec"
9
- - "оформи пакет документации"
10
14
  - "создай документацию модуля"
11
15
  metadata:
12
16
  author: "MrCipherSmith"
@@ -129,6 +133,32 @@ Run a local verification pass:
129
133
  Use `docpack-review` for an adversarial pass. Fix blockers before
130
134
  final output. Warnings may remain only if called out clearly.
131
135
 
136
+ ## Red Flags
137
+
138
+ Stop and re-read this skill if you are thinking:
139
+
140
+ | Rationalization | Rebuttal |
141
+ |---|---|
142
+ | "README, PRD and spec agree with each other, so the implementation status is accurate." | Agreement between three documents is agreement between three documents. Iron Law 6 requires code as the proof. Open the path, or write the status as `planned`. |
143
+ | "`docpack-review` came back with warnings only, so the package is done." | Phase 5 permits warnings to remain *only if they are called out clearly* in the Final Response. A warning that lives in the review output and not in `remaining_gaps` has been dropped, not accepted. |
144
+ | "This package is small — a specification alone covers it." | Iron Law 4: README, PRD and specification are all required for module packages. "Small" is the most common reason a package ships with no problem statement and no document index. |
145
+ | "I rewrote most of the doc, so the `Version` obviously moved." | Nothing bumps it for you. Iron Law 3 is checked file by file in Phase 4, and an unbumped version is what makes a stale copy indistinguishable from the current one. |
146
+ | "The user gave me thorough notes, so Phase 1 evidence is redundant." | User notes do not contain the existing package files, `docs/requirements/roadmap.md`, or what a prior version of this package already promised. Skipping Phase 1 is how a package contradicts its own last revision. |
147
+ | "Review is its own skill — the user can run `docpack-review` afterwards." | Iron Law 5 makes verification and review mandatory *before* final output. An unreviewed package reported as complete is the failure this pipeline exists to prevent. |
148
+
149
+ ## Exit Criteria
150
+
151
+ Do not emit the Final Response until all of these hold:
152
+
153
+ - Every required file for the package kind exists at `docs/requirements/<package_name>/`, and each was written or deliberately left unchanged — not assumed.
154
+ - Every Markdown file in the package carries a `Version`, and every file you changed has a bumped one.
155
+ - `README.md` links to every file in the package; the specification links to each schema it defines.
156
+ - Every `schemas/*.json` parses as valid JSON.
157
+ - `docs/requirements/roadmap.md` is updated when the package represents a new module or capability, or the report states why it does not.
158
+ - No implementation claim appears that code does not support; anything unbuilt is marked planned or future.
159
+ - `docpack-review` has been run in Phase 5 and reports zero blockers. Remaining warnings appear verbatim in `remaining_gaps`.
160
+ - Every field of the Final Response block is filled with a real value — no placeholder, and `verification`/`review` are never reported as `pass` when the pass did not run.
161
+
132
162
  ## Final Response
133
163
 
134
164
  Report:
@@ -2,9 +2,8 @@
2
2
  name: docpack-review
3
3
  description: "Use when reviewing or verifying a Metaproject requirements package under docs/requirements for completeness, versioning, README/PRD/spec consistency, schema references, roadmap updates, unsupported claims, and implementation-status accuracy. Usually dispatched by docpack-orchestrator. Not for reviewing autodoc-generated current-codebase documentation."
4
4
  triggers:
5
- - "review requirements package"
6
- - "verify requirements package"
7
5
  - "requirements package review"
6
+ - "verify requirements package"
8
7
  - "check PRD spec consistency"
9
8
  - "проверь документацию"
10
9
  metadata:
@@ -62,6 +61,19 @@ Adversarial reviewer for Metaproject requirements packages.
62
61
  - Future commands are marked future/planned.
63
62
  - Integrations distinguish implemented, planned and optional.
64
63
 
64
+ ## Red Flags
65
+
66
+ Stop and re-read this skill if you are thinking:
67
+
68
+ | Rationalization | Rebuttal |
69
+ |---|---|
70
+ | "The three required files are clean, so the optional ones will be too." | Iron Law 1 forbids sampling. Optional files are where unsupported claims collect precisely because nobody expects them to be read — `agent-protocol.md` and `metrics-and-validation.md` describe behavior that most often does not exist yet. |
71
+ | "The PRD and the specification both say this command exists, so the claim is supported." | Two documents agreeing is one author repeating themselves. The Accuracy checks resolve against the repository, not against a sibling doc. If no code backs the claim, it is a blocker. |
72
+ | "The fix is one line — faster to apply it than to describe it." | Iron Law 6: report findings and suggested fixes, never rewrite. A reviewer who edits has no reviewer, and the orchestrator loses the record of what was wrong. |
73
+ | "It is only a missing `Version` field — that is a warning, not a blocker." | Iron Law 3 names it a blocker outright, as does a missing required file (Law 2). The severity is fixed by the law, not by how small the fix looks. |
74
+ | "There are blockers, but the package is broadly good, so `PASS_WITH_WARNINGS`." | Any blocker means `verdict: FAIL`. Softening the verdict is how a package with a missing spec reaches implementation. |
75
+ | "The README status is stale but harmless, so it is an INFO note." | README status disagreeing with the PRD or spec is a contradiction, and Iron Law 5 makes contradictions blockers. Stale status is the field implementers read first. |
76
+
65
77
  ## Output
66
78
 
67
79
  Return findings first:
@@ -1,13 +1,10 @@
1
1
  ---
2
2
  name: interview
3
- description: "Use to clarify implementation-specific ambiguities AFTER context has already been collected and the goal is known — the questions that sharpen a plan, not the ones that scope the request. This is the `implement`-intent interview job-orchestrator runs at 0.3. To pin down a vague request before any context is gathered, use `interviewer` instead."
3
+ description: "Use to clarify implementation-specific ambiguities AFTER context has already been collected and the goal is known — the questions that sharpen a plan, not the ones that scope the request. This is the `implement`-intent interview job-orchestrator runs at 0.3. NOT for: pinning down a vague request before any context is gathered — use `interviewer` instead."
4
4
  triggers:
5
- - "/interview"
6
- - "Interview"
7
- - "Clarify requirements"
8
- - "Ask questions first"
9
- - "What do you need to know"
10
- - "Gather requirements"
5
+ - "implementation interview"
6
+ - "interview before implementation"
7
+ - "clarify implementation"
11
8
  metadata:
12
9
  author: "MrCipherSmith"
13
10
  version: "1.0.0"
@@ -185,3 +182,28 @@ The interview skill is designed to be composable — any skill that needs user i
185
182
  - ALWAYS adapt subsequent questions based on previous answers
186
183
  - If the user seems impatient or says "just do it" — stop interviewing, document remaining unknowns as assumptions, and proceed
187
184
  - One question at a time — never dump all questions at once
185
+
186
+ ## Red Flags
187
+
188
+ Stop and re-read this skill if you are thinking:
189
+
190
+ | Rationalization | Rebuttal |
191
+ |---|---|
192
+ | "They said 'sounds good', so the whole summary is approved." | A single agreeable noise is not confirmation of a list of decisions, constraints, assumptions and risks. The Assumptions block is labelled "please verify" for a reason — if the user did not address an assumption, it stays an assumption in the output contract, not a confirmed decision. |
193
+ | "The user said 'just do it', so I can drop the unknowns." | Impatience ends the interview; it does not resolve anything. Every remaining uncertainty zone becomes an entry in `assumptions` with the risk it carries. Dropping it hides the guess from the skill that will act on it. |
194
+ | "This is an interesting question, so it belongs in the interview." | The bar is impact: the answer must change the implementation. Questions derivable from the codebase, or whose answers change nothing, spend the user's limited patience on nothing and push the real question past the 7-question ceiling. |
195
+ | "The user picked D) Need more context, so this question is unanswered — move on." | D is a request, not an answer. Explain or run a mini `/brainstorm --quick` on that point, then re-ask. Silently skipping it leaves the highest-uncertainty question the least answered. |
196
+ | "The caller gave me `context`, so I should confirm what it says with the user." | Re-asking what the context already answers is the failure the Phase 2 skip rule names. Read `context` and `known_facts` first; ask only about what neither settles. |
197
+ | "I was dispatched as a subagent with a task, and the task is ambiguous, so I'll interview." | See the SUBAGENT-STOP block at the top: a dispatched subagent proceeds with its assigned task. There is no user on the other end of a dispatch to answer. |
198
+
199
+ ## Verification
200
+
201
+ Before returning, all of these must hold:
202
+
203
+ - The output contract has all five keys — `decisions`, `constraints`, `assumptions`, `risks`, `refined_goal` — and none is a placeholder.
204
+ - Every entry in `decisions` carries an `impact` of `high` or `medium` and traces to a question the user actually answered.
205
+ - Anything the user skipped, deferred, or did not address is in `assumptions`, not in `decisions`.
206
+ - No more than 7 questions were asked, one at a time, and none duplicated what `context` or `known_facts` already stated.
207
+ - `refined_goal` is unambiguous enough that a downstream skill could act on it without re-reading the transcript.
208
+ - The Interview Summary was shown and the user was asked "Does this look right?" — and any correction they gave is reflected in the returned contract.
209
+ - In standalone mode, the handoff names the next skill rather than ending with the summary.
@@ -1,10 +1,12 @@
1
1
  ---
2
2
  name: interviewer
3
- description: "Use when a request is ambiguous and must be pinned down BEFORE any context is collected — the entry-point interview that turns a vague or expensive ask into a scoped brief. This is the `custom`-intent gate job-orchestrator runs at 0.1.5. For clarifying implementation specifics AFTER context is already collected, use `interview` instead."
3
+ description: "Use when a request is ambiguous and must be pinned down BEFORE any context is collected — the entry-point interview that turns a vague or expensive ask into a scoped brief. This is the `custom`-intent gate job-orchestrator runs at 0.1.5. NOT for: clarifying implementation specifics AFTER context is already collected — use `interview` instead."
4
4
  triggers:
5
+ - "ask questions"
6
+ - "clarify requirements"
7
+ - "interview"
5
8
  - "Interview me"
6
9
  - "Ask me questions"
7
- - "Clarify requirements"
8
10
  - "Gather requirements"
9
11
  - "What do you need to know"
10
12
  metadata:
@@ -43,6 +45,7 @@ context?: { — optional, provided by calling skill
43
45
  ```
44
46
  answers: [{question, answer, confidence: "certain"|"assumption"|"unknown"}]
45
47
  derived_context: string — all gathered info as one coherent block
48
+ summary_confidence: "certain"|"assumption"|"unknown" — weakest confidence in answers
46
49
  ready_to_proceed: boolean
47
50
  blockers?: string[] — unresolved critical unknowns
48
51
  ```
@@ -82,24 +85,47 @@ blockers?: string[] — unresolved critical unknowns
82
85
  - **Skip if already known** — if context answers a question, don't ask it
83
86
  - **Be critical** — focus on questions that would change the approach
84
87
  - **Max 8 questions** — stop when enough context is gathered
85
- - **Confirm before proceeding** — summarize gathered context and ask if correct
88
+ - **Confirm before proceeding** — summarize gathered context, state the summary's own confidence (the weakest of the answers it rests on), and ask if correct
86
89
 
87
90
  ## Question Bank by Goal Type
88
91
 
89
92
  ### For implementation goals
90
93
  - What is the expected input/output?
91
94
  - What are the edge cases that must be handled?
92
- - Are there existing similar patterns in the codebase to follow?
93
95
  - What is the performance/scale requirement?
94
96
  - What should NOT be changed (constraints)?
95
97
 
96
98
  ### For review goals
97
99
  - What specific concerns should the review focus on?
98
- - Are there known existing issues to watch for?
99
100
  - What is the acceptance criteria?
100
101
 
101
102
  ### For architecture/design goals
102
103
  - What are the hard constraints (performance, compat, timeline)?
103
- - What does success look like in 6 months?
104
104
  - What are you most worried about?
105
105
  - Who else is affected by this decision?
106
+
107
+ ## Red Flags
108
+
109
+ Stop and re-read this skill if you are thinking:
110
+
111
+ | Rationalization | Rebuttal |
112
+ |---|---|
113
+ | "These three questions are related, so I'll ask them in one message to save time." | One question at a time is the rule, and it is not politeness. A batch gets one answer to the easiest item and silence on the rest, which you then record as if it had been answered. |
114
+ | "The answer was vague, but I understood the gist, so `ready_to_proceed: true`." | A gist is an assumption. Either ask the follow-up, or record the item in `blockers` with `confidence: "assumption"` and leave `ready_to_proceed` false. Proceeding on a gist is exactly the wasted work this gate exists to prevent. |
115
+ | "They said 'sure, that sounds about right', so that is a yes and `ready_to_proceed: true`." | A hedge is not a refusal and it is not approval. This is not the vague-answer case above — you understood the answer perfectly, and it committed the user to nothing. Name the hedge back ("that is a 'probably' — is it a yes?") and ask the question that forces one. If no commitment comes, the item is recorded as `confidence: "assumption"`, never as confirmation. (That a hedged agreement is not approval is adapted (MIT) from [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills); naming the hedge back and the confidence enum are ours.) |
116
+ | "I inferred the answer from the codebase, so I can mark it `certain`." | `certain` means the user said it. An inference is `assumption`, even a good one — the confidence field is the only signal downstream skills have about which parts of `derived_context` are load-bearing guesses. |
117
+ | "I've hit the 8-question limit and still don't know, so I'll pick the likely answer." | The limit is a stop rule, not a licence to invent. Remaining unknowns go into `blockers`, `ready_to_proceed` goes false, and the caller decides. |
118
+ | "Context-collector already ran, so anything still missing must not matter." | Collected context answers what the codebase knows, not what the user intends. Scope, priority and what must NOT change are never in the codebase, and those are the answers that change the approach. |
119
+ | "I was dispatched as a subagent with a task, and the task is unclear, so I'll interview." | See the SUBAGENT-STOP block at the top: a dispatched subagent proceeds with its assigned task. Interviewing from inside a dispatch asks questions nobody is there to answer. |
120
+
121
+ ## Verification
122
+
123
+ Before returning, all of these must hold:
124
+
125
+ - Every entry in `answers` carries a question, an answer, and a `confidence` value from the enum — no blank or invented confidences.
126
+ - No question was asked that the provided context already answered, and no two questions were sent in one message.
127
+ - At most 8 questions were asked.
128
+ - Every `assumption` or `unknown` was either resolved with a follow-up or is listed in `blockers`.
129
+ - `summary_confidence` equals the weakest confidence in `answers`, and was stated when the summary was read back — a user approving a summary built on assumptions was told that is what they were approving.
130
+ - `ready_to_proceed` is `false` whenever `blockers` is non-empty, and `true` only after the user confirmed the summarized context.
131
+ - `derived_context` reads as one coherent block a downstream skill can act on, and states which of its claims are assumptions.
@@ -5,6 +5,10 @@ description: >
5
5
  application architecture patterns. Produces constraints that PRD must follow.
6
6
  Use when: dispatched by gproject-orchestrator Phase 3.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "research patterns"
10
+ - "architecture patterns"
11
+ - "best practices"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  compatible_harnesses: "cursor,codex,zed,opencode"
@@ -29,6 +33,18 @@ and architectural decisions for each technology. The output becomes a set of
29
33
  | 5 | Output MUST be structured as checkable constraints, not prose advice |
30
34
  | 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
31
35
 
36
+ ## Red Flags
37
+
38
+ Stop and re-read this skill if you are thinking:
39
+
40
+ | Rationalization | Rebuttal |
41
+ |---|---|
42
+ | "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
43
+ | "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
44
+ | "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
45
+ | "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
46
+ | "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
47
+
32
48
  ---
33
49
 
34
50
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  application architecture patterns. Produces constraints that PRD must follow.
6
6
  Use when: dispatched by gproject-orchestrator Phase 3.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "research patterns"
10
+ - "architecture patterns"
11
+ - "best practices"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  compatible_harnesses: "cursor,codex,zed,opencode"
@@ -29,6 +33,18 @@ and architectural decisions for each technology. The output becomes a set of
29
33
  | 5 | Output MUST be structured as checkable constraints, not prose advice |
30
34
  | 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
31
35
 
36
+ ## Red Flags
37
+
38
+ Stop and re-read this skill if you are thinking:
39
+
40
+ | Rationalization | Rebuttal |
41
+ |---|---|
42
+ | "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
43
+ | "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
44
+ | "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
45
+ | "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
46
+ | "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
47
+
32
48
  ---
33
49
 
34
50
  ## Input Contract
@@ -5,6 +5,10 @@ description: >
5
5
  application architecture patterns. Produces constraints that PRD must follow.
6
6
  Use when: dispatched by gproject-orchestrator Phase 3.
7
7
  NOT for: direct user invocation.
8
+ triggers:
9
+ - "research patterns"
10
+ - "architecture patterns"
11
+ - "best practices"
8
12
  metadata:
9
13
  version: 1.0.0
10
14
  ---
@@ -28,6 +32,18 @@ and architectural decisions for each technology. The output becomes a set of
28
32
  | 5 | Output MUST be structured as checkable constraints, not prose advice |
29
33
  | 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
30
34
 
35
+ ## Red Flags
36
+
37
+ Stop and re-read this skill if you are thinking:
38
+
39
+ | Rationalization | Rebuttal |
40
+ |---|---|
41
+ | "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
42
+ | "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
43
+ | "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
44
+ | "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
45
+ | "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
46
+
31
47
  ---
32
48
 
33
49
  ## Input Contract