opencastle 0.35.2 → 0.35.3

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 (85) hide show
  1. package/package.json +1 -1
  2. package/src/dashboard/dist/data/convoys/demo-api-v2.json +3 -3
  3. package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +4 -4
  4. package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +12 -12
  5. package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +9 -9
  6. package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +1 -1
  7. package/src/dashboard/dist/data/convoys/demo-docs-update.json +7 -7
  8. package/src/dashboard/dist/data/convoys/demo-perf-opt.json +4 -4
  9. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  10. package/src/dashboard/public/data/convoys/demo-api-v2.json +3 -3
  11. package/src/dashboard/public/data/convoys/demo-auth-revamp.json +4 -4
  12. package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +12 -12
  13. package/src/dashboard/public/data/convoys/demo-data-pipeline.json +9 -9
  14. package/src/dashboard/public/data/convoys/demo-deploy-ci.json +1 -1
  15. package/src/dashboard/public/data/convoys/demo-docs-update.json +7 -7
  16. package/src/dashboard/public/data/convoys/demo-perf-opt.json +4 -4
  17. package/src/orchestrator/agents/api-designer.agent.md +10 -10
  18. package/src/orchestrator/agents/architect.agent.md +8 -8
  19. package/src/orchestrator/agents/content-engineer.agent.md +5 -5
  20. package/src/orchestrator/agents/copywriter.agent.md +7 -7
  21. package/src/orchestrator/agents/data-expert.agent.md +9 -9
  22. package/src/orchestrator/agents/database-engineer.agent.md +7 -7
  23. package/src/orchestrator/agents/developer.agent.md +13 -13
  24. package/src/orchestrator/agents/devops-expert.agent.md +10 -10
  25. package/src/orchestrator/agents/documentation-writer.agent.md +8 -8
  26. package/src/orchestrator/agents/performance-expert.agent.md +9 -9
  27. package/src/orchestrator/agents/release-manager.agent.md +8 -8
  28. package/src/orchestrator/agents/researcher.agent.md +5 -5
  29. package/src/orchestrator/agents/reviewer.agent.md +5 -5
  30. package/src/orchestrator/agents/security-expert.agent.md +10 -10
  31. package/src/orchestrator/agents/seo-specialist.agent.md +11 -11
  32. package/src/orchestrator/agents/session-guard.agent.md +2 -2
  33. package/src/orchestrator/agents/team-lead.agent.md +4 -4
  34. package/src/orchestrator/agents/testing-expert.agent.md +7 -7
  35. package/src/orchestrator/agents/ui-ux-expert.agent.md +15 -15
  36. package/src/orchestrator/prompts/assess-complexity.prompt.md +8 -8
  37. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +17 -17
  38. package/src/orchestrator/prompts/brainstorm.prompt.md +17 -17
  39. package/src/orchestrator/prompts/bug-fix.prompt.md +11 -11
  40. package/src/orchestrator/prompts/create-skill.prompt.md +21 -21
  41. package/src/orchestrator/prompts/fix-convoy.prompt.md +8 -8
  42. package/src/orchestrator/prompts/fix-prd.prompt.md +12 -12
  43. package/src/orchestrator/prompts/generate-convoy.prompt.md +50 -50
  44. package/src/orchestrator/prompts/generate-prd.prompt.md +32 -32
  45. package/src/orchestrator/prompts/implement-feature.prompt.md +16 -16
  46. package/src/orchestrator/prompts/quick-refinement.prompt.md +18 -18
  47. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +9 -9
  48. package/src/orchestrator/prompts/validate-convoy.prompt.md +10 -10
  49. package/src/orchestrator/prompts/validate-prd.prompt.md +10 -10
  50. package/src/orchestrator/skills/accessibility-standards/SKILL.md +8 -8
  51. package/src/orchestrator/skills/agent-hooks/SKILL.md +1 -1
  52. package/src/orchestrator/skills/agent-memory/SKILL.md +11 -11
  53. package/src/orchestrator/skills/api-patterns/SKILL.md +5 -5
  54. package/src/orchestrator/skills/backbone-scaffolding/SKILL.md +24 -51
  55. package/src/orchestrator/skills/code-commenting/SKILL.md +3 -3
  56. package/src/orchestrator/skills/context-map/REFERENCE.md +2 -2
  57. package/src/orchestrator/skills/context-map/SKILL.md +5 -5
  58. package/src/orchestrator/skills/data-engineering/SKILL.md +12 -12
  59. package/src/orchestrator/skills/decomposition/SKILL.md +34 -7
  60. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +4 -4
  61. package/src/orchestrator/skills/documentation-standards/SKILL.md +7 -7
  62. package/src/orchestrator/skills/documentation-standards/WRITING-GUIDE.md +3 -3
  63. package/src/orchestrator/skills/fast-review/SKILL.md +2 -2
  64. package/src/orchestrator/skills/frontend-design/COMPONENTS.md +1 -1
  65. package/src/orchestrator/skills/frontend-design/SKILL.md +11 -11
  66. package/src/orchestrator/skills/git-workflow/SKILL.md +5 -5
  67. package/src/orchestrator/skills/memory-merger/SKILL.md +32 -8
  68. package/src/orchestrator/skills/observability-logging/SKILL.md +6 -11
  69. package/src/orchestrator/skills/orchestration-protocols/SKILL.md +15 -15
  70. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +4 -4
  71. package/src/orchestrator/skills/performance-optimization/SKILL.md +5 -5
  72. package/src/orchestrator/skills/project-consistency/SKILL.md +4 -4
  73. package/src/orchestrator/skills/react-development/SKILL.md +8 -8
  74. package/src/orchestrator/skills/security-hardening/SKILL.md +12 -12
  75. package/src/orchestrator/skills/self-improvement/SKILL.md +11 -11
  76. package/src/orchestrator/skills/seo-patterns/SKILL.md +49 -23
  77. package/src/orchestrator/skills/session-checkpoints/SKILL.md +12 -12
  78. package/src/orchestrator/skills/team-lead-reference/SKILL.md +6 -6
  79. package/src/orchestrator/skills/testing-workflow/SKILL.md +3 -3
  80. package/src/orchestrator/skills/validation-gates/SKILL.md +6 -6
  81. package/src/orchestrator/skills/backbone-scaffolding/EXAMPLES.md +0 -16
  82. package/src/orchestrator/skills/decomposition/REFERENCE.md +0 -28
  83. package/src/orchestrator/skills/memory-merger/REFERENCE.md +0 -20
  84. package/src/orchestrator/skills/react-development/REFERENCE.md +0 -7
  85. package/src/orchestrator/skills/seo-patterns/REFERENCE.md +0 -54
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: react-development
3
- description: "Enforces naming conventions, prop typing patterns, file structure, and test coverage standards. Use when creating or modifying React components, custom hooks, or component tests. Trigger terms: React app, .tsx files, testing library, custom hooks, functional components"
3
+ description: "Enforces React-specific patterns: functional components with hooks, TypeScript prop interfaces, CSS Modules co-location, React Testing Library behavioral tests. Use when creating React components, writing custom hooks, structuring component folders, applying RTL test patterns, or wiring TypeScript prop types. Trigger terms: React, .tsx, component, hook, RTL, jsx, useState, useEffect, prop interface"
4
4
  ---
5
5
 
6
6
  # React Development Standards
@@ -9,7 +9,7 @@ description: "Enforces naming conventions, prop typing patterns, file structure,
9
9
 
10
10
  ## New Component Workflow
11
11
 
12
- 1. **Create file** — `ComponentName.tsx` in the feature folder; co-locate `ComponentName.module.scss` and `ComponentName.test.tsx`
12
+ 1. **Create file** — `ComponentName.tsx` in feature folder; co-locate `ComponentName.module.scss`, `ComponentName.test.tsx`
13
13
  2. **Define interface** — export `ComponentNameProps` with TypeScript; destructure in function signature
14
14
  3. **Implement** — functional component with hooks; use CSS Modules for styling
15
15
  4. **Test** — RTL behavioral tests; cover render, interaction, edge cases, accessibility
@@ -17,7 +17,7 @@ description: "Enforces naming conventions, prop typing patterns, file structure,
17
17
 
18
18
  ## Architecture & Components (concise)
19
19
 
20
- - Functional components with hooks. Follow domain/feature folder structure and co-locate tests/styles with components.
20
+ - Functional components with hooks. Follow domain/feature folder structure; co-locate tests/styles with components.
21
21
  - PascalCase names; destructure props; use TypeScript interfaces for props.
22
22
 
23
23
  ```tsx
@@ -34,7 +34,7 @@ export function UserCard({ name, role }: UserCardProps) {
34
34
 
35
35
  ## TypeScript
36
36
 
37
- - Use interfaces for props and shared types; keep strict mode enabled in `tsconfig.json`. See [REFERENCE.md](REFERENCE.md) for detailed TypeScript patterns.
37
+ - Use interfaces for props, shared types; keep strict mode enabled in `tsconfig.json`. Generic constraints: `<T extends Record<string, unknown>>`. Discriminated unions for variant props. Avoid `as` casts.
38
38
 
39
39
  ## Styling
40
40
 
@@ -47,8 +47,8 @@ export function UserCard({ name, role }: UserCardProps) {
47
47
  ## Testing
48
48
 
49
49
  - React Testing Library (behavior, not implementation); Jest runner.
50
- - Co-locate tests next to components; mock external deps and API calls.
51
- - Test accessibility and keyboard navigation; verify component public surface via unit tests.
50
+ - Co-locate tests next to components; mock external deps, API calls.
51
+ - Test accessibility, keyboard navigation; verify component public surface via unit tests.
52
52
 
53
53
  ```tsx
54
54
  import { render, screen } from '@testing-library/react';
@@ -72,8 +72,8 @@ pnpm test # rerun failing tests with `pnpm test -- -t <name>`
72
72
  pnpm build # ensure production build succeeds
73
73
  ```
74
74
 
75
- If `lint` fails: run `pnpm lint --fix` and re-run. If `typecheck` fails: inspect reported files; add missing types. If tests fail: run with `--runInBand` to collect stack traces and reproduce locally.
75
+ If `lint` fails: run `pnpm lint --fix`; re-run. If `typecheck` fails: inspect reported files; add missing types. If tests fail: run with `--runInBand` to collect stack traces; reproduce locally.
76
76
 
77
77
  ## Security
78
78
 
79
- - Follow project conventions for input sanitization, secret handling, and CSP. See **api-patterns** for validation patterns.
79
+ - Sanitize user-supplied HTML before rendering (e.g. `dompurify`); never trust client validation alone — validate server-side. See **api-patterns** skill for server validation patterns.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: security-hardening
3
- description: "Security architecture including authentication, authorization, RLS policies, CSP, input validation, and API security. Use when implementing auth flows, writing RLS policies, configuring CSP/headers, validating inputs, or auditing security. Trigger terms: RLS, CSP, Server Actions, Zod, auth flow"
3
+ description: "Security architecture: authentication, authorization, RLS policies, CSP, input validation, API security. Use when implementing auth flows, writing RLS policies, configuring CSP/headers, validating inputs, or auditing security. Trigger terms: RLS, CSP, Server Actions, Zod, auth flow"
4
4
  ---
5
5
 
6
6
  # Security Hardening
@@ -33,7 +33,7 @@ Auth provider with Server Actions pattern. Resolve library via **database** capa
33
33
 
34
34
  ## CSP
35
35
 
36
- Principle of least privilege. External domains are project-specific (see deployment customization).
36
+ Least privilege. External domains are project-specific (see deployment customization).
37
37
 
38
38
  - `default-src 'self'` — deny by default
39
39
  - `object-src 'none'` — block plugins
@@ -43,7 +43,7 @@ Principle of least privilege. External domains are project-specific (see deploym
43
43
 
44
44
  **Note:** `'unsafe-inline'`/`'unsafe-eval'` may be required in dev mode — use nonces/hashes in production.
45
45
 
46
- **Examples** — Next.js `next.config.js` headers and middleware pattern:
46
+ **Examples** — Next.js `next.config.js` headers + middleware:
47
47
 
48
48
  ```js
49
49
  // next.config.js
@@ -97,7 +97,7 @@ WHERE relname = 'your_table_name';
97
97
 
98
98
  `relrowsecurity = true` indicates RLS enabled.
99
99
 
100
- 2. Test pattern: verify a user without privileges cannot read rows.
100
+ 2. Test pattern: verify user without privileges cannot read rows.
101
101
 
102
102
  ```sql
103
103
  -- As owner (create test row)
@@ -109,7 +109,7 @@ SELECT * FROM your_table_name WHERE id = 1;
109
109
  -- expected: 0 rows
110
110
  ```
111
111
 
112
- Automate this check in CI: run the enabling query and a simple positive/negative test as part of the security gate.
112
+ Automate this check in CI: run the enabling query + positive/negative test as part of the security gate.
113
113
 
114
114
  ## Server Action Zod example
115
115
 
@@ -141,7 +141,7 @@ if (!authHeader || authHeader !== `Bearer ${process.env.CRON_SECRET}`) {
141
141
 
142
142
  Generate secret: `openssl rand -hex 32`. Rotate quarterly.
143
143
 
144
- Input: Zod schemas in all Server Actions and route handlers; React Hook Form client-side.
144
+ Input: Zod schemas in all Server Actions, route handlers; React Hook Form client-side.
145
145
 
146
146
  ## Critical Rules
147
147
 
@@ -154,10 +154,10 @@ Input: Zod schemas in all Server Actions and route handlers; React Hook Form cli
154
154
  7. Rotate secrets quarterly.
155
155
 
156
156
  ## Implementation checklist
157
- 1. Enable RLS on tables and add an automated enablement check in CI (example: `SELECT relrowsecurity FROM pg_class WHERE relname = 'your_table'`).
158
- 2. Configure authentication and session middleware; verify via an integration smoke test against a protected endpoint (e.g., `/api/me`).
159
- 3. Add CSP and security headers in `next.config.js` or middleware; validate headers with `curl -I` against a preview URL.
160
- 4. Add Zod validation to all Server Actions and route handlers (see Zod example above).
161
- 5. Run a security audit (RLS positive/negative tests, header validation, and input fuzzing) and block merges on failing gates.
157
+ 1. Enable RLS on tables, add automated enablement check in CI (example: `SELECT relrowsecurity FROM pg_class WHERE relname = 'your_table'`).
158
+ 2. Configure authentication + session middleware; verify via integration smoke test against protected endpoint (e.g., `/api/me`).
159
+ 3. Add CSP + security headers in `next.config.js` or middleware; validate with `curl -I` against preview URL.
160
+ 4. Add Zod validation to all Server Actions, route handlers (see Zod example above).
161
+ 5. Run security audit (RLS positive/negative tests, header validation, input fuzzing); block merges on failing gates.
162
162
 
163
- Cross-reference: see [api-patterns/SKILL.md](../api-patterns/SKILL.md#architecture) for Server Action patterns and [session-checkpoints/SKILL.md](../session-checkpoints/SKILL.md) for checkpointing security-sensitive work.
163
+ Cross-reference: [api-patterns/SKILL.md](../api-patterns/SKILL.md#architecture) for Server Action patterns; [session-checkpoints/SKILL.md](../session-checkpoints/SKILL.md) for checkpointing security-sensitive work.
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: self-improvement
3
- description: "Appends new entries to LESSONS-LEARNED.md via the opencastle lesson CLI, searches past lessons for matching errors, and proposes skill updates when retry patterns exceed thresholds. Use when consulting or updating LESSONS-LEARNED.md, after task failures, when capturing retrospective insights, or when a retry succeeds."
3
+ description: "Appends new entries to LESSONS-LEARNED.md via opencastle lesson CLI; searches past lessons for matching errors; proposes skill updates when retry patterns exceed thresholds. Use when consulting or updating LESSONS-LEARNED.md, after task failures, when capturing retrospective insights, or when a retry succeeds."
4
4
  ---
5
5
 
6
6
  # Self-Improvement Protocol
7
7
 
8
8
  ## Core Rule
9
9
 
10
- **Retry with a different approach and it works → document the lesson immediately.** File: `.opencastle/LESSONS-LEARNED.md`
10
+ **Retry with different approach and it works → document lesson immediately.** File: `.opencastle/LESSONS-LEARNED.md`
11
11
 
12
12
  ## Writing a Lesson
13
13
 
@@ -21,16 +21,16 @@ opencastle lesson --title "Short descriptive title" --category general --severit
21
21
 
22
22
  Required: `--title`, `--category`, `--severity`, `--problem` · Optional: `--wrong`, `--correct`, `--why`
23
23
 
24
- After writing: if the lesson reveals a gap in a skill/instruction file, update that file too (prevents the pitfall at source).
24
+ After writing: if lesson reveals gap in skill/instruction file, update that file too (prevents pitfall at source).
25
25
 
26
26
  ## Workflow
27
27
 
28
28
  1. Search LESSONS-LEARNED.md for matching entries or similar errors.
29
- 2. Attempt the task with conservative flags/options informed by lessons.
30
- 3. On failure: retry with modified approach (up to threshold), capture error details and context.
31
- 4. On success: run `opencastle lesson` to record the working approach.
32
- 5. Verify: `tail -1 .opencastle/LESSONS-LEARNED.md` — confirm entry has title, category, and severity. If malformed → re-run with corrected flags.
33
- 6. If the lesson indicates a needed skill/instruction update: draft that change and propose a PR.
29
+ 2. Attempt task with conservative flags/options informed by lessons.
30
+ 3. On failure: retry with modified approach (up to threshold); capture error details, context.
31
+ 4. On success: run `opencastle lesson` to record working approach.
32
+ 5. Verify: `tail -1 .opencastle/LESSONS-LEARNED.md` — confirm entry has title, category, severity. If malformed → re-run with corrected flags.
33
+ 6. If lesson indicates needed skill/instruction update: draft change; propose a PR.
34
34
 
35
35
  Quick search example:
36
36
 
@@ -40,11 +40,11 @@ rg "missing CRON_SECRET" .opencastle/LESSONS-LEARNED.md || true
40
40
 
41
41
  ## Categories & Severity
42
42
 
43
- Category and severity tables moved to [LESSON-CATEGORIES.md](LESSON-CATEGORIES.md). Use that file when tagging lessons.
43
+ Category, severity tables moved to [LESSON-CATEGORIES.md](LESSON-CATEGORIES.md). Use that file when tagging lessons.
44
44
 
45
45
  ## Quality Rules
46
46
 
47
- - Include exact error messages, commands, and tool parameters
47
+ - Include exact error messages, commands, tool parameters
48
48
  - Show wrong **and** correct approaches — the contrast is actionable
49
49
  - Explain why (root cause)
50
50
  - One lesson per entry; code blocks mandatory for commands
@@ -55,4 +55,4 @@ Never skip reading lessons · Never fix without documenting · Never write vague
55
55
 
56
56
  ## Agent Memory
57
57
 
58
- For expertise tracking and cross-session knowledge graphs, load the **agent-memory** skill.
58
+ For expertise tracking, cross-session knowledge graphs, load **agent-memory** skill.
@@ -1,28 +1,27 @@
1
1
  ---
2
2
  name: seo-patterns
3
- description: "Implements technical SEO: meta tags, JSON-LD structured data, sitemaps, and crawlability fixes. Use when adding schema markup, JSON-LD, robots.txt updates, canonical URLs, Open Graph tags, or improving crawlability."
3
+ description: "Implements technical SEO: meta tags, JSON-LD structured data, sitemaps, crawlability fixes. Use when adding schema markup, JSON-LD, robots.txt updates, canonical URLs, Open Graph tags, or improving crawlability."
4
4
  ---
5
5
 
6
6
  # SEO Patterns
7
7
 
8
8
  ## Core Principles
9
9
 
10
- - Every public page MUST have a unique `<title>` and `<meta name="description">`.
11
- - Structured data MUST validate against Google's Rich Results Test before shipping.
12
- - Server-render all content critical for indexing.
13
- - Canonical URLs are mandatory on every page.
10
+ - Unique `<title>` + `<meta name="description">` per public page
11
+ - Structured data MUST pass Google's Rich Results Test before shipping
12
+ - Server-render indexable content; canonical URL on every page
14
13
 
15
14
  ## Implementation Workflow
16
15
 
17
- 1. Add meta tags and canonical URLs in server-rendered HTML.
18
- - Checkpoint: every page has unique `<title>` and `<meta name="description">`.
19
- 2. Add structured data (JSON-LD) for the page type and keep blocks server-rendered.
20
- - Checkpoint: Rich Results Test passes with zero errors.
21
- 3. Generate / update sitemap and reference it from `robots.txt`.
22
- - Checkpoint: sitemap URL present in `robots.txt` and accessible.
23
- 4. Verify robots.txt rules and ensure public pages are allowed.
24
- - Recovery: remove accidental `Disallow:` entries and re-submit sitemap.
25
- 5. Monitor Search Console for warnings and enhancement reports post-deploy.
16
+ 1. Add meta tags + canonical URLs in server-rendered HTML.
17
+ - Checkpoint: every page has unique `<title>` + description.
18
+ 2. Add JSON-LD for page type (server-rendered).
19
+ - Checkpoint: Rich Results Test 0 errors.
20
+ 3. Generate sitemap + reference from `robots.txt`.
21
+ - Checkpoint: sitemap URL accessible, listed in `robots.txt`.
22
+ 4. Verify `robots.txt` allows public pages.
23
+ - Recovery: remove accidental `Disallow:` entries; resubmit sitemap.
24
+ 5. Monitor Search Console for warnings post-deploy.
26
25
 
27
26
  ## Meta Tags & Open Graph
28
27
 
@@ -43,14 +42,38 @@ export const metadata: Metadata = {
43
42
  };
44
43
  ```
45
44
 
46
- **Checklist:** unique title (50-60 chars) · unique description (150-160 chars) · canonical URL · `og:title/description/image` (1200×630 px) · `og:type` · `twitter:card/title/image` · `noindex` only on admin/draft pages.
45
+ **Constraints:** title 5060 chars · description 150160 chars · OG image 1200×630 px · `noindex` only on admin/draft pages.
47
46
 
48
- ## Structured Data & Crawlability
49
- For structured data reference examples and detailed anti-patterns see [REFERENCE.md](./REFERENCE.md).
47
+ ## Structured Data (JSON-LD)
50
48
 
51
- - Generate XML sitemap dynamically from your data source (CMS, DB, filesystem).
52
- - Use a **sitemap index** when >50,000 URLs or >50 MB.
53
- - Include `<lastmod>` only if accurate; submit via Google Search Console and reference in `robots.txt`.
49
+ ```tsx
50
+ function StructuredData({ breadcrumbs, article }: Props) {
51
+ const breadcrumbLd = {
52
+ '@context': 'https://schema.org', '@type': 'BreadcrumbList',
53
+ itemListElement: breadcrumbs.map((crumb, i) => ({ '@type': 'ListItem', position: i + 1, name: crumb.label, item: crumb.url })),
54
+ };
55
+ const articleLd = {
56
+ '@context': 'https://schema.org', '@type': 'Article',
57
+ headline: article.title, description: article.summary,
58
+ image: article.imageUrl, datePublished: article.publishedAt,
59
+ dateModified: article.updatedAt, author: { '@type': 'Person', name: article.author },
60
+ };
61
+ return (
62
+ <>
63
+ <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbLd) }} />
64
+ <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(articleLd) }} />
65
+ </>
66
+ );
67
+ }
68
+ ```
69
+
70
+ **Validate:** `curl -s https://example.com/page | pup 'script[type=application/ld+json] text{}' | jq .` then run Google's Rich Results Test (https://search.google.com/test/rich-results).
71
+
72
+ ## Sitemap & robots.txt
73
+
74
+ - Generate XML sitemap dynamically from your data source (CMS, DB, filesystem)
75
+ - Use **sitemap index** when >50,000 URLs or >50 MB
76
+ - Include `<lastmod>` only if accurate
54
77
 
55
78
  ```txt
56
79
  User-agent: *
@@ -61,7 +84,10 @@ Disallow: /preview/
61
84
  Sitemap: https://example.com/sitemap.xml
62
85
  ```
63
86
 
64
- **Crawlability checklist:** robots.txt allows public pages · blocks admin/API/preview · XML sitemap auto-generated · referenced in robots.txt · no orphan pages · primary content in initial HTML · unique `<h1>` with keyword · structured data in SSR HTML · descriptive `alt` on images · no stray `noindex` · page load < 3s.
87
+ ## Anti-Patterns
65
88
 
66
- ## Anti-Patterns & Structured Data Reference
67
- See `REFERENCE.md` for detailed structured data examples, validation commands, and a trimmed anti-pattern checklist.
89
+ - Duplicate titles across pages
90
+ - Missing canonical URL duplicate content
91
+ - Client-only rendered primary content → not indexed
92
+ - Unvalidated structured data shipped to prod
93
+ - Page load >3s on mobile
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: session-checkpoints
3
- description: "Saves and restores session state including task progress, file changes, and delegation history. Use when saving progress, resuming interrupted work, picking up where you left off, or checkpointing current work."
3
+ description: "Saves, restores session state including task progress, file changes, delegation history. Use when saving progress, resuming interrupted work, picking up where you left off, or checkpointing current work."
4
4
  ---
5
5
 
6
6
  # Skill: Session Checkpoints
@@ -17,14 +17,14 @@ description: "Saves and restores session state including task progress, file cha
17
17
 
18
18
  ## Checkpoint Template
19
19
 
20
- The full checkpoint template has been moved to `CHECKPOINT-TEMPLATE.md` in this directory for progressive disclosure. Use that file as the canonical, copy-pasteable checkpoint document.
20
+ Full checkpoint template moved to `CHECKPOINT-TEMPLATE.md` in this directory for progressive disclosure. Use that file as canonical, copy-pasteable checkpoint document.
21
21
 
22
- See the Decomposition Flow in the `decomposition` skill for when to create checkpoints: [decomposition](../../skills/decomposition/SKILL.md).
22
+ See Decomposition Flow in `decomposition` skill for when to create checkpoints: [decomposition](../../skills/decomposition/SKILL.md).
23
23
  ## Checkpoint creation (quick)
24
24
 
25
- 1. Create `.opencastle/SESSION-CHECKPOINT.md` from the example below.
26
- 2. Commit checkpoint or save to workspace and attach to the tracker issue.
27
- 3. Verify: `cat .opencastle/SESSION-CHECKPOINT.md` and confirm listed files exist.
25
+ 1. Create `.opencastle/SESSION-CHECKPOINT.md` from example below.
26
+ 2. Commit checkpoint or save to workspace; attach to tracker issue.
27
+ 3. Verify: `cat .opencastle/SESSION-CHECKPOINT.md`; confirm listed files exist.
28
28
 
29
29
  ```markdown
30
30
  # Session Checkpoint — 2026-04-01
@@ -48,20 +48,20 @@ Implementing search filters — unit tests passing, E2E pending.
48
48
  3. Continue TASK-13: write E2E tests for filter interactions
49
49
  ```
50
50
 
51
- For the complete copy-pasteable template, see [CHECKPOINT-TEMPLATE.md](./CHECKPOINT-TEMPLATE.md).
51
+ For complete copy-pasteable template, see [CHECKPOINT-TEMPLATE.md](./CHECKPOINT-TEMPLATE.md).
52
52
 
53
53
  ## Resuming
54
54
 
55
55
  1. Read `.opencastle/SESSION-CHECKPOINT.md`
56
- 2. Run `git status` and `git branch` — confirm you are on the correct branch
56
+ 2. Run `git status`, `git branch` — confirm you are on correct branch
57
57
  3. Check In Progress tasks — if stale (>1 session old), verify files match expected state
58
58
  4. Check Pending Approvals — remove rows for questions answered via VS Code chat
59
- 5. Read tracker issues for any tasks marked In Progress or Todo
60
- 6. Follow the Resume Instructions section in the checkpoint
59
+ 5. Read tracker issues for tasks marked In Progress or Todo
60
+ 6. Follow Resume Instructions section in checkpoint
61
61
  7. Update checkpoint progress after each completed task
62
62
 
63
- **If checkpoint is missing or corrupt:** Rebuild from `git log --oneline -20` and tracker state.
63
+ **If checkpoint missing or corrupt:** Rebuild from `git log --oneline -20`, tracker state.
64
64
 
65
65
  ## Cleanup & Team Lead
66
66
 
67
- When all issues Done: archive to tracker, delete `.opencastle/SESSION-CHECKPOINT.md`.
67
+ When all issues Done: archive to tracker; delete `.opencastle/SESSION-CHECKPOINT.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: team-lead-reference
3
- description: "Provides model routing rules, validates delegation prerequisites, supplies cost tracking templates, and defines dead-letter queue formats for Team Lead orchestration. Load when assigning tasks to agents, choosing model tiers, starting a delegation session, running a multi-agent workflow, delegating work, choosing which model to use, or assigning tasks."
3
+ description: "Provides model routing rules, validates delegation prerequisites, supplies cost tracking templates, defines dead-letter queue formats for Team Lead orchestration. Load when assigning tasks to agents, choosing model tiers, starting delegation session, running multi-agent workflow, delegating work, choosing which model to use, or assigning tasks."
4
4
  ---
5
5
 
6
6
  # Team Lead Reference
@@ -15,7 +15,7 @@ description: "Provides model routing rules, validates delegation prerequisites,
15
15
  6. **Handle** output per Status Handling table
16
16
  7. **Log** via **observability-logging** skill
17
17
 
18
- For the specialist agent registry and model assignments, see [agent-registry.md](../../.opencastle/agents/agent-registry.md).
18
+ For specialist agent registry, model assignments, see [agent-registry.md](../../.opencastle/agents/agent-registry.md).
19
19
 
20
20
  ## Cost-Aware Model Routing
21
21
 
@@ -56,7 +56,7 @@ For the specialist agent registry and model assignments, see [agent-registry.md]
56
56
  | 3–5 subtasks, mixed | Quick deepen — single Researcher sub-agent |
57
57
  | 6+ subtasks, unfamiliar | Full deepen — parallel Researcher sub-agents |
58
58
 
59
- **Quick deepen:** Fire one Researcher for exact file paths & line numbers, patterns to follow (file:line examples), relevant lessons from `LESSONS-LEARNED.md`, and risks/blockers per subtask.
59
+ **Quick deepen:** Fire one Researcher for exact file paths & line numbers, patterns to follow (file:line examples), relevant lessons from `LESSONS-LEARNED.md`, risks/blockers per subtask.
60
60
  **Full deepen:** Split by domain into parallel Researchers. See [agent-registry.md](../../.opencastle/agents/agent-registry.md) for scope examples.
61
61
 
62
62
  | Field | Before Deepen | After Deepen |
@@ -79,8 +79,8 @@ For the specialist agent registry and model assignments, see [agent-registry.md]
79
79
  ## Pre-Delegation Policy Checks
80
80
 
81
81
  1. Tracker issue exists for this task
82
- 2. File partition is clean (no overlap with parallel agents)
83
- 3. All dependency tasks are Done
82
+ 2. File partition clean (no overlap with parallel agents)
83
+ 3. All dependency tasks Done
84
84
  4. Delegation prompt has file paths + acceptance criteria
85
85
  5. Self-improvement reminder included (`Read LESSONS-LEARNED.md first`)
86
86
 
@@ -115,7 +115,7 @@ Entry (`DLQ-XXX: Short description`): **Date**, **Agent**, **Tracker Issue**, **
115
115
 
116
116
  ## Error Recovery
117
117
 
118
- For common failure modes and recovery procedures, load the **orchestration-protocols** skill.
118
+ For common failure modes, recovery procedures, load **orchestration-protocols** skill.
119
119
 
120
120
  ## Dispute Protocol
121
121
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testing-workflow
3
- description: "Generates test plans, writes unit/integration/E2E test files, identifies coverage gaps, and flags common testing anti-patterns. Use when writing tests, creating test suites, planning test strategies, mocking dependencies, measuring code coverage, or test planning."
3
+ description: "Generates test plans, writes unit/integration/E2E test files, identifies coverage gaps, flags common testing anti-patterns. Use when writing tests, creating test suites, planning test strategies, mocking dependencies, measuring code coverage, or test planning."
4
4
  ---
5
5
 
6
6
  # Testing Workflow
@@ -16,7 +16,7 @@ description: "Generates test plans, writes unit/integration/E2E test files, iden
16
16
  ## Core Rules
17
17
 
18
18
  - Validate every feature: happy paths, edge cases, error conditions, interactions.
19
- - **Mandatory**: Test in browser via the **e2e-testing** capability slot before marking complete.
19
+ - **Mandatory**: Test in browser via **e2e-testing** capability slot before marking complete.
20
20
 
21
21
  ## E2E Context Limits
22
22
 
@@ -53,7 +53,7 @@ Suite files: see `.opencastle/project.instructions.md`.
53
53
 
54
54
  | Anti-Pattern | Correct Approach |
55
55
  |---|---|
56
- | Testing only initial page load | Test filter changes and different results |
56
+ | Testing only initial page load | Test filter changes, different results |
57
57
  | Assuming filters work because they render | Verify each option changes results |
58
58
  | Client-side only | Verify server requests are triggered |
59
59
  | Single scenario | Test urban, rural, edge, out-of-range |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: validation-gates
3
- description: "Defines 10 sequential validation gates: secret scanning, lint/test/build checks, blast radius analysis, dependency auditing, browser testing, cache management, regression checks, and smoke tests. Use when running pre-deploy validation or CI checks, CI/CD pipelines, deployment pipeline validation, pre-merge checks, continuous integration, or pull request validation."
3
+ description: "Defines 10 sequential validation gates: secret scanning, lint/test/build checks, blast radius analysis, dependency auditing, browser testing, cache management, regression checks, smoke tests. Use when running pre-deploy validation or CI checks, CI/CD pipelines, deployment pipeline validation, pre-merge checks, continuous integration, or pull request validation."
4
4
  ---
5
5
 
6
6
  # Validation Gates
@@ -28,7 +28,7 @@ Example tool: `gitleaks detect --source . --verbosity warn` (or CI equivalent)
28
28
 
29
29
  ## Gate 2: Deterministic Checks
30
30
 
31
- Run for every affected project (resolve exact commands via the **codebase-tool** skill): lint (with auto-fix), test, build. All must pass with zero errors.
31
+ Run for every affected project (resolve exact commands via **codebase-tool** skill): lint (with auto-fix), test, build. All must pass with zero errors.
32
32
 
33
33
  Example (project with npm scripts):
34
34
 
@@ -59,7 +59,7 @@ npm run lint && npm test --silent && npm run build
59
59
  | Vulnerability | `npm audit --audit-level=moderate` | No new high/critical | BLOCK — use patched version or alternative |
60
60
  | Bundle size | `npx source-map-explorer dist/*.js` or `npx bundlesize` | Frontend pkgs ≤50KB gzipped (project policy) | SHOULD-FIX; blocking if >200KB |
61
61
 
62
- See [REFERENCE.md](REFERENCE.md) for the full dependency-audit checklist (license, duplicates, maintenance, and additional checks).
62
+ See [REFERENCE.md](REFERENCE.md) for full dependency-audit checklist (license, duplicates, maintenance, additional checks).
63
63
 
64
64
  ## Gate 5: Fast Review
65
65
 
@@ -83,8 +83,8 @@ Additional options: see [REFERENCE.md](REFERENCE.md).
83
83
  ## Gate 8: Regression Testing
84
84
 
85
85
  1. `npm test -- --runInBand` for all affected projects
86
- 2. Browser-test adjacent pages (navigation, routing, back-button). Identify adjacent pages by searching for route imports or links to the changed path (e.g., `rg "href=\"/changed-path|import .*from '@/components/changed'"`).
87
- 3. Check consuming apps / packages that import the changed files: search the repo for the component or package name (e.g., `rg "from '@/components/PriceRange'|@my-org/ui-package"`) and run their tests or quick smoke builds.
86
+ 2. Browser-test adjacent pages (navigation, routing, back-button). Identify adjacent pages by searching for route imports or links to changed path (e.g., `rg "href=\"/changed-path|import .*from '@/components/changed'"`).
87
+ 3. Check consuming apps / packages importing changed files: search repo for component or package name (e.g., `rg "from '@/components/PriceRange'|@my-org/ui-package"`) and run their tests or quick smoke builds.
88
88
 
89
89
  ## Gate 9: Panel Review
90
90
 
@@ -102,4 +102,4 @@ runSubagent({ agentName: 'Reviewer', prompt: `Panel review 1/3: ${criteria}` });
102
102
  npm run build && npm test && npx playwright test
103
103
  ```
104
104
 
105
- Full build + test from clean state → E2E browser walkthrough → cross-task integration check → responsive sweep (if UI). On failure: re-delegate the specific failing integration only.
105
+ Full build + test from clean state → E2E browser walkthrough → cross-task integration check → responsive sweep (if UI). On failure: re-delegate specific failing integration only.
@@ -1,16 +0,0 @@
1
- # backbone-scaffolding Examples
2
-
3
- ## Convoy Scaffolding Task
4
-
5
- ```json
6
- {
7
- "id": "scaffolding",
8
- "description": "Scaffold monorepo with backbone CLI",
9
- "agent": "developer",
10
- "complexity": 2,
11
- "prompt": "Scaffold the project monorepo using the backbone CLI. Ensure Node.js >= 22.5.0 is available. Run: `npx @monkilabs/backbone my-project` and select the following options when prompted:\n- Monorepo: Turborepo\n- Framework: Next.js\n- Backend: Supabase\n- CMS: Sanity\n- Testing: Playwright\n- Deployment: Vercel\n- Mobile: None\n- Packages: Email Library, LLM Library\n- Payments: Stripe\n- Observability: Sentry\n\nAfter scaffolding completes, run `npm install` in the generated `my-project/` directory. Then run `npx turbo build` and verify it exits 0.",
12
- "files": ["my-project/"]
13
- }
14
- ```
15
-
16
- All subsequent tasks should declare `depends_on: ["scaffolding"]` and build on the generated structure.
@@ -1,28 +0,0 @@
1
- > Parent: [SKILL.md](./SKILL.md)
2
-
3
- # Delegation Spec — Full Template
4
-
5
- ## Delegation Spec: [Task Title]
6
- **Tracker Issue:** TAS-XX — [Title]
7
- **Complexity:** [score]/13 → [tier] tier
8
- **Agent:** [Agent Name]
9
-
10
- ### Objective
11
- 1-3 sentences: what to build/change and why.
12
-
13
- ### Context
14
- - Key files: [list]
15
- - Related patterns: [file:line references]
16
- - Prior phase output: [compacted summary if applicable]
17
- - Relevant lessons: [LES-XXX from LESSONS-LEARNED.md]
18
-
19
- ### Constraints
20
- - File partition: Only modify files under [paths]
21
- - Do NOT modify: [explicit exclusions]
22
- - Dependencies: Requires [TAS-XX] Done first
23
-
24
- ### Acceptance Criteria
25
- - [ ] Criterion 1
26
-
27
- ### Expected Output
28
- Files changed · Verification (lint/test/build) · AC status (✅/❌) · Discovered issues · Lessons applied
@@ -1,20 +0,0 @@
1
- > Parent: [SKILL.md](./SKILL.md)
2
-
3
- ## Memory Merger Reference
4
-
5
- ### Worked Example: LES-042 — MCP Tool Timeout
6
-
7
- **Lesson:** `LES-042: MCP tool timeout causes silent failures — always set explicit timeout and check return value` (cited 4×, severity high, 90 days old)
8
-
9
- **Draft:**
10
- ```
11
- Lesson: LES-042 — MCP tool timeout
12
- Target: .github/skills/orchestration-protocols/SKILL.md
13
- Section: Error Recovery Playbook
14
- Edit: Add row: | **MCP timeout** | Tool returns null/undefined after delay | Set explicit timeout (30s); check return value; retry once; fall back to CLI; log to DLQ | <!-- Merged from LES-042 -->
15
- ```
16
-
17
- **After merge in target file**, archive in LESSONS-LEARNED.md:
18
- ```markdown
19
- ### LES-042: MCP tool timeout → Merged to `.github/skills/orchestration-protocols/SKILL.md` on 2026-03-15
20
- ```
@@ -1,7 +0,0 @@
1
- > Parent: [SKILL.md](./SKILL.md)
2
-
3
- Reference materials for React development guidance.
4
-
5
- - See `src/orchestrator/skills/react-development/SKILL.md` for concise rules and quick examples.
6
-
7
- Examples, deep-dive topics, and extended patterns (performance, forms, advanced typing) live here when needed.
@@ -1,54 +0,0 @@
1
- > Parent: [SKILL.md](./SKILL.md)
2
-
3
- # SEO Reference: Structured Data & Anti-Patterns
4
-
5
- ## Structured Data Examples (JSON-LD)
6
-
7
- ### Breadcrumb + Article example
8
-
9
- ```tsx
10
- function StructuredData({ breadcrumbs, article }: Props) {
11
- const breadcrumbLd = {
12
- '@context': 'https://schema.org', '@type': 'BreadcrumbList',
13
- itemListElement: breadcrumbs.map((crumb, i) => ({ '@type': 'ListItem', position: i + 1, name: crumb.label, item: crumb.url })),
14
- };
15
- const articleLd = {
16
- '@context': 'https://schema.org', '@type': 'Article',
17
- headline: article.title, description: article.summary,
18
- image: article.imageUrl, datePublished: article.publishedAt,
19
- dateModified: article.updatedAt, author: { '@type': 'Person', name: article.author },
20
- };
21
- return (
22
- <>
23
- <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbLd) }} />
24
- <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(articleLd) }} />
25
- </>
26
- );
27
- }
28
- ```
29
-
30
- ### FAQPage example (minimal)
31
-
32
- ```json
33
- {
34
- "@context": "https://schema.org",
35
- "@type": "FAQPage",
36
- "mainEntity": [
37
- { "@type": "Question", "name": "Q?", "acceptedAnswer": { "@type": "Answer", "text": "A." } }
38
- ]
39
- }
40
- ```
41
-
42
- ## Validation
43
-
44
- - Validate with Google's Rich Results Test: https://search.google.com/test/rich-results
45
- - CLI quick-check: `curl -s https://example.com/page | pup 'script[type=application/ld+json] text{}'` then `jq .`
46
-
47
- ## Anti-Patterns (trimmed)
48
-
49
- - Duplicate titles across pages — produce unique, descriptive titles.
50
- - Missing canonical URLs — add `<link rel="canonical">` to avoid duplicate content.
51
- - Client-only rendered primary content — server-render or prerender indexable content.
52
- - Unvalidated structured data — validate before merge and include tests in PRs.
53
-
54
- Last Updated: 2026-03-31