@mrciphersmith/keryx 0.2.71 → 0.2.73
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 +4632 -2229
- package/package.json +2 -2
- package/src/gdskills/bundled/rules/core/code-review-learned-profile.mdc +81 -0
- package/src/gdskills/bundled/rules/core/gproject-contracts.mdc +1 -1
- package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +2 -2
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +8 -4
- package/src/gdskills/bundled/rules/core/subagent-context-construction.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +326 -20
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +320 -22
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +326 -12
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +333 -9
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +94 -6
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +154 -1098
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +102 -42
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +102 -42
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +115 -49
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +16 -7
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +944 -514
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +973 -510
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +38 -28
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +98 -66
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +27 -5
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +120 -37
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +300 -55
- package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +57 -15
- package/src/gdskills/bundled/skills/orchestration/task-implementer/orchestrator-prompt.md +50 -23
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +6 -2
- package/src/gdskills/bundled/skills/orchestration/task-implementer/task-request.template.md +18 -12
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.codex.md +168 -9
- package/src/gdskills/bundled/skills/planning/consistency-checker/SKILL.cursor.md +168 -9
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +7 -1
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +7 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +7 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +7 -1
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.codex.md +215 -9
- package/src/gdskills/bundled/skills/planning/patterns-researcher/SKILL.cursor.md +215 -9
- package/src/gdskills/bundled/skills/planning/planner/SKILL.codex.md +168 -9
- package/src/gdskills/bundled/skills/planning/planner/SKILL.cursor.md +168 -9
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.codex.md +133 -9
- package/src/gdskills/bundled/skills/planning/problem-definer/SKILL.cursor.md +133 -9
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.codex.md +145 -9
- package/src/gdskills/bundled/skills/planning/project-discovery/SKILL.cursor.md +145 -9
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.codex.md +210 -9
- package/src/gdskills/bundled/skills/planning/spec-writer/SKILL.cursor.md +210 -9
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.codex.md +161 -9
- package/src/gdskills/bundled/skills/planning/stack-advisor/SKILL.cursor.md +161 -9
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +15 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +248 -165
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +15 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +359 -19
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +299 -24
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +296 -31
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +309 -18
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +312 -17
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +29 -30
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +29 -30
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +243 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +19 -23
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +19 -23
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +17 -24
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +17 -24
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +26 -13
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +36 -17
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/shared/git-merge-base.md +1 -1
- package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +0 -48
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.claude.md +0 -46
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.claude.md +0 -94
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.claude.md +0 -45
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.claude.md +0 -40
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.claude.md +0 -45
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.claude.md +0 -42
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.claude.md +0 -48
- package/src/gdskills/bundled/skills/quality/security-audit/SKILL.claude.md +0 -40
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.claude.md +0 -30
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +0 -208
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +0 -209
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: interviewer
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when requirements are ambiguous and precise clarification is needed before proceeding with a complex task."
|
|
4
4
|
triggers:
|
|
5
5
|
- "Interview me"
|
|
6
6
|
- "Ask me questions"
|
|
@@ -15,6 +15,12 @@ metadata:
|
|
|
15
15
|
license: "MIT"
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
<SUBAGENT-STOP>
|
|
19
|
+
If you were dispatched as a subagent to execute a specific task, skip this skill entirely.
|
|
20
|
+
This skill is for orchestrators and interactive session-level routing only.
|
|
21
|
+
Proceed directly with your assigned task.
|
|
22
|
+
</SUBAGENT-STOP>
|
|
23
|
+
|
|
18
24
|
# Interviewer
|
|
19
25
|
|
|
20
26
|
## Purpose
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: interviewer
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when requirements are ambiguous and precise clarification is needed before proceeding with a complex task."
|
|
4
4
|
triggers:
|
|
5
5
|
- "Interview me"
|
|
6
6
|
- "Ask me questions"
|
|
@@ -15,6 +15,12 @@ metadata:
|
|
|
15
15
|
license: "MIT"
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
<SUBAGENT-STOP>
|
|
19
|
+
If you were dispatched as a subagent to execute a specific task, skip this skill entirely.
|
|
20
|
+
This skill is for orchestrators and interactive session-level routing only.
|
|
21
|
+
Proceed directly with your assigned task.
|
|
22
|
+
</SUBAGENT-STOP>
|
|
23
|
+
|
|
18
24
|
# Interviewer
|
|
19
25
|
|
|
20
26
|
## Purpose
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gproject-patterns-researcher
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Researches best practices per technology in the chosen stack and defines
|
|
5
|
+
application architecture patterns. Produces constraints that PRD must follow.
|
|
6
|
+
Use when: dispatched by gproject-orchestrator Phase 3.
|
|
7
|
+
NOT for: direct user invocation.
|
|
7
8
|
metadata:
|
|
8
|
-
|
|
9
|
-
version: "1.0.0"
|
|
10
|
-
category: "planning"
|
|
9
|
+
version: 1.0.0
|
|
11
10
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
12
|
-
license: "MIT"
|
|
13
11
|
---
|
|
14
12
|
|
|
15
|
-
|
|
16
13
|
# gproject-patterns-researcher
|
|
17
14
|
|
|
18
15
|
## Purpose
|
|
@@ -31,3 +28,212 @@ and architectural decisions for each technology. The output becomes a set of
|
|
|
31
28
|
| 4 | NEVER copy-paste generic "best practices" — every recommendation must be contextualized to THIS project |
|
|
32
29
|
| 5 | Output MUST be structured as checkable constraints, not prose advice |
|
|
33
30
|
| 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Input Contract
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
task: "Research per-technology patterns and define application architecture"
|
|
38
|
+
input_artifacts:
|
|
39
|
+
- .metaproject/jobs/<job>/artifacts/stack-decision.md
|
|
40
|
+
- .metaproject/jobs/<job>/artifacts/problem-statement.md
|
|
41
|
+
decisions_so_far:
|
|
42
|
+
D_level: "..."
|
|
43
|
+
D_frontend: "..."
|
|
44
|
+
D_backend: "..."
|
|
45
|
+
D_database: "..."
|
|
46
|
+
D_deploy: "..."
|
|
47
|
+
# All stack decisions
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Output Contract
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
status: "DONE" | "NEEDS_CONTEXT"
|
|
54
|
+
summary: "<3-5 sentences: architecture pattern, key per-tech decisions, constraint count>"
|
|
55
|
+
new_decisions:
|
|
56
|
+
D_arch_pattern: "<e.g., Clean Architecture, Feature-Sliced, MVC>"
|
|
57
|
+
D_api_style: "<REST | GraphQL | tRPC | gRPC>"
|
|
58
|
+
D_state_management: "<approach>"
|
|
59
|
+
D_auth_pattern: "<JWT | session | OAuth flow>"
|
|
60
|
+
D_testing_strategy: "<unit + integration + e2e split>"
|
|
61
|
+
D_error_handling: "<pattern>"
|
|
62
|
+
D_logging_observability: "<approach>"
|
|
63
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/architecture.md"
|
|
64
|
+
additional_artifacts:
|
|
65
|
+
- ".metaproject/jobs/<job>/artifacts/tech-bestpractices.md"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Workflow
|
|
71
|
+
|
|
72
|
+
### Step 1: Define Application Architecture
|
|
73
|
+
|
|
74
|
+
Based on project level and stack, select architecture pattern:
|
|
75
|
+
|
|
76
|
+
| Level | Typical Pattern | Why |
|
|
77
|
+
|-------|---------------|-----|
|
|
78
|
+
| MVP | Simple layered (routes → services → DB) | Minimum indirection, fast to build |
|
|
79
|
+
| Pet | Feature-based modules | Good learning structure |
|
|
80
|
+
| Startup | Clean Architecture / Hexagonal | Testable, scalable when team grows |
|
|
81
|
+
| Production | DDD + CQRS where justified | Complex domain needs it |
|
|
82
|
+
|
|
83
|
+
Document the pattern with:
|
|
84
|
+
- Layer diagram (which layers, what goes where)
|
|
85
|
+
- Dependency direction (who imports whom)
|
|
86
|
+
- Module/feature structure (how to organize code)
|
|
87
|
+
- Cross-cutting concerns (logging, auth, error handling)
|
|
88
|
+
|
|
89
|
+
### Step 2: Per-Technology Research
|
|
90
|
+
|
|
91
|
+
For EACH technology in the stack, research and document:
|
|
92
|
+
|
|
93
|
+
#### Frontend (e.g., Next.js)
|
|
94
|
+
- Project structure pattern (App Router conventions, feature folders)
|
|
95
|
+
- Component patterns (Server vs Client components, composition)
|
|
96
|
+
- State management pattern (chosen approach + why)
|
|
97
|
+
- Data fetching pattern (Server Actions, SWR, React Query)
|
|
98
|
+
- Styling approach (Tailwind, CSS Modules, styled-components)
|
|
99
|
+
- Form handling pattern
|
|
100
|
+
- Error boundary strategy
|
|
101
|
+
- Testing approach (unit: Vitest, e2e: Playwright)
|
|
102
|
+
|
|
103
|
+
#### Backend (e.g., NestJS)
|
|
104
|
+
- Module structure pattern
|
|
105
|
+
- DTO and validation approach
|
|
106
|
+
- Service layer patterns
|
|
107
|
+
- Repository / data access pattern
|
|
108
|
+
- Error handling (exception filters, typed errors)
|
|
109
|
+
- Authentication and authorization pattern
|
|
110
|
+
- API versioning strategy
|
|
111
|
+
- Testing approach (unit + integration)
|
|
112
|
+
|
|
113
|
+
#### Database (e.g., PostgreSQL)
|
|
114
|
+
- Schema design approach (normalized vs denormalized for use case)
|
|
115
|
+
- Migration strategy and tooling
|
|
116
|
+
- Indexing guidelines for expected queries
|
|
117
|
+
- Connection pooling approach
|
|
118
|
+
- Backup and recovery (if production level)
|
|
119
|
+
|
|
120
|
+
#### Infrastructure (e.g., Docker)
|
|
121
|
+
- Container structure (multi-stage builds, compose setup)
|
|
122
|
+
- Environment management (dev/staging/prod)
|
|
123
|
+
- CI/CD pipeline pattern
|
|
124
|
+
- Monitoring and logging stack
|
|
125
|
+
|
|
126
|
+
### Step 3: Define API Contract Style
|
|
127
|
+
|
|
128
|
+
Based on project needs:
|
|
129
|
+
- REST: resource-based, OpenAPI spec, versioning scheme
|
|
130
|
+
- GraphQL: schema-first vs code-first, resolver patterns
|
|
131
|
+
- tRPC: shared types, router structure
|
|
132
|
+
- gRPC: proto file organization, service boundaries
|
|
133
|
+
|
|
134
|
+
### Step 4: Cross-Cutting Patterns
|
|
135
|
+
|
|
136
|
+
Define patterns that span all layers:
|
|
137
|
+
- **Authentication flow**: complete auth pattern (signup, login, token refresh, logout)
|
|
138
|
+
- **Authorization**: RBAC, ABAC, or simple role checks
|
|
139
|
+
- **Error handling**: typed errors, error codes, user-facing messages
|
|
140
|
+
- **Logging**: structured logging format, log levels, sensitive data masking
|
|
141
|
+
- **Validation**: where validation happens (API layer, domain layer, both)
|
|
142
|
+
- **Testing**: test pyramid ratios for this project level
|
|
143
|
+
|
|
144
|
+
### Step 5: Write Architecture Doc
|
|
145
|
+
|
|
146
|
+
Write `artifacts/architecture.md`:
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
# Architecture: <Project/Task Name>
|
|
150
|
+
|
|
151
|
+
## Architecture Pattern: <Pattern Name>
|
|
152
|
+
**Rationale**: <why this pattern for this project>
|
|
153
|
+
**Alternative considered**: <pattern and why rejected>
|
|
154
|
+
|
|
155
|
+
## Layer Diagram
|
|
156
|
+
<describe layers and dependencies>
|
|
157
|
+
|
|
158
|
+
## Module Structure
|
|
159
|
+
<how code is organized — by feature, by layer, hybrid>
|
|
160
|
+
|
|
161
|
+
## Component Interaction
|
|
162
|
+
<how layers communicate — direct calls, events, DTOs>
|
|
163
|
+
|
|
164
|
+
## Cross-Cutting Concerns
|
|
165
|
+
### Authentication: <pattern>
|
|
166
|
+
### Error Handling: <pattern>
|
|
167
|
+
### Logging: <pattern>
|
|
168
|
+
### Validation: <pattern>
|
|
169
|
+
|
|
170
|
+
## Key Architecture Decisions
|
|
171
|
+
| Decision | Choice | Rationale | Alternative |
|
|
172
|
+
|----------|--------|-----------|-------------|
|
|
173
|
+
| <decision> | <choice> | <why> | <what else> |
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Step 6: Write Best Practices Constraints
|
|
177
|
+
|
|
178
|
+
Write `artifacts/tech-bestpractices.md` — this is the **constraint document**
|
|
179
|
+
that PRD writer must follow:
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
# Technical Best Practices & Constraints
|
|
183
|
+
|
|
184
|
+
## How to Use This Document
|
|
185
|
+
Every requirement in the PRD MUST be compatible with these constraints.
|
|
186
|
+
The consistency-checker (Phase 5) validates PRD against these rules.
|
|
187
|
+
|
|
188
|
+
## Frontend Constraints (<technology>)
|
|
189
|
+
### MUST
|
|
190
|
+
- [ ] <constraint 1 — e.g., "Use Server Components by default, Client only when needed">
|
|
191
|
+
- [ ] <constraint 2>
|
|
192
|
+
### MUST NOT
|
|
193
|
+
- [ ] <antipattern 1 — e.g., "Do not use getServerSideProps in App Router">
|
|
194
|
+
- [ ] <antipattern 2>
|
|
195
|
+
### SHOULD
|
|
196
|
+
- [ ] <recommendation 1>
|
|
197
|
+
|
|
198
|
+
## Backend Constraints (<technology>)
|
|
199
|
+
### MUST
|
|
200
|
+
- [ ] ...
|
|
201
|
+
### MUST NOT
|
|
202
|
+
- [ ] ...
|
|
203
|
+
### SHOULD
|
|
204
|
+
- [ ] ...
|
|
205
|
+
|
|
206
|
+
## Database Constraints (<technology>)
|
|
207
|
+
### MUST
|
|
208
|
+
- [ ] ...
|
|
209
|
+
### MUST NOT
|
|
210
|
+
- [ ] ...
|
|
211
|
+
|
|
212
|
+
## API Constraints
|
|
213
|
+
### MUST
|
|
214
|
+
- [ ] ...
|
|
215
|
+
|
|
216
|
+
## Infrastructure Constraints
|
|
217
|
+
### MUST
|
|
218
|
+
- [ ] ...
|
|
219
|
+
|
|
220
|
+
## Testing Constraints
|
|
221
|
+
### MUST
|
|
222
|
+
- [ ] <e.g., "Every API endpoint must have integration test">
|
|
223
|
+
- [ ] <e.g., "Critical user flows must have e2e tests">
|
|
224
|
+
### Test Pyramid Target
|
|
225
|
+
- Unit: <X>%
|
|
226
|
+
- Integration: <Y>%
|
|
227
|
+
- E2E: <Z>%
|
|
228
|
+
|
|
229
|
+
## Security Constraints
|
|
230
|
+
### MUST
|
|
231
|
+
- [ ] ...
|
|
232
|
+
### MUST NOT
|
|
233
|
+
- [ ] ...
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Step 7: Return Summary
|
|
237
|
+
|
|
238
|
+
Compact summary: architecture pattern, number of constraints defined,
|
|
239
|
+
key per-tech decisions, any concerns about pattern compatibility.
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gproject-patterns-researcher
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Researches best practices per technology in the chosen stack and defines
|
|
5
|
+
application architecture patterns. Produces constraints that PRD must follow.
|
|
6
|
+
Use when: dispatched by gproject-orchestrator Phase 3.
|
|
7
|
+
NOT for: direct user invocation.
|
|
7
8
|
metadata:
|
|
8
|
-
|
|
9
|
-
version: "1.0.0"
|
|
10
|
-
category: "planning"
|
|
9
|
+
version: 1.0.0
|
|
11
10
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
12
|
-
license: "MIT"
|
|
13
11
|
---
|
|
14
12
|
|
|
15
|
-
|
|
16
13
|
# gproject-patterns-researcher
|
|
17
14
|
|
|
18
15
|
## Purpose
|
|
@@ -31,3 +28,212 @@ and architectural decisions for each technology. The output becomes a set of
|
|
|
31
28
|
| 4 | NEVER copy-paste generic "best practices" — every recommendation must be contextualized to THIS project |
|
|
32
29
|
| 5 | Output MUST be structured as checkable constraints, not prose advice |
|
|
33
30
|
| 6 | Existing project patterns (task_in_project) take precedence unless they're antipatterns |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Input Contract
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
task: "Research per-technology patterns and define application architecture"
|
|
38
|
+
input_artifacts:
|
|
39
|
+
- .metaproject/jobs/<job>/artifacts/stack-decision.md
|
|
40
|
+
- .metaproject/jobs/<job>/artifacts/problem-statement.md
|
|
41
|
+
decisions_so_far:
|
|
42
|
+
D_level: "..."
|
|
43
|
+
D_frontend: "..."
|
|
44
|
+
D_backend: "..."
|
|
45
|
+
D_database: "..."
|
|
46
|
+
D_deploy: "..."
|
|
47
|
+
# All stack decisions
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Output Contract
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
status: "DONE" | "NEEDS_CONTEXT"
|
|
54
|
+
summary: "<3-5 sentences: architecture pattern, key per-tech decisions, constraint count>"
|
|
55
|
+
new_decisions:
|
|
56
|
+
D_arch_pattern: "<e.g., Clean Architecture, Feature-Sliced, MVC>"
|
|
57
|
+
D_api_style: "<REST | GraphQL | tRPC | gRPC>"
|
|
58
|
+
D_state_management: "<approach>"
|
|
59
|
+
D_auth_pattern: "<JWT | session | OAuth flow>"
|
|
60
|
+
D_testing_strategy: "<unit + integration + e2e split>"
|
|
61
|
+
D_error_handling: "<pattern>"
|
|
62
|
+
D_logging_observability: "<approach>"
|
|
63
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/architecture.md"
|
|
64
|
+
additional_artifacts:
|
|
65
|
+
- ".metaproject/jobs/<job>/artifacts/tech-bestpractices.md"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Workflow
|
|
71
|
+
|
|
72
|
+
### Step 1: Define Application Architecture
|
|
73
|
+
|
|
74
|
+
Based on project level and stack, select architecture pattern:
|
|
75
|
+
|
|
76
|
+
| Level | Typical Pattern | Why |
|
|
77
|
+
|-------|---------------|-----|
|
|
78
|
+
| MVP | Simple layered (routes → services → DB) | Minimum indirection, fast to build |
|
|
79
|
+
| Pet | Feature-based modules | Good learning structure |
|
|
80
|
+
| Startup | Clean Architecture / Hexagonal | Testable, scalable when team grows |
|
|
81
|
+
| Production | DDD + CQRS where justified | Complex domain needs it |
|
|
82
|
+
|
|
83
|
+
Document the pattern with:
|
|
84
|
+
- Layer diagram (which layers, what goes where)
|
|
85
|
+
- Dependency direction (who imports whom)
|
|
86
|
+
- Module/feature structure (how to organize code)
|
|
87
|
+
- Cross-cutting concerns (logging, auth, error handling)
|
|
88
|
+
|
|
89
|
+
### Step 2: Per-Technology Research
|
|
90
|
+
|
|
91
|
+
For EACH technology in the stack, research and document:
|
|
92
|
+
|
|
93
|
+
#### Frontend (e.g., Next.js)
|
|
94
|
+
- Project structure pattern (App Router conventions, feature folders)
|
|
95
|
+
- Component patterns (Server vs Client components, composition)
|
|
96
|
+
- State management pattern (chosen approach + why)
|
|
97
|
+
- Data fetching pattern (Server Actions, SWR, React Query)
|
|
98
|
+
- Styling approach (Tailwind, CSS Modules, styled-components)
|
|
99
|
+
- Form handling pattern
|
|
100
|
+
- Error boundary strategy
|
|
101
|
+
- Testing approach (unit: Vitest, e2e: Playwright)
|
|
102
|
+
|
|
103
|
+
#### Backend (e.g., NestJS)
|
|
104
|
+
- Module structure pattern
|
|
105
|
+
- DTO and validation approach
|
|
106
|
+
- Service layer patterns
|
|
107
|
+
- Repository / data access pattern
|
|
108
|
+
- Error handling (exception filters, typed errors)
|
|
109
|
+
- Authentication and authorization pattern
|
|
110
|
+
- API versioning strategy
|
|
111
|
+
- Testing approach (unit + integration)
|
|
112
|
+
|
|
113
|
+
#### Database (e.g., PostgreSQL)
|
|
114
|
+
- Schema design approach (normalized vs denormalized for use case)
|
|
115
|
+
- Migration strategy and tooling
|
|
116
|
+
- Indexing guidelines for expected queries
|
|
117
|
+
- Connection pooling approach
|
|
118
|
+
- Backup and recovery (if production level)
|
|
119
|
+
|
|
120
|
+
#### Infrastructure (e.g., Docker)
|
|
121
|
+
- Container structure (multi-stage builds, compose setup)
|
|
122
|
+
- Environment management (dev/staging/prod)
|
|
123
|
+
- CI/CD pipeline pattern
|
|
124
|
+
- Monitoring and logging stack
|
|
125
|
+
|
|
126
|
+
### Step 3: Define API Contract Style
|
|
127
|
+
|
|
128
|
+
Based on project needs:
|
|
129
|
+
- REST: resource-based, OpenAPI spec, versioning scheme
|
|
130
|
+
- GraphQL: schema-first vs code-first, resolver patterns
|
|
131
|
+
- tRPC: shared types, router structure
|
|
132
|
+
- gRPC: proto file organization, service boundaries
|
|
133
|
+
|
|
134
|
+
### Step 4: Cross-Cutting Patterns
|
|
135
|
+
|
|
136
|
+
Define patterns that span all layers:
|
|
137
|
+
- **Authentication flow**: complete auth pattern (signup, login, token refresh, logout)
|
|
138
|
+
- **Authorization**: RBAC, ABAC, or simple role checks
|
|
139
|
+
- **Error handling**: typed errors, error codes, user-facing messages
|
|
140
|
+
- **Logging**: structured logging format, log levels, sensitive data masking
|
|
141
|
+
- **Validation**: where validation happens (API layer, domain layer, both)
|
|
142
|
+
- **Testing**: test pyramid ratios for this project level
|
|
143
|
+
|
|
144
|
+
### Step 5: Write Architecture Doc
|
|
145
|
+
|
|
146
|
+
Write `artifacts/architecture.md`:
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
# Architecture: <Project/Task Name>
|
|
150
|
+
|
|
151
|
+
## Architecture Pattern: <Pattern Name>
|
|
152
|
+
**Rationale**: <why this pattern for this project>
|
|
153
|
+
**Alternative considered**: <pattern and why rejected>
|
|
154
|
+
|
|
155
|
+
## Layer Diagram
|
|
156
|
+
<describe layers and dependencies>
|
|
157
|
+
|
|
158
|
+
## Module Structure
|
|
159
|
+
<how code is organized — by feature, by layer, hybrid>
|
|
160
|
+
|
|
161
|
+
## Component Interaction
|
|
162
|
+
<how layers communicate — direct calls, events, DTOs>
|
|
163
|
+
|
|
164
|
+
## Cross-Cutting Concerns
|
|
165
|
+
### Authentication: <pattern>
|
|
166
|
+
### Error Handling: <pattern>
|
|
167
|
+
### Logging: <pattern>
|
|
168
|
+
### Validation: <pattern>
|
|
169
|
+
|
|
170
|
+
## Key Architecture Decisions
|
|
171
|
+
| Decision | Choice | Rationale | Alternative |
|
|
172
|
+
|----------|--------|-----------|-------------|
|
|
173
|
+
| <decision> | <choice> | <why> | <what else> |
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Step 6: Write Best Practices Constraints
|
|
177
|
+
|
|
178
|
+
Write `artifacts/tech-bestpractices.md` — this is the **constraint document**
|
|
179
|
+
that PRD writer must follow:
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
# Technical Best Practices & Constraints
|
|
183
|
+
|
|
184
|
+
## How to Use This Document
|
|
185
|
+
Every requirement in the PRD MUST be compatible with these constraints.
|
|
186
|
+
The consistency-checker (Phase 5) validates PRD against these rules.
|
|
187
|
+
|
|
188
|
+
## Frontend Constraints (<technology>)
|
|
189
|
+
### MUST
|
|
190
|
+
- [ ] <constraint 1 — e.g., "Use Server Components by default, Client only when needed">
|
|
191
|
+
- [ ] <constraint 2>
|
|
192
|
+
### MUST NOT
|
|
193
|
+
- [ ] <antipattern 1 — e.g., "Do not use getServerSideProps in App Router">
|
|
194
|
+
- [ ] <antipattern 2>
|
|
195
|
+
### SHOULD
|
|
196
|
+
- [ ] <recommendation 1>
|
|
197
|
+
|
|
198
|
+
## Backend Constraints (<technology>)
|
|
199
|
+
### MUST
|
|
200
|
+
- [ ] ...
|
|
201
|
+
### MUST NOT
|
|
202
|
+
- [ ] ...
|
|
203
|
+
### SHOULD
|
|
204
|
+
- [ ] ...
|
|
205
|
+
|
|
206
|
+
## Database Constraints (<technology>)
|
|
207
|
+
### MUST
|
|
208
|
+
- [ ] ...
|
|
209
|
+
### MUST NOT
|
|
210
|
+
- [ ] ...
|
|
211
|
+
|
|
212
|
+
## API Constraints
|
|
213
|
+
### MUST
|
|
214
|
+
- [ ] ...
|
|
215
|
+
|
|
216
|
+
## Infrastructure Constraints
|
|
217
|
+
### MUST
|
|
218
|
+
- [ ] ...
|
|
219
|
+
|
|
220
|
+
## Testing Constraints
|
|
221
|
+
### MUST
|
|
222
|
+
- [ ] <e.g., "Every API endpoint must have integration test">
|
|
223
|
+
- [ ] <e.g., "Critical user flows must have e2e tests">
|
|
224
|
+
### Test Pyramid Target
|
|
225
|
+
- Unit: <X>%
|
|
226
|
+
- Integration: <Y>%
|
|
227
|
+
- E2E: <Z>%
|
|
228
|
+
|
|
229
|
+
## Security Constraints
|
|
230
|
+
### MUST
|
|
231
|
+
- [ ] ...
|
|
232
|
+
### MUST NOT
|
|
233
|
+
- [ ] ...
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Step 7: Return Summary
|
|
237
|
+
|
|
238
|
+
Compact summary: architecture pattern, number of constraints defined,
|
|
239
|
+
key per-tech decisions, any concerns about pattern compatibility.
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gproject-planner
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Generates roadmap, milestones, task breakdown, and dependency graph from PRD.
|
|
5
|
+
Use when: dispatched by gproject-orchestrator Phase 6.
|
|
6
|
+
NOT for: direct user invocation.
|
|
7
7
|
metadata:
|
|
8
|
-
|
|
9
|
-
version: "1.0.0"
|
|
10
|
-
category: "planning"
|
|
8
|
+
version: 1.0.0
|
|
11
9
|
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
12
|
-
license: "MIT"
|
|
13
10
|
---
|
|
14
11
|
|
|
15
|
-
|
|
16
12
|
# gproject-planner
|
|
17
13
|
|
|
18
14
|
## Purpose
|
|
@@ -31,3 +27,166 @@ to feed into job-orchestrator or task-implementer.
|
|
|
31
27
|
| 4 | P0 user stories MUST be in Milestone 1 |
|
|
32
28
|
| 5 | Each milestone MUST be independently deployable / demonstrable |
|
|
33
29
|
| 6 | Infrastructure and setup tasks come before feature tasks |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Input Contract
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
task: "Generate roadmap and task breakdown"
|
|
37
|
+
input_artifacts:
|
|
38
|
+
- .metaproject/jobs/<job>/artifacts/prd.md
|
|
39
|
+
- .metaproject/jobs/<job>/artifacts/architecture.md
|
|
40
|
+
decisions_so_far:
|
|
41
|
+
D_level: "..."
|
|
42
|
+
D_frontend: "..."
|
|
43
|
+
D_backend: "..."
|
|
44
|
+
# All relevant decisions
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Output Contract
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
status: "DONE" | "NEEDS_CONTEXT"
|
|
51
|
+
summary: "<3-5 sentences: milestone count, total tasks, critical path duration>"
|
|
52
|
+
new_decisions:
|
|
53
|
+
D_milestones: ["<M1 name>", "<M2 name>", ...]
|
|
54
|
+
D_estimated_duration: "<range>"
|
|
55
|
+
D_critical_path: "<list of blocking tasks>"
|
|
56
|
+
artifact_path: ".metaproject/jobs/<job>/artifacts/roadmap.md"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Workflow
|
|
62
|
+
|
|
63
|
+
### Step 1: Decompose User Stories into Tasks
|
|
64
|
+
|
|
65
|
+
For each user story, break into implementation tasks:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
- task_id: "T-001"
|
|
69
|
+
title: "<specific task>"
|
|
70
|
+
user_story: "US-001"
|
|
71
|
+
layer: "frontend | backend | database | infra | testing"
|
|
72
|
+
type: "setup | feature | integration | test | docs"
|
|
73
|
+
estimate:
|
|
74
|
+
optimistic: "<time>"
|
|
75
|
+
realistic: "<time>"
|
|
76
|
+
pessimistic: "<time>"
|
|
77
|
+
depends_on: ["T-000"] # or [] if no deps
|
|
78
|
+
acceptance_criteria:
|
|
79
|
+
- "<from user story, scoped to this task>"
|
|
80
|
+
files_likely_affected:
|
|
81
|
+
- "<file path or module>"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 2: Identify Dependencies
|
|
85
|
+
|
|
86
|
+
Build dependency graph:
|
|
87
|
+
- Infrastructure tasks → before all feature tasks
|
|
88
|
+
- Database schema → before backend → before frontend
|
|
89
|
+
- Auth setup → before any authenticated feature
|
|
90
|
+
- Shared components → before pages that use them
|
|
91
|
+
|
|
92
|
+
Verify: no cycles in dependency graph.
|
|
93
|
+
|
|
94
|
+
### Step 3: Group into Milestones
|
|
95
|
+
|
|
96
|
+
Each milestone:
|
|
97
|
+
- Has a clear deliverable (demo-able, deployable)
|
|
98
|
+
- Contains all P0 stories it covers (no half-done P0 at milestone end)
|
|
99
|
+
- Ends with a verification checkpoint
|
|
100
|
+
|
|
101
|
+
Typical milestone structure:
|
|
102
|
+
|
|
103
|
+
**M0: Foundation**
|
|
104
|
+
- Project setup, tooling, CI/CD, dev environment
|
|
105
|
+
- Database schema initial migration
|
|
106
|
+
- Auth skeleton
|
|
107
|
+
- Deploy pipeline to staging
|
|
108
|
+
|
|
109
|
+
**M1: Core (P0 features)**
|
|
110
|
+
- All P0 user stories
|
|
111
|
+
- Core API endpoints
|
|
112
|
+
- Core UI flows
|
|
113
|
+
- Integration tests for critical paths
|
|
114
|
+
|
|
115
|
+
**M2: Complete (P1 features)**
|
|
116
|
+
- P1 user stories
|
|
117
|
+
- Polish, edge cases
|
|
118
|
+
- Performance optimization
|
|
119
|
+
- Full test coverage
|
|
120
|
+
|
|
121
|
+
**M3: Launch-Ready (if production level)**
|
|
122
|
+
- P2 features (selected)
|
|
123
|
+
- Security hardening
|
|
124
|
+
- Monitoring, alerting
|
|
125
|
+
- Documentation
|
|
126
|
+
- Load testing
|
|
127
|
+
|
|
128
|
+
### Step 4: Estimate Critical Path
|
|
129
|
+
|
|
130
|
+
Identify the longest dependency chain and estimate total duration.
|
|
131
|
+
Flag tasks that block the most other tasks.
|
|
132
|
+
|
|
133
|
+
### Step 5: Write Roadmap
|
|
134
|
+
|
|
135
|
+
Write `artifacts/roadmap.md`:
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
# Roadmap: <Project/Task Name>
|
|
139
|
+
|
|
140
|
+
## Overview
|
|
141
|
+
- **Milestones**: <count>
|
|
142
|
+
- **Total tasks**: <count>
|
|
143
|
+
- **Estimated duration**: <optimistic> — <realistic> — <pessimistic>
|
|
144
|
+
- **Critical path**: <list of blocking tasks>
|
|
145
|
+
|
|
146
|
+
## Milestone 0: Foundation
|
|
147
|
+
**Deliverable**: <what can be demonstrated>
|
|
148
|
+
**Duration estimate**: <range>
|
|
149
|
+
|
|
150
|
+
### Tasks
|
|
151
|
+
| ID | Title | Layer | Depends On | Estimate | Story |
|
|
152
|
+
|----|-------|-------|-----------|----------|-------|
|
|
153
|
+
| T-001 | <title> | infra | — | <range> | — |
|
|
154
|
+
| T-002 | <title> | database | T-001 | <range> | — |
|
|
155
|
+
|
|
156
|
+
## Milestone 1: Core
|
|
157
|
+
**Deliverable**: <what can be demonstrated>
|
|
158
|
+
**Duration estimate**: <range>
|
|
159
|
+
|
|
160
|
+
### Tasks
|
|
161
|
+
| ID | Title | Layer | Depends On | Estimate | Story |
|
|
162
|
+
|----|-------|-------|-----------|----------|-------|
|
|
163
|
+
| T-010 | <title> | backend | T-002 | <range> | US-001 |
|
|
164
|
+
|
|
165
|
+
## ...
|
|
166
|
+
|
|
167
|
+
## Dependency Graph (summary)
|
|
168
|
+
<textual description of key dependency chains>
|
|
169
|
+
T-001 → T-002 → T-010 → T-015 (critical path)
|
|
170
|
+
T-001 → T-003 → T-011 (parallel track)
|
|
171
|
+
|
|
172
|
+
## Risk-Adjusted Timeline
|
|
173
|
+
| Scenario | Duration | Assumptions |
|
|
174
|
+
|----------|---------|-------------|
|
|
175
|
+
| Optimistic | <time> | No blockers, all estimates hold |
|
|
176
|
+
| Realistic | <time> | Normal friction, 1-2 minor blockers |
|
|
177
|
+
| Pessimistic | <time> | Major unknowns surface, rework needed |
|
|
178
|
+
|
|
179
|
+
## Parallelization Opportunities
|
|
180
|
+
<Which tasks can run simultaneously — useful for team or multi-agent execution>
|
|
181
|
+
|
|
182
|
+
## Integration with job-orchestrator
|
|
183
|
+
<How to feed this roadmap into job-orchestrator for automated implementation>
|
|
184
|
+
- Each milestone maps to a job-orchestrator run
|
|
185
|
+
- Tasks within a milestone map to issue-analyzer output format
|
|
186
|
+
- Dependency order maps to wave-based execution
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Step 6: Return Summary
|
|
190
|
+
|
|
191
|
+
Compact summary: milestone count, task count, critical path duration,
|
|
192
|
+
biggest scheduling risk.
|