opencastle 0.5.1 → 0.7.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/README.md +5 -4
- package/dist/cli/adapters/claude-code.d.ts +2 -2
- package/dist/cli/adapters/claude-code.d.ts.map +1 -1
- package/dist/cli/adapters/claude-code.js +31 -4
- package/dist/cli/adapters/claude-code.js.map +1 -1
- package/dist/cli/adapters/cursor.d.ts +2 -2
- package/dist/cli/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/adapters/cursor.js +28 -4
- package/dist/cli/adapters/cursor.js.map +1 -1
- package/dist/cli/adapters/opencode.d.ts +20 -0
- package/dist/cli/adapters/opencode.d.ts.map +1 -0
- package/dist/cli/adapters/opencode.js +265 -0
- package/dist/cli/adapters/opencode.js.map +1 -0
- package/dist/cli/adapters/vscode.d.ts +2 -2
- package/dist/cli/adapters/vscode.d.ts.map +1 -1
- package/dist/cli/adapters/vscode.js +38 -7
- package/dist/cli/adapters/vscode.js.map +1 -1
- package/dist/cli/copy.d.ts +12 -0
- package/dist/cli/copy.d.ts.map +1 -1
- package/dist/cli/copy.js +27 -0
- package/dist/cli/copy.js.map +1 -1
- package/dist/cli/detect.d.ts +18 -0
- package/dist/cli/detect.d.ts.map +1 -0
- package/dist/cli/detect.js +434 -0
- package/dist/cli/detect.js.map +1 -0
- package/dist/cli/gitignore.d.ts.map +1 -1
- package/dist/cli/gitignore.js +0 -2
- package/dist/cli/gitignore.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +154 -91
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/manifest.d.ts +1 -1
- package/dist/cli/manifest.d.ts.map +1 -1
- package/dist/cli/manifest.js +2 -1
- package/dist/cli/manifest.js.map +1 -1
- package/dist/cli/mcp.d.ts +6 -6
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +105 -34
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/prompt.d.ts +22 -0
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +239 -0
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/stack-config.d.ts +26 -3
- package/dist/cli/stack-config.d.ts.map +1 -1
- package/dist/cli/stack-config.js +140 -125
- package/dist/cli/stack-config.js.map +1 -1
- package/dist/cli/types.d.ts +46 -10
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +26 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +66 -19
- package/dist/cli/update.js.map +1 -1
- package/dist/orchestrator/plugins/chrome-devtools/config.d.ts +3 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.js +28 -0
- package/dist/orchestrator/plugins/chrome-devtools/config.js.map +1 -0
- package/dist/orchestrator/plugins/contentful/config.d.ts +3 -0
- package/dist/orchestrator/plugins/contentful/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/contentful/config.js +48 -0
- package/dist/orchestrator/plugins/contentful/config.js.map +1 -0
- package/dist/orchestrator/plugins/convex/config.d.ts +3 -0
- package/dist/orchestrator/plugins/convex/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/convex/config.js +32 -0
- package/dist/orchestrator/plugins/convex/config.js.map +1 -0
- package/dist/orchestrator/plugins/index.d.ts +28 -0
- package/dist/orchestrator/plugins/index.d.ts.map +1 -0
- package/dist/orchestrator/plugins/index.js +63 -0
- package/dist/orchestrator/plugins/index.js.map +1 -0
- package/dist/orchestrator/plugins/jira/config.d.ts +3 -0
- package/dist/orchestrator/plugins/jira/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/jira/config.js +29 -0
- package/dist/orchestrator/plugins/jira/config.js.map +1 -0
- package/dist/orchestrator/plugins/linear/config.d.ts +3 -0
- package/dist/orchestrator/plugins/linear/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/linear/config.js +33 -0
- package/dist/orchestrator/plugins/linear/config.js.map +1 -0
- package/dist/orchestrator/plugins/nx/config.d.ts +3 -0
- package/dist/orchestrator/plugins/nx/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/nx/config.js +28 -0
- package/dist/orchestrator/plugins/nx/config.js.map +1 -0
- package/dist/orchestrator/plugins/sanity/config.d.ts +3 -0
- package/dist/orchestrator/plugins/sanity/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/sanity/config.js +43 -0
- package/dist/orchestrator/plugins/sanity/config.js.map +1 -0
- package/dist/orchestrator/plugins/slack/config.d.ts +3 -0
- package/dist/orchestrator/plugins/slack/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/slack/config.js +34 -0
- package/dist/orchestrator/plugins/slack/config.js.map +1 -0
- package/dist/orchestrator/plugins/strapi/config.d.ts +3 -0
- package/dist/orchestrator/plugins/strapi/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/strapi/config.js +40 -0
- package/dist/orchestrator/plugins/strapi/config.js.map +1 -0
- package/dist/orchestrator/plugins/supabase/config.d.ts +3 -0
- package/dist/orchestrator/plugins/supabase/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/supabase/config.js +33 -0
- package/dist/orchestrator/plugins/supabase/config.js.map +1 -0
- package/dist/orchestrator/plugins/teams/config.d.ts +3 -0
- package/dist/orchestrator/plugins/teams/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/teams/config.js +43 -0
- package/dist/orchestrator/plugins/teams/config.js.map +1 -0
- package/dist/orchestrator/plugins/types.d.ts +61 -0
- package/dist/orchestrator/plugins/types.d.ts.map +1 -0
- package/dist/orchestrator/plugins/types.js +2 -0
- package/dist/orchestrator/plugins/types.js.map +1 -0
- package/dist/orchestrator/plugins/vercel/config.d.ts +3 -0
- package/dist/orchestrator/plugins/vercel/config.d.ts.map +1 -0
- package/dist/orchestrator/plugins/vercel/config.js +32 -0
- package/dist/orchestrator/plugins/vercel/config.js.map +1 -0
- package/package.json +1 -1
- package/src/cli/adapters/claude-code.ts +40 -6
- package/src/cli/adapters/cursor.ts +46 -6
- package/src/cli/adapters/opencode.ts +320 -0
- package/src/cli/adapters/vscode.ts +43 -9
- package/src/cli/copy.ts +32 -0
- package/src/cli/detect.ts +483 -0
- package/src/cli/gitignore.ts +0 -3
- package/src/cli/init.ts +169 -96
- package/src/cli/manifest.ts +2 -1
- package/src/cli/mcp.ts +131 -51
- package/src/cli/prompt.ts +299 -0
- package/src/cli/stack-config.ts +187 -145
- package/src/cli/types.ts +60 -9
- package/src/cli/update.ts +78 -20
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/orchestrator/agent-workflows/README.md +1 -1
- package/src/orchestrator/agent-workflows/bug-fix.md +12 -12
- package/src/orchestrator/agent-workflows/data-pipeline.md +21 -20
- package/src/orchestrator/agent-workflows/database-migration.md +11 -11
- package/src/orchestrator/agent-workflows/feature-implementation.md +10 -10
- package/src/orchestrator/agent-workflows/performance-optimization.md +6 -6
- package/src/orchestrator/agent-workflows/refactoring.md +10 -10
- package/src/orchestrator/agent-workflows/schema-changes.md +8 -8
- package/src/orchestrator/agent-workflows/security-audit.md +12 -12
- package/src/orchestrator/agent-workflows/shared-delivery-phase.md +5 -5
- package/src/orchestrator/agents/api-designer.agent.md +2 -2
- package/src/orchestrator/agents/architect.agent.md +2 -2
- package/src/orchestrator/agents/content-engineer.agent.md +4 -4
- package/src/orchestrator/agents/copywriter.agent.md +2 -2
- package/src/orchestrator/agents/data-expert.agent.md +6 -6
- package/src/orchestrator/agents/database-engineer.agent.md +4 -4
- package/src/orchestrator/agents/developer.agent.md +5 -5
- package/src/orchestrator/agents/devops-expert.agent.md +5 -5
- package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
- package/src/orchestrator/agents/performance-expert.agent.md +3 -3
- package/src/orchestrator/agents/release-manager.agent.md +4 -4
- package/src/orchestrator/agents/researcher.agent.md +19 -3
- package/src/orchestrator/agents/reviewer.agent.md +2 -4
- package/src/orchestrator/agents/security-expert.agent.md +4 -4
- package/src/orchestrator/agents/seo-specialist.agent.md +2 -2
- package/src/orchestrator/agents/team-lead.agent.md +97 -101
- package/src/orchestrator/agents/testing-expert.agent.md +5 -5
- package/src/orchestrator/agents/ui-ux-expert.agent.md +7 -7
- package/src/orchestrator/copilot-instructions.md +1 -1
- package/src/orchestrator/customizations/AGENT-FAILURES.md +1 -1
- package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +12 -12
- package/src/orchestrator/customizations/DISPUTES.md +5 -5
- package/src/orchestrator/customizations/KNOWN-ISSUES.md +30 -0
- package/src/orchestrator/customizations/LESSONS-LEARNED.md +7 -7
- package/src/orchestrator/customizations/README.md +5 -2
- package/src/orchestrator/customizations/agents/agent-registry.md +1 -1
- package/src/orchestrator/customizations/agents/skill-matrix.md +12 -7
- package/src/orchestrator/customizations/logs/README.md +1 -1
- package/src/orchestrator/customizations/project/decisions.md +31 -0
- package/src/orchestrator/customizations/project/docs-structure.md +16 -5
- package/src/orchestrator/customizations/project/roadmap.md +24 -0
- package/src/orchestrator/customizations/project/tracker-config.md +1 -1
- package/src/orchestrator/customizations/stack/cms-config.md +1 -1
- package/src/orchestrator/customizations/stack/notifications-config.md +1 -1
- package/src/orchestrator/instructions/ai-optimization.instructions.md +2 -2
- package/src/orchestrator/instructions/general.instructions.md +102 -40
- package/src/orchestrator/{skills/browser-testing → plugins/chrome-devtools}/SKILL.md +1 -1
- package/src/orchestrator/plugins/chrome-devtools/config.ts +29 -0
- package/src/orchestrator/{skills/contentful-cms → plugins/contentful}/SKILL.md +1 -1
- package/src/orchestrator/plugins/contentful/config.ts +49 -0
- package/src/orchestrator/{skills/convex-database → plugins/convex}/SKILL.md +1 -1
- package/src/orchestrator/plugins/convex/config.ts +33 -0
- package/src/orchestrator/plugins/index.ts +85 -0
- package/src/orchestrator/{skills/jira-management → plugins/jira}/SKILL.md +3 -3
- package/src/orchestrator/plugins/jira/config.ts +30 -0
- package/src/orchestrator/{skills/task-management → plugins/linear}/SKILL.md +3 -3
- package/src/orchestrator/plugins/linear/config.ts +34 -0
- package/src/orchestrator/{skills/nx-workspace → plugins/nx}/SKILL.md +1 -1
- package/src/orchestrator/plugins/nx/config.ts +29 -0
- package/src/orchestrator/{skills/sanity-cms → plugins/sanity}/SKILL.md +1 -1
- package/src/orchestrator/plugins/sanity/config.ts +44 -0
- package/src/orchestrator/{skills/slack-notifications → plugins/slack}/SKILL.md +2 -2
- package/src/orchestrator/plugins/slack/config.ts +35 -0
- package/src/orchestrator/{skills/strapi-cms → plugins/strapi}/SKILL.md +1 -1
- package/src/orchestrator/plugins/strapi/config.ts +41 -0
- package/src/orchestrator/{skills/supabase-database → plugins/supabase}/SKILL.md +1 -1
- package/src/orchestrator/plugins/supabase/config.ts +34 -0
- package/src/orchestrator/{skills/teams-notifications → plugins/teams}/SKILL.md +2 -2
- package/src/orchestrator/plugins/teams/config.ts +44 -0
- package/src/orchestrator/plugins/types.ts +79 -0
- package/src/orchestrator/plugins/vercel/config.ts +33 -0
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +59 -12
- package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
- package/src/orchestrator/prompts/bug-fix.prompt.md +18 -18
- package/src/orchestrator/prompts/create-skill.prompt.md +50 -32
- package/src/orchestrator/prompts/generate-task-spec.prompt.md +3 -3
- package/src/orchestrator/prompts/implement-feature.prompt.md +26 -26
- package/src/orchestrator/prompts/metrics-report.prompt.md +11 -11
- package/src/orchestrator/prompts/quick-refinement.prompt.md +16 -16
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +2 -2
- package/src/orchestrator/skills/accessibility-standards/SKILL.md +1 -1
- package/src/orchestrator/skills/agent-hooks/SKILL.md +27 -18
- package/src/orchestrator/skills/agent-memory/SKILL.md +7 -7
- package/src/orchestrator/skills/api-patterns/SKILL.md +6 -6
- package/src/orchestrator/skills/code-commenting/SKILL.md +1 -1
- package/src/orchestrator/skills/context-map/SKILL.md +4 -4
- package/src/orchestrator/skills/data-engineering/SKILL.md +7 -4
- package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +2 -2
- package/src/orchestrator/skills/documentation-standards/SKILL.md +1 -1
- package/src/orchestrator/skills/fast-review/SKILL.md +3 -3
- package/src/orchestrator/skills/frontend-design/SKILL.md +1 -1
- package/src/orchestrator/skills/memory-merger/SKILL.md +8 -8
- package/src/orchestrator/skills/nextjs-patterns/SKILL.md +1 -1
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +2 -2
- package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +1 -1
- package/src/orchestrator/skills/performance-optimization/SKILL.md +1 -1
- package/src/orchestrator/skills/react-development/SKILL.md +3 -3
- package/src/orchestrator/skills/security-hardening/SKILL.md +27 -27
- package/src/orchestrator/skills/self-improvement/SKILL.md +14 -13
- package/src/orchestrator/skills/seo-patterns/SKILL.md +1 -1
- package/src/orchestrator/skills/session-checkpoints/SKILL.md +19 -19
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +9 -9
- package/src/orchestrator/skills/testing-workflow/SKILL.md +13 -13
- package/src/orchestrator/skills/validation-gates/SKILL.md +8 -15
- package/src/orchestrator/mcp.json +0 -61
|
@@ -3,7 +3,7 @@ description: 'Bootstrap the .github/customizations/ directory for a new project.
|
|
|
3
3
|
agent: Researcher
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Bootstrap Project Customizations
|
|
9
9
|
|
|
@@ -23,20 +23,53 @@ Without customizations, agents operate blind — they don't know the project's t
|
|
|
23
23
|
|
|
24
24
|
## Pre-Existing Stack Info
|
|
25
25
|
|
|
26
|
-
Before starting discovery, check for **`.opencastle.json`** in the project root. If it exists
|
|
26
|
+
Before starting discovery, check for **`.opencastle.json`** in the project root. If it exists, it contains a combined `repoInfo` field from `opencastle init` that merges two sources:
|
|
27
|
+
|
|
28
|
+
1. **Auto-detected tooling** — the init command scanned config files, `package.json` dependencies, and directory structures
|
|
29
|
+
2. **User-declared choices** — the user selected CMS, database, project management, and notifications via the interactive questionnaire
|
|
30
|
+
|
|
31
|
+
The result is a single unified view of the project's tech stack:
|
|
27
32
|
|
|
28
33
|
```json
|
|
29
34
|
{
|
|
35
|
+
"repoInfo": {
|
|
36
|
+
"packageManager": "pnpm",
|
|
37
|
+
"monorepo": "nx",
|
|
38
|
+
"language": "typescript",
|
|
39
|
+
"frameworks": ["next", "astro"],
|
|
40
|
+
"databases": ["prisma", "supabase"],
|
|
41
|
+
"cms": ["sanity"],
|
|
42
|
+
"deployment": ["vercel"],
|
|
43
|
+
"testing": ["playwright", "vitest"],
|
|
44
|
+
"cicd": ["github-actions"],
|
|
45
|
+
"styling": ["css-modules", "tailwind"],
|
|
46
|
+
"auth": ["next-auth", "supabase-auth"],
|
|
47
|
+
"pm": ["linear"],
|
|
48
|
+
"notifications": ["slack"],
|
|
49
|
+
"mcpConfig": true,
|
|
50
|
+
"configFiles": ["nx.json", "package.json", "tsconfig.json", "vercel.json"]
|
|
51
|
+
},
|
|
30
52
|
"stack": {
|
|
31
|
-
"cms": "sanity",
|
|
32
|
-
"db": "supabase",
|
|
33
|
-
"pm": "linear",
|
|
34
|
-
"notifications": "slack"
|
|
53
|
+
"cms": "sanity",
|
|
54
|
+
"db": "supabase",
|
|
55
|
+
"pm": "linear",
|
|
56
|
+
"notifications": "slack"
|
|
35
57
|
}
|
|
36
58
|
}
|
|
37
59
|
```
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
**Use `repoInfo` to:**
|
|
62
|
+
- Skip re-scanning for technologies already listed — go straight to reading their config files
|
|
63
|
+
- Pre-fill the tech stack table in `project.instructions.md`
|
|
64
|
+
- Know which `stack/` config files to create (e.g., if `repoInfo.databases` includes `"prisma"`, create `stack/prisma-config.md`)
|
|
65
|
+
- Know which `project/` config files to create (e.g., if `repoInfo.pm` includes `"linear"`, create `project/linear-config.md`)
|
|
66
|
+
- Identify `configFiles` to read for deep inspection (Phase 1.3)
|
|
67
|
+
|
|
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 for discovery — it includes everything from `stack` plus all auto-detected tooling.
|
|
69
|
+
|
|
70
|
+
**Still verify:** `repoInfo` detects presence, not configuration details. You still need to read the actual config files for schemas, IDs, routes, etc.
|
|
71
|
+
|
|
72
|
+
The skill matrix (`.github/customizations/agents/skill-matrix.md`) will already have the `cms` and `database` rows pre-filled based on this selection. The appropriate task management skill (`linear-task-management` for Linear, `jira-management` for Jira) and notifications skill (`slack-notifications` for Slack, `teams-notifications` for Teams) will already be installed. Verify they are correct and fill in any remaining empty rows.
|
|
40
73
|
|
|
41
74
|
## Workflow
|
|
42
75
|
|
|
@@ -46,7 +79,8 @@ Explore the project systematically. Gather facts — don't assume.
|
|
|
46
79
|
|
|
47
80
|
#### 1.1 Project Overview
|
|
48
81
|
|
|
49
|
-
- **First**: Read `.opencastle.json` if it exists — note
|
|
82
|
+
- **First**: Read `.opencastle.json` if it exists — note `stack` choices and `repoInfo` detections
|
|
83
|
+
- If `repoInfo` is present, use it as your starting inventory — skip re-scanning for the technologies it already lists
|
|
50
84
|
- Read `README.md`, `package.json`, and any workspace config (`nx.json`, `turbo.json`, `pnpm-workspace.yaml`, `lerna.json`)
|
|
51
85
|
- Identify: monorepo vs single app, package manager, language, framework(s)
|
|
52
86
|
- List all apps and libraries with their purpose
|
|
@@ -78,7 +112,7 @@ For each detected technology, dig into the config:
|
|
|
78
112
|
- **API**: Find route handlers, Server Actions, middleware, external API integrations
|
|
79
113
|
- **Deployment**: Read deploy config, environment variables, cron jobs, security headers
|
|
80
114
|
- **Testing**: Find test config, test suites, test utilities, coverage setup
|
|
81
|
-
- **Docs**: Map the
|
|
115
|
+
- **Docs**: Map the project's documentation directory tree (if it exists)
|
|
82
116
|
- **Task tracking**: Find team IDs, project IDs, workflow states (check Linear/Jira config or docs)
|
|
83
117
|
|
|
84
118
|
### Phase 2: Generate Customization Files
|
|
@@ -88,7 +122,7 @@ Create `.github/customizations/` and generate files based on what you discovered
|
|
|
88
122
|
Files are organized into subdirectories by domain:
|
|
89
123
|
|
|
90
124
|
```
|
|
91
|
-
customizations/
|
|
125
|
+
.github/customizations/
|
|
92
126
|
├── README.md # Directory index
|
|
93
127
|
├── project.instructions.md # High-level project context
|
|
94
128
|
├── LESSONS-LEARNED.md # Knowledge base (retries, workarounds)
|
|
@@ -192,7 +226,7 @@ customizations/
|
|
|
192
226
|
|
|
193
227
|
#### `project/` — Project Management Config
|
|
194
228
|
|
|
195
|
-
14. **`project/docs-structure.md`** — If a
|
|
229
|
+
14. **`project/docs-structure.md`** — If a documentation directory exists:
|
|
196
230
|
- Full directory tree
|
|
197
231
|
- Purpose of each document
|
|
198
232
|
- Documentation conventions
|
|
@@ -225,7 +259,20 @@ For each file created, report:
|
|
|
225
259
|
- Number of lines
|
|
226
260
|
- Key sections included
|
|
227
261
|
|
|
228
|
-
End with a summary of what was discovered, what was generated, and what (if anything) needs manual input (e.g.,
|
|
262
|
+
End with a summary of what was discovered, what was generated, and what (if anything) needs manual input (e.g., tracker team IDs that require API access to discover).
|
|
263
|
+
|
|
264
|
+
After your summary, suggest next steps:
|
|
265
|
+
|
|
266
|
+
### Suggested Next Steps
|
|
267
|
+
|
|
268
|
+
Now that your project is configured, here's what you can do:
|
|
269
|
+
|
|
270
|
+
1. **Review the generated files** — Scan `.github/customizations/` for any `<!-- TODO: verify -->` comments and fill in missing values (e.g., tracker team IDs, Supabase project IDs)
|
|
271
|
+
2. **Commit the customizations** — `git add .github/customizations/ && git commit -m "chore: bootstrap OpenCastle customizations"`
|
|
272
|
+
3. **Implement a feature** — Use the **"Implement Feature"** prompt to have the Team Lead orchestrate a full feature build with task tracking, delegation, and verification
|
|
273
|
+
4. **Fix a bug** — Use the **"Bug Fix"** prompt for structured triage, root cause analysis, and fix with tracker tracking
|
|
274
|
+
5. **Brainstorm first** — Not sure how to approach something? Use the **"Brainstorm"** prompt to explore requirements and trade-offs before committing to a plan
|
|
275
|
+
6. **Create a task spec** — Use the **"Generate Task Spec"** prompt to create `opencastle.tasks.yml` for autonomous overnight runs with `npx opencastle run` CLI command.
|
|
229
276
|
|
|
230
277
|
## Guidelines
|
|
231
278
|
|
|
@@ -3,7 +3,7 @@ description: 'Collaborative brainstorm to explore requirements, approaches, and
|
|
|
3
3
|
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Brainstorm
|
|
9
9
|
|
|
@@ -35,7 +35,7 @@ Before exploring solutions, make sure the problem is well-understood:
|
|
|
35
35
|
Research before proposing. Gather data, don't guess:
|
|
36
36
|
|
|
37
37
|
1. **Search existing code** — is there already a partial implementation, similar pattern, or relevant utility?
|
|
38
|
-
2. **Check documentation** — read
|
|
38
|
+
2. **Check documentation** — read `.github/customizations/project.instructions.md`, `.github/customizations/project/decisions.md`, `.github/customizations/KNOWN-ISSUES.md` for constraints
|
|
39
39
|
3. **Check lessons learned** — read `.github/customizations/LESSONS-LEARNED.md` for pitfalls in this area
|
|
40
40
|
4. **Identify affected layers** — which apps, libs, data stores, and third-party services are involved?
|
|
41
41
|
|
|
@@ -114,4 +114,4 @@ Once the brainstorm is complete and the user confirms (or you're confident in th
|
|
|
114
114
|
|
|
115
115
|
1. **Transition to planning** — use the brainstorm report as input for `implement-feature` or the appropriate workflow
|
|
116
116
|
2. **Preserve context** — include the brainstorm report in delegation prompts so agents understand *why* an approach was chosen
|
|
117
|
-
3. **Reference in
|
|
117
|
+
3. **Reference in tracker** — link the brainstorm findings in the tracker issue description
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Investigate and fix a reported bug with proper triage, root cause analysis,
|
|
2
|
+
description: 'Investigate and fix a reported bug with proper triage, root cause analysis, issue tracking, and verification.'
|
|
3
3
|
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Fix Bug
|
|
9
9
|
|
|
@@ -21,7 +21,7 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
|
|
|
21
21
|
|
|
22
22
|
| Aspect | Roadmap Task | Follow-Up | Bug Fix |
|
|
23
23
|
|--------|-------------|-----------|---------|
|
|
24
|
-
|
|
|
24
|
+
| Issue tracking | Required | Not required | **Required** |
|
|
25
25
|
| Urgency | Planned | Low | Can be critical |
|
|
26
26
|
| Root cause analysis | Feature design | Not needed | **Required** |
|
|
27
27
|
| Reproduction steps | N/A | N/A | **Required** |
|
|
@@ -35,11 +35,11 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
|
|
|
35
35
|
|
|
36
36
|
Before fixing anything, understand the bug:
|
|
37
37
|
|
|
38
|
-
1. **Check known issues** — Search
|
|
39
|
-
2. **Check
|
|
38
|
+
1. **Check known issues** — Search `.github/customizations/KNOWN-ISSUES.md` for an existing entry. If found, note workarounds and decide if a fix is now feasible
|
|
39
|
+
2. **Check tracker** — Search for existing bug tickets. If one exists, take it over instead of creating a duplicate
|
|
40
40
|
3. **Read lessons learned** — Check `.github/customizations/LESSONS-LEARNED.md` for related pitfalls
|
|
41
41
|
4. **Reproduce the bug** — Start the dev server and confirm you can trigger the issue:
|
|
42
|
-
-
|
|
42
|
+
- Start the dev server (see the **codebase-tool** skill for the serve command)
|
|
43
43
|
- Navigate to the affected page in Chrome
|
|
44
44
|
- Follow the reproduction steps from the bug report
|
|
45
45
|
- Take a screenshot of the broken state as evidence
|
|
@@ -50,9 +50,9 @@ Before fixing anything, understand the bug:
|
|
|
50
50
|
- **Medium** — Minor functional issue, cosmetic but noticeable
|
|
51
51
|
- **Low** — Edge case, minor visual glitch
|
|
52
52
|
|
|
53
|
-
### 2. Create
|
|
53
|
+
### 2. Create Tracker Issue
|
|
54
54
|
|
|
55
|
-
Every bug gets tracked. Create a
|
|
55
|
+
Every bug gets tracked. Create a tracker issue with:
|
|
56
56
|
|
|
57
57
|
- **Title**: `[Bug] Short description of the symptom`
|
|
58
58
|
- **Label**: `bug`
|
|
@@ -79,7 +79,7 @@ Find WHY the bug happens, not just WHERE:
|
|
|
79
79
|
- **Race condition** — Timing issue, hydration mismatch, async ordering
|
|
80
80
|
- **CSS/Layout** — Specificity conflict, missing responsive rule, overflow
|
|
81
81
|
- **Integration** — API contract mismatch, schema drift, stale cache
|
|
82
|
-
5. **Update the
|
|
82
|
+
5. **Update the tracker issue** — Add root cause findings and affected file paths
|
|
83
83
|
|
|
84
84
|
### 4. Implement the Fix
|
|
85
85
|
|
|
@@ -87,7 +87,7 @@ Delegate to the appropriate specialist agent via **sub-agent** (inline). For bug
|
|
|
87
87
|
|
|
88
88
|
#### Delegation Prompt Must Include
|
|
89
89
|
|
|
90
|
-
- **
|
|
90
|
+
- **Tracker issue ID and title** — e.g., `TAS-XX — [Bug] Description`
|
|
91
91
|
- **Root cause** — What's wrong and why
|
|
92
92
|
- **Fix approach** — How to fix it (be specific)
|
|
93
93
|
- **File paths** — Exact files to read and modify
|
|
@@ -109,35 +109,35 @@ Delegate to the appropriate specialist agent via **sub-agent** (inline). For bug
|
|
|
109
109
|
|
|
110
110
|
Every bug fix must pass ALL of these checks:
|
|
111
111
|
|
|
112
|
-
1. **Deterministic Checks** —
|
|
112
|
+
1. **Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
113
113
|
2. **Bug-Specific Verification** (mandatory) — start dev server, reproduce original bug (should be gone), verify correct behavior, test edge cases, screenshot before/after, check both apps if shared code
|
|
114
114
|
3. **Regression Check** — run tests for all projects consuming modified files, browser-test adjacent functionality
|
|
115
115
|
4. **Panel Review** (only if needed) — use **panel-majority-vote** skill if fix touches auth/authorization, RLS, security headers/CSP, or sensitive data
|
|
116
116
|
|
|
117
117
|
### 6. Delivery
|
|
118
118
|
|
|
119
|
-
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to
|
|
119
|
+
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to the tracker.
|
|
120
120
|
|
|
121
121
|
### 7. Wrap Up
|
|
122
122
|
|
|
123
|
-
1. **Move
|
|
124
|
-
2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in
|
|
123
|
+
1. **Move tracker issue to Done** — Only after all validation passes
|
|
124
|
+
2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in `.github/customizations/KNOWN-ISSUES.md`
|
|
125
125
|
3. **Capture lessons** — If the root cause reveals a pattern that other agents should know about, add it to `.github/customizations/LESSONS-LEARNED.md`
|
|
126
|
-
4. **Note prevention** — If this class of bug could be caught earlier (by a lint rule, test, or type check), note that in the
|
|
126
|
+
4. **Note prevention** — If this class of bug could be caught earlier (by a lint rule, test, or type check), note that in the tracker issue as a follow-up suggestion
|
|
127
127
|
|
|
128
128
|
### 8. Completion Criteria
|
|
129
129
|
|
|
130
130
|
The bug fix is complete when:
|
|
131
131
|
|
|
132
132
|
- [ ] Bug is reproduced and root cause identified
|
|
133
|
-
- [ ]
|
|
133
|
+
- [ ] Tracker issue created with full details
|
|
134
134
|
- [ ] Fix implemented with minimal change
|
|
135
135
|
- [ ] Test added covering the bug scenario
|
|
136
136
|
- [ ] Lint, test, and build pass for all affected projects
|
|
137
137
|
- [ ] Bug verified fixed in the browser
|
|
138
138
|
- [ ] No regressions in adjacent functionality
|
|
139
139
|
- [ ] Both apps checked if shared code was modified
|
|
140
|
-
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged),
|
|
141
|
-
- [ ]
|
|
140
|
+
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
141
|
+
- [ ] Tracker issue moved to Done
|
|
142
142
|
- [ ] Known issues updated if applicable
|
|
143
143
|
- [ ] Lessons learned captured if any retries occurred
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Scaffold a new skill
|
|
2
|
+
description: 'Scaffold a new skill file with proper frontmatter, structure, and registration. Use when adding a new domain skill to the AI configuration.'
|
|
3
3
|
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Create Skill
|
|
9
9
|
|
|
@@ -15,27 +15,44 @@ Scaffold a new skill for the AI agent configuration. Skills encode domain-specif
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## Skill Types
|
|
19
|
+
|
|
20
|
+
OpenCastle has two kinds of skills with different locations and registration paths:
|
|
21
|
+
|
|
22
|
+
| Type | Location | Bound Via | Purpose |
|
|
23
|
+
|------|----------|-----------|---------|
|
|
24
|
+
| **Process skill** | `skills/<name>/SKILL.md` | Direct reference in agent files | Stack-agnostic methodology (testing workflow, self-improvement, validation gates) |
|
|
25
|
+
| **Plugin skill** | `plugins/<plugin>/SKILL.md` | Capability slot in the skill matrix | Technology-specific knowledge (CMS queries, database patterns, deployment config) |
|
|
26
|
+
|
|
27
|
+
> **Rule of thumb:** If the skill would need to be rewritten when switching technologies (e.g., Supabase → Convex), it belongs in a **plugin**. If it's useful regardless of stack, it's a **process skill**.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
18
31
|
## Workflow
|
|
19
32
|
|
|
20
|
-
### Step 1:
|
|
33
|
+
### Step 1: Classify the Skill
|
|
21
34
|
|
|
22
|
-
|
|
35
|
+
Determine the type:
|
|
23
36
|
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
|
27
|
-
|
|
|
37
|
+
| Question | If Yes → | If No → |
|
|
38
|
+
|----------|----------|---------|
|
|
39
|
+
| Is this tied to a specific technology/tool? | Plugin skill | Process skill |
|
|
40
|
+
| Would switching tech stacks invalidate this content? | Plugin skill | Process skill |
|
|
41
|
+
| Does a plugin already exist for this tool in `plugins/`? | Add `SKILL.md` to existing plugin | Create new plugin or process skill |
|
|
28
42
|
|
|
29
43
|
### Step 2: Name the Skill
|
|
30
44
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
- Check existing skills in
|
|
45
|
+
- Use `kebab-case`
|
|
46
|
+
- **Process skills:** descriptive domain name (e.g., `testing-workflow`, `context-map`, `security-hardening`)
|
|
47
|
+
- **Plugin skills:** `skillName` field in the plugin's `config.ts` (e.g., `sanity-cms`, `supabase-database`, `nx-workspace`)
|
|
48
|
+
- Check existing skills in `skills/` and `plugins/` to avoid overlap
|
|
35
49
|
|
|
36
50
|
### Step 3: Create the Skill File
|
|
37
51
|
|
|
38
|
-
Create
|
|
52
|
+
**Process skill:** Create `skills/<skill-name>/SKILL.md`
|
|
53
|
+
**Plugin skill:** Create `plugins/<plugin-name>/SKILL.md`
|
|
54
|
+
|
|
55
|
+
Use this template:
|
|
39
56
|
|
|
40
57
|
```markdown
|
|
41
58
|
````skill
|
|
@@ -44,16 +61,10 @@ name: <skill-name>
|
|
|
44
61
|
description: "<One-line description of what the skill covers. Include key topics and when to use it.>"
|
|
45
62
|
---
|
|
46
63
|
|
|
47
|
-
#
|
|
64
|
+
# <Display Name>
|
|
48
65
|
|
|
49
66
|
<1-2 sentence overview of the skill's purpose and scope.>
|
|
50
67
|
|
|
51
|
-
## When to Use
|
|
52
|
-
|
|
53
|
-
- <Trigger condition 1>
|
|
54
|
-
- <Trigger condition 2>
|
|
55
|
-
- <Trigger condition 3>
|
|
56
|
-
|
|
57
68
|
## Core Principles
|
|
58
69
|
|
|
59
70
|
1. **<Principle>** — <Explanation>
|
|
@@ -68,11 +79,6 @@ description: "<One-line description of what the skill covers. Include key topics
|
|
|
68
79
|
|
|
69
80
|
<More domain content.>
|
|
70
81
|
|
|
71
|
-
## Checklist
|
|
72
|
-
|
|
73
|
-
- [ ] <Verification item 1>
|
|
74
|
-
- [ ] <Verification item 2>
|
|
75
|
-
|
|
76
82
|
## Anti-Patterns
|
|
77
83
|
|
|
78
84
|
- **<Bad pattern>** — <Why it's bad and what to do instead>
|
|
@@ -82,24 +88,36 @@ description: "<One-line description of what the skill covers. Include key topics
|
|
|
82
88
|
|
|
83
89
|
### Step 4: Register the Skill
|
|
84
90
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
Registration differs by type:
|
|
92
|
+
|
|
93
|
+
#### Process Skill
|
|
94
|
+
|
|
95
|
+
1. **Add to the skill matrix** — Add a row to the **Process Skills (Always Direct)** table in `.github/customizations/agents/skill-matrix.md`
|
|
96
|
+
2. **Reference in agent files** — Add to the `Direct Skills` section of each agent that should use it
|
|
97
|
+
3. **Optional: reference in instructions** — If the skill should be loaded by default, add it to the appropriate `.github/instructions/` file
|
|
98
|
+
|
|
99
|
+
#### Plugin Skill
|
|
100
|
+
|
|
101
|
+
1. **Set `skillName` in the plugin's `config.ts`** — This connects the skill to the plugin
|
|
102
|
+
2. **Update the skill matrix** — Set the Skill column for the matching capability slot row in `.github/customizations/agents/skill-matrix.md`
|
|
103
|
+
3. **No agent changes needed** — Agents resolve plugin skills through capability slots automatically
|
|
88
104
|
|
|
89
105
|
### Step 5: Validate
|
|
90
106
|
|
|
91
|
-
- [ ] File created at
|
|
107
|
+
- [ ] File created at the correct path (`skills/` or `plugins/`)
|
|
92
108
|
- [ ] Frontmatter has `name` and `description` fields
|
|
93
109
|
- [ ] Description is a single line (no line breaks)
|
|
94
110
|
- [ ] Content follows the template structure
|
|
95
111
|
- [ ] No overlap with existing skills
|
|
96
|
-
- [ ] Skill matrix updated
|
|
97
|
-
- [ ]
|
|
112
|
+
- [ ] Skill matrix updated (process skill table or capability slot binding)
|
|
113
|
+
- [ ] For process skills: at least one agent references the skill directly
|
|
114
|
+
- [ ] For plugin skills: `config.ts` `skillName` matches the `name` in frontmatter
|
|
98
115
|
|
|
99
116
|
## Quality Guidelines
|
|
100
117
|
|
|
101
118
|
- **Be prescriptive** — Skills should give clear instructions, not vague advice. "Use `fetchPlaces()` from `libs/queries`" beats "use the query library"
|
|
102
|
-
- **Include examples** — Code snippets, file path examples, and table references
|
|
119
|
+
- **Include examples** — Code snippets, file path examples, and table references
|
|
103
120
|
- **Keep it scannable** — Use headings, tables, bullets, and code blocks. Agents need to find information fast
|
|
104
121
|
- **Avoid duplication** — If a rule already exists in `.github/instructions/`, reference it instead of repeating it
|
|
122
|
+
- **Stay stack-agnostic in process skills** — Never hardcode technology names; use capability slot references (e.g., "the **database** skill" not "Supabase")
|
|
105
123
|
- **Size target** — 100-300 lines. Under 100 is probably too thin; over 300 should be split into multiple skills
|
|
@@ -3,7 +3,7 @@ description: 'Generate a valid opencastle.tasks.yml spec file for autonomous ove
|
|
|
3
3
|
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Generate Task Spec for Autonomous Run
|
|
9
9
|
|
|
@@ -107,11 +107,11 @@ Each task `prompt` must be a **complete, standalone instruction**. Include:
|
|
|
107
107
|
- **Why** — business context so the agent can make good decisions.
|
|
108
108
|
- **Constraints** — coding standards, conventions, do-not-touch files.
|
|
109
109
|
- **Acceptance criteria** — bullet list of pass conditions.
|
|
110
|
-
- **Verification command** — e.g., `Run
|
|
110
|
+
- **Verification command** — e.g., `Run the project's test command with coverage` (see the **codebase-tool** skill) so the agent self-checks.
|
|
111
111
|
|
|
112
112
|
> **Weak prompt:** "Add tests for the auth module."
|
|
113
113
|
>
|
|
114
|
-
> **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
|
|
114
|
+
> **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 (see the **codebase-tool** skill) and fix any failures."
|
|
115
115
|
|
|
116
116
|
### 6. Validate Before Outputting
|
|
117
117
|
|
|
@@ -3,11 +3,11 @@ description: 'Instruct the Team Lead to implement a specific task from the post-
|
|
|
3
3
|
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
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. The task comes from
|
|
10
|
+
You are the Team Lead. Implement the roadmap task described below following this strict workflow. The task comes from `.github/customizations/project/roadmap.md`.
|
|
11
11
|
|
|
12
12
|
## Task
|
|
13
13
|
|
|
@@ -15,29 +15,29 @@ You are the Team Lead. Implement the roadmap task described below following this
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
> **Canonical workflow:** `.github/agent-workflows/feature-implementation.md` defines the phase structure. This prompt adds
|
|
18
|
+
> **Canonical workflow:** `.github/agent-workflows/feature-implementation.md` defines the phase structure. This prompt adds tracker traceability, validation gate references, and completion criteria.
|
|
19
19
|
|
|
20
20
|
## Workflow
|
|
21
21
|
|
|
22
|
-
> **HARD GATE:** Steps 1→2 are **blocking prerequisites**. Do NOT write, edit, or delegate any code until
|
|
22
|
+
> **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.
|
|
23
23
|
|
|
24
24
|
### 1. Research & Context Gathering
|
|
25
25
|
|
|
26
26
|
Before writing any code, gather all relevant context:
|
|
27
27
|
|
|
28
|
-
1. **Read the roadmap** — Open
|
|
29
|
-
2. **Read known issues** — Check
|
|
30
|
-
3. **Read architecture docs** — Check
|
|
28
|
+
1. **Read the roadmap** — Open `.github/customizations/project/roadmap.md` and find the full scope, status, and acceptance criteria for this task
|
|
29
|
+
2. **Read known issues** — Check `.github/customizations/KNOWN-ISSUES.md` for blockers or workarounds that affect this task
|
|
30
|
+
3. **Read architecture docs** — Check `.github/customizations/project.instructions.md` and `.github/customizations/project/decisions.md` for constraints and prior decisions
|
|
31
31
|
4. **Read lessons learned** — Check `.github/customizations/LESSONS-LEARNED.md` for pitfalls relevant to this feature area
|
|
32
32
|
5. **Search existing code** — Find all files, components, queries, and tests related to this feature area
|
|
33
33
|
6. **Identify reusable code** — Before creating anything new, check if similar logic, components, or utilities already exist in the codebase that can be reused or extended
|
|
34
34
|
|
|
35
|
-
### 2.
|
|
35
|
+
### 2. Task Board Setup (BLOCKING — must complete before Step 3)
|
|
36
36
|
|
|
37
|
-
Every subtask must be tracked
|
|
37
|
+
Every subtask must be tracked. **No issue = no implementation.** This step produces the issues that gate all downstream work.
|
|
38
38
|
|
|
39
39
|
1. **Check existing issues** — Search the board for any in-progress or completed work related to this task
|
|
40
|
-
2. **Decompose into issues** — Create one
|
|
40
|
+
2. **Decompose into issues** — Create one tracker issue per subtask using `[Area] Short description` naming
|
|
41
41
|
3. **Set metadata** — Assign labels (agent name), priority, dependencies, and file partitions
|
|
42
42
|
4. **Write descriptions** — Each issue must include:
|
|
43
43
|
- **Objective:** One sentence
|
|
@@ -49,9 +49,9 @@ Every subtask must be tracked on Linear. **No issue = no implementation.** This
|
|
|
49
49
|
|
|
50
50
|
### 3. Implementation Rules
|
|
51
51
|
|
|
52
|
-
####
|
|
52
|
+
#### Issue Traceability
|
|
53
53
|
|
|
54
|
-
- **Pass issue ID to every agent** — When delegating a subtask (sub-agent or background), include the
|
|
54
|
+
- **Pass issue ID to every agent** — When delegating a subtask (sub-agent or background), include the tracker issue ID and title in the prompt so the agent knows which tracked task it is completing
|
|
55
55
|
- **Reference in commits** — Include the issue ID (e.g., `TAS-42`) in commit messages when possible
|
|
56
56
|
- **Update issue status** — Move issues to In Progress before starting, Done after verification passes
|
|
57
57
|
|
|
@@ -79,29 +79,29 @@ Include the self-improvement reminder in every delegation prompt (see `general.i
|
|
|
79
79
|
|
|
80
80
|
Every subtask must pass ALL gates before being marked Done:
|
|
81
81
|
|
|
82
|
-
1. **Gate 1: Deterministic Checks** —
|
|
82
|
+
1. **Gate 1: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
83
83
|
2. **Gate 2: Browser Testing** (MANDATORY for UI changes) — clear cache, start server, verify features + responsive + screenshots
|
|
84
84
|
3. **Gate 3: Regression Testing** — full test suite for affected projects, browser-test adjacent pages if shared components changed
|
|
85
85
|
4. **Gate 4: Panel Review** (for high-stakes changes) — use **panel-majority-vote** skill for security, DB migrations, architecture
|
|
86
86
|
|
|
87
87
|
### 5. Delivery
|
|
88
88
|
|
|
89
|
-
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to
|
|
89
|
+
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to the tracker.
|
|
90
90
|
|
|
91
91
|
### 6. Documentation & Traceability
|
|
92
92
|
|
|
93
93
|
Keep documentation current so future sessions have full context:
|
|
94
94
|
|
|
95
|
-
1. **Update roadmap** — Mark completed items in
|
|
95
|
+
1. **Update roadmap** — Mark completed items in `.github/customizations/project/roadmap.md` with ✅ and the completion date. **Include tracker issue IDs and links** next to each scope item so progress is traceable across sessions. Format:
|
|
96
96
|
```
|
|
97
|
-
**
|
|
98
|
-
- [PREFIX-6](
|
|
99
|
-
- [PREFIX-7](
|
|
97
|
+
**Tracker Issues:**
|
|
98
|
+
- [PREFIX-6](<tracker-url>/PREFIX-6) — [Search] Description ✅ Done
|
|
99
|
+
- [PREFIX-7](<tracker-url>/PREFIX-7) — [UI] Description 📋 Todo
|
|
100
100
|
```
|
|
101
|
-
> Replace `PREFIX`
|
|
102
|
-
2. **Update known issues** — If new limitations are discovered, add them to
|
|
103
|
-
3. **Update architecture docs** — If architectural decisions were made, add an ADR to
|
|
104
|
-
4. **Link
|
|
101
|
+
> Replace `PREFIX` with the project's issue prefix (see `tracker-config.md`).
|
|
102
|
+
2. **Update known issues** — If new limitations are discovered, add them to `.github/customizations/KNOWN-ISSUES.md`
|
|
103
|
+
3. **Update architecture docs** — If architectural decisions were made, add an ADR to `.github/customizations/project/decisions.md`
|
|
104
|
+
4. **Link tracker issues** — Every issue description should reference:
|
|
105
105
|
- Related roadmap section
|
|
106
106
|
- Files modified (the partition)
|
|
107
107
|
- Related issues (dependencies and follow-ups)
|
|
@@ -111,9 +111,9 @@ Keep documentation current so future sessions have full context:
|
|
|
111
111
|
|
|
112
112
|
The roadmap task is complete when:
|
|
113
113
|
|
|
114
|
-
- [ ] All
|
|
114
|
+
- [ ] All tracker subtask issues are Done
|
|
115
115
|
- [ ] All deterministic checks pass (lint, test, build) for affected projects
|
|
116
|
-
- [ ] **Dev server started with CLEAN cache** (
|
|
116
|
+
- [ ] **Dev server started with CLEAN cache** (clear framework + task runner caches before serving — see the **codebase-tool** skill)
|
|
117
117
|
- [ ] **All UI changes verified in Chrome browser via MCP with screenshots taken as proof**
|
|
118
118
|
- [ ] **Every feature in the acceptance criteria visually confirmed** — not just "page loads"
|
|
119
119
|
- [ ] Regression tests confirm no existing functionality is broken
|
|
@@ -121,6 +121,6 @@ The roadmap task is complete when:
|
|
|
121
121
|
- [ ] Visual consistency maintained across all affected pages and apps
|
|
122
122
|
- [ ] Documentation updated (roadmap, known issues, decisions)
|
|
123
123
|
- [ ] Panel review passed for any high-stakes changes
|
|
124
|
-
- [ ] Roadmap item marked complete in
|
|
125
|
-
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged),
|
|
124
|
+
- [ ] Roadmap item marked complete in `.github/customizations/project/roadmap.md`
|
|
125
|
+
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
126
126
|
- [ ] Lessons learned captured if any retries occurred
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Collect and report metrics from agent logs, GitHub PRs,
|
|
2
|
+
description: 'Collect and report metrics from agent logs, GitHub PRs, tracker issues, and deployments'
|
|
3
3
|
agent: Researcher
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
|
|
6
|
+
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
7
7
|
|
|
8
8
|
# Metrics Report
|
|
9
9
|
|
|
@@ -46,9 +46,9 @@ Compute:
|
|
|
46
46
|
- **Commit frequency** — commits per day/week on main
|
|
47
47
|
- **Bogus/closed PRs** — PRs closed without merge (potential failed agent work)
|
|
48
48
|
|
|
49
|
-
### 3.
|
|
49
|
+
### 3. Tracker Issues
|
|
50
50
|
|
|
51
|
-
Use
|
|
51
|
+
Use tracker MCP tools (`list_issues`, `search_issues`):
|
|
52
52
|
|
|
53
53
|
```
|
|
54
54
|
list_issues with status filter for each state: Backlog, Todo, In Progress, Done, Cancelled
|
|
@@ -62,9 +62,9 @@ Compute:
|
|
|
62
62
|
- **Cycle time** — average time from In Progress → Done (if dates available)
|
|
63
63
|
- **Stale issues** — In Progress for >7 days without updates
|
|
64
64
|
|
|
65
|
-
### 4.
|
|
65
|
+
### 4. Deployments
|
|
66
66
|
|
|
67
|
-
Use
|
|
67
|
+
Use deployment platform tools (if available via MCP or CLI):
|
|
68
68
|
|
|
69
69
|
Query deployments for all configured apps (see `project.instructions.md` for the app inventory).
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@ Compute:
|
|
|
74
74
|
- **Failure rate** — error / total
|
|
75
75
|
- **Build times** — average, median, p95
|
|
76
76
|
- **Deployments per day** — activity timeline
|
|
77
|
-
- **Failed deployment details** — which commits/branches failed and why
|
|
77
|
+
- **Failed deployment details** — which commits/branches failed and why
|
|
78
78
|
|
|
79
79
|
### 5. Panel Reviews (local)
|
|
80
80
|
|
|
@@ -110,7 +110,7 @@ Present the report as a structured markdown summary with these sections:
|
|
|
110
110
|
- X agent sessions, Y% success rate
|
|
111
111
|
- Z PRs merged, W% merge rate
|
|
112
112
|
- N deployments, M% success rate
|
|
113
|
-
- P
|
|
113
|
+
- P tracker issues completed
|
|
114
114
|
|
|
115
115
|
## Agent Activity
|
|
116
116
|
{sessions table, success rates, model usage}
|
|
@@ -121,10 +121,10 @@ Present the report as a structured markdown summary with these sections:
|
|
|
121
121
|
## GitHub
|
|
122
122
|
{PR stats, merge rates, commit frequency}
|
|
123
123
|
|
|
124
|
-
##
|
|
124
|
+
## Task Board
|
|
125
125
|
{issue distribution, completion rate, stale issues}
|
|
126
126
|
|
|
127
|
-
##
|
|
127
|
+
## Deployments
|
|
128
128
|
{success rate, failure rate, build times}
|
|
129
129
|
|
|
130
130
|
## Panel Reviews
|
|
@@ -141,4 +141,4 @@ Present the report as a structured markdown summary with these sections:
|
|
|
141
141
|
|
|
142
142
|
Run this prompt periodically (weekly recommended) to track project health. Compare with previous reports to identify trends.
|
|
143
143
|
|
|
144
|
-
If session logs are empty (no data yet), still collect GitHub/
|
|
144
|
+
If session logs are empty (no data yet), still collect GitHub/tracker/deployment data and note that agent logging has just been enabled.
|