opencastle 0.35.1 → 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/README.md +1 -1
- package/dist/cli/adapters/antigravity.d.ts +13 -7
- package/dist/cli/adapters/antigravity.d.ts.map +1 -1
- package/dist/cli/adapters/antigravity.js +15 -9
- package/dist/cli/adapters/antigravity.js.map +1 -1
- package/dist/cli/adapters/claude-code.d.ts +1 -1
- package/dist/cli/adapters/claude-code.js +1 -1
- package/dist/cli/adapters/codex.d.ts +1 -1
- package/dist/cli/adapters/codex.js +1 -1
- package/dist/cli/adapters/opencode.d.ts +1 -1
- package/dist/cli/adapters/opencode.js +1 -1
- package/dist/cli/adapters/single-file-base.d.ts.map +1 -1
- package/dist/cli/adapters/single-file-base.js +17 -18
- package/dist/cli/adapters/single-file-base.js.map +1 -1
- package/dist/cli/init.js +1 -1
- package/dist/cli/init.test.js +21 -18
- package/dist/cli/init.test.js.map +1 -1
- package/dist/cli/mcp.js +1 -1
- package/dist/cli/mcp.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/adapters/antigravity.ts +15 -9
- package/src/cli/adapters/claude-code.ts +1 -1
- package/src/cli/adapters/codex.ts +1 -1
- package/src/cli/adapters/opencode.ts +1 -1
- package/src/cli/adapters/single-file-base.ts +20 -17
- package/src/cli/init.test.ts +24 -18
- package/src/cli/init.ts +1 -1
- package/src/cli/mcp.ts +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 +6 -6
- 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 +3 -3
- 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 +6 -6
- 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 +3 -3
- 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 +8 -8
- package/src/orchestrator/agents/data-expert.agent.md +10 -10
- 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 +11 -11
- package/src/orchestrator/agents/documentation-writer.agent.md +9 -9
- package/src/orchestrator/agents/performance-expert.agent.md +9 -9
- package/src/orchestrator/agents/release-manager.agent.md +9 -9
- package/src/orchestrator/agents/researcher.agent.md +5 -5
- package/src/orchestrator/agents/reviewer.agent.md +6 -6
- package/src/orchestrator/agents/security-expert.agent.md +10 -10
- package/src/orchestrator/agents/seo-specialist.agent.md +12 -12
- package/src/orchestrator/agents/session-guard.agent.md +3 -3
- package/src/orchestrator/agents/team-lead.agent.md +5 -5
- package/src/orchestrator/agents/testing-expert.agent.md +8 -8
- package/src/orchestrator/agents/ui-ux-expert.agent.md +15 -15
- package/src/orchestrator/customizations/agents/agent-registry.md +8 -8
- 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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Task orchestrator
|
|
2
|
+
description: 'Task orchestrator: analyzes work, decomposes into subtasks, delegates to specialized agents via sub-agents (inline) or background sessions (parallel worktrees).'
|
|
3
3
|
name: 'Team Lead (OpenCastle)'
|
|
4
|
-
model: Claude Opus 4.
|
|
4
|
+
model: Claude Opus 4.7
|
|
5
5
|
tools: [read/problems, read/readFile, agent/runSubagent, edit/createDirectory, edit/createFile, edit/createJupyterNotebook, edit/editFiles, edit/editNotebook, search/changes, search/codebase, search/fileSearch, search/listDirectory, search/searchResults, search/textSearch, search/usages, web/fetch, agent, execute/runInTerminal, execute/getTerminalOutput, read/terminalLastCommand, read/terminalSelection]
|
|
6
6
|
agents: ['*']
|
|
7
7
|
handoffs:
|
|
@@ -59,7 +59,7 @@ Developer | UI/UX Expert | Content Engineer | Database Engineer | Testing Expert
|
|
|
59
59
|
|
|
60
60
|
## Delegation
|
|
61
61
|
|
|
62
|
-
**Sub-agents** (`runSubagent`): synchronous, critical-path. **Background agents**: async in isolated worktrees, parallel work. Always name
|
|
62
|
+
**Sub-agents** (`runSubagent`): synchronous, critical-path. **Background agents**: async in isolated worktrees, parallel work. Always name agent explicitly. Include: issue ID, objective, file paths, acceptance criteria, self-improvement reminder.
|
|
63
63
|
|
|
64
64
|
**⛔ Hard gates:**
|
|
65
65
|
- Log delegation record immediately after each return/spawn — **observability-logging** (`--mechanism sub-agent` or `--mechanism background`).
|
|
@@ -88,11 +88,11 @@ Developer | UI/UX Expert | Content Engineer | Database Engineer | Testing Expert
|
|
|
88
88
|
|
|
89
89
|
**Step 5 — Deliver:** See [shared-delivery-phase.md](../agent-workflows/shared-delivery-phase.md). Verify all Done → build/lint/test → commit feature branch → `GH_PAGER=cat gh pr create` — do NOT merge → link PR → clean checkpoint → call **Session Guard**.
|
|
90
90
|
|
|
91
|
-
**On Resume:** Read `SESSION-CHECKPOINT.md`. Check `AGENT-FAILURES.md
|
|
91
|
+
**On Resume:** Read `SESSION-CHECKPOINT.md`. Check `AGENT-FAILURES.md`, `DISPUTES.md`. List In Progress / Todo → continue.
|
|
92
92
|
|
|
93
93
|
## Observability
|
|
94
94
|
|
|
95
|
-
> **⛔ HARD GATE.** Load **observability-logging** for schemas, commands,
|
|
95
|
+
> **⛔ HARD GATE.** Load **observability-logging** for schemas, commands, pre-response quality gate. Before Session Guard: delegation count + review count = records written.
|
|
96
96
|
|
|
97
97
|
## Rules
|
|
98
98
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Testing expert
|
|
2
|
+
description: 'Testing expert: E2E tests, integration tests, browser validation, test suites via browser automation, test file authoring.'
|
|
3
3
|
name: 'Testing Expert'
|
|
4
|
-
model: GPT-5.
|
|
4
|
+
model: GPT-5.5-Codex
|
|
5
5
|
tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
|
|
6
6
|
user-invocable: false
|
|
7
7
|
---
|
|
@@ -12,7 +12,7 @@ Validates UI changes via browser automation; writes E2E/integration suites. TDD-
|
|
|
12
12
|
|
|
13
13
|
## Skills
|
|
14
14
|
|
|
15
|
-
Resolve
|
|
15
|
+
Resolve skills via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
|
|
16
16
|
|
|
17
17
|
## Rules
|
|
18
18
|
|
|
@@ -27,7 +27,7 @@ Resolve all skills via [skill-matrix.json](.opencastle/agents/skill-matrix.json)
|
|
|
27
27
|
|
|
28
28
|
## Anti-Patterns
|
|
29
29
|
|
|
30
|
-
- Assert mock behavior; skip
|
|
30
|
+
- Assert mock behavior; skip full suite; test-after; desktop-only testing; test-only prod methods
|
|
31
31
|
|
|
32
32
|
## Test Plan
|
|
33
33
|
|
|
@@ -38,8 +38,8 @@ Every suite covers: Initial State · User Interactions · State Transitions · E
|
|
|
38
38
|
- `data-testid` for element selection; mock external APIs only (not internal modules)
|
|
39
39
|
- Deterministic tests — no `sleep`/timing hacks; use `waitFor`/expect-based polling
|
|
40
40
|
- Browser: `evaluate_script()` over `take_snapshot()`, max 3 screenshots, clear state between flows
|
|
41
|
-
- Test keyboard navigation
|
|
42
|
-
- Load **browser-testing** skill for breakpoint checklists
|
|
41
|
+
- Test keyboard navigation, accessibility
|
|
42
|
+
- Load **browser-testing** skill for breakpoint checklists, exact commands
|
|
43
43
|
|
|
44
44
|
## When Stuck
|
|
45
45
|
|
|
@@ -60,8 +60,8 @@ Every suite covers: Initial State · User Interactions · State Transitions · E
|
|
|
60
60
|
|
|
61
61
|
1. **Test Files** — created/modified
|
|
62
62
|
2. **Coverage** — count, pass/fail, percentage
|
|
63
|
-
3. **Browser Validation** — screenshots
|
|
63
|
+
3. **Browser Validation** — screenshots, what they prove
|
|
64
64
|
4. **Edge Cases** — covered and gaps
|
|
65
65
|
5. **Regressions** — adjacent features verified
|
|
66
66
|
|
|
67
|
-
See [Base Output Contract](../snippets/base-output-contract.md) for
|
|
67
|
+
See [Base Output Contract](../snippets/base-output-contract.md) for standard closing items.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'UI/UX expert
|
|
2
|
+
description: 'UI/UX expert: designs, builds accessible, consistent UI components with deep design system knowledge.'
|
|
3
3
|
name: 'UI/UX Expert'
|
|
4
4
|
model: Claude Sonnet 4.6
|
|
5
5
|
tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'vscode/getProjectSetupInfo', 'vscode/installExtension', 'vscode/newWorkspace', 'vscode/runCommand', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
|
|
@@ -9,11 +9,11 @@ user-invocable: false
|
|
|
9
9
|
# UI/UX Expert
|
|
10
10
|
|
|
11
11
|
## Critical Rules
|
|
12
|
-
1. **Design system first** — check existing tokens, components,
|
|
12
|
+
1. **Design system first** — check existing tokens, components, patterns before creating new
|
|
13
13
|
2. **Semantic HTML before ARIA** — fix structure first; only add ARIA when semantic HTML is insufficient
|
|
14
|
-
3. **Mobile-first always** — design at
|
|
15
|
-
4. **Place shared components in
|
|
16
|
-
5. **Validate at all breakpoints** — load
|
|
14
|
+
3. **Mobile-first always** — design at smallest breakpoint; never start at desktop
|
|
15
|
+
4. **Place shared components in UI library** — never in app-specific directories
|
|
16
|
+
5. **Validate at all breakpoints** — load **e2e-testing** skill for resize commands, checklists
|
|
17
17
|
|
|
18
18
|
## Anti-Patterns
|
|
19
19
|
- Generic AI aesthetics (Inter font, purple gradients, card grids) — be distinctive
|
|
@@ -21,25 +21,25 @@ user-invocable: false
|
|
|
21
21
|
- Adding ARIA before fixing semantic HTML; desktop-first development
|
|
22
22
|
|
|
23
23
|
## Skills
|
|
24
|
-
Resolve
|
|
24
|
+
Resolve skills (slots, direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
|
|
25
25
|
|
|
26
26
|
## When Stuck
|
|
27
27
|
| Problem | Solution |
|
|
28
28
|
|---------|----------|
|
|
29
|
-
| Can't find the design token | Check
|
|
29
|
+
| Can't find the design token | Check UI library's token file before hardcoding |
|
|
30
30
|
| Component looks generic / AI-generated | Add one distinctive element: type scale, spacing, or brand motion |
|
|
31
|
-
| Keyboard navigation is broken | Trace focus order from
|
|
31
|
+
| Keyboard navigation is broken | Trace focus order from first focusable element |
|
|
32
32
|
| Responsive breakpoint fails | Check `testing-config.md` for project-defined breakpoints |
|
|
33
33
|
|
|
34
34
|
## Guidelines
|
|
35
|
-
- Export all components from
|
|
36
|
-
- Implement hover, focus,
|
|
37
|
-
- Co-locate component styles with
|
|
35
|
+
- Export all components from UI library index; use `clsx` for conditional classes
|
|
36
|
+
- Implement hover, focus, active states for all interactive elements
|
|
37
|
+
- Co-locate component styles with component file; test with keyboard-only navigation
|
|
38
38
|
|
|
39
39
|
### Multi-Page Convoy Consistency
|
|
40
|
-
- **Foundation task:** create design tokens, shared layout,
|
|
41
|
-
- **Page task:** import from foundation — no new tokens, layouts,
|
|
42
|
-
- Load
|
|
40
|
+
- **Foundation task:** create design tokens, shared layout, UI component library — choices are project contract
|
|
41
|
+
- **Page task:** import from foundation — no new tokens, layouts, design values
|
|
42
|
+
- Load **project-consistency** skill for full guidance
|
|
43
43
|
|
|
44
44
|
## Done When
|
|
45
45
|
- Components render at all defined responsive breakpoints
|
|
@@ -57,4 +57,4 @@ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents
|
|
|
57
57
|
3. **Responsive** — breakpoints tested (per project testing config)
|
|
58
58
|
4. **Visual Evidence** — screenshots at each breakpoint
|
|
59
59
|
|
|
60
|
-
See [Base Output Contract](../snippets/base-output-contract.md) for
|
|
60
|
+
See [Base Output Contract](../snippets/base-output-contract.md) for standard closing items.
|
|
@@ -10,22 +10,22 @@ Project-specific agent-to-model assignments and scope examples referenced by the
|
|
|
10
10
|
| Agent | Model | Tier | Best For |
|
|
11
11
|
|-------|-------|------|----------|
|
|
12
12
|
| **Developer** | Claude Sonnet 4.6 | Quality | Full-stack feature implementation, pages, components, routing, API routes |
|
|
13
|
-
| **Testing Expert** | GPT-5.
|
|
13
|
+
| **Testing Expert** | GPT-5.5-Codex | Fast | E2E tests, browser validation, terminal-heavy test loops |
|
|
14
14
|
| **Content Engineer** | Gemini 3.1 Pro | Standard | CMS schema, content queries, MCP tool coordination |
|
|
15
15
|
| **Database Engineer** | Gemini 3.1 Pro | Standard | Migrations, RLS policies, SQL optimization |
|
|
16
16
|
| **UI/UX Expert** | Claude Sonnet 4.6 | Quality | Components, styling, accessibility, frontend design |
|
|
17
17
|
| **Performance Expert** | Gemini 3.1 Pro | Standard | Bundle size, Core Web Vitals, profiling |
|
|
18
18
|
| **Security Expert** | Claude Sonnet 4.6 | Quality | Auth, RLS audits, headers, precision analysis |
|
|
19
|
-
| **Data Expert** | GPT-5.
|
|
20
|
-
| **DevOps Expert** | GPT-5.
|
|
21
|
-
| **Documentation Writer** | GPT-5 mini | Economy | Docs, roadmaps, ADRs (cost-effective) |
|
|
19
|
+
| **Data Expert** | GPT-5.5-Codex | Fast | ETL pipelines, scrapers, terminal-heavy data import |
|
|
20
|
+
| **DevOps Expert** | GPT-5.5-Codex | Fast | Deployments, cron jobs, terminal-heavy infrastructure |
|
|
21
|
+
| **Documentation Writer** | GPT-5.4 mini | Economy | Docs, roadmaps, ADRs (cost-effective) |
|
|
22
22
|
| **Architect** | Claude Sonnet 4.6 | Quality | Architecture decisions, critical review, expert reasoning |
|
|
23
|
-
| **Reviewer** | GPT-5 mini | Economy | Mandatory fast review after every delegation, code correctness checks |
|
|
23
|
+
| **Reviewer** | GPT-5.4 mini | Economy | Mandatory fast review after every delegation, code correctness checks |
|
|
24
24
|
| **Researcher** | Gemini 3.1 Pro | Standard | Codebase exploration, pattern discovery, full-repo context analysis |
|
|
25
|
-
| **Copywriter** | GPT-5 mini | Economy | UI microcopy, marketing text, email templates |
|
|
26
|
-
| **SEO Specialist** | GPT-5 mini | Economy | Meta tags, structured data, sitemaps |
|
|
25
|
+
| **Copywriter** | GPT-5.4 mini | Economy | UI microcopy, marketing text, email templates |
|
|
26
|
+
| **SEO Specialist** | GPT-5.4 mini | Economy | Meta tags, structured data, sitemaps |
|
|
27
27
|
| **API Designer** | Gemini 3.1 Pro | Standard | API route architecture, endpoint conventions |
|
|
28
|
-
| **Release Manager** | GPT-5.
|
|
28
|
+
| **Release Manager** | GPT-5.5-Codex | Fast | Pre-release verification, changelog generation |
|
|
29
29
|
|
|
30
30
|
## Deepen-Plan Scope Examples
|
|
31
31
|
|
|
@@ -8,7 +8,7 @@ output: json
|
|
|
8
8
|
|
|
9
9
|
# Assess PRD Complexity
|
|
10
10
|
|
|
11
|
-
Analyze the PRD below
|
|
11
|
+
Analyze the PRD below; produce complexity assessment as **single JSON object**. Consumed programmatically by pipeline to decide whether to generate one convoy spec or chain of convoy specs.
|
|
12
12
|
|
|
13
13
|
## PRD to Analyze
|
|
14
14
|
|
|
@@ -22,7 +22,7 @@ Analyze the PRD below and produce a complexity assessment as a **single JSON obj
|
|
|
22
22
|
|
|
23
23
|
## Output Rules
|
|
24
24
|
|
|
25
|
-
**CRITICAL:** Return ONLY
|
|
25
|
+
**CRITICAL:** Return ONLY single fenced JSON block — no prose, no explanation, no markdown headings. Start with opening fence; end with closing fence.
|
|
26
26
|
|
|
27
27
|
## Required JSON Schema
|
|
28
28
|
|
|
@@ -57,7 +57,7 @@ Analyze the PRD below and produce a complexity assessment as a **single JSON obj
|
|
|
57
57
|
|
|
58
58
|
## Field Rules
|
|
59
59
|
|
|
60
|
-
- `original_prompt`: Copy
|
|
60
|
+
- `original_prompt`: Copy user's original feature request verbatim from "Original User Prompt" section above. If empty, extract one-sentence summary from PRD's Overview section.
|
|
61
61
|
- `total_tasks`: Count of individual workstreams in the Task Breakdown.
|
|
62
62
|
- `total_phases`: Count of phases in the Task Breakdown.
|
|
63
63
|
- `domains`: List of technical domains involved (e.g., "frontend", "api", "database", "testing", "config").
|
|
@@ -66,15 +66,15 @@ Analyze the PRD below and produce a complexity assessment as a **single JSON obj
|
|
|
66
66
|
- `recommended_strategy`:
|
|
67
67
|
- `"single"` when: total tasks ≤ 8, OR total phases ≤ 3, OR all tasks are tightly coupled with heavy cross-phase file sharing.
|
|
68
68
|
- `"chain"` when: total tasks > 8 AND total phases > 3 AND domains have natural boundaries — AND splitting improves failure isolation, observability, or retry granularity.
|
|
69
|
-
- `chain_rationale`: Only filled when `recommended_strategy` is `"chain"` — explain WHY splitting benefits this
|
|
69
|
+
- `chain_rationale`: Only filled when `recommended_strategy` is `"chain"` — explain WHY splitting benefits this feature.
|
|
70
70
|
- `convoy_groups`:
|
|
71
71
|
- When `"single"`: exactly one group covering all phases.
|
|
72
72
|
- When `"chain"`: 2–4 groups with explicit `depends_on` order. Each group covers a coherent domain boundary.
|
|
73
|
-
- **Minimum 3 tasks per group.** Never create a group
|
|
74
|
-
- **Do NOT map phases 1:1 to groups.**
|
|
73
|
+
- **Minimum 3 tasks per group.** Never create a group producing a convoy with only 1–2 tasks — merge small groups with adjacent ones. Single-task convoy is pointless overhead.
|
|
74
|
+
- **Do NOT map phases 1:1 to groups.** Bundle multiple related phases when tasks are tightly coupled (e.g., config + data in one group, components + pages in another). Only split at genuine domain boundaries where failure isolation matters.
|
|
75
75
|
- Maximum 3 groups for projects with ≤ 15 tasks. Maximum 4 groups for 16+ tasks.
|
|
76
76
|
- `task_complexity`: Array of per-workstream complexity assessments using Fibonacci scale.
|
|
77
|
-
- `workstream`: Exact workstream title from
|
|
78
|
-
- `phase`: Phase number
|
|
77
|
+
- `workstream`: Exact workstream title from PRD's Task Breakdown section.
|
|
78
|
+
- `phase`: Phase number workstream belongs to.
|
|
79
79
|
- `complexity`: Fibonacci score: `1` (trivial — single file edit), `2` (simple — small fix, one test), `3` (moderate — new component/endpoint), `5` (significant — multi-file feature), `8` (complex — cross-cutting), `13` (epic — architecture-level).
|
|
80
80
|
- `rationale`: One sentence explaining the score.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Deep-analyze
|
|
2
|
+
description: 'Deep-analyze project to complete .opencastle/ configuration with schema details, API routes, environment variables, other info requiring reading actual config files. Programmatic bootstrap (run during opencastle init) already populated deterministic parts — do not redo that work.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ agent: 'Team Lead (OpenCastle)'
|
|
|
7
7
|
|
|
8
8
|
# Complete Project Customizations
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Complete AI agent framework setup for a new project. Programmatic bootstrap (run automatically during `opencastle init`) already populated `.opencastle/` configuration files with everything it could determine automatically. Your job: **deep-analyze** project — reading actual config files, schemas, source code — to **fill in details** requiring reading real file contents.
|
|
11
11
|
|
|
12
12
|
## Additional Context (optional)
|
|
13
13
|
|
|
@@ -17,9 +17,9 @@ You are completing the AI agent framework setup for a new project. The programma
|
|
|
17
17
|
|
|
18
18
|
## Background
|
|
19
19
|
|
|
20
|
-
The `.opencastle/` directory holds project-specific configuration that skills load at runtime. Skills contain generic methodology (how to write migrations, how to test, how to deploy); customizations hold
|
|
20
|
+
The `.opencastle/` directory holds project-specific configuration that skills load at runtime. Skills contain generic methodology (how to write migrations, how to test, how to deploy); customizations hold concrete values (which database, which endpoints, which project IDs).
|
|
21
21
|
|
|
22
|
-
Without customizations, agents operate blind — they don't know
|
|
22
|
+
Without customizations, agents operate blind — they don't know project's table schema, API routes, deployment target, task board. This prompt fixes that.
|
|
23
23
|
|
|
24
24
|
## Pre-Existing Setup
|
|
25
25
|
|
|
@@ -27,10 +27,10 @@ Without customizations, agents operate blind — they don't know the project's t
|
|
|
27
27
|
|
|
28
28
|
The project root contains **`.opencastle.json`** with a `repoInfo` field populated by `opencastle init`. It merges two sources:
|
|
29
29
|
|
|
30
|
-
1. **Auto-detected tooling** —
|
|
31
|
-
2. **User-declared choices** —
|
|
30
|
+
1. **Auto-detected tooling** — init command scanned config files, `package.json` dependencies, and directory structures
|
|
31
|
+
2. **User-declared choices** — user selected CMS, database, project management, notifications via interactive questionnaire
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Result: single unified view of project's tech stack:
|
|
34
34
|
|
|
35
35
|
```json
|
|
36
36
|
{
|
|
@@ -63,17 +63,17 @@ The result is a single unified view of the project's tech stack:
|
|
|
63
63
|
**Use `repoInfo` to:**
|
|
64
64
|
- Know which technologies are present — skip re-scanning, go straight to reading their config files
|
|
65
65
|
- Identify `configFiles` to read for deep inspection
|
|
66
|
-
- Know which `project/` config files to create if
|
|
66
|
+
- Know which `project/` config files to create if missing (e.g., if `repoInfo.pm` includes `"linear"`, ensure `project/linear-config.md` exists)
|
|
67
67
|
|
|
68
68
|
**`stack` vs `repoInfo`:** The `stack` field holds the raw user questionnaire answers (used internally for MCP server filtering and skill selection). The `repoInfo` field is the combined view you should use — it includes everything from `stack` plus all auto-detected tooling.
|
|
69
69
|
|
|
70
70
|
**Still inspect:** `repoInfo` detects presence, not configuration details. You still need to read the actual config files for schemas, IDs, routes, etc.
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
Skill matrix (`.opencastle/agents/skill-matrix.json`) already has `cms`, `database` binding entries pre-filled. Appropriate task management, notifications skills already installed. Verify correctness; fill in remaining empty bindings.
|
|
73
73
|
|
|
74
74
|
### Pre-populated `.opencastle/` Files — What's Already Done
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Programmatic bootstrap running during `opencastle init` already created, partially filled these files. **Do not regenerate from scratch — update them instead.**
|
|
77
77
|
|
|
78
78
|
| File | What's already there | What's missing |
|
|
79
79
|
|------|---------------------|----------------|
|
|
@@ -92,25 +92,25 @@ The programmatic bootstrap that runs during `opencastle init` has already create
|
|
|
92
92
|
- `stack/data-pipeline-config.md` — requires reading pipeline scripts
|
|
93
93
|
- `agents/agent-registry.md`, `agents/skill-matrix.json`, `agents/skill-matrix.md` — if `.github/agents/` and `.github/skills/` exist
|
|
94
94
|
|
|
95
|
-
Any template file for
|
|
95
|
+
Any template file for technology NOT detected (no DB, no CMS, etc.) already removed.
|
|
96
96
|
|
|
97
97
|
## Workflow
|
|
98
98
|
|
|
99
99
|
### Phase 1: Discovery
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
Programmatic bootstrap already detected tech stack. **Skip re-scanning** — focus on reading actual file contents to extract details.
|
|
102
102
|
|
|
103
103
|
#### 1.1 Read Pre-populated Files
|
|
104
104
|
|
|
105
105
|
- **First**: Read all existing `.opencastle/` files to understand what's already filled in
|
|
106
|
-
- Read `.opencastle/project.instructions.md` to see
|
|
106
|
+
- Read `.opencastle/project.instructions.md` to see current tech stack table, gaps
|
|
107
107
|
- Read each `stack/*.md` file — note any `<!-- TODO: verify -->` markers and empty table rows
|
|
108
108
|
- Read `.opencastle.json` for `repoInfo` and `configFiles` — use `configFiles` as your reading list
|
|
109
109
|
- Note what's missing (empty sections, placeholders, TODO markers)
|
|
110
110
|
|
|
111
111
|
#### 1.2 Deep Inspection
|
|
112
112
|
|
|
113
|
-
For each technology
|
|
113
|
+
For each technology in pre-populated files, read its actual config files to extract details that couldn't be auto-detected:
|
|
114
114
|
|
|
115
115
|
- **Database**: Read migration files, schema definitions, RLS policies, auth setup — extract table names, column types, policy names
|
|
116
116
|
- **CMS**: Read schema files, document types, plugin config — extract content model names, field definitions, project/space IDs
|
|
@@ -122,7 +122,7 @@ For each technology listed in the pre-populated files, read its actual config fi
|
|
|
122
122
|
|
|
123
123
|
### Phase 2: Complete Customization Files
|
|
124
124
|
|
|
125
|
-
Update
|
|
125
|
+
Update existing `.opencastle/` files using deep inspection data from Phase 1. **Do not regenerate files that already exist** — update them.
|
|
126
126
|
|
|
127
127
|
Target file structure for reference:
|
|
128
128
|
|
|
@@ -174,7 +174,7 @@ Target file structure for reference:
|
|
|
174
174
|
5. **`agents/skill-matrix.json`** — If `.github/skills/` exists with skill definitions:
|
|
175
175
|
- Capability slot bindings and `directSkills` per agent role (in JSON format)
|
|
176
176
|
- Which agents load which skills (slots for plugin skills, directSkills for process skills)
|
|
177
|
-
- Note: `skill-matrix.md` is
|
|
177
|
+
- Note: `skill-matrix.md` is companion documentation file — JSON is source of truth
|
|
178
178
|
|
|
179
179
|
#### `stack/` — Update Existing, Create Missing
|
|
180
180
|
|
|
@@ -271,7 +271,7 @@ Now that your `.opencastle/` configuration is complete, here's what you can do:
|
|
|
271
271
|
|
|
272
272
|
- **Discover, don't assume.** Read actual config files. Don't guess that the project uses Supabase because it's a Next.js app.
|
|
273
273
|
- **Skip what doesn't exist.** If there's no CMS, don't create a CMS config file.
|
|
274
|
-
- **Names, not secrets.** Document environment variable names (`SUPABASE_URL`) but never
|
|
274
|
+
- **Names, not secrets.** Document environment variable names (`SUPABASE_URL`) but never values.
|
|
275
275
|
- **Be specific.** Write actual table names, actual endpoint paths, actual file paths — not placeholders.
|
|
276
276
|
- **Flag uncertainty.** If you can't determine something from the code, add a `<!-- TODO: verify -->` comment rather than guessing.
|
|
277
277
|
- **Keep files focused.** Each file covers one domain. Don't put database schema in the deployment config.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Collaborative brainstorm to explore requirements, approaches,
|
|
2
|
+
description: 'Collaborative brainstorm to explore requirements, approaches, trade-offs BEFORE committing to a plan. Use when task has ambiguity, multiple valid approaches, or significant design decisions.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ agent: 'Team Lead (OpenCastle)'
|
|
|
7
7
|
|
|
8
8
|
# Brainstorm
|
|
9
9
|
|
|
10
|
-
You are the Team Lead. Before planning or writing any code, run
|
|
10
|
+
You are the Team Lead. Before planning or writing any code, run structured brainstorm to explore the request below. Goal: **surface assumptions, alternative approaches, trade-offs** before locking in a plan.
|
|
11
11
|
|
|
12
12
|
## Request
|
|
13
13
|
|
|
@@ -17,17 +17,17 @@ You are the Team Lead. Before planning or writing any code, run a structured bra
|
|
|
17
17
|
|
|
18
18
|
## Why Brainstorm?
|
|
19
19
|
|
|
20
|
-
Planning too early locks in assumptions.
|
|
20
|
+
Planning too early locks in assumptions. Brainstorm phase catches misunderstandings, reveals better approaches, aligns on scope — 10 minutes of thinking instead of hours of rework.
|
|
21
21
|
|
|
22
22
|
## Workflow
|
|
23
23
|
|
|
24
24
|
### 1. Clarify the Problem
|
|
25
25
|
|
|
26
|
-
Before exploring solutions,
|
|
26
|
+
Before exploring solutions, ensure problem is well-understood:
|
|
27
27
|
|
|
28
28
|
1. **Restate the request** in your own words — verify you understand what's being asked
|
|
29
29
|
2. **Identify the user's goals** — what outcome do they want? (not just what they asked for)
|
|
30
|
-
3. **Surface assumptions** — what are you assuming about scope, constraints,
|
|
30
|
+
3. **Surface assumptions** — what are you assuming about scope, constraints, priorities?
|
|
31
31
|
4. **Ask clarifying questions** — if anything is ambiguous, ask now (max 3 questions, batch them)
|
|
32
32
|
|
|
33
33
|
### 2. Explore the Solution Space
|
|
@@ -37,7 +37,7 @@ Research before proposing. Gather data, don't guess:
|
|
|
37
37
|
1. **Search existing code** — is there already a partial implementation, similar pattern, or relevant utility?
|
|
38
38
|
2. **Check documentation** — read `.opencastle/project.instructions.md`, `.opencastle/project/decisions.md`, `.opencastle/KNOWN-ISSUES.md` for constraints
|
|
39
39
|
3. **Check lessons learned** — read `.opencastle/LESSONS-LEARNED.md` for pitfalls in this area
|
|
40
|
-
4. **Identify affected layers** — which apps, libs, data stores,
|
|
40
|
+
4. **Identify affected layers** — which apps, libs, data stores, third-party services are involved?
|
|
41
41
|
5. **Research unknown topics** — if the request involves a real-world person, place, organization, or topic you don't have confident knowledge about, **search the internet** using any available web search or fetch tools (e.g. `fetch_webpage`, web search MCP, or similar) to gather accurate facts. Never fabricate content about real-world subjects.
|
|
42
42
|
|
|
43
43
|
### 3. Generate Alternatives
|
|
@@ -53,16 +53,16 @@ Propose 2-3 approaches, not just the obvious one:
|
|
|
53
53
|
For each approach, consider:
|
|
54
54
|
- **Simplicity** — which is the boring, proven solution? (prefer this per Constitution #2)
|
|
55
55
|
- **Reversibility** — which is easiest to undo if wrong?
|
|
56
|
-
- **Impact on future work** — which makes
|
|
56
|
+
- **Impact on future work** — which makes next task easier or harder?
|
|
57
57
|
- **Risk** — which has the most unknowns?
|
|
58
58
|
|
|
59
59
|
### 4. Evaluate Trade-offs
|
|
60
60
|
|
|
61
|
-
Pick
|
|
61
|
+
Pick recommended approach; defend it:
|
|
62
62
|
|
|
63
|
-
1. **Why this approach?** — articulate
|
|
64
|
-
2. **What are we giving up?** — name
|
|
65
|
-
3. **What could go wrong?** —
|
|
63
|
+
1. **Why this approach?** — articulate key reason (1-2 sentences)
|
|
64
|
+
2. **What are we giving up?** — name trade-off explicitly
|
|
65
|
+
3. **What could go wrong?** — biggest risk + mitigation
|
|
66
66
|
4. **What's the exit strategy?** — if this approach fails, what's plan B?
|
|
67
67
|
|
|
68
68
|
### 5. Define Scope
|
|
@@ -75,7 +75,7 @@ Draw a clear boundary:
|
|
|
75
75
|
|
|
76
76
|
#### Design Direction (for multi-page projects)
|
|
77
77
|
|
|
78
|
-
If
|
|
78
|
+
If request involves building 2+ pages or UI sections, define design direction during brainstorming — not during implementation:
|
|
79
79
|
|
|
80
80
|
- **Aesthetic direction:** 2-3 words (e.g., "warm editorial", "clean minimal", "brutalist edge")
|
|
81
81
|
- **Typography pairing:** display font + body font (avoid generic defaults like Inter/Roboto)
|
|
@@ -83,11 +83,11 @@ If the request involves building 2+ pages or UI sections, define the design dire
|
|
|
83
83
|
- **Content tone:** formal/casual, active/passive, target audience voice
|
|
84
84
|
- **Key terminology:** terms that could be said multiple ways — pick one (e.g., "projects" not "portfolio")
|
|
85
85
|
|
|
86
|
-
Include this in
|
|
86
|
+
Include this in Brainstorm Report so planning phase can inject into convoy foundation tasks.
|
|
87
87
|
|
|
88
88
|
### 6. Output
|
|
89
89
|
|
|
90
|
-
Summarize the brainstorm as
|
|
90
|
+
Summarize the brainstorm as **Brainstorm Report** — becomes input for planning/decomposition phase:
|
|
91
91
|
|
|
92
92
|
```markdown
|
|
93
93
|
## Brainstorm Report: [Title]
|
|
@@ -105,7 +105,7 @@ Summarize the brainstorm as a **Brainstorm Report** — this becomes the input f
|
|
|
105
105
|
### Affected Areas
|
|
106
106
|
- Apps: [list]
|
|
107
107
|
- Libs: [list]
|
|
108
|
-
- Data: [which data layers are affected — see `project.instructions.md` for
|
|
108
|
+
- Data: [which data layers are affected — see `project.instructions.md` for tech stack]
|
|
109
109
|
- Routes: [list]
|
|
110
110
|
|
|
111
111
|
### Open Questions
|
|
@@ -120,11 +120,11 @@ Summarize the brainstorm as a **Brainstorm Report** — this becomes the input f
|
|
|
120
120
|
|
|
121
121
|
## When to Skip Brainstorming
|
|
122
122
|
|
|
123
|
-
Not every task needs
|
|
123
|
+
Not every task needs brainstorm. Skip this prompt; go directly to `implement-feature` or `quick-refinement` when:
|
|
124
124
|
|
|
125
125
|
- The task is a well-defined bug with clear reproduction steps
|
|
126
126
|
- The task is a simple config change or docs update
|
|
127
|
-
-
|
|
127
|
+
- Technical approach is obvious and unambiguous
|
|
128
128
|
- The scope is a single file or component with no design decisions
|
|
129
129
|
- The task is well-understood and can be expressed as a convoy spec directly → use `generate-convoy` instead
|
|
130
130
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Investigate and fix
|
|
2
|
+
description: 'Investigate and fix reported bug with proper triage, root cause analysis, issue tracking, verification.'
|
|
3
3
|
agent: 'Team Lead (OpenCastle)'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ agent: 'Team Lead (OpenCastle)'
|
|
|
7
7
|
|
|
8
8
|
# Fix Bug
|
|
9
9
|
|
|
10
|
-
You are the Team Lead. Investigate and fix the bug described below. Bugs are real defects
|
|
10
|
+
You are the Team Lead. Investigate and fix the bug described below. Bugs are real defects affecting users — treat seriously with proper triage, tracking, verification.
|
|
11
11
|
|
|
12
12
|
## Bug Report
|
|
13
13
|
|
|
@@ -32,7 +32,7 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
|
|
|
32
32
|
### 1. Triage & Reproduce
|
|
33
33
|
|
|
34
34
|
1. **Check known issues** — Search `.opencastle/KNOWN-ISSUES.md` for an existing entry. If found, note workarounds and decide if a fix is now feasible
|
|
35
|
-
2. **Check tracker** — Search for existing bug tickets. If one exists, take it over instead of creating
|
|
35
|
+
2. **Check tracker** — Search for existing bug tickets. If one exists, take it over instead of creating duplicate
|
|
36
36
|
3. **Read lessons learned** — Check `.opencastle/LESSONS-LEARNED.md` for related pitfalls
|
|
37
37
|
4. **Reproduce the bug** — Start the dev server (see **codebase-tool** skill), navigate to the affected page in Chrome, follow the repro steps, and screenshot the broken state
|
|
38
38
|
5. **Determine scope** — Which apps are affected? (see `project.instructions.md` for the app inventory)
|
|
@@ -40,9 +40,9 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
|
|
|
40
40
|
|
|
41
41
|
### 2. Create Tracker Issue
|
|
42
42
|
|
|
43
|
-
Every bug gets tracked. Create
|
|
43
|
+
Every bug gets tracked. Create tracker issue with:
|
|
44
44
|
|
|
45
|
-
- **Title**: `[Bug] Short description of
|
|
45
|
+
- **Title**: `[Bug] Short description of symptom`
|
|
46
46
|
- **Label**: `bug`; **Priority**: based on severity
|
|
47
47
|
- **Description**: Symptom, reproduction steps, expected vs actual behavior, affected apps + files, screenshot
|
|
48
48
|
|
|
@@ -56,7 +56,7 @@ Every bug gets tracked. Create a tracker issue with:
|
|
|
56
56
|
|
|
57
57
|
### 4. Implement the Fix
|
|
58
58
|
|
|
59
|
-
All bug fixes
|
|
59
|
+
All bug fixes execute via convoy engine — even single-task fixes — for observability, crash recovery.
|
|
60
60
|
|
|
61
61
|
1. **Generate a convoy spec** — use the `generate-convoy` prompt with the root cause analysis, fix approach, and file paths as context.
|
|
62
62
|
2. **Hand the spec to the user** — tell them to run: `npx opencastle run -f .opencastle/convoys/<name>.convoy.yml`
|
|
@@ -64,7 +64,7 @@ All bug fixes are executed via the convoy engine — even single-task fixes —
|
|
|
64
64
|
|
|
65
65
|
#### Convoy Task Prompt Must Include
|
|
66
66
|
|
|
67
|
-
- Tracker issue ID
|
|
67
|
+
- Tracker issue ID, title, root cause, fix approach, file paths, reproduction steps
|
|
68
68
|
- Boundaries: "Only modify files listed above. Fix the bug, do not refactor surrounding code."
|
|
69
69
|
- Self-improvement reminder (see **self-improvement** skill)
|
|
70
70
|
|
|
@@ -76,7 +76,7 @@ All bug fixes are executed via the convoy engine — even single-task fixes —
|
|
|
76
76
|
|
|
77
77
|
### 5. Validate
|
|
78
78
|
|
|
79
|
-
> Load
|
|
79
|
+
> Load **validation-gates** skill for detailed steps on each gate.
|
|
80
80
|
|
|
81
81
|
1. **Secret Scanning** — block if API keys/tokens/passwords found in diff
|
|
82
82
|
2. **Deterministic Checks** — lint, test, build — zero errors (see **codebase-tool** skill)
|
|
@@ -90,7 +90,7 @@ All bug fixes are executed via the convoy engine — even single-task fixes —
|
|
|
90
90
|
|
|
91
91
|
### 6. Delivery
|
|
92
92
|
|
|
93
|
-
Follow
|
|
93
|
+
Follow **Delivery Outcome** in **git-workflow** skill — commit, push, open PR (not merged), link to tracker.
|
|
94
94
|
|
|
95
95
|
### 7. Wrap Up
|
|
96
96
|
|
|
@@ -100,7 +100,7 @@ Follow the **Delivery Outcome** defined in the **git-workflow** skill — commit
|
|
|
100
100
|
|
|
101
101
|
### 8. Completion Criteria
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
Bug fix is complete when:
|
|
104
104
|
|
|
105
105
|
- [ ] Bug is reproduced and root cause identified
|
|
106
106
|
- [ ] Tracker issue created with full details
|
|
@@ -108,7 +108,7 @@ The bug fix is complete when:
|
|
|
108
108
|
- [ ] Test added covering the bug scenario
|
|
109
109
|
- [ ] Bug verified fixed in the browser
|
|
110
110
|
- [ ] Both apps checked if shared code was modified
|
|
111
|
-
- [ ] Delivery Outcome completed (see
|
|
111
|
+
- [ ] Delivery Outcome completed (see **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
|
|
112
112
|
- [ ] Tracker issue moved to Done
|
|
113
113
|
- [ ] Known issues updated if applicable
|
|
114
114
|
- [ ] Lessons learned captured if any retries occurred
|