@mrciphersmith/keryx 0.2.97 → 0.2.99
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/dist/cli.js +4583 -2702
- package/dist/core.js +40 -2
- package/package.json +1 -1
- package/src/gdskills/bundled/rules/core/api-contracts.mdc +1 -0
- package/src/gdskills/bundled/rules/core/cli-interface-design.mdc +237 -0
- package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/database-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/definition-of-done.mdc +116 -0
- package/src/gdskills/bundled/rules/core/documentation-management.mdc +33 -38
- package/src/gdskills/bundled/rules/core/error-handling.mdc +1 -11
- package/src/gdskills/bundled/rules/core/execution-metrics.md +1 -2
- package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +1 -0
- package/src/gdskills/bundled/rules/core/git-concurrency.mdc +101 -0
- package/src/gdskills/bundled/rules/core/implementation-plans.mdc +23 -11
- package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +1 -0
- package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +1 -0
- package/src/gdskills/bundled/rules/core/playwright-testing.mdc +1 -0
- package/src/gdskills/bundled/rules/core/requirements-management.mdc +15 -11
- package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +29 -14
- package/src/gdskills/bundled/rules/core/shared-definitions.mdc +1 -1
- package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +9 -5
- package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +156 -23
- package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +1 -0
- package/src/gdskills/bundled/rules/core/subagent-status-protocol.md +9 -2
- package/src/gdskills/bundled/skills/core/reviewer-skill-creator/SKILL.md +42 -5
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +67 -74
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +24 -8
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +44 -31
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +4 -4
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +20 -6
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +67 -9
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +6 -6
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +45 -5
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +88 -32
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +52 -41
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +32 -1
- package/src/gdskills/bundled/skills/planning/autodoc-analyst/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-architect/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-assembler/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-orchestrator/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/autodoc-scanner/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/autodoc-writer/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +29 -4
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +17 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +17 -0
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/docpack-orchestrator/SKILL.md +32 -2
- package/src/gdskills/bundled/skills/planning/docpack-review/SKILL.md +14 -2
- package/src/gdskills/bundled/skills/planning/interview/SKILL.md +30 -8
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +33 -7
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +17 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +17 -0
- package/src/gdskills/bundled/skills/planning/planner/SKILL.md +17 -0
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +27 -10
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +16 -0
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.md +16 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +4 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +4 -0
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +4 -0
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.md +4 -0
- package/src/gdskills/bundled/skills/platform/agent-entrypoint-distiller/SKILL.md +31 -4
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +27 -3
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +29 -4
- package/src/gdskills/bundled/skills/quality/api-truth/SKILL.md +226 -0
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +25 -5
- package/src/gdskills/bundled/skills/quality/commit/SKILL.md +26 -5
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +26 -5
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +27 -4
- package/src/gdskills/bundled/skills/quality/deprecation-path/SKILL.md +268 -0
- package/src/gdskills/bundled/skills/quality/fresh-eyes/SKILL.md +190 -0
- package/src/gdskills/bundled/skills/quality/metaproject-security/SKILL.md +24 -3
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +30 -9
- package/src/gdskills/bundled/skills/quality/pr/SKILL.md +25 -5
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +27 -4
- package/src/gdskills/bundled/skills/quality/push/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/root-cause/SKILL.md +204 -0
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.md +25 -4
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +31 -5
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +32 -11
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +42 -7
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +43 -3
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +46 -4
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +46 -6
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +5 -6
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +6 -6
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +37 -3
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +38 -4
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +4 -6
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +37 -3
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +5 -7
- package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +24 -3
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +49 -64
- package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +1 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +1 -5
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +53 -9
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +11 -11
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +9 -8
- package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +33 -2
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +6 -4
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +5 -5
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +41 -3
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +2 -2
- package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +0 -49
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +0 -48
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +0 -353
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +0 -655
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +0 -434
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +0 -163
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +0 -163
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +0 -373
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +0 -374
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +0 -2190
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +0 -659
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +0 -659
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +0 -90
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +0 -90
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +0 -187
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +0 -187
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +0 -105
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +0 -105
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +0 -193
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +0 -193
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +0 -87
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +0 -87
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +0 -100
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +0 -100
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +0 -84
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +0 -84
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +0 -66
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +0 -66
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +0 -66
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +0 -66
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +0 -81
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +0 -81
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +0 -70
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +0 -70
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +0 -83
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +0 -83
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +0 -75
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +0 -75
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +0 -378
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +0 -378
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +0 -52
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +0 -52
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +0 -108
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +0 -108
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +0 -75
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +0 -75
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +0 -339
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +0 -339
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +0 -203
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +0 -203
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +0 -243
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +0 -243
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +0 -259
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +0 -259
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +0 -168
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +0 -168
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
name: docpack-review
|
|
3
3
|
description: "Use when reviewing or verifying a Metaproject requirements package under docs/requirements for completeness, versioning, README/PRD/spec consistency, schema references, roadmap updates, unsupported claims, and implementation-status accuracy. Usually dispatched by docpack-orchestrator. Not for reviewing autodoc-generated current-codebase documentation."
|
|
4
4
|
triggers:
|
|
5
|
-
- "review requirements package"
|
|
6
|
-
- "verify requirements package"
|
|
7
5
|
- "requirements package review"
|
|
6
|
+
- "verify requirements package"
|
|
8
7
|
- "check PRD spec consistency"
|
|
9
8
|
- "проверь документацию"
|
|
10
9
|
metadata:
|
|
@@ -62,6 +61,19 @@ Adversarial reviewer for Metaproject requirements packages.
|
|
|
62
61
|
- Future commands are marked future/planned.
|
|
63
62
|
- Integrations distinguish implemented, planned and optional.
|
|
64
63
|
|
|
64
|
+
## Red Flags
|
|
65
|
+
|
|
66
|
+
Stop and re-read this skill if you are thinking:
|
|
67
|
+
|
|
68
|
+
| Rationalization | Rebuttal |
|
|
69
|
+
|---|---|
|
|
70
|
+
| "The three required files are clean, so the optional ones will be too." | Iron Law 1 forbids sampling. Optional files are where unsupported claims collect precisely because nobody expects them to be read — `agent-protocol.md` and `metrics-and-validation.md` describe behavior that most often does not exist yet. |
|
|
71
|
+
| "The PRD and the specification both say this command exists, so the claim is supported." | Two documents agreeing is one author repeating themselves. The Accuracy checks resolve against the repository, not against a sibling doc. If no code backs the claim, it is a blocker. |
|
|
72
|
+
| "The fix is one line — faster to apply it than to describe it." | Iron Law 6: report findings and suggested fixes, never rewrite. A reviewer who edits has no reviewer, and the orchestrator loses the record of what was wrong. |
|
|
73
|
+
| "It is only a missing `Version` field — that is a warning, not a blocker." | Iron Law 3 names it a blocker outright, as does a missing required file (Law 2). The severity is fixed by the law, not by how small the fix looks. |
|
|
74
|
+
| "There are blockers, but the package is broadly good, so `PASS_WITH_WARNINGS`." | Any blocker means `verdict: FAIL`. Softening the verdict is how a package with a missing spec reaches implementation. |
|
|
75
|
+
| "The README status is stale but harmless, so it is an INFO note." | README status disagreeing with the PRD or spec is a contradiction, and Iron Law 5 makes contradictions blockers. Stale status is the field implementers read first. |
|
|
76
|
+
|
|
65
77
|
## Output
|
|
66
78
|
|
|
67
79
|
Return findings first:
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: interview
|
|
3
|
-
description: "Use to clarify implementation-specific ambiguities AFTER context has already been collected and the goal is known — the questions that sharpen a plan, not the ones that scope the request. This is the `implement`-intent interview job-orchestrator runs at 0.3.
|
|
3
|
+
description: "Use to clarify implementation-specific ambiguities AFTER context has already been collected and the goal is known — the questions that sharpen a plan, not the ones that scope the request. This is the `implement`-intent interview job-orchestrator runs at 0.3. NOT for: pinning down a vague request before any context is gathered — use `interviewer` instead."
|
|
4
4
|
triggers:
|
|
5
|
-
- "
|
|
6
|
-
- "
|
|
7
|
-
- "
|
|
8
|
-
- "Ask questions first"
|
|
9
|
-
- "What do you need to know"
|
|
10
|
-
- "Gather requirements"
|
|
5
|
+
- "implementation interview"
|
|
6
|
+
- "interview before implementation"
|
|
7
|
+
- "clarify implementation"
|
|
11
8
|
metadata:
|
|
12
9
|
author: "MrCipherSmith"
|
|
13
10
|
version: "1.0.0"
|
|
14
|
-
category: "
|
|
11
|
+
category: "planning"
|
|
15
12
|
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
16
13
|
license: "MIT"
|
|
17
14
|
---
|
|
@@ -185,3 +182,28 @@ The interview skill is designed to be composable — any skill that needs user i
|
|
|
185
182
|
- ALWAYS adapt subsequent questions based on previous answers
|
|
186
183
|
- If the user seems impatient or says "just do it" — stop interviewing, document remaining unknowns as assumptions, and proceed
|
|
187
184
|
- One question at a time — never dump all questions at once
|
|
185
|
+
|
|
186
|
+
## Red Flags
|
|
187
|
+
|
|
188
|
+
Stop and re-read this skill if you are thinking:
|
|
189
|
+
|
|
190
|
+
| Rationalization | Rebuttal |
|
|
191
|
+
|---|---|
|
|
192
|
+
| "They said 'sounds good', so the whole summary is approved." | A single agreeable noise is not confirmation of a list of decisions, constraints, assumptions and risks. The Assumptions block is labelled "please verify" for a reason — if the user did not address an assumption, it stays an assumption in the output contract, not a confirmed decision. |
|
|
193
|
+
| "The user said 'just do it', so I can drop the unknowns." | Impatience ends the interview; it does not resolve anything. Every remaining uncertainty zone becomes an entry in `assumptions` with the risk it carries. Dropping it hides the guess from the skill that will act on it. |
|
|
194
|
+
| "This is an interesting question, so it belongs in the interview." | The bar is impact: the answer must change the implementation. Questions derivable from the codebase, or whose answers change nothing, spend the user's limited patience on nothing and push the real question past the 7-question ceiling. |
|
|
195
|
+
| "The user picked D) Need more context, so this question is unanswered — move on." | D is a request, not an answer. Explain or run a mini `/brainstorm --quick` on that point, then re-ask. Silently skipping it leaves the highest-uncertainty question the least answered. |
|
|
196
|
+
| "The caller gave me `context`, so I should confirm what it says with the user." | Re-asking what the context already answers is the failure the Phase 2 skip rule names. Read `context` and `known_facts` first; ask only about what neither settles. |
|
|
197
|
+
| "I was dispatched as a subagent with a task, and the task is ambiguous, so I'll interview." | See the SUBAGENT-STOP block at the top: a dispatched subagent proceeds with its assigned task. There is no user on the other end of a dispatch to answer. |
|
|
198
|
+
|
|
199
|
+
## Verification
|
|
200
|
+
|
|
201
|
+
Before returning, all of these must hold:
|
|
202
|
+
|
|
203
|
+
- The output contract has all five keys — `decisions`, `constraints`, `assumptions`, `risks`, `refined_goal` — and none is a placeholder.
|
|
204
|
+
- Every entry in `decisions` carries an `impact` of `high` or `medium` and traces to a question the user actually answered.
|
|
205
|
+
- Anything the user skipped, deferred, or did not address is in `assumptions`, not in `decisions`.
|
|
206
|
+
- No more than 7 questions were asked, one at a time, and none duplicated what `context` or `known_facts` already stated.
|
|
207
|
+
- `refined_goal` is unambiguous enough that a downstream skill could act on it without re-reading the transcript.
|
|
208
|
+
- The Interview Summary was shown and the user was asked "Does this look right?" — and any correction they gave is reflected in the returned contract.
|
|
209
|
+
- In standalone mode, the handoff names the next skill rather than ending with the summary.
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: interviewer
|
|
3
|
-
description: "Use when a request is ambiguous and must be pinned down BEFORE any context is collected — the entry-point interview that turns a vague or expensive ask into a scoped brief. This is the `custom`-intent gate job-orchestrator runs at 0.1.5.
|
|
3
|
+
description: "Use when a request is ambiguous and must be pinned down BEFORE any context is collected — the entry-point interview that turns a vague or expensive ask into a scoped brief. This is the `custom`-intent gate job-orchestrator runs at 0.1.5. NOT for: clarifying implementation specifics AFTER context is already collected — use `interview` instead."
|
|
4
4
|
triggers:
|
|
5
|
+
- "ask questions"
|
|
6
|
+
- "clarify requirements"
|
|
7
|
+
- "interview"
|
|
5
8
|
- "Interview me"
|
|
6
9
|
- "Ask me questions"
|
|
7
|
-
- "Clarify requirements"
|
|
8
10
|
- "Gather requirements"
|
|
9
11
|
- "What do you need to know"
|
|
10
12
|
metadata:
|
|
11
13
|
author: "MrCipherSmith"
|
|
12
14
|
version: "1.0.0"
|
|
13
|
-
category: "
|
|
15
|
+
category: "planning"
|
|
14
16
|
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
15
17
|
license: "MIT"
|
|
16
18
|
---
|
|
@@ -43,6 +45,7 @@ context?: { — optional, provided by calling skill
|
|
|
43
45
|
```
|
|
44
46
|
answers: [{question, answer, confidence: "certain"|"assumption"|"unknown"}]
|
|
45
47
|
derived_context: string — all gathered info as one coherent block
|
|
48
|
+
summary_confidence: "certain"|"assumption"|"unknown" — weakest confidence in answers
|
|
46
49
|
ready_to_proceed: boolean
|
|
47
50
|
blockers?: string[] — unresolved critical unknowns
|
|
48
51
|
```
|
|
@@ -82,24 +85,47 @@ blockers?: string[] — unresolved critical unknowns
|
|
|
82
85
|
- **Skip if already known** — if context answers a question, don't ask it
|
|
83
86
|
- **Be critical** — focus on questions that would change the approach
|
|
84
87
|
- **Max 8 questions** — stop when enough context is gathered
|
|
85
|
-
- **Confirm before proceeding** — summarize gathered context and ask if correct
|
|
88
|
+
- **Confirm before proceeding** — summarize gathered context, state the summary's own confidence (the weakest of the answers it rests on), and ask if correct
|
|
86
89
|
|
|
87
90
|
## Question Bank by Goal Type
|
|
88
91
|
|
|
89
92
|
### For implementation goals
|
|
90
93
|
- What is the expected input/output?
|
|
91
94
|
- What are the edge cases that must be handled?
|
|
92
|
-
- Are there existing similar patterns in the codebase to follow?
|
|
93
95
|
- What is the performance/scale requirement?
|
|
94
96
|
- What should NOT be changed (constraints)?
|
|
95
97
|
|
|
96
98
|
### For review goals
|
|
97
99
|
- What specific concerns should the review focus on?
|
|
98
|
-
- Are there known existing issues to watch for?
|
|
99
100
|
- What is the acceptance criteria?
|
|
100
101
|
|
|
101
102
|
### For architecture/design goals
|
|
102
103
|
- What are the hard constraints (performance, compat, timeline)?
|
|
103
|
-
- What does success look like in 6 months?
|
|
104
104
|
- What are you most worried about?
|
|
105
105
|
- Who else is affected by this decision?
|
|
106
|
+
|
|
107
|
+
## Red Flags
|
|
108
|
+
|
|
109
|
+
Stop and re-read this skill if you are thinking:
|
|
110
|
+
|
|
111
|
+
| Rationalization | Rebuttal |
|
|
112
|
+
|---|---|
|
|
113
|
+
| "These three questions are related, so I'll ask them in one message to save time." | One question at a time is the rule, and it is not politeness. A batch gets one answer to the easiest item and silence on the rest, which you then record as if it had been answered. |
|
|
114
|
+
| "The answer was vague, but I understood the gist, so `ready_to_proceed: true`." | A gist is an assumption. Either ask the follow-up, or record the item in `blockers` with `confidence: "assumption"` and leave `ready_to_proceed` false. Proceeding on a gist is exactly the wasted work this gate exists to prevent. |
|
|
115
|
+
| "They said 'sure, that sounds about right', so that is a yes and `ready_to_proceed: true`." | A hedge is not a refusal and it is not approval. This is not the vague-answer case above — you understood the answer perfectly, and it committed the user to nothing. Name the hedge back ("that is a 'probably' — is it a yes?") and ask the question that forces one. If no commitment comes, the item is recorded as `confidence: "assumption"`, never as confirmation. (That a hedged agreement is not approval is adapted (MIT) from [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills); naming the hedge back and the confidence enum are ours.) |
|
|
116
|
+
| "I inferred the answer from the codebase, so I can mark it `certain`." | `certain` means the user said it. An inference is `assumption`, even a good one — the confidence field is the only signal downstream skills have about which parts of `derived_context` are load-bearing guesses. |
|
|
117
|
+
| "I've hit the 8-question limit and still don't know, so I'll pick the likely answer." | The limit is a stop rule, not a licence to invent. Remaining unknowns go into `blockers`, `ready_to_proceed` goes false, and the caller decides. |
|
|
118
|
+
| "Context-collector already ran, so anything still missing must not matter." | Collected context answers what the codebase knows, not what the user intends. Scope, priority and what must NOT change are never in the codebase, and those are the answers that change the approach. |
|
|
119
|
+
| "I was dispatched as a subagent with a task, and the task is unclear, so I'll interview." | See the SUBAGENT-STOP block at the top: a dispatched subagent proceeds with its assigned task. Interviewing from inside a dispatch asks questions nobody is there to answer. |
|
|
120
|
+
|
|
121
|
+
## Verification
|
|
122
|
+
|
|
123
|
+
Before returning, all of these must hold:
|
|
124
|
+
|
|
125
|
+
- Every entry in `answers` carries a question, an answer, and a `confidence` value from the enum — no blank or invented confidences.
|
|
126
|
+
- No question was asked that the provided context already answered, and no two questions were sent in one message.
|
|
127
|
+
- At most 8 questions were asked.
|
|
128
|
+
- Every `assumption` or `unknown` was either resolved with a follow-up or is listed in `blockers`.
|
|
129
|
+
- `summary_confidence` equals the weakest confidence in `answers`, and was stated when the summary was read back — a user approving a summary built on assumptions was told that is what they were approving.
|
|
130
|
+
- `ready_to_proceed` is `false` whenever `blockers` is non-empty, and `true` only after the user confirmed the summarized context.
|
|
131
|
+
- `derived_context` reads as one coherent block a downstream skill can act on, and states which of its claims are assumptions.
|
|
@@ -5,6 +5,10 @@ description: >
|
|
|
5
5
|
application architecture patterns. Produces constraints that PRD must follow.
|
|
6
6
|
Use when: dispatched by gproject-orchestrator Phase 3.
|
|
7
7
|
NOT for: direct user invocation.
|
|
8
|
+
triggers:
|
|
9
|
+
- "research patterns"
|
|
10
|
+
- "architecture patterns"
|
|
11
|
+
- "best practices"
|
|
8
12
|
metadata:
|
|
9
13
|
version: 1.0.0
|
|
10
14
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -29,6 +33,18 @@ and architectural decisions for each technology. The output becomes a set of
|
|
|
29
33
|
| 5 | Output MUST be structured as checkable constraints, not prose advice |
|
|
30
34
|
| 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
|
|
31
35
|
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
Stop and re-read this skill if you are thinking:
|
|
39
|
+
|
|
40
|
+
| Rationalization | Rebuttal |
|
|
41
|
+
|---|---|
|
|
42
|
+
| "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
|
|
43
|
+
| "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
|
|
44
|
+
| "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
|
|
45
|
+
| "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
|
|
46
|
+
| "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
|
|
47
|
+
|
|
32
48
|
---
|
|
33
49
|
|
|
34
50
|
## Input Contract
|
|
@@ -5,6 +5,10 @@ description: >
|
|
|
5
5
|
application architecture patterns. Produces constraints that PRD must follow.
|
|
6
6
|
Use when: dispatched by gproject-orchestrator Phase 3.
|
|
7
7
|
NOT for: direct user invocation.
|
|
8
|
+
triggers:
|
|
9
|
+
- "research patterns"
|
|
10
|
+
- "architecture patterns"
|
|
11
|
+
- "best practices"
|
|
8
12
|
metadata:
|
|
9
13
|
version: 1.0.0
|
|
10
14
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -29,6 +33,18 @@ and architectural decisions for each technology. The output becomes a set of
|
|
|
29
33
|
| 5 | Output MUST be structured as checkable constraints, not prose advice |
|
|
30
34
|
| 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
|
|
31
35
|
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
Stop and re-read this skill if you are thinking:
|
|
39
|
+
|
|
40
|
+
| Rationalization | Rebuttal |
|
|
41
|
+
|---|---|
|
|
42
|
+
| "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
|
|
43
|
+
| "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
|
|
44
|
+
| "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
|
|
45
|
+
| "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
|
|
46
|
+
| "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
|
|
47
|
+
|
|
32
48
|
---
|
|
33
49
|
|
|
34
50
|
## Input Contract
|
|
@@ -5,6 +5,10 @@ description: >
|
|
|
5
5
|
application architecture patterns. Produces constraints that PRD must follow.
|
|
6
6
|
Use when: dispatched by gproject-orchestrator Phase 3.
|
|
7
7
|
NOT for: direct user invocation.
|
|
8
|
+
triggers:
|
|
9
|
+
- "research patterns"
|
|
10
|
+
- "architecture patterns"
|
|
11
|
+
- "best practices"
|
|
8
12
|
metadata:
|
|
9
13
|
version: 1.0.0
|
|
10
14
|
---
|
|
@@ -28,6 +32,18 @@ and architectural decisions for each technology. The output becomes a set of
|
|
|
28
32
|
| 5 | Output MUST be structured as checkable constraints, not prose advice |
|
|
29
33
|
| 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
|
|
30
34
|
|
|
35
|
+
## Red Flags
|
|
36
|
+
|
|
37
|
+
Stop and re-read this skill if you are thinking:
|
|
38
|
+
|
|
39
|
+
| Rationalization | Rebuttal |
|
|
40
|
+
|---|---|
|
|
41
|
+
| "Clean Architecture is the right answer for any serious project." | Iron Law 2: patterns must fit the chosen level. Layer boundaries and ports-and-adapters on an MVP buy indirection nobody has time to maintain, and Phase 4 is then bound by a constraint that slows every task. |
|
|
42
|
+
| "This is standard practice, so it needs no source." | Iron Law 1: every pattern cites official docs, community consensus, or established practice. Uncited standard practice is how a convention three major versions out of date becomes a binding constraint on the PRD. |
|
|
43
|
+
| "I picked the best option, so listing the alternatives is padding." | Iron Law 3: architecture decisions list the alternatives considered. Without them, the next person to question the decision has to redo the research, and usually re-decides it differently. |
|
|
44
|
+
| "The existing project does this badly, so I'll specify the correct pattern instead." | Iron Law 6: existing patterns win unless they are genuinely antipatterns — and if they are, say so explicitly with the reason. A silent replacement produces a PRD whose constraints contradict the codebase it will be implemented in. |
|
|
45
|
+
| "'Use proper error handling' captures the intent well enough." | Iron Law 5: constraints must be checkable. Phase 5 validates the PRD against these line by line; prose advice passes trivially and constrains nothing. |
|
|
46
|
+
|
|
31
47
|
---
|
|
32
48
|
|
|
33
49
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Generates roadmap, milestones, task breakdown, and dependency graph from PRD.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 6.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "create plan"
|
|
9
|
+
- "roadmap"
|
|
10
|
+
- "task breakdown"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -28,6 +32,19 @@ to feed into job-orchestrator or task-implementer.
|
|
|
28
32
|
| 5 | Each milestone MUST be independently deployable / demonstrable |
|
|
29
33
|
| 6 | Infrastructure and setup tasks come before feature tasks |
|
|
30
34
|
|
|
35
|
+
## Red Flags
|
|
36
|
+
|
|
37
|
+
Stop and re-read this skill if you are thinking:
|
|
38
|
+
|
|
39
|
+
| Rationalization | Rebuttal |
|
|
40
|
+
|---|---|
|
|
41
|
+
| "This task is obviously needed even though no user story asks for it." | Iron Law 1: every task traces to a user story. An untraceable task is either scope the PRD did not agree to, or a story the PRD is missing — both are worth surfacing, and neither is fixed by adding the task quietly. |
|
|
42
|
+
| "A single estimate is clearer to read than a three-point range." | Iron Law 3: estimates are ranges. A single number is read as a commitment, and the pessimistic case — the one that decides whether the milestone holds — was never stated. |
|
|
43
|
+
| "These two tasks depend on each other, which is just how the work is." | Iron Law 2: dependencies form a DAG. A cycle means the decomposition is wrong, not that the work is circular. Split one task at the boundary where it stops needing the other. |
|
|
44
|
+
| "Milestone 1 is already large, so this P0 story can move to Milestone 2." | Iron Law 4: P0 stories are in Milestone 1. If M1 is too large, the split goes elsewhere — deferring a P0 silently redefines what the PRD called essential. |
|
|
45
|
+
| "Milestone 2 is a coherent chunk of work, even if it demos nothing on its own." | Iron Law 5: each milestone is independently deployable or demonstrable. A milestone with no demo has no completion signal, and slips are invisible until the next one that does. |
|
|
46
|
+
| "Setup is boring — the feature tasks are what matters for the estimate." | Iron Law 6: infrastructure and setup come first, and they are estimated like anything else. Unestimated setup is the most common reason a critical path is wrong from day one. |
|
|
47
|
+
|
|
31
48
|
---
|
|
32
49
|
|
|
33
50
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Generates roadmap, milestones, task breakdown, and dependency graph from PRD.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 6.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "create plan"
|
|
9
|
+
- "roadmap"
|
|
10
|
+
- "task breakdown"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -28,6 +32,19 @@ to feed into job-orchestrator or task-implementer.
|
|
|
28
32
|
| 5 | Each milestone MUST be independently deployable / demonstrable |
|
|
29
33
|
| 6 | Infrastructure and setup tasks come before feature tasks |
|
|
30
34
|
|
|
35
|
+
## Red Flags
|
|
36
|
+
|
|
37
|
+
Stop and re-read this skill if you are thinking:
|
|
38
|
+
|
|
39
|
+
| Rationalization | Rebuttal |
|
|
40
|
+
|---|---|
|
|
41
|
+
| "This task is obviously needed even though no user story asks for it." | Iron Law 1: every task traces to a user story. An untraceable task is either scope the PRD did not agree to, or a story the PRD is missing — both are worth surfacing, and neither is fixed by adding the task quietly. |
|
|
42
|
+
| "A single estimate is clearer to read than a three-point range." | Iron Law 3: estimates are ranges. A single number is read as a commitment, and the pessimistic case — the one that decides whether the milestone holds — was never stated. |
|
|
43
|
+
| "These two tasks depend on each other, which is just how the work is." | Iron Law 2: dependencies form a DAG. A cycle means the decomposition is wrong, not that the work is circular. Split one task at the boundary where it stops needing the other. |
|
|
44
|
+
| "Milestone 1 is already large, so this P0 story can move to Milestone 2." | Iron Law 4: P0 stories are in Milestone 1. If M1 is too large, the split goes elsewhere — deferring a P0 silently redefines what the PRD called essential. |
|
|
45
|
+
| "Milestone 2 is a coherent chunk of work, even if it demos nothing on its own." | Iron Law 5: each milestone is independently deployable or demonstrable. A milestone with no demo has no completion signal, and slips are invisible until the next one that does. |
|
|
46
|
+
| "Setup is boring — the feature tasks are what matters for the estimate." | Iron Law 6: infrastructure and setup come first, and they are estimated like anything else. Unestimated setup is the most common reason a critical path is wrong from day one. |
|
|
47
|
+
|
|
31
48
|
---
|
|
32
49
|
|
|
33
50
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Generates roadmap, milestones, task breakdown, and dependency graph from PRD.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 6.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "create plan"
|
|
9
|
+
- "roadmap"
|
|
10
|
+
- "task breakdown"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
---
|
|
@@ -27,6 +31,19 @@ to feed into job-orchestrator or task-implementer.
|
|
|
27
31
|
| 5 | Each milestone MUST be independently deployable / demonstrable |
|
|
28
32
|
| 6 | Infrastructure and setup tasks come before feature tasks |
|
|
29
33
|
|
|
34
|
+
## Red Flags
|
|
35
|
+
|
|
36
|
+
Stop and re-read this skill if you are thinking:
|
|
37
|
+
|
|
38
|
+
| Rationalization | Rebuttal |
|
|
39
|
+
|---|---|
|
|
40
|
+
| "This task is obviously needed even though no user story asks for it." | Iron Law 1: every task traces to a user story. An untraceable task is either scope the PRD did not agree to, or a story the PRD is missing — both are worth surfacing, and neither is fixed by adding the task quietly. |
|
|
41
|
+
| "A single estimate is clearer to read than a three-point range." | Iron Law 3: estimates are ranges. A single number is read as a commitment, and the pessimistic case — the one that decides whether the milestone holds — was never stated. |
|
|
42
|
+
| "These two tasks depend on each other, which is just how the work is." | Iron Law 2: dependencies form a DAG. A cycle means the decomposition is wrong, not that the work is circular. Split one task at the boundary where it stops needing the other. |
|
|
43
|
+
| "Milestone 1 is already large, so this P0 story can move to Milestone 2." | Iron Law 4: P0 stories are in Milestone 1. If M1 is too large, the split goes elsewhere — deferring a P0 silently redefines what the PRD called essential. |
|
|
44
|
+
| "Milestone 2 is a coherent chunk of work, even if it demos nothing on its own." | Iron Law 5: each milestone is independently deployable or demonstrable. A milestone with no demo has no completion signal, and slips are invisible until the next one that does. |
|
|
45
|
+
| "Setup is boring — the feature tasks are what matters for the estimate." | Iron Law 6: infrastructure and setup come first, and they are estimated like anything else. Unestimated setup is the most common reason a critical path is wrong from day one. |
|
|
46
|
+
|
|
30
47
|
---
|
|
31
48
|
|
|
32
49
|
## Input Contract
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prd-creator
|
|
3
|
-
description: "Use when a vague or unstructured request needs to be converted into a formal, testable Product Requirements Document."
|
|
3
|
+
description: "Use when a vague or unstructured request needs to be converted into a formal, testable Product Requirements Document. NOT for: exploring which option to build before requirements exist (use brainstorm)."
|
|
4
4
|
triggers:
|
|
5
|
-
- "
|
|
5
|
+
- "create PRD"
|
|
6
|
+
- "product requirements"
|
|
7
|
+
- "specify feature"
|
|
6
8
|
- "Formulate requirements"
|
|
7
9
|
- "Write a product requirements document"
|
|
8
10
|
- "Draft PRD"
|
|
@@ -11,7 +13,7 @@ metadata:
|
|
|
11
13
|
author: "MrCipherSmith"
|
|
12
14
|
version: "1.0.0"
|
|
13
15
|
category: "planning"
|
|
14
|
-
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
16
|
+
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
15
17
|
license: "MIT"
|
|
16
18
|
---
|
|
17
19
|
|
|
@@ -93,6 +95,8 @@ When generating the final PRD, follow this exact structure:
|
|
|
93
95
|
```markdown
|
|
94
96
|
# PRD: {Feature Name}
|
|
95
97
|
|
|
98
|
+
Version: 0.1.0
|
|
99
|
+
|
|
96
100
|
## 1. Overview
|
|
97
101
|
Brief summary of the feature.
|
|
98
102
|
|
|
@@ -145,13 +149,11 @@ Then
|
|
|
145
149
|
## 6. Output Location & Format
|
|
146
150
|
|
|
147
151
|
**Direct Mode:**
|
|
148
|
-
- You MUST follow `rules/core/documentation-management.mdc` for the `requirements` category.
|
|
152
|
+
- You MUST follow `rules/core/requirements-package-standard.mdc` (via `rules/core/documentation-management.mdc` for the `requirements` category).
|
|
149
153
|
- Before saving, ASK the user to confirm the feature name (`<name>`) or to suggest a custom path.
|
|
150
|
-
- The default target path is: `<current_project_root>/docs/requirements/<name
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
- `en/<name>.md` (English for humans)
|
|
154
|
-
- `ai/<name>.md` (AI-readable format, heavily using Gherkin)
|
|
154
|
+
- The default target path is: `<current_project_root>/docs/requirements/<name>/prd.md` — no date-stamped folder.
|
|
155
|
+
- If the requirements package (`README.md`, `prd.md`, `specification.md`) does not exist yet, create it; otherwise update `prd.md` in place and bump its `Version` field rather than creating a parallel copy.
|
|
156
|
+
- Default to a single document in the project's documentation language (`en` unless the project states otherwise). Generate additional language variants only when the user explicitly asks for them, and keep any variants you create synchronized.
|
|
155
157
|
- You MUST NOT create a single file in the generic `docs/` root.
|
|
156
158
|
|
|
157
159
|
**Orchestrated Mode:**
|
|
@@ -184,7 +186,22 @@ Before finalizing PRD, the agent MUST verify:
|
|
|
184
186
|
|
|
185
187
|
---
|
|
186
188
|
|
|
187
|
-
## 9.
|
|
189
|
+
## 9. Red Flags
|
|
190
|
+
|
|
191
|
+
Stop and re-read this skill if you are thinking:
|
|
192
|
+
|
|
193
|
+
| Rationalization | Rebuttal |
|
|
194
|
+
|---|---|
|
|
195
|
+
| "The request is detailed, so there is nothing left to clarify." | Detail settles *what* to build; it almost never states non-goals, constraints, or how the result will be verified. Those are three of the six checklist items in Section 8, and a long request that omits them is exactly as ambiguous as a short one. |
|
|
196
|
+
| "The missing constraint follows obviously from the stack, so I'll fill it in." | "The agent MUST NOT assume missing context" is a Section 2 prohibition, not advice. An inferred constraint reads in the finished PRD exactly like a confirmed one, and nothing downstream can tell them apart. Ask, or leave the gap visible. |
|
|
197
|
+
| "The acceptance criteria describe the behaviour clearly, so Gherkin is just formatting." | Gherkin forces a concrete Given (the precondition) and a concrete Then (the observable outcome). Prose AC passes review while hiding both. Untestable criteria are a NO on the checklist and block finalization. |
|
|
198
|
+
| "Five of the six checklist items are yes, so I'll finalize and note the sixth." | Any NO stops finalization. A PRD with a noted gap ships as a finished document and the note is the first thing dropped when it is summarized downstream. |
|
|
199
|
+
| "A PRD for this feature already exists, so I'll write mine alongside it." | Section 6 requires updating `prd.md` in place and bumping its `Version`. Two PRDs for one feature means the implementer picks one, and it will not always be the newer. |
|
|
200
|
+
| "I have asked 7 questions and ambiguity remains, so I'll write the PRD as best I can." | The 7-question limit is per iteration, not per request. Return the remaining questions to the user or orchestrator and run another round. |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 10. Intended Usage
|
|
188
205
|
|
|
189
206
|
Designed for multi-agent orchestration pipelines, such as:
|
|
190
207
|
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Defines core problems, goals, non-goals, and success metrics from discovery data.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 1.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "define problem"
|
|
9
|
+
- "goals non-goals"
|
|
10
|
+
- "success metrics"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -26,6 +30,18 @@ This phase answers: "Why are we doing this?" and "How will we know we succeeded?
|
|
|
26
30
|
| 4 | NEVER introduce solutions in the problem statement |
|
|
27
31
|
| 5 | If discovery brief has low confidence areas, flag them — don't paper over |
|
|
28
32
|
|
|
33
|
+
## Red Flags
|
|
34
|
+
|
|
35
|
+
Stop and re-read this skill if you are thinking:
|
|
36
|
+
|
|
37
|
+
| Rationalization | Rebuttal |
|
|
38
|
+
|---|---|
|
|
39
|
+
| "'Improve onboarding' is a real goal — the metric can come later." | Iron Law 1: every goal carries a measurable success metric, here. Phase 5 checks each user story against a goal's metric; a goal without one passes every check by being uncheckable. |
|
|
40
|
+
| "The obvious fix is a dashboard, so the problem is 'users have no dashboard'." | Iron Law 4: no solutions in the problem statement. A problem phrased as a missing solution pre-decides the PRD, and the stack and architecture phases then optimise for the wrong thing with nothing to notice. |
|
|
41
|
+
| "Non-goals are filler — two obvious ones are enough." | Iron Law 2 sets a floor of three, and non-goals are the only part of this document that stops scope growth later. The useful ones are the plausible features you are deliberately not building, not the absurd ones. |
|
|
42
|
+
| "The discovery brief was thin on this area, but I can reason my way to the goal." | Iron Law 5: flag low-confidence areas. Reasoning over a gap produces a goal that reads as firm as the evidenced ones, and no later phase can tell them apart. |
|
|
43
|
+
| "This problem is really about the database schema, which is the true root cause." | Iron Law 3: problems are stated from the user's perspective. A technical root cause belongs in the architecture phase; stated here it becomes the thing success is measured against, instead of what the user experiences. |
|
|
44
|
+
|
|
29
45
|
---
|
|
30
46
|
|
|
31
47
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Defines core problems, goals, non-goals, and success metrics from discovery data.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 1.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "define problem"
|
|
9
|
+
- "goals non-goals"
|
|
10
|
+
- "success metrics"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -26,6 +30,18 @@ This phase answers: "Why are we doing this?" and "How will we know we succeeded?
|
|
|
26
30
|
| 4 | NEVER introduce solutions in the problem statement |
|
|
27
31
|
| 5 | If discovery brief has low confidence areas, flag them — don't paper over |
|
|
28
32
|
|
|
33
|
+
## Red Flags
|
|
34
|
+
|
|
35
|
+
Stop and re-read this skill if you are thinking:
|
|
36
|
+
|
|
37
|
+
| Rationalization | Rebuttal |
|
|
38
|
+
|---|---|
|
|
39
|
+
| "'Improve onboarding' is a real goal — the metric can come later." | Iron Law 1: every goal carries a measurable success metric, here. Phase 5 checks each user story against a goal's metric; a goal without one passes every check by being uncheckable. |
|
|
40
|
+
| "The obvious fix is a dashboard, so the problem is 'users have no dashboard'." | Iron Law 4: no solutions in the problem statement. A problem phrased as a missing solution pre-decides the PRD, and the stack and architecture phases then optimise for the wrong thing with nothing to notice. |
|
|
41
|
+
| "Non-goals are filler — two obvious ones are enough." | Iron Law 2 sets a floor of three, and non-goals are the only part of this document that stops scope growth later. The useful ones are the plausible features you are deliberately not building, not the absurd ones. |
|
|
42
|
+
| "The discovery brief was thin on this area, but I can reason my way to the goal." | Iron Law 5: flag low-confidence areas. Reasoning over a gap produces a goal that reads as firm as the evidenced ones, and no later phase can tell them apart. |
|
|
43
|
+
| "This problem is really about the database schema, which is the true root cause." | Iron Law 3: problems are stated from the user's perspective. A technical root cause belongs in the architecture phase; stated here it becomes the thing success is measured against, instead of what the user experiences. |
|
|
44
|
+
|
|
29
45
|
---
|
|
30
46
|
|
|
31
47
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Defines core problems, goals, non-goals, and success metrics from discovery data.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 1.
|
|
6
6
|
NOT for: direct user invocation.
|
|
7
|
+
triggers:
|
|
8
|
+
- "define problem"
|
|
9
|
+
- "goals non-goals"
|
|
10
|
+
- "success metrics"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
---
|
|
@@ -25,6 +29,18 @@ This phase answers: "Why are we doing this?" and "How will we know we succeeded?
|
|
|
25
29
|
| 4 | NEVER introduce solutions in the problem statement |
|
|
26
30
|
| 5 | If discovery brief has low confidence areas, flag them — don't paper over |
|
|
27
31
|
|
|
32
|
+
## Red Flags
|
|
33
|
+
|
|
34
|
+
Stop and re-read this skill if you are thinking:
|
|
35
|
+
|
|
36
|
+
| Rationalization | Rebuttal |
|
|
37
|
+
|---|---|
|
|
38
|
+
| "'Improve onboarding' is a real goal — the metric can come later." | Iron Law 1: every goal carries a measurable success metric, here. Phase 5 checks each user story against a goal's metric; a goal without one passes every check by being uncheckable. |
|
|
39
|
+
| "The obvious fix is a dashboard, so the problem is 'users have no dashboard'." | Iron Law 4: no solutions in the problem statement. A problem phrased as a missing solution pre-decides the PRD, and the stack and architecture phases then optimise for the wrong thing with nothing to notice. |
|
|
40
|
+
| "Non-goals are filler — two obvious ones are enough." | Iron Law 2 sets a floor of three, and non-goals are the only part of this document that stops scope growth later. The useful ones are the plausible features you are deliberately not building, not the absurd ones. |
|
|
41
|
+
| "The discovery brief was thin on this area, but I can reason my way to the goal." | Iron Law 5: flag low-confidence areas. Reasoning over a gap produces a goal that reads as firm as the evidenced ones, and no later phase can tell them apart. |
|
|
42
|
+
| "This problem is really about the database schema, which is the true root cause." | Iron Law 3: problems are stated from the user's perspective. A technical root cause belongs in the architecture phase; stated here it becomes the thing success is measured against, instead of what the user experiences. |
|
|
43
|
+
|
|
28
44
|
---
|
|
29
45
|
|
|
30
46
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Collects and structures initial project information from multiple sources.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 0.
|
|
6
6
|
NOT for: direct user invocation — always called through orchestrator.
|
|
7
|
+
triggers:
|
|
8
|
+
- "project discovery"
|
|
9
|
+
- "discover project"
|
|
10
|
+
- "initial analysis"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -27,6 +31,18 @@ depends on the quality of discovery.
|
|
|
27
31
|
| 4 | Web research MUST cite sources |
|
|
28
32
|
| 5 | Codebase analysis MUST reference actual file paths |
|
|
29
33
|
|
|
34
|
+
## Red Flags
|
|
35
|
+
|
|
36
|
+
Stop and re-read this skill if you are thinking:
|
|
37
|
+
|
|
38
|
+
| Rationalization | Rebuttal |
|
|
39
|
+
|---|---|
|
|
40
|
+
| "The domain is obvious from the request, so `D_domain` is safe to fill in." | Iron Law 1 and 2: an inference is an assumption and must be labelled one. `D_domain` is a decision every later phase treats as settled — an unlabelled guess here becomes a stack choice in Phase 2 nobody re-examines. |
|
|
41
|
+
| "One area has no data, but the rest is solid — I'll note the gap and return `DONE`." | Iron Law 3: a critical area with no data is `NEEDS_CONTEXT` with a concrete A/B/C/D question. A gap recorded as a note is read by the next phase as something already handled. |
|
|
42
|
+
| "I recognise this framework's layout, so I can describe the codebase without opening files." | Iron Law 5 requires actual file paths. A described layout that does not match the repository misdirects every phase that follows, and nothing downstream reads the code again to catch it. |
|
|
43
|
+
| "The best-practice claim is common knowledge, so a citation is ceremony." | Iron Law 4: web research cites sources. Uncited common knowledge is where a stale convention enters the brief and survives to the architecture document as a constraint. |
|
|
44
|
+
| "The user already explained this in the request — restating it in the brief is redundant." | The brief is the only artifact Phase 1 receives; the original request is not passed along. Anything left out of it is lost to the entire pipeline. |
|
|
45
|
+
|
|
30
46
|
---
|
|
31
47
|
|
|
32
48
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Collects and structures initial project information from multiple sources.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 0.
|
|
6
6
|
NOT for: direct user invocation — always called through orchestrator.
|
|
7
|
+
triggers:
|
|
8
|
+
- "project discovery"
|
|
9
|
+
- "discover project"
|
|
10
|
+
- "initial analysis"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
@@ -27,6 +31,18 @@ depends on the quality of discovery.
|
|
|
27
31
|
| 4 | Web research MUST cite sources |
|
|
28
32
|
| 5 | Codebase analysis MUST reference actual file paths |
|
|
29
33
|
|
|
34
|
+
## Red Flags
|
|
35
|
+
|
|
36
|
+
Stop and re-read this skill if you are thinking:
|
|
37
|
+
|
|
38
|
+
| Rationalization | Rebuttal |
|
|
39
|
+
|---|---|
|
|
40
|
+
| "The domain is obvious from the request, so `D_domain` is safe to fill in." | Iron Law 1 and 2: an inference is an assumption and must be labelled one. `D_domain` is a decision every later phase treats as settled — an unlabelled guess here becomes a stack choice in Phase 2 nobody re-examines. |
|
|
41
|
+
| "One area has no data, but the rest is solid — I'll note the gap and return `DONE`." | Iron Law 3: a critical area with no data is `NEEDS_CONTEXT` with a concrete A/B/C/D question. A gap recorded as a note is read by the next phase as something already handled. |
|
|
42
|
+
| "I recognise this framework's layout, so I can describe the codebase without opening files." | Iron Law 5 requires actual file paths. A described layout that does not match the repository misdirects every phase that follows, and nothing downstream reads the code again to catch it. |
|
|
43
|
+
| "The best-practice claim is common knowledge, so a citation is ceremony." | Iron Law 4: web research cites sources. Uncited common knowledge is where a stale convention enters the brief and survives to the architecture document as a constraint. |
|
|
44
|
+
| "The user already explained this in the request — restating it in the brief is redundant." | The brief is the only artifact Phase 1 receives; the original request is not passed along. Anything left out of it is lost to the entire pipeline. |
|
|
45
|
+
|
|
30
46
|
---
|
|
31
47
|
|
|
32
48
|
## Input Contract
|
|
@@ -4,6 +4,10 @@ description: >
|
|
|
4
4
|
Collects and structures initial project information from multiple sources.
|
|
5
5
|
Use when: dispatched by gproject-orchestrator Phase 0.
|
|
6
6
|
NOT for: direct user invocation — always called through orchestrator.
|
|
7
|
+
triggers:
|
|
8
|
+
- "project discovery"
|
|
9
|
+
- "discover project"
|
|
10
|
+
- "initial analysis"
|
|
7
11
|
metadata:
|
|
8
12
|
version: 1.0.0
|
|
9
13
|
---
|
|
@@ -26,6 +30,18 @@ depends on the quality of discovery.
|
|
|
26
30
|
| 4 | Web research MUST cite sources |
|
|
27
31
|
| 5 | Codebase analysis MUST reference actual file paths |
|
|
28
32
|
|
|
33
|
+
## Red Flags
|
|
34
|
+
|
|
35
|
+
Stop and re-read this skill if you are thinking:
|
|
36
|
+
|
|
37
|
+
| Rationalization | Rebuttal |
|
|
38
|
+
|---|---|
|
|
39
|
+
| "The domain is obvious from the request, so `D_domain` is safe to fill in." | Iron Law 1 and 2: an inference is an assumption and must be labelled one. `D_domain` is a decision every later phase treats as settled — an unlabelled guess here becomes a stack choice in Phase 2 nobody re-examines. |
|
|
40
|
+
| "One area has no data, but the rest is solid — I'll note the gap and return `DONE`." | Iron Law 3: a critical area with no data is `NEEDS_CONTEXT` with a concrete A/B/C/D question. A gap recorded as a note is read by the next phase as something already handled. |
|
|
41
|
+
| "I recognise this framework's layout, so I can describe the codebase without opening files." | Iron Law 5 requires actual file paths. A described layout that does not match the repository misdirects every phase that follows, and nothing downstream reads the code again to catch it. |
|
|
42
|
+
| "The best-practice claim is common knowledge, so a citation is ceremony." | Iron Law 4: web research cites sources. Uncited common knowledge is where a stale convention enters the brief and survives to the architecture document as a constraint. |
|
|
43
|
+
| "The user already explained this in the request — restating it in the brief is redundant." | The brief is the only artifact Phase 1 receives; the original request is not passed along. Anything left out of it is lost to the entire pipeline. |
|
|
44
|
+
|
|
29
45
|
---
|
|
30
46
|
|
|
31
47
|
## Input Contract
|
|
@@ -5,6 +5,10 @@ description: >
|
|
|
5
5
|
architecture doc, and best practices. Does NOT invent new architectural decisions.
|
|
6
6
|
Use when: dispatched by gproject-orchestrator Phase 4.
|
|
7
7
|
NOT for: direct user invocation.
|
|
8
|
+
triggers:
|
|
9
|
+
- "write spec"
|
|
10
|
+
- "technical specification"
|
|
11
|
+
- "implementation plan"
|
|
8
12
|
metadata:
|
|
9
13
|
version: 1.0.0
|
|
10
14
|
compatible_harnesses: "cursor,codex,zed,opencode"
|