@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,188 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "job-orchestrator-input-contract",
|
|
4
|
+
"title": "Job Orchestrator Input Contract",
|
|
5
|
+
"description": "Defines all input parameters required to run job-orchestrator. This is the top-level entry point for the AI implementation pipeline.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["issue", "codebase", "automation"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"issue": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"description": "GitHub issue identification. Provide EITHER url OR repo+number.",
|
|
12
|
+
"properties": {
|
|
13
|
+
"url": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "uri",
|
|
16
|
+
"description": "Full GitHub issue URL",
|
|
17
|
+
"examples": ["https://github.com/<ORG>/<PROJECT>/issues/4141"]
|
|
18
|
+
},
|
|
19
|
+
"repo": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[\\w.-]+/[\\w.-]+$",
|
|
22
|
+
"description": "GitHub owner/repo (alternative to url)",
|
|
23
|
+
"examples": ["<ORG>/<PROJECT>"]
|
|
24
|
+
},
|
|
25
|
+
"number": {
|
|
26
|
+
"type": "integer",
|
|
27
|
+
"minimum": 1,
|
|
28
|
+
"description": "Issue number (alternative to url)",
|
|
29
|
+
"examples": [4141]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"oneOf": [
|
|
33
|
+
{ "required": ["url"] },
|
|
34
|
+
{ "required": ["repo", "number"] }
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"codebase": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"description": "Codebase configuration for implementation.",
|
|
40
|
+
"required": ["path"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"path": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Absolute path to the repository root",
|
|
45
|
+
"examples": ["/Users/dev/<PROJECT>"]
|
|
46
|
+
},
|
|
47
|
+
"role": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"enum": ["frontend", "backend", "shared"],
|
|
50
|
+
"default": "frontend",
|
|
51
|
+
"description": "Role of this codebase"
|
|
52
|
+
},
|
|
53
|
+
"base_branch": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"default": "develop-2",
|
|
56
|
+
"description": "Base branch to create feature branch from"
|
|
57
|
+
},
|
|
58
|
+
"additional_codebases": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"required": ["path", "role"],
|
|
63
|
+
"properties": {
|
|
64
|
+
"path": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Absolute path"
|
|
67
|
+
},
|
|
68
|
+
"role": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"enum": ["frontend", "backend", "shared"]
|
|
71
|
+
},
|
|
72
|
+
"branch": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"description": "Additional codebases for issue-analyzer cross-repo analysis (read-only, implementation happens in primary codebase)"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"automation": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"description": "Controls for the orchestration pipeline.",
|
|
84
|
+
"required": ["skip_confirmation"],
|
|
85
|
+
"properties": {
|
|
86
|
+
"skip_confirmation": {
|
|
87
|
+
"type": "boolean",
|
|
88
|
+
"const": true,
|
|
89
|
+
"description": "Must be true — sub-agents run without confirmation"
|
|
90
|
+
},
|
|
91
|
+
"max_review_iterations": {
|
|
92
|
+
"type": "integer",
|
|
93
|
+
"minimum": 1,
|
|
94
|
+
"maximum": 3,
|
|
95
|
+
"default": 2,
|
|
96
|
+
"description": "Max review → fix iterations"
|
|
97
|
+
},
|
|
98
|
+
"auto_create_pr": {
|
|
99
|
+
"type": "boolean",
|
|
100
|
+
"default": false,
|
|
101
|
+
"description": "Auto-create draft PR without asking user (default: ask)"
|
|
102
|
+
},
|
|
103
|
+
"reviewers": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"items": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"enum": [
|
|
108
|
+
"code-ai-review",
|
|
109
|
+
"code-boss-review",
|
|
110
|
+
"code-style-review",
|
|
111
|
+
"code-mobx-store-review"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"default": ["code-ai-review", "code-boss-review", "code-style-review"],
|
|
115
|
+
"description": "Review skills to always run"
|
|
116
|
+
},
|
|
117
|
+
"conditional_reviewers": {
|
|
118
|
+
"type": "object",
|
|
119
|
+
"additionalProperties": {
|
|
120
|
+
"type": "string"
|
|
121
|
+
},
|
|
122
|
+
"default": {
|
|
123
|
+
"code-mobx-store-review": "*.store.ts"
|
|
124
|
+
},
|
|
125
|
+
"description": "Review skills to run conditionally: {skill_name: file_glob_pattern}"
|
|
126
|
+
},
|
|
127
|
+
"run_final_checks": {
|
|
128
|
+
"type": "boolean",
|
|
129
|
+
"default": true,
|
|
130
|
+
"description": "Run lint/type-check/test after review loop"
|
|
131
|
+
},
|
|
132
|
+
"analyzer_settings": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"description": "Settings passed to issue-analyzer sub-agent",
|
|
135
|
+
"properties": {
|
|
136
|
+
"max_tasks": {
|
|
137
|
+
"type": "integer",
|
|
138
|
+
"minimum": 1,
|
|
139
|
+
"maximum": 10,
|
|
140
|
+
"default": 7
|
|
141
|
+
},
|
|
142
|
+
"search_depth": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"enum": ["shallow", "focused", "deep"],
|
|
145
|
+
"default": "focused"
|
|
146
|
+
},
|
|
147
|
+
"include_context": {
|
|
148
|
+
"type": "boolean",
|
|
149
|
+
"default": true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"implementer_settings": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"description": "Settings passed to task-implementer sub-agents",
|
|
156
|
+
"properties": {
|
|
157
|
+
"auto_commit": {
|
|
158
|
+
"type": "boolean",
|
|
159
|
+
"default": true
|
|
160
|
+
},
|
|
161
|
+
"verify_lint": {
|
|
162
|
+
"type": "boolean",
|
|
163
|
+
"default": true
|
|
164
|
+
},
|
|
165
|
+
"verify_types": {
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"default": true
|
|
168
|
+
},
|
|
169
|
+
"verify_tests": {
|
|
170
|
+
"type": "boolean",
|
|
171
|
+
"default": true
|
|
172
|
+
},
|
|
173
|
+
"verify_stories": {
|
|
174
|
+
"type": "boolean",
|
|
175
|
+
"default": false
|
|
176
|
+
},
|
|
177
|
+
"max_self_fix_attempts": {
|
|
178
|
+
"type": "integer",
|
|
179
|
+
"minimum": 1,
|
|
180
|
+
"maximum": 5,
|
|
181
|
+
"default": 3
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Job Orchestrator — Quick Reference Checklist
|
|
2
|
+
|
|
3
|
+
> **Purpose:** Condensed execution checklist for the orchestrator agent.
|
|
4
|
+
> This file is a quick reference — the full specification is in `SKILL.md`.
|
|
5
|
+
> The orchestrator is NOT a sub-agent; it IS the primary agent executing this checklist.
|
|
6
|
+
> When in doubt, refer to `SKILL.md` for complete details.
|
|
7
|
+
|
|
8
|
+
## Data Flow
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
[User] → "implement issue #4141" / "analyze issue" / other request
|
|
12
|
+
↓
|
|
13
|
+
[Orchestrator] → loads SKILL.md, follows this checklist
|
|
14
|
+
↓
|
|
15
|
+
Phase 0: Context collection, intent determination, plan building
|
|
16
|
+
↓
|
|
17
|
+
Phase 1: [job-documenter sub-agent] → initialize .metaproject/jobs/<job-name>/ + README + plan
|
|
18
|
+
↓
|
|
19
|
+
Phase 2: Execute plan dynamically:
|
|
20
|
+
↓
|
|
21
|
+
├─ [issue-analyzer sub-agent] → JSON analysis result
|
|
22
|
+
├─ git worktree add → feature branch (NEVER git checkout -b)
|
|
23
|
+
├─ FOR EACH wave → [wave-executor sub-agent] → compact WAVE_DONE summary
|
|
24
|
+
├─ Load review skills → findings
|
|
25
|
+
├─ IF findings → [task-implementer sub-agent (fix)] → re-review (max 2x)
|
|
26
|
+
├─ npm run lint && type-check && test
|
|
27
|
+
└─ [job-documenter] → document each step result
|
|
28
|
+
↓
|
|
29
|
+
Phase 3: [job-documenter] → finalize → final report
|
|
30
|
+
↓
|
|
31
|
+
(Optional) gh pr create --draft
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Phase 0: Context Collection (Guard Clause)
|
|
35
|
+
|
|
36
|
+
Before starting, determine intent and collect context:
|
|
37
|
+
|
|
38
|
+
1. **Determine intent** from user request:
|
|
39
|
+
- "Implement issue" → `implement` (full cycle)
|
|
40
|
+
- "Analyze issue" / "Study issue" → `analyze` (analysis first, then offer implementation)
|
|
41
|
+
- "Review" → `review` (review only)
|
|
42
|
+
- Other → `custom` (dynamic plan)
|
|
43
|
+
|
|
44
|
+
2. **Project directory** → ALWAYS ask, never assume:
|
|
45
|
+
```
|
|
46
|
+
Which project directory should I use?
|
|
47
|
+
○ Type the full absolute path to your project
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
3. **Base branch** → ask to confirm (no default).
|
|
51
|
+
|
|
52
|
+
4. **Job name** → auto-generate + confirm:
|
|
53
|
+
- `issue-<N>--<slug>` for implement
|
|
54
|
+
- `analysis--issue-<N>` for analyze
|
|
55
|
+
- `review--<slug>` for review
|
|
56
|
+
- `task--<slug>` for custom
|
|
57
|
+
|
|
58
|
+
5. **Additional questions** by intent:
|
|
59
|
+
- `implement`: Create PR? (default: yes)
|
|
60
|
+
- `analyze`: nothing (ask about implementation after analysis)
|
|
61
|
+
|
|
62
|
+
6. **Show summary and ask for confirmation** before starting.
|
|
63
|
+
|
|
64
|
+
## Phase 1: Initialize Documentation
|
|
65
|
+
|
|
66
|
+
Dispatch `job-documenter` sub-agent with `ACTION: init`.
|
|
67
|
+
|
|
68
|
+
Write initial `state.json` to `.metaproject/jobs/<job-name>/state.json` after job docs are initialized.
|
|
69
|
+
|
|
70
|
+
Verify `DOCUMENTER_RESULT.status == "success"`.
|
|
71
|
+
|
|
72
|
+
## Phase 2: Execute Plan
|
|
73
|
+
|
|
74
|
+
Execute plan steps sequentially. After each step:
|
|
75
|
+
1. Collect result
|
|
76
|
+
2. Send to `job-documenter` (ACTION: add-document)
|
|
77
|
+
3. Update README (ACTION: update-readme)
|
|
78
|
+
4. Update `state.json` with step completion
|
|
79
|
+
5. Mark step as completed
|
|
80
|
+
|
|
81
|
+
### Step: ANALYZE
|
|
82
|
+
|
|
83
|
+
Read `skills/issue-analyzer/orchestrator-prompt.md`, fill in parameters:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
ISSUE_URL: <url> (or ISSUE_REPO + ISSUE_NUMBER)
|
|
87
|
+
CODEBASE_PATHS: [{path, role, branch}]
|
|
88
|
+
MAX_TASKS: 7 (default)
|
|
89
|
+
SEARCH_DEPTH: focused (default)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Launch Task(issue-analyzer). Parse JSON result — extract tasks and dependency_order.
|
|
93
|
+
|
|
94
|
+
For `analyze` intent: show result, ask "Implement? (yes/no)".
|
|
95
|
+
- yes → extend plan: prepare → implement → review → fix → checks → report → pr
|
|
96
|
+
- no → Phase 3
|
|
97
|
+
|
|
98
|
+
### Step: PREPARE — Create Feature Branch
|
|
99
|
+
|
|
100
|
+
> **CRITICAL**: Use ONLY `git worktree add`. NEVER `git checkout -b`.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
git -C <project_dir> fetch origin <base_branch>
|
|
104
|
+
git -C <project_dir> worktree add ../<branch-slug> -b feature/<branch-slug> origin/<base_branch>
|
|
105
|
+
npm install --prefix <worktree_path>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
All subsequent operations ONLY in worktree directory.
|
|
109
|
+
|
|
110
|
+
### Step: IMPLEMENT — Wave Isolation
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
WAVES = topological_sort_into_waves(dependency_order, task_dependencies)
|
|
114
|
+
|
|
115
|
+
FOR wave_index, wave_tasks in enumerate(WAVES):
|
|
116
|
+
1. Dispatch single Agent("wave-executor") with all tasks in this wave
|
|
117
|
+
(see skills/job-orchestrator/SKILL.md step 2.4.1 for full prompt template)
|
|
118
|
+
2. Receive compact WAVE_RESULT:
|
|
119
|
+
STATUS: WAVE_DONE | WAVE_PARTIAL | WAVE_FAILED
|
|
120
|
+
Commits: [hash msg, ...]
|
|
121
|
+
Tests: N passed, M failed
|
|
122
|
+
Tasks: task-1 ✅, task-2 ✅
|
|
123
|
+
3. Decision:
|
|
124
|
+
WAVE_DONE → continue to next wave
|
|
125
|
+
WAVE_PARTIAL → log concerns (read result files if needed), continue
|
|
126
|
+
WAVE_FAILED → STOP, read result files for failed tasks, ask user
|
|
127
|
+
|
|
128
|
+
Do NOT dispatch task-implementers directly — always via wave-executor.
|
|
129
|
+
Context budget rule: orchestrator only accumulates compact wave summaries,
|
|
130
|
+
never raw task-implementer output.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Document result in job-documenter.
|
|
134
|
+
|
|
135
|
+
### Step: REVIEW — Run Reviewers
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
REVIEWERS = ["code-ai-review", "code-boss-review", "code-style-review"]
|
|
139
|
+
IF *.store.ts modified: add "code-mobx-store-review"
|
|
140
|
+
|
|
141
|
+
FOR reviewer in REVIEWERS:
|
|
142
|
+
Load skill → execute → collect findings as JSON
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Document result.
|
|
146
|
+
|
|
147
|
+
### Step: FIX — Review-Fix Loop (max 2 iterations)
|
|
148
|
+
|
|
149
|
+
If CRITICAL or WARNING findings exist:
|
|
150
|
+
1. Group by file
|
|
151
|
+
2. Launch task-implementer (task_type: "fix") with review findings JSON
|
|
152
|
+
3. Re-run reviewers
|
|
153
|
+
4. Recount findings
|
|
154
|
+
|
|
155
|
+
### Step: CHECKS — Final Verification
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npm run lint
|
|
159
|
+
npm run type-check
|
|
160
|
+
npm test
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Step: REPORT — Generate Final Report
|
|
164
|
+
|
|
165
|
+
Markdown report per template in SKILL.md (section 2.9).
|
|
166
|
+
|
|
167
|
+
### Step: PR — Propose Draft PR (optional)
|
|
168
|
+
|
|
169
|
+
Dispatch `pr-issue-documenter` to generate PR description.
|
|
170
|
+
Present to user, ask confirmation, then:
|
|
171
|
+
```bash
|
|
172
|
+
gh pr create --title "<title>" --body "..." --base <base> --head <head> --draft
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Phase 3: Completion
|
|
176
|
+
|
|
177
|
+
1. Dispatch `job-documenter` with `ACTION: finalize`
|
|
178
|
+
2. Update `state.json` with `phase: "COMPLETION"`
|
|
179
|
+
3. Tell user what was accomplished + documentation path + PR URL (if created)
|
package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "job-orchestrator-output-contract",
|
|
4
|
+
"title": "Job Orchestrator Output Contract",
|
|
5
|
+
"description": "Defines the structure of the final report and PR proposal produced by job-orchestrator.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["format", "structure"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"format": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "markdown",
|
|
12
|
+
"description": "Output is in Markdown format (not Gherkin — this is the top-level human-readable report)"
|
|
13
|
+
},
|
|
14
|
+
"structure": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"description": "Structure of the implementation report",
|
|
17
|
+
"required": ["sections"],
|
|
18
|
+
"properties": {
|
|
19
|
+
"sections": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": [
|
|
24
|
+
"Summary",
|
|
25
|
+
"Tasks",
|
|
26
|
+
"Review Results",
|
|
27
|
+
"Unresolved Issues",
|
|
28
|
+
"Final Checks",
|
|
29
|
+
"Changes Summary",
|
|
30
|
+
"PR Proposal"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"description": "Sections in the report"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"report_fields": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"description": "Key fields in the report for programmatic access",
|
|
40
|
+
"properties": {
|
|
41
|
+
"summary": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"issue_number": { "type": "integer" },
|
|
45
|
+
"issue_title": { "type": "string" },
|
|
46
|
+
"issue_type": { "type": "string" },
|
|
47
|
+
"branch_name": { "type": "string" },
|
|
48
|
+
"tasks_completed": { "type": "integer" },
|
|
49
|
+
"tasks_total": { "type": "integer" },
|
|
50
|
+
"review_iterations": { "type": "integer" },
|
|
51
|
+
"final_status": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": ["READY FOR PR", "HAS WARNINGS", "HAS ISSUES", "FAILED"]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"task_results": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"task_id": { "type": "string" },
|
|
63
|
+
"task_name": { "type": "string" },
|
|
64
|
+
"status": { "type": "string", "enum": ["success", "partial", "failed"] },
|
|
65
|
+
"files": { "type": "array", "items": { "type": "string" } },
|
|
66
|
+
"commits": { "type": "array", "items": { "type": "string" } }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"review_results": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"properties": {
|
|
75
|
+
"reviewer": { "type": "string" },
|
|
76
|
+
"critical": { "type": "integer" },
|
|
77
|
+
"warning": { "type": "integer" },
|
|
78
|
+
"info": { "type": "integer" }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"final_checks": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"properties": {
|
|
85
|
+
"lint": { "type": "string" },
|
|
86
|
+
"type_check": { "type": "string" },
|
|
87
|
+
"tests": { "type": "string" }
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"pr_data": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"properties": {
|
|
93
|
+
"title": { "type": "string" },
|
|
94
|
+
"base": { "type": "string" },
|
|
95
|
+
"head": { "type": "string" },
|
|
96
|
+
"draft": { "type": "boolean" },
|
|
97
|
+
"body": { "type": "string" }
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://keryx.local/schemas/job-orchestrator/state.schema.json",
|
|
4
|
+
"title": "Job Orchestrator State",
|
|
5
|
+
"description": "Schema for .metaproject/jobs/<job-name>/state.json — persisted orchestrator state for job resumption.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["phase", "intent", "job_name", "context", "plan"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"phase": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": ["CONTEXT", "PLAN", "EXECUTION", "COMPLETION"],
|
|
13
|
+
"description": "Current orchestrator phase"
|
|
14
|
+
},
|
|
15
|
+
"intent": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["implement", "analyze", "review", "custom"]
|
|
18
|
+
},
|
|
19
|
+
"create_pr": { "type": "boolean" },
|
|
20
|
+
"job_name": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
21
|
+
"context": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"issue": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"number": { "type": "integer" },
|
|
28
|
+
"title": { "type": "string" },
|
|
29
|
+
"url": { "type": "string" },
|
|
30
|
+
"type": { "type": "string" }
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"project_dir": { "type": "string" },
|
|
34
|
+
"base_branch": { "type": "string" }
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"branch": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"properties": {
|
|
40
|
+
"name": { "type": "string" },
|
|
41
|
+
"worktree_path": { "type": "string" },
|
|
42
|
+
"merge_base": { "type": "string" },
|
|
43
|
+
"package_manager": { "type": "string", "enum": ["npm", "bun", "yarn", "pnpm", "python", "go", "unknown"] },
|
|
44
|
+
"run_command": { "type": "string", "description": "Command prefix for running scripts (e.g., 'npm run', 'bun run', 'yarn')" }
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"interview": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "Results from the interview skill (Phase 0.3)",
|
|
50
|
+
"properties": {
|
|
51
|
+
"decisions": { "type": "array", "items": { "type": "object" } },
|
|
52
|
+
"constraints": { "type": "array", "items": { "type": "string" } },
|
|
53
|
+
"assumptions": { "type": "array", "items": { "type": "string" } },
|
|
54
|
+
"risks": { "type": "array", "items": { "type": "string" } },
|
|
55
|
+
"refined_goal": { "type": "string" }
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"plan": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": ["steps"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"steps": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"required": ["id", "type", "agent", "status"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"id": { "type": "string" },
|
|
69
|
+
"type": { "type": "string" },
|
|
70
|
+
"agent": { "type": "string" },
|
|
71
|
+
"depends": { "type": "array", "items": { "type": "string" } },
|
|
72
|
+
"status": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": ["pending", "in_progress", "completed", "skipped", "failed"]
|
|
75
|
+
},
|
|
76
|
+
"conditional": { "type": "boolean" }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"current_step": { "type": "string" }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"analysis": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"total_tasks": { "type": "integer" },
|
|
87
|
+
"tasks": { "type": "array" },
|
|
88
|
+
"dependency_order": { "type": "array", "items": { "type": "string" } }
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"context_doc": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"path": { "type": "string" },
|
|
95
|
+
"version": { "type": "string" },
|
|
96
|
+
"status": { "type": "string", "enum": ["collected", "updated", "not-collected"] }
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"implementation": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"properties": {
|
|
102
|
+
"task_results": { "type": "object" },
|
|
103
|
+
"all_commits": { "type": "array", "items": { "type": "string" } },
|
|
104
|
+
"all_files": { "type": "array", "items": { "type": "string" } }
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"review": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"properties": {
|
|
110
|
+
"iteration": { "type": "integer" },
|
|
111
|
+
"findings": { "type": "array" },
|
|
112
|
+
"needs_fix": { "type": "boolean" },
|
|
113
|
+
"unresolved": { "type": "array" }
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"final_checks": {
|
|
117
|
+
"type": "object",
|
|
118
|
+
"properties": {
|
|
119
|
+
"lint": { "type": "string" },
|
|
120
|
+
"type_check": { "type": "string" },
|
|
121
|
+
"tests": { "type": "string" }
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"documentation": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"properties": {
|
|
127
|
+
"job_path": { "type": "string" },
|
|
128
|
+
"documents_created": { "type": "array", "items": { "type": "string" } }
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"metrics": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"description": "Timing and token usage per step",
|
|
134
|
+
"properties": {
|
|
135
|
+
"steps": {
|
|
136
|
+
"type": "array",
|
|
137
|
+
"items": {
|
|
138
|
+
"type": "object",
|
|
139
|
+
"properties": {
|
|
140
|
+
"step_id": { "type": "string" },
|
|
141
|
+
"started_at": { "type": "string", "format": "date-time" },
|
|
142
|
+
"completed_at": { "type": "string", "format": "date-time" },
|
|
143
|
+
"duration_ms": { "type": "integer" },
|
|
144
|
+
"total_tokens": { "type": "integer" },
|
|
145
|
+
"status": { "type": "string" },
|
|
146
|
+
"retries": { "type": "integer" }
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"total_duration_ms": { "type": "integer" },
|
|
151
|
+
"total_tokens": { "type": "integer" }
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"jobs_root": {
|
|
155
|
+
"type": "string",
|
|
156
|
+
"description": "Resolved jobs root directory"
|
|
157
|
+
},
|
|
158
|
+
"updated_at": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"format": "date-time",
|
|
161
|
+
"description": "ISO 8601 UTC timestamp of last state update"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|