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.
Files changed (231) hide show
  1. package/README.md +5 -4
  2. package/dist/cli/adapters/claude-code.d.ts +2 -2
  3. package/dist/cli/adapters/claude-code.d.ts.map +1 -1
  4. package/dist/cli/adapters/claude-code.js +31 -4
  5. package/dist/cli/adapters/claude-code.js.map +1 -1
  6. package/dist/cli/adapters/cursor.d.ts +2 -2
  7. package/dist/cli/adapters/cursor.d.ts.map +1 -1
  8. package/dist/cli/adapters/cursor.js +28 -4
  9. package/dist/cli/adapters/cursor.js.map +1 -1
  10. package/dist/cli/adapters/opencode.d.ts +20 -0
  11. package/dist/cli/adapters/opencode.d.ts.map +1 -0
  12. package/dist/cli/adapters/opencode.js +265 -0
  13. package/dist/cli/adapters/opencode.js.map +1 -0
  14. package/dist/cli/adapters/vscode.d.ts +2 -2
  15. package/dist/cli/adapters/vscode.d.ts.map +1 -1
  16. package/dist/cli/adapters/vscode.js +38 -7
  17. package/dist/cli/adapters/vscode.js.map +1 -1
  18. package/dist/cli/copy.d.ts +12 -0
  19. package/dist/cli/copy.d.ts.map +1 -1
  20. package/dist/cli/copy.js +27 -0
  21. package/dist/cli/copy.js.map +1 -1
  22. package/dist/cli/detect.d.ts +18 -0
  23. package/dist/cli/detect.d.ts.map +1 -0
  24. package/dist/cli/detect.js +434 -0
  25. package/dist/cli/detect.js.map +1 -0
  26. package/dist/cli/gitignore.d.ts.map +1 -1
  27. package/dist/cli/gitignore.js +0 -2
  28. package/dist/cli/gitignore.js.map +1 -1
  29. package/dist/cli/init.d.ts.map +1 -1
  30. package/dist/cli/init.js +154 -91
  31. package/dist/cli/init.js.map +1 -1
  32. package/dist/cli/manifest.d.ts +1 -1
  33. package/dist/cli/manifest.d.ts.map +1 -1
  34. package/dist/cli/manifest.js +2 -1
  35. package/dist/cli/manifest.js.map +1 -1
  36. package/dist/cli/mcp.d.ts +6 -6
  37. package/dist/cli/mcp.d.ts.map +1 -1
  38. package/dist/cli/mcp.js +105 -34
  39. package/dist/cli/mcp.js.map +1 -1
  40. package/dist/cli/prompt.d.ts +22 -0
  41. package/dist/cli/prompt.d.ts.map +1 -1
  42. package/dist/cli/prompt.js +239 -0
  43. package/dist/cli/prompt.js.map +1 -1
  44. package/dist/cli/stack-config.d.ts +26 -3
  45. package/dist/cli/stack-config.d.ts.map +1 -1
  46. package/dist/cli/stack-config.js +140 -125
  47. package/dist/cli/stack-config.js.map +1 -1
  48. package/dist/cli/types.d.ts +46 -10
  49. package/dist/cli/types.d.ts.map +1 -1
  50. package/dist/cli/types.js +26 -1
  51. package/dist/cli/types.js.map +1 -1
  52. package/dist/cli/update.d.ts.map +1 -1
  53. package/dist/cli/update.js +66 -19
  54. package/dist/cli/update.js.map +1 -1
  55. package/dist/orchestrator/plugins/chrome-devtools/config.d.ts +3 -0
  56. package/dist/orchestrator/plugins/chrome-devtools/config.d.ts.map +1 -0
  57. package/dist/orchestrator/plugins/chrome-devtools/config.js +28 -0
  58. package/dist/orchestrator/plugins/chrome-devtools/config.js.map +1 -0
  59. package/dist/orchestrator/plugins/contentful/config.d.ts +3 -0
  60. package/dist/orchestrator/plugins/contentful/config.d.ts.map +1 -0
  61. package/dist/orchestrator/plugins/contentful/config.js +48 -0
  62. package/dist/orchestrator/plugins/contentful/config.js.map +1 -0
  63. package/dist/orchestrator/plugins/convex/config.d.ts +3 -0
  64. package/dist/orchestrator/plugins/convex/config.d.ts.map +1 -0
  65. package/dist/orchestrator/plugins/convex/config.js +32 -0
  66. package/dist/orchestrator/plugins/convex/config.js.map +1 -0
  67. package/dist/orchestrator/plugins/index.d.ts +28 -0
  68. package/dist/orchestrator/plugins/index.d.ts.map +1 -0
  69. package/dist/orchestrator/plugins/index.js +63 -0
  70. package/dist/orchestrator/plugins/index.js.map +1 -0
  71. package/dist/orchestrator/plugins/jira/config.d.ts +3 -0
  72. package/dist/orchestrator/plugins/jira/config.d.ts.map +1 -0
  73. package/dist/orchestrator/plugins/jira/config.js +29 -0
  74. package/dist/orchestrator/plugins/jira/config.js.map +1 -0
  75. package/dist/orchestrator/plugins/linear/config.d.ts +3 -0
  76. package/dist/orchestrator/plugins/linear/config.d.ts.map +1 -0
  77. package/dist/orchestrator/plugins/linear/config.js +33 -0
  78. package/dist/orchestrator/plugins/linear/config.js.map +1 -0
  79. package/dist/orchestrator/plugins/nx/config.d.ts +3 -0
  80. package/dist/orchestrator/plugins/nx/config.d.ts.map +1 -0
  81. package/dist/orchestrator/plugins/nx/config.js +28 -0
  82. package/dist/orchestrator/plugins/nx/config.js.map +1 -0
  83. package/dist/orchestrator/plugins/sanity/config.d.ts +3 -0
  84. package/dist/orchestrator/plugins/sanity/config.d.ts.map +1 -0
  85. package/dist/orchestrator/plugins/sanity/config.js +43 -0
  86. package/dist/orchestrator/plugins/sanity/config.js.map +1 -0
  87. package/dist/orchestrator/plugins/slack/config.d.ts +3 -0
  88. package/dist/orchestrator/plugins/slack/config.d.ts.map +1 -0
  89. package/dist/orchestrator/plugins/slack/config.js +34 -0
  90. package/dist/orchestrator/plugins/slack/config.js.map +1 -0
  91. package/dist/orchestrator/plugins/strapi/config.d.ts +3 -0
  92. package/dist/orchestrator/plugins/strapi/config.d.ts.map +1 -0
  93. package/dist/orchestrator/plugins/strapi/config.js +40 -0
  94. package/dist/orchestrator/plugins/strapi/config.js.map +1 -0
  95. package/dist/orchestrator/plugins/supabase/config.d.ts +3 -0
  96. package/dist/orchestrator/plugins/supabase/config.d.ts.map +1 -0
  97. package/dist/orchestrator/plugins/supabase/config.js +33 -0
  98. package/dist/orchestrator/plugins/supabase/config.js.map +1 -0
  99. package/dist/orchestrator/plugins/teams/config.d.ts +3 -0
  100. package/dist/orchestrator/plugins/teams/config.d.ts.map +1 -0
  101. package/dist/orchestrator/plugins/teams/config.js +43 -0
  102. package/dist/orchestrator/plugins/teams/config.js.map +1 -0
  103. package/dist/orchestrator/plugins/types.d.ts +61 -0
  104. package/dist/orchestrator/plugins/types.d.ts.map +1 -0
  105. package/dist/orchestrator/plugins/types.js +2 -0
  106. package/dist/orchestrator/plugins/types.js.map +1 -0
  107. package/dist/orchestrator/plugins/vercel/config.d.ts +3 -0
  108. package/dist/orchestrator/plugins/vercel/config.d.ts.map +1 -0
  109. package/dist/orchestrator/plugins/vercel/config.js +32 -0
  110. package/dist/orchestrator/plugins/vercel/config.js.map +1 -0
  111. package/package.json +1 -1
  112. package/src/cli/adapters/claude-code.ts +40 -6
  113. package/src/cli/adapters/cursor.ts +46 -6
  114. package/src/cli/adapters/opencode.ts +320 -0
  115. package/src/cli/adapters/vscode.ts +43 -9
  116. package/src/cli/copy.ts +32 -0
  117. package/src/cli/detect.ts +483 -0
  118. package/src/cli/gitignore.ts +0 -3
  119. package/src/cli/init.ts +169 -96
  120. package/src/cli/manifest.ts +2 -1
  121. package/src/cli/mcp.ts +131 -51
  122. package/src/cli/prompt.ts +299 -0
  123. package/src/cli/stack-config.ts +187 -145
  124. package/src/cli/types.ts +60 -9
  125. package/src/cli/update.ts +78 -20
  126. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  127. package/src/orchestrator/agent-workflows/README.md +1 -1
  128. package/src/orchestrator/agent-workflows/bug-fix.md +12 -12
  129. package/src/orchestrator/agent-workflows/data-pipeline.md +21 -20
  130. package/src/orchestrator/agent-workflows/database-migration.md +11 -11
  131. package/src/orchestrator/agent-workflows/feature-implementation.md +10 -10
  132. package/src/orchestrator/agent-workflows/performance-optimization.md +6 -6
  133. package/src/orchestrator/agent-workflows/refactoring.md +10 -10
  134. package/src/orchestrator/agent-workflows/schema-changes.md +8 -8
  135. package/src/orchestrator/agent-workflows/security-audit.md +12 -12
  136. package/src/orchestrator/agent-workflows/shared-delivery-phase.md +5 -5
  137. package/src/orchestrator/agents/api-designer.agent.md +2 -2
  138. package/src/orchestrator/agents/architect.agent.md +2 -2
  139. package/src/orchestrator/agents/content-engineer.agent.md +4 -4
  140. package/src/orchestrator/agents/copywriter.agent.md +2 -2
  141. package/src/orchestrator/agents/data-expert.agent.md +6 -6
  142. package/src/orchestrator/agents/database-engineer.agent.md +4 -4
  143. package/src/orchestrator/agents/developer.agent.md +5 -5
  144. package/src/orchestrator/agents/devops-expert.agent.md +5 -5
  145. package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
  146. package/src/orchestrator/agents/performance-expert.agent.md +3 -3
  147. package/src/orchestrator/agents/release-manager.agent.md +4 -4
  148. package/src/orchestrator/agents/researcher.agent.md +19 -3
  149. package/src/orchestrator/agents/reviewer.agent.md +2 -4
  150. package/src/orchestrator/agents/security-expert.agent.md +4 -4
  151. package/src/orchestrator/agents/seo-specialist.agent.md +2 -2
  152. package/src/orchestrator/agents/team-lead.agent.md +97 -101
  153. package/src/orchestrator/agents/testing-expert.agent.md +5 -5
  154. package/src/orchestrator/agents/ui-ux-expert.agent.md +7 -7
  155. package/src/orchestrator/copilot-instructions.md +1 -1
  156. package/src/orchestrator/customizations/AGENT-FAILURES.md +1 -1
  157. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +12 -12
  158. package/src/orchestrator/customizations/DISPUTES.md +5 -5
  159. package/src/orchestrator/customizations/KNOWN-ISSUES.md +30 -0
  160. package/src/orchestrator/customizations/LESSONS-LEARNED.md +7 -7
  161. package/src/orchestrator/customizations/README.md +5 -2
  162. package/src/orchestrator/customizations/agents/agent-registry.md +1 -1
  163. package/src/orchestrator/customizations/agents/skill-matrix.md +12 -7
  164. package/src/orchestrator/customizations/logs/README.md +1 -1
  165. package/src/orchestrator/customizations/project/decisions.md +31 -0
  166. package/src/orchestrator/customizations/project/docs-structure.md +16 -5
  167. package/src/orchestrator/customizations/project/roadmap.md +24 -0
  168. package/src/orchestrator/customizations/project/tracker-config.md +1 -1
  169. package/src/orchestrator/customizations/stack/cms-config.md +1 -1
  170. package/src/orchestrator/customizations/stack/notifications-config.md +1 -1
  171. package/src/orchestrator/instructions/ai-optimization.instructions.md +2 -2
  172. package/src/orchestrator/instructions/general.instructions.md +102 -40
  173. package/src/orchestrator/{skills/browser-testing → plugins/chrome-devtools}/SKILL.md +1 -1
  174. package/src/orchestrator/plugins/chrome-devtools/config.ts +29 -0
  175. package/src/orchestrator/{skills/contentful-cms → plugins/contentful}/SKILL.md +1 -1
  176. package/src/orchestrator/plugins/contentful/config.ts +49 -0
  177. package/src/orchestrator/{skills/convex-database → plugins/convex}/SKILL.md +1 -1
  178. package/src/orchestrator/plugins/convex/config.ts +33 -0
  179. package/src/orchestrator/plugins/index.ts +85 -0
  180. package/src/orchestrator/{skills/jira-management → plugins/jira}/SKILL.md +3 -3
  181. package/src/orchestrator/plugins/jira/config.ts +30 -0
  182. package/src/orchestrator/{skills/task-management → plugins/linear}/SKILL.md +3 -3
  183. package/src/orchestrator/plugins/linear/config.ts +34 -0
  184. package/src/orchestrator/{skills/nx-workspace → plugins/nx}/SKILL.md +1 -1
  185. package/src/orchestrator/plugins/nx/config.ts +29 -0
  186. package/src/orchestrator/{skills/sanity-cms → plugins/sanity}/SKILL.md +1 -1
  187. package/src/orchestrator/plugins/sanity/config.ts +44 -0
  188. package/src/orchestrator/{skills/slack-notifications → plugins/slack}/SKILL.md +2 -2
  189. package/src/orchestrator/plugins/slack/config.ts +35 -0
  190. package/src/orchestrator/{skills/strapi-cms → plugins/strapi}/SKILL.md +1 -1
  191. package/src/orchestrator/plugins/strapi/config.ts +41 -0
  192. package/src/orchestrator/{skills/supabase-database → plugins/supabase}/SKILL.md +1 -1
  193. package/src/orchestrator/plugins/supabase/config.ts +34 -0
  194. package/src/orchestrator/{skills/teams-notifications → plugins/teams}/SKILL.md +2 -2
  195. package/src/orchestrator/plugins/teams/config.ts +44 -0
  196. package/src/orchestrator/plugins/types.ts +79 -0
  197. package/src/orchestrator/plugins/vercel/config.ts +33 -0
  198. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +59 -12
  199. package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
  200. package/src/orchestrator/prompts/bug-fix.prompt.md +18 -18
  201. package/src/orchestrator/prompts/create-skill.prompt.md +50 -32
  202. package/src/orchestrator/prompts/generate-task-spec.prompt.md +3 -3
  203. package/src/orchestrator/prompts/implement-feature.prompt.md +26 -26
  204. package/src/orchestrator/prompts/metrics-report.prompt.md +11 -11
  205. package/src/orchestrator/prompts/quick-refinement.prompt.md +16 -16
  206. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +2 -2
  207. package/src/orchestrator/skills/accessibility-standards/SKILL.md +1 -1
  208. package/src/orchestrator/skills/agent-hooks/SKILL.md +27 -18
  209. package/src/orchestrator/skills/agent-memory/SKILL.md +7 -7
  210. package/src/orchestrator/skills/api-patterns/SKILL.md +6 -6
  211. package/src/orchestrator/skills/code-commenting/SKILL.md +1 -1
  212. package/src/orchestrator/skills/context-map/SKILL.md +4 -4
  213. package/src/orchestrator/skills/data-engineering/SKILL.md +7 -4
  214. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +2 -2
  215. package/src/orchestrator/skills/documentation-standards/SKILL.md +1 -1
  216. package/src/orchestrator/skills/fast-review/SKILL.md +3 -3
  217. package/src/orchestrator/skills/frontend-design/SKILL.md +1 -1
  218. package/src/orchestrator/skills/memory-merger/SKILL.md +8 -8
  219. package/src/orchestrator/skills/nextjs-patterns/SKILL.md +1 -1
  220. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +2 -2
  221. package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +1 -1
  222. package/src/orchestrator/skills/performance-optimization/SKILL.md +1 -1
  223. package/src/orchestrator/skills/react-development/SKILL.md +3 -3
  224. package/src/orchestrator/skills/security-hardening/SKILL.md +27 -27
  225. package/src/orchestrator/skills/self-improvement/SKILL.md +14 -13
  226. package/src/orchestrator/skills/seo-patterns/SKILL.md +1 -1
  227. package/src/orchestrator/skills/session-checkpoints/SKILL.md +19 -19
  228. package/src/orchestrator/skills/team-lead-reference/SKILL.md +9 -9
  229. package/src/orchestrator/skills/testing-workflow/SKILL.md +13 -13
  230. package/src/orchestrator/skills/validation-gates/SKILL.md +8 -15
  231. package/src/orchestrator/mcp.json +0 -61
@@ -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 Linear tracking.'
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 Linear tracking.
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
- | Linear issues | Required (hard gate) | Depends on scope (see triage) |
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 Linear tracking:
34
+ Before doing anything, decide whether this follow-up needs issue tracking:
35
35
 
36
- **Create a Linear issue if ANY of these are true:**
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 Linear if ALL of these are true:**
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 Linear issue, use:
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 `docs/KNOWN-ISSUES.md` in case this is a documented limitation
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 Linear issue (if not already created in triage) and switch to the `implement-feature` workflow
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
 
@@ -100,15 +100,15 @@ Delegate to the appropriate specialist agent(s). Since follow-ups are scoped and
100
100
 
101
101
  Every follow-up, no matter how small, must pass these checks:
102
102
 
103
- 1. **Deterministic Checks** — `yarn nx run <project>:lint --fix`, `:test`, `:build` — all zero errors
103
+ 1. **Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
104
104
  2. **Browser Testing** (MANDATORY for any visual change) — clear cache, start server, verify scenario + responsive + screenshot evidence
105
105
  3. **Regression Check** — if shared component/library modified, run tests for all consuming projects and browser-test at least one page per affected app
106
106
 
107
107
  ### 6. Delivery
108
108
 
109
- If triage determined this follow-up needs Linear tracking, follow the **Delivery Outcome** defined in `general.instructions.md` — commit, push, open PR (not merged), and link to Linear.
109
+ 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
110
 
111
- If triage determined no Linear 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.
111
+ 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
112
 
113
113
  ### 7. Escalation Triggers
114
114
 
@@ -128,12 +128,12 @@ When escalating, explain to the user what you found and why it needs proper trac
128
128
  The follow-up is complete when:
129
129
 
130
130
  - [ ] The specific request is resolved
131
- - [ ] Linear issue created and moved to Done (if triage determined tracking was needed)
131
+ - [ ] Tracker issue created and moved to Done (if triage determined tracking was needed)
132
132
  - [ ] Lint, test, and build pass for all affected projects
133
- - [ ] **Dev server started with CLEAN cache** (`rm -rf .next && yarn nx reset` before serving)
133
+ - [ ] **Dev server started with CLEAN cache** (clear framework + task runner caches before serving — see the **codebase-tool** skill)
134
134
  - [ ] **Visual changes verified in Chrome with screenshot taken as proof**
135
135
  - [ ] No regressions in adjacent functionality
136
136
  - [ ] Shared component changes tested across all consuming apps
137
- - [ ] Delivery Outcome completed if tracked (see `general.instructions.md`) — branch pushed, PR opened (not merged), Linear linked
137
+ - [ ] Delivery Outcome completed if tracked (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
138
138
  - [ ] Lessons learned captured if any retries occurred
139
139
  - [ ] Known issues updated if a new limitation was discovered
@@ -3,7 +3,7 @@ description: 'Resolve GitHub PR review comments by reading them, grouping by fil
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
  # Resolve PR Comments
9
9
 
@@ -57,7 +57,7 @@ Acceptance criteria:
57
57
 
58
58
  ### Phase 4: Verify & Report
59
59
 
60
- 1. **Run verification** — `yarn nx affected -t lint,test,build` on all affected projects
60
+ 1. **Run verification** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands)
61
61
  2. **Commit fixes** — Use descriptive commit messages referencing the PR: `TAS-XX: Address PR review — [summary]`
62
62
  3. **Push to the same branch** — The PR updates automatically
63
63
  4. **Report back** — Provide a structured summary of what was resolved
@@ -3,7 +3,7 @@ name: accessibility-standards
3
3
  description: "WCAG 2.2 Level AA accessibility patterns for React/HTML/CSS. Use when creating or modifying UI components, forms, navigation, tables, images, or any user-facing elements. Covers keyboard navigation, screen reader semantics, low vision contrast, voice access, and inclusive language."
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
  # Accessibility Standards
9
9
 
@@ -3,7 +3,7 @@ name: agent-hooks
3
3
  description: "Lifecycle hooks for AI agent sessions — reusable actions that run at specific points (session start, session end, pre-delegation, post-delegation). Defines what to do at each lifecycle event so agents behave consistently."
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
  # Agent Lifecycle Hooks
9
9
 
@@ -29,8 +29,8 @@ Session Lifecycle:
29
29
  ### Actions
30
30
 
31
31
  1. **Read lessons learned** — Scan `.github/customizations/LESSONS-LEARNED.md` for entries relevant to the current task domain. Apply proactively.
32
- 2. **Check for checkpoint** — If `docs/SESSION-CHECKPOINT.md` exists, read it. Resume from last known state instead of re-analyzing.
33
- 3. **Check pending approvals** — If the checkpoint has a `## Pending Approvals` section, check for replies using the configured messaging provider's MCP tools (e.g., `conversations_replies` for Slack). Read `.opencastle.json` → `stack.notifications` to determine the provider. If no messaging is configured, skip this step.
32
+ 2. **Check for checkpoint** — If `.github/customizations/SESSION-CHECKPOINT.md` exists, read it. Resume from last known state instead of re-analyzing.
33
+ 3. **Check pending approvals** — If the checkpoint has a `## Pending Approvals` section, check for replies using the configured messaging provider's MCP tools (e.g., `conversations_replies` for Slack). Read `.opencastle.json` → `stack.teamTools` to determine the provider. If no messaging is configured, skip this step.
34
34
  4. **Check dead letter queue** — Scan `.github/customizations/AGENT-FAILURES.md` for pending failures related to the current scope.
35
35
  5. **Load domain skills** — Based on the task description, load the appropriate skills before writing code. Don't start coding without the relevant skill loaded.
36
36
 
@@ -40,7 +40,7 @@ Include this reminder in every delegation:
40
40
 
41
41
  ```
42
42
  **Session Start:** Read `.github/customizations/LESSONS-LEARNED.md` before starting.
43
- Check `docs/SESSION-CHECKPOINT.md` for prior state and pending approvals.
43
+ Check `.github/customizations/SESSION-CHECKPOINT.md` for prior state and pending approvals.
44
44
  If pending approvals exist, check for replies via the messaging provider.
45
45
  Load relevant skills before writing code.
46
46
  ```
@@ -51,22 +51,31 @@ Load relevant skills before writing code.
51
51
 
52
52
  **When:** Before the agent yields control back to the user — every time, unconditionally.
53
53
 
54
- > **You MUST log every session.** No threshold, no exceptions, no "too small to log."
54
+ > **⛔ HARD GATE Run the Pre-Response Quality Gate checklist from `general.instructions.md` before responding.**
55
+ > A session without log records is a failed session. A session without lessons captured after retries is a failed session.
55
56
 
56
57
  ### Actions
57
58
 
58
- 1. **Log the session (MANDATORY)** — Append a JSON line to `.github/customizations/logs/sessions.ndjson` with: agent name, task summary, files changed, duration estimate, outcome (success/partial/failed), and lessons count. See `general.instructions.md` § Observability Logging for full rules.
59
- 2. **Save checkpoint** (Team Lead only) — If work is incomplete, write `docs/SESSION-CHECKPOINT.md` with current state so the next session can resume. Load **session-checkpoints** skill for format.
60
- 3. **Verify lessons captured** If any retries occurred during the session, confirm that each retry resulted in a lesson entry in `LESSONS-LEARNED.md`.
61
- 4. **Memory merge check** If `LESSONS-LEARNED.md` has grown significantly (5+ new entries this session), flag for memory merge consideration.
62
- 5. **Clean up** Remove any temporary files created during the session (e.g., test fixtures, debug outputs).
59
+ 1. **Run the Pre-Response Quality Gate** — This is the single exit gate. Verify ALL items from the checklist in `general.instructions.md` § Pre-Response Quality Gate:
60
+ - [ ] Lessons read at session start
61
+ - [ ] Lessons captured for any retries
62
+ - [ ] Discovered issues tracked (not ignored)
63
+ - [ ] Lint/type/test pass (no new errors)
64
+ - [ ] Session logged to `sessions.ndjson` (ALWAYS)
65
+ - [ ] Delegations logged (Team Lead only)
66
+ - [ ] Reviews/panels/disputes logged (if applicable)
67
+ 2. **Save checkpoint** (Team Lead only) — If work is incomplete, write `.github/customizations/SESSION-CHECKPOINT.md` with current state so the next session can resume. Load **session-checkpoints** skill for format.
68
+ 3. **Memory merge check** — If `LESSONS-LEARNED.md` has grown significantly (5+ new entries this session), flag for memory merge consideration.
69
+ 4. **Clean up** — Remove any temporary files created during the session (e.g., test fixtures, debug outputs).
63
70
 
64
71
  ### Template for Delegation Prompts
65
72
 
66
73
  ```
67
- **Session End:** Log your session to `.github/customizations/logs/sessions.ndjson`.
68
- If you retried anything with a different approach that worked, add a lesson
69
- to `.github/customizations/LESSONS-LEARNED.md`. Clean up temp files.
74
+ **Session End:** Run the Pre-Response Quality Gate from general.instructions.md:
75
+ - Log your session to `.github/customizations/logs/sessions.ndjson` (Constitution rule #6)
76
+ - If you retried anything with a different approach that worked, add a lesson to `.github/customizations/LESSONS-LEARNED.md`
77
+ - Track any discovered issues in KNOWN-ISSUES.md or a tracker ticket
78
+ - Clean up temp files
70
79
  ```
71
80
 
72
81
  ---
@@ -77,7 +86,7 @@ to `.github/customizations/LESSONS-LEARNED.md`. Clean up temp files.
77
86
 
78
87
  ### Actions
79
88
 
80
- 1. **Linear issue exists** — Verify the task has a Linear issue. If not, create one first.
89
+ 1. **Tracker issue exists** — Verify the task has a tracker issue. If not, create one first.
81
90
  2. **File partition clean** — Confirm no overlap with other active agents' file ownership.
82
91
  3. **Dependencies verified** — All prerequisite tasks are marked Done with independent verification.
83
92
  4. **Prompt is specific** — Includes: objective, file paths, acceptance criteria, patterns to follow, self-improvement reminder.
@@ -88,7 +97,7 @@ to `.github/customizations/LESSONS-LEARNED.md`. Clean up temp files.
88
97
 
89
98
  ```
90
99
  Pre-Delegate:
91
- Linear issue ID included
100
+ Tracker issue ID included
92
101
  ☐ File partition specified
93
102
  ☐ Dependencies are Done
94
103
  ☐ Prompt has file paths + acceptance criteria
@@ -107,10 +116,10 @@ Pre-Delegate:
107
116
  0. **Fast review (mandatory)** — Run the `fast-review` skill against the agent's output. This is a **non-skippable gate**. See the fast-review skill for the full procedure (single reviewer sub-agent, automatic retry, escalation). Only after the fast review passes do you proceed to the remaining post-delegate actions below.
108
117
  1. **Verify output** — Read changed files. Check that changes stay within the agent's file partition.
109
118
  2. **Run verification** — Execute appropriate checks: lint, type-check, tests, or visual inspection.
110
- 3. **Check acceptance criteria** — Compare output against the Linear issue's acceptance criteria. Each criterion must be independently verified.
111
- 4. **Discovered issues tracked** — Verify the agent followed the Discovered Issues Policy. If they found issues, check that they're in KNOWN-ISSUES.md or a new Linear ticket.
119
+ 3. **Check acceptance criteria** — Compare output against the tracker issue's acceptance criteria. Each criterion must be independently verified.
120
+ 4. **Discovered issues tracked** — Verify the agent followed the Discovered Issues Policy. If they found issues, check that they're in KNOWN-ISSUES.md or a new tracker ticket.
112
121
  5. **Lessons captured** — If the agent retried anything, verify a lesson was added to LESSONS-LEARNED.md.
113
- 6. **Update Linear** — Move the issue to Done (if passing) or add failure notes and re-delegate (if failing).
122
+ 6. **Update tracker** — Move the issue to Done (if passing) or add failure notes and re-delegate (if failing).
114
123
 
115
124
  ### Quick Checklist
116
125
 
@@ -3,7 +3,7 @@ name: agent-memory
3
3
  description: "Agent expertise tracking and cross-session knowledge graph. Use when delegating tasks to track agent strengths/weaknesses, or when building context about file relationships and patterns."
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
  # Agent Memory Protocol
9
9
 
@@ -30,7 +30,7 @@ Template structure:
30
30
  ### Weak Areas
31
31
  | Area | Evidence | Last Updated |
32
32
  |------|----------|-------------|
33
- | CSS Modules | Required 2 retries on styling task (TAS-AA) | YYYY-MM-DD |
33
+ | Styling approach | Required 2 retries on styling task (TAS-AA) | YYYY-MM-DD |
34
34
 
35
35
  ### File Familiarity
36
36
  - `apps/tastebeer.eu/app/places/` — 3 tasks completed
@@ -67,8 +67,8 @@ Add relevant expertise context to delegation prompts. Example addition:
67
67
 
68
68
  ```
69
69
  ### Agent Context (from expertise registry)
70
- - Strong: Server Components, GROQ queries (3 successful tasks)
71
- - Weak: CSS Modules (1 retry on TAS-AA)
70
+ - Strong: Server Components, CMS queries (3 successful tasks)
71
+ - Weak: Component styling (1 retry on TAS-AA)
72
72
  - Familiar files: libs/queries/src/lib/search/ (2 tasks)
73
73
  ```
74
74
 
@@ -95,7 +95,7 @@ Capture structured relationships between concepts, files, agents, and decisions.
95
95
  |-------------|---------|---------|
96
96
  | `depends-on` | X requires Y to function | `F:places/page.tsx depends-on F:searchModule.ts` |
97
97
  | `caused-by` | X was caused by Y | `B:KI-042 caused-by D:use-server-components` |
98
- | `expert-in` | Agent X has expertise in Y | `A:Content Engineer expert-in P:GROQ-queries` |
98
+ | `expert-in` | Agent X has expertise in Y | `A:Content Engineer expert-in P:CMS-queries` |
99
99
  | `related-to` | Loose conceptual connection | `L:LES-15 related-to P:RLS-policies` |
100
100
  | `obsoletes` | X replaces/supersedes Y | `D:use-app-router obsoletes D:use-pages-router` |
101
101
  | `blocks` | X prevents Y from working | `B:KI-099 blocks F:auth/middleware.ts` |
@@ -113,8 +113,8 @@ Template structure:
113
113
 
114
114
  | Source | Relationship | Target | Added | Context |
115
115
  |--------|-------------|--------|-------|---------|
116
- | A:Security Expert | expert-in | P:RLS-policies | 2026-02-23 | Completed 3 RLS audits |
117
- | F:searchModule.ts | depends-on | F:sanity-client.ts | 2026-02-23 | Search uses Sanity client |
116
+ | A:Content Engineer | expert-in | P:CMS-queries | 2026-02-23 | Completed 3 CMS query tasks |
117
+ | F:searchModule.ts | depends-on | F:cms-client.ts | 2026-02-23 | Search uses CMS client |
118
118
  | L:LES-15 | related-to | P:cookie-sessions | 2026-02-23 | Lesson about auth token format |
119
119
  ```
120
120
 
@@ -3,15 +3,15 @@ name: api-patterns
3
3
  description: "API design patterns for route handlers, Server Actions, Zod validation, and external API integration. Use when creating API routes, Server Actions, or integrating external services."
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
  # API Patterns
9
9
 
10
- Generic API design patterns for Next.js App Router projects. For project-specific endpoints, actions, and external API inventory, see [api-config.md](../../customizations/stack/api-config.md).
10
+ Generic API design patterns for server-rendered framework projects. For project-specific endpoints, actions, and external API inventory, see [api-config.md](../../customizations/stack/api-config.md).
11
11
 
12
12
  ## Architecture
13
13
 
14
- This project uses **Next.js App Router** API patterns:
14
+ This project uses **App Router** API patterns (resolve the specific framework via the **framework** capability slot in the skill matrix):
15
15
 
16
16
  - **Server Actions** (preferred for mutations) — form submissions, data writes, auth operations
17
17
  - **Route Handlers** (`route.ts`) — analytics endpoints, autocomplete, external integrations
@@ -43,12 +43,12 @@ export async function GET(request: NextRequest) {
43
43
 
44
44
  ```typescript
45
45
  'use server';
46
- import { createServerClient } from '@libs/supabase-auth';
46
+ import { createServerClient } from '@libs/auth';
47
47
  import { revalidatePath } from 'next/cache';
48
48
 
49
49
  export async function submitAction(formData: FormData) {
50
- const supabase = await createServerClient();
51
- const { data: { user } } = await supabase.auth.getUser();
50
+ const client = await createServerClient();
51
+ const { data: { user } } = await client.auth.getUser();
52
52
  if (!user) return { error: 'Unauthorized' };
53
53
  // ... validate and process
54
54
  revalidatePath('/places');
@@ -3,7 +3,7 @@ name: code-commenting
3
3
  description: "Guidelines for writing self-explanatory code with minimal comments. Covers when to comment (WHY not WHAT), anti-patterns to avoid, annotation tags, and public API documentation. Use when writing or reviewing code comments."
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
  # Self-explanatory Code Commenting
9
9
 
@@ -3,7 +3,7 @@ name: context-map
3
3
  description: "Generate a structured file impact map before making changes. Identifies all files that will be affected, their relationships, and cascade effects — improving file partitioning for parallel work and reducing unexpected side effects."
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
  # Skill: Context Map
9
9
 
@@ -43,7 +43,7 @@ For each entry point, trace what depends on it:
43
43
 
44
44
  For each entry point, trace what it depends on:
45
45
 
46
- 1. **Data sources** — which Sanity schemas, GROQ queries, or Supabase tables feed this code?
46
+ 1. **Data sources** — which CMS schemas, content queries, or database tables feed this code?
47
47
  2. **Shared utilities** — which `libs/` modules does it use?
48
48
  3. **Configuration** — which config files affect its behavior?
49
49
 
@@ -75,8 +75,8 @@ Produce a structured map in this format:
75
75
  ### Unaffected (explicitly safe)
76
76
  | Area | Why |
77
77
  |------|-----|
78
- | `supabase/migrations/` | No DB changes |
79
- | `libs/supabase-auth/` | No auth changes |
78
+ | `db/migrations/` | No DB changes |
79
+ | `libs/auth/` | No auth changes |
80
80
  | `apps/cms-studio/` | No schema changes |
81
81
  ```
82
82
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: data-engineering
3
- description: "Data pipeline ETL workflows, web scraping with Puppeteer, NDJSON processing, and CMS data import. Use when building scrapers, processing data, running CLI tools, or importing to a CMS."
3
+ description: "Data pipeline ETL workflows, web scraping, NDJSON processing, and CMS data import. Use when building scrapers, processing data, running CLI tools, or importing to a CMS."
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
  # Data Engineering
9
9
 
@@ -31,9 +31,12 @@ abstract class BaseScraper {
31
31
  }
32
32
  ```
33
33
 
34
- ### Puppeteer Cluster Setup
34
+ ### Browser-Based Scraper Setup
35
+
36
+ Use a headless browser cluster for concurrent scraping (e.g., Puppeteer Cluster, Playwright):
35
37
 
36
38
  ```typescript
39
+ // Example using Puppeteer Cluster — adapt to your project's scraping library
37
40
  const cluster = await Cluster.launch({
38
41
  concurrency: Cluster.CONCURRENCY_CONTEXT,
39
42
  maxConcurrency: config.concurrency,
@@ -53,7 +56,7 @@ const cluster = await Cluster.launch({
53
56
  - Random delays between requests (2-5 seconds default)
54
57
  - Randomize viewport sizes
55
58
  - Block unnecessary resources (images, fonts, CSS) for speed
56
- - Use stealth plugin for Puppeteer
59
+ - Use stealth plugin for the scraping library
57
60
  - Request interception for resource optimization
58
61
 
59
62
  ### Error Recovery
@@ -3,7 +3,7 @@ name: deployment-infrastructure
3
3
  description: "Deployment architecture, environment variables, cron jobs, security headers, and caching patterns. Use when configuring deployments, managing environment variables, setting up cron jobs, or troubleshooting build/deployment issues."
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
  # Deployment Infrastructure
9
9
 
@@ -22,7 +22,7 @@ All deployment configuration is project-specific. See [deployment-config.md](../
22
22
  ## Release Process
23
23
 
24
24
  ### 1. Pre-Release Audit
25
- - Run `yarn nx affected -t lint,test,build` to verify all affected projects
25
+ - Run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands)
26
26
  - Review all changed files since last release (`git diff` against last tag/release)
27
27
  - Check for uncommitted work or unmerged branches
28
28
  - Verify no draft PRs are accidentally included
@@ -3,7 +3,7 @@ name: documentation-standards
3
3
  description: "Documentation templates, structure, and standards for project docs, roadmaps, ADRs, and known issues. Use when writing or updating documentation files."
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
  # Documentation Standards
9
9
 
@@ -1,4 +1,4 @@
1
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
1
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
2
2
 
3
3
  ````skill
4
4
  ---
@@ -218,12 +218,12 @@ CONFIDENCE: low | medium | high
218
218
 
219
219
  ## Logging
220
220
 
221
- Append a JSON line to `customizations/logs/reviews.ndjson` after each fast review:
221
+ Append a JSON line to `.github/customizations/logs/reviews.ndjson` after each fast review:
222
222
 
223
223
  ```json
224
224
  {
225
225
  "timestamp": "2026-02-28T14:30:00Z",
226
- "linear_issue": "PRJ-42",
226
+ "tracker_issue": "PRJ-42",
227
227
  "agent": "Developer",
228
228
  "reviewer_model": "gpt-5-mini",
229
229
  "verdict": "pass",
@@ -4,7 +4,7 @@ description: "Create distinctive, production-grade frontend interfaces with high
4
4
  license: Complete terms in LICENSE.txt
5
5
  ---
6
6
 
7
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
7
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
8
8
 
9
9
  This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
10
10
 
@@ -3,7 +3,7 @@ name: memory-merger
3
3
  description: "Protocol for graduating mature lessons from LESSONS-LEARNED.md into permanent instruction and skill files. Closes the self-improvement loop by codifying validated knowledge at the source level."
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
  # Skill: Memory Merger
9
9
 
@@ -35,7 +35,7 @@ Read `.github/customizations/LESSONS-LEARNED.md` and identify lessons that meet
35
35
  | **High severity** | Marked `high` severity |
36
36
  | **Age** | Added more than 60 days ago and still relevant |
37
37
  | **Category concentration** | 5+ lessons in the same category → extract a pattern |
38
- | **Tool-specific** | Lesson about a specific MCP tool, NX command, or framework pattern |
38
+ | **Tool-specific** | Lesson about a specific MCP tool, codebase-tool command, or framework pattern |
39
39
 
40
40
  ### Step 2: Map Lessons to Target Files
41
41
 
@@ -43,17 +43,17 @@ Each lesson has a natural home in the instruction/skill hierarchy:
43
43
 
44
44
  | Lesson Category | Target File |
45
45
  |----------------|-------------|
46
- | `linear` | `.github/skills/task-management/SKILL.md` |
46
+ | `task-management` | The skill mapped by the `task-management` slot in the skill matrix |
47
47
  | `mcp-tools` | The corresponding agent file or skill that uses the tool |
48
- | `nx-commands` | `.github/skills/nx-workspace/SKILL.md` |
49
- | `sanity` | `.github/skills/sanity-cms/SKILL.md` |
50
- | `supabase` | `.github/skills/supabase-database/SKILL.md` |
51
- | `browser-testing` | `.github/skills/browser-testing/SKILL.md` |
48
+ | `codebase-tool` | The skill mapped by the `codebase-tool` slot in the skill matrix |
49
+ | `cms` | The skill mapped by the `cms` slot in the skill matrix |
50
+ | `database` | The skill mapped by the `database` slot in the skill matrix |
51
+ | `browser-testing` | The skill mapped by the `e2e-testing` slot in the skill matrix |
52
52
  | `git-workflow` | `.github/instructions/general.instructions.md` |
53
53
  | `deployment` | `.github/skills/deployment-infrastructure/SKILL.md` |
54
54
  | `delegation` | `.github/agents/team-lead.agent.md` or `.github/skills/team-lead-reference/SKILL.md` |
55
55
  | `testing` | `.github/skills/testing-workflow/SKILL.md` |
56
- | `react` / `nextjs` | Corresponding global skill file |
56
+ | `ui-library` / `framework` | The skill mapped by the corresponding slot in the skill matrix |
57
57
  | Cross-cutting pattern | `.github/instructions/general.instructions.md` |
58
58
 
59
59
  ### Step 3: Draft the Merge
@@ -3,7 +3,7 @@ name: nextjs-patterns
3
3
  description: "Next.js App Router best practices for server/client components, routing, API routes, and project structure. Use when creating or modifying Next.js pages, layouts, route handlers, or Server Actions."
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
  # Next.js Patterns (2025)
9
9
 
@@ -3,7 +3,7 @@ name: panel-majority-vote
3
3
  description: "Run 3 isolated reviewer sub-agents against the same question and decide PASS/BLOCK by majority vote (2/3 wins). Use when deterministic verification is insufficient."
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
  # Skill: Panel majority vote (3 reviewers)
9
9
 
@@ -136,7 +136,7 @@ Each reviewer gets a weight based on 3 factors:
136
136
 
137
137
  ```text
138
138
  Reviewer 1 (Security Expert, reviewing auth): base 1 + domain 2 + confidence 1 = weight 4
139
- Reviewer 2 (Next.js Dev, reviewing auth): base 1 + domain 0 + confidence 1 = weight 2
139
+ Reviewer 2 (Frontend Dev, reviewing auth): base 1 + domain 0 + confidence 1 = weight 2
140
140
  Reviewer 3 (Architect, reviewing auth): base 1 + domain 1 + confidence 0 = weight 2
141
141
  ```
142
142
 
@@ -1,4 +1,4 @@
1
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
1
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
2
2
 
3
3
  # Panel Report
4
4
 
@@ -3,7 +3,7 @@ name: performance-optimization
3
3
  description: "Frontend and backend performance optimization patterns including rendering, asset optimization, JavaScript performance, caching, profiling, and code review checklist. Use when optimizing components, reviewing code for performance, or analyzing bundle size and Core Web Vitals."
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
  # Performance Optimization
9
9
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: react-development
3
- description: "React development standards for functional components, hooks, TypeScript integration, state management, styling with CSS Modules/Sass, and testing patterns. Use when creating or modifying React components, custom hooks, or component tests."
3
+ description: "React development standards for functional components, hooks, TypeScript integration, state management, styling, and testing patterns. Use when creating or modifying React components, custom hooks, or component tests."
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
  # React Development Standards
9
9
 
@@ -108,7 +108,7 @@ Modern React patterns following the official React documentation at https://reac
108
108
  - Co-locate tests in `__tests__` subdirectory.
109
109
  - **CRITICAL**: Never mix static imports and `require()` for lazy-loaded libraries in tests.
110
110
  - Use `jest.requireMock()` instead of `require()` in test functions.
111
- - Use `jest.requireActual()` in mock setup.
111
+ - Use `jest.requireActual()` or equivalent in mock setup.
112
112
 
113
113
  ## Security
114
114