@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,15 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-learned-review
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when a project has a learned review skill — built by `keryx review learn` from its own pull-request comments — and wants those accumulated conventions applied to the current branch. Ships with an empty checklist: the content comes from the project, never from the tool. NOT for: a project with no learned skill, or a review request that names no profile (review-orchestrator)."
|
|
4
4
|
triggers:
|
|
5
5
|
- "learned review"
|
|
6
|
+
- "code-learned-review"
|
|
6
7
|
- "review with our conventions"
|
|
7
8
|
- "review using what we learned"
|
|
8
9
|
metadata:
|
|
9
10
|
author: "keryx"
|
|
10
11
|
version: "2.0.0"
|
|
11
12
|
category: "review"
|
|
12
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
13
|
+
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
13
14
|
license: "MIT"
|
|
14
15
|
---
|
|
15
16
|
|
|
@@ -87,7 +88,7 @@ that is a supported state rather than an error.
|
|
|
87
88
|
|
|
88
89
|
## Scope Detection
|
|
89
90
|
|
|
90
|
-
See shared script:
|
|
91
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
91
92
|
|
|
92
93
|
Run the script from that file to determine MERGE_BASE and SCOPE before
|
|
93
94
|
proceeding with the review.
|
|
@@ -241,3 +242,42 @@ review. Use it to:
|
|
|
241
242
|
|
|
242
243
|
If the file does not exist or is not provided, proceed normally — context is
|
|
243
244
|
optional and non-blocking.
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Red Flags
|
|
249
|
+
|
|
250
|
+
This profile is a mechanism with an empty checklist, and it predates the finding
|
|
251
|
+
contract the rest of the review domain now shares. Both facts produce their own
|
|
252
|
+
failure modes, and they are the rows below.
|
|
253
|
+
|
|
254
|
+
| Rationalization | Why it is wrong |
|
|
255
|
+
|----------------|-----------------|
|
|
256
|
+
| "This project has no learned skill, but I can review against sensible conventions." | An empty learned review is not a generic review. Say the project has no learned skill and stop; `review-orchestrator` is what a generic request wants. Inventing conventions here ships one model's taste as the team's agreed standard. |
|
|
257
|
+
| "This lesson is about a slightly different case, but the spirit applies." | Do not generalise a lesson past its text. A lesson about one shape of function is about that shape; widening it into a rule about a layer or a language invents a convention the project never agreed to. |
|
|
258
|
+
| "The lesson came from a named reviewer, so I will report it as what they would want." | Do not attribute. The record says a comment was left, nothing more. Reporting a finding as a person's preference turns the checklist back into the persona this skill exists to remove. |
|
|
259
|
+
| "This pull-request comment is good even though the config does not name its author." | An author the config does not name contributes nothing — not to a proposal, not to a `SKILL.md`, and not to this review. Changing who counts is a config change, made deliberately, not a judgement call mid-review. |
|
|
260
|
+
| "A lesson exists for this, so the finding stands." | A lesson is evidence, not authority. If the diff has a reason the original objection does not apply here, the reason wins and the finding is not raised. |
|
|
261
|
+
| "The report has a Severity field, so it is a review result." | It is not. This profile predates `reviewer-finding.schema.json` and emits free prose with no machine-readable finding, so nothing downstream can screen, verify or deduplicate it. Hand it to a person, never to `keryx review ingest`. |
|
|
262
|
+
| "The lessons I checked that matched nothing are not worth mentioning." | They are the only way anyone learns a lesson has gone stale. Record the count of lessons checked and the count that matched, either way. |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Verification
|
|
267
|
+
|
|
268
|
+
Report done only once all of these hold:
|
|
269
|
+
|
|
270
|
+
- `.metaproject/review-learning.config.json` was read and the project skill it
|
|
271
|
+
names was opened. If that skill carries no lessons, the reply says so and stops
|
|
272
|
+
rather than reviewing generically.
|
|
273
|
+
- The report states the project skill and version, the number of lessons checked
|
|
274
|
+
and the number that matched.
|
|
275
|
+
- Every finding cites the line in the project skill it rests on. Findings with no
|
|
276
|
+
learned lesson behind them are listed in their own section and routed to the
|
|
277
|
+
reviewer that owns them.
|
|
278
|
+
- No finding names a person, quotes a personal catchphrase, or reports a lesson as
|
|
279
|
+
somebody's preference.
|
|
280
|
+
- The scope block carries the real branch, parent ref, merge-base and scope mode,
|
|
281
|
+
and every finding is anchored to a line the branch slice changed.
|
|
282
|
+
- The report is free prose by design, so it is delivered to a person and is not
|
|
283
|
+
fed into the managed-review pipeline.
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-mobx-store-review
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when MobX store changes need a focused review — actions, computed values, reactions, async runInAction, state typing, and View↔Store boundaries. NOT for: a general frontend review (review-frontend) or a review request that names no domain (review-orchestrator)."
|
|
4
4
|
triggers:
|
|
5
|
+
- "mobx review"
|
|
6
|
+
- "store review"
|
|
7
|
+
- "code-mobx-store-review"
|
|
5
8
|
- "Review MobX store"
|
|
6
9
|
- "Check store changes"
|
|
7
|
-
- "MobX review"
|
|
8
10
|
metadata:
|
|
9
11
|
author: "MrCipherSmith"
|
|
10
12
|
version: "1.1.0"
|
|
11
13
|
category: "review"
|
|
12
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
14
|
+
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
13
15
|
stack_requires: "mobx"
|
|
14
16
|
license: "MIT"
|
|
15
17
|
---
|
|
@@ -31,7 +33,7 @@ license: "MIT"
|
|
|
31
33
|
|
|
32
34
|
## Scope Detection
|
|
33
35
|
|
|
34
|
-
See shared script:
|
|
36
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
35
37
|
|
|
36
38
|
Run the script from that file to determine MERGE_BASE and SCOPE before proceeding with the review.
|
|
37
39
|
|
|
@@ -257,3 +259,43 @@ If provided and the file exists, read the context document before starting the r
|
|
|
257
259
|
- Avoid flagging intentional architectural decisions as issues
|
|
258
260
|
|
|
259
261
|
If the file does not exist or is not provided, proceed normally — context is optional and non-blocking.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Red Flags
|
|
266
|
+
|
|
267
|
+
This profile is a thin legacy wrapper around `mobx-store-template.mdc`. It
|
|
268
|
+
predates the shared finding contract, it does not use the review domain's
|
|
269
|
+
severity vocabulary at all, and half of it is written in Russian — each of those
|
|
270
|
+
is a way it misfires, and they are the rows below.
|
|
271
|
+
|
|
272
|
+
| Rationalization | Why it is wrong |
|
|
273
|
+
|----------------|-----------------|
|
|
274
|
+
| "The checklist prints severities, so this report is a review result." | It is not. `Critical` / `Warnings` / `Suggestions` are section headings in a Markdown document, not a severity field: this profile predates `reviewer-finding.schema.json` and emits free prose with no machine-readable finding. Hand it to a person, never to `keryx review ingest`. |
|
|
275
|
+
| "Half the instructions are in Russian, so the report should be." | The mixed language is an artefact of when this file was written. Write the report in the language the requester used. |
|
|
276
|
+
| "The two stores sync both ways and I have not seen an infinite loop." | A bounce needs one ordering to appear, and reading the code is not running it. The checklist rates a bidirectional sync with no equality guard as **critical** for exactly that reason: the absence of the guard is the finding, not the absence of a reproduction. |
|
|
277
|
+
| "`if (value && value !== other)` is the safer guard." | It is the guard that silently refuses to clear. `undefined`, `null`, `0` and `""` are legitimate values to propagate, and a truthy check strands the stale one instead. |
|
|
278
|
+
| "The component's `useEffect` calls `store.init()` — that is ordinary React." | Not under this architecture. The parent store orchestrates its children's lifecycle, and moving that into a component is how `dispose()` stops being called and stale async writes start landing. |
|
|
279
|
+
| "The method is only called by another store, so `@action.bound` is harmless." | The decorator publishes it. Inter-store callbacks and internal handlers are `private` here; the naming patterns the checklist lists are the tell, and the decision question is whether a React component calls it. |
|
|
280
|
+
| "While I was in the store I also noticed naming and component problems." | The Scope Boundaries table routes those to `code-style-review` and `code-ai-review`. A finding filed under the wrong profile arrives without the checks that lane would have applied. |
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Verification
|
|
285
|
+
|
|
286
|
+
Report done only once all of these hold:
|
|
287
|
+
|
|
288
|
+
- The requester asked for this profile by name, or through
|
|
289
|
+
`review --legacy-profiles`. A general frontend or store review with no profile
|
|
290
|
+
named belongs to `review-orchestrator`.
|
|
291
|
+
- The scope block carries the real branch, parent ref, merge-base and scope mode —
|
|
292
|
+
not the template placeholders.
|
|
293
|
+
- Every entry carries Rule, Why, Where (path plus the lines from the diff) and
|
|
294
|
+
Fix, with a minimal unified diff where the fix is a line or two.
|
|
295
|
+
- Every entry is anchored to a line the branch slice actually changed; legacy
|
|
296
|
+
store code outside that slice is not discussed.
|
|
297
|
+
- Entries are sorted into this document's own Critical / Warnings / Suggestions
|
|
298
|
+
sections, and are not presented as a severity any other reviewer or tool
|
|
299
|
+
consumes.
|
|
300
|
+
- The report is free prose by design, so it is delivered to a person and is not
|
|
301
|
+
fed into the managed-review pipeline.
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-style-review
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when the legacy code style and architecture review profile (code-style-patterns.mdc) is asked for by name — naming, organization, patterns, and TypeScript usage on the current branch. NOT for: a general style review (review-style) or an architecture review (review-architecture)."
|
|
4
4
|
triggers:
|
|
5
|
-
- "
|
|
6
|
-
- "
|
|
7
|
-
- "Architecture review"
|
|
5
|
+
- "code-style-review"
|
|
6
|
+
- "architecture style"
|
|
8
7
|
metadata:
|
|
9
8
|
author: "MrCipherSmith"
|
|
10
9
|
version: "1.0.0"
|
|
11
10
|
category: "review"
|
|
12
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
11
|
+
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
13
12
|
license: "MIT"
|
|
14
13
|
---
|
|
15
14
|
|
|
@@ -30,7 +29,7 @@ license: "MIT"
|
|
|
30
29
|
|
|
31
30
|
## Scope Detection
|
|
32
31
|
|
|
33
|
-
See shared script:
|
|
32
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
34
33
|
|
|
35
34
|
Run the script from that file to determine MERGE_BASE and SCOPE before proceeding with the review.
|
|
36
35
|
|
|
@@ -166,3 +165,44 @@ If provided and the file exists, read the context document before starting the r
|
|
|
166
165
|
- Provide more accurate findings by understanding the project's architectural decisions
|
|
167
166
|
|
|
168
167
|
If the file does not exist or is not provided, proceed normally — context is optional and non-blocking.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Red Flags
|
|
172
|
+
|
|
173
|
+
This profile is a thin legacy wrapper around `code-style-patterns.mdc`. It
|
|
174
|
+
predates the shared finding contract, it does not use the review domain's
|
|
175
|
+
severity vocabulary at all, and it is written mostly in Russian — each of those
|
|
176
|
+
is a way it misfires, and they are the rows below.
|
|
177
|
+
|
|
178
|
+
| Rationalization | Why it is wrong |
|
|
179
|
+
|----------------|-----------------|
|
|
180
|
+
| "A style review was asked for, so I will run this profile." | It is a legacy opt-in profile pinned to one rules file, reached by name or through `review --legacy-profiles`. A general style request belongs to `review-style`, and an architecture request to `review-architecture`; running this instead answers a narrower question than the one that was asked. |
|
|
181
|
+
| "The report has a Critical section, so downstream can consume it." | It cannot. `Critical` / `Warnings` / `Suggestions` are headings in a Markdown document, not a severity field: this profile predates `reviewer-finding.schema.json` and emits free prose with no machine-readable finding. Hand it to a person, never to `keryx review ingest`. |
|
|
182
|
+
| "The instructions are in Russian, so the report should be." | The language is an artefact of when this file was written. Write the report in the language the requester used. |
|
|
183
|
+
| "`public` reads more clearly than leaving the modifier off." | The project's ESLint configuration forbids the keyword outright, at error level. That is a build failure, not a matter of taste, and a reviewer arguing the taste is arguing with a gate that already decided. |
|
|
184
|
+
| "This component does not look like it reads observables, so the wrapper is optional." | Check what it reads through props and through the store getters it calls. Missing `observer` is rated critical in the checklist above because the failure is silent: the component simply stops updating. |
|
|
185
|
+
| "The `any` is temporary — the author will type it properly later." | Nothing records that intent and nothing revisits it. Rate the code in the diff, and propose `unknown` plus a type guard as the concrete fix. |
|
|
186
|
+
| "While reading for style I found a real bug, so I will report it here." | This report has nowhere to carry it and the requester is not reading it for that. Route it to `code-ai-review` (or `review-logic`) and say in one line that you did. |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Verification
|
|
191
|
+
|
|
192
|
+
Report done only once all of these hold:
|
|
193
|
+
|
|
194
|
+
- The requester asked for this profile by name, or through
|
|
195
|
+
`review --legacy-profiles`. A style or architecture request that names no
|
|
196
|
+
profile belongs to `review-style` or `review-architecture`.
|
|
197
|
+
- The scope block carries the real branch, parent ref, merge-base and scope mode —
|
|
198
|
+
not the template placeholders.
|
|
199
|
+
- Every entry carries Rule (the section of `code-style-patterns.mdc` it rests on),
|
|
200
|
+
Why, Where (path plus the lines from the diff) and Fix, with a minimal unified
|
|
201
|
+
diff rather than an edit applied to the tree.
|
|
202
|
+
- Every entry is anchored to a line the branch slice actually changed; legacy code
|
|
203
|
+
outside that slice is not discussed.
|
|
204
|
+
- Entries are sorted into this document's own Critical / Warnings / Suggestions
|
|
205
|
+
sections, and are not presented as a severity any other reviewer or tool
|
|
206
|
+
consumes.
|
|
207
|
+
- The report is free prose by design, so it is delivered to a person and is not
|
|
208
|
+
fed into the managed-review pipeline.
|
|
@@ -8,12 +8,12 @@ description: |
|
|
|
8
8
|
Dispatched by review-orchestrator with --architecture or --backend.
|
|
9
9
|
NOT for: style/naming preferences, logic correctness bugs, or security vulnerabilities.
|
|
10
10
|
triggers:
|
|
11
|
-
- "review
|
|
11
|
+
- "architecture review"
|
|
12
|
+
- "boundary review"
|
|
13
|
+
- "layering"
|
|
12
14
|
- "check architecture"
|
|
13
15
|
- "architectural review"
|
|
14
|
-
- "architecture review"
|
|
15
16
|
- "check layers"
|
|
16
|
-
- "dispatched by review-orchestrator"
|
|
17
17
|
metadata:
|
|
18
18
|
author: "MrCipherSmith"
|
|
19
19
|
version: "1.0.0"
|
|
@@ -61,7 +61,7 @@ Architecture Review Progress:
|
|
|
61
61
|
|
|
62
62
|
## Scope Detection
|
|
63
63
|
|
|
64
|
-
See shared script:
|
|
64
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
65
65
|
|
|
66
66
|
Run the script to determine `BASE_SHA`, then collect the diff:
|
|
67
67
|
|
|
@@ -210,7 +210,7 @@ Focus on **SRP** and **DIP** — the two most commonly violated in practice.
|
|
|
210
210
|
|
|
211
211
|
## Orchestrated Review Contract
|
|
212
212
|
|
|
213
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
213
|
+
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.
|
|
214
214
|
|
|
215
215
|
---
|
|
216
216
|
|
|
@@ -9,11 +9,10 @@ description: |
|
|
|
9
9
|
(use review-security-code for XSS/injection/auth-bypass), or performance profiling
|
|
10
10
|
(use review-performance).
|
|
11
11
|
triggers:
|
|
12
|
-
- "review backend"
|
|
13
12
|
- "backend review"
|
|
14
|
-
- "review
|
|
13
|
+
- "api review"
|
|
14
|
+
- "service review"
|
|
15
15
|
- "review NestJS"
|
|
16
|
-
- "review --backend"
|
|
17
16
|
metadata:
|
|
18
17
|
author: "MrCipherSmith"
|
|
19
18
|
version: "1.0.0"
|
|
@@ -36,7 +35,7 @@ performance checks — those belong to `review-security-code` and `review-perfor
|
|
|
36
35
|
```
|
|
37
36
|
review-backend Progress:
|
|
38
37
|
- [ ] Step 1: Read Job Context (if CONTEXT_PATH provided)
|
|
39
|
-
- [ ] Step 2: Determine git scope (merge-base) — see skills/shared/git-merge-base.md
|
|
38
|
+
- [ ] Step 2: Determine git scope (merge-base) — see .metaproject/skills/gdskills/shared/git-merge-base.md
|
|
40
39
|
- [ ] Step 3: Collect diff and changed file list
|
|
41
40
|
- [ ] Step 4: NestJS patterns check
|
|
42
41
|
- [ ] Step 5: API design check
|
|
@@ -60,7 +59,7 @@ review-backend Progress:
|
|
|
60
59
|
|
|
61
60
|
## Scope Detection
|
|
62
61
|
|
|
63
|
-
See shared script:
|
|
62
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
64
63
|
|
|
65
64
|
Run that script to determine `BASE_SHA` before collecting the diff.
|
|
66
65
|
|
|
@@ -230,7 +229,7 @@ is, and a condition that cannot name one is not a `blocker`.
|
|
|
230
229
|
|
|
231
230
|
## Orchestrated Review Contract
|
|
232
231
|
|
|
233
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
232
|
+
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.
|
|
234
233
|
|
|
235
234
|
---
|
|
236
235
|
|
|
@@ -10,12 +10,12 @@ description: |
|
|
|
10
10
|
NOT for: architectural layer violations (review-architecture), naming convention formatting
|
|
11
11
|
(review-style), logic correctness bugs (review-logic), or security (review-security-code).
|
|
12
12
|
triggers:
|
|
13
|
-
- "
|
|
13
|
+
- "clean code review"
|
|
14
|
+
- "functions do too much"
|
|
15
|
+
- "solid review"
|
|
16
|
+
- "maintainability"
|
|
14
17
|
- "check clean code"
|
|
15
18
|
- "Uncle Bob review"
|
|
16
|
-
- "SOLID review"
|
|
17
|
-
- "review --clean-code"
|
|
18
|
-
- dispatched by review-orchestrator
|
|
19
19
|
metadata:
|
|
20
20
|
author: "MrCipherSmith"
|
|
21
21
|
version: "1.0.0"
|
|
@@ -65,7 +65,7 @@ Clean Code Review Progress:
|
|
|
65
65
|
|
|
66
66
|
## Scope Detection
|
|
67
67
|
|
|
68
|
-
See shared script:
|
|
68
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
69
69
|
|
|
70
70
|
Run the script to determine `BASE_SHA`, then collect the diff:
|
|
71
71
|
|
|
@@ -398,7 +398,7 @@ Flags:
|
|
|
398
398
|
|
|
399
399
|
## Orchestrated Review Contract
|
|
400
400
|
|
|
401
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
401
|
+
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.
|
|
402
402
|
|
|
403
403
|
---
|
|
404
404
|
|
|
@@ -6,10 +6,14 @@ description: |
|
|
|
6
6
|
direction, feature-boundary leakage, abstraction stability, composition,
|
|
7
7
|
and blast-radius risks. Dispatched by review-orchestrator for
|
|
8
8
|
--core-boundaries, --project-conventions, --all, or src/core/** changes.
|
|
9
|
+
NOT for: logic correctness in code that happens to live in core (review-logic),
|
|
10
|
+
naming and readability (review-style), or SOLID and layering inside a feature
|
|
11
|
+
module (review-architecture).
|
|
9
12
|
triggers:
|
|
13
|
+
- "core review"
|
|
14
|
+
- "shared boundary"
|
|
15
|
+
- "public surface"
|
|
10
16
|
- "review core boundaries"
|
|
11
|
-
- "review --core-boundaries"
|
|
12
|
-
- dispatched by review-orchestrator
|
|
13
17
|
metadata:
|
|
14
18
|
author: "MrCipherSmith"
|
|
15
19
|
version: "1.0.0"
|
|
@@ -73,7 +77,7 @@ boundary is the trigger-and-outcome test.
|
|
|
73
77
|
|
|
74
78
|
## Orchestrated Review Contract
|
|
75
79
|
|
|
76
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
80
|
+
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.
|
|
77
81
|
|
|
78
82
|
---
|
|
79
83
|
|
|
@@ -127,3 +131,33 @@ conditions land under that rubric.
|
|
|
127
131
|
|
|
128
132
|
"Broad blast radius" is not by itself a `blocker`. Name the consumer that breaks.
|
|
129
133
|
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Red Flags
|
|
137
|
+
|
|
138
|
+
| Rationalization | Why it is wrong |
|
|
139
|
+
|----------------|-----------------|
|
|
140
|
+
| "It is generic enough to live in core." | Generic enough is not shared. Name the second consumer that needs it today; one feature's helper parked in core is exactly the leak this lane exists to catch, whatever the file is called. |
|
|
141
|
+
| "Core has broad blast radius, so this is a `blocker`." | Blast radius is a property of the module, not of the change. Name the consumer that breaks and what breaks in it, or it is `info` under shared law 1. |
|
|
142
|
+
| "It is only a type import, so core does not really depend on the feature." | The import is in the source and in the build graph. Delete the feature module and core stops compiling — direction is decided by what core names, not by what survives type erasure. |
|
|
143
|
+
| "The new export has one consumer today, so the surface is still stable." | A public core export is a contract with every module that installs it. One consumer is the argument for keeping the helper internal, not for exporting it. |
|
|
144
|
+
| "I cannot enumerate every consumer of a core symbol, so I will anchor the finding at the file the diff touched." | Consumers of a core export are precisely what a search enumerates. A `class_scope` with no `enumeration_method` is the one-site fix that leaves the siblings for the next round. |
|
|
145
|
+
| "The move into core is temporary — it gets extracted properly later." | Nothing downstream records that intent, and a core import is load-bearing the moment it ships. Rate the code in the diff, not the plan described beside it. |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Verification
|
|
150
|
+
|
|
151
|
+
Report done only once all of these hold:
|
|
152
|
+
|
|
153
|
+
- Every finding names `file:line` and the evidence that settles it — the import,
|
|
154
|
+
the export, or the consumer — quoted from the tree rather than described.
|
|
155
|
+
- Every `blocker` and `major` carries `class_scope` with `sites` and an
|
|
156
|
+
`enumeration_method` naming the search that produced them.
|
|
157
|
+
- No finding invents a severity: each lands under **Severity (canonical)** in
|
|
158
|
+
`review-orchestrator/SKILL.md`.
|
|
159
|
+
- Every blast-radius claim names the consumer that breaks. Unnamed ones are
|
|
160
|
+
`info`, and say what would settle them.
|
|
161
|
+
- The reply is the `REVIEW_RESULT` the Orchestrated Review Contract asks for, or
|
|
162
|
+
`NEEDS_CONTEXT` naming the context that was missing — never a guess in its place.
|
|
163
|
+
|
|
@@ -7,10 +7,13 @@ description: |
|
|
|
7
7
|
boundaries, selection lifecycle, and large-graph performance. Dispatched by
|
|
8
8
|
review-orchestrator for --flow-graph, --project-conventions, --all, or
|
|
9
9
|
src/core/flow/** / graph abstraction changes.
|
|
10
|
+
NOT for: React and MobX component structure outside the graph surface
|
|
11
|
+
(review-frontend), render cost elsewhere in the app (review-performance), or
|
|
12
|
+
the domain rules a graph happens to display (review-logic).
|
|
10
13
|
triggers:
|
|
11
|
-
- "
|
|
12
|
-
- "review
|
|
13
|
-
-
|
|
14
|
+
- "flow graph review"
|
|
15
|
+
- "graph ui review"
|
|
16
|
+
- "reactflow review"
|
|
14
17
|
metadata:
|
|
15
18
|
author: "MrCipherSmith"
|
|
16
19
|
version: "1.0.0"
|
|
@@ -99,7 +102,7 @@ boundary is the trigger-and-outcome test.
|
|
|
99
102
|
|
|
100
103
|
## Orchestrated Review Contract
|
|
101
104
|
|
|
102
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
105
|
+
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.
|
|
103
106
|
|
|
104
107
|
---
|
|
105
108
|
|
|
@@ -152,3 +155,34 @@ conditions land under that rubric.
|
|
|
152
155
|
| Internal helper reaching across a boundary with no observable consequence | `minor` | Correct today; the cost is to the next editor |
|
|
153
156
|
| Surface concern with no named caller | `info` | Shared law 1 |
|
|
154
157
|
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Red Flags
|
|
161
|
+
|
|
162
|
+
| Rationalization | Why it is wrong |
|
|
163
|
+
|----------------|-----------------|
|
|
164
|
+
| "The domain module imports the internal shell directly, but it renders fine." | Rendering is not the contract. The public graph surface is what the next refactor of the shell is allowed to change; a consumer reaching past it is the break waiting to happen, and it is reportable today. |
|
|
165
|
+
| "Only one consumer needs this helper, so exporting it from the graph surface is harmless." | An export is a promise to every future consumer. The rule in the checklist is two consumers, and one is the argument for leaving the helper internal. |
|
|
166
|
+
| "This graph felt slow when I read the code." | A performance claim here is a claim about a node and edge count. Name the count at which it degrades, or the finding is `info` under shared law 1. |
|
|
167
|
+
| "Deep observation on the nodes array is fine — the library is fast." | The cost is proxying every node on every write, and it scales with the array, not with the library. If you are rating it, state the array size the diff can produce. |
|
|
168
|
+
| "The subclass sets up its own reactivity first; base initialisation order is an implementation detail." | The base store's state is what the base selection, click and reset behaviour reads. Initialising after it is the documented lifecycle, not a style preference. |
|
|
169
|
+
| "The layout ran, so the lifecycle is intact." | Selection, expand/collapse and reset each have their own lifecycle. A layout that completes says nothing about whether a domain side effect swallowed the base selection reset. |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Verification
|
|
174
|
+
|
|
175
|
+
Report done only once all of these hold:
|
|
176
|
+
|
|
177
|
+
- Every finding names `file:line` and the evidence that settles it — the import,
|
|
178
|
+
the export, the subclass member, or the measured count.
|
|
179
|
+
- Every `blocker` and `major` carries `class_scope` with `sites` and an
|
|
180
|
+
`enumeration_method` naming the search that produced them — for a surface
|
|
181
|
+
finding, every consumer of the symbol, not only the one in the diff.
|
|
182
|
+
- Every performance finding states the node/edge count at which the cost applies;
|
|
183
|
+
without one it is `info`.
|
|
184
|
+
- No finding invents a severity: each lands under **Severity (canonical)** in
|
|
185
|
+
`review-orchestrator/SKILL.md`.
|
|
186
|
+
- The reply is the `REVIEW_RESULT` the Orchestrated Review Contract asks for, or
|
|
187
|
+
`NEEDS_CONTEXT` naming the context that was missing — never a guess in its place.
|
|
188
|
+
|
|
@@ -3,13 +3,11 @@ name: review-frontend
|
|
|
3
3
|
model_tier: standard
|
|
4
4
|
description: "Use when a frontend review is requested, checking React component patterns, MobX state management (observer, actions, computed, reactions, lifecycle), View-Store boundaries, and TypeScript safety in changed frontend code. NOT for backend patterns, security vulnerabilities, performance bottlenecks, or cross-layer architecture."
|
|
5
5
|
triggers:
|
|
6
|
-
- "review frontend"
|
|
7
6
|
- "frontend review"
|
|
7
|
+
- "component review"
|
|
8
|
+
- "ui review"
|
|
8
9
|
- "review React"
|
|
9
|
-
- "review MobX"
|
|
10
|
-
- "review store"
|
|
11
10
|
- "review components"
|
|
12
|
-
- dispatched by review-orchestrator
|
|
13
11
|
metadata:
|
|
14
12
|
author: "MrCipherSmith"
|
|
15
13
|
version: "1.1.0"
|
|
@@ -100,7 +98,7 @@ not a second opinion.
|
|
|
100
98
|
|
|
101
99
|
## Scope Detection
|
|
102
100
|
|
|
103
|
-
See shared script:
|
|
101
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
104
102
|
|
|
105
103
|
Run the script from that file to determine `MERGE_BASE` (`BASE_SHA`) and `SCOPE` before proceeding.
|
|
106
104
|
|
|
@@ -630,7 +628,7 @@ If the file does not exist or is not provided, proceed normally — context is o
|
|
|
630
628
|
|
|
631
629
|
## Orchestrated Review Contract
|
|
632
630
|
|
|
633
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
631
|
+
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.
|
|
634
632
|
|
|
635
633
|
---
|
|
636
634
|
|
|
@@ -8,10 +8,14 @@ description: |
|
|
|
8
8
|
styling tokens, Storybook expectations, and local tooling rules. Dispatched
|
|
9
9
|
by review-orchestrator for --frontend-conventions, --project-conventions,
|
|
10
10
|
--all, or frontend src/**/*.ts(x) changes when local convention docs exist.
|
|
11
|
+
NOT for: generic React and MobX correctness with no local rule behind it
|
|
12
|
+
(review-frontend), what the CSS actually renders (review-layout), or naming and
|
|
13
|
+
readability as a matter of taste (review-style).
|
|
11
14
|
triggers:
|
|
15
|
+
- "frontend conventions"
|
|
16
|
+
- "local frontend rules"
|
|
17
|
+
- "CLAUDE frontend"
|
|
12
18
|
- "review frontend conventions"
|
|
13
|
-
- "review --frontend-conventions"
|
|
14
|
-
- dispatched by review-orchestrator
|
|
15
19
|
metadata:
|
|
16
20
|
author: "MrCipherSmith"
|
|
17
21
|
version: "1.0.0"
|
|
@@ -124,7 +128,7 @@ boundary is the trigger-and-outcome test.
|
|
|
124
128
|
|
|
125
129
|
## Orchestrated Review Contract
|
|
126
130
|
|
|
127
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
131
|
+
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.
|
|
128
132
|
|
|
129
133
|
---
|
|
130
134
|
|
|
@@ -177,3 +181,33 @@ conditions land under that rubric.
|
|
|
177
181
|
| Naming, story coverage, file placement | `minor` | Correct today; the cost is to the next editor |
|
|
178
182
|
| A convention preference with no named consequence | `info` | Shared laws 1 and 2 |
|
|
179
183
|
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Red Flags
|
|
187
|
+
|
|
188
|
+
| Rationalization | Why it is wrong |
|
|
189
|
+
|----------------|-----------------|
|
|
190
|
+
| "There is no project guide here, but I know what good React looks like." | Then you are running the neutral baseline, and you must say so in the report. A preference with no local rule and no named consequence is `info`, not a convention violation — this lane's authority comes from the project's own documents. |
|
|
191
|
+
| "The guide says one thing but the newer files all do another, so that is the convention." | A pattern repeated in code is a candidate convention, not a decision. Cite the guide and name the divergence; let the team choose which one moves. |
|
|
192
|
+
| "The linter already fails on this, so it is at least `major`." | The machine catches it before merge. A reviewer restating a lint error spends a merge gate on something no human can ship past, which is why the rubric above puts it at `minor`. |
|
|
193
|
+
| "It is one direct `localStorage` call — the wrapper is overkill here." | The wrapper exists because the raw API throws on quota and is absent in some environments. One unguarded call is the class; enumerate the others before deciding it is small. |
|
|
194
|
+
| "This component does not read observables, so it does not need the reactive wrapper." | Check what it reads through props and through the store getters it calls. Lost reactivity is silent, which is why it is rated the same here as in `review-frontend`. |
|
|
195
|
+
| "The inline `style` is dynamic, so the token rule does not reach it." | Only the computed part is dynamic. Colours and spacing inside it still come from the local tokens, and mixing the two is how a theme change stops applying to one surface. |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Verification
|
|
200
|
+
|
|
201
|
+
Report done only once all of these hold:
|
|
202
|
+
|
|
203
|
+
- The report names which local convention documents were found and read, or
|
|
204
|
+
states plainly that none exist and only the neutral baseline ran.
|
|
205
|
+
- Every finding cites the local rule it rests on — the guide, the lint config, or
|
|
206
|
+
the baseline section above — and names `file:line`.
|
|
207
|
+
- Every `blocker` and `major` carries `class_scope` with `sites` and an
|
|
208
|
+
`enumeration_method` naming the search that produced them.
|
|
209
|
+
- No finding invents a severity: each lands under **Severity (canonical)** in
|
|
210
|
+
`review-orchestrator/SKILL.md`.
|
|
211
|
+
- The reply is the `REVIEW_RESULT` the Orchestrated Review Contract asks for, or
|
|
212
|
+
`NEEDS_CONTEXT` naming the context that was missing — never a guess in its place.
|
|
213
|
+
|
|
@@ -11,13 +11,11 @@ description: |
|
|
|
11
11
|
(review-performance), clean code style (review-clean-code), or NestJS module structure
|
|
12
12
|
(review-architecture).
|
|
13
13
|
triggers:
|
|
14
|
-
- "review highload"
|
|
15
|
-
- "review scalability"
|
|
16
14
|
- "highload review"
|
|
17
|
-
- "review
|
|
15
|
+
- "concurrency review"
|
|
16
|
+
- "race condition"
|
|
17
|
+
- "review scalability"
|
|
18
18
|
- "review distributed"
|
|
19
|
-
- "review --highload"
|
|
20
|
-
- dispatched by review-orchestrator
|
|
21
19
|
metadata:
|
|
22
20
|
author: "MrCipherSmith"
|
|
23
21
|
version: "1.0.0"
|
|
@@ -68,7 +66,7 @@ High-Load Review Progress:
|
|
|
68
66
|
|
|
69
67
|
## Scope Detection
|
|
70
68
|
|
|
71
|
-
See shared script:
|
|
69
|
+
See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
72
70
|
|
|
73
71
|
Run the script to determine `BASE_SHA`, then collect the diff:
|
|
74
72
|
|
|
@@ -405,7 +403,7 @@ Flags:
|
|
|
405
403
|
|
|
406
404
|
## Orchestrated Review Contract
|
|
407
405
|
|
|
408
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with
|
|
406
|
+
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.
|
|
409
407
|
|
|
410
408
|
---
|
|
411
409
|
|
|
@@ -12,10 +12,9 @@ description: |
|
|
|
12
12
|
naming and readability (review-style), re-render cost (review-performance), React or
|
|
13
13
|
MobX structure (review-frontend).
|
|
14
14
|
triggers:
|
|
15
|
-
- "review layout"
|
|
16
15
|
- "layout review"
|
|
16
|
+
- "review layout"
|
|
17
17
|
- "does this render correctly"
|
|
18
|
-
- "dispatched by review-orchestrator"
|
|
19
18
|
metadata:
|
|
20
19
|
author: "MrCipherSmith"
|
|
21
20
|
version: "1.0.0"
|
|
@@ -175,7 +174,7 @@ where its recurring conditions land under that one.
|
|
|
175
174
|
|
|
176
175
|
When dispatched by `review-orchestrator`, follow the provided
|
|
177
176
|
`reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible
|
|
178
|
-
with
|
|
177
|
+
with `.metaproject/skills/gdskills/review/review-orchestrator/reviewer-finding.schema.json`, then a
|
|
179
178
|
concise markdown summary. Prefix finding ids `LY-`.
|
|
180
179
|
|
|
181
180
|
### Class scope — required for `blocker` and `major`
|
|
@@ -215,3 +214,25 @@ a claim that the class has exactly one member — make it deliberately.
|
|
|
215
214
|
| "The class names look fine." | This lane does not review class names. That is `review-frontend-conventions`. |
|
|
216
215
|
| "I could not run the visual tier, so I reasoned it out." | Then it is `info`, marked unverified. Reasoning does not become measurement by being careful. |
|
|
217
216
|
| "RTL is handled, the component uses logical properties." | Check the gradients, shadows and transforms too. Those are the ones that do not flip. |
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Verification
|
|
221
|
+
|
|
222
|
+
Report done only once all of these hold:
|
|
223
|
+
|
|
224
|
+
- Every finding carries a **measurement**: the host width, the element width or
|
|
225
|
+
the offset in pixels, and the command or probe that produced it. An unmeasured
|
|
226
|
+
observation is filed as `info`, marked unverified, and says what would settle it.
|
|
227
|
+
- The measurement was taken at the worst real case — the longest translation in
|
|
228
|
+
the catalog, the narrowest supported host, the state where the sibling is
|
|
229
|
+
absent — not at the convenient one.
|
|
230
|
+
- Every finding names `file:line` on the component that renders the box.
|
|
231
|
+
- Every `blocker` and `major` carries `class_scope` with `sites` and an
|
|
232
|
+
`enumeration_method` naming the search that derived the set of elements sharing
|
|
233
|
+
the sizing shape.
|
|
234
|
+
- No finding invents a severity: each lands under **Severity (canonical)** in
|
|
235
|
+
`review-orchestrator/SKILL.md`.
|
|
236
|
+
- The reply is the `REVIEW_RESULT` the Orchestrated Review Contract asks for, with
|
|
237
|
+
finding ids prefixed `LY-`, or `NEEDS_CONTEXT` naming the context that was
|
|
238
|
+
missing — never a guess in its place.
|