@mrciphersmith/keryx 0.2.97 → 0.2.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4583 -2702
- package/dist/core.js +40 -2
- package/package.json +1 -1
- package/src/gdskills/bundled/rules/core/api-contracts.mdc +1 -0
- package/src/gdskills/bundled/rules/core/cli-interface-design.mdc +237 -0
- package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/database-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/definition-of-done.mdc +116 -0
- package/src/gdskills/bundled/rules/core/documentation-management.mdc +33 -38
- package/src/gdskills/bundled/rules/core/error-handling.mdc +1 -11
- package/src/gdskills/bundled/rules/core/execution-metrics.md +1 -2
- package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +1 -0
- package/src/gdskills/bundled/rules/core/git-concurrency.mdc +101 -0
- package/src/gdskills/bundled/rules/core/implementation-plans.mdc +23 -11
- package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +1 -0
- package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +1 -0
- package/src/gdskills/bundled/rules/core/playwright-testing.mdc +1 -0
- package/src/gdskills/bundled/rules/core/requirements-management.mdc +15 -11
- package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +29 -14
- package/src/gdskills/bundled/rules/core/shared-definitions.mdc +1 -1
- package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +9 -5
- package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +156 -23
- package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +1 -0
- package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +9 -2
- package/src/gdskills/bundled/skills/core/reviewer-skill-creator/SKILL.md +42 -5
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +67 -74
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +24 -8
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +44 -31
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +4 -4
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +20 -6
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +67 -9
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +6 -6
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +45 -5
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +88 -32
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +52 -41
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +32 -1
- package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +29 -4
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +17 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +17 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +32 -2
- package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +14 -2
- package/src/gdskills/bundled/skills/planning/interview/SKILL.md +30 -8
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +33 -7
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +17 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +17 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +27 -10
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +4 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +4 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +4 -0
- package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +31 -4
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +27 -3
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +29 -4
- package/src/gdskills/bundled/skills/quality/api-truth/SKILL.md +226 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +25 -5
- package/src/gdskills/bundled/skills/quality/commit/SKILL.md +26 -5
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +26 -5
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +27 -4
- package/src/gdskills/bundled/skills/quality/deprecation-path/SKILL.md +268 -0
- package/src/gdskills/bundled/skills/quality/fresh-eyes/SKILL.md +190 -0
- package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +24 -3
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +30 -9
- package/src/gdskills/bundled/skills/quality/pr/SKILL.md +25 -5
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +27 -4
- package/src/gdskills/bundled/skills/quality/push/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/root-cause/SKILL.md +204 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +31 -5
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +32 -11
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +42 -7
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +43 -3
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +46 -4
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +46 -6
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +5 -6
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +6 -6
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +37 -3
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +38 -4
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +4 -6
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +37 -3
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +5 -7
- package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +24 -3
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +49 -64
- package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +1 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +1 -5
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +53 -9
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +11 -11
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +9 -8
- package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +33 -2
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +6 -4
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +41 -3
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +2 -2
- package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +0 -49
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +0 -48
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +0 -163
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +0 -163
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +0 -659
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +0 -90
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +0 -90
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +0 -187
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +0 -187
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +0 -105
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +0 -105
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +0 -193
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +0 -87
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +0 -87
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +0 -100
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +0 -100
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +0 -84
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +0 -84
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +0 -66
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +0 -66
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +0 -66
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +0 -66
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +0 -81
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +0 -81
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +0 -70
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +0 -70
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +0 -83
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +0 -83
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +0 -75
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +0 -75
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +0 -378
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +0 -52
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +0 -52
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +0 -108
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +0 -108
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +0 -75
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +0 -75
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +0 -339
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +0 -203
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +0 -243
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +0 -259
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +0 -168
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: task-implementer
|
|
3
3
|
model_tier: standard
|
|
4
|
-
description: "Use when implementing a single
|
|
4
|
+
description: "Use when implementing a single task out of an issue-analyzer breakdown end-to-end, or executing autonomous code changes from a JSON task object. NOT for: splitting an issue into that breakdown in the first place (use issue-analyzer)."
|
|
5
5
|
triggers:
|
|
6
|
-
- "
|
|
6
|
+
- "implement task"
|
|
7
|
+
- "execute task"
|
|
8
|
+
- "atomic task"
|
|
7
9
|
- "Execute task scenario"
|
|
8
10
|
- "Code this task"
|
|
9
11
|
- "Run task-implementer"
|
|
@@ -11,7 +13,7 @@ triggers:
|
|
|
11
13
|
metadata:
|
|
12
14
|
author: "MrCipherSmith"
|
|
13
15
|
version: "1.3.1"
|
|
14
|
-
category: "
|
|
16
|
+
category: "orchestration"
|
|
15
17
|
agent_worthy: true
|
|
16
18
|
compatible_harnesses: "claude,cursor,codex,zed,opencode"
|
|
17
19
|
license: "MIT"
|
|
@@ -183,7 +185,7 @@ This step is read-only and inline; do not spawn a subagent for it.
|
|
|
183
185
|
(`input-contract.schema.json`). Empty means none; the string `"none"` is not a
|
|
184
186
|
legal value and a request carrying it is refused by 1.4
|
|
185
187
|
- Read each file listed in either array
|
|
186
|
-
- Understand existing test patterns (describe/it structure, mocks, fixtures)
|
|
188
|
+
- Understand existing test patterns (describe/it structure, mocks, fixtures) and, for every file in `existing_stories`, the story patterns it uses (`Meta`/`StoryObj` shape, how variants are declared, how callbacks are stubbed) — 4.4 builds on what you record here
|
|
187
189
|
|
|
188
190
|
**2.3 Read module neighbors:**
|
|
189
191
|
- List sibling files in the same directory as each target file
|
|
@@ -222,18 +224,6 @@ Based on what you're implementing, load and follow the relevant project rules.
|
|
|
222
224
|
|
|
223
225
|
Rules live at `.metaproject/rules/core/<rule>.mdc` on every harness — that is the
|
|
224
226
|
one tree `keryx init` installs and the one every build of this skill reads.
|
|
225
|
-
Cursor additionally mirrors them under `.cursor/rules/core/<rule>.mdc`; when both
|
|
226
|
-
are present they are copies of the same file, so read either.
|
|
227
|
-
|
|
228
|
-
**Output of Phase 2:** Mental model of the implementation:
|
|
229
|
-
```
|
|
230
|
-
RESEARCH_SUMMARY:
|
|
231
|
-
target_files_status: [{path, exists: bool, line_count, key_exports}]
|
|
232
|
-
test_pattern: <describe structure, assertion style>
|
|
233
|
-
story_pattern: <Meta/StoryObj, args pattern>
|
|
234
|
-
module_conventions: <naming, imports, exports, TS patterns>
|
|
235
|
-
relevant_rules_loaded: [<rule names>]
|
|
236
|
-
```
|
|
237
227
|
|
|
238
228
|
### Phase 3: PLAN
|
|
239
229
|
|
|
@@ -288,13 +278,6 @@ Execute the change plan. Write production-quality code.
|
|
|
288
278
|
5. Component/UI layer implementation (make component tests GREEN)
|
|
289
279
|
6. Stories (if needed)
|
|
290
280
|
|
|
291
|
-
**4.1 Implementation order (TDD Mode — test_case_specs provided):**
|
|
292
|
-
1. Read all test stubs from `test_case_specs.test_files`
|
|
293
|
-
2. Understand the expected API shape from test assertions
|
|
294
|
-
3. Implement types/interfaces to satisfy test imports
|
|
295
|
-
4. Implement code layer by layer until all tests are GREEN
|
|
296
|
-
5. Stories (if needed)
|
|
297
|
-
|
|
298
281
|
**4.2 Code standards (always follow):**
|
|
299
282
|
- TypeScript strict mode — no `any`, no `as` casts unless justified
|
|
300
283
|
- Use project path aliases for imports (`@components/...`, `@utils/...`)
|
|
@@ -304,28 +287,28 @@ Execute the change plan. Write production-quality code.
|
|
|
304
287
|
- Follow existing module patterns discovered in Phase 2
|
|
305
288
|
|
|
306
289
|
**4.3 Test standards:**
|
|
307
|
-
-
|
|
308
|
-
- Use `data-testid` for test selectors
|
|
309
|
-
- Follow AAA pattern (Arrange, Act, Assert)
|
|
310
|
-
- Mock external dependencies, not internal module logic
|
|
290
|
+
- Use the runner, selectors and structure Phase 2.2 found in this project's own tests — not a remembered stack. Arrange/Act/Assert; mock external dependencies, not internal module logic.
|
|
311
291
|
|
|
312
292
|
**4.4 Story standards:**
|
|
313
|
-
- `Meta` + `StoryObj`
|
|
314
|
-
- `args`-based variants
|
|
315
|
-
- `fn()` for action callbacks
|
|
316
|
-
- Cover: default state, edge cases, error states
|
|
293
|
+
- Use the story patterns Phase 2.2 found (`Meta` + `StoryObj`, `args`-based variants, `fn()` callbacks); cover default state, edge cases and error states.
|
|
317
294
|
|
|
318
295
|
**4.5 Commit after implementation:**
|
|
319
296
|
|
|
320
|
-
When auto-commit is enabled, create a conventional commit with the changes. Include the `refs #<issue_number>` line below only when a positive real issue number was supplied; otherwise omit that entire line:
|
|
297
|
+
When auto-commit is enabled, create a conventional commit with the changes. Stage explicit paths only — never `-A`/`--all`/`.` — and run every git command as `git -C "<codebase_path>"` (`rules/core/git-concurrency.mdc`). Include the `refs #<issue_number>` line below only when a positive real issue number was supplied; otherwise omit that entire line:
|
|
321
298
|
```bash
|
|
322
|
-
git add <modified files>
|
|
323
|
-
git commit -m "<type>(<scope>): <description>
|
|
299
|
+
git -C "<codebase_path>" add <modified files, explicit paths>
|
|
300
|
+
git -C "<codebase_path>" commit -m "<type>(<scope>): <description>
|
|
324
301
|
|
|
325
302
|
refs #<issue_number>
|
|
326
303
|
task: <task_id>"
|
|
327
304
|
```
|
|
328
305
|
|
|
306
|
+
When auto-commit is disabled, do not commit. Report the exact list of files you
|
|
307
|
+
changed — nothing inferred — in the Phase 6 STATUS response and the result
|
|
308
|
+
file's `files_modified`/`files_created`/`files_deleted`; the orchestrator stages
|
|
309
|
+
and commits those exact paths at the task boundary (`rules/core/git-concurrency.mdc`,
|
|
310
|
+
"Reporting Back").
|
|
311
|
+
|
|
329
312
|
Commit type mapping:
|
|
330
313
|
| Task Type | Commit Type |
|
|
331
314
|
|-----------|-------------|
|
|
@@ -395,21 +378,25 @@ attempts. The counter cannot tell "converging slowly" from "stuck", and three
|
|
|
395
378
|
identical outputs cost the whole budget to learn what the second one already
|
|
396
379
|
said. Report the block instead, naming what repeated.
|
|
397
380
|
|
|
398
|
-
|
|
399
|
-
**ROLLBACK POLICY**: If implementation fatally fails (tests still failing after 3 attempts, or unresolvable compilation errors), restore ONLY the files this task changed — `git checkout -- <your files>` for tracked ones, delete the untracked ones you created — then report the failure in Phase 6.
|
|
381
|
+
**ROLLBACK POLICY**: If implementation fatally fails (tests still failing after 3 attempts, or unresolvable compilation errors), restore ONLY the files this task changed — `git -C "<codebase_path>" checkout -- <your files>` for tracked ones, delete the untracked ones you created — then report the failure in Phase 6.
|
|
400
382
|
|
|
401
383
|
**Never run `git reset --hard`, `git clean`, or any unscoped revert.** You do not own the worktree. `job-orchestrator` dispatches implementers in PARALLEL WAVES sharing a single worktree, so an unscoped reset destroys a wave-mate's uncommitted work — work that is not yours, cannot be recovered, and whose loss is invisible to you because the other agent's failure surfaces somewhere else entirely. If you cannot identify which files are yours, leave the tree exactly as it is and say so in the report: a dirty tree is recoverable, a destroyed one is not.
|
|
402
384
|
|
|
385
|
+
**Same reasoning bans `git stash` and unscoped `git add`.** Never `git stash` — the stash stack is shared by every worktree, so even a scoped `push -- <file>` can be popped by another lane. Stage only the files this task changed (`git -C "<codebase_path>" add <path> <path>`), never `-A`/`--all`/`.`. Every git command runs as `git -C <this worktree's absolute path>`. See `rules/core/git-concurrency.mdc`.
|
|
386
|
+
|
|
403
387
|
**5.5 Re-commit fixes if any:**
|
|
404
|
-
When auto-commit is enabled, use the template below. Include `refs #<issue_number>` only for a supplied positive real issue number; otherwise omit that entire line.
|
|
388
|
+
When auto-commit is enabled, use the template below — explicit paths only, `git -C "<codebase_path>"` for every command (`rules/core/git-concurrency.mdc`). Include `refs #<issue_number>` only for a supplied positive real issue number; otherwise omit that entire line.
|
|
405
389
|
```bash
|
|
406
|
-
git add <fixed files>
|
|
407
|
-
git commit -m "fix(<scope>): resolve lint/type/test issues
|
|
390
|
+
git -C "<codebase_path>" add <fixed files, explicit paths>
|
|
391
|
+
git -C "<codebase_path>" commit -m "fix(<scope>): resolve lint/type/test issues
|
|
408
392
|
|
|
409
393
|
refs #<issue_number>
|
|
410
394
|
task: <task_id>"
|
|
411
395
|
```
|
|
412
396
|
|
|
397
|
+
When auto-commit is disabled, do not commit; report the exact fixed-file list in
|
|
398
|
+
Phase 6 as in 4.5 — the orchestrator commits it at the task boundary.
|
|
399
|
+
|
|
413
400
|
### Phase 6: REPORT
|
|
414
401
|
|
|
415
402
|
Write the full result to a file, then emit a compact STATUS response to the orchestrator.
|
|
@@ -438,12 +425,30 @@ Write full JSON to `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`:
|
|
|
438
425
|
"story_result": "<pass|build error: details|not applicable>",
|
|
439
426
|
"acceptance_criteria_met": "<all|partial: list of unmet criteria|none>",
|
|
440
427
|
"skill_drift": "<none | stale: <module>/<skill> — <what diverged> | missing: <module> should have a project-skill>",
|
|
428
|
+
"noticed_not_touched": [{ "what": "<problem>", "where": "<path|symbol>" }],
|
|
429
|
+
"assumptions": ["<what you assumed where the task did not say>"],
|
|
430
|
+
"not_touched": [{ "path": "src/path/file.ts", "reason": "<why left alone>" }],
|
|
441
431
|
"notes": "<any warnings, blockers, or additional context>"
|
|
442
432
|
}
|
|
443
433
|
```
|
|
444
434
|
|
|
445
435
|
Set `skill_drift` from Phase 2.0b: if the project-skill you used was not `fresh`, or the code you wrote diverged from what a skill documents, name the skill and the divergence. The orchestrator uses this to decide whether to trigger `skills learn` (do NOT run `learn` yourself — it is a mutating step the orchestrator dispatches; see `rules/core/skill-lifecycle.mdc`).
|
|
446
436
|
|
|
437
|
+
Three of those fields have a bar, and a field that collects noise trains the
|
|
438
|
+
reader to skim all three. Omit one rather than pad it. The trio is adapted (MIT)
|
|
439
|
+
from [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) as contract fields rather than a free-text template; the bars below are ours.
|
|
440
|
+
|
|
441
|
+
- `assumptions` — what you assumed where the task was silent AND acted on. If
|
|
442
|
+
the assumption being wrong would not change a line you wrote, it is a hedge,
|
|
443
|
+
not an assumption; leave it out.
|
|
444
|
+
- `noticed_not_touched` — a problem in code you actually read, stated so a
|
|
445
|
+
follow-up task could be written from it alone, with `where` it lives. Not a
|
|
446
|
+
dumping ground for every smell seen in passing, and not style opinion.
|
|
447
|
+
- `not_touched` — of the files this task was aimed at (`target_files`), the ones
|
|
448
|
+
absent from `files_modified`/`files_created`/`files_deleted`, each with why.
|
|
449
|
+
It answers that one question and no other: a reader subtracts those lists and
|
|
450
|
+
this one from `target_files`, and flags the remainder as an unexplained omission.
|
|
451
|
+
|
|
447
452
|
Then check the shape and record the file — two commands, both of which refuse
|
|
448
453
|
rather than warn:
|
|
449
454
|
|
|
@@ -487,8 +492,14 @@ Return a compact STATUS response following `rules/core/subagent-status-protocol.
|
|
|
487
492
|
The inline response must contain only: STATUS line + Completed bullets + Files changed + Verification summary.
|
|
488
493
|
|
|
489
494
|
**Status classification:**
|
|
490
|
-
- `success` → `STATUS: DONE`
|
|
491
|
-
|
|
495
|
+
- `success` → `STATUS: DONE`, or `DONE_WITH_CONCERNS` when work that cleared the
|
|
496
|
+
bar still carries something the orchestrator must know.
|
|
497
|
+
- `partial` → `STATUS: BLOCKED` — never `DONE_WITH_CONCERNS`. An unmet criterion,
|
|
498
|
+
a failed gate or a gate that did not run breaks `rules/core/definition-of-done.mdc`,
|
|
499
|
+
and `DONE_WITH_CONCERNS` reports on work that cleared that bar, never a lower
|
|
500
|
+
one. The harness already reads it this way: `shouldEscalate`
|
|
501
|
+
(`src/harness/child/escalation.ts`) escalates on any `acceptance[].status` of
|
|
502
|
+
`not_met` whatever token arrived with it.
|
|
492
503
|
- `failed` → `STATUS: BLOCKED`
|
|
493
504
|
|
|
494
505
|
---
|
package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json
CHANGED
|
@@ -47,9 +47,40 @@
|
|
|
47
47
|
"type": "string",
|
|
48
48
|
"description": "Set from SKILL.md Phase 2.0b: 'none' | 'stale: <module>/<skill> — <what diverged>' | 'missing: <module> should have a project-skill'. SKILL.md has required this field since project-skill verification was added; this object is `additionalProperties: false`, so until it was declared here a compliant result was REFUSED by its own contract."
|
|
49
49
|
},
|
|
50
|
+
"noticed_not_touched": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"description": "Problems seen in passing and deliberately left alone because they were out of scope. Candidate follow-up work: the location is required because a note a reader has to go searching for is a note nobody acts on. Omit the field when nothing was noticed; `[]` says the same thing explicitly.",
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"required": ["what", "where"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"what": { "type": "string", "minLength": 1, "description": "The problem, stated so a follow-up task could be written from it alone" },
|
|
59
|
+
"where": { "type": "string", "minLength": 1, "description": "Path, directory or symbol it lives at" }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"assumptions": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"description": "What was assumed where the task did not say. A wrong assumption is the usual cause of a rejected result, so these are the first thing a reviewer should check. Read only by a human — nothing in the result or the request can confirm an assumption, so this is deliberately an array of sentences rather than a structure that would imply a check nobody performs.",
|
|
66
|
+
"items": { "type": "string", "minLength": 1 }
|
|
67
|
+
},
|
|
68
|
+
"not_touched": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"description": "Files a reader would expect in `files_modified` and will not find there, each with the reason. `path` is a separate field because this is machine-checkable: a reader holding the request can subtract `files_modified`/`files_created`/`files_deleted` and this list from `task.target_files` and flag whatever is left as an unexplained omission.",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["path", "reason"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"path": { "type": "string", "minLength": 1 },
|
|
77
|
+
"reason": { "type": "string", "minLength": 1, "description": "Why it was left alone — 'already correct', 'out of scope', 'blocked by <x>'" }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
50
81
|
"notes": {
|
|
51
82
|
"type": "string",
|
|
52
|
-
"description": "Warnings, blockers, or additional context"
|
|
83
|
+
"description": "Warnings, blockers, or additional context. The three fields above were carved out of this one: free text is where they went before they were declared, and anything that fits one of them belongs there instead."
|
|
53
84
|
}
|
|
54
85
|
}
|
|
55
86
|
}
|
|
@@ -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
|
-
- "
|
|
6
|
-
- "
|
|
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"
|
|
@@ -11,7 +12,7 @@ triggers:
|
|
|
11
12
|
metadata:
|
|
12
13
|
author: "MrCipherSmith"
|
|
13
14
|
version: "1.0.0"
|
|
14
|
-
category: "
|
|
15
|
+
category: "planning"
|
|
15
16
|
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
16
17
|
license: "MIT"
|
|
17
18
|
---
|
|
@@ -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:
|