@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,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Security audit — npm/bun audit, dependency vulnerabilities, secrets scan
|
|
3
|
+
allowed-tools: Bash(*)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
- Package manager: !`ls bun.lockb yarn.lock pnpm-lock.yaml package-lock.json 2>/dev/null | head -1 || echo "unknown"`
|
|
9
|
+
- Bun version: !`bun --version 2>/dev/null || echo "n/a"`
|
|
10
|
+
- Dependencies: !`cat package.json 2>/dev/null | python3 -c "import json,sys; d=json.load(sys.stdin); print(len(d.get('dependencies',{})), 'prod,', len(d.get('devDependencies',{})), 'dev')" 2>/dev/null || echo "unknown"`
|
|
11
|
+
|
|
12
|
+
## Your task
|
|
13
|
+
|
|
14
|
+
Run a comprehensive security audit.
|
|
15
|
+
|
|
16
|
+
### Step 1 — Dependency vulnerabilities
|
|
17
|
+
- `bun.lockb` → `bun audit`
|
|
18
|
+
- `package-lock.json` → `npm audit --json`
|
|
19
|
+
- `yarn.lock` → `yarn audit`
|
|
20
|
+
|
|
21
|
+
Group: **critical → high → moderate → low**
|
|
22
|
+
|
|
23
|
+
### Step 2 — Outdated packages
|
|
24
|
+
`bun outdated 2>/dev/null || npm outdated` — flag 2+ major versions behind
|
|
25
|
+
|
|
26
|
+
### Step 3 — Secrets scan
|
|
27
|
+
```bash
|
|
28
|
+
git log --all --full-history -- "*.env" "*.key" "*.pem" 2>/dev/null | head -20
|
|
29
|
+
grep -r "password\s*=\s*['\"][^'\"]\|api_key\s*=\s*['\"][^'\"]\|secret\s*=\s*['\"][^'\"]" \
|
|
30
|
+
--include="*.ts" --include="*.js" -l . 2>/dev/null | grep -v node_modules
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Step 4 — Docker image scan (if Dockerfile present)
|
|
34
|
+
`docker scout cves $(docker build -q .) 2>/dev/null || echo "Docker Scout not available"`
|
|
35
|
+
|
|
36
|
+
### Report
|
|
37
|
+
- Total by severity
|
|
38
|
+
- Top 3 critical/high with CVE
|
|
39
|
+
- Immediate actions
|
|
40
|
+
- Packages safe to ignore (dev-only)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-audit
|
|
3
|
+
description: "Security audit: runs npm/bun/yarn audit for dependency vulnerabilities, scans for accidentally committed secrets, checks Docker images if present. Groups findings by severity (critical → high → moderate → low). Produces remediation report."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Security audit"
|
|
6
|
+
- "Check vulnerabilities"
|
|
7
|
+
- "Audit dependencies"
|
|
8
|
+
- "Security scan"
|
|
9
|
+
- "Check for CVEs"
|
|
10
|
+
- "npm audit"
|
|
11
|
+
- "Dependency vulnerabilities"
|
|
12
|
+
metadata:
|
|
13
|
+
author: "MrCipherSmith"
|
|
14
|
+
version: "1.0.0"
|
|
15
|
+
category: "quality"
|
|
16
|
+
license: "MIT"
|
|
17
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Security Audit
|
|
21
|
+
|
|
22
|
+
## Purpose
|
|
23
|
+
|
|
24
|
+
Comprehensive security audit covering dependency vulnerabilities, secrets in code/git history, and container image scanning. Produces a prioritized remediation report.
|
|
25
|
+
|
|
26
|
+
**Input:** None (scans current project)
|
|
27
|
+
**Output:** Severity-grouped vulnerability report with remediation steps
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
- Before a release
|
|
32
|
+
- After adding new dependencies
|
|
33
|
+
- Periodic security review
|
|
34
|
+
|
|
35
|
+
## Steps
|
|
36
|
+
|
|
37
|
+
### Step 1 — Dependency vulnerabilities
|
|
38
|
+
Auto-detect: `bun.lockb` → `bun audit` | `package-lock.json` → `npm audit --json` | `yarn.lock` → `yarn audit`
|
|
39
|
+
|
|
40
|
+
Group by severity: **critical → high → moderate → low**
|
|
41
|
+
|
|
42
|
+
### Step 2 — Outdated packages
|
|
43
|
+
Run `bun outdated` or `npm outdated`. Flag packages more than 2 major versions behind.
|
|
44
|
+
|
|
45
|
+
### Step 3 — Secrets scan
|
|
46
|
+
- Check git history for `.env`, `.key`, `.pem` files
|
|
47
|
+
- Grep source for hardcoded passwords/API keys/secrets (excluding node_modules)
|
|
48
|
+
|
|
49
|
+
### Step 4 — Docker image scan
|
|
50
|
+
If Dockerfile present and Docker available: `docker scout cves`
|
|
51
|
+
|
|
52
|
+
### Report
|
|
53
|
+
- Total by severity
|
|
54
|
+
- Top 3 critical/high with CVE
|
|
55
|
+
- Recommended immediate actions
|
|
56
|
+
- Packages safe to ignore (dev-only, not reachable in prod)
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
|
|
60
|
+
- Distinguish prod vs dev-only vulnerabilities
|
|
61
|
+
- Never suggest `npm audit fix --force` without explaining what it changes
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-audit
|
|
3
|
+
description: "Security audit: runs npm/bun/yarn audit for dependency vulnerabilities, scans for accidentally committed secrets, checks Docker images if present. Groups findings by severity (critical → high → moderate → low). Produces remediation report."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Security audit"
|
|
6
|
+
- "Check vulnerabilities"
|
|
7
|
+
- "Audit dependencies"
|
|
8
|
+
- "Security scan"
|
|
9
|
+
- "Check for CVEs"
|
|
10
|
+
- "npm audit"
|
|
11
|
+
- "Dependency vulnerabilities"
|
|
12
|
+
metadata:
|
|
13
|
+
author: "MrCipherSmith"
|
|
14
|
+
version: "1.0.0"
|
|
15
|
+
category: "quality"
|
|
16
|
+
license: "MIT"
|
|
17
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Security Audit
|
|
21
|
+
|
|
22
|
+
## Purpose
|
|
23
|
+
|
|
24
|
+
Comprehensive security audit covering dependency vulnerabilities, secrets in code/git history, and container image scanning. Produces a prioritized remediation report.
|
|
25
|
+
|
|
26
|
+
**Input:** None (scans current project)
|
|
27
|
+
**Output:** Severity-grouped vulnerability report with remediation steps
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
- Before a release
|
|
32
|
+
- After adding new dependencies
|
|
33
|
+
- Periodic security review
|
|
34
|
+
|
|
35
|
+
## Steps
|
|
36
|
+
|
|
37
|
+
### Step 1 — Dependency vulnerabilities
|
|
38
|
+
Auto-detect: `bun.lockb` → `bun audit` | `package-lock.json` → `npm audit --json` | `yarn.lock` → `yarn audit`
|
|
39
|
+
|
|
40
|
+
Group by severity: **critical → high → moderate → low**
|
|
41
|
+
|
|
42
|
+
### Step 2 — Outdated packages
|
|
43
|
+
Run `bun outdated` or `npm outdated`. Flag packages more than 2 major versions behind.
|
|
44
|
+
|
|
45
|
+
### Step 3 — Secrets scan
|
|
46
|
+
- Check git history for `.env`, `.key`, `.pem` files
|
|
47
|
+
- Grep source for hardcoded passwords/API keys/secrets (excluding node_modules)
|
|
48
|
+
|
|
49
|
+
### Step 4 — Docker image scan
|
|
50
|
+
If Dockerfile present and Docker available: `docker scout cves`
|
|
51
|
+
|
|
52
|
+
### Report
|
|
53
|
+
- Total by severity
|
|
54
|
+
- Top 3 critical/high with CVE
|
|
55
|
+
- Recommended immediate actions
|
|
56
|
+
- Packages safe to ignore (dev-only, not reachable in prod)
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
|
|
60
|
+
- Distinguish prod vs dev-only vulnerabilities
|
|
61
|
+
- Never suggest `npm audit fix --force` without explaining what it changes
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-audit
|
|
3
|
+
description: "Use when checking for dependency vulnerabilities, accidentally committed secrets, or security issues in Docker images."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Security audit"
|
|
6
|
+
- "Check vulnerabilities"
|
|
7
|
+
- "Audit dependencies"
|
|
8
|
+
- "Security scan"
|
|
9
|
+
- "Check for CVEs"
|
|
10
|
+
- "npm audit"
|
|
11
|
+
- "Dependency vulnerabilities"
|
|
12
|
+
metadata:
|
|
13
|
+
author: "MrCipherSmith"
|
|
14
|
+
version: "1.0.0"
|
|
15
|
+
category: "quality"
|
|
16
|
+
license: "MIT"
|
|
17
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Security Audit
|
|
21
|
+
|
|
22
|
+
## Purpose
|
|
23
|
+
|
|
24
|
+
Comprehensive security audit covering dependency vulnerabilities, secrets in code/git history, and container image scanning. Produces a prioritized remediation report.
|
|
25
|
+
|
|
26
|
+
**Input:** None (scans current project)
|
|
27
|
+
**Output:** Severity-grouped vulnerability report with remediation steps
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
- Before a release
|
|
32
|
+
- After adding new dependencies
|
|
33
|
+
- Periodic security review
|
|
34
|
+
|
|
35
|
+
## Steps
|
|
36
|
+
|
|
37
|
+
### Step 1 — Dependency vulnerabilities
|
|
38
|
+
Auto-detect: `bun.lockb` → `bun audit` | `package-lock.json` → `npm audit --json` | `yarn.lock` → `yarn audit`
|
|
39
|
+
|
|
40
|
+
Group by severity: **critical → high → moderate → low**
|
|
41
|
+
|
|
42
|
+
### Step 2 — Outdated packages
|
|
43
|
+
Run `bun outdated` or `npm outdated`. Flag packages more than 2 major versions behind.
|
|
44
|
+
|
|
45
|
+
### Step 3 — Secrets scan
|
|
46
|
+
- Check git history for `.env`, `.key`, `.pem` files
|
|
47
|
+
- Grep source for hardcoded passwords/API keys/secrets (excluding node_modules)
|
|
48
|
+
|
|
49
|
+
### Step 4 — Docker image scan
|
|
50
|
+
If Dockerfile present and Docker available: `docker scout cves`
|
|
51
|
+
|
|
52
|
+
### Report
|
|
53
|
+
- Total by severity
|
|
54
|
+
- Top 3 critical/high with CVE
|
|
55
|
+
- Recommended immediate actions
|
|
56
|
+
- Packages safe to ignore (dev-only, not reachable in prod)
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
|
|
60
|
+
- Distinguish prod vs dev-only vulnerabilities
|
|
61
|
+
- Never suggest `npm audit fix --force` without explaining what it changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auto-generate tests for a specified file or module
|
|
3
|
+
allowed-tools: Bash(*), Read(*), Write(*), Glob(*)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
- Test framework: !`cat package.json 2>/dev/null | python3 -c "import json,sys; d=json.load(sys.stdin); deps={**d.get('dependencies',{}),**d.get('devDependencies',{})}; print(next((k for k in ['bun:test','vitest','jest'] if k in str(deps)), 'unknown'))" 2>/dev/null || echo "unknown"`
|
|
9
|
+
- Existing tests: !`find . -name "*.test.ts" -not -path "*/node_modules/*" 2>/dev/null | head -5 || echo "none"`
|
|
10
|
+
- Sample test style: !`find . -name "*.test.ts" -not -path "*/node_modules/*" 2>/dev/null | head -1 | xargs head -30 2>/dev/null || echo "none"`
|
|
11
|
+
|
|
12
|
+
## Your task
|
|
13
|
+
|
|
14
|
+
Generate tests for: $ARGUMENTS
|
|
15
|
+
|
|
16
|
+
1. **Read** the target file completely
|
|
17
|
+
2. **Check** for existing tests (`<name>.test.ts` or `__tests__/<name>.ts`)
|
|
18
|
+
3. **Plan** test cases:
|
|
19
|
+
- Happy path for each export
|
|
20
|
+
- Edge cases: empty, null, boundary values
|
|
21
|
+
- Error cases: invalid input, exceptions, DB errors
|
|
22
|
+
- API routes: each method + auth + 200/400/401/404/500
|
|
23
|
+
4. **Write** tests matching existing style:
|
|
24
|
+
- bun:test → `import { describe, test, expect, mock } from "bun:test"`
|
|
25
|
+
- jest/vitest → respective imports
|
|
26
|
+
- Mock external dependencies at correct boundary
|
|
27
|
+
5. **Write** test file to `<name>.test.ts` (same dir) or `__tests__/` if that's the convention
|
|
28
|
+
6. **Run** and fix: `bun test <file> 2>/dev/null || npx jest <file> 2>/dev/null`
|
|
29
|
+
|
|
30
|
+
Report: tests generated, estimated coverage, cases needing manual work.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-gen
|
|
3
|
+
description: "Auto-generate tests for a file or module. Discovers project testing patterns (Jest/Vitest/Pytest), analyzes code structure, creates unit and integration tests matching existing conventions. Verifies all tests pass."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/test-gen"
|
|
6
|
+
- "Generate tests"
|
|
7
|
+
- "Write tests for"
|
|
8
|
+
- "Add tests"
|
|
9
|
+
- "Create test file"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "testing"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Test Generator
|
|
19
|
+
|
|
20
|
+
Auto-generate tests for specified files or modules.
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
- `/test-gen <file>` — generate tests for specific file
|
|
25
|
+
- `/test-gen <directory>` — tests for all files in directory
|
|
26
|
+
- `/test-gen --integration` — focus on integration tests
|
|
27
|
+
- `/test-gen --coverage` — run with coverage report after
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
### Step 1: Understand the Target
|
|
32
|
+
1. Read the target file(s)
|
|
33
|
+
2. Identify: exports, functions, classes, API endpoints, React components
|
|
34
|
+
3. Map dependencies and side effects
|
|
35
|
+
|
|
36
|
+
### Step 2: Discover Testing Patterns
|
|
37
|
+
1. Find test framework (Jest, Vitest, Pytest) from configs
|
|
38
|
+
2. Find test file location convention from existing tests
|
|
39
|
+
3. Read 1-2 neighboring test files to match: import style, describe/it structure, mock patterns, assertion style
|
|
40
|
+
|
|
41
|
+
### Step 3: Plan Test Cases
|
|
42
|
+
|
|
43
|
+
**Functions:** happy path, edge cases (empty/null/zero/negative), error cases, boundary values
|
|
44
|
+
|
|
45
|
+
**Components:** renders, props, interactions, conditional rendering, states
|
|
46
|
+
|
|
47
|
+
**Endpoints:** success (200), validation (400), not found (404), auth (401/403)
|
|
48
|
+
|
|
49
|
+
**Classes:** constructor, methods, state transitions, errors
|
|
50
|
+
|
|
51
|
+
### Step 4: Generate
|
|
52
|
+
1. Create test file at correct path (matching convention)
|
|
53
|
+
2. Write imports matching project style
|
|
54
|
+
3. Generate grouped test cases with appropriate mocks
|
|
55
|
+
4. One assertion per test where practical
|
|
56
|
+
|
|
57
|
+
### Step 5: Verify
|
|
58
|
+
```bash
|
|
59
|
+
npx jest <test-file> --no-coverage
|
|
60
|
+
```
|
|
61
|
+
Fix failing tests (max 3 iterations) — fix the test, not the source.
|
|
62
|
+
|
|
63
|
+
### Step 6: Report
|
|
64
|
+
```
|
|
65
|
+
✅ Generated: src/utils/__tests__/helper.test.ts
|
|
66
|
+
- 12 test cases, all passing ✓
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
- ALWAYS match existing test patterns in the project
|
|
72
|
+
- NEVER modify source code — only test files
|
|
73
|
+
- Mock external dependencies, not internal modules
|
|
74
|
+
- Meaningful test descriptions
|
|
75
|
+
- If no test framework detected, suggest installing one
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-gen
|
|
3
|
+
description: "Auto-generate tests for a file or module. Discovers project testing patterns (Jest/Vitest/Pytest), analyzes code structure, creates unit and integration tests matching existing conventions. Verifies all tests pass."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/test-gen"
|
|
6
|
+
- "Generate tests"
|
|
7
|
+
- "Write tests for"
|
|
8
|
+
- "Add tests"
|
|
9
|
+
- "Create test file"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "testing"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Test Generator
|
|
19
|
+
|
|
20
|
+
Auto-generate tests for specified files or modules.
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
- `/test-gen <file>` — generate tests for specific file
|
|
25
|
+
- `/test-gen <directory>` — tests for all files in directory
|
|
26
|
+
- `/test-gen --integration` — focus on integration tests
|
|
27
|
+
- `/test-gen --coverage` — run with coverage report after
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
### Step 1: Understand the Target
|
|
32
|
+
1. Read the target file(s)
|
|
33
|
+
2. Identify: exports, functions, classes, API endpoints, React components
|
|
34
|
+
3. Map dependencies and side effects
|
|
35
|
+
|
|
36
|
+
### Step 2: Discover Testing Patterns
|
|
37
|
+
1. Find test framework (Jest, Vitest, Pytest) from configs
|
|
38
|
+
2. Find test file location convention from existing tests
|
|
39
|
+
3. Read 1-2 neighboring test files to match: import style, describe/it structure, mock patterns, assertion style
|
|
40
|
+
|
|
41
|
+
### Step 3: Plan Test Cases
|
|
42
|
+
|
|
43
|
+
**Functions:** happy path, edge cases (empty/null/zero/negative), error cases, boundary values
|
|
44
|
+
|
|
45
|
+
**Components:** renders, props, interactions, conditional rendering, states
|
|
46
|
+
|
|
47
|
+
**Endpoints:** success (200), validation (400), not found (404), auth (401/403)
|
|
48
|
+
|
|
49
|
+
**Classes:** constructor, methods, state transitions, errors
|
|
50
|
+
|
|
51
|
+
### Step 4: Generate
|
|
52
|
+
1. Create test file at correct path (matching convention)
|
|
53
|
+
2. Write imports matching project style
|
|
54
|
+
3. Generate grouped test cases with appropriate mocks
|
|
55
|
+
4. One assertion per test where practical
|
|
56
|
+
|
|
57
|
+
### Step 5: Verify
|
|
58
|
+
```bash
|
|
59
|
+
npx jest <test-file> --no-coverage
|
|
60
|
+
```
|
|
61
|
+
Fix failing tests (max 3 iterations) — fix the test, not the source.
|
|
62
|
+
|
|
63
|
+
### Step 6: Report
|
|
64
|
+
```
|
|
65
|
+
✅ Generated: src/utils/__tests__/helper.test.ts
|
|
66
|
+
- 12 test cases, all passing ✓
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
- ALWAYS match existing test patterns in the project
|
|
72
|
+
- NEVER modify source code — only test files
|
|
73
|
+
- Mock external dependencies, not internal modules
|
|
74
|
+
- Meaningful test descriptions
|
|
75
|
+
- If no test framework detected, suggest installing one
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-gen
|
|
3
|
+
description: "Use when unit or integration tests need to be written for a specific file or module."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/test-gen"
|
|
6
|
+
- "Generate tests"
|
|
7
|
+
- "Write tests for"
|
|
8
|
+
- "Add tests"
|
|
9
|
+
- "Create test file"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "testing"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Test Generator
|
|
19
|
+
|
|
20
|
+
Auto-generate tests for specified files or modules.
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
- `/test-gen <file>` — generate tests for specific file
|
|
25
|
+
- `/test-gen <directory>` — tests for all files in directory
|
|
26
|
+
- `/test-gen --integration` — focus on integration tests
|
|
27
|
+
- `/test-gen --coverage` — run with coverage report after
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
### Step 1: Understand the Target
|
|
32
|
+
1. Read the target file(s)
|
|
33
|
+
2. Identify: exports, functions, classes, API endpoints, React components
|
|
34
|
+
3. Map dependencies and side effects
|
|
35
|
+
|
|
36
|
+
### Step 2: Discover Testing Patterns
|
|
37
|
+
1. Find test framework (Jest, Vitest, Pytest) from configs
|
|
38
|
+
2. Find test file location convention from existing tests
|
|
39
|
+
3. Read 1-2 neighboring test files to match: import style, describe/it structure, mock patterns, assertion style
|
|
40
|
+
|
|
41
|
+
### Step 3: Plan Test Cases
|
|
42
|
+
|
|
43
|
+
**Functions:** happy path, edge cases (empty/null/zero/negative), error cases, boundary values
|
|
44
|
+
|
|
45
|
+
**Components:** renders, props, interactions, conditional rendering, states
|
|
46
|
+
|
|
47
|
+
**Endpoints:** success (200), validation (400), not found (404), auth (401/403)
|
|
48
|
+
|
|
49
|
+
**Classes:** constructor, methods, state transitions, errors
|
|
50
|
+
|
|
51
|
+
### Step 4: Generate
|
|
52
|
+
1. Create test file at correct path (matching convention)
|
|
53
|
+
2. Write imports matching project style
|
|
54
|
+
3. Generate grouped test cases with appropriate mocks
|
|
55
|
+
4. One assertion per test where practical
|
|
56
|
+
|
|
57
|
+
### Step 5: Verify
|
|
58
|
+
```bash
|
|
59
|
+
npx jest <test-file> --no-coverage
|
|
60
|
+
```
|
|
61
|
+
Fix failing tests (max 3 iterations) — fix the test, not the source.
|
|
62
|
+
|
|
63
|
+
### Step 6: Report
|
|
64
|
+
```
|
|
65
|
+
✅ Generated: src/utils/__tests__/helper.test.ts
|
|
66
|
+
- 12 test cases, all passing ✓
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
- ALWAYS match existing test patterns in the project
|
|
72
|
+
- NEVER modify source code — only test files
|
|
73
|
+
- Mock external dependencies, not internal modules
|
|
74
|
+
- Meaningful test descriptions
|
|
75
|
+
- If no test framework detected, suggest installing one
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tests-creator
|
|
3
|
+
description: "Converts acceptance criteria into failing test stubs (RED phase of TDD) before any implementation. Autonomous sub-agent — runs between issue-analyzer and task-implementer. Use when: generating test specs from acceptance criteria, enforcing TDD in the implementation pipeline."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Create tests"
|
|
6
|
+
- "Write tests first"
|
|
7
|
+
- "Generate test specs"
|
|
8
|
+
- "Tests before implementation"
|
|
9
|
+
- "TDD test stubs"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "testing"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Tests Creator
|
|
19
|
+
|
|
20
|
+
## Purpose
|
|
21
|
+
|
|
22
|
+
Converts acceptance criteria into failing test stubs that task-implementer will make pass.
|
|
23
|
+
|
|
24
|
+
**Input:** Task with `acceptance_criteria` + codebase path
|
|
25
|
+
**Output:** Failing test files (RED phase) + `TEST_CASE_SPECS` report
|
|
26
|
+
|
|
27
|
+
## Execution Steps
|
|
28
|
+
|
|
29
|
+
1. **Detect framework** — check `package.json`, read existing test files
|
|
30
|
+
2. **Map criteria** — each criterion → happy path + edge cases + error paths
|
|
31
|
+
3. **Generate stubs** — write test files with forward-declared assertions (will fail)
|
|
32
|
+
4. **Commit** — `git commit -m "test: add failing stubs for <task>"`
|
|
33
|
+
5. **Verify RED** — run tests, confirm all fail
|
|
34
|
+
6. **Report** — emit `TEST_CASE_SPECS` block
|
|
35
|
+
|
|
36
|
+
## Output Template
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
TEST_CASE_SPECS:
|
|
40
|
+
framework: <vitest|jest|pytest|bun:test>
|
|
41
|
+
test_files:
|
|
42
|
+
- path: <test file path>
|
|
43
|
+
target_module: <source file to implement>
|
|
44
|
+
test_count: <N>
|
|
45
|
+
tests:
|
|
46
|
+
- id: test-<N>
|
|
47
|
+
description: "<it description>"
|
|
48
|
+
criterion: "<acceptance criterion>"
|
|
49
|
+
type: happy_path | edge_case | error_path
|
|
50
|
+
status: written
|
|
51
|
+
run_command: "<test command>"
|
|
52
|
+
expected_result: "all failing (RED phase)"
|
|
53
|
+
|
|
54
|
+
STATUS: DONE
|
|
55
|
+
tests_written: <N>
|
|
56
|
+
all_criteria_covered: true | false
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Iron Laws
|
|
60
|
+
- NEVER write implementation code — only test files
|
|
61
|
+
- Tests MUST FAIL before reporting DONE
|
|
62
|
+
- Every acceptance criterion needs ≥1 test
|
|
63
|
+
|
|
64
|
+
See full workflow: `.metaproject/skills/gdskills/quality/tests-creator/SKILL.md`
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tests-creator
|
|
3
|
+
description: "Converts acceptance criteria into failing test stubs (RED phase of TDD) before any implementation. Autonomous sub-agent — runs between issue-analyzer and task-implementer. Use when: generating test specs from acceptance criteria, enforcing TDD in the implementation pipeline."
|
|
4
|
+
triggers:
|
|
5
|
+
- "Create tests"
|
|
6
|
+
- "Write tests first"
|
|
7
|
+
- "Generate test specs"
|
|
8
|
+
- "Tests before implementation"
|
|
9
|
+
- "TDD test stubs"
|
|
10
|
+
- "Convert criteria to tests"
|
|
11
|
+
metadata:
|
|
12
|
+
author: "MrCipherSmith"
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
category: "testing"
|
|
15
|
+
license: "MIT"
|
|
16
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Tests Creator
|
|
20
|
+
|
|
21
|
+
## Purpose
|
|
22
|
+
|
|
23
|
+
Converts acceptance criteria into concrete, failing test stubs **before any implementation code is written**. Enforces the RED phase of TDD.
|
|
24
|
+
|
|
25
|
+
**Input:** Task object with `acceptance_criteria` + codebase path
|
|
26
|
+
**Output:** Committed test files (RED) + `test_case_specs` block for `task-implementer`
|
|
27
|
+
|
|
28
|
+
## When to Use
|
|
29
|
+
|
|
30
|
+
- Between `issue-analyzer` and `task-implementer` in the TDD pipeline
|
|
31
|
+
- Before writing any implementation code for a task
|
|
32
|
+
|
|
33
|
+
## Quick Reference
|
|
34
|
+
|
|
35
|
+
### Phase Summary
|
|
36
|
+
1. **DETECT** — find test framework, read existing tests for conventions
|
|
37
|
+
2. **ANALYZE** — map each acceptance criterion to happy path + edge + error scenarios
|
|
38
|
+
3. **GENERATE** — write failing test stubs using forward-declared API
|
|
39
|
+
4. **REPORT** — emit `TEST_CASE_SPECS` block
|
|
40
|
+
|
|
41
|
+
### Key Rule
|
|
42
|
+
Tests MUST FAIL before implementation. Run `<test command>` to verify RED state.
|
|
43
|
+
|
|
44
|
+
### Output Format
|
|
45
|
+
```
|
|
46
|
+
TEST_CASE_SPECS:
|
|
47
|
+
framework: vitest
|
|
48
|
+
test_files:
|
|
49
|
+
- path: src/__tests__/UserValidator.test.ts
|
|
50
|
+
target_module: src/services/UserValidator.ts
|
|
51
|
+
test_count: 4
|
|
52
|
+
tests:
|
|
53
|
+
- id: test-1
|
|
54
|
+
description: "should accept valid email address"
|
|
55
|
+
criterion: "User can register with valid email"
|
|
56
|
+
type: happy_path
|
|
57
|
+
status: written
|
|
58
|
+
run_command: "bun test src/__tests__/UserValidator.test.ts"
|
|
59
|
+
expected_result: "all failing (RED phase)"
|
|
60
|
+
|
|
61
|
+
STATUS: DONE
|
|
62
|
+
tests_written: 4
|
|
63
|
+
all_criteria_covered: true
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Status Protocol
|
|
67
|
+
```
|
|
68
|
+
STATUS: DONE — all criteria covered, tests committed, RED verified
|
|
69
|
+
STATUS: DONE_WITH_CONCERNS — some criteria ambiguous, tests written with assumptions
|
|
70
|
+
STATUS: BLOCKED — cannot determine test framework or API shape
|
|
71
|
+
STATUS: NEEDS_CONTEXT — acceptance criteria missing, need task description
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
See full workflow in `.metaproject/skills/gdskills/quality/tests-creator/SKILL.md`
|