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.
- package/LICENSE +21 -0
- package/README.md +215 -0
- package/bin/cli.mjs +69 -0
- package/dist/cli/adapters/claude-code.d.ts +22 -0
- package/dist/cli/adapters/claude-code.d.ts.map +1 -0
- package/dist/cli/adapters/claude-code.js +237 -0
- package/dist/cli/adapters/claude-code.js.map +1 -0
- package/dist/cli/adapters/cursor.d.ts +20 -0
- package/dist/cli/adapters/cursor.d.ts.map +1 -0
- package/dist/cli/adapters/cursor.js +231 -0
- package/dist/cli/adapters/cursor.js.map +1 -0
- package/dist/cli/adapters/vscode.d.ts +20 -0
- package/dist/cli/adapters/vscode.d.ts.map +1 -0
- package/dist/cli/adapters/vscode.js +132 -0
- package/dist/cli/adapters/vscode.js.map +1 -0
- package/dist/cli/copy.d.ts +14 -0
- package/dist/cli/copy.d.ts.map +1 -0
- package/dist/cli/copy.js +62 -0
- package/dist/cli/copy.js.map +1 -0
- package/dist/cli/dashboard.d.ts +3 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +183 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/diff.d.ts +3 -0
- package/dist/cli/diff.d.ts.map +1 -0
- package/dist/cli/diff.js +27 -0
- package/dist/cli/diff.js.map +1 -0
- package/dist/cli/eject.d.ts +3 -0
- package/dist/cli/eject.d.ts.map +1 -0
- package/dist/cli/eject.js +27 -0
- package/dist/cli/eject.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +92 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/manifest.d.ts +14 -0
- package/dist/cli/manifest.d.ts.map +1 -0
- package/dist/cli/manifest.js +34 -0
- package/dist/cli/manifest.js.map +1 -0
- package/dist/cli/mcp.d.ts +14 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +35 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/prompt.d.ts +12 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +104 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/run/adapters/claude-code.d.ts +16 -0
- package/dist/cli/run/adapters/claude-code.d.ts.map +1 -0
- package/dist/cli/run/adapters/claude-code.js +82 -0
- package/dist/cli/run/adapters/claude-code.js.map +1 -0
- package/dist/cli/run/adapters/copilot.d.ts +16 -0
- package/dist/cli/run/adapters/copilot.d.ts.map +1 -0
- package/dist/cli/run/adapters/copilot.js +84 -0
- package/dist/cli/run/adapters/copilot.js.map +1 -0
- package/dist/cli/run/adapters/cursor.d.ts +16 -0
- package/dist/cli/run/adapters/cursor.d.ts.map +1 -0
- package/dist/cli/run/adapters/cursor.js +81 -0
- package/dist/cli/run/adapters/cursor.js.map +1 -0
- package/dist/cli/run/adapters/index.d.ts +14 -0
- package/dist/cli/run/adapters/index.d.ts.map +1 -0
- package/dist/cli/run/adapters/index.js +35 -0
- package/dist/cli/run/adapters/index.js.map +1 -0
- package/dist/cli/run/executor.d.ts +15 -0
- package/dist/cli/run/executor.d.ts.map +1 -0
- package/dist/cli/run/executor.js +249 -0
- package/dist/cli/run/executor.js.map +1 -0
- package/dist/cli/run/reporter.d.ts +10 -0
- package/dist/cli/run/reporter.d.ts.map +1 -0
- package/dist/cli/run/reporter.js +112 -0
- package/dist/cli/run/reporter.js.map +1 -0
- package/dist/cli/run/schema.d.ts +28 -0
- package/dist/cli/run/schema.d.ts.map +1 -0
- package/dist/cli/run/schema.js +511 -0
- package/dist/cli/run/schema.js.map +1 -0
- package/dist/cli/run.d.ts +6 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +123 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/stack-config.d.ts +12 -0
- package/dist/cli/stack-config.d.ts.map +1 -0
- package/dist/cli/stack-config.js +146 -0
- package/dist/cli/stack-config.js.map +1 -0
- package/dist/cli/types.d.ts +169 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/update.d.ts +3 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +50 -0
- package/dist/cli/update.js.map +1 -0
- package/package.json +48 -0
- package/src/cli/adapters/claude-code.ts +287 -0
- package/src/cli/adapters/cursor.ts +377 -0
- package/src/cli/adapters/vscode.ts +168 -0
- package/src/cli/copy.ts +79 -0
- package/src/cli/dashboard.ts +225 -0
- package/src/cli/diff.ts +44 -0
- package/src/cli/eject.ts +39 -0
- package/src/cli/init.ts +120 -0
- package/src/cli/manifest.ts +45 -0
- package/src/cli/mcp.ts +49 -0
- package/src/cli/prompt.ts +115 -0
- package/src/cli/run/adapters/claude-code.ts +95 -0
- package/src/cli/run/adapters/copilot.ts +97 -0
- package/src/cli/run/adapters/cursor.ts +94 -0
- package/src/cli/run/adapters/index.ts +40 -0
- package/src/cli/run/executor.ts +292 -0
- package/src/cli/run/reporter.ts +129 -0
- package/src/cli/run/schema.ts +595 -0
- package/src/cli/run.ts +137 -0
- package/src/cli/stack-config.ts +180 -0
- package/src/cli/types.ts +207 -0
- package/src/cli/update.ts +75 -0
- package/src/dashboard/astro.config.mjs +6 -0
- package/src/dashboard/package-lock.json +5455 -0
- package/src/dashboard/package.json +14 -0
- package/src/dashboard/public/data/delegations.ndjson +35 -0
- package/src/dashboard/public/data/panels.ndjson +13 -0
- package/src/dashboard/public/data/sessions.ndjson +50 -0
- package/src/dashboard/public/icon-192.png +0 -0
- package/src/dashboard/scripts/generate-seed-data.ts +355 -0
- package/src/dashboard/src/layouts/Layout.astro +25 -0
- package/src/dashboard/src/pages/index.astro +1070 -0
- package/src/dashboard/src/styles/dashboard.css +1078 -0
- package/src/dashboard/tsconfig.json +6 -0
- package/src/orchestrator/agent-workflows/README.md +22 -0
- package/src/orchestrator/agent-workflows/bug-fix.md +128 -0
- package/src/orchestrator/agent-workflows/data-pipeline.md +145 -0
- package/src/orchestrator/agent-workflows/database-migration.md +159 -0
- package/src/orchestrator/agent-workflows/feature-implementation.md +223 -0
- package/src/orchestrator/agent-workflows/performance-optimization.md +125 -0
- package/src/orchestrator/agent-workflows/refactoring.md +142 -0
- package/src/orchestrator/agent-workflows/schema-changes.md +164 -0
- package/src/orchestrator/agent-workflows/security-audit.md +148 -0
- package/src/orchestrator/agent-workflows/shared-delivery-phase.md +33 -0
- package/src/orchestrator/agents/api-designer.agent.md +68 -0
- package/src/orchestrator/agents/architect.agent.md +129 -0
- package/src/orchestrator/agents/content-engineer.agent.md +57 -0
- package/src/orchestrator/agents/copywriter.agent.md +95 -0
- package/src/orchestrator/agents/data-expert.agent.md +63 -0
- package/src/orchestrator/agents/database-engineer.agent.md +62 -0
- package/src/orchestrator/agents/developer.agent.md +66 -0
- package/src/orchestrator/agents/devops-expert.agent.md +57 -0
- package/src/orchestrator/agents/documentation-writer.agent.md +60 -0
- package/src/orchestrator/agents/performance-expert.agent.md +58 -0
- package/src/orchestrator/agents/release-manager.agent.md +72 -0
- package/src/orchestrator/agents/researcher.agent.md +145 -0
- package/src/orchestrator/agents/reviewer.agent.md +62 -0
- package/src/orchestrator/agents/security-expert.agent.md +64 -0
- package/src/orchestrator/agents/seo-specialist.agent.md +67 -0
- package/src/orchestrator/agents/team-lead.agent.md +644 -0
- package/src/orchestrator/agents/testing-expert.agent.md +85 -0
- package/src/orchestrator/agents/ui-ux-expert.agent.md +63 -0
- package/src/orchestrator/copilot-instructions.md +3 -0
- package/src/orchestrator/customizations/AGENT-EXPERTISE.md +325 -0
- package/src/orchestrator/customizations/AGENT-FAILURES.md +69 -0
- package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +58 -0
- package/src/orchestrator/customizations/DISPUTES.md +162 -0
- package/src/orchestrator/customizations/KNOWLEDGE-GRAPH.md +10 -0
- package/src/orchestrator/customizations/LESSONS-LEARNED.md +70 -0
- package/src/orchestrator/customizations/README.md +59 -0
- package/src/orchestrator/customizations/agents/agent-registry.md +46 -0
- package/src/orchestrator/customizations/agents/skill-matrix.md +142 -0
- package/src/orchestrator/customizations/logs/README.md +181 -0
- package/src/orchestrator/customizations/logs/delegations.ndjson +1 -0
- package/src/orchestrator/customizations/logs/panels.ndjson +1 -0
- package/src/orchestrator/customizations/logs/sessions.ndjson +1 -0
- package/src/orchestrator/customizations/project/docs-structure.md +23 -0
- package/src/orchestrator/customizations/project/tracker-config.md +45 -0
- package/src/orchestrator/customizations/project.instructions.md +64 -0
- package/src/orchestrator/customizations/stack/api-config.md +37 -0
- package/src/orchestrator/customizations/stack/cms-config.md +26 -0
- package/src/orchestrator/customizations/stack/data-pipeline-config.md +41 -0
- package/src/orchestrator/customizations/stack/database-config.md +44 -0
- package/src/orchestrator/customizations/stack/deployment-config.md +45 -0
- package/src/orchestrator/customizations/stack/testing-config.md +56 -0
- package/src/orchestrator/instructions/ai-optimization.instructions.md +143 -0
- package/src/orchestrator/instructions/general.instructions.md +194 -0
- package/src/orchestrator/mcp.json +55 -0
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +235 -0
- package/src/orchestrator/prompts/brainstorm.prompt.md +115 -0
- package/src/orchestrator/prompts/bug-fix.prompt.md +141 -0
- package/src/orchestrator/prompts/create-skill.prompt.md +103 -0
- package/src/orchestrator/prompts/generate-task-spec.prompt.md +154 -0
- package/src/orchestrator/prompts/implement-feature.prompt.md +124 -0
- package/src/orchestrator/prompts/metrics-report.prompt.md +142 -0
- package/src/orchestrator/prompts/quick-refinement.prompt.md +137 -0
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +100 -0
- package/src/orchestrator/skills/accessibility-standards/SKILL.md +164 -0
- package/src/orchestrator/skills/agent-hooks/SKILL.md +147 -0
- package/src/orchestrator/skills/agent-memory/SKILL.md +144 -0
- package/src/orchestrator/skills/api-patterns/SKILL.md +106 -0
- package/src/orchestrator/skills/browser-testing/SKILL.md +203 -0
- package/src/orchestrator/skills/code-commenting/SKILL.md +133 -0
- package/src/orchestrator/skills/contentful-cms/SKILL.md +43 -0
- package/src/orchestrator/skills/context-map/SKILL.md +135 -0
- package/src/orchestrator/skills/convex-database/SKILL.md +80 -0
- package/src/orchestrator/skills/data-engineering/SKILL.md +99 -0
- package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +49 -0
- package/src/orchestrator/skills/documentation-standards/SKILL.md +85 -0
- package/src/orchestrator/skills/fast-review/SKILL.md +327 -0
- package/src/orchestrator/skills/frontend-design/SKILL.md +42 -0
- package/src/orchestrator/skills/jira-management/SKILL.md +168 -0
- package/src/orchestrator/skills/memory-merger/SKILL.md +123 -0
- package/src/orchestrator/skills/nextjs-patterns/SKILL.md +75 -0
- package/src/orchestrator/skills/nx-workspace/SKILL.md +192 -0
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +184 -0
- package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +38 -0
- package/src/orchestrator/skills/performance-optimization/SKILL.md +101 -0
- package/src/orchestrator/skills/react-development/SKILL.md +117 -0
- package/src/orchestrator/skills/sanity-cms/SKILL.md +18 -0
- package/src/orchestrator/skills/security-hardening/SKILL.md +118 -0
- package/src/orchestrator/skills/self-improvement/SKILL.md +137 -0
- package/src/orchestrator/skills/seo-patterns/SKILL.md +40 -0
- package/src/orchestrator/skills/session-checkpoints/SKILL.md +205 -0
- package/src/orchestrator/skills/slack-notifications/SKILL.md +211 -0
- package/src/orchestrator/skills/strapi-cms/SKILL.md +43 -0
- package/src/orchestrator/skills/supabase-database/SKILL.md +24 -0
- package/src/orchestrator/skills/task-management/SKILL.md +143 -0
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +317 -0
- package/src/orchestrator/skills/teams-notifications/SKILL.md +249 -0
- package/src/orchestrator/skills/testing-workflow/SKILL.md +134 -0
- 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
|