@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
|
@@ -10,11 +10,15 @@ description: |
|
|
|
10
10
|
cannot fail is found by executing it rather than by reading it.
|
|
11
11
|
Dispatched by review-orchestrator for --testing-practices,
|
|
12
12
|
--project-conventions, --all, or changed test/e2e/story files.
|
|
13
|
+
NOT for: the correctness of the production code a suite covers (review-logic),
|
|
14
|
+
or naming and readability inside a test with no effect on what it pins
|
|
15
|
+
(review-style).
|
|
13
16
|
triggers:
|
|
17
|
+
- "test review"
|
|
18
|
+
- "testing practices"
|
|
19
|
+
- "coverage quality"
|
|
14
20
|
- "review tests"
|
|
15
21
|
- "review testing practices"
|
|
16
|
-
- "review --testing-practices"
|
|
17
|
-
- dispatched by review-orchestrator
|
|
18
22
|
metadata:
|
|
19
23
|
author: "MrCipherSmith"
|
|
20
24
|
version: "1.1.0"
|
|
@@ -207,7 +211,7 @@ boundary is the trigger-and-outcome test.
|
|
|
207
211
|
|
|
208
212
|
## Orchestrated Review Contract
|
|
209
213
|
|
|
210
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
214
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `.metaproject/skills/gdskills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
211
215
|
|
|
212
216
|
---
|
|
213
217
|
|
|
@@ -279,3 +283,37 @@ the unpinned code do the wrong thing**, that is a separate finding at the severi
|
|
|
279
283
|
its own outcome earns — usually `major`. The coverage gap and the defect are two
|
|
280
284
|
findings, not one, and conflating them loses whichever the adjudicator disbelieves.
|
|
281
285
|
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Red Flags
|
|
289
|
+
|
|
290
|
+
| Rationalization | Why it is wrong |
|
|
291
|
+
|----------------|-----------------|
|
|
292
|
+
| "The suite is green, so the tests pin the behaviour." | Green is the state before the mutation pass, not its result. Delete the gate, run the nearest suite, and report what happened — that is the one question this reviewer exists to answer. |
|
|
293
|
+
| "I could not run the suite, so I worked out what the mutation would do." | A predicted mutation is `info` at best and this lane has no use for one. Say which command you ran, what stopped it, and skip the pass — do not report a result you did not observe. |
|
|
294
|
+
| "I only published the mutations that survived; the rest were noise." | The reds are what makes the greens mean something. A table of survivors alone reads as cherry-picking and will be discounted whole. |
|
|
295
|
+
| "The fixture is named `drift-only`, so it covers the drift case." | The name is the claim under review. Open the producer and compare every field, not only the one the test pins; a fixture that carries another scenario's shape is coverage that lies. |
|
|
296
|
+
| "Mocking the API module is simpler than standing up the network boundary." | It also deletes the layer where the bug lives — serialisation, status handling, the error path. Simpler is the reason the convention exists to overrule. |
|
|
297
|
+
| "This test is flaky, that is a `blocker`." | Flake wastes time; it does not ship a defect. `major`. The one `blocker` in this lane is a test that cannot fail while the behaviour it names is broken. |
|
|
298
|
+
| "I mutated more gates than my budget allowed, but I got through most of them." | Say how many you did not reach. A stated cap is a result; silence reads as a complete sweep and the next round inherits the gap without knowing it. |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Verification
|
|
303
|
+
|
|
304
|
+
Report done only once all of these hold:
|
|
305
|
+
|
|
306
|
+
- The mutation table is published in full, survivors and casualties both, or the
|
|
307
|
+
report says which command failed and that the pass was skipped.
|
|
308
|
+
- The report states the cap: how many added or previously-requested gates were
|
|
309
|
+
mutated and how many were not reached.
|
|
310
|
+
- Every finding names `file:line` and the evidence that settles it — the mutation
|
|
311
|
+
and its result, the producer line, or the selector that names the branch.
|
|
312
|
+
- Every `blocker` and `major` carries `class_scope` with `sites` and an
|
|
313
|
+
`enumeration_method` naming the search that produced them.
|
|
314
|
+
- No finding invents a severity: each lands under **Severity (canonical)** in
|
|
315
|
+
`review-orchestrator/SKILL.md`, and a coverage gap is filed separately from any
|
|
316
|
+
defect it exposes.
|
|
317
|
+
- The reply is the `REVIEW_RESULT` the Orchestrated Review Contract asks for, or
|
|
318
|
+
`NEEDS_CONTEXT` naming the context that was missing — never a guess in its place.
|
|
319
|
+
|
|
@@ -12,8 +12,8 @@ description: |
|
|
|
12
12
|
triggers:
|
|
13
13
|
- "verify findings"
|
|
14
14
|
- "review --verify"
|
|
15
|
-
- "check these findings"
|
|
16
15
|
- "verification pass"
|
|
16
|
+
- "check these findings"
|
|
17
17
|
metadata:
|
|
18
18
|
author: "MrCipherSmith"
|
|
19
19
|
version: "1.1.0"
|
|
@@ -224,7 +224,7 @@ STATUS: DONE | NEEDS_CONTEXT | BLOCKED
|
|
|
224
224
|
There is no `DONE_WITH_CONCERNS`: a verifier has no concerns of its own.
|
|
225
225
|
|
|
226
226
|
Return one object conforming to
|
|
227
|
-
|
|
227
|
+
`.metaproject/skills/gdskills/review/review-orchestrator/verification-claim.schema.json`:
|
|
228
228
|
|
|
229
229
|
````text
|
|
230
230
|
```json keryx:verifications
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Baseline AI code review standards for correctness, architecture, safety, and maintainability."
|
|
3
|
-
alwaysApply: false
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# AI Code Review Assistant
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Provide strict, high-signal code reviews with actionable findings.
|
|
10
|
-
|
|
11
|
-
## When To Apply
|
|
12
|
-
Apply when performing AI-assisted code review; loaded automatically by the code-ai-review skill.
|
|
13
|
-
|
|
14
|
-
## Verdict Labels
|
|
15
|
-
|
|
16
|
-
All reviews must end with exactly one of the following verdict labels:
|
|
17
|
-
|
|
18
|
-
| Verdict | Meaning |
|
|
19
|
-
|---------|---------|
|
|
20
|
-
| `APPROVE` | Changes accepted as-is; no outstanding issues. |
|
|
21
|
-
| `APPROVE WITH SUGGESTIONS` | Accepted and can merge, but improvements are noted for follow-up. |
|
|
22
|
-
| `REQUEST CHANGES` | Must fix identified issues before merge. |
|
|
23
|
-
| `COMMENT` | Informational findings only; no blocking action required. |
|
|
24
|
-
|
|
25
|
-
## Review Output Structure
|
|
26
|
-
1. Verdict label (from the table above)
|
|
27
|
-
2. Findings by severity and category
|
|
28
|
-
3. Concrete fix proposals
|
|
29
|
-
4. Residual risks and test gaps
|
|
30
|
-
|
|
31
|
-
## Priority Categories
|
|
32
|
-
- Correctness
|
|
33
|
-
- Types and safety
|
|
34
|
-
- Architecture and state boundaries
|
|
35
|
-
- Performance
|
|
36
|
-
- UX/A11y
|
|
37
|
-
- Tests
|
|
38
|
-
|
|
39
|
-
## Mandatory Rules
|
|
40
|
-
- Prioritize correctness over style.
|
|
41
|
-
- Do not request massive refactors unless user asks.
|
|
42
|
-
- Flag unsafe casts and hidden complexity.
|
|
43
|
-
- Align suggestions with existing project patterns.
|
|
44
|
-
- Keep comments specific, respectful, and actionable.
|
|
45
|
-
|
|
46
|
-
## Output Contract
|
|
47
|
-
- Final review must be Markdown.
|
|
48
|
-
- Code snippets/diffs must be fenced code blocks.
|
|
49
|
-
- Response language follows user query language.
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Strict review profile: direct, architecture-first feedback with concrete fixes."
|
|
3
|
-
alwaysApply: false
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Strict Review Profile
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Apply a strict, architecture-first pass: name the defect, name where the logic
|
|
10
|
-
belongs, and give the replacement.
|
|
11
|
-
|
|
12
|
-
## When To Apply
|
|
13
|
-
Apply when the caller explicitly asks for a strict review. For a checklist this
|
|
14
|
-
project learned from its own pull-request comments, use
|
|
15
|
-
`core/code-review-learned-profile.mdc` instead — that one carries no conventions
|
|
16
|
-
of its own and reads them from the project.
|
|
17
|
-
|
|
18
|
-
## Style Profile
|
|
19
|
-
- Direct and concise.
|
|
20
|
-
- Architecture-first.
|
|
21
|
-
- Strongly against duct-tape fixes.
|
|
22
|
-
- Focus on testability and single source of truth.
|
|
23
|
-
|
|
24
|
-
## What To Flag
|
|
25
|
-
- Business logic in UI instead of store/service.
|
|
26
|
-
- Duplicate rule checks in multiple places.
|
|
27
|
-
- Unsafe casts (`any`, disguised casts).
|
|
28
|
-
- Mocks inheriting production classes.
|
|
29
|
-
- Loading/no-data semantics confusion.
|
|
30
|
-
- Magic numbers without rationale.
|
|
31
|
-
- **Status/result mapping semantics**: Mapping "none" or absence-of-result to a semantic outcome (e.g. canceled, failed) without domain justification. Verify that source enum values (e.g. none, killed, cancelled) have distinct meanings and that the mapping preserves them; flag mappings that equate semantically different states (e.g. `none === canceled`, `killed === canceled` without explicit product rationale).
|
|
32
|
-
- **Store method accessibility** — See `core/mobx-store-template.mdc` for definitive rules on public vs private store methods. Key violations to flag:
|
|
33
|
-
- Public `onChangeX` / `handleX` methods (must be private)
|
|
34
|
-
- Public `action.bound` that should be private callbacks
|
|
35
|
-
|
|
36
|
-
## Response Format
|
|
37
|
-
1. Verdict in one line — use the canonical verdict vocabulary (same set as `core/code-review-ai-assistant.mdc`):
|
|
38
|
-
- `APPROVE` — no blocking issues; changes accepted as-is
|
|
39
|
-
- `APPROVE WITH SUGGESTIONS` — accepted but improvements noted for follow-up
|
|
40
|
-
- `REQUEST CHANGES` — has issues that must be fixed before merge
|
|
41
|
-
- `COMMENT` — informational findings only; no blocking action required
|
|
42
|
-
2. Top 1-3 blocking findings.
|
|
43
|
-
3. Concrete replacement/fix path.
|
|
44
|
-
|
|
45
|
-
## Guardrails
|
|
46
|
-
- No personal attacks.
|
|
47
|
-
- No empty nitpicks.
|
|
48
|
-
- Keep recommendations lint-safe and scoped.
|
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-verifier
|
|
3
|
-
model_tier: light
|
|
4
|
-
description: "Use when running a full quality gate after implementation — lint, type-check, tests, and import validation. Mandatory step in job-orchestrator after task-implementer and after fix iterations. Use standalone when you need a structured verification report."
|
|
5
|
-
triggers:
|
|
6
|
-
- "Run verification"
|
|
7
|
-
- "Quality gate"
|
|
8
|
-
- "Check code quality"
|
|
9
|
-
- "Run lint and tests"
|
|
10
|
-
- "Verify implementation"
|
|
11
|
-
- "Run checks"
|
|
12
|
-
metadata:
|
|
13
|
-
author: "MrCipherSmith"
|
|
14
|
-
version: "1.0.0"
|
|
15
|
-
category: "verification"
|
|
16
|
-
agent_worthy: true
|
|
17
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
18
|
-
license: "MIT"
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Code Verifier
|
|
22
|
-
|
|
23
|
-
## Purpose
|
|
24
|
-
|
|
25
|
-
Runs the full quality gate for a project: lint, type-check, tests, and import validation. Provides a structured, parseable result that the orchestrator uses to decide whether to proceed or trigger a fix loop.
|
|
26
|
-
|
|
27
|
-
**Distinct from `task-implementer` Phase 5:** task-implementer does inline self-verification during implementation. `code-verifier` is an independent gate that runs after all tasks in a wave are complete — giving a clean, consolidated view of the whole diff, not per-task.
|
|
28
|
-
|
|
29
|
-
**Input:** Codebase path + worktree path + scope (changed files or full project)
|
|
30
|
-
**Output:** `VERIFICATION_RESULT` structured report — gate status (pass/fail), per-check results, actionable findings
|
|
31
|
-
|
|
32
|
-
## When to Use
|
|
33
|
-
|
|
34
|
-
- Dispatched by `job-orchestrator` after each task-implementer wave (mandatory)
|
|
35
|
-
- Dispatched by `job-orchestrator` after each fix iteration
|
|
36
|
-
- Run standalone: "verify my code", "run quality gate", "/code-verifier"
|
|
37
|
-
- Any time you need a reproducible, structured view of project health
|
|
38
|
-
|
|
39
|
-
## Architecture: 4 Phases
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
Phase 1: DETECT → Auto-detect stack, tooling, commands
|
|
43
|
-
Phase 2: RUN → Execute lint → type-check → tests → import-check
|
|
44
|
-
Phase 3: ANALYZE → Parse outputs, classify findings by severity
|
|
45
|
-
Phase 4: REPORT → Emit VERIFICATION_RESULT
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Workflow
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
Code Verifier Progress:
|
|
54
|
-
- [ ] Phase 1: Detect stack and tooling
|
|
55
|
-
- [ ] Phase 2: Run verification checks
|
|
56
|
-
- [ ] Phase 3: Analyze and classify findings
|
|
57
|
-
- [ ] Phase 4: Report results
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
### Phase 1: DETECT
|
|
63
|
-
|
|
64
|
-
Auto-detect the project stack and available verification tools.
|
|
65
|
-
|
|
66
|
-
**1.1 Package manager and runner:**
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
cd <codebase_path>
|
|
70
|
-
|
|
71
|
-
if [ -f bun.lock ] || [ -f bun.lockb ]; then PM=bun; RUNNER="bun run"
|
|
72
|
-
elif [ -f pnpm-lock.yaml ]; then PM=pnpm; RUNNER="pnpm run"
|
|
73
|
-
elif [ -f yarn.lock ]; then PM=yarn; RUNNER="yarn"
|
|
74
|
-
elif [ -f package-lock.json ]; then PM=npm; RUNNER="npm run"
|
|
75
|
-
elif [ -f pyproject.toml ] || [ -f requirements.txt ]; then PM=python; RUNNER=""
|
|
76
|
-
elif [ -f go.mod ]; then PM=go; RUNNER=""
|
|
77
|
-
else PM=unknown; RUNNER=""
|
|
78
|
-
fi
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**1.2 Detect available check commands:**
|
|
82
|
-
|
|
83
|
-
| Check | How to detect | Command |
|
|
84
|
-
|---|---|---|
|
|
85
|
-
| Lint | `package.json` has `"lint"` script | `$RUNNER lint` |
|
|
86
|
-
| Lint (auto) | `eslint.config.*` or `.eslintrc*` present | `npx eslint . --max-warnings 0` |
|
|
87
|
-
| Biome | `biome.json` present | `npx biome check .` |
|
|
88
|
-
| Type-check | `package.json` has `"type-check"` or `"typecheck"` script | `$RUNNER type-check` |
|
|
89
|
-
| Type-check (auto) | `tsconfig.json` present | `npx tsc --noEmit` |
|
|
90
|
-
| Tests | `package.json` has `"test"` script | `$RUNNER test --run` (vitest) or `$RUNNER test` |
|
|
91
|
-
| pytest | `pytest` in `pyproject.toml` or `requirements.txt` | `pytest --tb=short -q` |
|
|
92
|
-
| Go tests | `go.mod` present | `go test ./...` |
|
|
93
|
-
| Circular imports | `madge` in devDependencies | `npx madge --circular src/` |
|
|
94
|
-
|
|
95
|
-
**1.3 Determine scope:**
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
IF scope = "changed" (default when dispatched by orchestrator):
|
|
99
|
-
FILES = git diff --name-only <base_branch>...HEAD
|
|
100
|
-
Run tests only for files related to changed code
|
|
101
|
-
Run lint only on changed files: npx eslint <changed_files>
|
|
102
|
-
Run type-check on full project (tsc doesn't support file-level scope)
|
|
103
|
-
|
|
104
|
-
IF scope = "full":
|
|
105
|
-
Run all checks on full project
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**Output of Phase 1:**
|
|
109
|
-
```
|
|
110
|
-
TOOLING:
|
|
111
|
-
pm: bun | pnpm | yarn | npm | python | go | unknown
|
|
112
|
-
runner: "bun run" | ...
|
|
113
|
-
checks_available: [lint, type-check, tests, circular-imports]
|
|
114
|
-
checks_skipped: [<reason>]
|
|
115
|
-
scope: changed | full
|
|
116
|
-
changed_files: [<paths>]
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
### Phase 2: RUN
|
|
122
|
-
|
|
123
|
-
Execute each available check in order. Capture full output.
|
|
124
|
-
|
|
125
|
-
**Execution order:** lint → type-check → tests → import-check
|
|
126
|
-
|
|
127
|
-
**Do NOT abort early** — run all checks even if one fails. The orchestrator needs the complete picture.
|
|
128
|
-
|
|
129
|
-
**2.1 Lint:**
|
|
130
|
-
```bash
|
|
131
|
-
# Changed files only (faster, more actionable)
|
|
132
|
-
npx eslint <changed_files> --format=json --max-warnings 0
|
|
133
|
-
# OR if lint script exists:
|
|
134
|
-
$RUNNER lint
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Capture:
|
|
138
|
-
- Exit code (0 = pass, non-zero = fail)
|
|
139
|
-
- Number of errors and warnings
|
|
140
|
-
- Per-file error list (file path, line, column, rule, message)
|
|
141
|
-
|
|
142
|
-
**2.2 Type-check:**
|
|
143
|
-
```bash
|
|
144
|
-
npx tsc --noEmit 2>&1
|
|
145
|
-
# OR:
|
|
146
|
-
$RUNNER type-check
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
Capture:
|
|
150
|
-
- Exit code
|
|
151
|
-
- Number of errors
|
|
152
|
-
- Per-error: file, line, column, message, TS error code
|
|
153
|
-
|
|
154
|
-
**2.3 Tests:**
|
|
155
|
-
```bash
|
|
156
|
-
$RUNNER test --run 2>&1 # vitest
|
|
157
|
-
# OR: npx jest --ci 2>&1
|
|
158
|
-
# OR: pytest --tb=short -q 2>&1
|
|
159
|
-
# OR: go test ./... 2>&1
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Capture:
|
|
163
|
-
- Exit code
|
|
164
|
-
- Tests passed / failed / skipped counts
|
|
165
|
-
- Per-failure: test name, file, error message, stack (first 5 lines)
|
|
166
|
-
|
|
167
|
-
**2.4 Circular import check (if madge available):**
|
|
168
|
-
```bash
|
|
169
|
-
npx madge --circular --extensions ts,tsx src/ 2>&1
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
Capture:
|
|
173
|
-
- Exit code
|
|
174
|
-
- List of circular chains (if any)
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
### Phase 3: ANALYZE
|
|
179
|
-
|
|
180
|
-
Parse raw outputs into structured findings. Classify by severity.
|
|
181
|
-
|
|
182
|
-
**3.1 Severity classification:**
|
|
183
|
-
|
|
184
|
-
| Finding | Severity |
|
|
185
|
-
|---|---|
|
|
186
|
-
| Type error | CRITICAL |
|
|
187
|
-
| Test failure | CRITICAL |
|
|
188
|
-
| ESLint error (not warning) | HIGH |
|
|
189
|
-
| Circular import | HIGH |
|
|
190
|
-
| ESLint warning | LOW |
|
|
191
|
-
| Skipped test | INFO |
|
|
192
|
-
|
|
193
|
-
**3.2 Gate decision:**
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
GATE = PASS
|
|
197
|
-
IF any CRITICAL findings → GATE = FAIL (blocks proceed)
|
|
198
|
-
IF any HIGH findings → GATE = FAIL (blocks proceed)
|
|
199
|
-
IF only LOW/INFO findings → GATE = PASS_WITH_WARNINGS
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**3.3 Actionable finding format:**
|
|
203
|
-
|
|
204
|
-
Each finding must include enough context for `task-implementer` (fix mode) to resolve it without re-reading the full output:
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
{
|
|
208
|
-
severity: CRITICAL | HIGH | LOW | INFO,
|
|
209
|
-
check: lint | type-check | test | circular-import,
|
|
210
|
-
file: <path>,
|
|
211
|
-
line: <N> | null,
|
|
212
|
-
column: <N> | null,
|
|
213
|
-
rule: <ESLint rule or TS error code> | null,
|
|
214
|
-
message: <error text>,
|
|
215
|
-
suggestion: <optional fix hint>
|
|
216
|
-
}
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
### Phase 4: REPORT
|
|
222
|
-
|
|
223
|
-
Emit the structured `VERIFICATION_RESULT` as the final message.
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
VERIFICATION_RESULT:
|
|
227
|
-
gate: PASS | PASS_WITH_WARNINGS | FAIL
|
|
228
|
-
scope: changed | full
|
|
229
|
-
|
|
230
|
-
checks:
|
|
231
|
-
lint:
|
|
232
|
-
status: pass | fail | skipped
|
|
233
|
-
errors: <N>
|
|
234
|
-
warnings: <N>
|
|
235
|
-
command_used: "<command>"
|
|
236
|
-
|
|
237
|
-
type_check:
|
|
238
|
-
status: pass | fail | skipped
|
|
239
|
-
errors: <N>
|
|
240
|
-
command_used: "<command>"
|
|
241
|
-
|
|
242
|
-
tests:
|
|
243
|
-
status: pass | fail | skipped
|
|
244
|
-
passed: <N>
|
|
245
|
-
failed: <N>
|
|
246
|
-
skipped: <N>
|
|
247
|
-
command_used: "<command>"
|
|
248
|
-
|
|
249
|
-
circular_imports:
|
|
250
|
-
status: pass | fail | skipped
|
|
251
|
-
cycles: <N>
|
|
252
|
-
|
|
253
|
-
findings:
|
|
254
|
-
- severity: CRITICAL
|
|
255
|
-
check: type-check
|
|
256
|
-
file: src/services/UserService.ts
|
|
257
|
-
line: 42
|
|
258
|
-
rule: TS2345
|
|
259
|
-
message: "Argument of type 'string' is not assignable to parameter of type 'number'"
|
|
260
|
-
- severity: HIGH
|
|
261
|
-
check: lint
|
|
262
|
-
file: src/components/Form.tsx
|
|
263
|
-
line: 18
|
|
264
|
-
rule: "no-unused-vars"
|
|
265
|
-
message: "'value' is defined but never used"
|
|
266
|
-
|
|
267
|
-
summary: "<1-2 sentence human-readable summary>"
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**STATUS reporting:**
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
STATUS: DONE — gate PASS or PASS_WITH_WARNINGS, report follows
|
|
274
|
-
STATUS: DONE_WITH_CONCERNS — PASS_WITH_WARNINGS with notable warnings
|
|
275
|
-
STATUS: BLOCKED — could not run checks (missing tooling, wrong directory)
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
> If `gate: FAIL` → STATUS is still `DONE` (the gate result, not the skill's execution). The orchestrator reads `gate: FAIL` and decides to trigger fix.
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## Integration with job-orchestrator
|
|
283
|
-
|
|
284
|
-
The orchestrator dispatches `code-verifier` at two points:
|
|
285
|
-
|
|
286
|
-
**After task-implementer wave (pre-review gate):**
|
|
287
|
-
```
|
|
288
|
-
code-verifier:
|
|
289
|
-
codebase_path: <worktree_path>
|
|
290
|
-
scope: changed
|
|
291
|
-
base_branch: <base_branch from JOB_STATE>
|
|
292
|
-
→ If gate: FAIL → dispatch fix tasks → re-run code-verifier
|
|
293
|
-
→ If gate: PASS → proceed to review
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
**After fix iterations (post-fix gate):**
|
|
297
|
-
```
|
|
298
|
-
code-verifier:
|
|
299
|
-
codebase_path: <worktree_path>
|
|
300
|
-
scope: changed
|
|
301
|
-
→ If gate still FAIL after 2 iterations → report as BLOCKED, skip to report
|
|
302
|
-
→ If gate: PASS → proceed to report
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**The orchestrator's internal "checks" step (2.8) is replaced by `code-verifier` dispatch.**
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## Standalone Usage
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
# Run on current directory, changed files only
|
|
313
|
-
/code-verifier
|
|
314
|
-
|
|
315
|
-
# Run on specific project
|
|
316
|
-
/code-verifier --path /path/to/project
|
|
317
|
-
|
|
318
|
-
# Full project scan (not just changed files)
|
|
319
|
-
/code-verifier --scope full
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
## Automation Settings
|
|
325
|
-
|
|
326
|
-
| Setting | Default | Options | Description |
|
|
327
|
-
|---------|---------|---------|-------------|
|
|
328
|
-
| `scope` | `changed` | `changed` / `full` | Limit checks to changed files or run full project |
|
|
329
|
-
| `fail_on_warnings` | `false` | true/false | Treat ESLint warnings as gate failures |
|
|
330
|
-
| `include_circular` | `true` | true/false | Run circular import detection if madge available |
|
|
331
|
-
| `max_findings_reported` | `20` | 1-100 | Cap findings in report to avoid overflow |
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Error Handling
|
|
336
|
-
|
|
337
|
-
| Error | Action |
|
|
338
|
-
|---|---|
|
|
339
|
-
| Check command not found | Mark check as `skipped`, continue others |
|
|
340
|
-
| Wrong working directory | ABORT with `STATUS: BLOCKED` and directory hint |
|
|
341
|
-
| Command times out (>120s) | Mark check as `skipped (timeout)`, continue |
|
|
342
|
-
| Zero checks available | `STATUS: BLOCKED` — cannot verify without any tooling |
|
|
343
|
-
| Circular import tool missing | Skip silently (not installed in all projects) |
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
## Rules of Engagement
|
|
348
|
-
|
|
349
|
-
1. **Run ALL checks** — never abort after first failure. The orchestrator needs the full picture.
|
|
350
|
-
2. **Do NOT modify files** — this is read-only verification.
|
|
351
|
-
3. **Scope to changed files** by default — full scans are slow and produce noise.
|
|
352
|
-
4. **Be specific** in findings — include file, line, rule, message. Vague "lint failed" is not actionable.
|
|
353
|
-
5. Return `VERIFICATION_RESULT` as the **final message** to the orchestrator.
|