opencastle 0.6.0 → 0.8.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 +8 -7
- package/dist/cli/adapters/claude-code.d.ts.map +1 -1
- package/dist/cli/adapters/claude-code.js +30 -3
- package/dist/cli/adapters/claude-code.js.map +1 -1
- package/dist/cli/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/adapters/cursor.js +27 -3
- 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.map +1 -1
- package/dist/cli/adapters/vscode.js +37 -6
- 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 +1 -1
- package/dist/cli/detect.js +21 -15
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +143 -94
- 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 +104 -33
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/prompt.d.ts +19 -0
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +143 -0
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/stack-config.d.ts +23 -0
- package/dist/cli/stack-config.d.ts.map +1 -1
- package/dist/cli/stack-config.js +128 -124
- package/dist/cli/stack-config.js.map +1 -1
- package/dist/cli/types.d.ts +26 -9
- 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 +60 -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 +36 -4
- package/src/cli/adapters/cursor.ts +42 -4
- package/src/cli/adapters/opencode.ts +320 -0
- package/src/cli/adapters/vscode.ts +40 -8
- package/src/cli/copy.ts +32 -0
- package/src/cli/detect.ts +17 -17
- package/src/cli/init.ts +157 -99
- package/src/cli/manifest.ts +2 -1
- package/src/cli/mcp.ts +129 -50
- package/src/cli/prompt.ts +176 -0
- package/src/cli/stack-config.ts +174 -145
- package/src/cli/types.ts +39 -8
- package/src/cli/update.ts +71 -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 +19 -12
- 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 +1 -1
- package/src/orchestrator/agents/architect.agent.md +2 -2
- package/src/orchestrator/agents/content-engineer.agent.md +3 -3
- 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 +3 -3
- package/src/orchestrator/agents/developer.agent.md +4 -4
- 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 +2 -2
- package/src/orchestrator/agents/release-manager.agent.md +4 -4
- package/src/orchestrator/agents/researcher.agent.md +3 -3
- package/src/orchestrator/agents/reviewer.agent.md +1 -1
- 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 +56 -38
- package/src/orchestrator/agents/testing-expert.agent.md +5 -5
- package/src/orchestrator/agents/ui-ux-expert.agent.md +6 -6
- 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 +8 -8
- package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
- package/src/orchestrator/prompts/bug-fix.prompt.md +27 -22
- 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 +34 -29
- package/src/orchestrator/prompts/metrics-report.prompt.md +11 -11
- package/src/orchestrator/prompts/quick-refinement.prompt.md +23 -19
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +19 -5
- 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 +18 -7
- 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 +157 -27
- package/src/orchestrator/mcp.json +0 -69
|
@@ -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
|
|
@@ -107,37 +107,42 @@ Delegate to the appropriate specialist agent via **sub-agent** (inline). For bug
|
|
|
107
107
|
|
|
108
108
|
> Load the **validation-gates** skill for detailed steps on each gate.
|
|
109
109
|
|
|
110
|
-
Every bug fix must pass ALL
|
|
110
|
+
Every bug fix must pass ALL applicable gates:
|
|
111
111
|
|
|
112
|
-
1. **
|
|
113
|
-
2. **
|
|
114
|
-
3. **
|
|
115
|
-
4. **
|
|
112
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
113
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
114
|
+
3. **Gate 3: Blast Radius Check** — verify the fix is minimal and scoped (bug fixes should be ≤100 lines, ≤3 files; escalate if larger)
|
|
115
|
+
4. **Gate 4: Dependency Audit** (when `package.json` or lockfiles change) — vulnerability scan, license check, bundle size, duplicates
|
|
116
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates the fix. No auto-PASS for sensitive files
|
|
117
|
+
6. **Gate 6: 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
|
|
118
|
+
7. **Gate 7: Browser Testing** (for UI-related bugs) — clear cache, start server, verify fix + responsive + screenshots
|
|
119
|
+
8. **Gate 8: Regression Testing** — run tests for all projects consuming modified files, browser-test adjacent functionality
|
|
120
|
+
9. **Gate 9: Panel Review** (only if needed) — use **panel-majority-vote** skill if fix touches auth/authorization, RLS, security headers/CSP, or sensitive data
|
|
116
121
|
|
|
117
122
|
### 6. Delivery
|
|
118
123
|
|
|
119
|
-
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to
|
|
124
|
+
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to the tracker.
|
|
120
125
|
|
|
121
126
|
### 7. Wrap Up
|
|
122
127
|
|
|
123
|
-
1. **Move
|
|
124
|
-
2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in
|
|
128
|
+
1. **Move tracker issue to Done** — Only after all validation passes
|
|
129
|
+
2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in `.github/customizations/KNOWN-ISSUES.md`
|
|
125
130
|
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
|
|
131
|
+
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
132
|
|
|
128
133
|
### 8. Completion Criteria
|
|
129
134
|
|
|
130
135
|
The bug fix is complete when:
|
|
131
136
|
|
|
132
137
|
- [ ] Bug is reproduced and root cause identified
|
|
133
|
-
- [ ]
|
|
138
|
+
- [ ] Tracker issue created with full details
|
|
134
139
|
- [ ] Fix implemented with minimal change
|
|
135
140
|
- [ ] Test added covering the bug scenario
|
|
136
141
|
- [ ] Lint, test, and build pass for all affected projects
|
|
137
142
|
- [ ] Bug verified fixed in the browser
|
|
138
143
|
- [ ] No regressions in adjacent functionality
|
|
139
144
|
- [ ] Both apps checked if shared code was modified
|
|
140
|
-
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged),
|
|
141
|
-
- [ ]
|
|
145
|
+
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
146
|
+
- [ ] Tracker issue moved to Done
|
|
142
147
|
- [ ] Known issues updated if applicable
|
|
143
148
|
- [ ] 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,34 @@ 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:
|
|
83
|
-
2. **Gate 2:
|
|
84
|
-
3. **Gate 3:
|
|
85
|
-
4. **Gate 4:
|
|
82
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
83
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
84
|
+
3. **Gate 3: Blast Radius Check** — verify scope is expected (≤200 lines, ≤5 files normal; escalate if >500 lines or >10 files)
|
|
85
|
+
4. **Gate 4: Dependency Audit** (when `package.json` changes) — vulnerability scan, license check, bundle size, duplicates
|
|
86
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates every delegation output. No auto-PASS for sensitive files
|
|
87
|
+
6. **Gate 6: Browser Testing** (MANDATORY for UI changes) — clear cache, start server, verify features + responsive + screenshots
|
|
88
|
+
7. **Gate 7: Regression Testing** — full test suite for affected projects, browser-test adjacent pages if shared components changed
|
|
89
|
+
8. **Gate 8: Panel Review** (for high-stakes changes) — use **panel-majority-vote** skill for security, DB migrations, architecture
|
|
90
|
+
9. **Gate 9: Final Smoke Test** — after all tasks Done, verify the complete feature end-to-end as a cohesive unit
|
|
86
91
|
|
|
87
92
|
### 5. Delivery
|
|
88
93
|
|
|
89
|
-
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to
|
|
94
|
+
Follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to the tracker.
|
|
90
95
|
|
|
91
96
|
### 6. Documentation & Traceability
|
|
92
97
|
|
|
93
98
|
Keep documentation current so future sessions have full context:
|
|
94
99
|
|
|
95
|
-
1. **Update roadmap** — Mark completed items in
|
|
100
|
+
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
101
|
```
|
|
97
|
-
**
|
|
98
|
-
- [PREFIX-6](
|
|
99
|
-
- [PREFIX-7](
|
|
102
|
+
**Tracker Issues:**
|
|
103
|
+
- [PREFIX-6](<tracker-url>/PREFIX-6) — [Search] Description ✅ Done
|
|
104
|
+
- [PREFIX-7](<tracker-url>/PREFIX-7) — [UI] Description 📋 Todo
|
|
100
105
|
```
|
|
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
|
|
106
|
+
> Replace `PREFIX` with the project's issue prefix (see `tracker-config.md`).
|
|
107
|
+
2. **Update known issues** — If new limitations are discovered, add them to `.github/customizations/KNOWN-ISSUES.md`
|
|
108
|
+
3. **Update architecture docs** — If architectural decisions were made, add an ADR to `.github/customizations/project/decisions.md`
|
|
109
|
+
4. **Link tracker issues** — Every issue description should reference:
|
|
105
110
|
- Related roadmap section
|
|
106
111
|
- Files modified (the partition)
|
|
107
112
|
- Related issues (dependencies and follow-ups)
|
|
@@ -111,9 +116,9 @@ Keep documentation current so future sessions have full context:
|
|
|
111
116
|
|
|
112
117
|
The roadmap task is complete when:
|
|
113
118
|
|
|
114
|
-
- [ ] All
|
|
119
|
+
- [ ] All tracker subtask issues are Done
|
|
115
120
|
- [ ] All deterministic checks pass (lint, test, build) for affected projects
|
|
116
|
-
- [ ] **Dev server started with CLEAN cache** (
|
|
121
|
+
- [ ] **Dev server started with CLEAN cache** (clear framework + task runner caches before serving — see the **codebase-tool** skill)
|
|
117
122
|
- [ ] **All UI changes verified in Chrome browser via MCP with screenshots taken as proof**
|
|
118
123
|
- [ ] **Every feature in the acceptance criteria visually confirmed** — not just "page loads"
|
|
119
124
|
- [ ] Regression tests confirm no existing functionality is broken
|
|
@@ -121,6 +126,6 @@ The roadmap task is complete when:
|
|
|
121
126
|
- [ ] Visual consistency maintained across all affected pages and apps
|
|
122
127
|
- [ ] Documentation updated (roadmap, known issues, decisions)
|
|
123
128
|
- [ ] 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),
|
|
129
|
+
- [ ] Roadmap item marked complete in `.github/customizations/project/roadmap.md`
|
|
130
|
+
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
126
131
|
- [ ] 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.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Handle follow-up refinements after a roadmap task — bug fixes, UI tweaks, polish, and adjustments that are too small for
|
|
2
|
+
description: 'Handle follow-up refinements after a roadmap task — bug fixes, UI tweaks, polish, and adjustments that are too small for issue tracking.'
|
|
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
|
# Follow-Up Refinement
|
|
9
9
|
|
|
10
|
-
You are the Team Lead. Handle the follow-up refinement described below. This is a **post-task adjustment** — a bug fix, UI tweak, or polish item that came up after reviewing a completed roadmap task. It does NOT require
|
|
10
|
+
You are the Team Lead. Handle the follow-up refinement described below. This is a **post-task adjustment** — a bug fix, UI tweak, or polish item that came up after reviewing a completed roadmap task. It does NOT require issue tracking.
|
|
11
11
|
|
|
12
12
|
## Request
|
|
13
13
|
|
|
@@ -19,7 +19,7 @@ You are the Team Lead. Handle the follow-up refinement described below. This is
|
|
|
19
19
|
|
|
20
20
|
| Aspect | Roadmap Task | Follow-Up |
|
|
21
21
|
|--------|-------------|-----------|
|
|
22
|
-
|
|
|
22
|
+
| Tracker issues | Required (hard gate) | Depends on scope (see triage) |
|
|
23
23
|
| Panel review | For high-stakes changes | Only if security/data-related |
|
|
24
24
|
| Documentation updates | Roadmap + known issues + ADRs | Only if behavior changes significantly |
|
|
25
25
|
| Scope | Multi-step feature | Focused fix or adjustment |
|
|
@@ -31,9 +31,9 @@ You are the Team Lead. Handle the follow-up refinement described below. This is
|
|
|
31
31
|
|
|
32
32
|
### 1. Triage: Decide Tracking Level
|
|
33
33
|
|
|
34
|
-
Before doing anything, decide whether this follow-up needs
|
|
34
|
+
Before doing anything, decide whether this follow-up needs issue tracking:
|
|
35
35
|
|
|
36
|
-
**Create a
|
|
36
|
+
**Create a tracker issue if ANY of these are true:**
|
|
37
37
|
- The change affects user-visible behavior (not just cosmetic)
|
|
38
38
|
- It touches more than 2–3 files
|
|
39
39
|
- It modifies shared library code (`libs/`)
|
|
@@ -41,13 +41,13 @@ Before doing anything, decide whether this follow-up needs Linear tracking:
|
|
|
41
41
|
- It could introduce regressions in other features
|
|
42
42
|
- You want a record for future reference (e.g., "why was this changed?")
|
|
43
43
|
|
|
44
|
-
**Skip
|
|
44
|
+
**Skip tracking if ALL of these are true:**
|
|
45
45
|
- Pure cosmetic/spacing/copy tweak
|
|
46
46
|
- Isolated to a single component or page
|
|
47
47
|
- No behavioral change
|
|
48
48
|
- Trivial to verify visually
|
|
49
49
|
|
|
50
|
-
If creating a
|
|
50
|
+
If creating a tracker issue, use:
|
|
51
51
|
- **Title**: `[Follow-up] Short description`
|
|
52
52
|
- **Label**: agent name + `follow-up`
|
|
53
53
|
- **Priority**: Low or Medium
|
|
@@ -59,11 +59,11 @@ Before touching any code:
|
|
|
59
59
|
|
|
60
60
|
1. **Clarify scope** — Identify exactly which pages, components, or behaviors need to change
|
|
61
61
|
2. **Find affected files** — Search the codebase for the relevant components, styles, queries, and tests
|
|
62
|
-
3. **Check known issues** — Scan
|
|
62
|
+
3. **Check known issues** — Scan `.github/customizations/KNOWN-ISSUES.md` in case this is a documented limitation
|
|
63
63
|
4. **Read lessons learned** — Check `.github/customizations/LESSONS-LEARNED.md` for relevant pitfalls before starting
|
|
64
64
|
5. **Assess complexity** — If the request turns out to be larger than expected (touches >5 files, needs a migration, or affects auth/security), escalate it:
|
|
65
65
|
- Inform the user that this should be a tracked task
|
|
66
|
-
- Create a
|
|
66
|
+
- Create a tracker issue (if not already created in triage) and switch to the `implement-feature` workflow
|
|
67
67
|
|
|
68
68
|
### 3. Plan the Fix
|
|
69
69
|
|
|
@@ -98,17 +98,21 @@ Delegate to the appropriate specialist agent(s). Since follow-ups are scoped and
|
|
|
98
98
|
|
|
99
99
|
> Load the **validation-gates** skill for detailed steps on each gate.
|
|
100
100
|
|
|
101
|
-
Every follow-up, no matter how small, must pass these
|
|
101
|
+
Every follow-up, no matter how small, must pass these gates:
|
|
102
102
|
|
|
103
|
-
1. **
|
|
104
|
-
2. **
|
|
105
|
-
3. **
|
|
103
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
104
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
105
|
+
3. **Gate 3: Blast Radius Check** — verify scope matches the "small follow-up" expectation (≤100 lines, ≤3 files normal; if larger, escalate to `implement-feature` workflow)
|
|
106
|
+
4. **Gate 4: Dependency Audit** (when `package.json` or lockfiles change) — vulnerability scan, license check, bundle size, duplicates
|
|
107
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates the change. No auto-PASS for sensitive files
|
|
108
|
+
6. **Gate 6: Browser Testing** (MANDATORY for any visual change) — clear cache, start server, verify scenario + responsive + screenshot evidence
|
|
109
|
+
7. **Gate 7: Regression Testing** — if shared component/library modified, run tests for all consuming projects and browser-test at least one page per affected app
|
|
106
110
|
|
|
107
111
|
### 6. Delivery
|
|
108
112
|
|
|
109
|
-
If triage determined this follow-up needs
|
|
113
|
+
If triage determined this follow-up needs tracker tracking, follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to the tracker.
|
|
110
114
|
|
|
111
|
-
If triage determined no
|
|
115
|
+
If triage determined no tracker tracking is needed (pure cosmetic/isolated/trivial), commit the changes to the current working branch. A dedicated branch and PR are not required because the Team Lead will include these changes in the parent task's existing PR — the "every change goes through a PR" rule is still satisfied via the parent PR.
|
|
112
116
|
|
|
113
117
|
### 7. Escalation Triggers
|
|
114
118
|
|
|
@@ -128,12 +132,12 @@ When escalating, explain to the user what you found and why it needs proper trac
|
|
|
128
132
|
The follow-up is complete when:
|
|
129
133
|
|
|
130
134
|
- [ ] The specific request is resolved
|
|
131
|
-
- [ ]
|
|
135
|
+
- [ ] Tracker issue created and moved to Done (if triage determined tracking was needed)
|
|
132
136
|
- [ ] Lint, test, and build pass for all affected projects
|
|
133
|
-
- [ ] **Dev server started with CLEAN cache** (
|
|
137
|
+
- [ ] **Dev server started with CLEAN cache** (clear framework + task runner caches before serving — see the **codebase-tool** skill)
|
|
134
138
|
- [ ] **Visual changes verified in Chrome with screenshot taken as proof**
|
|
135
139
|
- [ ] No regressions in adjacent functionality
|
|
136
140
|
- [ ] Shared component changes tested across all consuming apps
|
|
137
|
-
- [ ] Delivery Outcome completed if tracked (see `general.instructions.md`) — branch pushed, PR opened (not merged),
|
|
141
|
+
- [ ] Delivery Outcome completed if tracked (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
138
142
|
- [ ] Lessons learned captured if any retries occurred
|
|
139
143
|
- [ ] Known issues updated if a new limitation was discovered
|