@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,206 @@
|
|
|
1
|
+
# Task Implementer — Orchestrator Prompt
|
|
2
|
+
|
|
3
|
+
> **Purpose:** Template used by `wave-executor` (dispatched by `job-orchestrator`) to dispatch `task-implementer` as a sub-agent.
|
|
4
|
+
> The wave-executor fills in the placeholders below and sends the result as a Task prompt.
|
|
5
|
+
> The task-implementer executes SKILL.md autonomously, writes the full JSON result to a file, and returns a compact STATUS response.
|
|
6
|
+
|
|
7
|
+
## Data Flow
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
[job-orchestrator] → dispatches wave-executor per wave (not task-implementer directly)
|
|
11
|
+
↓
|
|
12
|
+
[wave-executor] → extracts tasks → fills template → Task(task-implementer) × N (parallel)
|
|
13
|
+
↓
|
|
14
|
+
[task-implementer] → executes SKILL.md → writes JSON to .metaproject/jobs/<job-name>/results/<task_id>.json
|
|
15
|
+
↓
|
|
16
|
+
[Result] → compact STATUS: DONE response (no inline JSON)
|
|
17
|
+
↓
|
|
18
|
+
[wave-executor] → collects STATUS responses → returns compact WAVE_DONE summary
|
|
19
|
+
↓
|
|
20
|
+
[job-orchestrator] → receives one-line wave summary per wave
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Step 1: Extract Task Parameters
|
|
24
|
+
|
|
25
|
+
From the issue-analyzer JSON output, extract one task object:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
TASK:
|
|
29
|
+
task_id → from tasks[i].task_id
|
|
30
|
+
task_name → from tasks[i].task_name
|
|
31
|
+
task_type → from tasks[i].task_type
|
|
32
|
+
complexity → from tasks[i].complexity
|
|
33
|
+
dependencies → from tasks[i].dependencies (already satisfied — dispatch in dependency_order)
|
|
34
|
+
description → from tasks[i].description
|
|
35
|
+
target_files → from tasks[i].target_files
|
|
36
|
+
acceptance_criteria → from tasks[i].acceptance_criteria
|
|
37
|
+
context → from tasks[i].context
|
|
38
|
+
existing_tests → from tasks[i].existing_tests
|
|
39
|
+
existing_stories → from tasks[i].existing_stories
|
|
40
|
+
module_patterns → from tasks[i].module_patterns
|
|
41
|
+
|
|
42
|
+
WORKSPACE:
|
|
43
|
+
codebase_path → absolute path to project repo (worktree path)
|
|
44
|
+
branch → feature branch name (already checked out in worktree)
|
|
45
|
+
issue_number → GitHub issue number
|
|
46
|
+
issue_title → GitHub issue title
|
|
47
|
+
|
|
48
|
+
JOB_CONTEXT (optional):
|
|
49
|
+
job_name → job folder name
|
|
50
|
+
context_path → <JOBS_ROOT>/<job-name>/ai/context.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Step 2: Validate
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
ASSERT task_id is not empty → otherwise ABORT: "Missing task_id"
|
|
57
|
+
ASSERT task_type in valid types → otherwise ABORT: "Invalid task_type"
|
|
58
|
+
ASSERT target_files is not empty → otherwise ABORT: "No target files"
|
|
59
|
+
ASSERT codebase_path exists → otherwise ABORT: "Codebase path not found"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Step 3: Build Sub-Agent Prompt (regular task)
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
You are running the task-implementer skill in AUTONOMOUS MODE.
|
|
66
|
+
DO NOT ask the user any questions. Execute the full workflow end-to-end.
|
|
67
|
+
|
|
68
|
+
Load the skill: task-implementer (from skills/task-implementer/SKILL.md)
|
|
69
|
+
|
|
70
|
+
═══════════════════════════════════════════════
|
|
71
|
+
TASK
|
|
72
|
+
═══════════════════════════════════════════════
|
|
73
|
+
|
|
74
|
+
{
|
|
75
|
+
"task_id": "<TASK_ID>",
|
|
76
|
+
"task_name": "<TASK_NAME>",
|
|
77
|
+
"task_type": "<TASK_TYPE>",
|
|
78
|
+
"complexity": "<COMPLEXITY>",
|
|
79
|
+
"dependencies": [<DEPENDENCY_LIST>],
|
|
80
|
+
"description": "<DESCRIPTION>",
|
|
81
|
+
"target_files": [<TARGET_FILES_LIST>],
|
|
82
|
+
"acceptance_criteria": [<ACCEPTANCE_CRITERIA_LIST>],
|
|
83
|
+
"context": "<CONTEXT>",
|
|
84
|
+
"existing_tests": [<EXISTING_TESTS_LIST>],
|
|
85
|
+
"existing_stories": [<EXISTING_STORIES_LIST>],
|
|
86
|
+
"module_patterns": "<MODULE_PATTERNS>"
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
═══════════════════════════════════════════════
|
|
90
|
+
WORKSPACE
|
|
91
|
+
═══════════════════════════════════════════════
|
|
92
|
+
|
|
93
|
+
CODEBASE_PATH: <CODEBASE_PATH>
|
|
94
|
+
BRANCH: <BRANCH>
|
|
95
|
+
ISSUE_NUMBER: <ISSUE_NUMBER>
|
|
96
|
+
ISSUE_TITLE: <ISSUE_TITLE>
|
|
97
|
+
|
|
98
|
+
<!-- If job context available: -->
|
|
99
|
+
JOB_NAME: <JOB_NAME>
|
|
100
|
+
CONTEXT_PATH: <JOBS_ROOT>/<JOB_NAME>/ai/context.md
|
|
101
|
+
|
|
102
|
+
═══════════════════════════════════════════════
|
|
103
|
+
AUTOMATION SETTINGS
|
|
104
|
+
═══════════════════════════════════════════════
|
|
105
|
+
|
|
106
|
+
1. CONFIRMATION: SKIP. Proceed immediately.
|
|
107
|
+
2. AUTO COMMIT: true
|
|
108
|
+
3. VERIFY LINT: true
|
|
109
|
+
4. VERIFY TYPES: true
|
|
110
|
+
5. VERIFY TESTS: true
|
|
111
|
+
6. MAX SELF-FIX ATTEMPTS: 3
|
|
112
|
+
|
|
113
|
+
═══════════════════════════════════════════════
|
|
114
|
+
EXECUTION INSTRUCTIONS
|
|
115
|
+
═══════════════════════════════════════════════
|
|
116
|
+
|
|
117
|
+
1. Load task-implementer SKILL.md
|
|
118
|
+
2. Execute all 6 phases: RECEIVE → RESEARCH → PLAN → IMPLEMENT → VERIFY → REPORT
|
|
119
|
+
3. Phase 6: Write full JSON result to <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json
|
|
120
|
+
4. Return a compact STATUS response as your FINAL MESSAGE — NO inline JSON:
|
|
121
|
+
|
|
122
|
+
STATUS: DONE
|
|
123
|
+
## Completed
|
|
124
|
+
- <what was done>
|
|
125
|
+
## Files changed
|
|
126
|
+
- <file> — <change>
|
|
127
|
+
## Verification
|
|
128
|
+
- lint: pass / type-check: pass / tests: N passed
|
|
129
|
+
Result file: <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json
|
|
130
|
+
|
|
131
|
+
DO NOT ask questions. DO NOT stop for user input. DO NOT include the JSON block in your response. Run to completion.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Step 4: Build Sub-Agent Prompt (fix task)
|
|
135
|
+
|
|
136
|
+
For fix tasks dispatched from the review loop:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
You are running the task-implementer skill in FIX MODE (AUTONOMOUS).
|
|
140
|
+
DO NOT ask the user any questions. Execute the full workflow end-to-end.
|
|
141
|
+
|
|
142
|
+
Load the skill: task-implementer (from skills/task-implementer/SKILL.md)
|
|
143
|
+
|
|
144
|
+
═══════════════════════════════════════════════
|
|
145
|
+
FIX TASK
|
|
146
|
+
═══════════════════════════════════════════════
|
|
147
|
+
|
|
148
|
+
{
|
|
149
|
+
"task_id": "fix-<ITERATION>",
|
|
150
|
+
"task_name": "Fix review findings — iteration <ITERATION>",
|
|
151
|
+
"task_type": "fix",
|
|
152
|
+
"complexity": "medium",
|
|
153
|
+
"dependencies": [],
|
|
154
|
+
"description": "Fix review findings from iteration <ITERATION>",
|
|
155
|
+
"target_files": [<FILES_WITH_FINDINGS>],
|
|
156
|
+
"acceptance_criteria": ["All CRITICAL and WARNING findings resolved"],
|
|
157
|
+
"context": "",
|
|
158
|
+
"existing_tests": [],
|
|
159
|
+
"existing_stories": [],
|
|
160
|
+
"module_patterns": ""
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
FIX_CONTEXT:
|
|
164
|
+
{
|
|
165
|
+
"review_feedback": <REVIEW_FINDINGS_JSON>,
|
|
166
|
+
"original_task_ids": [<ORIGINAL_TASK_IDS>],
|
|
167
|
+
"iteration": <ITERATION_NUMBER>
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
WORKSPACE: (same as above)
|
|
171
|
+
|
|
172
|
+
AUTOMATION SETTINGS: (same as above)
|
|
173
|
+
|
|
174
|
+
EXECUTION: Run to completion, return JSON result.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Example Task Tool Call
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
Task({
|
|
183
|
+
description: "Implement task-1: <TASK_NAME>",
|
|
184
|
+
subagent_type: "general",
|
|
185
|
+
prompt: "<generated prompt from template above>"
|
|
186
|
+
})
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Parsing the Result (wave-executor)
|
|
192
|
+
|
|
193
|
+
After receiving the sub-agent STATUS response, the wave-executor must:
|
|
194
|
+
|
|
195
|
+
1. Read the STATUS line: `DONE` | `DONE_WITH_CONCERNS` | `BLOCKED`
|
|
196
|
+
2. Extract compact summary from the response:
|
|
197
|
+
- Files changed section
|
|
198
|
+
- Verification results
|
|
199
|
+
- Commits (from "Completed" bullets or result file)
|
|
200
|
+
3. **Read the result file** only when needed (DONE_WITH_CONCERNS or BLOCKED):
|
|
201
|
+
- Path: `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`
|
|
202
|
+
- Fields: task_id, status, files_modified, files_created, commits, lint_result, type_check_result, test_result, acceptance_criteria_met
|
|
203
|
+
4. Decision based on STATUS:
|
|
204
|
+
- `DONE` → continue, collect commit hashes from response
|
|
205
|
+
- `DONE_WITH_CONCERNS` → read result file, log concerns, continue
|
|
206
|
+
- `BLOCKED` → STOP wave, report to orchestrator with reason
|
package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://keryx.local/schemas/task-implementer/output-contract.schema.json",
|
|
4
|
+
"title": "Task Implementer Output Contract",
|
|
5
|
+
"description": "JSON result returned by task-implementer after executing a task. Replaces the previous Gherkin format.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["task_id", "task_name", "task_type", "status"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"task_id": { "type": "string", "pattern": "^task-[0-9]+$" },
|
|
11
|
+
"task_name": { "type": "string" },
|
|
12
|
+
"task_type": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"enum": ["ui_component", "store_logic", "service_api", "refactoring", "fix", "mixed"]
|
|
15
|
+
},
|
|
16
|
+
"status": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["success", "partial", "failed"],
|
|
19
|
+
"description": "success: all criteria met, all verifications pass; partial: some criteria met or verification failures; failed: critical blockers"
|
|
20
|
+
},
|
|
21
|
+
"description": { "type": "string", "description": "What was implemented" },
|
|
22
|
+
"files_modified": { "type": "array", "items": { "type": "string" } },
|
|
23
|
+
"files_created": { "type": "array", "items": { "type": "string" } },
|
|
24
|
+
"files_deleted": { "type": "array", "items": { "type": "string" } },
|
|
25
|
+
"commits": { "type": "array", "items": { "type": "string" } },
|
|
26
|
+
"lint_result": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "pass OR 'N errors: <details>'"
|
|
29
|
+
},
|
|
30
|
+
"type_check_result": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "pass OR 'N errors: <details>'"
|
|
33
|
+
},
|
|
34
|
+
"test_result": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "pass OR 'N passed, M failed: <details>' OR 'skipped'"
|
|
37
|
+
},
|
|
38
|
+
"story_result": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "pass OR 'build error: <details>' OR 'not applicable'"
|
|
41
|
+
},
|
|
42
|
+
"acceptance_criteria_met": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "all OR 'partial: <list of unmet criteria>' OR none"
|
|
45
|
+
},
|
|
46
|
+
"notes": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Warnings, blockers, or additional context"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Task Implementer — Task Request
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
ШАБЛОН ЗАПРОСА НА ИМПЛЕМЕНТАЦИЮ ЗАДАЧИ
|
|
5
|
+
=======================================
|
|
6
|
+
Заполняется оркестратором ПЕРЕД запуском task-implementer.
|
|
7
|
+
Все обязательные поля (*) должны быть заполнены.
|
|
8
|
+
|
|
9
|
+
Валидация: input-contract.schema.json
|
|
10
|
+
Использование: orchestrator-prompt.md читает этот файл и формирует промпт для субагента.
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
## Task *
|
|
14
|
+
|
|
15
|
+
| Field | Value |
|
|
16
|
+
|-------|-------|
|
|
17
|
+
| Task ID * | `task-1` |
|
|
18
|
+
| Task Name * | `Add validation to pipeline step form` |
|
|
19
|
+
| Task Type * | `ui_component` |
|
|
20
|
+
| Complexity | `medium` |
|
|
21
|
+
| Dependencies | `none` |
|
|
22
|
+
|
|
23
|
+
## Description *
|
|
24
|
+
|
|
25
|
+
<!-- Полное описание задачи из Scenario issue-analyzer -->
|
|
26
|
+
|
|
27
|
+
Add client-side validation to the pipeline step configuration form. Validate required fields (name, type) before allowing save. Show inline error messages using Ant Design Form validation.
|
|
28
|
+
|
|
29
|
+
## Target Files *
|
|
30
|
+
|
|
31
|
+
| Path | Action |
|
|
32
|
+
|------|--------|
|
|
33
|
+
| `src/pipelines/components/StepForm.tsx` | `modify` |
|
|
34
|
+
| `src/pipelines/components/StepForm.test.tsx` | `create` |
|
|
35
|
+
| `src/pipelines/components/StepForm.stories.tsx` | `create` |
|
|
36
|
+
|
|
37
|
+
## Acceptance Criteria *
|
|
38
|
+
|
|
39
|
+
- Required fields show validation errors when empty on submit
|
|
40
|
+
- Form cannot be submitted with invalid data
|
|
41
|
+
- Error messages disappear when field is corrected
|
|
42
|
+
- Validation follows existing form patterns in the project
|
|
43
|
+
|
|
44
|
+
## Context
|
|
45
|
+
|
|
46
|
+
<!-- Контекст кода: типы, сигнатуры, паттерны -->
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Existing type from src/pipelines/types.ts
|
|
50
|
+
interface StepConfig {
|
|
51
|
+
name: string;
|
|
52
|
+
type: StepType;
|
|
53
|
+
params: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Existing Tests
|
|
58
|
+
|
|
59
|
+
| Path |
|
|
60
|
+
|------|
|
|
61
|
+
| `none` |
|
|
62
|
+
|
|
63
|
+
## Existing Stories
|
|
64
|
+
|
|
65
|
+
| Path |
|
|
66
|
+
|------|
|
|
67
|
+
| `none` |
|
|
68
|
+
|
|
69
|
+
## Module Patterns
|
|
70
|
+
|
|
71
|
+
<!-- Как написан похожий код в этом модуле -->
|
|
72
|
+
|
|
73
|
+
Components in `src/pipelines/components/` use `observer()` wrapping, props interfaces named `<Component>Props`, Ant Design `Form` with `useForm` hook. Validation uses `rules` prop on `Form.Item`.
|
|
74
|
+
|
|
75
|
+
## Workspace *
|
|
76
|
+
|
|
77
|
+
| Field | Value |
|
|
78
|
+
|-------|-------|
|
|
79
|
+
| Codebase Path * | `/Users/dev/<PROJECT>` |
|
|
80
|
+
| Branch * | `feature/4141-add-pipeline-validation` |
|
|
81
|
+
| Issue Number * | `4141` |
|
|
82
|
+
| Issue Title | `Add validation to pipeline step form` |
|
|
83
|
+
|
|
84
|
+
## Fix Context (only for fix tasks)
|
|
85
|
+
|
|
86
|
+
<!-- Заполняется только если task_type = "fix" и задача пришла из review loop -->
|
|
87
|
+
|
|
88
|
+
| Field | Value |
|
|
89
|
+
|-------|-------|
|
|
90
|
+
| Original Task ID | |
|
|
91
|
+
| Iteration | |
|
|
92
|
+
|
|
93
|
+
### Review Feedback
|
|
94
|
+
|
|
95
|
+
<!-- Structured findings from reviewers -->
|
|
96
|
+
|
|
97
|
+
| File | Line | Severity | Message | Reviewer |
|
|
98
|
+
|------|------|----------|---------|----------|
|
|
99
|
+
| | | | | |
|
|
100
|
+
|
|
101
|
+
## Automation Settings *
|
|
102
|
+
|
|
103
|
+
| Setting | Value | Description |
|
|
104
|
+
|---------|-------|-------------|
|
|
105
|
+
| skip_confirmation * | `true` | Must be true for autonomous mode |
|
|
106
|
+
| auto_commit | `true` | Commit changes after implementation |
|
|
107
|
+
| verify_lint | `true` | Run ESLint |
|
|
108
|
+
| verify_types | `true` | Run type-check |
|
|
109
|
+
| verify_tests | `true` | Run tests |
|
|
110
|
+
| verify_stories | `false` | Build storybook |
|
|
111
|
+
| max_self_fix_attempts | `3` | Max self-fix attempts |
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autodoc-analyst
|
|
3
|
+
description: >
|
|
4
|
+
Phase 2 subagent for autodoc-orchestrator. Deep-dives into a single module
|
|
5
|
+
to extract purpose, structure, public API surface, patterns, and key dependencies.
|
|
6
|
+
Use when: dispatched by autodoc-orchestrator Phase 2 (one instance per module).
|
|
7
|
+
NOT for: direct user invocation.
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# autodoc-analyst
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Produce a complete semantic understanding of one module that the architect
|
|
16
|
+
and writers can use without re-reading the source code.
|
|
17
|
+
|
|
18
|
+
## Iron Laws
|
|
19
|
+
|
|
20
|
+
| # | Law |
|
|
21
|
+
|---|-----|
|
|
22
|
+
| 1 | Analyze ONE module per invocation — do not cross module boundaries |
|
|
23
|
+
| 2 | Read actual source files — understanding must come from code, not assumptions |
|
|
24
|
+
| 3 | Prioritize: public interfaces > internal implementation > tests |
|
|
25
|
+
| 4 | Document what the code DOES, not how it does it internally |
|
|
26
|
+
| 5 | Extract concrete examples from code (real function names, real endpoints) |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Input Contract
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
module:
|
|
34
|
+
slug: "<module slug>"
|
|
35
|
+
path: "<absolute module path>"
|
|
36
|
+
type: "backend | frontend | shared | ..."
|
|
37
|
+
language: "<lang>"
|
|
38
|
+
framework: "<framework>"
|
|
39
|
+
entry_points: ["<file>"]
|
|
40
|
+
project_map: ".metaproject/jobs/<job>/artifacts/project-map.md"
|
|
41
|
+
JOB_DIR: "<job directory>"
|
|
42
|
+
CONFIG: "<from state.json.config>"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Output Contract
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
status: "DONE" | "DONE_WITH_CONCERNS" | "NEEDS_CONTEXT"
|
|
49
|
+
summary: "<3-5 sentences: what the module does, its main components, key patterns>"
|
|
50
|
+
concerns: ["<concern>"]
|
|
51
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/analysis/<slug>.md"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Workflow
|
|
57
|
+
|
|
58
|
+
### Step 1: Entry Point Analysis
|
|
59
|
+
|
|
60
|
+
Read the entry point file(s) listed in project-map. Understand:
|
|
61
|
+
- What is bootstrapped / initialized?
|
|
62
|
+
- What are the top-level exports?
|
|
63
|
+
- What dependencies are injected or imported?
|
|
64
|
+
|
|
65
|
+
### Step 2: Module Structure Mapping
|
|
66
|
+
|
|
67
|
+
Read directory structure 2-3 levels deep. Identify organizational pattern:
|
|
68
|
+
|
|
69
|
+
| Pattern | Indicators |
|
|
70
|
+
|---------|-----------|
|
|
71
|
+
| Feature-based | `src/features/`, `src/modules/` with self-contained subdirs |
|
|
72
|
+
| Layer-based | `controllers/`, `services/`, `repositories/` at top level |
|
|
73
|
+
| DDD | `domain/`, `application/`, `infrastructure/`, `presentation/` |
|
|
74
|
+
| Component-based (frontend) | `components/`, `pages/`, `hooks/`, `stores/` |
|
|
75
|
+
|
|
76
|
+
### Step 3: Public API Surface Extraction
|
|
77
|
+
|
|
78
|
+
For **backend modules**:
|
|
79
|
+
- Find controller/router files → extract endpoints (method, path, description)
|
|
80
|
+
- Find DTO/schema files → extract request/response shapes
|
|
81
|
+
- Find exported service methods → extract public operations
|
|
82
|
+
|
|
83
|
+
For **frontend modules**:
|
|
84
|
+
- Find page/route components → extract routes
|
|
85
|
+
- Find exported components → extract component library
|
|
86
|
+
- Find custom hooks → extract hook API
|
|
87
|
+
- Find store/state definitions → extract state shape
|
|
88
|
+
|
|
89
|
+
For **shared/lib modules**:
|
|
90
|
+
- Find index.ts exports → extract public API
|
|
91
|
+
- Find type definitions → extract key types and interfaces
|
|
92
|
+
|
|
93
|
+
### Step 4: Pattern Detection
|
|
94
|
+
|
|
95
|
+
Identify patterns actually used in the code:
|
|
96
|
+
|
|
97
|
+
| Pattern | What to look for |
|
|
98
|
+
|---------|----------------|
|
|
99
|
+
| Dependency Injection | `@Injectable`, `@Module`, constructor params, containers |
|
|
100
|
+
| Repository pattern | `Repository`, `findById`, `save`, `delete` methods |
|
|
101
|
+
| CQRS | `Command`, `Query`, `Handler`, `Bus` classes |
|
|
102
|
+
| Event-driven | `EventEmitter`, `@OnEvent`, message queue clients |
|
|
103
|
+
| React Query / SWR | `useQuery`, `useMutation` hook patterns |
|
|
104
|
+
| MobX | `@observable`, `@action`, `makeAutoObservable` |
|
|
105
|
+
| Redux | `createSlice`, `createAsyncThunk`, `useSelector` |
|
|
106
|
+
|
|
107
|
+
### Step 5: Dependencies & Integrations
|
|
108
|
+
|
|
109
|
+
From imports and config files, identify:
|
|
110
|
+
- External services (databases, queues, caches, auth providers)
|
|
111
|
+
- Internal cross-module dependencies
|
|
112
|
+
- Third-party libraries central to the module's function
|
|
113
|
+
|
|
114
|
+
### Step 6: Write Analysis Artifact
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
# Module Analysis: <Module Name>
|
|
118
|
+
|
|
119
|
+
## Purpose
|
|
120
|
+
<1-2 paragraphs: what this module does, what problem it solves>
|
|
121
|
+
|
|
122
|
+
## Architecture Pattern
|
|
123
|
+
<pattern name + brief explanation>
|
|
124
|
+
|
|
125
|
+
## Structure
|
|
126
|
+
<annotated directory tree, 2-3 levels>
|
|
127
|
+
|
|
128
|
+
## Public API
|
|
129
|
+
|
|
130
|
+
### Endpoints (backend) / Routes (frontend)
|
|
131
|
+
| Method | Path | Description |
|
|
132
|
+
|--------|------|-------------|
|
|
133
|
+
|
|
134
|
+
### Key Exports / Components / Services
|
|
135
|
+
| Name | Type | Purpose |
|
|
136
|
+
|------|------|---------|
|
|
137
|
+
|
|
138
|
+
### Data Models / DTOs
|
|
139
|
+
| Model | Fields (key ones) | Used in |
|
|
140
|
+
|-------|------------------|---------|
|
|
141
|
+
|
|
142
|
+
## Key Patterns Used
|
|
143
|
+
<list with brief explanation of each>
|
|
144
|
+
|
|
145
|
+
## External Dependencies
|
|
146
|
+
| Dependency | Purpose |
|
|
147
|
+
|-----------|---------|
|
|
148
|
+
|
|
149
|
+
## Internal Dependencies
|
|
150
|
+
<which other modules this module depends on>
|
|
151
|
+
|
|
152
|
+
## Configuration
|
|
153
|
+
<env vars, config files, feature flags used>
|
|
154
|
+
|
|
155
|
+
## Error Handling
|
|
156
|
+
<how errors are handled and propagated>
|
|
157
|
+
|
|
158
|
+
## Testing
|
|
159
|
+
<test coverage summary, test patterns used>
|
|
160
|
+
|
|
161
|
+
## Notes & Observations
|
|
162
|
+
<unusual patterns, technical debt, important constraints>
|
|
163
|
+
```
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autodoc-architect
|
|
3
|
+
description: >
|
|
4
|
+
Phase 3 subagent for autodoc-orchestrator. Synthesizes all module analyses
|
|
5
|
+
into a system-level architecture description: layers, data flows, integration
|
|
6
|
+
points, and cross-cutting concerns.
|
|
7
|
+
Use when: dispatched by autodoc-orchestrator Phase 3.
|
|
8
|
+
NOT for: direct user invocation.
|
|
9
|
+
version: 1.0.0
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# autodoc-architect
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Derive the overall system architecture from individual module analyses.
|
|
17
|
+
Produce a unified architecture document that captures how the modules
|
|
18
|
+
fit together — something no single module analyst can see alone.
|
|
19
|
+
|
|
20
|
+
## Iron Laws
|
|
21
|
+
|
|
22
|
+
| # | Law |
|
|
23
|
+
|---|-----|
|
|
24
|
+
| 1 | Read ALL module analysis artifacts — no module may be ignored |
|
|
25
|
+
| 2 | Derive architecture from evidence in the analyses — no assumptions |
|
|
26
|
+
| 3 | Map ALL cross-module interactions found in the analyses |
|
|
27
|
+
| 4 | Identify the system's architectural style (what it IS, not what it should be) |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Input Contract
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
project_map: ".metaproject/jobs/<job>/artifacts/project-map.md"
|
|
35
|
+
module_analyses: ".metaproject/jobs/<job>/artifacts/analysis/*.md" # read all
|
|
36
|
+
JOB_DIR: "<job directory>"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Output Contract
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
status: "DONE" | "DONE_WITH_CONCERNS"
|
|
43
|
+
summary: "<3-5 sentences: architectural style, key patterns, integration topology>"
|
|
44
|
+
concerns: ["<concern if any>"]
|
|
45
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/architecture.md"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Workflow
|
|
51
|
+
|
|
52
|
+
### Step 1: Read All Artifacts
|
|
53
|
+
|
|
54
|
+
Read `project-map.md` and every `analysis/*.md` file. Build mental model of:
|
|
55
|
+
- How many modules exist and what each does
|
|
56
|
+
- What each module exposes to others
|
|
57
|
+
- What each module depends on
|
|
58
|
+
|
|
59
|
+
### Step 2: Identify Architectural Style
|
|
60
|
+
|
|
61
|
+
From the evidence across all modules, determine the dominant architectural style:
|
|
62
|
+
|
|
63
|
+
| Style | Indicators |
|
|
64
|
+
|-------|-----------|
|
|
65
|
+
| Monolith | Single deployable, shared DB, shared process |
|
|
66
|
+
| Modular monolith | Single deployable, feature-separated modules, isolated data |
|
|
67
|
+
| Microservices | Multiple deployables, service discovery, message bus |
|
|
68
|
+
| BFF (Backend for Frontend) | Dedicated API layer per client type |
|
|
69
|
+
| Layered (N-tier) | Strict Presentation → Business → Data layers |
|
|
70
|
+
| Event-driven | Async messaging, event sourcing, CQRS |
|
|
71
|
+
| Hexagonal / Clean | Ports+adapters, domain-centric, dependency inversion |
|
|
72
|
+
|
|
73
|
+
### Step 3: Map System Topology
|
|
74
|
+
|
|
75
|
+
Draw the integration map:
|
|
76
|
+
- Which modules communicate with which
|
|
77
|
+
- What protocol (HTTP, gRPC, message queue, shared DB, direct import)
|
|
78
|
+
- Direction of dependency (A → B means A depends on B)
|
|
79
|
+
|
|
80
|
+
### Step 4: Identify Cross-Cutting Concerns
|
|
81
|
+
|
|
82
|
+
From evidence across all module analyses:
|
|
83
|
+
- **Authentication**: where it's enforced, what mechanism
|
|
84
|
+
- **Authorization**: RBAC, ABAC, policy-based
|
|
85
|
+
- **Logging**: centralized or per-module, log aggregation
|
|
86
|
+
- **Error handling**: global handlers, error propagation patterns
|
|
87
|
+
- **Caching**: what's cached, where, eviction strategy
|
|
88
|
+
- **Configuration**: how config is injected (env, config service, remote)
|
|
89
|
+
- **Observability**: metrics, tracing, health checks
|
|
90
|
+
|
|
91
|
+
### Step 5: Data Flow Mapping
|
|
92
|
+
|
|
93
|
+
Trace the main user journeys through the system:
|
|
94
|
+
- Request ingress (API gateway, load balancer, CDN)
|
|
95
|
+
- Processing path (which modules touch the request)
|
|
96
|
+
- Data persistence (which databases/caches are involved)
|
|
97
|
+
- Response path
|
|
98
|
+
|
|
99
|
+
### Step 6: Write Architecture Artifact
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# System Architecture: <Project Name>
|
|
103
|
+
|
|
104
|
+
## Architectural Style
|
|
105
|
+
<name + 1-paragraph description of why this style is evident in the codebase>
|
|
106
|
+
|
|
107
|
+
## System Overview
|
|
108
|
+
|
|
109
|
+
### Components
|
|
110
|
+
| Component | Type | Technology | Responsibility |
|
|
111
|
+
|-----------|------|-----------|---------------|
|
|
112
|
+
|
|
113
|
+
### Integration Map
|
|
114
|
+
<textual description of connections>
|
|
115
|
+
Module A → Module B (HTTP/REST)
|
|
116
|
+
Module B → Module C (async, RabbitMQ)
|
|
117
|
+
Module B → PostgreSQL (Prisma ORM)
|
|
118
|
+
|
|
119
|
+
## Layer Breakdown
|
|
120
|
+
|
|
121
|
+
### <Layer Name>
|
|
122
|
+
<what lives here, what it's responsible for, what it depends on>
|
|
123
|
+
|
|
124
|
+
## Cross-Cutting Concerns
|
|
125
|
+
|
|
126
|
+
### Authentication & Authorization
|
|
127
|
+
<mechanism, enforcement points>
|
|
128
|
+
|
|
129
|
+
### Error Handling
|
|
130
|
+
<strategy, propagation, user-facing errors>
|
|
131
|
+
|
|
132
|
+
### Logging & Observability
|
|
133
|
+
<approach, tools, what's instrumented>
|
|
134
|
+
|
|
135
|
+
### Configuration
|
|
136
|
+
<how config reaches services>
|
|
137
|
+
|
|
138
|
+
### Caching
|
|
139
|
+
<what, where, how>
|
|
140
|
+
|
|
141
|
+
## Data Flow
|
|
142
|
+
|
|
143
|
+
### Main Request Path
|
|
144
|
+
1. <step>
|
|
145
|
+
2. <step>
|
|
146
|
+
...
|
|
147
|
+
|
|
148
|
+
### Key Data Stores
|
|
149
|
+
| Store | Type | Used By | Data |
|
|
150
|
+
|-------|------|---------|------|
|
|
151
|
+
|
|
152
|
+
## Deployment Architecture
|
|
153
|
+
<what deploys where, containerization, orchestration>
|
|
154
|
+
|
|
155
|
+
## Key Architectural Decisions
|
|
156
|
+
| Decision | Choice | Evidence from Code |
|
|
157
|
+
|----------|--------|--------------------|
|
|
158
|
+
|
|
159
|
+
## Technical Observations
|
|
160
|
+
<technical debt, inconsistencies between modules, areas of improvement>
|
|
161
|
+
```
|