@mrciphersmith/keryx 0.2.71 → 0.2.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4632 -2229
- package/package.json +2 -2
- package/src/gdskills/bundled/rules/core/code-review-learned-profile.mdc +81 -0
- package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +1 -1
- package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +2 -2
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +8 -4
- package/src/gdskills/bundled/rules/core/subagent-context-construction.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +326 -20
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +320 -22
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +326 -12
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +333 -9
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +102 -42
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +102 -42
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +944 -514
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +38 -28
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +98 -66
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +27 -5
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +120 -37
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +57 -15
- package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +50 -23
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +6 -2
- package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +18 -12
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +168 -9
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +168 -9
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +7 -1
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +7 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +7 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +7 -1
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +215 -9
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +215 -9
- package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +168 -9
- package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +168 -9
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +133 -9
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +133 -9
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +145 -9
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +145 -9
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +210 -9
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +210 -9
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +161 -9
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +161 -9
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +15 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +248 -165
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +15 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +359 -19
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +299 -24
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +296 -31
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +309 -18
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +312 -17
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +29 -30
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +243 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +19 -23
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +17 -24
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +26 -13
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +36 -17
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/shared/git-merge-base.md +1 -1
- package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +0 -48
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +0 -46
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +0 -94
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +0 -45
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +0 -40
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +0 -45
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +0 -42
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +0 -48
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +0 -40
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +0 -30
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +0 -208
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +0 -209
|
@@ -10,10 +10,10 @@ triggers:
|
|
|
10
10
|
- "Implement issue task"
|
|
11
11
|
metadata:
|
|
12
12
|
author: "MrCipherSmith"
|
|
13
|
-
version: "1.
|
|
13
|
+
version: "1.3.0"
|
|
14
14
|
category: "implementation"
|
|
15
15
|
agent_worthy: true
|
|
16
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
16
|
+
compatible_harnesses: "claude,cursor,codex,zed,opencode"
|
|
17
17
|
license: "MIT"
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -69,7 +69,7 @@ TASK: (from JSON object passed by orchestrator)
|
|
|
69
69
|
task_name: string, e.g. "Add validation to form"
|
|
70
70
|
task_type: string: ui_component|store_logic|service_api|refactoring|fix|mixed
|
|
71
71
|
complexity: string: low|medium|high
|
|
72
|
-
dependencies: array of task_id strings
|
|
72
|
+
dependencies: array of task_id strings this task reads from
|
|
73
73
|
description: string: what to implement
|
|
74
74
|
target_files: array of file path strings
|
|
75
75
|
acceptance_criteria: array of criterion strings
|
|
@@ -95,17 +95,46 @@ WORKSPACE:
|
|
|
95
95
|
```
|
|
96
96
|
FIX_CONTEXT:
|
|
97
97
|
review_feedback: structured findings from reviewer (file, line, severity, message)
|
|
98
|
-
|
|
99
|
-
iteration: fix iteration number
|
|
98
|
+
original_task_ids: the tasks that introduced the findings (array)
|
|
99
|
+
iteration: fix iteration number, 1..3 — the same repair bound as 5.4
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
**1.4 Validate:**
|
|
102
|
+
**1.4 Validate the request against the contract:**
|
|
103
|
+
|
|
104
|
+
Write the request you were handed to a file and run:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
keryx skills contracts validate <request.json> --schema task-implementer-input
|
|
103
108
|
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
|
|
110
|
+
Non-zero exit means the dispatch is malformed — ABORT and report `NEEDS_CONTEXT`
|
|
111
|
+
with the validator's own message. Do not repair the request yourself; the
|
|
112
|
+
orchestrator owns it.
|
|
113
|
+
|
|
114
|
+
The refusals are the contract's, not a checklist you run by eye
|
|
115
|
+
(`input-contract.schema.json`, registered in `src/gdskills/contracts.ts`):
|
|
116
|
+
|
|
117
|
+
| What is refused | Where the schema says so |
|
|
118
|
+
|---|---|
|
|
119
|
+
| Missing `task_id` / `task_name` / `task_type` / `description` / `target_files` / `acceptance_criteria` | `task.required` |
|
|
120
|
+
| `task_type` outside `ui_component\|store_logic\|service_api\|refactoring\|fix\|mixed` | `task.task_type.enum` |
|
|
121
|
+
| A `task_id` that is not `task-<n>` | `task.task_id.pattern` |
|
|
122
|
+
| Empty `target_files` or empty `acceptance_criteria` | `minItems: 1` on both |
|
|
123
|
+
| Missing `codebase_path` / `branch` / `issue_number` | `workspace.required` |
|
|
124
|
+
| `skip_confirmation` anything but `true` | `automation.skip_confirmation.const` |
|
|
125
|
+
| `max_self_fix_attempts` above 3 | `automation.max_self_fix_attempts.maximum` |
|
|
126
|
+
| Any field the contract does not declare | `additionalProperties: false` |
|
|
127
|
+
|
|
128
|
+
The list above is a reading aid. The schema is the authority, and if the two
|
|
129
|
+
disagree the schema wins.
|
|
130
|
+
|
|
131
|
+
Two things a schema cannot check, because they are facts about the machine
|
|
132
|
+
rather than about the payload. Check them yourself and ABORT with
|
|
133
|
+
`STATUS: NEEDS_CONTEXT` on either:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
test -d "<codebase_path>" # otherwise: codebase path not found
|
|
137
|
+
git -C "<codebase_path>" rev-parse --abbrev-ref HEAD # must equal <branch>
|
|
109
138
|
```
|
|
110
139
|
|
|
111
140
|
**1.5 TDD Check (if `test_case_specs` is present):**
|
|
@@ -148,8 +177,10 @@ This step is read-only and inline; do not spawn a subagent for it.
|
|
|
148
177
|
- Read the `context` field for additional type/signature info
|
|
149
178
|
|
|
150
179
|
**2.2 Read existing tests and stories:**
|
|
151
|
-
-
|
|
152
|
-
-
|
|
180
|
+
- `existing_tests` and `existing_stories` are arrays and default to `[]`
|
|
181
|
+
(`input-contract.schema.json`). Empty means none; the string `"none"` is not a
|
|
182
|
+
legal value and a request carrying it is refused by 1.4
|
|
183
|
+
- Read each file listed in either array
|
|
153
184
|
- Understand existing test patterns (describe/it structure, mocks, fixtures)
|
|
154
185
|
|
|
155
186
|
**2.3 Read module neighbors:**
|
|
@@ -187,10 +218,10 @@ Based on what you're implementing, load and follow the relevant project rules.
|
|
|
187
218
|
- `async`/`await` or queue code → `async-patterns.mdc`
|
|
188
219
|
- New architectural layers or modules → `clean-architecture.mdc`
|
|
189
220
|
|
|
190
|
-
Rules
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
221
|
+
Rules live at `.metaproject/rules/core/<rule>.mdc` on every harness — that is the
|
|
222
|
+
one tree `keryx init` installs and the one every build of this skill reads.
|
|
223
|
+
Cursor additionally mirrors them under `.cursor/rules/core/<rule>.mdc`; when both
|
|
224
|
+
are present they are copies of the same file, so read either.
|
|
194
225
|
|
|
195
226
|
**Output of Phase 2:** Mental model of the implementation:
|
|
196
227
|
```
|
|
@@ -308,28 +339,38 @@ Commit type mapping:
|
|
|
308
339
|
Run verification checks appropriate to the task type.
|
|
309
340
|
|
|
310
341
|
**5.1 Always run:**
|
|
342
|
+
|
|
311
343
|
```bash
|
|
312
|
-
|
|
313
|
-
npm run type-check # tsc --noEmit
|
|
344
|
+
keryx health run --changed --source eslint,typescript
|
|
314
345
|
```
|
|
315
346
|
|
|
347
|
+
Lint and type-check in one call, over the changed files only. Do NOT hard-code a
|
|
348
|
+
package manager and a script name: the project may not be an npm project, and
|
|
349
|
+
`src/health/sources/eslint.ts` and `src/health/sources/typescript.ts` resolve the
|
|
350
|
+
real invocation. The run writes a normalized report; `keryx health status` prints
|
|
351
|
+
it.
|
|
352
|
+
|
|
316
353
|
**5.2 Run if tests exist:**
|
|
354
|
+
|
|
317
355
|
```bash
|
|
318
|
-
|
|
356
|
+
keryx test run --changed --strict
|
|
319
357
|
```
|
|
320
358
|
|
|
321
|
-
|
|
359
|
+
`src/testing/service.ts:780` detects `bun` / `pnpm` / `yarn` / `npm` from the
|
|
360
|
+
lockfile and builds the argv from the project's own test script — the
|
|
361
|
+
if-chain you would otherwise write in shell, already written. `--strict` makes a
|
|
362
|
+
non-zero exit the signal; if tests were created or modified they must pass.
|
|
322
363
|
|
|
323
|
-
**5.3 Run if stories were created (optional, only if
|
|
364
|
+
**5.3 Run if stories were created (optional, only if the script exists):**
|
|
324
365
|
```bash
|
|
325
|
-
|
|
366
|
+
<pm> run build-storybook # <pm> is the package manager keryx test run detected
|
|
326
367
|
```
|
|
327
368
|
|
|
328
369
|
**5.4 Handle failures:**
|
|
329
370
|
|
|
330
371
|
| Failure | Action |
|
|
331
372
|
|---------|--------|
|
|
332
|
-
| Lint errors | Fix
|
|
373
|
+
| Lint errors | Fix them in code, re-run `keryx health run --changed` |
|
|
333
374
|
| Type errors | Fix the type errors in code, re-commit |
|
|
334
375
|
| Test failures | Fix failing tests, re-commit |
|
|
335
376
|
| Story build failure | Fix story code, re-commit |
|
|
@@ -353,7 +394,9 @@ identical outputs cost the whole budget to learn what the second one already
|
|
|
353
394
|
said. Report the block instead, naming what repeated.
|
|
354
395
|
|
|
355
396
|
|
|
356
|
-
**ROLLBACK POLICY**: If implementation fatally fails (
|
|
397
|
+
**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.
|
|
398
|
+
|
|
399
|
+
**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.
|
|
357
400
|
|
|
358
401
|
**5.5 Re-commit fixes if any:**
|
|
359
402
|
```bash
|
|
@@ -398,7 +441,41 @@ Write full JSON to `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`:
|
|
|
398
441
|
|
|
399
442
|
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`).
|
|
400
443
|
|
|
401
|
-
|
|
444
|
+
Then check the shape and record the file — two commands, both of which refuse
|
|
445
|
+
rather than warn:
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
keryx skills contracts validate <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json \
|
|
449
|
+
--schema task-implementer-output
|
|
450
|
+
keryx job document <JOB_NAME> --type implementation-report \
|
|
451
|
+
--file <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
- `contracts validate` exits non-zero on a missing required field, a `status`
|
|
455
|
+
outside `success|partial|failed`, a `task_id` that is not `task-<n>`, or any
|
|
456
|
+
key the contract does not declare (`additionalProperties: false`). Fix the
|
|
457
|
+
result and re-run; do not report a result the contract rejects.
|
|
458
|
+
- `job document` **refuses when the file does not exist** — "`--file` not found:
|
|
459
|
+
… Write the document first, then record it" (`src/job/service.ts`) — and
|
|
460
|
+
refuses a `--type` outside `analysis|implementation-report|review|verification-report`
|
|
461
|
+
and a job name no package matches. On success it copies the result into the
|
|
462
|
+
job package and appends it to `documentation.documents_created` in
|
|
463
|
+
`state.json`, which is what makes "the result was recorded" a fact
|
|
464
|
+
`keryx job status <JOB_NAME> --json` can be asked about instead of a sentence
|
|
465
|
+
in this file.
|
|
466
|
+
|
|
467
|
+
One caveat, stated because it is real: the package holds ONE
|
|
468
|
+
`implementation-report.json` per job, so a later task in the same wave replaces
|
|
469
|
+
it. The per-task files under `results/` are the complete set; the recorded
|
|
470
|
+
document is the most recent.
|
|
471
|
+
|
|
472
|
+
If `JOB_NAME` is not provided, skip the file write and both commands — there is
|
|
473
|
+
no job package to record against.
|
|
474
|
+
|
|
475
|
+
The step's own status is the orchestrator's to write (`keryx job step <JOB_NAME>
|
|
476
|
+
<step-id> --status …`). Do not write it yourself: `src/job/plans.ts` makes
|
|
477
|
+
`implement` ONE step for a whole wave, so a single task cannot close it, and
|
|
478
|
+
`keryx job complete` refuses while any step is still open.
|
|
402
479
|
|
|
403
480
|
**6.2 Emit compact STATUS response:**
|
|
404
481
|
|
|
@@ -415,17 +492,18 @@ The inline response must contain only: STATUS line + Completed bullets + Files c
|
|
|
415
492
|
|
|
416
493
|
## Automation Settings
|
|
417
494
|
|
|
418
|
-
This skill is designed to run fully autonomously. The
|
|
495
|
+
This skill is designed to run fully autonomously. The settings, their types,
|
|
496
|
+
their defaults and their bounds are declared in one place —
|
|
497
|
+
`input-contract.schema.json`, the `automation` object — and are checked by the
|
|
498
|
+
validation in Phase 1.4. To see them:
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
keryx skills contracts list # names task-implementer-input and its file
|
|
502
|
+
```
|
|
419
503
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
| `verify_lint` | `true` | true/false | Run ESLint after implementation |
|
|
424
|
-
| `verify_types` | `true` | true/false | Run type-check after implementation |
|
|
425
|
-
| `verify_tests` | `true` | true/false | Run tests after implementation |
|
|
426
|
-
| `verify_stories` | `false` | true/false | Build storybook to verify stories |
|
|
427
|
-
| `max_self_fix_attempts` | `3` | 1-5 | Max attempts to fix verification failures |
|
|
428
|
-
| `commit_message_style` | `conventional` | `conventional` | Commit format |
|
|
504
|
+
They are deliberately not restated here. The table that used to sit in this spot
|
|
505
|
+
said `max_self_fix_attempts: 1-5` while Phase 5.4 says the maximum is 3, and a
|
|
506
|
+
second copy of a schema is how that happens.
|
|
429
507
|
|
|
430
508
|
---
|
|
431
509
|
|
|
@@ -454,7 +532,12 @@ This skill is designed to run fully autonomously. The following settings control
|
|
|
454
532
|
7. **DO** use `runInAction()` after every `await` in MobX actions.
|
|
455
533
|
8. **DO** commit with conventional commit format referencing the issue number.
|
|
456
534
|
9. **DO** verify your work before reporting.
|
|
457
|
-
10.
|
|
535
|
+
10. **DO** make `STATUS: <TOKEN>` the first line of your final message, and put no
|
|
536
|
+
JSON in the response body. The full JSON result is the file Phase 6.1 writes
|
|
537
|
+
and records. (This rule used to say the opposite — "return the JSON result
|
|
538
|
+
object as your final message" — which contradicted 6.2, `## Reporting
|
|
539
|
+
Results`, and `parseChildResult`, the production function that throws on any
|
|
540
|
+
first line that is not a canonical STATUS token.)
|
|
458
541
|
|
|
459
542
|
---
|
|
460
543
|
|