opencastle 0.35.2 → 0.35.3
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/package.json +1 -1
- package/src/dashboard/dist/data/convoys/demo-api-v2.json +3 -3
- package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +4 -4
- package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +12 -12
- package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +9 -9
- package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +1 -1
- package/src/dashboard/dist/data/convoys/demo-docs-update.json +7 -7
- package/src/dashboard/dist/data/convoys/demo-perf-opt.json +4 -4
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/public/data/convoys/demo-api-v2.json +3 -3
- package/src/dashboard/public/data/convoys/demo-auth-revamp.json +4 -4
- package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +12 -12
- package/src/dashboard/public/data/convoys/demo-data-pipeline.json +9 -9
- package/src/dashboard/public/data/convoys/demo-deploy-ci.json +1 -1
- package/src/dashboard/public/data/convoys/demo-docs-update.json +7 -7
- package/src/dashboard/public/data/convoys/demo-perf-opt.json +4 -4
- package/src/orchestrator/agents/api-designer.agent.md +10 -10
- package/src/orchestrator/agents/architect.agent.md +8 -8
- package/src/orchestrator/agents/content-engineer.agent.md +5 -5
- package/src/orchestrator/agents/copywriter.agent.md +7 -7
- package/src/orchestrator/agents/data-expert.agent.md +9 -9
- package/src/orchestrator/agents/database-engineer.agent.md +7 -7
- package/src/orchestrator/agents/developer.agent.md +13 -13
- package/src/orchestrator/agents/devops-expert.agent.md +10 -10
- package/src/orchestrator/agents/documentation-writer.agent.md +8 -8
- package/src/orchestrator/agents/performance-expert.agent.md +9 -9
- package/src/orchestrator/agents/release-manager.agent.md +8 -8
- package/src/orchestrator/agents/researcher.agent.md +5 -5
- package/src/orchestrator/agents/reviewer.agent.md +5 -5
- package/src/orchestrator/agents/security-expert.agent.md +10 -10
- package/src/orchestrator/agents/seo-specialist.agent.md +11 -11
- package/src/orchestrator/agents/session-guard.agent.md +2 -2
- package/src/orchestrator/agents/team-lead.agent.md +4 -4
- package/src/orchestrator/agents/testing-expert.agent.md +7 -7
- package/src/orchestrator/agents/ui-ux-expert.agent.md +15 -15
- package/src/orchestrator/prompts/assess-complexity.prompt.md +8 -8
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +17 -17
- package/src/orchestrator/prompts/brainstorm.prompt.md +17 -17
- package/src/orchestrator/prompts/bug-fix.prompt.md +11 -11
- package/src/orchestrator/prompts/create-skill.prompt.md +21 -21
- package/src/orchestrator/prompts/fix-convoy.prompt.md +8 -8
- package/src/orchestrator/prompts/fix-prd.prompt.md +12 -12
- package/src/orchestrator/prompts/generate-convoy.prompt.md +50 -50
- package/src/orchestrator/prompts/generate-prd.prompt.md +32 -32
- package/src/orchestrator/prompts/implement-feature.prompt.md +16 -16
- package/src/orchestrator/prompts/quick-refinement.prompt.md +18 -18
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +9 -9
- package/src/orchestrator/prompts/validate-convoy.prompt.md +10 -10
- package/src/orchestrator/prompts/validate-prd.prompt.md +10 -10
- package/src/orchestrator/skills/accessibility-standards/SKILL.md +8 -8
- package/src/orchestrator/skills/agent-hooks/SKILL.md +1 -1
- package/src/orchestrator/skills/agent-memory/SKILL.md +11 -11
- package/src/orchestrator/skills/api-patterns/SKILL.md +5 -5
- package/src/orchestrator/skills/backbone-scaffolding/SKILL.md +24 -51
- package/src/orchestrator/skills/code-commenting/SKILL.md +3 -3
- package/src/orchestrator/skills/context-map/REFERENCE.md +2 -2
- package/src/orchestrator/skills/context-map/SKILL.md +5 -5
- package/src/orchestrator/skills/data-engineering/SKILL.md +12 -12
- package/src/orchestrator/skills/decomposition/SKILL.md +34 -7
- package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +4 -4
- package/src/orchestrator/skills/documentation-standards/SKILL.md +7 -7
- package/src/orchestrator/skills/documentation-standards/WRITING-GUIDE.md +3 -3
- package/src/orchestrator/skills/fast-review/SKILL.md +2 -2
- package/src/orchestrator/skills/frontend-design/COMPONENTS.md +1 -1
- package/src/orchestrator/skills/frontend-design/SKILL.md +11 -11
- package/src/orchestrator/skills/git-workflow/SKILL.md +5 -5
- package/src/orchestrator/skills/memory-merger/SKILL.md +32 -8
- package/src/orchestrator/skills/observability-logging/SKILL.md +6 -11
- package/src/orchestrator/skills/orchestration-protocols/SKILL.md +15 -15
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +4 -4
- package/src/orchestrator/skills/performance-optimization/SKILL.md +5 -5
- package/src/orchestrator/skills/project-consistency/SKILL.md +4 -4
- package/src/orchestrator/skills/react-development/SKILL.md +8 -8
- package/src/orchestrator/skills/security-hardening/SKILL.md +12 -12
- package/src/orchestrator/skills/self-improvement/SKILL.md +11 -11
- package/src/orchestrator/skills/seo-patterns/SKILL.md +49 -23
- package/src/orchestrator/skills/session-checkpoints/SKILL.md +12 -12
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +6 -6
- package/src/orchestrator/skills/testing-workflow/SKILL.md +3 -3
- package/src/orchestrator/skills/validation-gates/SKILL.md +6 -6
- package/src/orchestrator/skills/backbone-scaffolding/EXAMPLES.md +0 -16
- package/src/orchestrator/skills/decomposition/REFERENCE.md +0 -28
- package/src/orchestrator/skills/memory-merger/REFERENCE.md +0 -20
- package/src/orchestrator/skills/react-development/REFERENCE.md +0 -7
- package/src/orchestrator/skills/seo-patterns/REFERENCE.md +0 -54
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Fix validation errors in
|
|
2
|
+
description: 'Fix validation errors in convoy task plan by outputting targeted JSON patches.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
output: json
|
|
5
5
|
---
|
|
@@ -8,7 +8,7 @@ output: json
|
|
|
8
8
|
|
|
9
9
|
# Fix Task Plan
|
|
10
10
|
|
|
11
|
-
You are the Team Lead.
|
|
11
|
+
You are the Team Lead. Task plan below has validation errors. Fix every error by outputting targeted JSON patches.
|
|
12
12
|
|
|
13
13
|
## Task Plan
|
|
14
14
|
|
|
@@ -25,13 +25,13 @@ You are the Team Lead. The task plan below has validation errors. Fix every erro
|
|
|
25
25
|
## Instructions
|
|
26
26
|
|
|
27
27
|
1. Read every error before writing patches.
|
|
28
|
-
2. Fix ALL reported errors
|
|
29
|
-
3. Preserve intent, agent assignments,
|
|
28
|
+
2. Fix ALL reported errors; do not partially fix.
|
|
29
|
+
3. Preserve intent, agent assignments, task scope. Only fix what is broken.
|
|
30
30
|
4. Each patch replaces ONE field on ONE task.
|
|
31
31
|
|
|
32
32
|
## Patch Format
|
|
33
33
|
|
|
34
|
-
Output
|
|
34
|
+
Output single `json` fenced code block with array of patches:
|
|
35
35
|
|
|
36
36
|
```json
|
|
37
37
|
[
|
|
@@ -59,12 +59,12 @@ Output a single `json` fenced code block with an array of patches:
|
|
|
59
59
|
- `value`: Complete new value (replaces old value entirely)
|
|
60
60
|
|
|
61
61
|
### Common fixes
|
|
62
|
-
- **Truncated prompt** → patch `field: "prompt"` with
|
|
63
|
-
- **Missing dependency** → patch `field: "depends_on"` with
|
|
62
|
+
- **Truncated prompt** → patch `field: "prompt"` with complete, self-contained prompt text
|
|
63
|
+
- **Missing dependency** → patch `field: "depends_on"` with corrected array
|
|
64
64
|
- **Partition conflict** → patch `field: "files"` to use specific paths, or patch `field: "depends_on"` to add sequencing
|
|
65
65
|
- **Wrong agent** → patch `field: "agent"` with correct value from roster
|
|
66
66
|
- **Vague prompt** → patch with detailed, file-specific prompt including acceptance criteria
|
|
67
67
|
|
|
68
68
|
## Output
|
|
69
69
|
|
|
70
|
-
Your entire response must be
|
|
70
|
+
Your entire response must be single `json` fenced code block with patches array. No text before or after.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Fix validation errors in
|
|
2
|
+
description: 'Fix validation errors in PRD. Goal is broken PRD markdown; context is error list from validation step.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
output: prd
|
|
5
5
|
---
|
|
@@ -8,7 +8,7 @@ output: prd
|
|
|
8
8
|
|
|
9
9
|
# Fix PRD
|
|
10
10
|
|
|
11
|
-
You are the Team Lead. The PRD below failed validation. Fix **every reported issue
|
|
11
|
+
You are the Team Lead. The PRD below failed validation. Fix **every reported issue**; output complete, corrected PRD.
|
|
12
12
|
|
|
13
13
|
## Failing PRD
|
|
14
14
|
|
|
@@ -23,31 +23,31 @@ You are the Team Lead. The PRD below failed validation. Fix **every reported iss
|
|
|
23
23
|
## Fix Instructions
|
|
24
24
|
|
|
25
25
|
1. Read every reported issue before making changes.
|
|
26
|
-
2. Fix **all** reported issues
|
|
27
|
-
3. Do not change
|
|
28
|
-
4. Preserve all content
|
|
26
|
+
2. Fix **all** reported issues; do not partially fix.
|
|
27
|
+
3. Do not change intent, goals, or scope of feature. Only fix what validator flagged.
|
|
28
|
+
4. Preserve all content not part of reported issues.
|
|
29
29
|
|
|
30
30
|
### Common Fix Patterns
|
|
31
31
|
|
|
32
32
|
**Missing sections**
|
|
33
|
-
- Add
|
|
34
|
-
- If
|
|
33
|
+
- Add missing section with concrete, specific content — not placeholder text
|
|
34
|
+
- If section needs real data you cannot infer, write reasonable default; mark with `<!-- TODO: verify -->`
|
|
35
35
|
|
|
36
36
|
**Conflicting requirements**
|
|
37
|
-
- Resolve contradictions between sections — pick
|
|
37
|
+
- Resolve contradictions between sections — pick intent that best matches feature goals
|
|
38
38
|
|
|
39
39
|
**File partition conflicts**
|
|
40
|
-
- If two parallel workstreams claim
|
|
41
|
-
- Or split
|
|
40
|
+
- If two parallel workstreams claim same file, move one to later phase with explicit dependency
|
|
41
|
+
- Or split file's responsibilities across two workstreams so each touches distinct files
|
|
42
42
|
|
|
43
43
|
**Broad implementation scope**
|
|
44
44
|
- Replace excessively broad paths (`src/`, `the frontend`) with specific subdirectories or file names
|
|
45
45
|
|
|
46
46
|
**Placeholder text**
|
|
47
|
-
- Replace template filler ("2–3 sentences about…", "Description here") with real content derived from
|
|
47
|
+
- Replace template filler ("2–3 sentences about…", "Description here") with real content derived from feature description
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
51
|
## Output
|
|
52
52
|
|
|
53
|
-
Return
|
|
53
|
+
Return **complete corrected PRD** as raw Markdown starting with `#` heading. Do not wrap output in code fence. Do not add explanatory prose before or after PRD.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Generate
|
|
2
|
+
description: 'Generate JSON task plan for autonomous convoy execution based on a high-level goal.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
output: json
|
|
5
5
|
---
|
|
@@ -8,7 +8,7 @@ output: json
|
|
|
8
8
|
|
|
9
9
|
# Generate Task Plan
|
|
10
10
|
|
|
11
|
-
You are the Team Lead.
|
|
11
|
+
You are the Team Lead. User wants to run `opencastle run` to execute batch of tasks autonomously via convoy engine. Your job: produce JSON task plan. CLI will convert it to valid convoy spec — **you do not need to know YAML syntax**. Derive short, descriptive, kebab-case filename from user's goal (2–4 words max), e.g. `auth-refactor` or `add-search`.
|
|
12
12
|
|
|
13
13
|
> **⚠️ OUTPUT FORMAT: Your entire response must be a single ` ```json ` fenced code block. Do NOT output any text, explanations, summaries, or DAG diagrams before or after the JSON block. The parser only reads the ` ```json ` fence — everything else causes a failure.**
|
|
14
14
|
|
|
@@ -56,9 +56,9 @@ You are the Team Lead. The user wants to run `opencastle run` to execute a batch
|
|
|
56
56
|
|
|
57
57
|
### Complexity Scores
|
|
58
58
|
|
|
59
|
-
If
|
|
59
|
+
If **Pre-Computed Task Complexity** table is present in context, use those scores directly — do not re-derive. Map each convoy task to closest workstream; for combined workstreams use highest score.
|
|
60
60
|
|
|
61
|
-
If no pre-computed data
|
|
61
|
+
If no pre-computed data available, assess complexity yourself: `1` (trivial), `2` (simple), `3` (moderate), `5` (significant), `8` (complex), `13` (epic).
|
|
62
62
|
|
|
63
63
|
### Agent Roster
|
|
64
64
|
|
|
@@ -68,16 +68,16 @@ If no pre-computed data is available, assess complexity yourself: `1` (trivial),
|
|
|
68
68
|
|
|
69
69
|
### Content Research Rule
|
|
70
70
|
|
|
71
|
-
When writing task `prompt` fields
|
|
71
|
+
When writing task `prompt` fields involving creating content about real-world people, places, organizations, or topics — **include explicit instruction in prompt** telling agent to search internet first using available web search or fetch tools (e.g. `fetch_webpage`, web search MCP). Agents must never fabricate bios, descriptions, histories, statistics, or factual claims. If web search unavailable, prompt should instruct agent to use placeholder text clearly marked as `[NEEDS RESEARCH]` rather than inventing content.
|
|
72
72
|
|
|
73
|
-
Example prompt suffix
|
|
73
|
+
Example prompt suffix when content research needed:
|
|
74
74
|
> "Before writing any content about [topic], search the internet for accurate information. Do not make up facts, descriptions, or biographical details. Use verified sources only."
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
78
|
### Scaffolding Rule
|
|
79
79
|
|
|
80
|
-
New project from scratch? You MUST load
|
|
80
|
+
New project from scratch? You MUST load **backbone-scaffolding** skill; follow it.
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
@@ -85,41 +85,41 @@ New project from scratch? You MUST load the **backbone-scaffolding** skill and f
|
|
|
85
85
|
|
|
86
86
|
### 1. Analyse the Goal
|
|
87
87
|
|
|
88
|
-
- Read
|
|
89
|
-
- Search
|
|
90
|
-
- List
|
|
88
|
+
- Read user's goal. Identify **deliverables** — what must exist or change after run completes.
|
|
89
|
+
- Search codebase to understand current state, file layout, conventions.
|
|
90
|
+
- List high-level workstreams (e.g. "database changes", "UI components", "tests", "docs").
|
|
91
91
|
|
|
92
92
|
### 2. Decompose into Tasks
|
|
93
93
|
|
|
94
|
-
For each workstream, break
|
|
94
|
+
For each workstream, break down into smallest meaningful unit. Follow these rules:
|
|
95
95
|
|
|
96
96
|
1. **Single responsibility** — each task does exactly one thing.
|
|
97
|
-
2. **Self-contained prompt** —
|
|
98
|
-
3. **Explicit file scopes** — list every directory or file
|
|
97
|
+
2. **Self-contained prompt** — `prompt` field must contain everything agent needs: objective, file paths, constraints, acceptance criteria. Agent has no other context.
|
|
98
|
+
3. **Explicit file scopes** — list every directory or file task may touch in `files`. Use plain paths only: exact file paths (e.g. `app/page.tsx`) or directory paths (e.g. `app/about/`). **Glob patterns (`*`, `?`, `**`) not allowed** — engine rejects them.
|
|
99
99
|
|
|
100
|
-
4. **No partition conflicts** — two tasks may not share
|
|
100
|
+
4. **No partition conflicts** — two tasks may not share `files` entry if they run in parallel (same phase). Resolve by either:
|
|
101
101
|
- **Specificity**: replace a broad directory path with the specific files each task actually creates (e.g., instead of both tasks claiming `components/`, one gets `components/Hero.tsx` and the other gets `components/ProjectCard.tsx`)
|
|
102
102
|
- **Sequencing**: add a `depends_on` edge from the later task to the earlier one, so they run in different phases
|
|
103
103
|
|
|
104
|
-
> **Common mistake:** multiple tasks
|
|
104
|
+
> **Common mistake:** multiple tasks depending on single `setup` task will run in parallel, conflict if sharing directory like `components/`, `app/globals.css`, or `app/layout.tsx`. Always use specific file paths or sequence conflicting tasks.
|
|
105
105
|
|
|
106
|
-
5. **Appropriate agent** — pick
|
|
106
|
+
5. **Appropriate agent** — pick agent whose speciality matches task (e.g. `testing-expert` for tests, `database-engineer` for migrations).
|
|
107
107
|
6. **Realistic timeouts** — `30m` for most tasks; `1h` for large refactors; `10m` for small docs or config.
|
|
108
108
|
|
|
109
109
|
### 2.5 Foundation Phase for Multi-Page Projects
|
|
110
110
|
|
|
111
|
-
When
|
|
111
|
+
When goal involves building **2 or more pages, views, or UI sections**, apply Foundation-First Pattern to prevent consistency drift across parallel agents:
|
|
112
112
|
|
|
113
|
-
1. **Create
|
|
113
|
+
1. **Create foundation task** (`id: foundation-setup`) as FIRST task. This task:
|
|
114
114
|
- Creates a **design tokens file** (CSS custom properties for colors, typography, spacing, motion, shadows, breakpoints)
|
|
115
115
|
- Creates a **shared layout component** (page container with header, footer, navigation)
|
|
116
116
|
- Creates a **UI component library** (Button, Card, Heading, Text, Section, Container, Grid)
|
|
117
|
-
- Establishes
|
|
117
|
+
- Establishes **style guide** (aesthetic direction, content tone, terminology, navigation labels)
|
|
118
118
|
- Agent: `ui-ux-expert` or `developer`
|
|
119
119
|
|
|
120
|
-
2. **All page tasks must `depends_on: [foundation-setup]`** —
|
|
120
|
+
2. **All page tasks must `depends_on: [foundation-setup]`** — cannot run until foundation in place.
|
|
121
121
|
|
|
122
|
-
3. **Every page task prompt must include Foundation References** —
|
|
122
|
+
3. **Every page task prompt must include Foundation References** — 5 mandatory lines constrain agent to `use` existing artifacts instead of `creating` new ones:
|
|
123
123
|
```
|
|
124
124
|
### Foundation References (MANDATORY)
|
|
125
125
|
- Design tokens: `[path to tokens file]` — use ONLY these variables. No new color/font/spacing values.
|
|
@@ -137,14 +137,14 @@ When the goal involves building **2 or more pages, views, or UI sections**, appl
|
|
|
137
137
|
- The content tone (formal/casual, active/passive)
|
|
138
138
|
- Terminology choices (e.g., "projects" not "portfolio")
|
|
139
139
|
|
|
140
|
-
> **Why:** Without this pattern, parallel agents independently choose fonts, colors, component APIs,
|
|
140
|
+
> **Why:** Without this pattern, parallel agents independently choose fonts, colors, component APIs, content tone. Result looks built by different teams — because it was. Foundation-first makes consistency structural, not aspirational.
|
|
141
141
|
|
|
142
142
|
### 3. Define the Dependency Graph (DAG)
|
|
143
143
|
|
|
144
144
|
- Tasks with no dependencies run first (in parallel up to `concurrency`).
|
|
145
145
|
- Tasks consuming output of earlier tasks declare `depends_on`.
|
|
146
146
|
- **Never create cycles.**
|
|
147
|
-
- Verify
|
|
147
|
+
- Verify implicit phase structure:
|
|
148
148
|
```
|
|
149
149
|
Phase 1: [independent tasks]
|
|
150
150
|
Phase 2: [tasks depending only on Phase 1]
|
|
@@ -152,22 +152,22 @@ When the goal involves building **2 or more pages, views, or UI sections**, appl
|
|
|
152
152
|
|
|
153
153
|
### 4. Set Global Options
|
|
154
154
|
|
|
155
|
-
- `name` — short description of
|
|
155
|
+
- `name` — short description of run.
|
|
156
156
|
- `branch` — derive from the goal, e.g. `feat/auth-refactor`.
|
|
157
|
-
- `concurrency` — 2–3 for overnight runs; 1 if tasks share files or
|
|
158
|
-
- `on_failure` — `stop` when every subsequent task depends on success;
|
|
159
|
-
- `gates` — standard validation (lint, type-check, test) unless
|
|
157
|
+
- `concurrency` — 2–3 for overnight runs; 1 if tasks share files or machine is constrained.
|
|
158
|
+
- `on_failure` — `stop` when every subsequent task depends on success; else `continue`.
|
|
159
|
+
- `gates` — standard validation (lint, type-check, test) unless user specifies otherwise.
|
|
160
160
|
|
|
161
161
|
### 5. Write the Prompts
|
|
162
162
|
|
|
163
|
-
Each task `prompt` must be
|
|
163
|
+
Each task `prompt` must be **complete, standalone instruction**. Include:
|
|
164
164
|
|
|
165
165
|
- **What** to build / change / fix.
|
|
166
166
|
- **Where** — exact file paths or directories.
|
|
167
|
-
- **Why** — business context so
|
|
167
|
+
- **Why** — business context so agent can make good decisions.
|
|
168
168
|
- **Constraints** — coding standards, conventions, do-not-touch files.
|
|
169
169
|
- **Acceptance criteria** — bullet list of pass conditions.
|
|
170
|
-
- **Verification command** — e.g. `Run
|
|
170
|
+
- **Verification command** — e.g. `Run project's test command with coverage` so the agent self-checks.
|
|
171
171
|
|
|
172
172
|
> **Weak prompt:** "Add tests for the auth module."
|
|
173
173
|
>
|
|
@@ -181,20 +181,20 @@ Each task `prompt` must be a **complete, standalone instruction**. Include:
|
|
|
181
181
|
|
|
182
182
|
### 6. Output
|
|
183
183
|
|
|
184
|
-
Your response must contain **ONLY**
|
|
184
|
+
Your response must contain **ONLY** single ` ```json ` fenced code block — no text before, no text after, no explanations, no summaries, no DAG diagrams.
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
188
|
## Chain Mode (Subset Generation)
|
|
189
189
|
|
|
190
|
-
When
|
|
190
|
+
When `{{goal}}` section contains "Convoy Group Scope" heading, you are generating ONE convoy spec that is part of a larger convoy chain. The goal will contain original user prompt, group name, description, phases to cover, dependency info. Full PRD available in `{{context}}` as reference.
|
|
191
191
|
|
|
192
192
|
When chain mode is detected:
|
|
193
|
-
- **Only** generate tasks for
|
|
194
|
-
- Derive
|
|
195
|
-
- Derive
|
|
196
|
-
- **Keep prompts concise** — write
|
|
197
|
-
- Keep all other conventions
|
|
193
|
+
- **Only** generate tasks for phases listed in group scope. Do not include tasks from other phases.
|
|
194
|
+
- Derive convoy `name` from group name (e.g. "Database Setup").
|
|
195
|
+
- Derive `branch` from PRD's feature name (overridden by pipeline anyway).
|
|
196
|
+
- **Keep prompts concise** — write complete, self-contained prompts; avoid unnecessary verbosity. Focus on: what to do, which files to create/modify, key constraints, acceptance criteria.
|
|
197
|
+
- Keep all other conventions same as for single-spec generation.
|
|
198
198
|
|
|
199
199
|
---
|
|
200
200
|
|
|
@@ -224,39 +224,39 @@ When chain mode is detected:
|
|
|
224
224
|
|
|
225
225
|
## Self-Validation Checklist (MANDATORY)
|
|
226
226
|
|
|
227
|
-
Before outputting
|
|
227
|
+
Before outputting JSON, verify **every item** below. Downstream validator will reject your plan if any blocking checks fail — fix them now to avoid expensive retry cycles.
|
|
228
228
|
|
|
229
229
|
### Structural Integrity
|
|
230
230
|
|
|
231
231
|
- [ ] Every task has a unique `id` (lowercase, kebab-case)
|
|
232
|
-
- [ ] Every `depends_on` reference points to
|
|
232
|
+
- [ ] Every `depends_on` reference points to valid `id` defined in task list
|
|
233
233
|
- [ ] No dependency cycles exist (DAG is acyclic)
|
|
234
234
|
- [ ] No `files` entry contains `*`, `?`, or `**` — plain paths only
|
|
235
|
-
- [ ] Top-level `name
|
|
236
|
-
- [ ] Every task has both `id
|
|
235
|
+
- [ ] Top-level `name`, `tasks` fields present; `tasks` non-empty
|
|
236
|
+
- [ ] Every task has both `id`, `prompt` fields (both non-empty strings)
|
|
237
237
|
|
|
238
238
|
### Partition & Dependency Coherence
|
|
239
239
|
|
|
240
240
|
- [ ] No two parallel tasks (same phase / no `depends_on` edge) share any `files` entry — resolve with specific file paths or sequencing
|
|
241
|
-
- [ ] **Dependency completeness**: For every task prompt, scan for imports or references to files/types/components produced by other tasks. Each cross-reference MUST have
|
|
242
|
-
- [ ] **File list completeness**: Every file mentioned in
|
|
241
|
+
- [ ] **Dependency completeness**: For every task prompt, scan for imports or references to files/types/components produced by other tasks. Each cross-reference MUST have `depends_on` edge to producing task.
|
|
242
|
+
- [ ] **File list completeness**: Every file mentioned in task's prompt that agent will create or modify appears in that task's `files` list. Don't omit utility files, sub-components, or config files.
|
|
243
243
|
- [ ] **Prompt-dependency coherence**: Prompts do not include workarounds (stub files, `@ts-expect-error`, conditional imports) for outputs of tasks listed in `depends_on`, since those outputs are guaranteed to exist.
|
|
244
244
|
|
|
245
245
|
### Prompt Quality
|
|
246
246
|
|
|
247
|
-
- [ ] **Self-contained**:
|
|
248
|
-
- [ ] **File-specific**: Names
|
|
247
|
+
- [ ] **Self-contained**: Agent with zero context can execute prompt without external clarification.
|
|
248
|
+
- [ ] **File-specific**: Names exact files to create or modify — no vague references ("the frontend", "the codebase").
|
|
249
249
|
- [ ] **Substantive**: At least 2 meaningful sentences; no stubs (`...`), no placeholders.
|
|
250
250
|
- [ ] **Verifiable**: Contains acceptance criteria or explicit verification steps.
|
|
251
|
-
- [ ] **Agent domain matching**: Each task's `agent` matches
|
|
252
|
-
- [ ] **Content research compliance**: If
|
|
253
|
-
- [ ] **Foundation phase present** (multi-page only): If 2+ pages/UI sections,
|
|
251
|
+
- [ ] **Agent domain matching**: Each task's `agent` matches domain — `developer` for code, `testing-expert` for tests, `documentation-writer` for docs, `copywriter` for marketing copy, `ui-ux-expert` for UI, `database-engineer` for migrations, `security-expert` for auth/security, `data-expert` for ETL/scraping.
|
|
252
|
+
- [ ] **Content research compliance**: If prompt concerns real people, places, or organisations, includes research instruction.
|
|
253
|
+
- [ ] **Foundation phase present** (multi-page only): If 2+ pages/UI sections, `foundation-setup` task exists; all page tasks depend on it with 5 mandatory Foundation References.
|
|
254
254
|
|
|
255
255
|
---
|
|
256
256
|
|
|
257
257
|
## Historical Performance Context
|
|
258
258
|
|
|
259
|
-
When historical execution data
|
|
259
|
+
When historical execution data available (via `opencastle insights --json`), Team Lead should include compact summary in context. Example:
|
|
260
260
|
|
|
261
261
|
### Historical Performance (auto-generated)
|
|
262
262
|
Based on {N} past convoys:
|
|
@@ -264,5 +264,5 @@ Based on {N} past convoys:
|
|
|
264
264
|
- Recommended concurrency for {task_count} tasks: {recommended}
|
|
265
265
|
- Agents to watch: {high_retry_agents}
|
|
266
266
|
|
|
267
|
-
Use this data to make evidence-based decisions about agent assignment, concurrency,
|
|
267
|
+
Use this data to make evidence-based decisions about agent assignment, concurrency, timeout settings.
|
|
268
268
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Generate
|
|
2
|
+
description: 'Generate Product Requirements Document from high-level feature prompt. Output feeds directly into generate-convoy step.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
output: prd
|
|
5
5
|
---
|
|
@@ -8,9 +8,9 @@ output: prd
|
|
|
8
8
|
|
|
9
9
|
# Generate PRD
|
|
10
10
|
|
|
11
|
-
You are the Team Lead. Convert the feature request below into
|
|
11
|
+
You are the Team Lead. Convert the feature request below into structured Product Requirements Document (PRD). PRD consumed by `generate-convoy` step to produce automated agent task spec, so every section must be **concrete**, **specific**, **implementation-ready**.
|
|
12
12
|
|
|
13
|
-
> **⚠ QUALITY GATE:** This PRD goes through automated validation. Getting it right on
|
|
13
|
+
> **⚠ QUALITY GATE:** This PRD goes through automated validation. Getting it right on first attempt is critical — every fix cycle costs a full LLM round-trip. Follow ALL rules below precisely. Self-validation checklist at end is mandatory.
|
|
14
14
|
|
|
15
15
|
## Feature Request
|
|
16
16
|
|
|
@@ -24,24 +24,24 @@ You are the Team Lead. Convert the feature request below into a structured Produ
|
|
|
24
24
|
|
|
25
25
|
## Research Before Writing
|
|
26
26
|
|
|
27
|
-
If
|
|
27
|
+
If feature request involves specific person, place, organization, topic, or any real-world subject:
|
|
28
28
|
|
|
29
|
-
1. **Search the internet first** if web search or fetch tools
|
|
30
|
-
2. **If web search tools
|
|
29
|
+
1. **Search the internet first** if web search or fetch tools available (e.g. `fetch_webpage`, web search MCP, or similar). Use the search results to gather accurate facts, names, dates, descriptions, and other details.
|
|
30
|
+
2. **If web search tools unavailable or return no useful results**, you may use your training knowledge — but clearly mark any such content with:
|
|
31
31
|
> ℹ️ Content based on training data — verify before launch.
|
|
32
|
-
3. **Never fabricate or hallucinate content.** If you
|
|
32
|
+
3. **Never fabricate or hallucinate content.** If you have no knowledge about real-world subject and cannot search, state what is unknown; use placeholder text. Applies to all content: bios, descriptions, histories, statistics, quotes, any factual claims.
|
|
33
33
|
|
|
34
34
|
## Scaffolding Awareness
|
|
35
35
|
|
|
36
|
-
New project from scratch? You MUST load
|
|
36
|
+
New project from scratch? You MUST load **backbone-scaffolding** skill; follow it.
|
|
37
37
|
|
|
38
38
|
## Output Rules
|
|
39
39
|
|
|
40
|
-
**CRITICAL:** Return the PRD as your text response. Do NOT create any files. Do NOT use file-writing tools.
|
|
40
|
+
**CRITICAL:** Return the PRD as your text response. Do NOT create any files. Do NOT use file-writing tools. Output full PRD document as text. Do not wrap in code fence — start directly with `#` heading. Do not summarize — output complete document.
|
|
41
41
|
|
|
42
42
|
## Required PRD Structure
|
|
43
43
|
|
|
44
|
-
Produce
|
|
44
|
+
Produce PRD in Markdown using **exactly** sections below. Do not skip or merge sections.
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
@@ -49,22 +49,22 @@ Produce the PRD in Markdown using **exactly** the sections below. Do not skip or
|
|
|
49
49
|
|
|
50
50
|
## Overview
|
|
51
51
|
|
|
52
|
-
2–3 sentences: what this feature does, who benefits,
|
|
52
|
+
2–3 sentences: what this feature does, who benefits, why it matters now.
|
|
53
53
|
|
|
54
54
|
## Goals
|
|
55
55
|
|
|
56
|
-
Numbered list of specific, measurable outcomes this feature must achieve. Each goal
|
|
56
|
+
Numbered list of specific, measurable outcomes this feature must achieve. Each goal: single sentence with clear success condition.
|
|
57
57
|
|
|
58
58
|
1. …
|
|
59
59
|
2. …
|
|
60
60
|
|
|
61
61
|
## Non-Goals
|
|
62
62
|
|
|
63
|
-
Explicit exclusions — what this work does **not** cover. If nothing
|
|
63
|
+
Explicit exclusions — what this work does **not** cover. If nothing excluded, write "None."
|
|
64
64
|
|
|
65
65
|
## User Stories & Acceptance Criteria
|
|
66
66
|
|
|
67
|
-
For each primary scenario, write
|
|
67
|
+
For each primary scenario, write user story + binary acceptance criteria. Criteria must be testable (pass/fail — no subjective language).
|
|
68
68
|
|
|
69
69
|
**Quality rules for acceptance criteria (the validator WILL reject violations):**
|
|
70
70
|
- Every criterion must be evaluable as deterministic pass/fail — no subjective language ("looks good", "feels responsive", "is clean", "visually distinct")
|
|
@@ -83,7 +83,7 @@ Acceptance criteria:
|
|
|
83
83
|
|
|
84
84
|
## Technical Requirements
|
|
85
85
|
|
|
86
|
-
Specific technical constraints
|
|
86
|
+
Specific technical constraints implementation must respect:
|
|
87
87
|
- Libraries, framework versions to use or avoid
|
|
88
88
|
- API contracts or interfaces that must not break
|
|
89
89
|
- Performance thresholds (e.g., "<200 ms p95 latency")
|
|
@@ -92,7 +92,7 @@ Specific technical constraints the implementation must respect:
|
|
|
92
92
|
|
|
93
93
|
## Implementation Scope
|
|
94
94
|
|
|
95
|
-
List **every file and directory** that will be created, modified, or deleted. Use specific paths — not broad paths like `src/`. Group by concern. Use compact file lists — group related files with commas instead of separate rows when
|
|
95
|
+
List **every file and directory** that will be created, modified, or deleted. Use specific paths — not broad paths like `src/`. Group by concern. Use compact file lists — group related files with commas instead of separate rows when sharing a concern. Do NOT use glob patterns (`*`, `**`). Every concern must list at least one specific file.
|
|
96
96
|
|
|
97
97
|
| Concern | Files / Directories |
|
|
98
98
|
|---------|---------------------|
|
|
@@ -104,18 +104,18 @@ List **every file and directory** that will be created, modified, or deleted. Us
|
|
|
104
104
|
| [Config / env] | `.env.example` |
|
|
105
105
|
|
|
106
106
|
**File partition rules (important for parallel execution):**
|
|
107
|
-
- No two concurrent workstreams may modify
|
|
108
|
-
- If two workstreams need
|
|
107
|
+
- No two concurrent workstreams may modify same file
|
|
108
|
+
- If two workstreams need same file, must be sequenced (Phase N+1 after Phase N)
|
|
109
109
|
|
|
110
110
|
## Task Breakdown
|
|
111
111
|
|
|
112
|
-
Decompose into
|
|
112
|
+
Decompose into minimum number of phases. Tasks in same phase run in parallel; **must not share any files**.
|
|
113
113
|
|
|
114
114
|
Keep task descriptions **brief** — 1 sentence each. List only file paths, not explanations. Prefer compact formatting.
|
|
115
115
|
|
|
116
116
|
**Quality rules (the validator WILL reject violations):**
|
|
117
117
|
- Each workstream must list exact files it will modify
|
|
118
|
-
- No two parallel workstreams (same phase) may claim
|
|
118
|
+
- No two parallel workstreams (same phase) may claim same file
|
|
119
119
|
- Phases must have explicit dependency declarations (`depends on: Phase N`)
|
|
120
120
|
- No circular dependencies
|
|
121
121
|
|
|
@@ -138,8 +138,8 @@ Phase 3 — Verification (depends on Phase 2):
|
|
|
138
138
|
|
|
139
139
|
## Success Criteria
|
|
140
140
|
|
|
141
|
-
Measurable, binary checks
|
|
142
|
-
- [ ] All acceptance criteria in User Stories & Acceptance Criteria pass
|
|
141
|
+
Measurable, binary checks confirming feature is shippable:
|
|
142
|
+
- [ ] All acceptance criteria in User Stories All acceptance criteria in User Stories & Acceptance Criteria pass Acceptance Criteria pass
|
|
143
143
|
- [ ] TypeScript compiles with zero errors
|
|
144
144
|
- [ ] Lint passes with zero warnings
|
|
145
145
|
- [ ] Unit test coverage ≥ 95% on all new/changed files
|
|
@@ -150,31 +150,31 @@ Measurable, binary checks that confirm the feature is shippable:
|
|
|
150
150
|
- **[Risk title]**: [Description of the risk] — *Mitigation: [How to handle it]*
|
|
151
151
|
- **[Open question]**: [What needs to be decided before implementation can start]
|
|
152
152
|
|
|
153
|
-
If
|
|
153
|
+
If no risks or open questions, write "None identified."
|
|
154
154
|
|
|
155
155
|
---
|
|
156
156
|
|
|
157
157
|
## Self-Validation Checklist (MANDATORY)
|
|
158
158
|
|
|
159
|
-
Before outputting
|
|
159
|
+
Before outputting PRD, verify **every item** below. Downstream validator will reject your PRD if any blocking checks fail — fix them now to avoid expensive retry cycles.
|
|
160
160
|
|
|
161
161
|
### Structural Integrity
|
|
162
162
|
|
|
163
|
-
- [ ] **No conflicting requirements**: Technical Requirements, Non-Goals, Risks & Open Questions, and User Stories must not contradict each other.
|
|
164
|
-
- [ ] **No duplicate open questions**: If a question is already answered elsewhere, do not re-open it in Risks & Open Questions.
|
|
163
|
+
- [ ] **No conflicting requirements**: Technical Requirements, Non-Goals, Risks **No conflicting requirements**: Technical Requirements, Non-Goals, Risks & Open Questions, and User Stories must not contradict each other. Open Questions, User Stories must not contradict each other.
|
|
164
|
+
- [ ] **No duplicate open questions**: If question already answered elsewhere, do not re-open in Risks **No duplicate open questions**: If a question is already answered elsewhere, do not re-open it in Risks & Open Questions. Open Questions.
|
|
165
165
|
- [ ] **No circular dependencies**: Phase dependency graph is acyclic.
|
|
166
166
|
- [ ] **No placeholder text**: Every section has real content, not template filler ("2–3 sentences about…", "Description here").
|
|
167
167
|
|
|
168
168
|
### Implementation Coherence
|
|
169
169
|
|
|
170
|
-
- [ ] **File completeness**: Every file mentioned in User Story acceptance criteria or Technical Requirements appears in
|
|
171
|
-
- [ ] **No file partition conflicts**: No two parallel workstreams (same phase) claim
|
|
172
|
-
- [ ] **Every workstream lists files**: Including verification-only workstreams — add "Files: none — verification only" if no artifacts
|
|
173
|
-
- [ ] **No orphan files**: Every file in
|
|
170
|
+
- [ ] **File completeness**: Every file mentioned in User Story acceptance criteria or Technical Requirements appears in Implementation Scope table AND in Task Breakdown file lists.
|
|
171
|
+
- [ ] **No file partition conflicts**: No two parallel workstreams (same phase) claim same file.
|
|
172
|
+
- [ ] **Every workstream lists files**: Including verification-only workstreams — add "Files: none — verification only" if no artifacts produced.
|
|
173
|
+
- [ ] **No orphan files**: Every file in Implementation Scope table is assigned to exactly one workstream in Task Breakdown.
|
|
174
174
|
- [ ] **Scope specificity**: Implementation Scope uses specific subdirectory or file paths — not just `src/` or `the frontend`.
|
|
175
175
|
|
|
176
176
|
### Language Quality
|
|
177
177
|
|
|
178
178
|
- [ ] **Testable acceptance criteria**: Every criterion is evaluable as deterministic pass/fail — no subjective language ("looks good", "feels responsive").
|
|
179
|
-
- [ ] **No optional modals
|
|
180
|
-
- [ ] **Domain acronyms expanded**: Non-standard acronyms
|
|
179
|
+
- [ ] **No optional modals**: Acceptance criteria do not use "should", "might", "could", "may" — use "must" or "will".
|
|
180
|
+
- [ ] **Domain acronyms expanded**: Non-standard acronyms expanded on first use (standard ones like API, CLI, JSON, REST, etc. fine).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Instruct the Team Lead to implement
|
|
2
|
+
description: 'Instruct the Team Lead to implement specific task from a roadmap with full orchestration, validation, traceability.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ agent: 'Team Lead (OpenCastle)'
|
|
|
7
7
|
|
|
8
8
|
# Implement Roadmap Task
|
|
9
9
|
|
|
10
|
-
You are the Team Lead. Implement the roadmap task described below following this strict workflow.
|
|
10
|
+
You are the Team Lead. Implement the roadmap task described below following this strict workflow. Task comes from `.opencastle/project/roadmap.md`.
|
|
11
11
|
|
|
12
12
|
## Task
|
|
13
13
|
|
|
@@ -17,7 +17,7 @@ You are the Team Lead. Implement the roadmap task described below following this
|
|
|
17
17
|
|
|
18
18
|
## Workflow
|
|
19
19
|
|
|
20
|
-
> **HARD GATE:** Steps 1→2 are **blocking prerequisites**. Do NOT write, edit, or delegate any code until tracker issues exist for every subtask. If you catch yourself writing code before issues are created, STOP immediately
|
|
20
|
+
> **HARD GATE:** Steps 1→2 are **blocking prerequisites**. Do NOT write, edit, or delegate any code until tracker issues exist for every subtask. If you catch yourself writing code before issues are created, STOP immediately; create the issues; then resume.
|
|
21
21
|
|
|
22
22
|
### 1. Research & Context Gathering
|
|
23
23
|
|
|
@@ -39,7 +39,7 @@ Every subtask must be tracked. **No issue = no implementation.** This step produ
|
|
|
39
39
|
|
|
40
40
|
### 2.5 Generate Convoy Spec (BLOCKING — decides how Step 3 proceeds)
|
|
41
41
|
|
|
42
|
-
All project-related work
|
|
42
|
+
All project-related work executes via the convoy engine — regardless of subtask count.
|
|
43
43
|
|
|
44
44
|
1. **Generate the spec** — use the `generate-convoy` prompt with the decomposed task list. The spec IS the implementation plan; even single-task fixes go through convoy for observability.
|
|
45
45
|
2. **Hand the spec to the user** — tell them to run: `npx opencastle run -f .opencastle/convoys/<name>.convoy.yml`
|
|
@@ -48,26 +48,26 @@ All project-related work is executed via the convoy engine — regardless of sub
|
|
|
48
48
|
|
|
49
49
|
### 3. Implementation Rules
|
|
50
50
|
|
|
51
|
-
> **Convoy execution:**
|
|
51
|
+
> **Convoy execution:** Convoy spec IS the implementation plan — skip manual delegation; jump to Step 4 after user runs convoy.
|
|
52
52
|
|
|
53
53
|
#### Issue Traceability
|
|
54
54
|
|
|
55
|
-
- Include
|
|
55
|
+
- Include tracker issue ID and title in every delegation prompt
|
|
56
56
|
- Reference issue IDs (e.g., `TAS-42`) in commit messages; move issues In Progress → Done as work progresses
|
|
57
57
|
|
|
58
58
|
#### DRY Code
|
|
59
59
|
|
|
60
|
-
- Search before creating — check for existing components, hooks, utilities,
|
|
60
|
+
- Search before creating — check for existing components, hooks, utilities, queries first
|
|
61
61
|
- Extract shared logic to `libs/`; no copy-paste across apps. Refactor duplicates when discovered
|
|
62
62
|
|
|
63
63
|
#### Visual Consistency
|
|
64
64
|
|
|
65
|
-
- Use
|
|
66
|
-
- Match spacing, typography,
|
|
65
|
+
- Use shared component library; never re-implement existing components
|
|
66
|
+
- Match spacing, typography, colors from existing pages; verify in all affected apps
|
|
67
67
|
|
|
68
68
|
### 4. Validation & Testing
|
|
69
69
|
|
|
70
|
-
> Load
|
|
70
|
+
> Load **validation-gates** skill for detailed steps on each gate.
|
|
71
71
|
|
|
72
72
|
Every subtask must pass ALL gates before being marked Done:
|
|
73
73
|
|
|
@@ -83,7 +83,7 @@ Every subtask must pass ALL gates before being marked Done:
|
|
|
83
83
|
|
|
84
84
|
### 5. Delivery
|
|
85
85
|
|
|
86
|
-
Follow
|
|
86
|
+
Follow **Delivery Outcome** in **git-workflow** skill — commit, push, open PR (not merged), link to tracker. Convoy engine creates commits on configured `branch` directly; open PR from that branch after validation passes.
|
|
87
87
|
|
|
88
88
|
### 6. Documentation & Traceability
|
|
89
89
|
|
|
@@ -95,15 +95,15 @@ Follow the **Delivery Outcome** defined in the **git-workflow** skill — commit
|
|
|
95
95
|
|
|
96
96
|
### 7. Completion Criteria
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
Roadmap task is complete when:
|
|
99
99
|
|
|
100
100
|
- [ ] All tracker subtask issues are Done
|
|
101
|
-
- [ ] **All UI changes verified in Chrome browser via MCP with screenshots
|
|
102
|
-
- [ ] **Every feature in
|
|
101
|
+
- [ ] **All UI changes verified in Chrome browser via MCP with screenshots as proof**
|
|
102
|
+
- [ ] **Every feature in acceptance criteria visually confirmed** — not just "page loads"
|
|
103
103
|
- [ ] No duplicated code — shared logic extracted to libraries
|
|
104
|
-
- [ ] Visual consistency maintained across all affected pages
|
|
104
|
+
- [ ] Visual consistency maintained across all affected pages, apps
|
|
105
105
|
- [ ] Documentation updated (roadmap, known issues, decisions)
|
|
106
106
|
- [ ] Panel review passed for any high-stakes changes
|
|
107
107
|
- [ ] Roadmap item marked complete in `.opencastle/project/roadmap.md`
|
|
108
|
-
- [ ] Delivery Outcome completed (see
|
|
108
|
+
- [ ] Delivery Outcome completed (see **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
|
|
109
109
|
- [ ] Lessons learned captured if any retries occurred
|