一键导入
bee-dev-frontend-visual
Gate 4 of frontend development cycle - ensures all components have snapshot tests covering all states, viewports, and edge cases.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Gate 4 of frontend development cycle - ensures all components have snapshot tests covering all states, viewports, and edge cases.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Gate 4 of development cycle - dispatches 6 specialized reviewers (code, business-logic, security, test, nil-safety, consequences) in parallel for comprehensive code review feedback.
Gate 7 of development cycle - ensures chaos tests exist using Toxiproxy to verify graceful degradation under connection loss, latency, and partitions.
Main orchestrator for the 8-gate development cycle system. Loads tasks/subtasks from PM team output and executes through implementation → unit testing → fuzz testing → property testing → integration testing (write) → chaos testing (write) → review → validation gates (Gates 0-7), with state persistence and metrics collection. Gates 4-5 (integration/chaos) write and update test code per unit but only execute tests at end of cycle (deferred execution).
Development cycle feedback system - calculates assertiveness scores, analyzes prompt quality for all agents executed, aggregates cycle metrics, performs root cause analysis on failures, and generates improvement reports to docs/feedbacks/cycle-{date}/.
Gate 1 of the React Native frontend development cycle - ensures all components pass accessibility checks with zero violations: correct accessibilityLabel, accessibilityRole, accessibilityHint, VoiceOver (iOS) and TalkBack (Android) compatibility, and minimum touch target sizes.
Gate 1 of frontend development cycle - ensures all components pass axe-core automated accessibility scans with zero WCAG 2.1 AA violations.
| name | bee:dev-frontend-visual |
| title | Frontend development cycle visual/snapshot testing (Gate 4) |
| category | development-cycle-frontend |
| tier | 1 |
| when_to_use | Use after unit testing (Gate 3) is complete in the frontend dev cycle. MANDATORY for all frontend development tasks - ensures visual consistency. |
| description | Gate 4 of frontend development cycle - ensures all components have snapshot tests covering all states, viewports, and edge cases. |
| trigger | - After unit testing complete (Gate 3) - MANDATORY for all frontend development tasks - Catches visual regressions before review |
| skip_when | - "Snapshots are brittle" - Brittle snapshots catch unintended changes. - "We test visually in the browser" - Manual testing doesn't catch regressions. - "Only default state matters" - Users see error, loading, and empty states too. |
| sequence | {"after":["bee:dev-unit-testing"],"before":["bee:dev-frontend-e2e"]} |
| related | {"complementary":["bee:dev-cycle-frontend","bee:dev-unit-testing","bee:qa-analyst-frontend"]} |
| input_schema | {"required":[{"name":"unit_id","type":"string","description":"Task or subtask identifier"},{"name":"implementation_files","type":"array","items":"string","description":"Files from Gate 0 implementation"}],"optional":[{"name":"ux_criteria_path","type":"string","description":"Path to ux-criteria.md from product-designer"},{"name":"gate3_handoff","type":"object","description":"Full handoff from Gate 3 (unit testing)"}]} |
| output_schema | {"format":"markdown","required_sections":[{"name":"Visual Testing Summary","pattern":"^## Visual Testing Summary","required":true},{"name":"Snapshot Coverage","pattern":"^## Snapshot Coverage","required":true},{"name":"Component Duplication Check","pattern":"^## Component Duplication Check","required":true},{"name":"Handoff to Next Gate","pattern":"^## Handoff to Next Gate","required":true}],"metrics":[{"name":"result","type":"enum","values":["PASS","FAIL"]},{"name":"components_with_snapshots","type":"integer"},{"name":"total_snapshots","type":"integer"},{"name":"snapshot_failures","type":"integer"},{"name":"iterations","type":"integer"}]} |
| verification | {"automated":[{"command":"grep -rn 'toMatchSnapshot' --include='*.test.tsx' --include='*.snapshot.test.tsx' .","description":"Snapshot tests exist","success_pattern":"toMatchSnapshot"},{"command":"find . -name '*.snap' -type f | head -5","description":"Snapshot files generated","success_pattern":".snap"}],"manual":["All component states have snapshots","Responsive viewports covered (375px, 768px, 1280px)","No sindarian-ui component duplication in components/ui/"]} |
| examples | [{"name":"Snapshot tests for transaction list","input":{"unit_id":"task-001","implementation_files":["src/components/TransactionList.tsx"]},"expected_output":"## Visual Testing Summary\n**Status:** PASS\n**Components with Snapshots:** 1\n**Total Snapshots:** 8\n**Snapshot Failures:** 0\n\n## Snapshot Coverage\n| Component | States | Viewports | Edge Cases | Status |\n|-----------|--------|-----------|------------|--------|\n| TransactionList | 4/4 | 3/3 | Long text | PASS |\n\n## Component Duplication Check\n| Component in components/ui/ | In sindarian-ui? | Status |\n|-----------------------------|------------------|--------|\n| _No duplications found_ | - | PASS |\n\n## Handoff to Next Gate\n- Ready for Gate 5 (E2E Testing): YES\n"}] |
Ensure all frontend components have snapshot tests covering all states, responsive viewports, and edge cases. Detect visual regressions before code review.
Core principle: If a user can see it, it must have a snapshot. All states, all viewports.
<block_condition>
This skill ORCHESTRATES. Frontend QA Analyst Agent (visual mode) EXECUTES.
| Who | Responsibility |
|---|---|
| This Skill | Gather requirements, dispatch agent, track iterations |
| QA Analyst Frontend Agent | Write snapshot tests, verify states, check duplication |
MANDATORY: Load testing-visual.md standards via WebFetch.
<fetch_required> https://raw.githubusercontent.com/luanrodrigues/ia-frmwrk/master/dev-team/docs/standards/frontend/testing-visual.md </fetch_required>
REQUIRED INPUT:
- unit_id: [task/subtask being tested]
- implementation_files: [files from Gate 0]
OPTIONAL INPUT:
- ux_criteria_path: [path to ux-criteria.md]
- gate3_handoff: [full Gate 3 output]
if any REQUIRED input is missing:
→ STOP and report: "Missing required input: [field]"
⛔ Agent Name Resolution: MUST resolve bee: names to runtime-qualified names before dispatch. See shared-patterns/shared-orchestrator-principle.md → "Agent Runtime Resolution".
Task tool:
subagent_type: "bee:qa-analyst-frontend"
model: "opus"
prompt: |
**MODE:** VISUAL TESTING (Gate 4)
**Standards:** Load testing-visual.md
**Input:**
- Unit ID: {unit_id}
- Implementation Files: {implementation_files}
- UX Criteria: {ux_criteria_path or "N/A"}
**Requirements:**
1. Create snapshot tests for all components
2. Cover all states (Default, Empty, Loading, Error, Success, Disabled)
3. Add responsive snapshots (375px, 768px, 1280px) for layout components
4. Test edge cases (long text, 0 items, special characters)
5. Verify no sindarian-ui component duplication in components/ui/
**Output Sections Required:**
- ## Visual Testing Summary
- ## Snapshot Coverage
- ## Component Duplication Check
- ## Handoff to Next Gate
Parse agent output:
if "Status: PASS" in output:
→ Gate 4 PASSED
→ Return success with metrics
if "Status: FAIL" in output:
→ If missing snapshots: re-dispatch agent to add missing
→ If duplication found: re-dispatch implementation agent to fix
→ Re-run visual tests (max 3 iterations)
→ If still failing: ESCALATE to user
## Visual Testing Summary
**Status:** {PASS|FAIL}
**Components with Snapshots:** {count}
**Total Snapshots:** {count}
**Snapshot Failures:** {count}
## Snapshot Coverage
| Component | States | Viewports | Edge Cases | Status |
|-----------|--------|-----------|------------|--------|
| {component} | {X/Y} | {X/Y or N/A} | {description} | {PASS|FAIL} |
## Component Duplication Check
| Component in components/ui/ | In sindarian-ui? | Status |
|-----------------------------|------------------|--------|
| {component} | {Yes|No} | {PASS|FAIL} |
## Handoff to Next Gate
- Ready for Gate 5 (E2E Testing): {YES|NO}
- Iterations: {count}
See shared-patterns/shared-anti-rationalization.md for universal anti-rationalizations. Gate-specific:
| Rationalization | Why It's WRONG | Required Action |
|---|---|---|
| "Snapshots are brittle" | Brittle = catches unintended changes. That's the point. | Write snapshot tests |
| "We test visually in browser" | Manual testing misses regressions. Automated is repeatable. | Add snapshot tests |
| "Only default state matters" | Error and loading states are user-facing. | Test all states |
| "Mobile is just smaller" | Layout changes at breakpoints. Test all viewports. | Add responsive snapshots |
| "This shadcn component is better" | sindarian-ui is PRIMARY. Don't duplicate. | Check sindarian-ui first |