opencastle 0.1.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 (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +215 -0
  3. package/bin/cli.mjs +69 -0
  4. package/dist/cli/adapters/claude-code.d.ts +22 -0
  5. package/dist/cli/adapters/claude-code.d.ts.map +1 -0
  6. package/dist/cli/adapters/claude-code.js +237 -0
  7. package/dist/cli/adapters/claude-code.js.map +1 -0
  8. package/dist/cli/adapters/cursor.d.ts +20 -0
  9. package/dist/cli/adapters/cursor.d.ts.map +1 -0
  10. package/dist/cli/adapters/cursor.js +231 -0
  11. package/dist/cli/adapters/cursor.js.map +1 -0
  12. package/dist/cli/adapters/vscode.d.ts +20 -0
  13. package/dist/cli/adapters/vscode.d.ts.map +1 -0
  14. package/dist/cli/adapters/vscode.js +132 -0
  15. package/dist/cli/adapters/vscode.js.map +1 -0
  16. package/dist/cli/copy.d.ts +14 -0
  17. package/dist/cli/copy.d.ts.map +1 -0
  18. package/dist/cli/copy.js +62 -0
  19. package/dist/cli/copy.js.map +1 -0
  20. package/dist/cli/dashboard.d.ts +3 -0
  21. package/dist/cli/dashboard.d.ts.map +1 -0
  22. package/dist/cli/dashboard.js +183 -0
  23. package/dist/cli/dashboard.js.map +1 -0
  24. package/dist/cli/diff.d.ts +3 -0
  25. package/dist/cli/diff.d.ts.map +1 -0
  26. package/dist/cli/diff.js +27 -0
  27. package/dist/cli/diff.js.map +1 -0
  28. package/dist/cli/eject.d.ts +3 -0
  29. package/dist/cli/eject.d.ts.map +1 -0
  30. package/dist/cli/eject.js +27 -0
  31. package/dist/cli/eject.js.map +1 -0
  32. package/dist/cli/init.d.ts +3 -0
  33. package/dist/cli/init.d.ts.map +1 -0
  34. package/dist/cli/init.js +92 -0
  35. package/dist/cli/init.js.map +1 -0
  36. package/dist/cli/manifest.d.ts +14 -0
  37. package/dist/cli/manifest.d.ts.map +1 -0
  38. package/dist/cli/manifest.js +34 -0
  39. package/dist/cli/manifest.js.map +1 -0
  40. package/dist/cli/mcp.d.ts +14 -0
  41. package/dist/cli/mcp.d.ts.map +1 -0
  42. package/dist/cli/mcp.js +35 -0
  43. package/dist/cli/mcp.js.map +1 -0
  44. package/dist/cli/prompt.d.ts +12 -0
  45. package/dist/cli/prompt.d.ts.map +1 -0
  46. package/dist/cli/prompt.js +104 -0
  47. package/dist/cli/prompt.js.map +1 -0
  48. package/dist/cli/run/adapters/claude-code.d.ts +16 -0
  49. package/dist/cli/run/adapters/claude-code.d.ts.map +1 -0
  50. package/dist/cli/run/adapters/claude-code.js +82 -0
  51. package/dist/cli/run/adapters/claude-code.js.map +1 -0
  52. package/dist/cli/run/adapters/copilot.d.ts +16 -0
  53. package/dist/cli/run/adapters/copilot.d.ts.map +1 -0
  54. package/dist/cli/run/adapters/copilot.js +84 -0
  55. package/dist/cli/run/adapters/copilot.js.map +1 -0
  56. package/dist/cli/run/adapters/cursor.d.ts +16 -0
  57. package/dist/cli/run/adapters/cursor.d.ts.map +1 -0
  58. package/dist/cli/run/adapters/cursor.js +81 -0
  59. package/dist/cli/run/adapters/cursor.js.map +1 -0
  60. package/dist/cli/run/adapters/index.d.ts +14 -0
  61. package/dist/cli/run/adapters/index.d.ts.map +1 -0
  62. package/dist/cli/run/adapters/index.js +35 -0
  63. package/dist/cli/run/adapters/index.js.map +1 -0
  64. package/dist/cli/run/executor.d.ts +15 -0
  65. package/dist/cli/run/executor.d.ts.map +1 -0
  66. package/dist/cli/run/executor.js +249 -0
  67. package/dist/cli/run/executor.js.map +1 -0
  68. package/dist/cli/run/reporter.d.ts +10 -0
  69. package/dist/cli/run/reporter.d.ts.map +1 -0
  70. package/dist/cli/run/reporter.js +112 -0
  71. package/dist/cli/run/reporter.js.map +1 -0
  72. package/dist/cli/run/schema.d.ts +28 -0
  73. package/dist/cli/run/schema.d.ts.map +1 -0
  74. package/dist/cli/run/schema.js +511 -0
  75. package/dist/cli/run/schema.js.map +1 -0
  76. package/dist/cli/run.d.ts +6 -0
  77. package/dist/cli/run.d.ts.map +1 -0
  78. package/dist/cli/run.js +123 -0
  79. package/dist/cli/run.js.map +1 -0
  80. package/dist/cli/stack-config.d.ts +12 -0
  81. package/dist/cli/stack-config.d.ts.map +1 -0
  82. package/dist/cli/stack-config.js +146 -0
  83. package/dist/cli/stack-config.js.map +1 -0
  84. package/dist/cli/types.d.ts +169 -0
  85. package/dist/cli/types.d.ts.map +1 -0
  86. package/dist/cli/types.js +2 -0
  87. package/dist/cli/types.js.map +1 -0
  88. package/dist/cli/update.d.ts +3 -0
  89. package/dist/cli/update.d.ts.map +1 -0
  90. package/dist/cli/update.js +50 -0
  91. package/dist/cli/update.js.map +1 -0
  92. package/package.json +48 -0
  93. package/src/cli/adapters/claude-code.ts +287 -0
  94. package/src/cli/adapters/cursor.ts +377 -0
  95. package/src/cli/adapters/vscode.ts +168 -0
  96. package/src/cli/copy.ts +79 -0
  97. package/src/cli/dashboard.ts +225 -0
  98. package/src/cli/diff.ts +44 -0
  99. package/src/cli/eject.ts +39 -0
  100. package/src/cli/init.ts +120 -0
  101. package/src/cli/manifest.ts +45 -0
  102. package/src/cli/mcp.ts +49 -0
  103. package/src/cli/prompt.ts +115 -0
  104. package/src/cli/run/adapters/claude-code.ts +95 -0
  105. package/src/cli/run/adapters/copilot.ts +97 -0
  106. package/src/cli/run/adapters/cursor.ts +94 -0
  107. package/src/cli/run/adapters/index.ts +40 -0
  108. package/src/cli/run/executor.ts +292 -0
  109. package/src/cli/run/reporter.ts +129 -0
  110. package/src/cli/run/schema.ts +595 -0
  111. package/src/cli/run.ts +137 -0
  112. package/src/cli/stack-config.ts +180 -0
  113. package/src/cli/types.ts +207 -0
  114. package/src/cli/update.ts +75 -0
  115. package/src/dashboard/astro.config.mjs +6 -0
  116. package/src/dashboard/package-lock.json +5455 -0
  117. package/src/dashboard/package.json +14 -0
  118. package/src/dashboard/public/data/delegations.ndjson +35 -0
  119. package/src/dashboard/public/data/panels.ndjson +13 -0
  120. package/src/dashboard/public/data/sessions.ndjson +50 -0
  121. package/src/dashboard/public/icon-192.png +0 -0
  122. package/src/dashboard/scripts/generate-seed-data.ts +355 -0
  123. package/src/dashboard/src/layouts/Layout.astro +25 -0
  124. package/src/dashboard/src/pages/index.astro +1070 -0
  125. package/src/dashboard/src/styles/dashboard.css +1078 -0
  126. package/src/dashboard/tsconfig.json +6 -0
  127. package/src/orchestrator/agent-workflows/README.md +22 -0
  128. package/src/orchestrator/agent-workflows/bug-fix.md +128 -0
  129. package/src/orchestrator/agent-workflows/data-pipeline.md +145 -0
  130. package/src/orchestrator/agent-workflows/database-migration.md +159 -0
  131. package/src/orchestrator/agent-workflows/feature-implementation.md +223 -0
  132. package/src/orchestrator/agent-workflows/performance-optimization.md +125 -0
  133. package/src/orchestrator/agent-workflows/refactoring.md +142 -0
  134. package/src/orchestrator/agent-workflows/schema-changes.md +164 -0
  135. package/src/orchestrator/agent-workflows/security-audit.md +148 -0
  136. package/src/orchestrator/agent-workflows/shared-delivery-phase.md +33 -0
  137. package/src/orchestrator/agents/api-designer.agent.md +68 -0
  138. package/src/orchestrator/agents/architect.agent.md +129 -0
  139. package/src/orchestrator/agents/content-engineer.agent.md +57 -0
  140. package/src/orchestrator/agents/copywriter.agent.md +95 -0
  141. package/src/orchestrator/agents/data-expert.agent.md +63 -0
  142. package/src/orchestrator/agents/database-engineer.agent.md +62 -0
  143. package/src/orchestrator/agents/developer.agent.md +66 -0
  144. package/src/orchestrator/agents/devops-expert.agent.md +57 -0
  145. package/src/orchestrator/agents/documentation-writer.agent.md +60 -0
  146. package/src/orchestrator/agents/performance-expert.agent.md +58 -0
  147. package/src/orchestrator/agents/release-manager.agent.md +72 -0
  148. package/src/orchestrator/agents/researcher.agent.md +145 -0
  149. package/src/orchestrator/agents/reviewer.agent.md +62 -0
  150. package/src/orchestrator/agents/security-expert.agent.md +64 -0
  151. package/src/orchestrator/agents/seo-specialist.agent.md +67 -0
  152. package/src/orchestrator/agents/team-lead.agent.md +644 -0
  153. package/src/orchestrator/agents/testing-expert.agent.md +85 -0
  154. package/src/orchestrator/agents/ui-ux-expert.agent.md +63 -0
  155. package/src/orchestrator/copilot-instructions.md +3 -0
  156. package/src/orchestrator/customizations/AGENT-EXPERTISE.md +325 -0
  157. package/src/orchestrator/customizations/AGENT-FAILURES.md +69 -0
  158. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +58 -0
  159. package/src/orchestrator/customizations/DISPUTES.md +162 -0
  160. package/src/orchestrator/customizations/KNOWLEDGE-GRAPH.md +10 -0
  161. package/src/orchestrator/customizations/LESSONS-LEARNED.md +70 -0
  162. package/src/orchestrator/customizations/README.md +59 -0
  163. package/src/orchestrator/customizations/agents/agent-registry.md +46 -0
  164. package/src/orchestrator/customizations/agents/skill-matrix.md +142 -0
  165. package/src/orchestrator/customizations/logs/README.md +181 -0
  166. package/src/orchestrator/customizations/logs/delegations.ndjson +1 -0
  167. package/src/orchestrator/customizations/logs/panels.ndjson +1 -0
  168. package/src/orchestrator/customizations/logs/sessions.ndjson +1 -0
  169. package/src/orchestrator/customizations/project/docs-structure.md +23 -0
  170. package/src/orchestrator/customizations/project/tracker-config.md +45 -0
  171. package/src/orchestrator/customizations/project.instructions.md +64 -0
  172. package/src/orchestrator/customizations/stack/api-config.md +37 -0
  173. package/src/orchestrator/customizations/stack/cms-config.md +26 -0
  174. package/src/orchestrator/customizations/stack/data-pipeline-config.md +41 -0
  175. package/src/orchestrator/customizations/stack/database-config.md +44 -0
  176. package/src/orchestrator/customizations/stack/deployment-config.md +45 -0
  177. package/src/orchestrator/customizations/stack/testing-config.md +56 -0
  178. package/src/orchestrator/instructions/ai-optimization.instructions.md +143 -0
  179. package/src/orchestrator/instructions/general.instructions.md +194 -0
  180. package/src/orchestrator/mcp.json +55 -0
  181. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +235 -0
  182. package/src/orchestrator/prompts/brainstorm.prompt.md +115 -0
  183. package/src/orchestrator/prompts/bug-fix.prompt.md +141 -0
  184. package/src/orchestrator/prompts/create-skill.prompt.md +103 -0
  185. package/src/orchestrator/prompts/generate-task-spec.prompt.md +154 -0
  186. package/src/orchestrator/prompts/implement-feature.prompt.md +124 -0
  187. package/src/orchestrator/prompts/metrics-report.prompt.md +142 -0
  188. package/src/orchestrator/prompts/quick-refinement.prompt.md +137 -0
  189. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +100 -0
  190. package/src/orchestrator/skills/accessibility-standards/SKILL.md +164 -0
  191. package/src/orchestrator/skills/agent-hooks/SKILL.md +147 -0
  192. package/src/orchestrator/skills/agent-memory/SKILL.md +144 -0
  193. package/src/orchestrator/skills/api-patterns/SKILL.md +106 -0
  194. package/src/orchestrator/skills/browser-testing/SKILL.md +203 -0
  195. package/src/orchestrator/skills/code-commenting/SKILL.md +133 -0
  196. package/src/orchestrator/skills/contentful-cms/SKILL.md +43 -0
  197. package/src/orchestrator/skills/context-map/SKILL.md +135 -0
  198. package/src/orchestrator/skills/convex-database/SKILL.md +80 -0
  199. package/src/orchestrator/skills/data-engineering/SKILL.md +99 -0
  200. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +49 -0
  201. package/src/orchestrator/skills/documentation-standards/SKILL.md +85 -0
  202. package/src/orchestrator/skills/fast-review/SKILL.md +327 -0
  203. package/src/orchestrator/skills/frontend-design/SKILL.md +42 -0
  204. package/src/orchestrator/skills/jira-management/SKILL.md +168 -0
  205. package/src/orchestrator/skills/memory-merger/SKILL.md +123 -0
  206. package/src/orchestrator/skills/nextjs-patterns/SKILL.md +75 -0
  207. package/src/orchestrator/skills/nx-workspace/SKILL.md +192 -0
  208. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +184 -0
  209. package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +38 -0
  210. package/src/orchestrator/skills/performance-optimization/SKILL.md +101 -0
  211. package/src/orchestrator/skills/react-development/SKILL.md +117 -0
  212. package/src/orchestrator/skills/sanity-cms/SKILL.md +18 -0
  213. package/src/orchestrator/skills/security-hardening/SKILL.md +118 -0
  214. package/src/orchestrator/skills/self-improvement/SKILL.md +137 -0
  215. package/src/orchestrator/skills/seo-patterns/SKILL.md +40 -0
  216. package/src/orchestrator/skills/session-checkpoints/SKILL.md +205 -0
  217. package/src/orchestrator/skills/slack-notifications/SKILL.md +211 -0
  218. package/src/orchestrator/skills/strapi-cms/SKILL.md +43 -0
  219. package/src/orchestrator/skills/supabase-database/SKILL.md +24 -0
  220. package/src/orchestrator/skills/task-management/SKILL.md +143 -0
  221. package/src/orchestrator/skills/team-lead-reference/SKILL.md +317 -0
  222. package/src/orchestrator/skills/teams-notifications/SKILL.md +249 -0
  223. package/src/orchestrator/skills/testing-workflow/SKILL.md +134 -0
  224. package/src/orchestrator/skills/validation-gates/SKILL.md +100 -0
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: testing-workflow
3
+ description: "Comprehensive testing workflow including test planning, unit/integration/E2E testing patterns, coverage requirements, and common testing mistakes. Use when writing tests, planning test strategies, or validating feature completeness."
4
+ ---
5
+
6
+ # Testing Workflow
7
+
8
+ ## Core Principles
9
+
10
+ - Test implementations thoroughly before claiming completion.
11
+ - Every feature must be validated through comprehensive testing covering happy paths, edge cases, error conditions, and user interactions.
12
+ - **Mandatory**: Every feature implementation must be tested in the browser using Chrome DevTools MCP automation before marking as complete.
13
+
14
+ ## E2E Testing Context Management
15
+
16
+ **Problem:** Comprehensive E2E tests with Chrome MCP accumulate context that can exceed AI context limits (413 errors).
17
+
18
+ **Rules:**
19
+ 1. **ONE suite per session** — never run all suites in one conversation.
20
+ 2. **MAX 3 screenshots** per session.
21
+ 3. **Use `evaluate_script()` over `take_snapshot()`** — returns less data.
22
+ 4. **Reload between major test flows** to clear state.
23
+ 5. **Log results separately** — append to `docs/testing/E2E-RESULTS.md`.
24
+
25
+ ### Suite Files
26
+
27
+ See `project.instructions.md` for the full list of E2E test suite files.
28
+
29
+ ## Pre-Implementation Test Plan
30
+
31
+ Before implementing any feature, create a plan covering:
32
+
33
+ ### 1. Initial State Tests
34
+ - Page loads with default values.
35
+ - Components render in expected initial state.
36
+
37
+ ### 2. User Interaction Tests
38
+ - Buttons trigger expected actions.
39
+ - Dropdowns respond to selection.
40
+ - Filters update URL params and trigger data refetch.
41
+ - Forms accept and validate input.
42
+
43
+ ### 3. State Transition Tests
44
+ - Changing filter values produces different results.
45
+ - Data updates on user interaction.
46
+ - UI reflects backend state changes.
47
+ - Loading states appear during async operations.
48
+
49
+ ### 4. Edge Case Tests
50
+ - Empty results.
51
+ - Maximum/minimum boundaries.
52
+ - Invalid input handling.
53
+ - Network errors and timeouts.
54
+
55
+ ### 5. Integration Tests
56
+ - Component interactions work correctly.
57
+ - Data flows from server to UI properly.
58
+ - URL parameters sync with component state.
59
+ - Server-side vs client-side filtering works.
60
+
61
+ ### 6. Responsive Breakpoint Tests (MANDATORY for UI changes)
62
+
63
+ **Every UI feature must be tested at all three breakpoints** (Mobile 375px, Tablet 768px, Desktop 1440px). Most layout bugs only surface at mobile or tablet widths.
64
+
65
+ > **Detailed breakpoint definitions, resize commands, and per-breakpoint checklists:** See the **browser-testing** skill. The **validation-gates** skill (Gate 3) defines the mandatory testing protocol.
66
+
67
+ **Anti-pattern:** Testing only at desktop (or only at the default browser width) and assuming responsive classes work. Tailwind classes can be incorrect — always verify visually at every breakpoint.
68
+
69
+ ## Coverage Requirements
70
+
71
+ ### Unit Tests (Jest)
72
+ - **Minimum 95% coverage** for all new code.
73
+ - All exported functions, React components, custom hooks.
74
+ - Edge cases and error conditions. Input validation.
75
+
76
+ ### Integration Tests
77
+ - Component integration, data flow, state updates across boundaries.
78
+ - URL synchronization.
79
+
80
+ ### E2E Tests (Browser Automation)
81
+ - Complete user journeys. All interactive elements.
82
+ - State transitions. Error handling. Performance.
83
+
84
+ ## Testing Anti-Patterns
85
+
86
+ | Anti-Pattern | Correct Approach |
87
+ |---|---|
88
+ | Testing only initial page load | Test filter changes, interactions, different results |
89
+ | Assuming filters work because they render | Verify each filter option changes results |
90
+ | Client-side only testing | Verify server requests triggered correctly |
91
+ | Single scenario testing | Test urban, rural, edge of coverage, out of range |
92
+ | Visual inspection only | Verify data values, counts, distances programmatically |
93
+
94
+ ## Comprehensive Testing Example
95
+
96
+ ```markdown
97
+ ### ✅ Correct Approach
98
+ 1. ✅ Load page with Prague coords (50.0755, 14.4378) → 3 places at 10km
99
+ 2. ✅ Change distance 10km → 100km → 5 places (added 2 at 44km, 83km)
100
+ 3. ✅ Change distance 100km → 25km → 3 places (removed beyond 25km)
101
+ 4. ✅ Rural coordinates (49.2, 15.5) → 0 places, auto-expanded to 100km
102
+ 5. ✅ Verified filter changes trigger new server requests
103
+ ```
104
+
105
+ ## Post-Implementation Browser Testing
106
+
107
+ After completing any feature:
108
+
109
+ 1. Start dev server (see `project.instructions.md` for app/port details).
110
+ 2. Open browser to the dev URL.
111
+ 3. Test all critical user flows with Chrome DevTools MCP.
112
+ 4. Test edge cases (empty results, max/min values, errors).
113
+ 5. Document results with screenshots.
114
+
115
+ ### Verify Before Completion
116
+
117
+ - [ ] Opened app in browser
118
+ - [ ] Tested all interactive elements
119
+ - [ ] Verified data changes match expectations
120
+ - [ ] Checked edge cases
121
+ - [ ] Confirmed empty states display correctly
122
+ - [ ] **Tested at Mobile (375px), Tablet (768px), and Desktop (1440px) breakpoints**
123
+ - [ ] **No horizontal overflow or layout breakage at any breakpoint**
124
+ - [ ] Taken screenshots of key scenarios
125
+ - [ ] Verified URL parameters are correct
126
+
127
+ ## Commands
128
+
129
+ ```bash
130
+ yarn nx run <project>:test # Run tests
131
+ yarn nx run <project>:test --coverage # With coverage
132
+ yarn nx run <project>:test -u # Update snapshots
133
+ yarn nx affected -t test # Affected tests
134
+ ```
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: validation-gates
3
+ description: "Shared validation gates for all orchestration workflows — deterministic checks, browser testing, cache management, regression checks. Referenced by prompt templates to maintain single source of truth."
4
+ ---
5
+
6
+ # Validation Gates
7
+
8
+ Canonical reference for validation gates shared across all orchestration workflows. Prompt templates reference this skill to avoid duplication.
9
+
10
+ ## Gate 1: Deterministic Checks
11
+
12
+ Run for every affected NX project:
13
+
14
+ ```bash
15
+ yarn nx run <project>:lint --fix
16
+ yarn nx run <project>:test
17
+ yarn nx run <project>:build
18
+ ```
19
+
20
+ All must pass with zero errors. Run for **every** project that consumed modified files, not just the primary project.
21
+
22
+ ## Gate 1.5: Fast Review (MANDATORY)
23
+
24
+ > **HARD GATE:** Every agent delegation output must pass fast review before acceptance. This is non-negotiable — even for overnight/unattended runs. Load the **fast-review** skill for the full procedure.
25
+
26
+ After deterministic checks (Gate 1) pass:
27
+
28
+ 1. **Spawn a single reviewer sub-agent** with the review prompt from the fast-review skill
29
+ 2. **On PASS** — proceed to remaining gates
30
+ 3. **On FAIL** — re-delegate to the same agent with reviewer feedback (up to 2 retries)
31
+ 4. **On 3x FAIL** — escalate to panel review (Gate 5)
32
+
33
+ The reviewer validates: acceptance criteria met, file partition respected, no regressions, type safety, error handling, security basics, and edge cases.
34
+
35
+ **Auto-PASS conditions** (skip the reviewer sub-agent):
36
+ - Pure research/exploration with no code changes
37
+ - Only `.md` files were modified
38
+ - All deterministic gates passed AND the change is ≤10 lines across ≤2 files
39
+
40
+ ## Gate 2: Cache Clearing (BEFORE Browser Testing)
41
+
42
+ **Always clear before testing.** Testing stale code wastes time and produces false results.
43
+
44
+ ```bash
45
+ rm -rf apps/<app>/.next
46
+ yarn nx reset
47
+ ```
48
+
49
+ Run these commands before starting the dev server for browser testing.
50
+
51
+ ## Gate 3: Browser Testing (MANDATORY for UI Changes)
52
+
53
+ > **HARD GATE:** A task with UI changes is NOT done until you have screenshots in Chrome proving the feature works. "The code looks correct" is not proof. "Tests pass" is not proof. Only a screenshot of the working UI in Chrome is proof.
54
+
55
+ 1. **Start the dev server** — `yarn nx run <app>:serve` — wait for it to be ready
56
+ 2. **Navigate to affected pages** — Verify the new feature renders correctly
57
+ 3. **Verify SPECIFIC features** — Check every feature listed in the acceptance criteria. If the criteria say "icons, groups, and AND/OR toggle", you must see all three in the browser
58
+ 4. **Test interactions** — Click buttons, fill forms, toggle filters, submit data
59
+ 5. **Test responsive** — Resize to mobile (375px), tablet (768px), desktop (1440px)
60
+ 6. **Test edge cases** — Empty states, error states, loading states, long content
61
+ 7. **Screenshot evidence (REQUIRED)** — Take screenshots of key states. These are mandatory proof
62
+
63
+ > **Anti-pattern:** Testing only at desktop width and assuming Tailwind classes work. They can be wrong — always verify at all three breakpoints.
64
+
65
+ Load the **browser-testing** skill for Chrome MCP commands, breakpoint details, and reporting format.
66
+
67
+ ## Gate 4: Regression Testing
68
+
69
+ New features must not break existing functionality:
70
+
71
+ 1. **Run full test suite** for affected projects — not just the new tests
72
+ 2. **Browser-test adjacent pages** — If you changed a shared component, test pages that use it
73
+ 3. **Verify navigation** — Ensure routing, links, and back-button behavior still work
74
+ 4. **Check shared components** — If a component from a shared library was modified, test it in all apps that consume it
75
+
76
+ ## Gate 5: Panel Review (High-Stakes Only)
77
+
78
+ Use the **panel-majority-vote** skill for:
79
+
80
+ - Security-sensitive changes (auth flows, RLS policies, API endpoints)
81
+ - Database migrations that alter production data or schema
82
+ - Architecture decisions or large refactors affecting multiple libraries
83
+ - Complex business logic without comprehensive test coverage
84
+
85
+ If the panel returns BLOCK, extract MUST-FIX items, re-delegate to the same agent, and re-run the panel. Never skip, never halt. Max 3 attempts, then escalate to Architect.
86
+
87
+ ## Universal Completion Checklist
88
+
89
+ Use this checklist for any orchestration workflow:
90
+
91
+ - [ ] Lint, test, and build pass for all affected projects
92
+ - [ ] **Fast review passed** (mandatory — load **fast-review** skill)
93
+ - [ ] Dev server started with **clean cache** (`rm -rf .next && yarn nx reset`)
94
+ - [ ] UI changes verified in Chrome with screenshots at all breakpoints
95
+ - [ ] Every acceptance criteria item visually confirmed — not just "page loads"
96
+ - [ ] No regressions in adjacent functionality
97
+ - [ ] Shared code changes tested across all consuming apps
98
+ - [ ] No duplicated code — shared logic extracted to libraries
99
+ - [ ] Lessons learned captured if any retries occurred
100
+ - [ ] Known issues updated if new limitations were discovered