name: dev-vue
description: COMPREHENSIVE Vue 3 development with Composition API, TypeScript, and advanced reactivity debugging. Create reactive components, handle props/events, implement lifecycle hooks, integrate with Pinia state management, debug reactivity issues, and optimize component performance. CRITICAL: All component changes MUST be tested with Playwright before claiming success. Use DevTools for debugging when available.
Tier 1: Metadata
This skill provides Vue 3 component development with Composition API and TypeScript for the Pomo-Flow productivity application.
Quick Context
- Complexity: medium
- Duration: 15-45 minutes
- Dependencies: vue, typescript, pinia, @vueuse/core
Activation Triggers
- Keywords: vue, component, reactive, composable, template, script setup, props, events, lifecycle, computed, watch, ref, onmounted
- Files: .vue, src/components/, src/views/, src/composables/*
- Contexts: frontend, ui-development, component-architecture, vue-js, typescript
🚨 CRITICAL TESTING REQUIREMENTS
MANDATORY Testing Protocol
ZERO TOLERANCE POLICY: NEVER claim component functionality works without visual verification through testing.
Before Claiming Success - MANDATORY Steps:
- Start Development Server:
npm run dev (ensure port 5546 is available)
- Reactivate Playwright: Use Playwright MCP for visual testing
- Reactivate DevTools: Open browser DevTools for debugging
- Test Component Visually: Verify component renders correctly
- Test Functionality: Verify all interactions work as expected
- Test Edge Cases: Verify error handling and boundary conditions
- Document Evidence: Provide screenshots/test results as proof
Testing Tool Reactivation Instructions:
# If Playwright MCP is not available:
npm run test # Run Playwright tests
npm run test:e2e # Run end-to-end tests
npm run dev # Start dev server for manual testing
Required Testing Evidence:
- ✅ Component renders without errors
- ✅ Props are handled correctly
- ✅ Events fire as expected
- ✅ State management works (if applicable)
- ✅ Responsive design works (if applicable)
- ✅ Accessibility features work (if applicable)
Emergency Testing Recovery:
If testing reveals issues:
- Stop: Do NOT claim success
- Debug: Use DevTools to identify the problem
- Fix: Address the issue found during testing
- Retest: Run the full testing protocol again
- Document: Record the issue and resolution
Reactivity Debugging (Integrated from dev-debug-reactivity)
Reactivity Debugging Protocol
When Vue components don't update or state seems broken, follow this systematic approach:
1. Check Reactive References
- Always use
.value for ref() in setup()
- Never destructure reactive objects (breaks reactivity)
- Use
storeToRefs() for Pinia store destructuring
- Use
reactive() for objects, not ref()
2. Computed Properties
- Check dependencies - computed should only track what it uses
- Debug stale computed - add console.log to see when it recalculates
- Use
watchEffect() for automatic dependency tracking
3. Watcher Configuration
- Use
{ deep: true } for nested object changes
- Use
{ immediate: true } to run watcher immediately
- Check
flush: 'post' for timing issues
Quick Debug Patterns
Reactivity Checker
const debugReactivity = (ref, name) => {
console.log(`${name} initial:`, ref.value)
const stopWatcher = watch(ref, (newVal, oldVal) => {
console.log(`${name} changed:`, oldVal, '→', newVal)
}, { immediate: true })
return stopWatcher
}
Component Update Tracker
export default {
setup() {
onRenderTracked((e) => {
console.log('Render tracked:', e.key, e.type)
})
onRenderTriggered((e) => {
console.log('Render triggered:', e.key, e.type)
})
}
}
Navigation Map
MANDATORY USER VERIFICATION REQUIREMENT
Policy: No Fix Claims Without User Confirmation
CRITICAL: Before claiming ANY issue, bug, or problem is "fixed", "resolved", "working", or "complete", the following verification protocol is MANDATORY:
Step 1: Technical Verification
- Run all relevant tests (build, type-check, unit tests)
- Verify no console errors
- Take screenshots/evidence of the fix
Step 2: User Verification Request
REQUIRED: Use the AskUserQuestion tool to explicitly ask the user to verify the fix:
"I've implemented [description of fix]. Before I mark this as complete, please verify:
1. [Specific thing to check #1]
2. [Specific thing to check #2]
3. Does this fix the issue you were experiencing?
Please confirm the fix works as expected, or let me know what's still not working."
Step 3: Wait for User Confirmation
- DO NOT proceed with claims of success until user responds
- DO NOT mark tasks as "completed" without user confirmation
- DO NOT use phrases like "fixed", "resolved", "working" without user verification
Step 4: Handle User Feedback
- If user confirms: Document the fix and mark as complete
- If user reports issues: Continue debugging, repeat verification cycle
Prohibited Actions (Without User Verification)
- Claiming a bug is "fixed"
- Stating functionality is "working"
- Marking issues as "resolved"
- Declaring features as "complete"
- Any success claims about fixes
Required Evidence Before User Verification Request
- Technical tests passing
- Visual confirmation via Playwright/screenshots
- Specific test scenarios executed
- Clear description of what was changed
Remember: The user is the final authority on whether something is fixed. No exceptions.
1---2name: dev-vue3description: This skill provides Vue 3 component development with Composition API and TypeScript for the Pomo-Flow productivity application.4---5
6---
7name: dev-vue
8description: COMPREHENSIVE Vue 3 development with Composition API, TypeScript, and advanced reactivity debugging. Create reactive components, handle props/events, implement lifecycle hooks, integrate with Pinia state management, debug reactivity issues, and optimize component performance. CRITICAL: All component changes MUST be tested with Playwright before claiming success. Use DevTools for debugging when available.
9---
10
11# Tier 1: Metadata
12
13This skill provides Vue 3 component development with Composition API and TypeScript for the Pomo-Flow productivity application.
14
15## Quick Context
16- **Complexity**: medium
17- **Duration**: 15-45 minutes
18- **Dependencies**: vue, typescript, pinia, @vueuse/core
19
20## Activation Triggers
21- **Keywords**: vue, component, reactive, composable, template, script setup, props, events, lifecycle, computed, watch, ref, onmounted
22- **Files**: *.vue, src/components/**, src/views/**, src/composables/**
23- **Contexts**: frontend, ui-development, component-architecture, vue-js, typescript
24
25## 🚨 CRITICAL TESTING REQUIREMENTS
26
27### **MANDATORY Testing Protocol**
28**ZERO TOLERANCE POLICY**: NEVER claim component functionality works without visual verification through testing.
29
30#### **Before Claiming Success - MANDATORY Steps:**
311. **Start Development Server**: `npm run dev` (ensure port 5546 is available)
322. **Reactivate Playwright**: Use Playwright MCP for visual testing
333. **Reactivate DevTools**: Open browser DevTools for debugging
344. **Test Component Visually**: Verify component renders correctly
355. **Test Functionality**: Verify all interactions work as expected
366. **Test Edge Cases**: Verify error handling and boundary conditions
377. **Document Evidence**: Provide screenshots/test results as proof
38
39#### **Testing Tool Reactivation Instructions:**
40```bash
41# If Playwright MCP is not available:
42npm run test # Run Playwright tests
43npm run test:e2e # Run end-to-end tests
44npm run dev # Start dev server for manual testing
45```
46
47#### **Required Testing Evidence:**
48- ✅ Component renders without errors
49- ✅ Props are handled correctly
50- ✅ Events fire as expected
51- ✅ State management works (if applicable)
52- ✅ Responsive design works (if applicable)
53- ✅ Accessibility features work (if applicable)
54
55#### **Emergency Testing Recovery:**
56If testing reveals issues:
571. **Stop**: Do NOT claim success
582. **Debug**: Use DevTools to identify the problem
593. **Fix**: Address the issue found during testing
604. **Retest**: Run the full testing protocol again
615. **Document**: Record the issue and resolution
62
63## Reactivity Debugging (Integrated from dev-debug-reactivity)
64
65### Reactivity Debugging Protocol
66When Vue components don't update or state seems broken, follow this systematic approach:
67
68#### 1. Check Reactive References
69- **Always use `.value`** for `ref()` in setup()
70- **Never destructure reactive objects** (breaks reactivity)
71- **Use `storeToRefs()`** for Pinia store destructuring
72- **Use `reactive()`** for objects, not `ref()`
73
74#### 2. Computed Properties
75- **Check dependencies** - computed should only track what it uses
76- **Debug stale computed** - add console.log to see when it recalculates
77- **Use `watchEffect()`** for automatic dependency tracking
78
79#### 3. Watcher Configuration
80- **Use `{ deep: true }`** for nested object changes
81- **Use `{ immediate: true }`** to run watcher immediately
82- **Check `flush: 'post'`** for timing issues
83
84### Quick Debug Patterns
85
86#### Reactivity Checker
87```typescript
88const debugReactivity = (ref, name) => {
89 console.log(`${name} initial:`, ref.value)
90
91 const stopWatcher = watch(ref, (newVal, oldVal) => {
92 console.log(`${name} changed:`, oldVal, '→', newVal)
93 }, { immediate: true })
94
95 return stopWatcher
96}
97```
98
99#### Component Update Tracker
100```typescript
101export default {
102 setup() {
103 onRenderTracked((e) => {
104 console.log('Render tracked:', e.key, e.type)
105 })
106
107 onRenderTriggered((e) => {
108 console.log('Render triggered:', e.key, e.type)
109 })
110 }
111}
112```
113
114## Navigation Map
115- [Implementation Guide](./IMPLEMENTATION.md)
116- [Code Examples](./examples/)
117- [Troubleshooting](./TROUBLESHOOTING.md)
118- [Vue Development Patterns](./vue-development.md)
119- [Testing Strategies](./testing.md)
120- [Reactivity Debugging](./reactivity-debugging.md)
121
122---
123
124## MANDATORY USER VERIFICATION REQUIREMENT
125
126### Policy: No Fix Claims Without User Confirmation
127
128**CRITICAL**: Before claiming ANY issue, bug, or problem is "fixed", "resolved", "working", or "complete", the following verification protocol is MANDATORY:
129
130#### Step 1: Technical Verification
131- Run all relevant tests (build, type-check, unit tests)
132- Verify no console errors
133- Take screenshots/evidence of the fix
134
135#### Step 2: User Verification Request
136**REQUIRED**: Use the `AskUserQuestion` tool to explicitly ask the user to verify the fix:
137
138```
139"I've implemented [description of fix]. Before I mark this as complete, please verify:
1401. [Specific thing to check #1]
1412. [Specific thing to check #2]
1423. Does this fix the issue you were experiencing?
143
144Please confirm the fix works as expected, or let me know what's still not working."
145```
146
147#### Step 3: Wait for User Confirmation
148- **DO NOT** proceed with claims of success until user responds
149- **DO NOT** mark tasks as "completed" without user confirmation
150- **DO NOT** use phrases like "fixed", "resolved", "working" without user verification
151
152#### Step 4: Handle User Feedback
153- If user confirms: Document the fix and mark as complete
154- If user reports issues: Continue debugging, repeat verification cycle
155
156### Prohibited Actions (Without User Verification)
157- Claiming a bug is "fixed"
158- Stating functionality is "working"
159- Marking issues as "resolved"
160- Declaring features as "complete"
161- Any success claims about fixes
162
163### Required Evidence Before User Verification Request
1641. Technical tests passing
1652. Visual confirmation via Playwright/screenshots
1663. Specific test scenarios executed
1674. Clear description of what was changed
168
169**Remember: The user is the final authority on whether something is fixed. No exceptions.**