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