@mrciphersmith/keryx 0.2.9
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/LICENSE +21 -0
- package/README.md +351 -0
- package/dist/cli.js +48427 -0
- package/dist/proxy-worker.js +381 -0
- package/package.json +63 -0
- package/src/gdgraph/affected.test.ts +100 -0
- package/src/gdgraph/affected.ts +135 -0
- package/src/gdgraph/build-integrity.test.ts +193 -0
- package/src/gdgraph/build-lang.test.ts +399 -0
- package/src/gdgraph/build.test.ts +120 -0
- package/src/gdgraph/build.ts +804 -0
- package/src/gdgraph/config.test.ts +47 -0
- package/src/gdgraph/config.ts +113 -0
- package/src/gdgraph/core-sources.test.ts +99 -0
- package/src/gdgraph/core-sources.ts +20 -0
- package/src/gdgraph/enrich.ts +79 -0
- package/src/gdgraph/fallback.test.ts +153 -0
- package/src/gdgraph/find.test.ts +78 -0
- package/src/gdgraph/find.ts +107 -0
- package/src/gdgraph/pagerank.ts +129 -0
- package/src/gdgraph/path.test.ts +56 -0
- package/src/gdgraph/path.ts +112 -0
- package/src/gdgraph/query.ts +133 -0
- package/src/gdgraph/repomap.test.ts +110 -0
- package/src/gdgraph/repomap.ts +193 -0
- package/src/gdgraph/service.test.ts +59 -0
- package/src/gdgraph/service.ts +51 -0
- package/src/gdgraph/staleness.ts +20 -0
- package/src/gdgraph/symbol.test.ts +89 -0
- package/src/gdgraph/symbol.ts +123 -0
- package/src/gdgraph/symbols-capability.test.ts +41 -0
- package/src/gdgraph/symbols-capability.ts +49 -0
- package/src/gdgraph/target.ts +56 -0
- package/src/gdgraph/treesitter/adapter.test.ts +249 -0
- package/src/gdgraph/treesitter/adapter.ts +213 -0
- package/src/gdgraph/treesitter/extract.test.ts +278 -0
- package/src/gdgraph/treesitter/extract.ts +389 -0
- package/src/gdgraph/treesitter/grammars.ts +110 -0
- package/src/gdgraph/treesitter/no-treesitter-import.test.ts +51 -0
- package/src/gdgraph/treesitter/resolve-calls.test.ts +38 -0
- package/src/gdgraph/types.ts +63 -0
- package/src/gdskills/bundled/rules/core/api-contracts.mdc +148 -0
- package/src/gdskills/bundled/rules/core/async-patterns.mdc +185 -0
- package/src/gdskills/bundled/rules/core/clean-architecture.mdc +163 -0
- package/src/gdskills/bundled/rules/core/code-review-ai-assistant.mdc +49 -0
- package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +48 -0
- package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +54 -0
- package/src/gdskills/bundled/rules/core/commit-message-formatting.mdc +25 -0
- package/src/gdskills/bundled/rules/core/database-patterns.mdc +162 -0
- package/src/gdskills/bundled/rules/core/documentation-management.mdc +106 -0
- package/src/gdskills/bundled/rules/core/error-handling.mdc +163 -0
- package/src/gdskills/bundled/rules/core/execution-metrics.md +99 -0
- package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +40 -0
- package/src/gdskills/bundled/rules/core/git-rules.mdc +37 -0
- package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +198 -0
- package/src/gdskills/bundled/rules/core/implementation-doc-mandate.mdc +149 -0
- package/src/gdskills/bundled/rules/core/implementation-plans.mdc +58 -0
- package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +221 -0
- package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +561 -0
- package/src/gdskills/bundled/rules/core/model-selection.mdc +53 -0
- package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +50 -0
- package/src/gdskills/bundled/rules/core/playwright-testing.mdc +321 -0
- package/src/gdskills/bundled/rules/core/requirements-management.mdc +35 -0
- package/src/gdskills/bundled/rules/core/requirements-package-standard.mdc +103 -0
- package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +49 -0
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +44 -0
- package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +62 -0
- package/src/gdskills/bundled/rules/core/security-baseline.mdc +155 -0
- package/src/gdskills/bundled/rules/core/shared-definitions.mdc +79 -0
- package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +55 -0
- package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +88 -0
- package/src/gdskills/bundled/rules/core/solid-principles.mdc +149 -0
- package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +36 -0
- package/src/gdskills/bundled/rules/core/subagent-context-construction.md +107 -0
- package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +169 -0
- package/src/gdskills/bundled/rules/core/tdd-workflow.mdc +96 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +47 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +55 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +352 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +39 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +29 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +567 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +567 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +655 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +567 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +567 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/input-contract.schema.json +134 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +183 -0
- package/src/gdskills/bundled/skills/orchestration/context-collector/output-contract.schema.json +208 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +1412 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +1412 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +735 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +468 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +1412 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +1412 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +62 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +79 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +247 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +362 -0
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/output-contract.schema.json +87 -0
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +105 -0
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +105 -0
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +165 -0
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +379 -0
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/input-contract.schema.json +33 -0
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/output-contract.schema.json +41 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +307 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +307 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +373 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +307 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +307 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/input-contract.schema.json +130 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/issue-request.template.md +50 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +155 -0
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/output-contract.schema.json +61 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +365 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +365 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +373 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +365 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +365 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/input-contract.schema.json +55 -0
- package/src/gdskills/bundled/skills/orchestration/job-documenter/output-contract.schema.json +58 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +1701 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +1701 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +1734 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +1701 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +1701 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +188 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +179 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +103 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/state.schema.json +164 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +395 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +395 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +556 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +395 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +395 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +204 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +206 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +51 -0
- package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +111 -0
- package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +163 -0
- package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +161 -0
- package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +128 -0
- package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +321 -0
- package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +166 -0
- package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +253 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +46 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +90 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +90 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +90 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +33 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +33 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +190 -0
- package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +142 -0
- package/src/gdskills/bundled/skills/planning/docpack-orchestrator/input-contract.schema.json +31 -0
- package/src/gdskills/bundled/skills/planning/docpack-orchestrator/output-contract.schema.json +31 -0
- package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +80 -0
- package/src/gdskills/bundled/skills/planning/docpack-review/input-contract.schema.json +20 -0
- package/src/gdskills/bundled/skills/planning/docpack-review/output-contract.schema.json +36 -0
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +181 -0
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +181 -0
- package/src/gdskills/bundled/skills/planning/interview/SKILL.md +187 -0
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +94 -0
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +99 -0
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +99 -0
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +105 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +33 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +33 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +237 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +33 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +33 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.md +190 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +193 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +193 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +193 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +193 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +193 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/input-contract.schema.json +63 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/output-contract.schema.json +175 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +31 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +31 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +153 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +32 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +32 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +166 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +44 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +44 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +243 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +43 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +43 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +193 -0
- package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +47 -0
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +87 -0
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +87 -0
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +87 -0
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +100 -0
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +100 -0
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +100 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +45 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +84 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +84 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +84 -0
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +66 -0
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +66 -0
- package/src/gdskills/bundled/skills/quality/commit/SKILL.md +66 -0
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +40 -0
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +66 -0
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +66 -0
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +66 -0
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +45 -0
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +81 -0
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +81 -0
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +81 -0
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +42 -0
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +70 -0
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +70 -0
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +70 -0
- package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +103 -0
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +48 -0
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +83 -0
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +83 -0
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +83 -0
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +75 -0
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +75 -0
- package/src/gdskills/bundled/skills/quality/pr/SKILL.md +75 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +364 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +295 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +378 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +364 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +38 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/input-contract.schema.json +53 -0
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/output-contract.schema.json +46 -0
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +52 -0
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +52 -0
- package/src/gdskills/bundled/skills/quality/push/SKILL.md +52 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +40 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +61 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +61 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +61 -0
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +30 -0
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +75 -0
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +75 -0
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +75 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +64 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +74 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +339 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +48 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +44 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/input-contract.schema.json +121 -0
- package/src/gdskills/bundled/skills/quality/tests-creator/output-contract.schema.json +127 -0
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +204 -0
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +204 -0
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +203 -0
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +204 -0
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +204 -0
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +209 -0
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +209 -0
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +208 -0
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +209 -0
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +209 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +263 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +263 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +258 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +263 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +263 -0
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +175 -0
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +175 -0
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +168 -0
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +175 -0
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +175 -0
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +360 -0
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +337 -0
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +477 -0
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +93 -0
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +119 -0
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +595 -0
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +144 -0
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +519 -0
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +323 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +927 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +153 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/output-contract.schema.json +77 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +389 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-finding.schema.json +189 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +241 -0
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +344 -0
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +327 -0
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +348 -0
- package/src/gdskills/bundled/skills/review/review-strict/SKILL.md +328 -0
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +343 -0
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +134 -0
- package/src/gdskills/bundled/skills/shared/git-merge-base.md +33 -0
- package/src/gdskills/contracts/agent-event.schema.json +32 -0
- package/src/gdskills/contracts/orchestrator-state.schema.json +58 -0
- package/src/gdskills/contracts/review-finding.schema.json +59 -0
- package/src/gdskills/contracts/subagent-dispatch.schema.json +123 -0
- package/src/gdskills/contracts/subagent-result.schema.json +136 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-style-review
|
|
3
|
+
description: "Detailed code style and architecture review using code-style-patterns.mdc. Reviews current branch changes. Checks naming, organization, patterns, TypeScript usage. Use when: style validation needed, architecture review."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Style review"
|
|
6
|
+
- "Check code style"
|
|
7
|
+
- "Architecture review"
|
|
8
|
+
metadata:
|
|
9
|
+
author: "MrCipherSmith"
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
category: "review"
|
|
12
|
+
license: "MIT"
|
|
13
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Code Style Review
|
|
18
|
+
|
|
19
|
+
Проводи ревью только изменений текущей ветки от момента отбранчевания от родительской ветки, строго по правилам из `.metaproject/rules/core/code-style-patterns.mdc`.
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
- Если пользователь **не передал commit hash/range**, ревьюируй полный срез от merge-base до текущего рабочего дерева:
|
|
24
|
+
- закоммиченные изменения (`BASE_SHA..HEAD`)
|
|
25
|
+
- локальные незакоммиченные (`staged/unstaged/untracked`)
|
|
26
|
+
- Если пользователь **явно передал commit hash/range**, ревьюируй только запрошенный диапазон; незакоммиченные изменения не добавляй, если это отдельно не попросили.
|
|
27
|
+
- Не обсуждай легаси вне изменённого скоупа.
|
|
28
|
+
- Фидбек должен быть подробным: проблема -> почему это проблема -> где (файл/участок) -> что сделать -> пример исправления.
|
|
29
|
+
- Исправления предлагай в виде unified diff-патчей, не вноси изменения в код напрямую.
|
|
30
|
+
|
|
31
|
+
## Git workflow (вычислить базу и diff)
|
|
32
|
+
|
|
33
|
+
Определи parent ref и вычисли merge-base:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
37
|
+
UPSTREAM_REF="$(git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null || true)"
|
|
38
|
+
|
|
39
|
+
PARENT=""
|
|
40
|
+
if git rev-parse --verify -q "origin/main" >/dev/null; then
|
|
41
|
+
PARENT="origin/main"
|
|
42
|
+
elif git rev-parse --verify -q "origin/master" >/dev/null; then
|
|
43
|
+
PARENT="origin/master"
|
|
44
|
+
elif git rev-parse --verify -q "main" >/dev/null; then
|
|
45
|
+
PARENT="main"
|
|
46
|
+
elif git rev-parse --verify -q "master" >/dev/null; then
|
|
47
|
+
PARENT="master"
|
|
48
|
+
elif [ -n "$UPSTREAM_REF" ] && [ "$UPSTREAM_REF" != "$BRANCH" ] && [ "$UPSTREAM_REF" != "origin/$BRANCH" ]; then
|
|
49
|
+
PARENT="@{upstream}"
|
|
50
|
+
else
|
|
51
|
+
echo "Cannot determine parent ref" >&2
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
BASE_SHA="$(git merge-base HEAD "$PARENT")"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Собери входные данные:
|
|
59
|
+
|
|
60
|
+
### A) Режим по умолчанию (без hash/range)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git status
|
|
64
|
+
|
|
65
|
+
# Закоммиченная часть ветки
|
|
66
|
+
git log --oneline "${BASE_SHA}..HEAD"
|
|
67
|
+
git diff --name-status --find-renames "${BASE_SHA}..HEAD"
|
|
68
|
+
git diff --find-renames "${BASE_SHA}..HEAD"
|
|
69
|
+
|
|
70
|
+
# Полный текущий срез от merge-base до рабочего дерева
|
|
71
|
+
# включает commit'ы + staged + unstaged
|
|
72
|
+
# (untracked смотри через git status / git ls-files)
|
|
73
|
+
git diff --name-status --find-renames "${BASE_SHA}"
|
|
74
|
+
git diff --find-renames "${BASE_SHA}"
|
|
75
|
+
git ls-files --others --exclude-standard
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### B) Режим с явным hash/range
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git show --stat --name-status --patch <COMMIT_SHA>
|
|
82
|
+
git log --oneline <FROM_SHA>..<TO_SHA>
|
|
83
|
+
git diff --name-status --find-renames <FROM_SHA>..<TO_SHA>
|
|
84
|
+
git diff --find-renames <FROM_SHA>..<TO_SHA>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Используй только эти изменения как вход для ревью.
|
|
88
|
+
|
|
89
|
+
## Review checklist (по `.metaproject/rules/core/code-style-patterns.mdc`)
|
|
90
|
+
|
|
91
|
+
### TypeScript Strictness
|
|
92
|
+
- Запрещён `any` (предлагай `unknown` + type guards / корректные типы).
|
|
93
|
+
- Props через `interface`, префикс `I*`.
|
|
94
|
+
- Предпочитай `?.` и `??`, избегай `!` (non-null assertion).
|
|
95
|
+
|
|
96
|
+
### MobX
|
|
97
|
+
- В сторах обязателен `makeObservable(this)` в конструкторе.
|
|
98
|
+
- Для асинхронных мутаций после `await` - `runInAction`.
|
|
99
|
+
- Методы экшенов: `@action.bound`.
|
|
100
|
+
- Derived state: `@computed`.
|
|
101
|
+
- Для коллекций/списков - `@observable.shallow` (когда применимо).
|
|
102
|
+
- Inter-store callbacks (`onChangeX`, `onFireX`, `handleX`, `syncX`) обязаны быть `private`. Публичный `@action.bound` только для методов вызываемых из React-компонентов.
|
|
103
|
+
|
|
104
|
+
### React Components
|
|
105
|
+
- Компоненты, читающие observable, обязаны быть `observer(...)`.
|
|
106
|
+
- MVVM: логика и side effects в Store/Service, а не во View.
|
|
107
|
+
- Запрещай бизнес-логику в `useEffect` (предлагай store actions/reactions).
|
|
108
|
+
- Следи за порядком структуры файла: imports -> interfaces -> component -> helpers.
|
|
109
|
+
|
|
110
|
+
### Architecture & Layers
|
|
111
|
+
- API/IO не во View: в Service/Store.
|
|
112
|
+
- Взаимодействие со Store - через actions (без прямых мутаций вне экшенов).
|
|
113
|
+
|
|
114
|
+
### Anti-patterns severity
|
|
115
|
+
- Critical: API во View, missing `observer`, direct store mutation, грубые нарушения MobX async.
|
|
116
|
+
- Warnings: `console.log` вместо `AppLogger`, inline object props без memo/const, тяжёлая логика в render, спорные типы, public inter-store callbacks/handlers.
|
|
117
|
+
|
|
118
|
+
## Output format (обязательный отчёт)
|
|
119
|
+
|
|
120
|
+
Сформируй отчёт в Markdown строго по шаблону:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## Summary
|
|
124
|
+
- [1-3 bullets] Что изменилось и общий уровень соответствия стилю
|
|
125
|
+
|
|
126
|
+
## Scope
|
|
127
|
+
- Branch: `<BRANCH>`
|
|
128
|
+
- Parent ref: `<PARENT>`
|
|
129
|
+
- Merge-base: `<BASE_SHA>`
|
|
130
|
+
- Scope mode: `<default-with-uncommitted | explicit-hash-range>`
|
|
131
|
+
|
|
132
|
+
## Critical issues (must fix)
|
|
133
|
+
### [Короткий заголовок проблемы]
|
|
134
|
+
- **Rule**: [ссылка/название секции из core/code-style-patterns.mdc]
|
|
135
|
+
- **Why**: [объяснение]
|
|
136
|
+
- **Where**: `path/to/file.tsx` (строки из diff)
|
|
137
|
+
- **Fix**: [что сделать]
|
|
138
|
+
- **Proposed patch**:
|
|
139
|
+
```diff
|
|
140
|
+
[unified diff]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Warnings
|
|
144
|
+
... (тот же формат, без "must fix")
|
|
145
|
+
|
|
146
|
+
## Suggestions
|
|
147
|
+
... (тот же формат, improvements без обязательности)
|
|
148
|
+
|
|
149
|
+
## File-by-file notes
|
|
150
|
+
- `path/to/file`: [коротко, только по изменённым участкам]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Rules of engagement
|
|
154
|
+
|
|
155
|
+
- Привязывай замечания к конкретным изменённым строкам (по diff).
|
|
156
|
+
- Если есть несколько вариантов, предлагай один default и короткий альтернативный.
|
|
157
|
+
- Не предлагай новые библиотеки без явного запроса.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Job Context Awareness
|
|
162
|
+
|
|
163
|
+
When dispatched by `job-orchestrator` as part of a job pipeline, the prompt MAY include:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
JOB_NAME: <job-name>
|
|
167
|
+
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If provided and the file exists, read the context document before starting the review. Use it to:
|
|
171
|
+
- Understand which libraries and patterns were intentionally chosen for the implementation
|
|
172
|
+
- Validate code style against documented project conventions from the context
|
|
173
|
+
- Provide more accurate findings by understanding the project's architectural decisions
|
|
174
|
+
|
|
175
|
+
If the file does not exist or is not provided, proceed normally — context is optional and non-blocking.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-style-review
|
|
3
|
+
description: "Detailed code style and architecture review using code-style-patterns.mdc. Reviews current branch changes. Checks naming, organization, patterns, TypeScript usage. Use when: style validation needed, architecture review."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Style review"
|
|
6
|
+
- "Check code style"
|
|
7
|
+
- "Architecture review"
|
|
8
|
+
metadata:
|
|
9
|
+
author: "MrCipherSmith"
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
category: "review"
|
|
12
|
+
license: "MIT"
|
|
13
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Code Style Review
|
|
18
|
+
|
|
19
|
+
Проводи ревью только изменений текущей ветки от момента отбранчевания от родительской ветки, строго по правилам из `.metaproject/rules/core/code-style-patterns.mdc`.
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
- Если пользователь **не передал commit hash/range**, ревьюируй полный срез от merge-base до текущего рабочего дерева:
|
|
24
|
+
- закоммиченные изменения (`BASE_SHA..HEAD`)
|
|
25
|
+
- локальные незакоммиченные (`staged/unstaged/untracked`)
|
|
26
|
+
- Если пользователь **явно передал commit hash/range**, ревьюируй только запрошенный диапазон; незакоммиченные изменения не добавляй, если это отдельно не попросили.
|
|
27
|
+
- Не обсуждай легаси вне изменённого скоупа.
|
|
28
|
+
- Фидбек должен быть подробным: проблема -> почему это проблема -> где (файл/участок) -> что сделать -> пример исправления.
|
|
29
|
+
- Исправления предлагай в виде unified diff-патчей, не вноси изменения в код напрямую.
|
|
30
|
+
|
|
31
|
+
## Git workflow (вычислить базу и diff)
|
|
32
|
+
|
|
33
|
+
Определи parent ref и вычисли merge-base:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
37
|
+
UPSTREAM_REF="$(git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null || true)"
|
|
38
|
+
|
|
39
|
+
PARENT=""
|
|
40
|
+
if git rev-parse --verify -q "origin/main" >/dev/null; then
|
|
41
|
+
PARENT="origin/main"
|
|
42
|
+
elif git rev-parse --verify -q "origin/master" >/dev/null; then
|
|
43
|
+
PARENT="origin/master"
|
|
44
|
+
elif git rev-parse --verify -q "main" >/dev/null; then
|
|
45
|
+
PARENT="main"
|
|
46
|
+
elif git rev-parse --verify -q "master" >/dev/null; then
|
|
47
|
+
PARENT="master"
|
|
48
|
+
elif [ -n "$UPSTREAM_REF" ] && [ "$UPSTREAM_REF" != "$BRANCH" ] && [ "$UPSTREAM_REF" != "origin/$BRANCH" ]; then
|
|
49
|
+
PARENT="@{upstream}"
|
|
50
|
+
else
|
|
51
|
+
echo "Cannot determine parent ref" >&2
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
BASE_SHA="$(git merge-base HEAD "$PARENT")"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Собери входные данные:
|
|
59
|
+
|
|
60
|
+
### A) Режим по умолчанию (без hash/range)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git status
|
|
64
|
+
|
|
65
|
+
# Закоммиченная часть ветки
|
|
66
|
+
git log --oneline "${BASE_SHA}..HEAD"
|
|
67
|
+
git diff --name-status --find-renames "${BASE_SHA}..HEAD"
|
|
68
|
+
git diff --find-renames "${BASE_SHA}..HEAD"
|
|
69
|
+
|
|
70
|
+
# Полный текущий срез от merge-base до рабочего дерева
|
|
71
|
+
# включает commit'ы + staged + unstaged
|
|
72
|
+
# (untracked смотри через git status / git ls-files)
|
|
73
|
+
git diff --name-status --find-renames "${BASE_SHA}"
|
|
74
|
+
git diff --find-renames "${BASE_SHA}"
|
|
75
|
+
git ls-files --others --exclude-standard
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### B) Режим с явным hash/range
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git show --stat --name-status --patch <COMMIT_SHA>
|
|
82
|
+
git log --oneline <FROM_SHA>..<TO_SHA>
|
|
83
|
+
git diff --name-status --find-renames <FROM_SHA>..<TO_SHA>
|
|
84
|
+
git diff --find-renames <FROM_SHA>..<TO_SHA>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Используй только эти изменения как вход для ревью.
|
|
88
|
+
|
|
89
|
+
## Review checklist (по `.metaproject/rules/core/code-style-patterns.mdc`)
|
|
90
|
+
|
|
91
|
+
### TypeScript Strictness
|
|
92
|
+
- Запрещён `any` (предлагай `unknown` + type guards / корректные типы).
|
|
93
|
+
- Props через `interface`, префикс `I*`.
|
|
94
|
+
- Предпочитай `?.` и `??`, избегай `!` (non-null assertion).
|
|
95
|
+
|
|
96
|
+
### MobX
|
|
97
|
+
- В сторах обязателен `makeObservable(this)` в конструкторе.
|
|
98
|
+
- Для асинхронных мутаций после `await` - `runInAction`.
|
|
99
|
+
- Методы экшенов: `@action.bound`.
|
|
100
|
+
- Derived state: `@computed`.
|
|
101
|
+
- Для коллекций/списков - `@observable.shallow` (когда применимо).
|
|
102
|
+
- Inter-store callbacks (`onChangeX`, `onFireX`, `handleX`, `syncX`) обязаны быть `private`. Публичный `@action.bound` только для методов вызываемых из React-компонентов.
|
|
103
|
+
|
|
104
|
+
### React Components
|
|
105
|
+
- Компоненты, читающие observable, обязаны быть `observer(...)`.
|
|
106
|
+
- MVVM: логика и side effects в Store/Service, а не во View.
|
|
107
|
+
- Запрещай бизнес-логику в `useEffect` (предлагай store actions/reactions).
|
|
108
|
+
- Следи за порядком структуры файла: imports -> interfaces -> component -> helpers.
|
|
109
|
+
|
|
110
|
+
### Architecture & Layers
|
|
111
|
+
- API/IO не во View: в Service/Store.
|
|
112
|
+
- Взаимодействие со Store - через actions (без прямых мутаций вне экшенов).
|
|
113
|
+
|
|
114
|
+
### Anti-patterns severity
|
|
115
|
+
- Critical: API во View, missing `observer`, direct store mutation, грубые нарушения MobX async.
|
|
116
|
+
- Warnings: `console.log` вместо `AppLogger`, inline object props без memo/const, тяжёлая логика в render, спорные типы, public inter-store callbacks/handlers.
|
|
117
|
+
|
|
118
|
+
## Output format (обязательный отчёт)
|
|
119
|
+
|
|
120
|
+
Сформируй отчёт в Markdown строго по шаблону:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## Summary
|
|
124
|
+
- [1-3 bullets] Что изменилось и общий уровень соответствия стилю
|
|
125
|
+
|
|
126
|
+
## Scope
|
|
127
|
+
- Branch: `<BRANCH>`
|
|
128
|
+
- Parent ref: `<PARENT>`
|
|
129
|
+
- Merge-base: `<BASE_SHA>`
|
|
130
|
+
- Scope mode: `<default-with-uncommitted | explicit-hash-range>`
|
|
131
|
+
|
|
132
|
+
## Critical issues (must fix)
|
|
133
|
+
### [Короткий заголовок проблемы]
|
|
134
|
+
- **Rule**: [ссылка/название секции из core/code-style-patterns.mdc]
|
|
135
|
+
- **Why**: [объяснение]
|
|
136
|
+
- **Where**: `path/to/file.tsx` (строки из diff)
|
|
137
|
+
- **Fix**: [что сделать]
|
|
138
|
+
- **Proposed patch**:
|
|
139
|
+
```diff
|
|
140
|
+
[unified diff]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Warnings
|
|
144
|
+
... (тот же формат, без "must fix")
|
|
145
|
+
|
|
146
|
+
## Suggestions
|
|
147
|
+
... (тот же формат, improvements без обязательности)
|
|
148
|
+
|
|
149
|
+
## File-by-file notes
|
|
150
|
+
- `path/to/file`: [коротко, только по изменённым участкам]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Rules of engagement
|
|
154
|
+
|
|
155
|
+
- Привязывай замечания к конкретным изменённым строкам (по diff).
|
|
156
|
+
- Если есть несколько вариантов, предлагай один default и короткий альтернативный.
|
|
157
|
+
- Не предлагай новые библиотеки без явного запроса.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Job Context Awareness
|
|
162
|
+
|
|
163
|
+
When dispatched by `job-orchestrator` as part of a job pipeline, the prompt MAY include:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
JOB_NAME: <job-name>
|
|
167
|
+
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If provided and the file exists, read the context document before starting the review. Use it to:
|
|
171
|
+
- Understand which libraries and patterns were intentionally chosen for the implementation
|
|
172
|
+
- Validate code style against documented project conventions from the context
|
|
173
|
+
- Provide more accurate findings by understanding the project's architectural decisions
|
|
174
|
+
|
|
175
|
+
If the file does not exist or is not provided, proceed normally — context is optional and non-blocking.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-style-review
|
|
3
|
+
description: "Detailed code style and architecture review using code-style-patterns.mdc. Reviews current branch changes. Checks naming, organization, patterns, TypeScript usage. Use when: style validation needed, architecture review."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Style review"
|
|
6
|
+
- "Check code style"
|
|
7
|
+
- "Architecture review"
|
|
8
|
+
metadata:
|
|
9
|
+
author: "MrCipherSmith"
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
category: "review"
|
|
12
|
+
license: "MIT"
|
|
13
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Code Style Review
|
|
18
|
+
|
|
19
|
+
Проводи ревью только изменений текущей ветки от момента отбранчевания от родительской ветки, строго по правилам из `.metaproject/rules/core/code-style-patterns.mdc`.
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
- Если пользователь **не передал commit hash/range**, ревьюируй полный срез от merge-base до текущего рабочего дерева:
|
|
24
|
+
- закоммиченные изменения (`BASE_SHA..HEAD`)
|
|
25
|
+
- локальные незакоммиченные (`staged/unstaged/untracked`)
|
|
26
|
+
- Если пользователь **явно передал commit hash/range**, ревьюируй только запрошенный диапазон; незакоммиченные изменения не добавляй, если это отдельно не попросили.
|
|
27
|
+
- Не обсуждай легаси вне изменённого скоупа.
|
|
28
|
+
- Фидбек должен быть подробным: проблема -> почему это проблема -> где (файл/участок) -> что сделать -> пример исправления.
|
|
29
|
+
- Исправления предлагай в виде unified diff-патчей, не вноси изменения в код напрямую.
|
|
30
|
+
|
|
31
|
+
## Scope Detection
|
|
32
|
+
|
|
33
|
+
See shared script: `skills/shared/git-merge-base.md`
|
|
34
|
+
|
|
35
|
+
Run the script from that file to determine MERGE_BASE and SCOPE before proceeding with the review.
|
|
36
|
+
|
|
37
|
+
Собери входные данные:
|
|
38
|
+
|
|
39
|
+
### A) Режим по умолчанию (без hash/range)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git status
|
|
43
|
+
|
|
44
|
+
# Закоммиченная часть ветки
|
|
45
|
+
git log --oneline "${BASE_SHA}..HEAD"
|
|
46
|
+
git diff --name-status --find-renames "${BASE_SHA}..HEAD"
|
|
47
|
+
git diff --find-renames "${BASE_SHA}..HEAD"
|
|
48
|
+
|
|
49
|
+
# Полный текущий срез от merge-base до рабочего дерева
|
|
50
|
+
# включает commit'ы + staged + unstaged
|
|
51
|
+
# (untracked смотри через git status / git ls-files)
|
|
52
|
+
git diff --name-status --find-renames "${BASE_SHA}"
|
|
53
|
+
git diff --find-renames "${BASE_SHA}"
|
|
54
|
+
git ls-files --others --exclude-standard
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### B) Режим с явным hash/range
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git show --stat --name-status --patch <COMMIT_SHA>
|
|
61
|
+
git log --oneline <FROM_SHA>..<TO_SHA>
|
|
62
|
+
git diff --name-status --find-renames <FROM_SHA>..<TO_SHA>
|
|
63
|
+
git diff --find-renames <FROM_SHA>..<TO_SHA>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Используй только эти изменения как вход для ревью.
|
|
67
|
+
|
|
68
|
+
## Review checklist (по `.metaproject/rules/core/code-style-patterns.mdc`)
|
|
69
|
+
|
|
70
|
+
### TypeScript Strictness
|
|
71
|
+
- Запрещён `any` (предлагай `unknown` + type guards / корректные типы).
|
|
72
|
+
- Props через `interface`, префикс `I*`.
|
|
73
|
+
- Предпочитай `?.` и `??`, избегай `!` (non-null assertion).
|
|
74
|
+
|
|
75
|
+
### MobX
|
|
76
|
+
- В сторах обязателен `makeObservable(this)` в конструкторе.
|
|
77
|
+
- Для асинхронных мутаций после `await` - `runInAction`.
|
|
78
|
+
- Методы экшенов: `@action.bound`.
|
|
79
|
+
- Derived state: `@computed`.
|
|
80
|
+
- Для коллекций/списков - `@observable.shallow` (когда применимо).
|
|
81
|
+
- Inter-store callbacks (`onChangeX`, `onFireX`, `handleX`, `syncX`) обязаны быть `private`. Публичный `@action.bound` только для методов вызываемых из React-компонентов.
|
|
82
|
+
|
|
83
|
+
### React Components
|
|
84
|
+
- Компоненты, читающие observable, обязаны быть `observer(...)`.
|
|
85
|
+
- MVVM: логика и side effects в Store/Service, а не во View.
|
|
86
|
+
- Запрещай бизнес-логику в `useEffect` (предлагай store actions/reactions).
|
|
87
|
+
- Следи за порядком структуры файла: imports -> interfaces -> component -> helpers.
|
|
88
|
+
|
|
89
|
+
### Architecture & Layers
|
|
90
|
+
- API/IO не во View: в Service/Store.
|
|
91
|
+
- Взаимодействие со Store - через actions (без прямых мутаций вне экшенов).
|
|
92
|
+
|
|
93
|
+
### Anti-patterns severity
|
|
94
|
+
- Critical: API во View, missing `observer`, direct store mutation, грубые нарушения MobX async.
|
|
95
|
+
- Warnings: `console.log` вместо `AppLogger`, inline object props без memo/const, тяжёлая логика в render, спорные типы, public inter-store callbacks/handlers.
|
|
96
|
+
|
|
97
|
+
## Output format (обязательный отчёт)
|
|
98
|
+
|
|
99
|
+
Сформируй отчёт в Markdown строго по шаблону:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
## Summary
|
|
103
|
+
- [1-3 bullets] Что изменилось и общий уровень соответствия стилю
|
|
104
|
+
|
|
105
|
+
## Scope
|
|
106
|
+
- Branch: `<BRANCH>`
|
|
107
|
+
- Parent ref: `<PARENT>`
|
|
108
|
+
- Merge-base: `<BASE_SHA>`
|
|
109
|
+
- Scope mode: `<default-with-uncommitted | explicit-hash-range>`
|
|
110
|
+
|
|
111
|
+
## Critical issues (must fix)
|
|
112
|
+
### [Короткий заголовок проблемы]
|
|
113
|
+
- **Rule**: [ссылка/название секции из core/code-style-patterns.mdc]
|
|
114
|
+
- **Why**: [объяснение]
|
|
115
|
+
- **Where**: `path/to/file.tsx` (строки из diff)
|
|
116
|
+
- **Fix**: [что сделать]
|
|
117
|
+
- **Proposed patch**:
|
|
118
|
+
```diff
|
|
119
|
+
[unified diff]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Warnings
|
|
123
|
+
... (тот же формат, без "must fix")
|
|
124
|
+
|
|
125
|
+
## Suggestions
|
|
126
|
+
... (тот же формат, improvements без обязательности)
|
|
127
|
+
|
|
128
|
+
## File-by-file notes
|
|
129
|
+
- `path/to/file`: [коротко, только по изменённым участкам]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Rules of engagement
|
|
133
|
+
|
|
134
|
+
- Привязывай замечания к конкретным изменённым строкам (по diff).
|
|
135
|
+
- Если есть несколько вариантов, предлагай один default и короткий альтернативный.
|
|
136
|
+
- Не предлагай новые библиотеки без явного запроса.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Scope Boundaries
|
|
141
|
+
|
|
142
|
+
This skill covers **code style and architecture patterns** — naming, organization, TypeScript usage, pattern compliance per `code-style-patterns.mdc`.
|
|
143
|
+
|
|
144
|
+
| Concern | This skill | Use instead |
|
|
145
|
+
|---------|-----------|-------------|
|
|
146
|
+
| Naming conventions, file organization, import order | ✅ YES | — |
|
|
147
|
+
| TypeScript patterns, component/hook structure | ✅ YES | — |
|
|
148
|
+
| Architecture pattern compliance | ✅ YES | — |
|
|
149
|
+
| Logic correctness, type safety deep dives | ❌ NO | `code-ai-review` or `code-b091-review` |
|
|
150
|
+
| MobX store internals | ❌ NO | `code-mobx-store-review` |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Job Context Awareness
|
|
155
|
+
|
|
156
|
+
When dispatched by `job-orchestrator` as part of a job pipeline, the prompt MAY include:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
JOB_NAME: <job-name>
|
|
160
|
+
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
If provided and the file exists, read the context document before starting the review. Use it to:
|
|
164
|
+
- Understand which libraries and patterns were intentionally chosen for the implementation
|
|
165
|
+
- Validate code style against documented project conventions from the context
|
|
166
|
+
- Provide more accurate findings by understanding the project's architectural decisions
|
|
167
|
+
|
|
168
|
+
If the file does not exist or is not provided, proceed normally — context is optional and non-blocking.
|