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.
Files changed (223) hide show
  1. package/README.md +8 -7
  2. package/dist/cli/adapters/claude-code.d.ts.map +1 -1
  3. package/dist/cli/adapters/claude-code.js +30 -3
  4. package/dist/cli/adapters/claude-code.js.map +1 -1
  5. package/dist/cli/adapters/cursor.d.ts.map +1 -1
  6. package/dist/cli/adapters/cursor.js +27 -3
  7. package/dist/cli/adapters/cursor.js.map +1 -1
  8. package/dist/cli/adapters/opencode.d.ts +20 -0
  9. package/dist/cli/adapters/opencode.d.ts.map +1 -0
  10. package/dist/cli/adapters/opencode.js +265 -0
  11. package/dist/cli/adapters/opencode.js.map +1 -0
  12. package/dist/cli/adapters/vscode.d.ts.map +1 -1
  13. package/dist/cli/adapters/vscode.js +37 -6
  14. package/dist/cli/adapters/vscode.js.map +1 -1
  15. package/dist/cli/copy.d.ts +12 -0
  16. package/dist/cli/copy.d.ts.map +1 -1
  17. package/dist/cli/copy.js +27 -0
  18. package/dist/cli/copy.js.map +1 -1
  19. package/dist/cli/detect.d.ts +1 -1
  20. package/dist/cli/detect.js +21 -15
  21. package/dist/cli/detect.js.map +1 -1
  22. package/dist/cli/init.d.ts.map +1 -1
  23. package/dist/cli/init.js +143 -94
  24. package/dist/cli/init.js.map +1 -1
  25. package/dist/cli/manifest.d.ts +1 -1
  26. package/dist/cli/manifest.d.ts.map +1 -1
  27. package/dist/cli/manifest.js +2 -1
  28. package/dist/cli/manifest.js.map +1 -1
  29. package/dist/cli/mcp.d.ts +6 -6
  30. package/dist/cli/mcp.d.ts.map +1 -1
  31. package/dist/cli/mcp.js +104 -33
  32. package/dist/cli/mcp.js.map +1 -1
  33. package/dist/cli/prompt.d.ts +19 -0
  34. package/dist/cli/prompt.d.ts.map +1 -1
  35. package/dist/cli/prompt.js +143 -0
  36. package/dist/cli/prompt.js.map +1 -1
  37. package/dist/cli/stack-config.d.ts +23 -0
  38. package/dist/cli/stack-config.d.ts.map +1 -1
  39. package/dist/cli/stack-config.js +128 -124
  40. package/dist/cli/stack-config.js.map +1 -1
  41. package/dist/cli/types.d.ts +26 -9
  42. package/dist/cli/types.d.ts.map +1 -1
  43. package/dist/cli/types.js +26 -1
  44. package/dist/cli/types.js.map +1 -1
  45. package/dist/cli/update.d.ts.map +1 -1
  46. package/dist/cli/update.js +60 -19
  47. package/dist/cli/update.js.map +1 -1
  48. package/dist/orchestrator/plugins/chrome-devtools/config.d.ts +3 -0
  49. package/dist/orchestrator/plugins/chrome-devtools/config.d.ts.map +1 -0
  50. package/dist/orchestrator/plugins/chrome-devtools/config.js +28 -0
  51. package/dist/orchestrator/plugins/chrome-devtools/config.js.map +1 -0
  52. package/dist/orchestrator/plugins/contentful/config.d.ts +3 -0
  53. package/dist/orchestrator/plugins/contentful/config.d.ts.map +1 -0
  54. package/dist/orchestrator/plugins/contentful/config.js +48 -0
  55. package/dist/orchestrator/plugins/contentful/config.js.map +1 -0
  56. package/dist/orchestrator/plugins/convex/config.d.ts +3 -0
  57. package/dist/orchestrator/plugins/convex/config.d.ts.map +1 -0
  58. package/dist/orchestrator/plugins/convex/config.js +32 -0
  59. package/dist/orchestrator/plugins/convex/config.js.map +1 -0
  60. package/dist/orchestrator/plugins/index.d.ts +28 -0
  61. package/dist/orchestrator/plugins/index.d.ts.map +1 -0
  62. package/dist/orchestrator/plugins/index.js +63 -0
  63. package/dist/orchestrator/plugins/index.js.map +1 -0
  64. package/dist/orchestrator/plugins/jira/config.d.ts +3 -0
  65. package/dist/orchestrator/plugins/jira/config.d.ts.map +1 -0
  66. package/dist/orchestrator/plugins/jira/config.js +29 -0
  67. package/dist/orchestrator/plugins/jira/config.js.map +1 -0
  68. package/dist/orchestrator/plugins/linear/config.d.ts +3 -0
  69. package/dist/orchestrator/plugins/linear/config.d.ts.map +1 -0
  70. package/dist/orchestrator/plugins/linear/config.js +33 -0
  71. package/dist/orchestrator/plugins/linear/config.js.map +1 -0
  72. package/dist/orchestrator/plugins/nx/config.d.ts +3 -0
  73. package/dist/orchestrator/plugins/nx/config.d.ts.map +1 -0
  74. package/dist/orchestrator/plugins/nx/config.js +28 -0
  75. package/dist/orchestrator/plugins/nx/config.js.map +1 -0
  76. package/dist/orchestrator/plugins/sanity/config.d.ts +3 -0
  77. package/dist/orchestrator/plugins/sanity/config.d.ts.map +1 -0
  78. package/dist/orchestrator/plugins/sanity/config.js +43 -0
  79. package/dist/orchestrator/plugins/sanity/config.js.map +1 -0
  80. package/dist/orchestrator/plugins/slack/config.d.ts +3 -0
  81. package/dist/orchestrator/plugins/slack/config.d.ts.map +1 -0
  82. package/dist/orchestrator/plugins/slack/config.js +34 -0
  83. package/dist/orchestrator/plugins/slack/config.js.map +1 -0
  84. package/dist/orchestrator/plugins/strapi/config.d.ts +3 -0
  85. package/dist/orchestrator/plugins/strapi/config.d.ts.map +1 -0
  86. package/dist/orchestrator/plugins/strapi/config.js +40 -0
  87. package/dist/orchestrator/plugins/strapi/config.js.map +1 -0
  88. package/dist/orchestrator/plugins/supabase/config.d.ts +3 -0
  89. package/dist/orchestrator/plugins/supabase/config.d.ts.map +1 -0
  90. package/dist/orchestrator/plugins/supabase/config.js +33 -0
  91. package/dist/orchestrator/plugins/supabase/config.js.map +1 -0
  92. package/dist/orchestrator/plugins/teams/config.d.ts +3 -0
  93. package/dist/orchestrator/plugins/teams/config.d.ts.map +1 -0
  94. package/dist/orchestrator/plugins/teams/config.js +43 -0
  95. package/dist/orchestrator/plugins/teams/config.js.map +1 -0
  96. package/dist/orchestrator/plugins/types.d.ts +61 -0
  97. package/dist/orchestrator/plugins/types.d.ts.map +1 -0
  98. package/dist/orchestrator/plugins/types.js +2 -0
  99. package/dist/orchestrator/plugins/types.js.map +1 -0
  100. package/dist/orchestrator/plugins/vercel/config.d.ts +3 -0
  101. package/dist/orchestrator/plugins/vercel/config.d.ts.map +1 -0
  102. package/dist/orchestrator/plugins/vercel/config.js +32 -0
  103. package/dist/orchestrator/plugins/vercel/config.js.map +1 -0
  104. package/package.json +1 -1
  105. package/src/cli/adapters/claude-code.ts +36 -4
  106. package/src/cli/adapters/cursor.ts +42 -4
  107. package/src/cli/adapters/opencode.ts +320 -0
  108. package/src/cli/adapters/vscode.ts +40 -8
  109. package/src/cli/copy.ts +32 -0
  110. package/src/cli/detect.ts +17 -17
  111. package/src/cli/init.ts +157 -99
  112. package/src/cli/manifest.ts +2 -1
  113. package/src/cli/mcp.ts +129 -50
  114. package/src/cli/prompt.ts +176 -0
  115. package/src/cli/stack-config.ts +174 -145
  116. package/src/cli/types.ts +39 -8
  117. package/src/cli/update.ts +71 -20
  118. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  119. package/src/orchestrator/agent-workflows/README.md +1 -1
  120. package/src/orchestrator/agent-workflows/bug-fix.md +12 -12
  121. package/src/orchestrator/agent-workflows/data-pipeline.md +21 -20
  122. package/src/orchestrator/agent-workflows/database-migration.md +11 -11
  123. package/src/orchestrator/agent-workflows/feature-implementation.md +19 -12
  124. package/src/orchestrator/agent-workflows/performance-optimization.md +6 -6
  125. package/src/orchestrator/agent-workflows/refactoring.md +10 -10
  126. package/src/orchestrator/agent-workflows/schema-changes.md +8 -8
  127. package/src/orchestrator/agent-workflows/security-audit.md +12 -12
  128. package/src/orchestrator/agent-workflows/shared-delivery-phase.md +5 -5
  129. package/src/orchestrator/agents/api-designer.agent.md +1 -1
  130. package/src/orchestrator/agents/architect.agent.md +2 -2
  131. package/src/orchestrator/agents/content-engineer.agent.md +3 -3
  132. package/src/orchestrator/agents/copywriter.agent.md +2 -2
  133. package/src/orchestrator/agents/data-expert.agent.md +6 -6
  134. package/src/orchestrator/agents/database-engineer.agent.md +3 -3
  135. package/src/orchestrator/agents/developer.agent.md +4 -4
  136. package/src/orchestrator/agents/devops-expert.agent.md +5 -5
  137. package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
  138. package/src/orchestrator/agents/performance-expert.agent.md +2 -2
  139. package/src/orchestrator/agents/release-manager.agent.md +4 -4
  140. package/src/orchestrator/agents/researcher.agent.md +3 -3
  141. package/src/orchestrator/agents/reviewer.agent.md +1 -1
  142. package/src/orchestrator/agents/security-expert.agent.md +4 -4
  143. package/src/orchestrator/agents/seo-specialist.agent.md +2 -2
  144. package/src/orchestrator/agents/team-lead.agent.md +56 -38
  145. package/src/orchestrator/agents/testing-expert.agent.md +5 -5
  146. package/src/orchestrator/agents/ui-ux-expert.agent.md +6 -6
  147. package/src/orchestrator/copilot-instructions.md +1 -1
  148. package/src/orchestrator/customizations/AGENT-FAILURES.md +1 -1
  149. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +12 -12
  150. package/src/orchestrator/customizations/DISPUTES.md +5 -5
  151. package/src/orchestrator/customizations/KNOWN-ISSUES.md +30 -0
  152. package/src/orchestrator/customizations/LESSONS-LEARNED.md +7 -7
  153. package/src/orchestrator/customizations/README.md +5 -2
  154. package/src/orchestrator/customizations/agents/agent-registry.md +1 -1
  155. package/src/orchestrator/customizations/agents/skill-matrix.md +12 -7
  156. package/src/orchestrator/customizations/logs/README.md +1 -1
  157. package/src/orchestrator/customizations/project/decisions.md +31 -0
  158. package/src/orchestrator/customizations/project/docs-structure.md +16 -5
  159. package/src/orchestrator/customizations/project/roadmap.md +24 -0
  160. package/src/orchestrator/customizations/project/tracker-config.md +1 -1
  161. package/src/orchestrator/customizations/stack/cms-config.md +1 -1
  162. package/src/orchestrator/customizations/stack/notifications-config.md +1 -1
  163. package/src/orchestrator/instructions/ai-optimization.instructions.md +2 -2
  164. package/src/orchestrator/instructions/general.instructions.md +102 -40
  165. package/src/orchestrator/{skills/browser-testing → plugins/chrome-devtools}/SKILL.md +1 -1
  166. package/src/orchestrator/plugins/chrome-devtools/config.ts +29 -0
  167. package/src/orchestrator/{skills/contentful-cms → plugins/contentful}/SKILL.md +1 -1
  168. package/src/orchestrator/plugins/contentful/config.ts +49 -0
  169. package/src/orchestrator/{skills/convex-database → plugins/convex}/SKILL.md +1 -1
  170. package/src/orchestrator/plugins/convex/config.ts +33 -0
  171. package/src/orchestrator/plugins/index.ts +85 -0
  172. package/src/orchestrator/{skills/jira-management → plugins/jira}/SKILL.md +3 -3
  173. package/src/orchestrator/plugins/jira/config.ts +30 -0
  174. package/src/orchestrator/{skills/task-management → plugins/linear}/SKILL.md +3 -3
  175. package/src/orchestrator/plugins/linear/config.ts +34 -0
  176. package/src/orchestrator/{skills/nx-workspace → plugins/nx}/SKILL.md +1 -1
  177. package/src/orchestrator/plugins/nx/config.ts +29 -0
  178. package/src/orchestrator/{skills/sanity-cms → plugins/sanity}/SKILL.md +1 -1
  179. package/src/orchestrator/plugins/sanity/config.ts +44 -0
  180. package/src/orchestrator/{skills/slack-notifications → plugins/slack}/SKILL.md +2 -2
  181. package/src/orchestrator/plugins/slack/config.ts +35 -0
  182. package/src/orchestrator/{skills/strapi-cms → plugins/strapi}/SKILL.md +1 -1
  183. package/src/orchestrator/plugins/strapi/config.ts +41 -0
  184. package/src/orchestrator/{skills/supabase-database → plugins/supabase}/SKILL.md +1 -1
  185. package/src/orchestrator/plugins/supabase/config.ts +34 -0
  186. package/src/orchestrator/{skills/teams-notifications → plugins/teams}/SKILL.md +2 -2
  187. package/src/orchestrator/plugins/teams/config.ts +44 -0
  188. package/src/orchestrator/plugins/types.ts +79 -0
  189. package/src/orchestrator/plugins/vercel/config.ts +33 -0
  190. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +8 -8
  191. package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
  192. package/src/orchestrator/prompts/bug-fix.prompt.md +27 -22
  193. package/src/orchestrator/prompts/create-skill.prompt.md +50 -32
  194. package/src/orchestrator/prompts/generate-task-spec.prompt.md +3 -3
  195. package/src/orchestrator/prompts/implement-feature.prompt.md +34 -29
  196. package/src/orchestrator/prompts/metrics-report.prompt.md +11 -11
  197. package/src/orchestrator/prompts/quick-refinement.prompt.md +23 -19
  198. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +19 -5
  199. package/src/orchestrator/skills/accessibility-standards/SKILL.md +1 -1
  200. package/src/orchestrator/skills/agent-hooks/SKILL.md +27 -18
  201. package/src/orchestrator/skills/agent-memory/SKILL.md +7 -7
  202. package/src/orchestrator/skills/api-patterns/SKILL.md +6 -6
  203. package/src/orchestrator/skills/code-commenting/SKILL.md +1 -1
  204. package/src/orchestrator/skills/context-map/SKILL.md +4 -4
  205. package/src/orchestrator/skills/data-engineering/SKILL.md +7 -4
  206. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +2 -2
  207. package/src/orchestrator/skills/documentation-standards/SKILL.md +1 -1
  208. package/src/orchestrator/skills/fast-review/SKILL.md +18 -7
  209. package/src/orchestrator/skills/frontend-design/SKILL.md +1 -1
  210. package/src/orchestrator/skills/memory-merger/SKILL.md +8 -8
  211. package/src/orchestrator/skills/nextjs-patterns/SKILL.md +1 -1
  212. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +2 -2
  213. package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +1 -1
  214. package/src/orchestrator/skills/performance-optimization/SKILL.md +1 -1
  215. package/src/orchestrator/skills/react-development/SKILL.md +3 -3
  216. package/src/orchestrator/skills/security-hardening/SKILL.md +27 -27
  217. package/src/orchestrator/skills/self-improvement/SKILL.md +14 -13
  218. package/src/orchestrator/skills/seo-patterns/SKILL.md +1 -1
  219. package/src/orchestrator/skills/session-checkpoints/SKILL.md +19 -19
  220. package/src/orchestrator/skills/team-lead-reference/SKILL.md +9 -9
  221. package/src/orchestrator/skills/testing-workflow/SKILL.md +13 -13
  222. package/src/orchestrator/skills/validation-gates/SKILL.md +157 -27
  223. package/src/orchestrator/mcp.json +0 -69
@@ -1,10 +1,10 @@
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
  # Workflow: Schema / CMS Changes
4
4
 
5
5
  Structured workflow for CMS schema modifications, query updates, and content model changes.
6
6
 
7
- > **Project config:** For CMS-specific paths, schema locations, and query library details, see the relevant CMS customization file (e.g., `sanity-config.md`).
7
+ > **Project config:** For CMS-specific paths, schema locations, and query library details, see the relevant CMS customization file in `customizations/stack/`.
8
8
 
9
9
  ## Phases
10
10
 
@@ -37,14 +37,14 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
37
37
  3. Check the query library (see CMS customization) for queries that will be affected
38
38
  4. Verify schema changes don't conflict with existing content in the CMS
39
39
  5. Document field mapping (new vs existing fields)
40
- 6. Create Linear issue with schema change details
40
+ 6. Create tracker issue with schema change details
41
41
 
42
42
  ### Exit Criteria
43
43
 
44
44
  - [ ] Existing schema understood
45
45
  - [ ] Impact on data queries assessed
46
46
  - [ ] Impact on existing content assessed
47
- - [ ] Linear issue created
47
+ - [ ] Tracker issue created
48
48
  - [ ] Approach decided (new type vs modify existing)
49
49
 
50
50
  ---
@@ -146,7 +146,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
146
146
  3. Start dev server and verify pages render correctly
147
147
  4. Check both apps if shared schema/queries changed
148
148
  5. Verify data model documentation is updated
149
- 6. Move Linear issue to Done
149
+ 6. Move tracker issue to Done
150
150
 
151
151
  ### Exit Criteria
152
152
 
@@ -154,8 +154,8 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
154
154
  - [ ] Pages render correctly in browser
155
155
  - [ ] Both apps verified (if shared code changed)
156
156
  - [ ] Data model documentation updated (if applicable)
157
- - [ ] Linear issue moved to Done
158
- - [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), Linear linked
157
+ - [ ] Tracker issue moved to Done
158
+ - [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
159
159
 
160
160
  ---
161
161
 
@@ -163,4 +163,4 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
163
163
 
164
164
  > **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
165
165
  >
166
- > Commit → Push → PR → Linear linkage. Team Lead owns delivery.
166
+ > Commit → Push → PR → tracker linkage. Team Lead owns delivery.
@@ -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
  # Workflow: Security Audit
4
4
 
@@ -31,19 +31,19 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
31
31
  ### Steps
32
32
 
33
33
  1. Define audit scope (full audit vs. targeted area)
34
- 2. Read `docs/PROJECT.md` security sections
35
- 3. Read `docs/KNOWN-ISSUES.md` for existing security items
34
+ 2. Read `.github/customizations/project.instructions.md` security sections
35
+ 3. Read `.github/customizations/KNOWN-ISSUES.md` for existing security items
36
36
  4. Check current CSP configuration in `next.config.js`
37
37
  5. Review auth flow (see database/auth customization for library paths)
38
38
  6. Map all API routes and Server Actions
39
- 7. Create Linear issue for the audit
39
+ 7. Create tracker issue for the audit
40
40
 
41
41
  ### Exit Criteria
42
42
 
43
43
  - [ ] Scope defined (which apps, libs, routes)
44
44
  - [ ] Existing security docs reviewed
45
45
  - [ ] Attack surface mapped
46
- - [ ] Linear issue created
46
+ - [ ] Tracker issue created
47
47
 
48
48
  ---
49
49
 
@@ -114,7 +114,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
114
114
  ### Exit Criteria
115
115
 
116
116
  - [ ] Panel completed (PASS or BLOCK)
117
- - [ ] Panel report linked to Linear issue
117
+ - [ ] Panel report linked to tracker issue
118
118
  - [ ] If BLOCK: MUST-FIX items extracted
119
119
 
120
120
  ---
@@ -127,19 +127,19 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
127
127
  ### Steps
128
128
 
129
129
  1. Fix Critical and High severity findings first
130
- 2. Create separate Linear issues for Medium/Low findings if not fixing now
130
+ 2. Create separate tracker issues for Medium/Low findings if not fixing now
131
131
  3. Run verification after each fix
132
132
  4. Re-run panel review if initial panel BLOCKed
133
- 5. Update `docs/KNOWN-ISSUES.md` for any accepted risks
133
+ 5. Update `.github/customizations/KNOWN-ISSUES.md` for any accepted risks
134
134
 
135
135
  ### Exit Criteria
136
136
 
137
137
  - [ ] Critical/High findings remediated
138
- - [ ] Medium/Low findings tracked in Linear
138
+ - [ ] Medium/Low findings tracked in tracker
139
139
  - [ ] Panel review passed (if applicable)
140
140
  - [ ] Known issues updated for accepted risks
141
- - [ ] All Linear issues updated
142
- - [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), Linear linked
141
+ - [ ] All tracker issues updated
142
+ - [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
143
143
 
144
144
  ---
145
145
 
@@ -147,4 +147,4 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
147
147
 
148
148
  > **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
149
149
  >
150
- > Commit → Push → PR → Linear linkage. Team Lead owns delivery.
150
+ > Commit → Push → PR → tracker linkage. Team Lead owns delivery.
@@ -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
  # Shared Delivery Phase
4
4
 
@@ -6,14 +6,14 @@ This phase is referenced by all workflow templates. It covers the final delivery
6
6
 
7
7
  ## Steps
8
8
 
9
- 1. **Commit all changes** to the feature branch with Linear issue IDs in commit messages
9
+ 1. **Commit all changes** to the feature branch with tracker issue IDs in commit messages
10
10
  2. **Push the branch** to origin: `git push -u origin <branch-name>`
11
11
  3. **Open a PR** using `gh` CLI (always use `GH_PAGER=cat` to prevent pager issues):
12
12
  ```bash
13
13
  GH_PAGER=cat gh pr create --base main --title "TAS-XX: Short description" --body "Resolves TAS-XX"
14
14
  ```
15
15
  4. **Do NOT merge** — PRs are opened for human review only
16
- 5. **Update Linear issues** with the PR URL for traceability
16
+ 5. **Update tracker issues** with the PR URL for traceability
17
17
  6. **Clean up session checkpoint** if one exists
18
18
 
19
19
  ## Branch & Delivery Strategy
@@ -28,8 +28,8 @@ The **Team Lead owns delivery**, not individual specialist agents:
28
28
 
29
29
  ## Exit Criteria
30
30
 
31
- - [ ] All changes committed with Linear issue IDs in messages
31
+ - [ ] All changes committed with tracker issue IDs in messages
32
32
  - [ ] Branch pushed to origin
33
33
  - [ ] PR opened on GitHub (NOT merged)
34
- - [ ] Linear issues updated with PR URL
34
+ - [ ] Tracker issues updated with PR URL
35
35
  - [ ] All project issues marked Done or Cancelled
@@ -5,7 +5,7 @@ model: Gemini 3.1 Pro (Preview)
5
5
  tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # API Designer
11
11
 
@@ -2,10 +2,10 @@
2
2
  description: 'Software architect for strategic architecture decisions, roadmap planning, ADRs, system design, and technology evaluation.'
3
3
  name: 'Architect'
4
4
  model: Claude Opus 4.6
5
- tools: ['search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'search', 'search/usages', 'execute/runInTerminal', 'execute/getTerminalOutput', 'read/terminalLastCommand', 'nx-mcp-server/nx_workspace', 'nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_visualize_graph']
5
+ tools: ['search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'search', 'search/usages', 'execute/runInTerminal', 'execute/getTerminalOutput', 'read/terminalLastCommand']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Software Architect
11
11
 
@@ -2,10 +2,10 @@
2
2
  description: 'Content engineer for CMS schema design, content queries, content modeling, releases, and studio customization.'
3
3
  name: 'Content Engineer'
4
4
  model: Gemini 3.1 Pro (Preview)
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'sanity/get_schema', 'sanity/get_sanity_rules', 'sanity/list_sanity_rules', 'sanity/query_documents', 'sanity/get_document', 'sanity/create_documents_from_json', 'sanity/create_documents_from_markdown', 'sanity/patch_document_from_json', 'sanity/patch_document_from_markdown', 'sanity/deploy_schema', 'sanity/publish_documents', 'sanity/unpublish_documents', 'sanity/discard_drafts', 'sanity/list_projects', 'sanity/list_datasets', 'sanity/list_workspace_schemas', 'sanity/list_embeddings_indices', 'sanity/search_docs', 'sanity/read_docs', 'sanity/semantic_search', 'sanity/migration_guide', 'sanity/create_version', 'sanity/generate_image', 'sanity/transform_image', 'sanity/add_cors_origin']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Content Engineer
11
11
 
@@ -42,7 +42,7 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
42
42
 
43
43
  ## Out of Scope
44
44
 
45
- - Building React components that render CMS content
45
+ - Building UI components that render CMS content
46
46
  - Creating database migrations for data that mirrors CMS content
47
47
  - Writing E2E tests for pages that consume CMS data
48
48
  - Deploying frontend applications
@@ -2,10 +2,10 @@
2
2
  description: 'Copywriter for UI microcopy, marketing text, email templates, venue descriptions, error messages, and all user-facing text.'
3
3
  name: 'Copywriter'
4
4
  model: GPT-5 mini
5
- tools: ['search/codebase', 'edit/editFiles', 'web/fetch', 'search', 'read/problems', 'search/usages', 'sanity/get_schema', 'sanity/query_documents', 'sanity/get_document', 'sanity/patch_document_from_json', 'sanity/patch_document_from_markdown', 'sanity/list_datasets', 'sanity/list_projects', 'resend/send-email']
5
+ tools: ['search/codebase', 'edit/editFiles', 'web/fetch', 'search', 'read/problems', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Copywriter
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- description: 'Data engineering expert for ETL pipelines, web scrapers (Puppeteer), data processors, CLI tools, and CMS data import.'
2
+ description: 'Data engineering expert for ETL pipelines, web crowlers, data processors, CLI tools, and CMS data import.'
3
3
  name: 'Data Expert'
4
4
  model: GPT-5.3-Codex
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'sanity/get_schema', 'sanity/query_documents', 'sanity/create_documents_from_json', 'sanity/patch_document_from_json', 'sanity/get_document', 'sanity/list_datasets', 'sanity/list_projects']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Data Expert
11
11
 
@@ -32,7 +32,7 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
32
32
  - Idempotent imports with `createOrReplace` and deterministic `_id`
33
33
  - Validate with Zod before importing — never import invalid data
34
34
  - Respect `robots.txt` and rate limit all scraping requests
35
- - Use Puppeteer Cluster for concurrent scraping
35
+ - Use the project's web crawling library for concurrent crowling (see the **data-pipeline** skill)
36
36
  - Handle errors gracefully — skip bad records, don't halt pipeline
37
37
  - Preserve UTF-8 encoding for special characters and diacritics
38
38
  - Backup before bulk operations
@@ -48,9 +48,9 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
48
48
 
49
49
  ## Out of Scope
50
50
 
51
- - Modifying Sanity schemas (report needed changes to Team Lead)
51
+ - Modifying CMS schemas (report needed changes to Team Lead)
52
52
  - Building UI components that consume the imported data
53
- - Creating Supabase migrations or RLS policies
53
+ - Creating database migrations or RLS policies
54
54
  - Deploying scrapers to production infrastructure
55
55
 
56
56
  ## Output Contract
@@ -2,10 +2,10 @@
2
2
  description: 'Database engineer for schema design, migrations, security policies, performance optimization, and auth integration.'
3
3
  name: 'Database Engineer'
4
4
  model: Gemini 3.1 Pro (Preview)
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'supabase/apply_migration', 'supabase/execute_sql', 'supabase/list_tables', 'supabase/list_migrations', 'supabase/list_extensions', 'supabase/get_logs', 'supabase/get_project', 'supabase/get_project_url', 'supabase/list_projects', 'supabase/search_docs', 'supabase/generate_typescript_types', 'supabase/get_advisors', 'supabase/create_branch', 'supabase/list_branches']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Database Engineer
11
11
 
@@ -47,7 +47,7 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
47
47
  ## Out of Scope
48
48
 
49
49
  - Building API routes or Server Actions that use the new schema
50
- - Creating React components for data display
50
+ - Creating UI components for data display
51
51
  - CMS schema changes
52
52
  - Deploying migrations to production (only development/preview)
53
53
 
@@ -2,10 +2,10 @@
2
2
  description: 'Full-stack developer for building pages, components, routing, layouts, API routes, server-side logic, and feature implementation.'
3
3
  name: 'Developer'
4
4
  model: Gemini 3.1 Pro (Preview)
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'vscode/getProjectSetupInfo', 'vscode/installExtension', 'vscode/newWorkspace', 'vscode/runCommand', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_workspace', 'nx-mcp-server/nx_generators']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'vscode/getProjectSetupInfo', 'vscode/installExtension', 'vscode/newWorkspace', 'vscode/runCommand', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Developer
11
11
 
@@ -44,7 +44,7 @@ After code changes, always run lint, test, and build for affected projects. The
44
44
 
45
45
  ## Done When
46
46
 
47
- - All acceptance criteria from the Linear issue are met
47
+ - All acceptance criteria from the tracker issue are met
48
48
  - Lint, test, and build pass for the affected project(s)
49
49
  - Changed files stay within the assigned file partition
50
50
  - TypeScript compiler reports zero errors in modified files
@@ -62,7 +62,7 @@ When completing a task, return a structured summary:
62
62
 
63
63
  1. **Files Changed** — List every file created or modified with a one-line description
64
64
  2. **Verification Results** — Lint, test, and build output (pass/fail + error count)
65
- 3. **Acceptance Criteria Status** — Checklist from the Linear issue, each item marked ✅ or ❌
65
+ 3. **Acceptance Criteria Status** — Checklist from the tracker issue, each item marked ✅ or ❌
66
66
  4. **Assumptions Made** — Decisions you made that weren't explicitly specified
67
67
 
68
68
  See **Base Output Contract** in `general.instructions.md` for the standard closing items (Discovered Issues + Lessons Applied).
@@ -1,15 +1,15 @@
1
1
  ---
2
- description: "DevOps expert for Vercel deployments, CI/CD integration, cron jobs, security headers, caching, environment variables, and build optimization."
2
+ description: "DevOps expert for deployments, CI/CD integration, cron jobs, security headers, caching, environment variables, and build optimization."
3
3
  name: "DevOps Expert"
4
4
  model: GPT-5.3-Codex
5
- tools: ["search/changes", "search/codebase", "edit/editFiles", "web/fetch", "vscode/getProjectSetupInfo", "vscode/installExtension", "vscode/newWorkspace", "vscode/runCommand", "read/problems", "execute/getTerminalOutput", "execute/runInTerminal", "read/terminalLastCommand", "read/terminalSelection", "search", "execute/testFailure", "search/usages", "vercel/deploy_to_vercel", "vercel/get_deployment", "vercel/get_deployment_build_logs", "vercel/get_project", "vercel/get_runtime_logs", "vercel/list_deployments", "vercel/list_projects", "vercel/list_teams", "vercel/search_vercel_documentation", "vercel/check_domain_availability_and_price", "nx-mcp-server/nx_project_details", "nx-mcp-server/nx_workspace", "nx-mcp-server/nx_workspace_path"]
5
+ tools: ["search/changes", "search/codebase", "edit/editFiles", "web/fetch", "vscode/getProjectSetupInfo", "vscode/installExtension", "vscode/newWorkspace", "vscode/runCommand", "read/problems", "execute/getTerminalOutput", "execute/runInTerminal", "read/terminalLastCommand", "read/terminalSelection", "search", "execute/testFailure", "search/usages"]
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # DevOps Expert
11
11
 
12
- You are a DevOps expert specializing in Vercel deployments, CI/CD pipelines, cron jobs, security headers, caching strategies, and build optimization.
12
+ You are a DevOps expert specializing in deployments, CI/CD pipelines, cron jobs, security headers, caching strategies, and build optimization.
13
13
 
14
14
  ## Critical Rules
15
15
 
@@ -43,7 +43,7 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
43
43
 
44
44
  - Writing application code or business logic
45
45
  - Creating database migrations or RLS policies
46
- - Designing Sanity schemas or GROQ queries
46
+ - Designing CMS schemas or content queries
47
47
  - Writing tests beyond build verification
48
48
 
49
49
  ## Output Contract
@@ -5,7 +5,7 @@ model: GPT-5 mini
5
5
  tools: ['search/codebase', 'edit/editFiles', 'web/fetch', 'search', 'read/problems']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Documentation Writer
11
11
 
@@ -2,10 +2,10 @@
2
2
  description: 'Performance optimization expert for frontend, backend, and build performance.'
3
3
  name: 'Performance Expert'
4
4
  model: Gemini 3.1 Pro (Preview)
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'chrome-devtools/*', 'nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_workspace']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Performance Expert
11
11
 
@@ -2,10 +2,10 @@
2
2
  description: 'Release manager for pre-release verification, changelog generation, version management, regression checks, and release coordination.'
3
3
  name: 'Release Manager'
4
4
  model: GPT-5.3-Codex
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages', 'vercel/get_deployment', 'vercel/get_deployment_build_logs', 'vercel/get_runtime_logs', 'vercel/list_deployments', 'vercel/list_projects', 'nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_workspace', 'nx-mcp-server/nx_workspace_path', 'slack/*']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Release Manager
11
11
 
@@ -38,8 +38,8 @@ Load the **deployment-infrastructure** skill for the detailed release process st
38
38
 
39
39
  ## Guidelines
40
40
 
41
- - Review Linear board for Done issues that should be in the release
42
- - Cross-reference merged PRs with Linear issues for completeness
41
+ - Review tracker board for Done issues that should be in the release
42
+ - Cross-reference merged PRs with tracker issues for completeness
43
43
  - Never skip the regression check — "it's a small change" is when things break
44
44
  - Keep changelogs audience-appropriate (users care about features, not refactors)
45
45
  - Coordinate with DevOps Expert for deployment-specific concerns
@@ -21,7 +21,7 @@ handoffs:
21
21
  prompt: 'Use the generate-task-spec prompt to create an opencastle.tasks.yml spec for autonomous overnight runs based on:'
22
22
  ---
23
23
 
24
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
24
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
25
25
 
26
26
  # Researcher
27
27
 
@@ -87,7 +87,7 @@ Given a feature request, answer:
87
87
  Given a bug report, answer:
88
88
  - Where does the relevant code live? (entry points → data flow)
89
89
  - What does the git history show? (recent changes that might have caused it)
90
- - Are there related known issues in `docs/KNOWN-ISSUES.md`?
90
+ - Are there related known issues in `.github/customizations/KNOWN-ISSUES.md`?
91
91
  - Are there related lessons in `.github/customizations/LESSONS-LEARNED.md`?
92
92
  - What test coverage exists for the affected area?
93
93
 
@@ -118,7 +118,7 @@ Given a file or module, answer:
118
118
 
119
119
  - Writing or editing code files
120
120
  - Running tests or builds
121
- - Creating Linear issues or updating the board
121
+ - Creating tracker issues or updating the board
122
122
  - Making architectural decisions (present options, don't decide)
123
123
 
124
124
  ## Output Contract
@@ -5,7 +5,7 @@ model: GPT-5 mini
5
5
  tools: [read/readFile, search/codebase, search/fileSearch, search/textSearch, search/listDirectory, read/problems]
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Reviewer
11
11
 
@@ -2,14 +2,14 @@
2
2
  description: "Security expert for authentication, authorization, RLS policies, security headers, input validation, API security, and vulnerability management."
3
3
  name: "Security Expert"
4
4
  model: Claude Opus 4.6
5
- tools: ["search/changes", "search/codebase", "edit/editFiles", "web/fetch", "vscode/getProjectSetupInfo", "vscode/installExtension", "vscode/newWorkspace", "vscode/runCommand", "read/problems", "execute/getTerminalOutput", "execute/runInTerminal", "read/terminalLastCommand", "read/terminalSelection", "search", "execute/testFailure", "search/usages", "supabase/execute_sql", "supabase/list_tables", "supabase/get_advisors", "supabase/list_migrations", "supabase/get_project"]
5
+ tools: ["search/changes", "search/codebase", "edit/editFiles", "web/fetch", "vscode/getProjectSetupInfo", "vscode/installExtension", "vscode/newWorkspace", "vscode/runCommand", "read/problems", "execute/getTerminalOutput", "execute/runInTerminal", "read/terminalLastCommand", "read/terminalSelection", "search", "execute/testFailure", "search/usages"]
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # Security Expert
11
11
 
12
- You are a security expert specializing in authentication, authorization, security headers, input validation, API security, and vulnerability management for Next.js applications with Supabase.
12
+ You are a security expert specializing in authentication, authorization, security headers, input validation, API security, and vulnerability management. Resolve technology-specific details via the **security** and **database** capability slots in the skill matrix.
13
13
 
14
14
  ## Critical Rules
15
15
 
@@ -18,7 +18,7 @@ You are a security expert specializing in authentication, authorization, securit
18
18
  3. **Enable RLS on all tables** — default-deny, explicit-allow policies
19
19
  4. **Validate all inputs** — use Zod schemas before database operations
20
20
  5. **Sanitize user content** — escape HTML in user-generated content
21
- 6. **Use parameterized queries** — Supabase client handles this automatically
21
+ 6. **Use parameterized queries** — use the database client's built-in parameterization
22
22
  7. **Rotate secrets regularly** — cron secrets, API keys, OAuth secrets
23
23
 
24
24
  ## Skills
@@ -2,10 +2,10 @@
2
2
  description: 'SEO specialist for meta tags, structured data, sitemap strategy, Open Graph, search visibility, and crawlability audits.'
3
3
  name: 'SEO Specialist'
4
4
  model: GPT-5 mini
5
- tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'search', 'search/usages', 'chrome-devtools/*']
5
+ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'search', 'search/usages']
6
6
  ---
7
7
 
8
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the customizations/ directory instead. -->
8
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
9
 
10
10
  # SEO Specialist
11
11