@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,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interview
|
|
3
|
+
description: "Critical requirements interviewer: asks targeted clarifying questions one-by-one before expensive operations. Identifies uncertainty zones, provides answer options, adapts follow-ups based on responses. Can trigger mini-brainstorm on ambiguous points. Use before implementation, design, or migration to gather precise context."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/interview"
|
|
6
|
+
- "Interview"
|
|
7
|
+
- "Clarify requirements"
|
|
8
|
+
- "Ask questions first"
|
|
9
|
+
- "What do you need to know"
|
|
10
|
+
- "Gather requirements"
|
|
11
|
+
metadata:
|
|
12
|
+
author: "MrCipherSmith"
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
category: "analysis"
|
|
15
|
+
license: "MIT"
|
|
16
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Interview
|
|
20
|
+
|
|
21
|
+
Critical requirements interviewer that asks targeted clarifying questions before expensive operations begin. The goal is to eliminate ambiguity and gather precise context so downstream skills (job-orchestrator, feature-dev, prd-creator) produce accurate results.
|
|
22
|
+
|
|
23
|
+
## Input Contract
|
|
24
|
+
|
|
25
|
+
When called by another skill (orchestrated mode):
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"goal": "what needs to be done (issue title, feature description, task)",
|
|
29
|
+
"context": "collected context from context-collector or another agent",
|
|
30
|
+
"domain": "implement | review | design | migrate | custom",
|
|
31
|
+
"caller": "job-orchestrator | feature-dev | user | prd-creator",
|
|
32
|
+
"known_facts": ["already known facts or decisions"],
|
|
33
|
+
"max_questions": null
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
When called standalone: input is the user's free-text description.
|
|
38
|
+
|
|
39
|
+
## Output Contract
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"decisions": [
|
|
44
|
+
{"question": "...", "answer": "...", "impact": "high | medium"}
|
|
45
|
+
],
|
|
46
|
+
"constraints": ["identified constraints"],
|
|
47
|
+
"assumptions": ["confirmed assumptions"],
|
|
48
|
+
"risks": ["identified risks"],
|
|
49
|
+
"refined_goal": "refined, unambiguous goal statement"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### Phase 1: Context Acquisition
|
|
56
|
+
|
|
57
|
+
**Orchestrated mode** (called with context):
|
|
58
|
+
- Parse the input contract
|
|
59
|
+
- Proceed directly to Phase 2
|
|
60
|
+
|
|
61
|
+
**Standalone mode** (called by user):
|
|
62
|
+
1. Ask the user: "What are you trying to accomplish?"
|
|
63
|
+
2. If in a project directory, launch `context-collector` as sub-agent to gather codebase context
|
|
64
|
+
3. Wait for context, then proceed to Phase 2
|
|
65
|
+
|
|
66
|
+
### Phase 2: Uncertainty Analysis
|
|
67
|
+
|
|
68
|
+
Analyze goal + context to identify "uncertainty zones" — areas where:
|
|
69
|
+
- Multiple valid approaches exist
|
|
70
|
+
- Requirements are ambiguous or contradictory
|
|
71
|
+
- Technical constraints are unclear
|
|
72
|
+
- Scope boundaries are undefined
|
|
73
|
+
- Dependencies or impacts are unknown
|
|
74
|
+
|
|
75
|
+
Each uncertainty zone becomes a potential question. Skip questions where the answer is already clear from context or known_facts.
|
|
76
|
+
|
|
77
|
+
Determine question count dynamically:
|
|
78
|
+
- Simple task with good context → 2-3 questions
|
|
79
|
+
- Complex task with sparse context → 5-7 questions
|
|
80
|
+
- Stop when remaining uncertainty is low enough to proceed confidently
|
|
81
|
+
|
|
82
|
+
### Phase 3: Interactive Interview
|
|
83
|
+
|
|
84
|
+
Ask questions **one at a time**, each with answer options where possible:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
❓ Question 1/~N: [Topic — e.g., "Authentication approach"]
|
|
88
|
+
|
|
89
|
+
[Brief context why this matters for the task]
|
|
90
|
+
|
|
91
|
+
A) Option one (brief explanation)
|
|
92
|
+
B) Option two (brief explanation)
|
|
93
|
+
C) Option three
|
|
94
|
+
D) Need more context — tell me more
|
|
95
|
+
|
|
96
|
+
> answer with letter or free text
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Adaptation rules:**
|
|
100
|
+
- If user picks an option → record decision, move to next question
|
|
101
|
+
- If user answers in free text → extract the decision, confirm understanding
|
|
102
|
+
- If user picks "Need more context" (D) → provide deeper explanation or trigger a mini `/brainstorm --quick` on this specific point, then re-ask
|
|
103
|
+
- If user says "skip" or "don't care" → record as assumption with medium confidence, move on
|
|
104
|
+
- Adjust remaining questions based on answers (some questions become irrelevant after certain decisions)
|
|
105
|
+
|
|
106
|
+
### Phase 4: Synthesis
|
|
107
|
+
|
|
108
|
+
After all questions are answered:
|
|
109
|
+
|
|
110
|
+
1. Compile the output contract:
|
|
111
|
+
- **decisions**: all Q&A pairs with impact level
|
|
112
|
+
- **constraints**: technical and business constraints identified
|
|
113
|
+
- **assumptions**: things assumed true but not explicitly confirmed
|
|
114
|
+
- **risks**: potential issues surfaced during interview
|
|
115
|
+
- **refined_goal**: clear, unambiguous restatement of the goal
|
|
116
|
+
|
|
117
|
+
2. Present summary to user:
|
|
118
|
+
```markdown
|
|
119
|
+
## Interview Summary
|
|
120
|
+
|
|
121
|
+
### Goal (refined)
|
|
122
|
+
[Clear statement]
|
|
123
|
+
|
|
124
|
+
### Key Decisions
|
|
125
|
+
1. [Decision] — impact: high
|
|
126
|
+
2. [Decision] — impact: medium
|
|
127
|
+
|
|
128
|
+
### Constraints
|
|
129
|
+
- [Constraint]
|
|
130
|
+
|
|
131
|
+
### Assumptions (please verify)
|
|
132
|
+
- [Assumption]
|
|
133
|
+
|
|
134
|
+
### Risks
|
|
135
|
+
- [Risk]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
3. Ask: "Does this look right? Anything to correct before we proceed?"
|
|
139
|
+
|
|
140
|
+
### Phase 5: Handoff
|
|
141
|
+
|
|
142
|
+
Return the output contract to the calling skill, or if standalone — ask what the user wants to do next:
|
|
143
|
+
- "Start implementing? I can run `/feature-dev`"
|
|
144
|
+
- "Create a PRD? I can run `/prd-creator`"
|
|
145
|
+
- "Need more brainstorming? Try `/brainstorm`"
|
|
146
|
+
|
|
147
|
+
## Question Design Principles
|
|
148
|
+
|
|
149
|
+
Good interview questions are:
|
|
150
|
+
- **Specific**: "Should auth use JWT or session cookies?" not "How should auth work?"
|
|
151
|
+
- **Impactful**: the answer meaningfully changes the implementation
|
|
152
|
+
- **Non-obvious**: don't ask things derivable from the codebase
|
|
153
|
+
- **Ordered by dependency**: ask foundational questions first (they may make later questions unnecessary)
|
|
154
|
+
|
|
155
|
+
Provide answer options when:
|
|
156
|
+
- There are 2-4 clear alternatives
|
|
157
|
+
- The user might not know all options available
|
|
158
|
+
- You want to speed up the interview
|
|
159
|
+
|
|
160
|
+
Skip options when:
|
|
161
|
+
- The question requires a free-text answer (e.g., "What's the deadline?")
|
|
162
|
+
- The space of answers is too large
|
|
163
|
+
|
|
164
|
+
## Integration with Other Skills
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
job-orchestrator → context-collector → interview → plan → execute
|
|
168
|
+
feature-dev → interview (Phase 1) → design → implement
|
|
169
|
+
prd-creator → interview → requirements document
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The interview skill is designed to be composable — any skill that needs user input before proceeding can call it.
|
|
173
|
+
|
|
174
|
+
## Rules
|
|
175
|
+
|
|
176
|
+
- NEVER ask more than 7 questions (keep it focused)
|
|
177
|
+
- NEVER ask questions whose answers are already in the provided context
|
|
178
|
+
- ALWAYS provide answer options when 2-4 clear alternatives exist
|
|
179
|
+
- ALWAYS adapt subsequent questions based on previous answers
|
|
180
|
+
- If the user seems impatient or says "just do it" — stop interviewing, document remaining unknowns as assumptions, and proceed
|
|
181
|
+
- One question at a time — never dump all questions at once
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interview
|
|
3
|
+
description: "Critical requirements interviewer: asks targeted clarifying questions one-by-one before expensive operations. Identifies uncertainty zones, provides answer options, adapts follow-ups based on responses. Can trigger mini-brainstorm on ambiguous points. Use before implementation, design, or migration to gather precise context."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/interview"
|
|
6
|
+
- "Interview"
|
|
7
|
+
- "Clarify requirements"
|
|
8
|
+
- "Ask questions first"
|
|
9
|
+
- "What do you need to know"
|
|
10
|
+
- "Gather requirements"
|
|
11
|
+
metadata:
|
|
12
|
+
author: "MrCipherSmith"
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
category: "analysis"
|
|
15
|
+
license: "MIT"
|
|
16
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Interview
|
|
20
|
+
|
|
21
|
+
Critical requirements interviewer that asks targeted clarifying questions before expensive operations begin. The goal is to eliminate ambiguity and gather precise context so downstream skills (job-orchestrator, feature-dev, prd-creator) produce accurate results.
|
|
22
|
+
|
|
23
|
+
## Input Contract
|
|
24
|
+
|
|
25
|
+
When called by another skill (orchestrated mode):
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"goal": "what needs to be done (issue title, feature description, task)",
|
|
29
|
+
"context": "collected context from context-collector or another agent",
|
|
30
|
+
"domain": "implement | review | design | migrate | custom",
|
|
31
|
+
"caller": "job-orchestrator | feature-dev | user | prd-creator",
|
|
32
|
+
"known_facts": ["already known facts or decisions"],
|
|
33
|
+
"max_questions": null
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
When called standalone: input is the user's free-text description.
|
|
38
|
+
|
|
39
|
+
## Output Contract
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"decisions": [
|
|
44
|
+
{"question": "...", "answer": "...", "impact": "high | medium"}
|
|
45
|
+
],
|
|
46
|
+
"constraints": ["identified constraints"],
|
|
47
|
+
"assumptions": ["confirmed assumptions"],
|
|
48
|
+
"risks": ["identified risks"],
|
|
49
|
+
"refined_goal": "refined, unambiguous goal statement"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### Phase 1: Context Acquisition
|
|
56
|
+
|
|
57
|
+
**Orchestrated mode** (called with context):
|
|
58
|
+
- Parse the input contract
|
|
59
|
+
- Proceed directly to Phase 2
|
|
60
|
+
|
|
61
|
+
**Standalone mode** (called by user):
|
|
62
|
+
1. Ask the user: "What are you trying to accomplish?"
|
|
63
|
+
2. If in a project directory, launch `context-collector` as sub-agent to gather codebase context
|
|
64
|
+
3. Wait for context, then proceed to Phase 2
|
|
65
|
+
|
|
66
|
+
### Phase 2: Uncertainty Analysis
|
|
67
|
+
|
|
68
|
+
Analyze goal + context to identify "uncertainty zones" — areas where:
|
|
69
|
+
- Multiple valid approaches exist
|
|
70
|
+
- Requirements are ambiguous or contradictory
|
|
71
|
+
- Technical constraints are unclear
|
|
72
|
+
- Scope boundaries are undefined
|
|
73
|
+
- Dependencies or impacts are unknown
|
|
74
|
+
|
|
75
|
+
Each uncertainty zone becomes a potential question. Skip questions where the answer is already clear from context or known_facts.
|
|
76
|
+
|
|
77
|
+
Determine question count dynamically:
|
|
78
|
+
- Simple task with good context → 2-3 questions
|
|
79
|
+
- Complex task with sparse context → 5-7 questions
|
|
80
|
+
- Stop when remaining uncertainty is low enough to proceed confidently
|
|
81
|
+
|
|
82
|
+
### Phase 3: Interactive Interview
|
|
83
|
+
|
|
84
|
+
Ask questions **one at a time**, each with answer options where possible:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
❓ Question 1/~N: [Topic — e.g., "Authentication approach"]
|
|
88
|
+
|
|
89
|
+
[Brief context why this matters for the task]
|
|
90
|
+
|
|
91
|
+
A) Option one (brief explanation)
|
|
92
|
+
B) Option two (brief explanation)
|
|
93
|
+
C) Option three
|
|
94
|
+
D) Need more context — tell me more
|
|
95
|
+
|
|
96
|
+
> answer with letter or free text
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Adaptation rules:**
|
|
100
|
+
- If user picks an option → record decision, move to next question
|
|
101
|
+
- If user answers in free text → extract the decision, confirm understanding
|
|
102
|
+
- If user picks "Need more context" (D) → provide deeper explanation or trigger a mini `/brainstorm --quick` on this specific point, then re-ask
|
|
103
|
+
- If user says "skip" or "don't care" → record as assumption with medium confidence, move on
|
|
104
|
+
- Adjust remaining questions based on answers (some questions become irrelevant after certain decisions)
|
|
105
|
+
|
|
106
|
+
### Phase 4: Synthesis
|
|
107
|
+
|
|
108
|
+
After all questions are answered:
|
|
109
|
+
|
|
110
|
+
1. Compile the output contract:
|
|
111
|
+
- **decisions**: all Q&A pairs with impact level
|
|
112
|
+
- **constraints**: technical and business constraints identified
|
|
113
|
+
- **assumptions**: things assumed true but not explicitly confirmed
|
|
114
|
+
- **risks**: potential issues surfaced during interview
|
|
115
|
+
- **refined_goal**: clear, unambiguous restatement of the goal
|
|
116
|
+
|
|
117
|
+
2. Present summary to user:
|
|
118
|
+
```markdown
|
|
119
|
+
## Interview Summary
|
|
120
|
+
|
|
121
|
+
### Goal (refined)
|
|
122
|
+
[Clear statement]
|
|
123
|
+
|
|
124
|
+
### Key Decisions
|
|
125
|
+
1. [Decision] — impact: high
|
|
126
|
+
2. [Decision] — impact: medium
|
|
127
|
+
|
|
128
|
+
### Constraints
|
|
129
|
+
- [Constraint]
|
|
130
|
+
|
|
131
|
+
### Assumptions (please verify)
|
|
132
|
+
- [Assumption]
|
|
133
|
+
|
|
134
|
+
### Risks
|
|
135
|
+
- [Risk]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
3. Ask: "Does this look right? Anything to correct before we proceed?"
|
|
139
|
+
|
|
140
|
+
### Phase 5: Handoff
|
|
141
|
+
|
|
142
|
+
Return the output contract to the calling skill, or if standalone — ask what the user wants to do next:
|
|
143
|
+
- "Start implementing? I can run `/feature-dev`"
|
|
144
|
+
- "Create a PRD? I can run `/prd-creator`"
|
|
145
|
+
- "Need more brainstorming? Try `/brainstorm`"
|
|
146
|
+
|
|
147
|
+
## Question Design Principles
|
|
148
|
+
|
|
149
|
+
Good interview questions are:
|
|
150
|
+
- **Specific**: "Should auth use JWT or session cookies?" not "How should auth work?"
|
|
151
|
+
- **Impactful**: the answer meaningfully changes the implementation
|
|
152
|
+
- **Non-obvious**: don't ask things derivable from the codebase
|
|
153
|
+
- **Ordered by dependency**: ask foundational questions first (they may make later questions unnecessary)
|
|
154
|
+
|
|
155
|
+
Provide answer options when:
|
|
156
|
+
- There are 2-4 clear alternatives
|
|
157
|
+
- The user might not know all options available
|
|
158
|
+
- You want to speed up the interview
|
|
159
|
+
|
|
160
|
+
Skip options when:
|
|
161
|
+
- The question requires a free-text answer (e.g., "What's the deadline?")
|
|
162
|
+
- The space of answers is too large
|
|
163
|
+
|
|
164
|
+
## Integration with Other Skills
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
job-orchestrator → context-collector → interview → plan → execute
|
|
168
|
+
feature-dev → interview (Phase 1) → design → implement
|
|
169
|
+
prd-creator → interview → requirements document
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The interview skill is designed to be composable — any skill that needs user input before proceeding can call it.
|
|
173
|
+
|
|
174
|
+
## Rules
|
|
175
|
+
|
|
176
|
+
- NEVER ask more than 7 questions (keep it focused)
|
|
177
|
+
- NEVER ask questions whose answers are already in the provided context
|
|
178
|
+
- ALWAYS provide answer options when 2-4 clear alternatives exist
|
|
179
|
+
- ALWAYS adapt subsequent questions based on previous answers
|
|
180
|
+
- If the user seems impatient or says "just do it" — stop interviewing, document remaining unknowns as assumptions, and proceed
|
|
181
|
+
- One question at a time — never dump all questions at once
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interview
|
|
3
|
+
description: "Use before implementation, design, or migration when requirements are unclear and targeted clarifying questions are needed to gather precise context."
|
|
4
|
+
triggers:
|
|
5
|
+
- "/interview"
|
|
6
|
+
- "Interview"
|
|
7
|
+
- "Clarify requirements"
|
|
8
|
+
- "Ask questions first"
|
|
9
|
+
- "What do you need to know"
|
|
10
|
+
- "Gather requirements"
|
|
11
|
+
metadata:
|
|
12
|
+
author: "MrCipherSmith"
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
category: "analysis"
|
|
15
|
+
license: "MIT"
|
|
16
|
+
compatibility: "cursor,codex,zed,opencode,claude"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<SUBAGENT-STOP>
|
|
20
|
+
If you were dispatched as a subagent to execute a specific task, skip this skill entirely.
|
|
21
|
+
This skill is for orchestrators and interactive session-level routing only.
|
|
22
|
+
Proceed directly with your assigned task.
|
|
23
|
+
</SUBAGENT-STOP>
|
|
24
|
+
|
|
25
|
+
# Interview
|
|
26
|
+
|
|
27
|
+
Critical requirements interviewer that asks targeted clarifying questions before expensive operations begin. The goal is to eliminate ambiguity and gather precise context so downstream skills (job-orchestrator, feature-dev, prd-creator) produce accurate results.
|
|
28
|
+
|
|
29
|
+
## Input Contract
|
|
30
|
+
|
|
31
|
+
When called by another skill (orchestrated mode):
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"goal": "what needs to be done (issue title, feature description, task)",
|
|
35
|
+
"context": "collected context from context-collector or another agent",
|
|
36
|
+
"domain": "implement | review | design | migrate | custom",
|
|
37
|
+
"caller": "job-orchestrator | feature-dev | user | prd-creator",
|
|
38
|
+
"known_facts": ["already known facts or decisions"],
|
|
39
|
+
"max_questions": null
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
When called standalone: input is the user's free-text description.
|
|
44
|
+
|
|
45
|
+
## Output Contract
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"decisions": [
|
|
50
|
+
{"question": "...", "answer": "...", "impact": "high | medium"}
|
|
51
|
+
],
|
|
52
|
+
"constraints": ["identified constraints"],
|
|
53
|
+
"assumptions": ["confirmed assumptions"],
|
|
54
|
+
"risks": ["identified risks"],
|
|
55
|
+
"refined_goal": "refined, unambiguous goal statement"
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Workflow
|
|
60
|
+
|
|
61
|
+
### Phase 1: Context Acquisition
|
|
62
|
+
|
|
63
|
+
**Orchestrated mode** (called with context):
|
|
64
|
+
- Parse the input contract
|
|
65
|
+
- Proceed directly to Phase 2
|
|
66
|
+
|
|
67
|
+
**Standalone mode** (called by user):
|
|
68
|
+
1. Ask the user: "What are you trying to accomplish?"
|
|
69
|
+
2. If in a project directory, launch `context-collector` as sub-agent to gather codebase context
|
|
70
|
+
3. Wait for context, then proceed to Phase 2
|
|
71
|
+
|
|
72
|
+
### Phase 2: Uncertainty Analysis
|
|
73
|
+
|
|
74
|
+
Analyze goal + context to identify "uncertainty zones" — areas where:
|
|
75
|
+
- Multiple valid approaches exist
|
|
76
|
+
- Requirements are ambiguous or contradictory
|
|
77
|
+
- Technical constraints are unclear
|
|
78
|
+
- Scope boundaries are undefined
|
|
79
|
+
- Dependencies or impacts are unknown
|
|
80
|
+
|
|
81
|
+
Each uncertainty zone becomes a potential question. Skip questions where the answer is already clear from context or known_facts.
|
|
82
|
+
|
|
83
|
+
Determine question count dynamically:
|
|
84
|
+
- Simple task with good context → 2-3 questions
|
|
85
|
+
- Complex task with sparse context → 5-7 questions
|
|
86
|
+
- Stop when remaining uncertainty is low enough to proceed confidently
|
|
87
|
+
|
|
88
|
+
### Phase 3: Interactive Interview
|
|
89
|
+
|
|
90
|
+
Ask questions **one at a time**, each with answer options where possible:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
❓ Question 1/~N: [Topic — e.g., "Authentication approach"]
|
|
94
|
+
|
|
95
|
+
[Brief context why this matters for the task]
|
|
96
|
+
|
|
97
|
+
A) Option one (brief explanation)
|
|
98
|
+
B) Option two (brief explanation)
|
|
99
|
+
C) Option three
|
|
100
|
+
D) Need more context — tell me more
|
|
101
|
+
|
|
102
|
+
> answer with letter or free text
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Adaptation rules:**
|
|
106
|
+
- If user picks an option → record decision, move to next question
|
|
107
|
+
- If user answers in free text → extract the decision, confirm understanding
|
|
108
|
+
- If user picks "Need more context" (D) → provide deeper explanation or trigger a mini `/brainstorm --quick` on this specific point, then re-ask
|
|
109
|
+
- If user says "skip" or "don't care" → record as assumption with medium confidence, move on
|
|
110
|
+
- Adjust remaining questions based on answers (some questions become irrelevant after certain decisions)
|
|
111
|
+
|
|
112
|
+
### Phase 4: Synthesis
|
|
113
|
+
|
|
114
|
+
After all questions are answered:
|
|
115
|
+
|
|
116
|
+
1. Compile the output contract:
|
|
117
|
+
- **decisions**: all Q&A pairs with impact level
|
|
118
|
+
- **constraints**: technical and business constraints identified
|
|
119
|
+
- **assumptions**: things assumed true but not explicitly confirmed
|
|
120
|
+
- **risks**: potential issues surfaced during interview
|
|
121
|
+
- **refined_goal**: clear, unambiguous restatement of the goal
|
|
122
|
+
|
|
123
|
+
2. Present summary to user:
|
|
124
|
+
```markdown
|
|
125
|
+
## Interview Summary
|
|
126
|
+
|
|
127
|
+
### Goal (refined)
|
|
128
|
+
[Clear statement]
|
|
129
|
+
|
|
130
|
+
### Key Decisions
|
|
131
|
+
1. [Decision] — impact: high
|
|
132
|
+
2. [Decision] — impact: medium
|
|
133
|
+
|
|
134
|
+
### Constraints
|
|
135
|
+
- [Constraint]
|
|
136
|
+
|
|
137
|
+
### Assumptions (please verify)
|
|
138
|
+
- [Assumption]
|
|
139
|
+
|
|
140
|
+
### Risks
|
|
141
|
+
- [Risk]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
3. Ask: "Does this look right? Anything to correct before we proceed?"
|
|
145
|
+
|
|
146
|
+
### Phase 5: Handoff
|
|
147
|
+
|
|
148
|
+
Return the output contract to the calling skill, or if standalone — ask what the user wants to do next:
|
|
149
|
+
- "Start implementing? I can run `/feature-dev`"
|
|
150
|
+
- "Create a PRD? I can run `/prd-creator`"
|
|
151
|
+
- "Need more brainstorming? Try `/brainstorm`"
|
|
152
|
+
|
|
153
|
+
## Question Design Principles
|
|
154
|
+
|
|
155
|
+
Good interview questions are:
|
|
156
|
+
- **Specific**: "Should auth use JWT or session cookies?" not "How should auth work?"
|
|
157
|
+
- **Impactful**: the answer meaningfully changes the implementation
|
|
158
|
+
- **Non-obvious**: don't ask things derivable from the codebase
|
|
159
|
+
- **Ordered by dependency**: ask foundational questions first (they may make later questions unnecessary)
|
|
160
|
+
|
|
161
|
+
Provide answer options when:
|
|
162
|
+
- There are 2-4 clear alternatives
|
|
163
|
+
- The user might not know all options available
|
|
164
|
+
- You want to speed up the interview
|
|
165
|
+
|
|
166
|
+
Skip options when:
|
|
167
|
+
- The question requires a free-text answer (e.g., "What's the deadline?")
|
|
168
|
+
- The space of answers is too large
|
|
169
|
+
|
|
170
|
+
## Integration with Other Skills
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
job-orchestrator → context-collector → interview → plan → execute
|
|
174
|
+
feature-dev → interview (Phase 1) → design → implement
|
|
175
|
+
prd-creator → interview → requirements document
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
The interview skill is designed to be composable — any skill that needs user input before proceeding can call it.
|
|
179
|
+
|
|
180
|
+
## Rules
|
|
181
|
+
|
|
182
|
+
- NEVER ask more than 7 questions (keep it focused)
|
|
183
|
+
- NEVER ask questions whose answers are already in the provided context
|
|
184
|
+
- ALWAYS provide answer options when 2-4 clear alternatives exist
|
|
185
|
+
- ALWAYS adapt subsequent questions based on previous answers
|
|
186
|
+
- If the user seems impatient or says "just do it" — stop interviewing, document remaining unknowns as assumptions, and proceed
|
|
187
|
+
- One question at a time — never dump all questions at once
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Critical requirements interviewer — one question at a time with options, structured output
|
|
3
|
+
allowed-tools: Read(*), Glob(*), Bash(git log:*), Bash(git branch:*), Bash(git status:*)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Your task
|
|
7
|
+
|
|
8
|
+
You are a critical requirements interviewer. Your job is to ask the minimum number of focused questions to gather precise context before a complex task.
|
|
9
|
+
|
|
10
|
+
**Input:** $ARGUMENTS
|
|
11
|
+
Parse as JSON if provided by a calling skill, or treat as plain topic if entered by user.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
### Step 1 — Establish context
|
|
16
|
+
|
|
17
|
+
**If called by another skill** (JSON input with `topic`, `goal`, `context`):
|
|
18
|
+
- Parse the provided context
|
|
19
|
+
- Identify what's unknown or ambiguous for the stated `goal`
|
|
20
|
+
- Skip to Step 3
|
|
21
|
+
|
|
22
|
+
**If called directly by user** (plain text topic):
|
|
23
|
+
- If no topic given, ask: "What are we working on?"
|
|
24
|
+
- Gather basic codebase context:
|
|
25
|
+
```
|
|
26
|
+
git log --oneline -10
|
|
27
|
+
ls src/ 2>/dev/null || ls
|
|
28
|
+
```
|
|
29
|
+
- If significant ambiguity, run the `context-collector` skill first
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Step 2 — Determine question scope
|
|
34
|
+
|
|
35
|
+
Based on topic + goal, decide:
|
|
36
|
+
- How many questions are truly needed? (aim for 2-6, max 8)
|
|
37
|
+
- Which questions would most change the approach?
|
|
38
|
+
- Which questions are already answered by context? → **skip those**
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### Step 3 — Interview loop
|
|
43
|
+
|
|
44
|
+
Ask questions **one at a time**. For each question:
|
|
45
|
+
|
|
46
|
+
1. Ask the question clearly
|
|
47
|
+
2. Provide options (A/B/C/D) when the answer space is enumerable
|
|
48
|
+
3. Wait for user response
|
|
49
|
+
4. If answer reveals more unknowns, add follow-up
|
|
50
|
+
5. If answer is clear and complete, proceed to next question
|
|
51
|
+
|
|
52
|
+
Example format:
|
|
53
|
+
```
|
|
54
|
+
**Question 2 of 4:** What is the primary constraint for this feature?
|
|
55
|
+
|
|
56
|
+
A) Delivery speed (ship in < 1 week)
|
|
57
|
+
B) Performance (must handle 10k+ req/s)
|
|
58
|
+
C) Correctness (zero tolerance for bugs)
|
|
59
|
+
D) Other (describe)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Step 4 — Confirm and output
|
|
65
|
+
|
|
66
|
+
After all questions, output:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## Gathered Context
|
|
70
|
+
|
|
71
|
+
**Topic:** ...
|
|
72
|
+
**Goal:** ...
|
|
73
|
+
|
|
74
|
+
**Answers:**
|
|
75
|
+
1. [Question] → [Answer] (confidence: certain/assumption)
|
|
76
|
+
2. ...
|
|
77
|
+
|
|
78
|
+
**Summary:**
|
|
79
|
+
[2-3 sentences synthesizing the key constraints and requirements]
|
|
80
|
+
|
|
81
|
+
**Blockers:** [any unresolved critical unknowns, or "none"]
|
|
82
|
+
**Ready to proceed:** yes/no
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Then ask: "Does this look correct? Should I proceed?"
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### Rules
|
|
90
|
+
- One question at a time — never list multiple questions
|
|
91
|
+
- Skip questions the context already answers
|
|
92
|
+
- Be critical — focus on questions that change the approach
|
|
93
|
+
- Provide options when the answer space has < 5 clear choices
|
|
94
|
+
- Max 8 questions total
|