@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,362 @@
|
|
|
1
|
+
# Feature Analyzer — Orchestrator Prompt
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
НАЗНАЧЕНИЕ
|
|
5
|
+
==========
|
|
6
|
+
Этот промпт используется агентом-оркестратором для запуска feature-analyzer
|
|
7
|
+
как субагента БЕЗ интерактивности. Оркестратор:
|
|
8
|
+
1. Читает заполненный analysis-request.md (input-файл)
|
|
9
|
+
2. Парсит параметры из таблиц
|
|
10
|
+
3. Формирует единый промпт для субагента
|
|
11
|
+
4. Запускает субагент через Task tool
|
|
12
|
+
5. Получает результат — путь к сгенерированной документации
|
|
13
|
+
|
|
14
|
+
ПОТОК ДАННЫХ
|
|
15
|
+
============
|
|
16
|
+
[Пользователь] → заполняет analysis-request.md
|
|
17
|
+
↓
|
|
18
|
+
[Оркестратор] → читает MD → парсит → формирует промпт → Task(subagent)
|
|
19
|
+
↓
|
|
20
|
+
[Субагент] → выполняет SKILL.md feature-analyzer автономно
|
|
21
|
+
↓
|
|
22
|
+
[Результат] → docs/analysis/<feature>-<date>/
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
## Инструкция для оркестратора
|
|
26
|
+
|
|
27
|
+
### Шаг 1: Прочитать input-файл
|
|
28
|
+
|
|
29
|
+
Прочитай файл analysis-request с параметрами анализа. Файл может находиться:
|
|
30
|
+
- По пути указанному пользователем
|
|
31
|
+
- В `.metaproject/skills/gdskills/orchestration/feature-analyzer/analysis-request.md` (если пользователь заполнил шаблон)
|
|
32
|
+
|
|
33
|
+
Извлеки из таблиц следующие значения (парсинг Markdown-таблиц):
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
SOURCE:
|
|
37
|
+
local_path → из таблицы "Source Repository", строка "Local Path"
|
|
38
|
+
github_repo → из таблицы "Source Repository", строка "GitHub Repo"
|
|
39
|
+
branch → из таблицы "Source Repository", строка "Branch"
|
|
40
|
+
|
|
41
|
+
TARGET:
|
|
42
|
+
local_path → из таблицы "Target Repository", строка "Local Path"
|
|
43
|
+
github_repo → из таблицы "Target Repository", строка "GitHub Repo"
|
|
44
|
+
branch → из таблицы "Target Repository", строка "Branch"
|
|
45
|
+
|
|
46
|
+
MODE:
|
|
47
|
+
mode → из секции "Analysis Mode", значение после "Mode:"
|
|
48
|
+
base_branch → из секции "Analysis Mode", значение после "Base Branch"
|
|
49
|
+
|
|
50
|
+
FOCUS:
|
|
51
|
+
description → из таблицы "Focus", строка "Description"
|
|
52
|
+
keywords → из таблицы "Focus", строка "Keywords" (split by comma)
|
|
53
|
+
directories → из таблицы "Focus", строка "Directories" (split by comma)
|
|
54
|
+
scope → из таблицы "Focus", строка "Scope" (split by comma)
|
|
55
|
+
|
|
56
|
+
TICKET:
|
|
57
|
+
url → из таблицы "Ticket", строка "URL"
|
|
58
|
+
|
|
59
|
+
AUTOMATION:
|
|
60
|
+
cache_strategy → из таблицы "Automation Settings"
|
|
61
|
+
large_changeset_action → из таблицы "Automation Settings"
|
|
62
|
+
large_changeset_max_files → из таблицы "Automation Settings"
|
|
63
|
+
timeout_strategy → из таблицы "Automation Settings"
|
|
64
|
+
intermediate_review → из таблицы "Automation Settings"
|
|
65
|
+
github_mcp_fallback → из таблицы "Automation Settings"
|
|
66
|
+
|
|
67
|
+
OUTPUT:
|
|
68
|
+
base_dir → из таблицы "Output Configuration"
|
|
69
|
+
folder_name → из таблицы "Output Configuration"
|
|
70
|
+
languages → из таблицы "Output Configuration" (split by comma)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Шаг 2: Валидация
|
|
74
|
+
|
|
75
|
+
Проверь обязательные поля:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
ASSERT source.local_path IS NOT EMPTY → иначе ABORT("Source path missing")
|
|
79
|
+
ASSERT source.branch IS NOT EMPTY → иначе ABORT("Source branch missing")
|
|
80
|
+
ASSERT target.local_path IS NOT EMPTY → иначе ABORT("Target path missing")
|
|
81
|
+
ASSERT mode IN ["A", "B"] → иначе ABORT("Invalid mode")
|
|
82
|
+
IF mode == "A":
|
|
83
|
+
ASSERT base_branch IS NOT EMPTY → иначе ABORT("Mode A requires base_branch")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Шаг 3: Сформировать промпт для субагента
|
|
87
|
+
|
|
88
|
+
Подставь извлечённые значения в шаблон ниже и запусти через Task tool.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Шаблон промпта для субагента
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
You are running the feature-analyzer skill in AUTONOMOUS MODE.
|
|
96
|
+
All interactive checkpoints are pre-resolved. DO NOT ask the user any questions.
|
|
97
|
+
DO NOT stop for confirmation. Execute the full workflow end-to-end.
|
|
98
|
+
|
|
99
|
+
Load the skill: feature-analyzer (from .metaproject/skills/gdskills/orchestration/feature-analyzer/SKILL.md)
|
|
100
|
+
|
|
101
|
+
═══════════════════════════════════════════════
|
|
102
|
+
PRE-RESOLVED CONTEXT (Guard Clause SATISFIED)
|
|
103
|
+
═══════════════════════════════════════════════
|
|
104
|
+
|
|
105
|
+
SOURCE REPOSITORY:
|
|
106
|
+
Local path: {{source.local_path}}
|
|
107
|
+
GitHub repo: {{source.github_repo}}
|
|
108
|
+
Branch: {{source.branch}}
|
|
109
|
+
|
|
110
|
+
TARGET REPOSITORY:
|
|
111
|
+
Local path: {{target.local_path}}
|
|
112
|
+
GitHub repo: {{target.github_repo}}
|
|
113
|
+
Branch: {{target.branch}}
|
|
114
|
+
|
|
115
|
+
ANALYSIS MODE: {{mode}}
|
|
116
|
+
{{IF mode == "A"}}
|
|
117
|
+
Base branch: {{base_branch}}
|
|
118
|
+
→ Run Mode A: Changes Analysis (git diff merge-base..HEAD)
|
|
119
|
+
{{ELSE}}
|
|
120
|
+
→ Run Mode B: Current State Analysis (explore entire codebase)
|
|
121
|
+
{{ENDIF}}
|
|
122
|
+
|
|
123
|
+
{{IF focus.description}}
|
|
124
|
+
FOCUS AREA:
|
|
125
|
+
Description: {{focus.description}}
|
|
126
|
+
Keywords: {{focus.keywords}}
|
|
127
|
+
Directories: {{focus.directories}}
|
|
128
|
+
Scope: {{focus.scope}}
|
|
129
|
+
→ Apply focus-based priority boost per SKILL.md rules
|
|
130
|
+
{{ENDIF}}
|
|
131
|
+
|
|
132
|
+
{{IF ticket.url}}
|
|
133
|
+
TICKET REFERENCE:
|
|
134
|
+
URL: {{ticket.url}}
|
|
135
|
+
→ Fetch via GitHub MCP and extract business context
|
|
136
|
+
{{ENDIF}}
|
|
137
|
+
|
|
138
|
+
═══════════════════════════════════════════════
|
|
139
|
+
AUTOMATION OVERRIDES (All interactions pre-resolved)
|
|
140
|
+
═══════════════════════════════════════════════
|
|
141
|
+
|
|
142
|
+
1. GUARD CLAUSE CONFIRMATION:
|
|
143
|
+
→ SKIP. Context is pre-validated. Proceed immediately.
|
|
144
|
+
|
|
145
|
+
2. ANALYSIS MODE SELECTION:
|
|
146
|
+
→ RESOLVED as Mode {{mode}}. Do not ask.
|
|
147
|
+
|
|
148
|
+
3. BASE BRANCH (Mode A):
|
|
149
|
+
→ RESOLVED as "{{base_branch}}". Do not ask.
|
|
150
|
+
|
|
151
|
+
4. EXISTING CACHE/REPORTS:
|
|
152
|
+
→ Strategy: {{automation.cache_strategy}}
|
|
153
|
+
{{IF automation.cache_strategy == "fresh"}}
|
|
154
|
+
→ Ignore all existing analyses. Create new.
|
|
155
|
+
{{ELIF automation.cache_strategy == "reuse_if_valid"}}
|
|
156
|
+
→ Check cache. If <7 days old AND same SHA → reuse. Else create new.
|
|
157
|
+
{{ELIF automation.cache_strategy == "refresh"}}
|
|
158
|
+
→ Load previous analysis, analyze only new commits, merge results.
|
|
159
|
+
{{ELIF automation.cache_strategy == "compare"}}
|
|
160
|
+
→ Create new analysis AND generate diff with existing.
|
|
161
|
+
{{ENDIF}}
|
|
162
|
+
|
|
163
|
+
5. LARGE CHANGESET (50+ files):
|
|
164
|
+
→ Strategy: {{automation.large_changeset_action}}
|
|
165
|
+
→ Max files: {{automation.large_changeset_max_files}}
|
|
166
|
+
{{IF automation.large_changeset_action == "p0_only"}}
|
|
167
|
+
→ Analyze only P0 priority files, max {{automation.large_changeset_max_files}}.
|
|
168
|
+
{{ELIF automation.large_changeset_action == "directory"}}
|
|
169
|
+
→ Filter to directories: {{automation.large_changeset_filter_paths}}
|
|
170
|
+
{{ELIF automation.large_changeset_action == "file_types"}}
|
|
171
|
+
→ Filter to extensions: {{automation.large_changeset_filter_extensions}}
|
|
172
|
+
{{ELIF automation.large_changeset_action == "commits"}}
|
|
173
|
+
→ Analyze first {{automation.large_changeset_max_commits}} commits only.
|
|
174
|
+
{{ELIF automation.large_changeset_action == "abort"}}
|
|
175
|
+
→ Return error: "Changeset too large, aborting per automation config."
|
|
176
|
+
{{ENDIF}}
|
|
177
|
+
|
|
178
|
+
6. TIMEOUT (approaching 30 min):
|
|
179
|
+
→ Strategy: {{automation.timeout_strategy}}
|
|
180
|
+
{{IF automation.timeout_strategy == "partial"}}
|
|
181
|
+
→ Generate report with whatever findings are available at that point.
|
|
182
|
+
{{ELIF automation.timeout_strategy == "extend"}}
|
|
183
|
+
→ Continue for 15 more minutes, then force partial.
|
|
184
|
+
{{ELIF automation.timeout_strategy == "prioritize_p0"}}
|
|
185
|
+
→ Drop all non-P0 files and finish only P0 analysis.
|
|
186
|
+
{{ELIF automation.timeout_strategy == "abort"}}
|
|
187
|
+
→ Return error: "Analysis timed out, aborting per automation config."
|
|
188
|
+
{{ENDIF}}
|
|
189
|
+
|
|
190
|
+
7. INTERMEDIATE REVIEW:
|
|
191
|
+
→ Strategy: {{automation.intermediate_review}}
|
|
192
|
+
{{IF automation.intermediate_review == "skip"}}
|
|
193
|
+
→ Do NOT show intermediate summary. Proceed directly to documentation.
|
|
194
|
+
{{ELIF automation.intermediate_review == "log_only"}}
|
|
195
|
+
→ Log intermediate summary in output but do not wait for confirmation.
|
|
196
|
+
{{ELIF automation.intermediate_review == "include_in_report"}}
|
|
197
|
+
→ Include intermediate findings as a section in the final report.
|
|
198
|
+
{{ENDIF}}
|
|
199
|
+
|
|
200
|
+
8. GITHUB MCP UNAVAILABLE:
|
|
201
|
+
→ Fallback: {{automation.github_mcp_fallback}}
|
|
202
|
+
{{IF automation.github_mcp_fallback == "git_only"}}
|
|
203
|
+
→ Proceed with local git data only. No GitHub API calls.
|
|
204
|
+
{{ELIF automation.github_mcp_fallback == "abort"}}
|
|
205
|
+
→ Return error: "GitHub MCP unavailable, aborting per automation config."
|
|
206
|
+
{{ENDIF}}
|
|
207
|
+
|
|
208
|
+
═══════════════════════════════════════════════
|
|
209
|
+
OUTPUT CONFIGURATION
|
|
210
|
+
═══════════════════════════════════════════════
|
|
211
|
+
|
|
212
|
+
Base directory: {{output.base_dir | default("<DOCS_ROOT>/analysis")}}
|
|
213
|
+
Folder name: {{output.folder_name | default("auto-generated per SKILL.md rules")}}
|
|
214
|
+
Languages: {{output.languages | default("en, ru, ai")}}
|
|
215
|
+
Include metrics: {{output.include_metrics | default("true")}}
|
|
216
|
+
|
|
217
|
+
═══════════════════════════════════════════════
|
|
218
|
+
EXECUTION INSTRUCTIONS
|
|
219
|
+
═══════════════════════════════════════════════
|
|
220
|
+
|
|
221
|
+
1. Load feature-analyzer SKILL.md
|
|
222
|
+
2. Skip directly to Step 1 (context is pre-provided above)
|
|
223
|
+
3. Follow the workflow for Mode {{mode}} from SKILL.md
|
|
224
|
+
4. At every interaction checkpoint (marked above), use the pre-resolved strategy
|
|
225
|
+
5. Generate all output documents per SKILL.md structure
|
|
226
|
+
6. Return the following in your final message:
|
|
227
|
+
- Path to generated analysis directory
|
|
228
|
+
- Summary of key findings (3-5 bullet points)
|
|
229
|
+
- Complexity score and risk level
|
|
230
|
+
- List of generated files
|
|
231
|
+
|
|
232
|
+
DO NOT ask questions. DO NOT stop for user input. Run to completion.
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Пример вызова оркестратором
|
|
238
|
+
|
|
239
|
+
### Input: Заполненный analysis-request.md
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## Source Repository *
|
|
243
|
+
| Field | Value |
|
|
244
|
+
|-------|-------|
|
|
245
|
+
| Local Path * | `/Users/dev/<PROJECT>` |
|
|
246
|
+
| GitHub Repo | `<ORG>/<PROJECT>` |
|
|
247
|
+
| Branch * | `feature/pipeline-variables` |
|
|
248
|
+
|
|
249
|
+
## Target Repository *
|
|
250
|
+
| Field | Value |
|
|
251
|
+
|-------|-------|
|
|
252
|
+
| Local Path * | `/Users/dev/<PROJECT>` |
|
|
253
|
+
| Branch | `main` |
|
|
254
|
+
|
|
255
|
+
## Analysis Mode *
|
|
256
|
+
- **Mode**: `A`
|
|
257
|
+
- **Base Branch**: `main`
|
|
258
|
+
|
|
259
|
+
## Focus
|
|
260
|
+
| Field | Value |
|
|
261
|
+
|-------|-------|
|
|
262
|
+
| Description | `variables in pipelines` |
|
|
263
|
+
| Keywords | `variable, pipeline, param` |
|
|
264
|
+
| Directories | `src/pipelines, src/models` |
|
|
265
|
+
|
|
266
|
+
## Automation Settings *
|
|
267
|
+
| Setting | Value |
|
|
268
|
+
|---------|-------|
|
|
269
|
+
| skip_confirmation | `true` |
|
|
270
|
+
| cache_strategy | `fresh` |
|
|
271
|
+
| large_changeset_action | `p0_only` |
|
|
272
|
+
| large_changeset_max_files | `7` |
|
|
273
|
+
| timeout_strategy | `partial` |
|
|
274
|
+
| intermediate_review | `include_in_report` |
|
|
275
|
+
| github_mcp_fallback | `git_only` |
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Output: Сгенерированный промпт (после подстановки)
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
You are running the feature-analyzer skill in AUTONOMOUS MODE.
|
|
282
|
+
All interactive checkpoints are pre-resolved. DO NOT ask the user any questions.
|
|
283
|
+
...
|
|
284
|
+
|
|
285
|
+
SOURCE REPOSITORY:
|
|
286
|
+
Local path: /Users/dev/<PROJECT>
|
|
287
|
+
GitHub repo: <ORG>/<PROJECT>
|
|
288
|
+
Branch: feature/pipeline-variables
|
|
289
|
+
|
|
290
|
+
TARGET REPOSITORY:
|
|
291
|
+
Local path: /Users/dev/<PROJECT>
|
|
292
|
+
Branch: main
|
|
293
|
+
|
|
294
|
+
ANALYSIS MODE: A
|
|
295
|
+
Base branch: main
|
|
296
|
+
→ Run Mode A: Changes Analysis (git diff merge-base..HEAD)
|
|
297
|
+
|
|
298
|
+
FOCUS AREA:
|
|
299
|
+
Description: variables in pipelines
|
|
300
|
+
Keywords: variable, pipeline, param
|
|
301
|
+
Directories: src/pipelines, src/models
|
|
302
|
+
→ Apply focus-based priority boost per SKILL.md rules
|
|
303
|
+
...
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Вызов через Task tool
|
|
307
|
+
|
|
308
|
+
```javascript
|
|
309
|
+
Task({
|
|
310
|
+
description: "Feature analysis: pipeline-variables",
|
|
311
|
+
subagent_type: "general",
|
|
312
|
+
prompt: "<сгенерированный промпт выше>"
|
|
313
|
+
})
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Карта устранённых интерактивных точек
|
|
319
|
+
|
|
320
|
+
| # | Interaction Point | Где в SKILL.md | Как устраняется |
|
|
321
|
+
|---|-------------------|---------------|-----------------|
|
|
322
|
+
| 1 | Guard Clause Confirmation | L22-54 | `skip_confirmation: true` + pre-provided context |
|
|
323
|
+
| 2 | Mode Selection | L576-589 | `analysis_mode.mode: "A"/"B"` |
|
|
324
|
+
| 3 | Base Branch Query | L650-670 | `analysis_mode.base_branch: "main"` |
|
|
325
|
+
| 4 | Existing Cache Dialog | L489-510 | `cache_strategy: "fresh"/"reuse_if_valid"/...` |
|
|
326
|
+
| 5 | Large Changeset Dialog | L442-457 | `large_changeset_strategy.action: "p0_only"/...` |
|
|
327
|
+
| 6 | Timeout Dialog | L427-431 | `timeout_strategy: "partial"/"extend"/...` |
|
|
328
|
+
| 7 | Intermediate Review | L1009-1046 | `intermediate_review: "skip"/"log_only"/...` |
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Рекомендуемые automation-профили
|
|
333
|
+
|
|
334
|
+
### Profile: Quick (быстрый анализ, минимум взаимодействия)
|
|
335
|
+
```
|
|
336
|
+
cache_strategy: reuse_if_valid
|
|
337
|
+
large_changeset_action: p0_only
|
|
338
|
+
large_changeset_max_files: 5
|
|
339
|
+
timeout_strategy: partial
|
|
340
|
+
intermediate_review: skip
|
|
341
|
+
github_mcp_fallback: git_only
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Profile: Thorough (полный анализ, максимум данных)
|
|
345
|
+
```
|
|
346
|
+
cache_strategy: fresh
|
|
347
|
+
large_changeset_action: p0_only
|
|
348
|
+
large_changeset_max_files: 10
|
|
349
|
+
timeout_strategy: extend
|
|
350
|
+
intermediate_review: include_in_report
|
|
351
|
+
github_mcp_fallback: git_only
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Profile: CI/CD (для автоматических пайплайнов)
|
|
355
|
+
```
|
|
356
|
+
cache_strategy: fresh
|
|
357
|
+
large_changeset_action: p0_only
|
|
358
|
+
large_changeset_max_files: 7
|
|
359
|
+
timeout_strategy: partial
|
|
360
|
+
intermediate_review: skip
|
|
361
|
+
github_mcp_fallback: git_only
|
|
362
|
+
```
|
package/src/gdskills/bundled/skills/orchestration/feature-analyzer/output-contract.schema.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://keryx.local/schemas/feature-analyzer/output-contract.schema.json",
|
|
4
|
+
"title": "Feature Analyzer Output Contract",
|
|
5
|
+
"description": "Structured analysis output. Delivered as a Markdown report following SKILL.md output format.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["mode", "source", "target", "summary", "files_analyzed"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"mode": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": ["A", "B"],
|
|
13
|
+
"description": "Analysis mode: A = branch changes, B = current state"
|
|
14
|
+
},
|
|
15
|
+
"source": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"required": ["path", "branch"],
|
|
18
|
+
"properties": {
|
|
19
|
+
"path": { "type": "string" },
|
|
20
|
+
"branch": { "type": "string" },
|
|
21
|
+
"merge_base": { "type": "string" }
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"target": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"required": ["path"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"path": { "type": "string" },
|
|
29
|
+
"branch": { "type": "string" }
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"focus": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Focus area description as provided by user"
|
|
35
|
+
},
|
|
36
|
+
"summary": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Executive summary of analysis findings",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
},
|
|
41
|
+
"files_analyzed": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"p0": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"description": "Must-change files",
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": ["path", "reason"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"path": { "type": "string" },
|
|
52
|
+
"reason": { "type": "string" }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"p1": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"description": "Likely-change files",
|
|
59
|
+
"items": { "type": "object", "required": ["path", "reason"], "properties": { "path": { "type": "string" }, "reason": { "type": "string" } } }
|
|
60
|
+
},
|
|
61
|
+
"p2": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"description": "May-need-update files (tests, stories, docs)",
|
|
64
|
+
"items": { "type": "object", "required": ["path", "reason"], "properties": { "path": { "type": "string" }, "reason": { "type": "string" } } }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"api_contracts": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"description": "API endpoints or contracts identified",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"name": { "type": "string" },
|
|
75
|
+
"type": { "type": "string" },
|
|
76
|
+
"change": { "type": "string", "enum": ["added", "modified", "removed", "unchanged"] },
|
|
77
|
+
"details": { "type": "string" }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"recommendations": {
|
|
82
|
+
"type": "array",
|
|
83
|
+
"description": "Recommended implementation steps for the target repository",
|
|
84
|
+
"items": { "type": "string" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-dev
|
|
3
|
+
description: "7-phase feature development workflow: requirements → design → implement → test → review → fix → PR. Full cycle from idea or GitHub issue to merge-ready PR. Confirms requirements and design with user before autonomous execution."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/feature-dev"
|
|
6
|
+
- "Develop feature"
|
|
7
|
+
- "Build feature"
|
|
8
|
+
- "Implement feature"
|
|
9
|
+
- "Feature from scratch"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "workflow"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Feature Development (7-Phase)
|
|
19
|
+
|
|
20
|
+
End-to-end feature development workflow from idea to merge-ready PR.
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
- `/feature-dev <description>` — start from a text description
|
|
25
|
+
- `/feature-dev #<issue>` — start from a GitHub issue
|
|
26
|
+
- `/feature-dev --resume` — resume interrupted feature-dev (checks for existing worktree/branch)
|
|
27
|
+
|
|
28
|
+
## 7-Phase Architecture
|
|
29
|
+
|
|
30
|
+
### Phase 1: REQUIREMENTS
|
|
31
|
+
1. Parse input (description or GitHub issue via `gh issue view`)
|
|
32
|
+
2. Clarify ambiguities — ask the user up to 3 questions max
|
|
33
|
+
3. Produce a brief spec:
|
|
34
|
+
- **What**: feature description in 2-3 sentences
|
|
35
|
+
- **Why**: user value / business reason
|
|
36
|
+
- **Scope**: what's in, what's explicitly out
|
|
37
|
+
- **Acceptance criteria**: testable bullet points
|
|
38
|
+
4. **Get user confirmation before proceeding**
|
|
39
|
+
|
|
40
|
+
### Phase 2: DESIGN
|
|
41
|
+
1. Research the codebase:
|
|
42
|
+
- Find related modules via search tools
|
|
43
|
+
- Read neighboring implementations for patterns
|
|
44
|
+
- Check existing tests for testing conventions
|
|
45
|
+
2. Produce implementation plan:
|
|
46
|
+
- Files to create/modify (with brief description of changes)
|
|
47
|
+
- Dependencies or packages needed
|
|
48
|
+
- Data model changes if any
|
|
49
|
+
- Estimated complexity: S / M / L
|
|
50
|
+
3. **Get user confirmation on the plan**
|
|
51
|
+
|
|
52
|
+
### Phase 3: PREPARE
|
|
53
|
+
1. Create a feature branch: `git checkout -b feat/<name>`
|
|
54
|
+
2. If large feature, consider `git worktree add` for isolation
|
|
55
|
+
3. Install any new dependencies
|
|
56
|
+
|
|
57
|
+
### Phase 4: IMPLEMENT
|
|
58
|
+
1. Implement changes file by file, following the plan
|
|
59
|
+
2. Follow existing code patterns discovered in Phase 2
|
|
60
|
+
3. After each logical chunk, run available checks:
|
|
61
|
+
- Lint: `npm run lint` or equivalent
|
|
62
|
+
- Type-check: `npx tsc --noEmit` or equivalent
|
|
63
|
+
- Fix issues immediately before moving on
|
|
64
|
+
|
|
65
|
+
### Phase 5: TEST
|
|
66
|
+
1. Write tests matching the project's testing patterns
|
|
67
|
+
2. Unit tests for new functions/modules
|
|
68
|
+
3. Integration tests for API/data flow changes
|
|
69
|
+
4. Run full test suite
|
|
70
|
+
5. Fix failing tests (max 3 attempts per test)
|
|
71
|
+
|
|
72
|
+
### Phase 6: REVIEW (Self)
|
|
73
|
+
1. Launch `code-review` skill on own changes (if available)
|
|
74
|
+
2. Or run a focused self-review:
|
|
75
|
+
- `git diff main...HEAD` — review the full diff
|
|
76
|
+
- Check for: TODOs left behind, console.logs, hardcoded values
|
|
77
|
+
- Verify all acceptance criteria from Phase 1
|
|
78
|
+
3. Fix any findings (max 2 review-fix cycles)
|
|
79
|
+
|
|
80
|
+
### Phase 7: DELIVER
|
|
81
|
+
1. Final checks: lint + type-check + tests all pass
|
|
82
|
+
2. Commit with conventional message: `feat(<scope>): <description>`
|
|
83
|
+
3. Push branch
|
|
84
|
+
4. Create PR:
|
|
85
|
+
- Link to issue if applicable
|
|
86
|
+
- Include acceptance criteria as checklist
|
|
87
|
+
- Add test plan
|
|
88
|
+
5. Report PR URL to user
|
|
89
|
+
|
|
90
|
+
## Status Updates
|
|
91
|
+
|
|
92
|
+
At each phase transition, report progress:
|
|
93
|
+
```
|
|
94
|
+
✅ Phase 1: Requirements confirmed
|
|
95
|
+
🔄 Phase 2: Designing implementation...
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Rules
|
|
99
|
+
|
|
100
|
+
- ALWAYS get user confirmation after Phase 1 (requirements) and Phase 2 (design)
|
|
101
|
+
- Phases 4-6 are autonomous — no user interaction needed
|
|
102
|
+
- If stuck for >3 attempts on any step, report the blocker and ask user
|
|
103
|
+
- NEVER skip Phase 5 (testing) even if user says "skip tests"
|
|
104
|
+
- NEVER commit broken code (lint/type-check must pass)
|
|
105
|
+
- Keep commits atomic: one commit per logical change, not one giant commit
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-dev
|
|
3
|
+
description: "7-phase feature development workflow: requirements → design → implement → test → review → fix → PR. Full cycle from idea or GitHub issue to merge-ready PR. Confirms requirements and design with user before autonomous execution."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/feature-dev"
|
|
6
|
+
- "Develop feature"
|
|
7
|
+
- "Build feature"
|
|
8
|
+
- "Implement feature"
|
|
9
|
+
- "Feature from scratch"
|
|
10
|
+
metadata:
|
|
11
|
+
author: "MrCipherSmith"
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
category: "workflow"
|
|
14
|
+
license: "MIT"
|
|
15
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Feature Development (7-Phase)
|
|
19
|
+
|
|
20
|
+
End-to-end feature development workflow from idea to merge-ready PR.
|
|
21
|
+
|
|
22
|
+
## Arguments
|
|
23
|
+
|
|
24
|
+
- `/feature-dev <description>` — start from a text description
|
|
25
|
+
- `/feature-dev #<issue>` — start from a GitHub issue
|
|
26
|
+
- `/feature-dev --resume` — resume interrupted feature-dev (checks for existing worktree/branch)
|
|
27
|
+
|
|
28
|
+
## 7-Phase Architecture
|
|
29
|
+
|
|
30
|
+
### Phase 1: REQUIREMENTS
|
|
31
|
+
1. Parse input (description or GitHub issue via `gh issue view`)
|
|
32
|
+
2. Clarify ambiguities — ask the user up to 3 questions max
|
|
33
|
+
3. Produce a brief spec:
|
|
34
|
+
- **What**: feature description in 2-3 sentences
|
|
35
|
+
- **Why**: user value / business reason
|
|
36
|
+
- **Scope**: what's in, what's explicitly out
|
|
37
|
+
- **Acceptance criteria**: testable bullet points
|
|
38
|
+
4. **Get user confirmation before proceeding**
|
|
39
|
+
|
|
40
|
+
### Phase 2: DESIGN
|
|
41
|
+
1. Research the codebase:
|
|
42
|
+
- Find related modules via search tools
|
|
43
|
+
- Read neighboring implementations for patterns
|
|
44
|
+
- Check existing tests for testing conventions
|
|
45
|
+
2. Produce implementation plan:
|
|
46
|
+
- Files to create/modify (with brief description of changes)
|
|
47
|
+
- Dependencies or packages needed
|
|
48
|
+
- Data model changes if any
|
|
49
|
+
- Estimated complexity: S / M / L
|
|
50
|
+
3. **Get user confirmation on the plan**
|
|
51
|
+
|
|
52
|
+
### Phase 3: PREPARE
|
|
53
|
+
1. Create a feature branch: `git checkout -b feat/<name>`
|
|
54
|
+
2. If large feature, consider `git worktree add` for isolation
|
|
55
|
+
3. Install any new dependencies
|
|
56
|
+
|
|
57
|
+
### Phase 4: IMPLEMENT
|
|
58
|
+
1. Implement changes file by file, following the plan
|
|
59
|
+
2. Follow existing code patterns discovered in Phase 2
|
|
60
|
+
3. After each logical chunk, run available checks:
|
|
61
|
+
- Lint: `npm run lint` or equivalent
|
|
62
|
+
- Type-check: `npx tsc --noEmit` or equivalent
|
|
63
|
+
- Fix issues immediately before moving on
|
|
64
|
+
|
|
65
|
+
### Phase 5: TEST
|
|
66
|
+
1. Write tests matching the project's testing patterns
|
|
67
|
+
2. Unit tests for new functions/modules
|
|
68
|
+
3. Integration tests for API/data flow changes
|
|
69
|
+
4. Run full test suite
|
|
70
|
+
5. Fix failing tests (max 3 attempts per test)
|
|
71
|
+
|
|
72
|
+
### Phase 6: REVIEW (Self)
|
|
73
|
+
1. Launch `code-review` skill on own changes (if available)
|
|
74
|
+
2. Or run a focused self-review:
|
|
75
|
+
- `git diff main...HEAD` — review the full diff
|
|
76
|
+
- Check for: TODOs left behind, console.logs, hardcoded values
|
|
77
|
+
- Verify all acceptance criteria from Phase 1
|
|
78
|
+
3. Fix any findings (max 2 review-fix cycles)
|
|
79
|
+
|
|
80
|
+
### Phase 7: DELIVER
|
|
81
|
+
1. Final checks: lint + type-check + tests all pass
|
|
82
|
+
2. Commit with conventional message: `feat(<scope>): <description>`
|
|
83
|
+
3. Push branch
|
|
84
|
+
4. Create PR:
|
|
85
|
+
- Link to issue if applicable
|
|
86
|
+
- Include acceptance criteria as checklist
|
|
87
|
+
- Add test plan
|
|
88
|
+
5. Report PR URL to user
|
|
89
|
+
|
|
90
|
+
## Status Updates
|
|
91
|
+
|
|
92
|
+
At each phase transition, report progress:
|
|
93
|
+
```
|
|
94
|
+
✅ Phase 1: Requirements confirmed
|
|
95
|
+
🔄 Phase 2: Designing implementation...
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Rules
|
|
99
|
+
|
|
100
|
+
- ALWAYS get user confirmation after Phase 1 (requirements) and Phase 2 (design)
|
|
101
|
+
- Phases 4-6 are autonomous — no user interaction needed
|
|
102
|
+
- If stuck for >3 attempts on any step, report the blocker and ask user
|
|
103
|
+
- NEVER skip Phase 5 (testing) even if user says "skip tests"
|
|
104
|
+
- NEVER commit broken code (lint/type-check must pass)
|
|
105
|
+
- Keep commits atomic: one commit per logical change, not one giant commit
|