@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,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gproject-spec-writer
|
|
3
|
+
description: "Generates PRD or Implementation Plan constrained by upstream decisions, architecture, and best practices. Use when: dispatched by gproject-orchestrator Phase 4."
|
|
4
|
+
triggers:
|
|
5
|
+
- "gproject-spec-writer: write PRD"
|
|
6
|
+
- "Dispatched by gproject-orchestrator Phase 4"
|
|
7
|
+
metadata:
|
|
8
|
+
author: "MrCipherSmith"
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
category: "planning"
|
|
11
|
+
license: "MIT"
|
|
12
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# gproject-spec-writer
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
Write a comprehensive PRD (new project) or Implementation Plan (task in project)
|
|
21
|
+
that is fully constrained by the decisions made in Phases 0-3. This agent
|
|
22
|
+
does NOT make architectural or stack decisions — it translates existing decisions
|
|
23
|
+
into actionable requirements and user stories.
|
|
24
|
+
|
|
25
|
+
## Iron Laws
|
|
26
|
+
|
|
27
|
+
| # | Law |
|
|
28
|
+
|---|-----|
|
|
29
|
+
| 1 | NEVER introduce a technology not in stack-decision.md |
|
|
30
|
+
| 2 | NEVER propose an architecture pattern not in architecture.md |
|
|
31
|
+
| 3 | EVERY technical requirement MUST reference a constraint from tech-bestpractices.md |
|
|
32
|
+
| 4 | EVERY user story MUST trace back to a goal in problem-statement.md |
|
|
33
|
+
| 5 | Non-goals from problem-statement.md MUST NOT appear as features |
|
|
34
|
+
| 6 | If a requirement conflicts with a constraint, return BLOCKED — don't resolve silently |
|
|
35
|
+
| 7 | User stories MUST have testable acceptance criteria |
|
|
36
|
+
|
|
37
|
+
## Red Flags
|
|
38
|
+
|
|
39
|
+
| Flag | What's happening | Action |
|
|
40
|
+
|------|-----------------|--------|
|
|
41
|
+
| Writing "we'll use X" where X is not in stack decisions | Introducing undecided tech | STOP → check stack-decision.md |
|
|
42
|
+
| User story without acceptance criteria | Untestable requirement | STOP → add criteria or flag as incomplete |
|
|
43
|
+
| Feature that contradicts a non-goal | Scope creep | STOP → remove or flag as conflict |
|
|
44
|
+
| Technical spec section with no BP constraint reference | Unconstrained decision | STOP → find applicable constraint or flag gap |
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gproject-spec-writer
|
|
3
|
+
description: >
|
|
4
|
+
Generates PRD or Implementation Plan constrained by decisions registry,
|
|
5
|
+
architecture doc, and best practices. Does NOT invent new architectural decisions.
|
|
6
|
+
Use when: dispatched by gproject-orchestrator Phase 4.
|
|
7
|
+
NOT for: direct user invocation.
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# gproject-spec-writer
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Write a comprehensive PRD (new project) or Implementation Plan (task in project)
|
|
16
|
+
that is fully constrained by the decisions made in Phases 0-3. This agent
|
|
17
|
+
does NOT make architectural or stack decisions — it translates existing decisions
|
|
18
|
+
into actionable requirements and user stories.
|
|
19
|
+
|
|
20
|
+
## Iron Laws
|
|
21
|
+
|
|
22
|
+
| # | Law |
|
|
23
|
+
|---|-----|
|
|
24
|
+
| 1 | NEVER introduce a technology not in stack-decision.md |
|
|
25
|
+
| 2 | NEVER propose an architecture pattern not in architecture.md |
|
|
26
|
+
| 3 | EVERY technical requirement MUST reference a constraint from tech-bestpractices.md |
|
|
27
|
+
| 4 | EVERY user story MUST trace back to a goal in problem-statement.md |
|
|
28
|
+
| 5 | Non-goals from problem-statement.md MUST NOT appear as features |
|
|
29
|
+
| 6 | If a requirement conflicts with a constraint, return BLOCKED — don't resolve silently |
|
|
30
|
+
| 7 | User stories MUST have testable acceptance criteria |
|
|
31
|
+
|
|
32
|
+
## Red Flags
|
|
33
|
+
|
|
34
|
+
| Flag | What's happening | Action |
|
|
35
|
+
|------|-----------------|--------|
|
|
36
|
+
| Writing "we'll use X" where X is not in stack decisions | Introducing undecided tech | STOP → check stack-decision.md |
|
|
37
|
+
| User story without acceptance criteria | Untestable requirement | STOP → add criteria or flag as incomplete |
|
|
38
|
+
| Feature that contradicts a non-goal | Scope creep | STOP → remove or flag as conflict |
|
|
39
|
+
| Technical spec section with no BP constraint reference | Unconstrained decision | STOP → find applicable constraint or flag gap |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Input Contract
|
|
44
|
+
|
|
45
|
+
```yaml
|
|
46
|
+
task: "Generate PRD / Implementation Plan"
|
|
47
|
+
mode: "new_project" | "task_in_project"
|
|
48
|
+
input_artifacts:
|
|
49
|
+
- .metaproject/jobs/<job>/artifacts/problem-statement.md
|
|
50
|
+
- .metaproject/jobs/<job>/artifacts/architecture.md
|
|
51
|
+
- .metaproject/jobs/<job>/artifacts/tech-bestpractices.md
|
|
52
|
+
- .metaproject/jobs/<job>/decisions.md
|
|
53
|
+
decisions_so_far: <all decisions from D1 through D_arch_pattern>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Output Contract
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
status: "DONE" | "DONE_WITH_CONCERNS" | "BLOCKED"
|
|
60
|
+
summary: "<3-5 sentences: document type, user story count, key scope decisions>"
|
|
61
|
+
new_decisions: {} # PRD does NOT add architectural decisions
|
|
62
|
+
concerns: ["<if DONE_WITH_CONCERNS — gaps or ambiguities found>"]
|
|
63
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/prd.md"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Workflow
|
|
69
|
+
|
|
70
|
+
### Step 1: Validate Inputs
|
|
71
|
+
|
|
72
|
+
Before writing anything, verify:
|
|
73
|
+
- [ ] All referenced decisions exist in decisions.md
|
|
74
|
+
- [ ] No contradictions between problem-statement and architecture
|
|
75
|
+
- [ ] Best practices constraints are internally consistent
|
|
76
|
+
- [ ] Scope (goals + non-goals) is clear
|
|
77
|
+
|
|
78
|
+
If validation fails → return `STATUS: BLOCKED` with specific issues.
|
|
79
|
+
|
|
80
|
+
### Step 2: Determine Document Type
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
IF mode == "new_project":
|
|
84
|
+
→ Write full PRD (template A below)
|
|
85
|
+
ELSE IF mode == "task_in_project":
|
|
86
|
+
→ Write Implementation Plan (template B below)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Step 3: Write User Stories
|
|
90
|
+
|
|
91
|
+
For each goal in problem-statement.md, generate user stories:
|
|
92
|
+
|
|
93
|
+
Format:
|
|
94
|
+
```
|
|
95
|
+
### US-<NNN>: <Title>
|
|
96
|
+
**As a** <user type from D_target_users>
|
|
97
|
+
**I want to** <action>
|
|
98
|
+
**So that** <benefit tied to goal G_N>
|
|
99
|
+
|
|
100
|
+
**Acceptance Criteria:**
|
|
101
|
+
- [ ] <specific, testable criterion>
|
|
102
|
+
- [ ] <specific, testable criterion>
|
|
103
|
+
- [ ] <specific, testable criterion>
|
|
104
|
+
|
|
105
|
+
**Technical Notes:**
|
|
106
|
+
- Constraint ref: <reference to tech-bestpractices.md constraint>
|
|
107
|
+
- Architecture ref: <reference to architecture.md section>
|
|
108
|
+
|
|
109
|
+
**Priority:** P0 (must-have) | P1 (should-have) | P2 (nice-to-have)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Prioritization rules:
|
|
113
|
+
- **P0**: directly solves a core problem (P1/P2 in problem-statement)
|
|
114
|
+
- **P1**: supports a goal but not critical for launch
|
|
115
|
+
- **P2**: enhances experience, can be deferred
|
|
116
|
+
|
|
117
|
+
### Step 4: Write Document
|
|
118
|
+
|
|
119
|
+
#### Template A: Full PRD (new_project)
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
# PRD: <Project Name>
|
|
123
|
+
|
|
124
|
+
## Document Metadata
|
|
125
|
+
- **Based on**: problem-statement.md, architecture.md, tech-bestpractices.md
|
|
126
|
+
- **Decisions referenced**: <list of D_* IDs>
|
|
127
|
+
- **Generated by**: gproject-spec-writer v1.0.0
|
|
128
|
+
|
|
129
|
+
## Executive Summary
|
|
130
|
+
<2-3 paragraphs: what, why, for whom, high-level how>
|
|
131
|
+
|
|
132
|
+
## Goals & Success Metrics
|
|
133
|
+
<from problem-statement.md — reference, don't duplicate>
|
|
134
|
+
| Goal ID | Goal | Success Metric | Target |
|
|
135
|
+
|---------|------|---------------|--------|
|
|
136
|
+
| G1 | <goal> | <metric> | <target> |
|
|
137
|
+
|
|
138
|
+
## Non-Goals
|
|
139
|
+
<from problem-statement.md — reference explicitly>
|
|
140
|
+
|
|
141
|
+
## Technical Foundation
|
|
142
|
+
**Stack**: <from stack-decision.md — summarize, don't duplicate>
|
|
143
|
+
**Architecture**: <from architecture.md — summarize>
|
|
144
|
+
**Key Constraints**: <from tech-bestpractices.md — list MUST constraints>
|
|
145
|
+
|
|
146
|
+
## User Stories
|
|
147
|
+
|
|
148
|
+
### Epic 1: <Epic Name>
|
|
149
|
+
<Group of related user stories>
|
|
150
|
+
|
|
151
|
+
#### US-001: <Title>
|
|
152
|
+
...
|
|
153
|
+
|
|
154
|
+
### Epic 2: <Epic Name>
|
|
155
|
+
...
|
|
156
|
+
|
|
157
|
+
## Data Model (High-Level)
|
|
158
|
+
<Key entities and relationships — aligned with DB constraints from BP>
|
|
159
|
+
|
|
160
|
+
## API Surface (High-Level)
|
|
161
|
+
<Key endpoints/operations — aligned with API constraints from BP>
|
|
162
|
+
|
|
163
|
+
## Security Requirements
|
|
164
|
+
<Aligned with security constraints from BP>
|
|
165
|
+
|
|
166
|
+
## Testing Requirements
|
|
167
|
+
<Aligned with testing constraints from BP — reference test pyramid targets>
|
|
168
|
+
|
|
169
|
+
## Out of Scope
|
|
170
|
+
<Explicit reference to non-goals + any additional scope exclusions>
|
|
171
|
+
|
|
172
|
+
## Open Questions
|
|
173
|
+
<Any remaining ambiguities — flagged for orchestrator>
|
|
174
|
+
|
|
175
|
+
## Traceability Matrix
|
|
176
|
+
| User Story | Goal | Problem | BP Constraint | Architecture Section |
|
|
177
|
+
|-----------|------|---------|---------------|---------------------|
|
|
178
|
+
| US-001 | G1 | P1 | Frontend.MUST.1 | Layer: API |
|
|
179
|
+
| US-002 | G1 | P1 | Backend.MUST.3 | Layer: Service |
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
#### Template B: Implementation Plan (task_in_project)
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
# Implementation Plan: <Task Name>
|
|
186
|
+
|
|
187
|
+
## Document Metadata
|
|
188
|
+
- **Based on**: discovery-brief.md, architecture.md, tech-bestpractices.md
|
|
189
|
+
- **Existing project context**: ai/context.md
|
|
190
|
+
- **Decisions referenced**: <list of D_* IDs>
|
|
191
|
+
|
|
192
|
+
## Summary
|
|
193
|
+
<What needs to be done, why, and how it fits into existing architecture>
|
|
194
|
+
|
|
195
|
+
## Impact Analysis
|
|
196
|
+
### Files Affected
|
|
197
|
+
| File/Module | Change Type | Risk |
|
|
198
|
+
|------------|------------|------|
|
|
199
|
+
| <path> | modify / create / delete | low / medium / high |
|
|
200
|
+
|
|
201
|
+
### Dependencies
|
|
202
|
+
- <component X depends on this change>
|
|
203
|
+
- <this change requires Y to be done first>
|
|
204
|
+
|
|
205
|
+
## Implementation Steps
|
|
206
|
+
|
|
207
|
+
### Step 1: <Title>
|
|
208
|
+
**What**: <specific change>
|
|
209
|
+
**Where**: <file paths>
|
|
210
|
+
**Pattern to follow**: <reference existing project patterns>
|
|
211
|
+
**BP constraint**: <reference tech-bestpractices.md>
|
|
212
|
+
**Acceptance criteria**:
|
|
213
|
+
- [ ] <testable criterion>
|
|
214
|
+
|
|
215
|
+
### Step 2: ...
|
|
216
|
+
|
|
217
|
+
## Testing Plan
|
|
218
|
+
<Aligned with testing constraints — what tests to write, what coverage>
|
|
219
|
+
|
|
220
|
+
## Migration / Rollback Plan (if applicable)
|
|
221
|
+
<How to roll back if something goes wrong>
|
|
222
|
+
|
|
223
|
+
## Traceability Matrix
|
|
224
|
+
| Step | Goal | BP Constraint | Existing Pattern |
|
|
225
|
+
|------|------|---------------|-----------------|
|
|
226
|
+
| Step 1 | G1 | Backend.MUST.2 | existing-service.ts pattern |
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Step 5: Self-Validate
|
|
230
|
+
|
|
231
|
+
Before returning, check:
|
|
232
|
+
- [ ] Every user story traces to a goal
|
|
233
|
+
- [ ] No features from non-goals list
|
|
234
|
+
- [ ] Every technical note references a BP constraint
|
|
235
|
+
- [ ] All acceptance criteria are testable (no "should work well")
|
|
236
|
+
- [ ] Traceability matrix is complete
|
|
237
|
+
|
|
238
|
+
If self-validation finds issues → fix them. If unfixable → return `DONE_WITH_CONCERNS`.
|
|
239
|
+
|
|
240
|
+
### Step 6: Return Summary
|
|
241
|
+
|
|
242
|
+
Compact summary: document type, total user stories / steps,
|
|
243
|
+
P0 count, any concerns or gaps found during self-validation.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gproject-stack-advisor
|
|
3
|
+
description: "Determines project level (MVP/pet/startup/production) and recommends optimal technology stack with trade-off analysis. Use when: dispatched by gproject-orchestrator Phase 2."
|
|
4
|
+
triggers:
|
|
5
|
+
- "gproject-stack-advisor: select stack"
|
|
6
|
+
- "Dispatched by gproject-orchestrator Phase 2"
|
|
7
|
+
metadata:
|
|
8
|
+
author: "MrCipherSmith"
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
category: "planning"
|
|
11
|
+
license: "MIT"
|
|
12
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# gproject-stack-advisor
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
Select the right project level and technology stack based on problems, goals,
|
|
21
|
+
constraints, and best practices. Every recommendation must be justified
|
|
22
|
+
with trade-offs — not "use React because it's popular" but "use React because
|
|
23
|
+
[specific reasons matching this project's constraints]."
|
|
24
|
+
|
|
25
|
+
## Iron Laws
|
|
26
|
+
|
|
27
|
+
| # | Law |
|
|
28
|
+
|---|-----|
|
|
29
|
+
| 1 | EVERY technology choice MUST have explicit rationale tied to project constraints |
|
|
30
|
+
| 2 | EVERY choice MUST list at least one considered alternative and why it was rejected |
|
|
31
|
+
| 3 | Stack MUST match project level — no Kubernetes for an MVP |
|
|
32
|
+
| 4 | In task_in_project mode, default to existing stack unless change is strongly justified |
|
|
33
|
+
| 5 | NEVER recommend a technology without checking its maturity and community support |
|
|
34
|
+
| 6 | Team skills MUST be a primary factor — perfect tech with no team knowledge = wrong choice |
|
|
35
|
+
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
| Flag | What's happening | Action |
|
|
39
|
+
|------|-----------------|--------|
|
|
40
|
+
| Recommending 5+ new technologies for MVP | Over-engineering | Simplify to max 3 core choices |
|
|
41
|
+
| Ignoring team skills in rationale | Tech-driven not people-driven | Re-evaluate with team factor |
|
|
42
|
+
| No alternative considered | Confirmation bias | Research at least 1 alternative per choice |
|
|
43
|
+
| Recommending bleeding-edge for production | Risk ignorance | Flag maturity concern |
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gproject-stack-advisor
|
|
3
|
+
description: "Determines project level (MVP/pet/startup/production) and recommends optimal technology stack with trade-off analysis. Use when: dispatched by gproject-orchestrator Phase 2."
|
|
4
|
+
triggers:
|
|
5
|
+
- "gproject-stack-advisor: select stack"
|
|
6
|
+
- "Dispatched by gproject-orchestrator Phase 2"
|
|
7
|
+
metadata:
|
|
8
|
+
author: "MrCipherSmith"
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
category: "planning"
|
|
11
|
+
license: "MIT"
|
|
12
|
+
compatibility: "cursor,codex,zed,opencode"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# gproject-stack-advisor
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
Select the right project level and technology stack based on problems, goals,
|
|
21
|
+
constraints, and best practices. Every recommendation must be justified
|
|
22
|
+
with trade-offs — not "use React because it's popular" but "use React because
|
|
23
|
+
[specific reasons matching this project's constraints]."
|
|
24
|
+
|
|
25
|
+
## Iron Laws
|
|
26
|
+
|
|
27
|
+
| # | Law |
|
|
28
|
+
|---|-----|
|
|
29
|
+
| 1 | EVERY technology choice MUST have explicit rationale tied to project constraints |
|
|
30
|
+
| 2 | EVERY choice MUST list at least one considered alternative and why it was rejected |
|
|
31
|
+
| 3 | Stack MUST match project level — no Kubernetes for an MVP |
|
|
32
|
+
| 4 | In task_in_project mode, default to existing stack unless change is strongly justified |
|
|
33
|
+
| 5 | NEVER recommend a technology without checking its maturity and community support |
|
|
34
|
+
| 6 | Team skills MUST be a primary factor — perfect tech with no team knowledge = wrong choice |
|
|
35
|
+
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
| Flag | What's happening | Action |
|
|
39
|
+
|------|-----------------|--------|
|
|
40
|
+
| Recommending 5+ new technologies for MVP | Over-engineering | Simplify to max 3 core choices |
|
|
41
|
+
| Ignoring team skills in rationale | Tech-driven not people-driven | Re-evaluate with team factor |
|
|
42
|
+
| No alternative considered | Confirmation bias | Research at least 1 alternative per choice |
|
|
43
|
+
| Recommending bleeding-edge for production | Risk ignorance | Flag maturity concern |
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gproject-stack-advisor
|
|
3
|
+
description: >
|
|
4
|
+
Determines project level (MVP/pet/startup/production) and recommends optimal
|
|
5
|
+
technology stack with trade-off analysis.
|
|
6
|
+
Use when: dispatched by gproject-orchestrator Phase 2.
|
|
7
|
+
NOT for: direct user invocation.
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# gproject-stack-advisor
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Select the right project level and technology stack based on problems, goals,
|
|
16
|
+
constraints, and best practices. Every recommendation must be justified
|
|
17
|
+
with trade-offs — not "use React because it's popular" but "use React because
|
|
18
|
+
[specific reasons matching this project's constraints]."
|
|
19
|
+
|
|
20
|
+
## Iron Laws
|
|
21
|
+
|
|
22
|
+
| # | Law |
|
|
23
|
+
|---|-----|
|
|
24
|
+
| 1 | EVERY technology choice MUST have explicit rationale tied to project constraints |
|
|
25
|
+
| 2 | EVERY choice MUST list at least one considered alternative and why it was rejected |
|
|
26
|
+
| 3 | Stack MUST match project level — no Kubernetes for an MVP |
|
|
27
|
+
| 4 | In task_in_project mode, default to existing stack unless change is strongly justified |
|
|
28
|
+
| 5 | NEVER recommend a technology without checking its maturity and community support |
|
|
29
|
+
| 6 | Team skills MUST be a primary factor — perfect tech with no team knowledge = wrong choice |
|
|
30
|
+
|
|
31
|
+
## Red Flags
|
|
32
|
+
|
|
33
|
+
| Flag | What's happening | Action |
|
|
34
|
+
|------|-----------------|--------|
|
|
35
|
+
| Recommending 5+ new technologies for MVP | Over-engineering | Simplify to max 3 core choices |
|
|
36
|
+
| Ignoring team skills in rationale | Tech-driven not people-driven | Re-evaluate with team factor |
|
|
37
|
+
| No alternative considered | Confirmation bias | Research at least 1 alternative per choice |
|
|
38
|
+
| Recommending bleeding-edge for production | Risk ignorance | Flag maturity concern |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Input Contract
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
task: "Select project level and technology stack"
|
|
46
|
+
input_artifacts:
|
|
47
|
+
- .metaproject/jobs/<job>/artifacts/problem-statement.md
|
|
48
|
+
decisions_so_far:
|
|
49
|
+
D_core_problems: [...]
|
|
50
|
+
D_goals: [...]
|
|
51
|
+
D_non_goals: [...]
|
|
52
|
+
D_target_users: "..."
|
|
53
|
+
D_scale_estimate: "..."
|
|
54
|
+
# For task_in_project:
|
|
55
|
+
D_existing_stack: "<if detected by context-collector>"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Output Contract
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
status: "DONE" | "NEEDS_CONTEXT"
|
|
62
|
+
summary: "<3-5 sentences: level chosen, stack chosen, key trade-off>"
|
|
63
|
+
new_decisions:
|
|
64
|
+
D_level: "mvp | pet | startup | production"
|
|
65
|
+
D_frontend: "<framework + version>"
|
|
66
|
+
D_backend: "<framework + version>"
|
|
67
|
+
D_database: "<DB + version>"
|
|
68
|
+
D_cache: "<if needed>"
|
|
69
|
+
D_queue: "<if needed>"
|
|
70
|
+
D_auth: "<approach>"
|
|
71
|
+
D_deploy: "<strategy>"
|
|
72
|
+
D_infra: "<approach>"
|
|
73
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/stack-decision.md"
|
|
74
|
+
next_phase_needs:
|
|
75
|
+
- "Per-technology best practices research"
|
|
76
|
+
- "Architecture pattern selection"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Workflow
|
|
82
|
+
|
|
83
|
+
### Step 1: Determine Project Level
|
|
84
|
+
|
|
85
|
+
Evaluate against criteria matrix:
|
|
86
|
+
|
|
87
|
+
| Factor | MVP | Pet/Learning | Startup | Production |
|
|
88
|
+
|--------|-----|-------------|---------|------------|
|
|
89
|
+
| Users | <100 | 1 (self) | 100-10K | 10K+ |
|
|
90
|
+
| Team | 1 person | 1 person | 2-5 | 5+ |
|
|
91
|
+
| Lifespan | weeks | indefinite | months-years | years |
|
|
92
|
+
| Budget | minimal | zero | seed/limited | funded |
|
|
93
|
+
| Uptime SLA | none | none | 99% | 99.9%+ |
|
|
94
|
+
| Data sensitivity | low | low | medium | high |
|
|
95
|
+
| Compliance | none | none | basic | regulated |
|
|
96
|
+
|
|
97
|
+
The level determines complexity ceiling:
|
|
98
|
+
- **MVP**: max simplicity, monolith, single deploy target, minimal infra
|
|
99
|
+
- **Pet**: developer experience priority, learning-friendly stack
|
|
100
|
+
- **Startup**: balance of speed and scalability, ready for growth
|
|
101
|
+
- **Production**: reliability, security, observability, scalability first
|
|
102
|
+
|
|
103
|
+
### Step 2: Evaluate Stack Options
|
|
104
|
+
|
|
105
|
+
For each layer, evaluate 2-3 options against project-specific criteria:
|
|
106
|
+
|
|
107
|
+
**Evaluation criteria** (weight varies by project level):
|
|
108
|
+
1. **Problem fit** — does it solve our specific problems well?
|
|
109
|
+
2. **Team match** — does the team know it? Learning curve?
|
|
110
|
+
3. **Ecosystem** — libraries, tools, community for our use case
|
|
111
|
+
4. **Scalability ceiling** — will it handle our target scale?
|
|
112
|
+
5. **Velocity** — how fast can we ship with it?
|
|
113
|
+
6. **Cost** — licensing, hosting, operational cost
|
|
114
|
+
7. **Maturity** — production-proven? Active maintenance?
|
|
115
|
+
8. **Integration** — works well with other chosen components?
|
|
116
|
+
|
|
117
|
+
### Step 3: Web Research (Best Practices)
|
|
118
|
+
|
|
119
|
+
For the shortlisted stack, research:
|
|
120
|
+
- Current best practices (2024-2025 sources preferred)
|
|
121
|
+
- Common pitfalls and antipatterns
|
|
122
|
+
- Production case studies at similar scale
|
|
123
|
+
- Performance benchmarks relevant to our use case
|
|
124
|
+
|
|
125
|
+
### Step 4: task_in_project Mode Adjustments
|
|
126
|
+
|
|
127
|
+
If mode is task_in_project:
|
|
128
|
+
- Start from existing stack (detected by context-collector)
|
|
129
|
+
- Only recommend NEW technologies if:
|
|
130
|
+
- Existing stack cannot solve the specific problem
|
|
131
|
+
- New tech integrates cleanly with existing stack
|
|
132
|
+
- Learning overhead is justified by benefit
|
|
133
|
+
- Flag any technology additions clearly as "NEW — requires team learning"
|
|
134
|
+
|
|
135
|
+
### Step 5: Write Stack Decision
|
|
136
|
+
|
|
137
|
+
Write `artifacts/stack-decision.md`:
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
# Stack Decision: <Project/Task Name>
|
|
141
|
+
|
|
142
|
+
## Project Level: <LEVEL>
|
|
143
|
+
**Rationale**: <why this level, based on constraints>
|
|
144
|
+
|
|
145
|
+
## Technology Stack
|
|
146
|
+
|
|
147
|
+
### Frontend: <Choice>
|
|
148
|
+
**Version**: <specific>
|
|
149
|
+
**Rationale**: <tied to project constraints>
|
|
150
|
+
**Alternative considered**: <what and why rejected>
|
|
151
|
+
**Key libraries**: <essential deps>
|
|
152
|
+
|
|
153
|
+
### Backend: <Choice>
|
|
154
|
+
**Version**: <specific>
|
|
155
|
+
**Rationale**: <tied to project constraints>
|
|
156
|
+
**Alternative considered**: <what and why rejected>
|
|
157
|
+
**Key libraries**: <essential deps>
|
|
158
|
+
|
|
159
|
+
### Database: <Choice>
|
|
160
|
+
...
|
|
161
|
+
|
|
162
|
+
### Infrastructure & Deploy: <Choice>
|
|
163
|
+
...
|
|
164
|
+
|
|
165
|
+
### Additional Services (if any)
|
|
166
|
+
- Cache: <if needed, with rationale>
|
|
167
|
+
- Queue: <if needed, with rationale>
|
|
168
|
+
- Search: <if needed, with rationale>
|
|
169
|
+
|
|
170
|
+
## Stack Compatibility Matrix
|
|
171
|
+
| Component | Integrates With | Integration Quality |
|
|
172
|
+
|-----------|----------------|-------------------|
|
|
173
|
+
| <A> | <B> | proven / good / experimental |
|
|
174
|
+
|
|
175
|
+
## Trade-offs Accepted
|
|
176
|
+
| Trade-off | What We Gain | What We Give Up |
|
|
177
|
+
|-----------|-------------|-----------------|
|
|
178
|
+
| <choice> | <benefit> | <cost> |
|
|
179
|
+
|
|
180
|
+
## Complexity Budget
|
|
181
|
+
**Total new technologies**: <count>
|
|
182
|
+
**Team learning required**: <list what's new>
|
|
183
|
+
**Estimated ramp-up**: <time>
|
|
184
|
+
|
|
185
|
+
## Risk Assessment
|
|
186
|
+
| Risk | Probability | Impact | Mitigation |
|
|
187
|
+
|------|------------|--------|------------|
|
|
188
|
+
| <risk> | <H/M/L> | <H/M/L> | <plan> |
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Step 6: Return Summary
|
|
192
|
+
|
|
193
|
+
Compact summary: level + core stack (one line) + biggest trade-off + confidence.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-entrypoint-distiller
|
|
3
|
+
description: Use when the user asks to split, decompose, distill, or refactor a large AGENTS.md or CLAUDE.md into Metaproject rules and project-specific skills while keeping root entrypoints compact.
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
category: platform
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Agent Entrypoint Distiller
|
|
10
|
+
|
|
11
|
+
Use this skill when root agent files (`AGENTS.md`, `CLAUDE.md`) have grown into
|
|
12
|
+
large project manuals and should be converted into local Metaproject knowledge.
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. Read `.metaproject/index.md` and `.metaproject/metaproject.json` if they exist.
|
|
17
|
+
2. Run:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
keryx rules distill
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
3. Verify the generated outputs:
|
|
24
|
+
- `.metaproject/rules/entrypoints/index.md`
|
|
25
|
+
- `.metaproject/rules/entrypoints/*.md`
|
|
26
|
+
- `.metaproject/project-skills/entrypoints/*/SKILL.md`
|
|
27
|
+
- compact `AGENTS.md` and `CLAUDE.md` still point to `.metaproject/index.md`
|
|
28
|
+
4. If the command changed root entrypoints, check that only global/personal or
|
|
29
|
+
highest-priority always-on instructions remain there.
|
|
30
|
+
5. Run focused verification:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
keryx rules sync
|
|
34
|
+
keryx flow check 001
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Skip `flow check` when the project has no Task Manager flow.
|
|
38
|
+
|
|
39
|
+
## Output Contract
|
|
40
|
+
|
|
41
|
+
Report:
|
|
42
|
+
|
|
43
|
+
- rules extracted count;
|
|
44
|
+
- skills extracted count;
|
|
45
|
+
- root sections kept count;
|
|
46
|
+
- files changed;
|
|
47
|
+
- any sections that looked ambiguous and should be reviewed manually.
|