opencastle 0.19.0 → 0.21.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 (172) hide show
  1. package/README.md +18 -9
  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 +2 -2
  5. package/dist/cli/adapters/claude-code.js.map +1 -1
  6. package/dist/cli/adapters/cursor.d.ts +2 -1
  7. package/dist/cli/adapters/cursor.d.ts.map +1 -1
  8. package/dist/cli/adapters/cursor.js +13 -12
  9. package/dist/cli/adapters/cursor.js.map +1 -1
  10. package/dist/cli/adapters/opencode.d.ts +2 -2
  11. package/dist/cli/adapters/opencode.d.ts.map +1 -1
  12. package/dist/cli/adapters/opencode.js +2 -2
  13. package/dist/cli/adapters/opencode.js.map +1 -1
  14. package/dist/cli/adapters/single-file-base.d.ts.map +1 -1
  15. package/dist/cli/adapters/single-file-base.js +19 -13
  16. package/dist/cli/adapters/single-file-base.js.map +1 -1
  17. package/dist/cli/adapters/vscode.d.ts +3 -2
  18. package/dist/cli/adapters/vscode.d.ts.map +1 -1
  19. package/dist/cli/adapters/vscode.js +14 -16
  20. package/dist/cli/adapters/vscode.js.map +1 -1
  21. package/dist/cli/dashboard.js +1 -1
  22. package/dist/cli/dashboard.js.map +1 -1
  23. package/dist/cli/doctor.d.ts +12 -1
  24. package/dist/cli/doctor.d.ts.map +1 -1
  25. package/dist/cli/doctor.js +90 -100
  26. package/dist/cli/doctor.js.map +1 -1
  27. package/dist/cli/doctor.test.d.ts +2 -0
  28. package/dist/cli/doctor.test.d.ts.map +1 -0
  29. package/dist/cli/doctor.test.js +213 -0
  30. package/dist/cli/doctor.test.js.map +1 -0
  31. package/dist/cli/eject.js +2 -2
  32. package/dist/cli/eject.js.map +1 -1
  33. package/dist/cli/init.d.ts.map +1 -1
  34. package/dist/cli/init.js +13 -4
  35. package/dist/cli/init.js.map +1 -1
  36. package/dist/cli/init.test.js +27 -15
  37. package/dist/cli/init.test.js.map +1 -1
  38. package/dist/cli/lesson.js +5 -5
  39. package/dist/cli/lesson.js.map +1 -1
  40. package/dist/cli/log.d.ts +1 -1
  41. package/dist/cli/log.d.ts.map +1 -1
  42. package/dist/cli/log.js +5 -5
  43. package/dist/cli/log.js.map +1 -1
  44. package/dist/cli/manifest.d.ts +4 -1
  45. package/dist/cli/manifest.d.ts.map +1 -1
  46. package/dist/cli/manifest.js +16 -5
  47. package/dist/cli/manifest.js.map +1 -1
  48. package/dist/cli/stack-config.d.ts.map +1 -1
  49. package/dist/cli/stack-config.js +2 -14
  50. package/dist/cli/stack-config.js.map +1 -1
  51. package/dist/cli/types.d.ts +14 -0
  52. package/dist/cli/types.d.ts.map +1 -1
  53. package/dist/cli/types.js.map +1 -1
  54. package/dist/cli/update.d.ts.map +1 -1
  55. package/dist/cli/update.js +87 -34
  56. package/dist/cli/update.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/cli/adapters/claude-code.ts +2 -2
  59. package/src/cli/adapters/cursor.ts +14 -13
  60. package/src/cli/adapters/opencode.ts +2 -2
  61. package/src/cli/adapters/single-file-base.ts +19 -14
  62. package/src/cli/adapters/vscode.ts +16 -17
  63. package/src/cli/dashboard.ts +1 -1
  64. package/src/cli/doctor.test.ts +245 -0
  65. package/src/cli/doctor.ts +101 -104
  66. package/src/cli/eject.ts +2 -2
  67. package/src/cli/init.test.ts +28 -15
  68. package/src/cli/init.ts +14 -4
  69. package/src/cli/lesson.ts +5 -5
  70. package/src/cli/log.ts +5 -5
  71. package/src/cli/manifest.ts +18 -5
  72. package/src/cli/stack-config.ts +2 -14
  73. package/src/cli/types.ts +15 -0
  74. package/src/cli/update.ts +95 -36
  75. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  76. package/src/dashboard/scripts/generate-seed-data.ts +4 -4
  77. package/src/dashboard/seed-data/delegations.ndjson +15 -15
  78. package/src/dashboard/seed-data/events.ndjson +15 -15
  79. package/src/orchestrator/agent-workflows/README.md +1 -1
  80. package/src/orchestrator/agent-workflows/bug-fix.md +4 -4
  81. package/src/orchestrator/agent-workflows/data-pipeline.md +1 -1
  82. package/src/orchestrator/agent-workflows/database-migration.md +4 -4
  83. package/src/orchestrator/agent-workflows/feature-implementation.md +3 -3
  84. package/src/orchestrator/agent-workflows/performance-optimization.md +1 -1
  85. package/src/orchestrator/agent-workflows/refactoring.md +1 -1
  86. package/src/orchestrator/agent-workflows/schema-changes.md +2 -2
  87. package/src/orchestrator/agent-workflows/security-audit.md +4 -4
  88. package/src/orchestrator/agent-workflows/shared-delivery-phase.md +1 -1
  89. package/src/orchestrator/agents/api-designer.agent.md +2 -2
  90. package/src/orchestrator/agents/architect.agent.md +2 -2
  91. package/src/orchestrator/agents/content-engineer.agent.md +2 -2
  92. package/src/orchestrator/agents/copywriter.agent.md +2 -2
  93. package/src/orchestrator/agents/data-expert.agent.md +2 -2
  94. package/src/orchestrator/agents/database-engineer.agent.md +2 -2
  95. package/src/orchestrator/agents/developer.agent.md +2 -2
  96. package/src/orchestrator/agents/devops-expert.agent.md +2 -2
  97. package/src/orchestrator/agents/documentation-writer.agent.md +2 -2
  98. package/src/orchestrator/agents/performance-expert.agent.md +2 -2
  99. package/src/orchestrator/agents/release-manager.agent.md +2 -2
  100. package/src/orchestrator/agents/researcher.agent.md +4 -4
  101. package/src/orchestrator/agents/reviewer.agent.md +1 -1
  102. package/src/orchestrator/agents/security-expert.agent.md +2 -2
  103. package/src/orchestrator/agents/seo-specialist.agent.md +2 -2
  104. package/src/orchestrator/agents/session-guard.agent.md +10 -10
  105. package/src/orchestrator/agents/team-lead.agent.md +8 -3
  106. package/src/orchestrator/agents/testing-expert.agent.md +2 -2
  107. package/src/orchestrator/agents/ui-ux-expert.agent.md +2 -2
  108. package/src/orchestrator/copilot-instructions.md +1 -1
  109. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +11 -11
  110. package/src/orchestrator/customizations/DISPUTES.md +2 -2
  111. package/src/orchestrator/customizations/README.md +1 -1
  112. package/src/orchestrator/customizations/logs/README.md +1 -1
  113. package/src/orchestrator/customizations/project/docs-structure.md +6 -6
  114. package/src/orchestrator/instructions/ai-optimization.instructions.md +1 -1
  115. package/src/orchestrator/instructions/general.instructions.md +6 -6
  116. package/src/orchestrator/plugins/astro/SKILL.md +1 -1
  117. package/src/orchestrator/plugins/chrome-devtools/SKILL.md +4 -4
  118. package/src/orchestrator/plugins/contentful/SKILL.md +2 -2
  119. package/src/orchestrator/plugins/convex/SKILL.md +2 -2
  120. package/src/orchestrator/plugins/cypress/SKILL.md +2 -2
  121. package/src/orchestrator/plugins/figma/SKILL.md +1 -1
  122. package/src/orchestrator/plugins/jira/SKILL.md +3 -3
  123. package/src/orchestrator/plugins/linear/SKILL.md +2 -2
  124. package/src/orchestrator/plugins/netlify/SKILL.md +2 -2
  125. package/src/orchestrator/plugins/nextjs/SKILL.md +1 -1
  126. package/src/orchestrator/plugins/nx/SKILL.md +1 -1
  127. package/src/orchestrator/plugins/playwright/SKILL.md +2 -2
  128. package/src/orchestrator/plugins/prisma/SKILL.md +2 -2
  129. package/src/orchestrator/plugins/resend/SKILL.md +1 -1
  130. package/src/orchestrator/plugins/sanity/SKILL.md +2 -2
  131. package/src/orchestrator/plugins/slack/SKILL.md +2 -2
  132. package/src/orchestrator/plugins/strapi/SKILL.md +2 -2
  133. package/src/orchestrator/plugins/supabase/SKILL.md +2 -2
  134. package/src/orchestrator/plugins/teams/SKILL.md +1 -1
  135. package/src/orchestrator/plugins/turborepo/SKILL.md +1 -1
  136. package/src/orchestrator/plugins/vercel/SKILL.md +2 -2
  137. package/src/orchestrator/plugins/vitest/SKILL.md +2 -2
  138. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +8 -8
  139. package/src/orchestrator/prompts/brainstorm.prompt.md +3 -3
  140. package/src/orchestrator/prompts/bug-fix.prompt.md +4 -4
  141. package/src/orchestrator/prompts/create-skill.prompt.md +3 -3
  142. package/src/orchestrator/prompts/generate-convoy.prompt.md +1 -1
  143. package/src/orchestrator/prompts/implement-feature.prompt.md +11 -11
  144. package/src/orchestrator/prompts/quick-refinement.prompt.md +3 -3
  145. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +1 -1
  146. package/src/orchestrator/skills/accessibility-standards/SKILL.md +1 -1
  147. package/src/orchestrator/skills/agent-hooks/SKILL.md +9 -9
  148. package/src/orchestrator/skills/agent-memory/SKILL.md +5 -5
  149. package/src/orchestrator/skills/api-patterns/SKILL.md +2 -2
  150. package/src/orchestrator/skills/code-commenting/SKILL.md +1 -1
  151. package/src/orchestrator/skills/context-map/SKILL.md +4 -4
  152. package/src/orchestrator/skills/data-engineering/SKILL.md +2 -2
  153. package/src/orchestrator/skills/decomposition/SKILL.md +1 -1
  154. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +2 -2
  155. package/src/orchestrator/skills/documentation-standards/SKILL.md +2 -2
  156. package/src/orchestrator/skills/fast-review/SKILL.md +2 -2
  157. package/src/orchestrator/skills/frontend-design/SKILL.md +1 -1
  158. package/src/orchestrator/skills/git-workflow/SKILL.md +2 -2
  159. package/src/orchestrator/skills/memory-merger/SKILL.md +3 -3
  160. package/src/orchestrator/skills/observability-logging/SKILL.md +10 -10
  161. package/src/orchestrator/skills/orchestration-protocols/SKILL.md +1 -1
  162. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +2 -2
  163. package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +1 -1
  164. package/src/orchestrator/skills/performance-optimization/SKILL.md +1 -1
  165. package/src/orchestrator/skills/react-development/SKILL.md +1 -1
  166. package/src/orchestrator/skills/security-hardening/SKILL.md +1 -1
  167. package/src/orchestrator/skills/self-improvement/SKILL.md +2 -2
  168. package/src/orchestrator/skills/seo-patterns/SKILL.md +1 -1
  169. package/src/orchestrator/skills/session-checkpoints/SKILL.md +5 -5
  170. package/src/orchestrator/skills/team-lead-reference/SKILL.md +6 -6
  171. package/src/orchestrator/skills/testing-workflow/SKILL.md +3 -3
  172. package/src/orchestrator/skills/validation-gates/SKILL.md +1 -1
@@ -6,7 +6,7 @@ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'rea
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # Release Manager
12
12
 
@@ -21,7 +21,7 @@ You are a release manager responsible for pre-release verification, changelog ge
21
21
 
22
22
  ## Skills
23
23
 
24
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
24
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
25
25
 
26
26
  ## Release Process
27
27
 
@@ -6,7 +6,7 @@ tools: ['search/codebase', 'search/textSearch', 'search/fileSearch', 'search/usa
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # Researcher
12
12
 
@@ -14,7 +14,7 @@ You are a codebase exploration specialist. Your job is to **find information, ma
14
14
 
15
15
  ## Skills
16
16
 
17
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
17
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
18
18
 
19
19
  ## Critical Rules
20
20
 
@@ -69,8 +69,8 @@ Given a feature request, answer:
69
69
  Given a bug report, answer:
70
70
  - Where does the relevant code live? (entry points → data flow)
71
71
  - What does the git history show? (recent changes that might have caused it)
72
- - Are there related known issues in `.github/customizations/KNOWN-ISSUES.md`?
73
- - Are there related lessons in `.github/customizations/LESSONS-LEARNED.md`?
72
+ - Are there related known issues in `.opencastle/KNOWN-ISSUES.md`?
73
+ - Are there related lessons in `.opencastle/LESSONS-LEARNED.md`?
74
74
  - What test coverage exists for the affected area?
75
75
 
76
76
  ### 3. Pattern Audit
@@ -6,7 +6,7 @@ user-invocable: false
6
6
  tools: [read/readFile, search/codebase, search/fileSearch, search/textSearch, search/listDirectory, read/problems]
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # Reviewer
12
12
 
@@ -6,7 +6,7 @@ tools: ["search/changes", "search/codebase", "edit/editFiles", "web/fetch", "vsc
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # Security Expert
12
12
 
@@ -24,7 +24,7 @@ You are a security expert specializing in authentication, authorization, securit
24
24
 
25
25
  ## Skills
26
26
 
27
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
27
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
28
28
 
29
29
  ## Guidelines
30
30
 
@@ -6,7 +6,7 @@ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'rea
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # SEO Specialist
12
12
 
@@ -21,7 +21,7 @@ You are an SEO specialist focused on technical SEO implementation — meta tags,
21
21
 
22
22
  ## Skills
23
23
 
24
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
24
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
25
25
 
26
26
  ## Guidelines
27
27
 
@@ -30,9 +30,9 @@ Run ALL checks. Report each as ✅ or ❌.
30
30
 
31
31
  ### 1. Delegation Records
32
32
 
33
- For each delegation in the session summary, verify a matching record exists in `.github/customizations/logs/events.ndjson` (type=delegation).
33
+ For each delegation in the session summary, verify a matching record exists in `.opencastle/logs/events.ndjson` (type=delegation).
34
34
 
35
- **How:** `grep '"type":"delegation"' .github/customizations/logs/events.ndjson | tail -20` and match agent + task against the summary.
35
+ **How:** `grep '"type":"delegation"' .opencastle/logs/events.ndjson | tail -20` and match agent + task against the summary.
36
36
 
37
37
  **Fix:** Load the **observability-logging** skill and run the delegation record command (includes a verify step).
38
38
 
@@ -40,29 +40,29 @@ Also verify each delegation record includes `session_id` (branch name). Records
40
40
 
41
41
  ### 2. Session Record
42
42
 
43
- Verify a session record exists in `.github/customizations/logs/events.ndjson` (type=session) for the current task.
43
+ Verify a session record exists in `.opencastle/logs/events.ndjson` (type=session) for the current task.
44
44
 
45
- **How:** `grep '"type":"session"' .github/customizations/logs/events.ndjson | tail -5` and match task description.
45
+ **How:** `grep '"type":"session"' .opencastle/logs/events.ndjson | tail -5` and match task description.
46
46
 
47
47
  **Fix:** Load the **observability-logging** skill and run the session record command (includes a verify step).
48
48
 
49
49
  ### 3. Lessons Captured
50
50
 
51
- If the session summary indicates retries occurred, verify new entries exist in `.github/customizations/LESSONS-LEARNED.md`.
51
+ If the session summary indicates retries occurred, verify new entries exist in `.opencastle/LESSONS-LEARNED.md`.
52
52
 
53
- **How:** `grep -c "^### LES-" .github/customizations/LESSONS-LEARNED.md` — compare count with expected.
53
+ **How:** `grep -c "^### LES-" .opencastle/LESSONS-LEARNED.md` — compare count with expected.
54
54
 
55
55
  ### 4. Discovered Issues Tracked
56
56
 
57
57
  If the session summary lists discovered issues, verify they appear in:
58
- - `.github/customizations/KNOWN-ISSUES.md`, OR
58
+ - `.opencastle/KNOWN-ISSUES.md`, OR
59
59
  - A task tracker ticket referenced in the summary
60
60
 
61
61
  ### 5. Review & Panel Records
62
62
 
63
- If the session summary mentions fast reviews or panel reviews, verify matching records exist in `.github/customizations/logs/events.ndjson` (type=review and/or type=panel).
63
+ If the session summary mentions fast reviews or panel reviews, verify matching records exist in `.opencastle/logs/events.ndjson` (type=review and/or type=panel).
64
64
 
65
- **How:** `grep '"type":"review"' .github/customizations/logs/events.ndjson | tail -10` and/or `grep '"type":"panel"' .github/customizations/logs/events.ndjson | tail -5`.
65
+ **How:** `grep '"type":"review"' .opencastle/logs/events.ndjson | tail -10` and/or `grep '"type":"panel"' .opencastle/logs/events.ndjson | tail -5`.
66
66
 
67
67
  **Fix:** Load the **observability-logging** skill and run the review/panel record command as applicable (includes a verify step).
68
68
 
@@ -82,7 +82,7 @@ If the session involved running a convoy (check for `.opencastle/convoy.db` or r
82
82
 
83
83
  **Verify convoy tasks logged:**
84
84
  - Each completed convoy task should have a corresponding event in the NDJSON log
85
- - Check: `grep '"type":"session"' .github/customizations/logs/events.ndjson | tail -10`
85
+ - Check: `grep '"type":"session"' .opencastle/logs/events.ndjson | tail -10`
86
86
 
87
87
  **Fix:** If convoy export is missing, the engine should have auto-exported. Manual export: run `opencastle run --status` to verify the convoy completed.
88
88
 
@@ -28,7 +28,7 @@ handoffs:
28
28
  prompt: 'Use the resolve-pr-comments prompt to resolve the GitHub PR review comments on this PR:'
29
29
  ---
30
30
 
31
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
31
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
32
32
 
33
33
  # Team Lead (OpenCastle)
34
34
 
@@ -55,6 +55,7 @@ Load on-demand skills **only when their phase is reached** — not upfront.
55
55
  | **agent-hooks** | Step 3 — delegation prompt templates for specialist agents |
56
56
  | **task-management** | Step 2 — tracker conventions, issue naming, labels, priorities |
57
57
  | **decomposition** | Step 2–3 — dependency resolution, delegation spec templates, prompt examples |
58
+ | **agent-routing** | Step 2 — task-to-agent routing rules, multi-agent decomposition patterns, anti-patterns |
58
59
  | **orchestration-protocols** | Step 4+ — steering, background agents, parallel research, health-checks, escalation |
59
60
  | **context-map** | Step 2, if 5+ files affected — structured file impact maps |
60
61
  | **validation-gates** | Step 4 — deterministic checks, browser testing, regression |
@@ -89,6 +90,10 @@ Delegate via `runSubagent` (inline) or background sessions.
89
90
 
90
91
  > **⚠️ Always reference agents by their exact `name` when delegating.** Write "Use the Developer agent to..." or "Use the Researcher agent to..." in your delegation prompt. This ensures VS Code routes the sub-agent to the correct custom agent with its assigned model and tools. If you don't name the agent, the sub-agent inherits the Team Lead's Premium model — wasting expensive requests on Economy/Standard tasks.
91
92
 
93
+ ## Task-to-Agent Routing
94
+
95
+ > **⛔ Developer is the LAST resort, not the default.** Load the **agent-routing** skill at Step 2 and scan its routing table before assigning any subtask. Only use Developer when no specialist matches. Always decompose multi-domain tasks across agent boundaries (e.g., code + copy = Developer + Copywriter).
96
+
92
97
  ## Delegation
93
98
 
94
99
  ### Sub-Agents (Inline) — `runSubagent`
@@ -104,7 +109,7 @@ When calling `runSubagent`, always specify which custom agent to use by name: *"
104
109
 
105
110
  **After each sub-agent returns**, log the delegation record before doing anything else (before review, before verification). This is a **⛔ hard gate** — do NOT proceed to review or any other action until the delegation is logged. Use the **observability-logging** skill's delegation record command (`--mechanism sub-agent`).
106
111
 
107
- > **`model` and `tier` must come from the agent registry** — not the Team Lead's own model. Look up the agent in [agent-registry.md](../customizations/agents/agent-registry.md) and use their assigned model and tier. For example, delegating to Developer → `"model":"claude-sonnet-4-6","tier":"quality"`, not the Team Lead's `claude-opus-4-6`.
112
+ > **`model` and `tier` must come from the agent registry** — not the Team Lead's own model. Look up the agent in [agent-registry.md](../.opencastle/agents/agent-registry.md) and use their assigned model and tier. For example, delegating to Developer → `"model":"claude-sonnet-4-6","tier":"quality"`, not the Team Lead's `claude-opus-4-6`.
108
113
 
109
114
  ### Background Agents — Delegate Session
110
115
 
@@ -259,7 +264,7 @@ See [shared-delivery-phase.md](../agent-workflows/shared-delivery-phase.md) for
259
264
 
260
265
  1. Verify all issues Done or Cancelled
261
266
  2. Final build/lint/test across affected projects
262
- 3. Update roadmap (`.github/customizations/project/roadmap.md`)
267
+ 3. Update roadmap (`.opencastle/project/roadmap.md`)
263
268
  4. Commit to feature branch with issue IDs — Team Lead creates the branch, sub-agents work on it directly, background agents use isolated worktrees
264
269
  5. Push and open PR (`GH_PAGER=cat gh pr create ...`). **Do NOT merge.**
265
270
  6. Link PR in tracker issue
@@ -6,7 +6,7 @@ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'rea
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # Testing Expert
12
12
 
@@ -14,7 +14,7 @@ You are an expert tester who validates UI changes using browser automation and w
14
14
 
15
15
  ## Skills
16
16
 
17
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
17
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
18
18
 
19
19
  ## Context Management
20
20
 
@@ -6,7 +6,7 @@ tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'vsc
6
6
  user-invocable: false
7
7
  ---
8
8
 
9
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
9
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
10
10
 
11
11
  # UI/UX Expert
12
12
 
@@ -20,7 +20,7 @@ You are an expert UI/UX developer specializing in building accessible, visually
20
20
 
21
21
  ## Skills
22
22
 
23
- Resolve all skills (slots and direct) via [skill-matrix.json](.github/customizations/agents/skill-matrix.json).
23
+ Resolve all skills (slots and direct) via [skill-matrix.json](.opencastle/agents/skill-matrix.json).
24
24
 
25
25
  ## Guidelines
26
26
 
@@ -1,4 +1,4 @@
1
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
1
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
2
2
 
3
3
  # Copilot Instructions
4
4
 
@@ -6,44 +6,44 @@ Tracks agent success rates across panel reviews and delegated tasks to inform mo
6
6
  ## Data Sources
7
7
 
8
8
  Performance data is collected automatically via NDJSON session logs:
9
- - **All events:** `.github/customizations/logs/events.ndjson` — unified log for all event types (sessions, delegations, reviews, panels, disputes), appended via `opencastle log`
9
+ - **All events:** `.opencastle/logs/events.ndjson` — unified log for all event types (sessions, delegations, reviews, panels, disputes), appended via `opencastle log`
10
10
  - **Dashboard:** Run `npx opencastle dashboard` to visualize agent performance
11
11
 
12
12
  ## Quick Queries
13
13
 
14
14
  ```bash
15
15
  # Sessions per agent
16
- jq -r 'select(.type == "session") | .agent' .github/customizations/logs/events.ndjson | sort | uniq -c | sort -rn
16
+ jq -r 'select(.type == "session") | .agent' .opencastle/logs/events.ndjson | sort | uniq -c | sort -rn
17
17
 
18
18
  # Success rate by agent
19
- jq -r 'select(.type == "session") | [.agent, .outcome] | @tsv' .github/customizations/logs/events.ndjson | sort | uniq -c
19
+ jq -r 'select(.type == "session") | [.agent, .outcome] | @tsv' .opencastle/logs/events.ndjson | sort | uniq -c
20
20
 
21
21
  # Delegation tier distribution
22
- jq -r 'select(.type == "delegation") | .tier' .github/customizations/logs/events.ndjson | sort | uniq -c
22
+ jq -r 'select(.type == "delegation") | .tier' .opencastle/logs/events.ndjson | sort | uniq -c
23
23
 
24
24
  # Failed delegations
25
- jq 'select(.type == "delegation" and .outcome == "failed")' .github/customizations/logs/events.ndjson
25
+ jq 'select(.type == "delegation" and .outcome == "failed")' .opencastle/logs/events.ndjson
26
26
  ```
27
27
 
28
28
  ## Panel Review Performance
29
29
 
30
- Panel review data is collected automatically in `.github/customizations/logs/events.ndjson` with `type: "panel"` (appended by the panel runner after each review — see step 7 in the panel majority vote skill).
30
+ Panel review data is collected automatically in `.opencastle/logs/events.ndjson` with `type: "panel"` (appended by the panel runner after each review — see step 7 in the panel majority vote skill).
31
31
 
32
32
  ```bash
33
33
  # Total panel reviews
34
- jq 'select(.type == "panel")' .github/customizations/logs/events.ndjson | wc -l
34
+ jq 'select(.type == "panel")' .opencastle/logs/events.ndjson | wc -l
35
35
 
36
36
  # Pass vs block rate
37
- jq -r 'select(.type == "panel") | .verdict' .github/customizations/logs/events.ndjson | sort | uniq -c
37
+ jq -r 'select(.type == "panel") | .verdict' .opencastle/logs/events.ndjson | sort | uniq -c
38
38
 
39
39
  # Reviews by panel key
40
- jq -r 'select(.type == "panel") | .panel_key' .github/customizations/logs/events.ndjson | sort | uniq -c | sort -rn
40
+ jq -r 'select(.type == "panel") | .panel_key' .opencastle/logs/events.ndjson | sort | uniq -c | sort -rn
41
41
 
42
42
  # Reviews that required retries (attempt > 1)
43
- jq 'select(.type == "panel" and .attempt > 1)' .github/customizations/logs/events.ndjson
43
+ jq 'select(.type == "panel" and .attempt > 1)' .opencastle/logs/events.ndjson
44
44
 
45
45
  # Average SHOULD-FIX items per review
46
- jq -s '[.[] | select(.type == "panel")] | if length > 0 then (map(.should_fix) | add) / length else 0 end' .github/customizations/logs/events.ndjson
46
+ jq -s '[.[] | select(.type == "panel")] | if length > 0 then (map(.should_fix) | add) / length else 0 end' .opencastle/logs/events.ndjson
47
47
  ```
48
48
 
49
49
  ## Usage
@@ -85,8 +85,8 @@ Which option the Team Lead recommends and why. Include specific next steps:
85
85
  #### Artifacts
86
86
 
87
87
  Links to evidence for human review:
88
- - Panel report: `.github/customizations/logs/panel/[panel-key].md`
89
- - Review log entries: `.github/customizations/logs/events.ndjson` (filter by `type: "review"` and issue)
88
+ - Panel report: `.opencastle/logs/panel/[panel-key].md`
89
+ - Review log entries: `.opencastle/logs/events.ndjson` (filter by `type: "review"` and issue)
90
90
  - Changed files: [list of files in the last attempt]
91
91
  - DLQ entry (if any): `DLQ-XXX`
92
92
  ```
@@ -6,7 +6,7 @@ Project-specific configuration for the AI agent framework. Everything in this fo
6
6
 
7
7
  Skills and instructions contain generic methodology (how to write migrations, how to test in a browser, how to run a panel review). This folder holds the concrete values those skills operate on — project IDs, table schemas, team UUIDs, endpoint inventories, and similar configuration that changes per project.
8
8
 
9
- Skills reference these files with relative links like `../../customizations/stack/api-config.md`, so agents automatically load project context when they load a skill.
9
+ Skills reference these files with relative links like `../../.opencastle/stack/api-config.md`, so agents automatically load project context when they load a skill.
10
10
 
11
11
  ## Contents
12
12
 
@@ -175,7 +175,7 @@ Run `opencastle log --help` for full options.
175
175
  "attempt": 1,
176
176
  "tracker_issue": "PRJ-57",
177
177
  "artifacts_count": 14,
178
- "report_path": ".github/customizations/logs/panel/instruction-refactoring.md"
178
+ "report_path": ".opencastle/logs/panel/instruction-refactoring.md"
179
179
  }
180
180
  ```
181
181
 
@@ -4,19 +4,19 @@
4
4
 
5
5
  Project-specific documentation layout referenced by the `documentation-standards` skill.
6
6
 
7
- Documentation files live in the `.github/customizations/` directory alongside other project-specific configuration. Key documentation files:
7
+ Documentation files live in the `.opencastle/` directory alongside other project-specific configuration. Key documentation files:
8
8
 
9
- - `.github/customizations/KNOWN-ISSUES.md` — Tracked issues, limitations, and accepted risks
10
- - `.github/customizations/project/roadmap.md` — Project roadmap and feature status
11
- - `.github/customizations/project/decisions.md` — Architecture Decision Records
12
- - `.github/customizations/LESSONS-LEARNED.md` — Agent knowledge base of retries and workarounds
9
+ - `.opencastle/KNOWN-ISSUES.md` — Tracked issues, limitations, and accepted risks
10
+ - `.opencastle/project/roadmap.md` — Project roadmap and feature status
11
+ - `.opencastle/project/decisions.md` — Architecture Decision Records
12
+ - `.opencastle/LESSONS-LEARNED.md` — Agent knowledge base of retries and workarounds
13
13
 
14
14
  ## Directory Tree
15
15
 
16
16
  <!-- Map your project's documentation directory here if one exists -->
17
17
 
18
18
  ```
19
- .github/customizations/
19
+ .opencastle/
20
20
  ├── KNOWN-ISSUES.md — Tracked issues and limitations
21
21
  ├── LESSONS-LEARNED.md — Agent knowledge base
22
22
  └── project/
@@ -3,7 +3,7 @@ description: 'AI assistant optimization patterns for efficient context usage and
3
3
  applyTo: '**'
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # AI Optimization
9
9
 
@@ -2,7 +2,7 @@
2
2
  applyTo: '**'
3
3
  ---
4
4
 
5
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
5
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
6
6
 
7
7
  # Coding Standards
8
8
 
@@ -13,7 +13,7 @@ applyTo: '**'
13
13
  3. **Leave code better than you found it** — fix adjacent issues when the cost is low.
14
14
  4. **Fail visibly** — surface errors clearly; never swallow exceptions silently.
15
15
  5. **Verify, don't trust** — confirm outcomes with tools (tests, lint, build) rather than assuming success.
16
- 6. **Log every session** — append observability records to `.github/customizations/logs/` before yielding to the user. No exceptions. Load the **observability-logging** skill for details.
16
+ 6. **Log every session** — append observability records to `.opencastle/logs/` before yielding to the user. No exceptions. Load the **observability-logging** skill for details.
17
17
 
18
18
  ## Instruction Priority Hierarchy
19
19
 
@@ -34,7 +34,7 @@ applyTo: '**'
34
34
 
35
35
  ## Technology Standards
36
36
 
37
- Load the corresponding skill for detailed conventions before writing code in that domain. These are **not optional**. See `.github/customizations/agents/skill-matrix.json` for the full domain-to-skill mapping.
37
+ Load the corresponding skill for detailed conventions before writing code in that domain. These are **not optional**. See `.opencastle/agents/skill-matrix.json` for the full domain-to-skill mapping.
38
38
 
39
39
  | Domain | Skill |
40
40
  |--------|-------|
@@ -90,7 +90,7 @@ See [ai-optimization.instructions.md](ai-optimization.instructions.md) for batch
90
90
 
91
91
  ## Project Context
92
92
 
93
- For project-specific context (apps, libraries, tech stack, ports, URLs), see [project.instructions.md](../customizations/project.instructions.md).
93
+ For project-specific context (apps, libraries, tech stack, ports, URLs), see [project.instructions.md](../.opencastle/project.instructions.md).
94
94
 
95
95
  ## Git Workflow
96
96
 
@@ -108,13 +108,13 @@ When you encounter a bug unrelated to the current task: check if already tracked
108
108
  > Do NOT respond to the user until you have appended the required log records.
109
109
  > A session without log records is a failed session — regardless of code quality.
110
110
 
111
- **Every agent MUST log every session** to `.github/customizations/logs/events.ndjson`. No exceptions. No threshold. No "too small to log." Load the **observability-logging** skill for CLI commands, record schemas, and the full logging checklist.
111
+ **Every agent MUST log every session** to `.opencastle/logs/events.ndjson`. No exceptions. No threshold. No "too small to log." Load the **observability-logging** skill for CLI commands, record schemas, and the full logging checklist.
112
112
 
113
113
  ## Self-Improvement Protocol
114
114
 
115
115
  > **⛔ HARD GATE — Lessons are the team's collective memory. Skipping them causes repeated failures.**
116
116
 
117
- 1. **Before starting work:** Read `.github/customizations/LESSONS-LEARNED.md` — apply relevant lessons proactively. This is NOT optional.
117
+ 1. **Before starting work:** Read `.opencastle/LESSONS-LEARNED.md` — apply relevant lessons proactively. This is NOT optional.
118
118
  2. **During execution:** If you retry with a different approach and it works, use the **self-improvement** skill to add a lesson immediately.
119
119
  3. **Update source files:** If the lesson reveals a gap in instruction/skill files, update those files too.
120
120
 
@@ -3,7 +3,7 @@ name: astro-framework
3
3
  description: "Astro framework best practices for content-driven sites, islands architecture, routing, integrations, and project structure. Use when creating or modifying Astro pages, layouts, components, or content collections."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Astro Framework
9
9
 
@@ -3,11 +3,11 @@ name: browser-testing
3
3
  description: "Chrome DevTools MCP automation patterns for validating UI changes in real browsers. Use when performing E2E browser testing, validating visual changes, testing user interactions, or debugging UI issues with Chrome DevTools."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Browser Testing with Chrome DevTools MCP
9
9
 
10
- Generic browser testing methodology using Chrome DevTools MCP. For project-specific test app, selectors, suites, and breakpoint config, see [testing-config.md](../../customizations/stack/testing-config.md).
10
+ Generic browser testing methodology using Chrome DevTools MCP. For project-specific test app, selectors, suites, and breakpoint config, see [testing-config.md](../../.opencastle/stack/testing-config.md).
11
11
 
12
12
  ## Purpose
13
13
 
@@ -21,7 +21,7 @@ After any UI change, validate in a real browser:
21
21
 
22
22
  ## Pre-Test Build Verification
23
23
 
24
- **CRITICAL: Always build before browser testing.** Testing stale code wastes time. See [testing-config.md](../../customizations/stack/testing-config.md) for the specific build and serve commands.
24
+ **CRITICAL: Always build before browser testing.** Testing stale code wastes time. See [testing-config.md](../../.opencastle/stack/testing-config.md) for the specific build and serve commands.
25
25
 
26
26
  ## Chrome MCP Tools Reference
27
27
 
@@ -85,7 +85,7 @@ mcp_chrome-devtoo_performance_analyze_insight({ insightSetId: 'set_id', insightN
85
85
 
86
86
  ### 1. Setup
87
87
 
88
- Start the dev server (see [testing-config.md](../../customizations/stack/testing-config.md) for app and port).
88
+ Start the dev server (see [testing-config.md](../../.opencastle/stack/testing-config.md) for app and port).
89
89
 
90
90
  ### 2. Initial State
91
91
 
@@ -3,11 +3,11 @@ name: contentful-cms
3
3
  description: "Contentful CMS development patterns, GraphQL/REST API usage, content modeling, and migration best practices. Use when working with Contentful content types, entries, assets, or the Management API."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Contentful CMS
9
9
 
10
- Generic Contentful CMS development methodology. For project-specific configuration, content types, and API keys, see [cms-config.md](../../customizations/stack/cms-config.md).
10
+ Generic Contentful CMS development methodology. For project-specific configuration, content types, and API keys, see [cms-config.md](../../.opencastle/stack/cms-config.md).
11
11
 
12
12
  ## Critical Development Rules
13
13
 
@@ -3,11 +3,11 @@ name: convex-database
3
3
  description: "Convex reactive database patterns, schema design, real-time queries, mutations, actions, and deployment best practices. Use when designing Convex schemas, writing queries/mutations, or managing the Convex backend."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Convex Database
9
9
 
10
- Generic Convex development methodology. For project-specific schema, functions, and deployment details, see [database-config.md](../../customizations/stack/database-config.md).
10
+ Generic Convex development methodology. For project-specific schema, functions, and deployment details, see [database-config.md](../../.opencastle/stack/database-config.md).
11
11
 
12
12
  ## Critical Development Rules
13
13
 
@@ -3,11 +3,11 @@ name: cypress-testing
3
3
  description: "Cypress E2E and component testing patterns, commands, selectors, and CI configuration. Use when writing E2E tests, component tests, or configuring Cypress in CI pipelines."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Cypress Testing
9
9
 
10
- Cypress-specific E2E and component testing patterns. For project-specific test configuration and breakpoints, see [testing-config.md](../../customizations/stack/testing-config.md).
10
+ Cypress-specific E2E and component testing patterns. For project-specific test configuration and breakpoints, see [testing-config.md](../../.opencastle/stack/testing-config.md).
11
11
 
12
12
  ## Commands
13
13
 
@@ -3,7 +3,7 @@ name: figma-design
3
3
  description: "Figma design-to-code workflows, design token extraction, component inspection, and asset export. Use when translating Figma designs into code, extracting design tokens, or referencing component specs."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Figma Design
9
9
 
@@ -3,11 +3,11 @@ name: jira-management
3
3
  description: "Jira board conventions for tracking feature work — issue naming, labels, priorities, status workflow, and session continuity via Atlassian Rovo MCP. Use when decomposing features into tasks or resuming interrupted sessions."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Task Management with Jira
9
9
 
10
- Conventions for tracking feature work on Jira via the Atlassian Rovo MCP server. For project-specific project keys, workflow state IDs, and board configuration, see [tracker-config.md](../../customizations/project/tracker-config.md).
10
+ Conventions for tracking feature work on Jira via the Atlassian Rovo MCP server. For project-specific project keys, workflow state IDs, and board configuration, see [tracker-config.md](../../.opencastle/project/tracker-config.md).
11
11
 
12
12
  ## Atlassian Rovo MCP Server
13
13
 
@@ -167,4 +167,4 @@ project = PROJ AND sprint in openSprints() ORDER BY priority DESC
167
167
  project = PROJ AND priority = Highest AND status != Done
168
168
  ```
169
169
 
170
- Replace `PROJ` with the actual project key from [tracker-config.md](../../customizations/project/tracker-config.md).
170
+ Replace `PROJ` with the actual project key from [tracker-config.md](../../.opencastle/project/tracker-config.md).
@@ -3,11 +3,11 @@ name: linear-task-management
3
3
  description: "Linear board conventions for tracking feature work — issue naming, labels, priorities, status workflow, and session continuity. Use when decomposing features into tasks or resuming interrupted sessions."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Task Management with Linear
9
9
 
10
- Conventions for tracking feature work on the Linear board via MCP tools. For project-specific team ID, workflow state UUIDs, and label UUIDs, see [tracker-config.md](../../customizations/project/tracker-config.md).
10
+ Conventions for tracking feature work on the Linear board via MCP tools. For project-specific team ID, workflow state UUIDs, and label UUIDs, see [tracker-config.md](../../.opencastle/project/tracker-config.md).
11
11
 
12
12
  ## Discovered Issues (Bug Tickets)
13
13
 
@@ -3,11 +3,11 @@ name: netlify-deployment
3
3
  description: "Netlify deployment workflows, serverless functions, edge functions, environment management, and build configuration. Use when deploying to Netlify, writing serverless/edge functions, or troubleshooting builds."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Netlify Deployment
9
9
 
10
- Netlify-specific deployment patterns and conventions. For project-specific deployment architecture, environment variables, and key files, see [deployment-config.md](../../customizations/stack/deployment-config.md).
10
+ Netlify-specific deployment patterns and conventions. For project-specific deployment architecture, environment variables, and key files, see [deployment-config.md](../../.opencastle/stack/deployment-config.md).
11
11
 
12
12
  ## Deployment Model
13
13
 
@@ -3,7 +3,7 @@ name: nextjs-framework
3
3
  description: "Next.js framework best practices covering App Router, server/client components, data fetching, caching, rendering strategies, middleware, configuration, and deployment. Use when creating or modifying Next.js pages, layouts, route handlers, Server Actions, or project configuration."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Next.js Framework
9
9
 
@@ -3,7 +3,7 @@ name: nx-workspace
3
3
  description: "NX monorepo commands, conventions, code generation, and task running patterns. Use when running builds, tests, linting, code generation, or any development commands."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # NX Workspace
9
9
 
@@ -3,11 +3,11 @@ name: playwright-testing
3
3
  description: "Playwright E2E testing patterns, cross-browser configuration, page objects, and CI setup. Use when writing E2E tests, visual regression tests, or configuring Playwright in CI pipelines."
4
4
  ---
5
5
 
6
- <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
7
 
8
8
  # Playwright Testing
9
9
 
10
- Playwright-specific E2E testing patterns. For project-specific test configuration and breakpoints, see [testing-config.md](../../customizations/stack/testing-config.md).
10
+ Playwright-specific E2E testing patterns. For project-specific test configuration and breakpoints, see [testing-config.md](../../.opencastle/stack/testing-config.md).
11
11
 
12
12
  ## Commands
13
13