opencastle 0.29.0 → 0.30.0
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/convoy/engine.js +1 -1
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/pipeline.d.ts +17 -0
- package/dist/cli/pipeline.d.ts.map +1 -1
- package/dist/cli/pipeline.js +238 -19
- package/dist/cli/pipeline.js.map +1 -1
- package/dist/cli/pipeline.test.d.ts +2 -0
- package/dist/cli/pipeline.test.d.ts.map +1 -0
- package/dist/cli/pipeline.test.js +178 -0
- package/dist/cli/pipeline.test.js.map +1 -0
- package/package.json +1 -1
- package/src/cli/convoy/engine.ts +1 -1
- package/src/cli/pipeline.test.ts +191 -0
- package/src/cli/pipeline.ts +302 -21
- package/src/dashboard/dist/index.html +398 -5
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/src/pages/index.astro +490 -4
- package/src/orchestrator/agents/team-lead.agent.md +13 -0
- package/src/orchestrator/prompts/fix-prd.prompt.md +58 -0
- package/src/orchestrator/prompts/generate-convoy.prompt.md +23 -0
- package/src/orchestrator/prompts/generate-prd.prompt.md +32 -0
|
@@ -309,6 +309,29 @@ For complex tasks, consider using `steps` to break the prompt into sequential su
|
|
|
309
309
|
>
|
|
310
310
|
> **Strong prompt:** "Write unit tests for `libs/auth/src/server.ts` covering token refresh, expiry edge cases, and invalid signatures. Place tests in `libs/auth/src/__tests__/server.test.ts`. Follow the existing test conventions. Achieve ≥ 95 % coverage for `server.ts`. Run the project's test command with coverage and fix any failures."
|
|
311
311
|
|
|
312
|
+
### Chain Mode (Subset Generation)
|
|
313
|
+
|
|
314
|
+
When the `{{context}}` field contains a JSON object with `"mode": "chain_subset"`, you are generating ONE convoy spec that is part of a larger convoy chain. The context will look like:
|
|
315
|
+
|
|
316
|
+
```json
|
|
317
|
+
{
|
|
318
|
+
"mode": "chain_subset",
|
|
319
|
+
"group_name": "database-setup",
|
|
320
|
+
"group_description": "Schema changes and migrations",
|
|
321
|
+
"group_phases": [1],
|
|
322
|
+
"depends_on_groups": [],
|
|
323
|
+
"total_groups": 3,
|
|
324
|
+
"group_index": 1
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
When this context is present:
|
|
329
|
+
- **Only** generate tasks for the phases listed in `group_phases`. Do not include tasks from other phases.
|
|
330
|
+
- Use `version: 1` — this spec is a single convoy, not a pipeline.
|
|
331
|
+
- Derive the convoy `name` from `group_name` (e.g., "Database Setup").
|
|
332
|
+
- Derive the `branch` from the PRD's feature name, but it will be overridden by the pipeline anyway.
|
|
333
|
+
- Keep all other conventions (prompts, files, gates, etc.) the same as for single-spec generation.
|
|
334
|
+
|
|
312
335
|
### 6. Validate Before Outputting
|
|
313
336
|
|
|
314
337
|
Before presenting the YAML, mentally verify:
|
|
@@ -124,3 +124,35 @@ Measurable, binary checks that confirm the feature is shippable:
|
|
|
124
124
|
- **[Open question]**: [What needs to be decided before implementation can start]
|
|
125
125
|
|
|
126
126
|
If there are no risks or open questions, write "None identified."
|
|
127
|
+
|
|
128
|
+
## Complexity Assessment
|
|
129
|
+
|
|
130
|
+
Produce a fenced JSON block with the following fields. This is consumed programmatically by the pipeline to decide whether to generate a single convoy spec or a convoy chain.
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"total_tasks": 12,
|
|
135
|
+
"total_phases": 4,
|
|
136
|
+
"domains": ["database", "api", "frontend", "testing"],
|
|
137
|
+
"estimated_duration_minutes": 120,
|
|
138
|
+
"complexity": "low",
|
|
139
|
+
"recommended_strategy": "single",
|
|
140
|
+
"chain_rationale": "",
|
|
141
|
+
"convoy_groups": [
|
|
142
|
+
{
|
|
143
|
+
"name": "full-implementation",
|
|
144
|
+
"description": "All phases in a single convoy",
|
|
145
|
+
"phases": [1, 2, 3, 4],
|
|
146
|
+
"depends_on": []
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Strategy decision rules:**
|
|
153
|
+
- Use `"single"` when: total tasks ≤ 8, or total phases ≤ 3, or all tasks are tightly coupled with heavy cross-phase file sharing.
|
|
154
|
+
- Use `"chain"` when: total tasks > 8 AND total phases > 3 AND domains have natural boundaries (e.g., database changes are independent from frontend components from test suites) — AND splitting would improve failure isolation, observability, or retry granularity.
|
|
155
|
+
- When `"single"`: provide exactly one convoy group covering all phases.
|
|
156
|
+
- When `"chain"`: provide 2–4 convoy groups with explicit `depends_on` order. Each group should cover a coherent domain boundary.
|
|
157
|
+
- `complexity` values: `"low"` (1–4 tasks), `"medium"` (5–8 tasks), `"high"` (9+ tasks).
|
|
158
|
+
- `chain_rationale` is only filled when `recommended_strategy` is `"chain"` — explain WHY splitting benefits this specific feature.
|