Agent skill
sk-code--web
Orchestrator guiding developers through implementation, debugging, and verification phases across specialized code quality skills (project)
Install this agent skill to your Project
npx add-skill https://github.com/MichelKerkmeester/opencode--spec-kit-skilled-agent-orchestration/tree/main/.opencode/skill/sk-code--web
SKILL.md
Code Workflows - Development Orchestrator
Unified workflow guidance across 6 specialized code quality skills for frontend development.
Core Principle: Implementation → Debugging (if needed) → Verification (MANDATORY) = reliable frontend code.
1. WHEN TO USE
Activation Triggers
Use this skill when:
- Starting frontend development work
- Implementing forms, APIs, DOM manipulation
- Integrating external libraries or media
- JavaScript files have been modified
- Encountering console errors or unexpected behavior
- Deep call stack issues or race conditions
- Multiple debugging attempts needed
- Need root cause identification
- Before ANY completion claim ("works", "fixed", "done", "complete", "passing")
- After implementing or debugging frontend code
Keyword triggers:
- Implementation: "implement", "build", "create", "add feature", "async", "validation", "CDN", "animation", "webflow", "performance", "interaction", "defer", "deferred loading", "PageSpeed", "Lighthouse", "TBT", "INP", "security"
- Debugging: "debug", "fix", "error", "not working", "broken", "issue", "bug", "console error"
- Verification: "done", "complete", "works", "fixed", "finished", "verify", "test"
When NOT to Use
Do NOT use this skill for:
- Non-frontend tasks (backend, infrastructure, DevOps)
- Documentation-only changes
- Pure research without implementation
- Git/version control operations (use sk-git instead)
- Skill creation/editing (use sk-doc instead)
Phase Overview
This orchestrator operates in four primary phases:
| Phase | Purpose | Trigger |
|---|---|---|
| Phase 0: Research | Systematic analysis before complex implementation | Performance issues, unfamiliar codebases |
| Phase 1: Implementation | Writing code with async handling, validation, cache-busting | Starting new code, modifying existing |
| Phase 1.5: Code Quality | Validate against style standards | P0 items pass |
| Phase 2: Debugging | Fixing issues systematically using DevTools | Console errors, unexpected behavior |
| Phase 3: Verification | Browser testing before completion claims | Before ANY "done" or "works" claim |
The Iron Law: NO COMPLETION CLAIMS WITHOUT FRESH BROWSER VERIFICATION EVIDENCE
Review Baseline Contract
sk-code--web owns frontend implementation patterns, web-specific quality gates, and browser verification steps.
For formal findings-first code review output, use sk-code--review as the baseline:
- Severity model and review output contract:
sk-code--review/references/quick_reference.md - Baseline security/quality/test review checks:
sk-code--reviewreferences - This skill: web-specific overlay rules and browser verification evidence
2. SMART ROUTING
Resource Domains
The router discovers markdown resources recursively from references/ and assets/ and then applies intent scoring from RESOURCE_MAP. Keep this section domain-focused rather than static file inventories.
references/implementation/for feature implementation patterns, async workflows, and integration guidance.references/debugging/for root-cause workflows, error recovery, and troubleshooting methodology.references/verification/for browser-based verification workflows and completion validation.references/standards/for style enforcement, quality expectations, and compliance guidance.references/performance/for optimization strategies and performance diagnostics.references/deployment/for minification and CDN deployment workflows.references/research/for structured pre-implementation analysis patterns.assets/checklists/for implementation, debugging, quality, and verification gates.assets/integrations/for external integration patterns (for example Lenis and HLS).assets/patterns/for reusable implementation snippets and validation/waiting patterns.
Resource Loading Levels
| Level | When to Load | Resources |
|---|---|---|
| ALWAYS | Every phase invocation | Core workflow + essential patterns |
| CONDITIONAL | If task keywords match | Domain-specific references |
| ON_DEMAND | Only on explicit request | Deep-dive optimization guides |
Smart Router Pseudocode
The authoritative routing logic for scoped loading, weighted intent scoring, and ambiguity handling.
from pathlib import Path
SKILL_ROOT = Path(__file__).resolve().parent
RESOURCE_BASES = (SKILL_ROOT / "references", SKILL_ROOT / "assets")
DEFAULT_RESOURCE = "references/implementation/implementation_workflows.md"
TASK_SIGNALS = {
"VERIFICATION": {"verify": 2.4, "done": 2.1, "complete": 2.0, "works": 1.8},
"DEBUGGING": {"bug": 2.3, "fix": 2.0, "error": 2.4, "broken": 1.8},
"CODE_QUALITY": {"style check": 2.2, "quality check": 2.2, "check standards": 2.0},
"IMPLEMENTATION": {"implement": 2.0, "build": 1.7, "create": 1.5, "feature": 1.5},
"ANIMATION": {"animation": 2.1, "gsap": 2.3, "lenis": 2.1, "swiper": 2.1},
"FORMS": {"form": 2.0, "validation": 1.7, "submit": 1.5},
"VIDEO": {"video": 2.0, "hls": 2.4, "streaming": 2.1},
"DEPLOYMENT": {"deploy": 2.2, "minify": 2.1, "cdn": 2.0, "r2": 1.8},
"PERFORMANCE": {
"performance": 2.2,
"optimize": 1.7,
"core web vitals": 2.4,
"interaction": 1.4,
"first interaction": 2.2,
"defer": 1.5,
"deferred": 1.5,
"deferred loading": 2.3,
"pagespeed": 2.2,
"lighthouse": 2.2,
"tbt": 2.4,
"inp": 2.4,
"main thread": 1.8,
"long task": 1.8,
"long tasks": 1.9,
},
}
NOISY_SYNONYMS = {
"DEBUGGING": {"unstable": 1.4, "janky": 1.6, "freeze": 1.6, "stutter": 1.5, "regression": 1.3},
"PERFORMANCE": {
"cls": 1.7,
"layout shift": 1.7,
"main thread": 1.4,
"main-thread": 1.4,
"stuck frame": 1.4,
"blocking time": 1.8,
"interaction delay": 1.8,
},
"FORMS": {"duplicate submit": 1.9, "double submit": 1.9, "slow network": 1.2},
"VERIFICATION": {"before claiming": 1.6, "prove": 1.4, "evidence": 1.3},
}
MULTI_SYMPTOM_TERMS = ["janky", "stutter", "freeze", "cls", "duplicate", "flaky", "intermittent", "regression"]
UNKNOWN_FALLBACK_CHECKLIST = [
"Identify primary failing surface (animation, forms, layout, network)",
"Capture one reproducible browser trace (console + performance profile)",
"Confirm target environment (mobile/desktop and browser)",
"State expected completion evidence (Lighthouse, lint, runtime checks)",
]
RESOURCE_MAP = {
"IMPLEMENTATION": ["references/implementation/implementation_workflows.md"],
"CODE_QUALITY": ["assets/checklists/code_quality_checklist.md", "references/standards/code_style_enforcement.md"],
"DEBUGGING": ["assets/checklists/debugging_checklist.md", "references/debugging/debugging_workflows.md"],
"VERIFICATION": ["assets/checklists/verification_checklist.md", "references/verification/verification_workflows.md"],
"ANIMATION": ["references/implementation/animation_workflows.md", "references/implementation/observer_patterns.md"],
"FORMS": ["references/implementation/form_upload_workflows.md", "references/implementation/implementation_workflows.md"],
"VIDEO": ["references/implementation/implementation_workflows.md"],
"DEPLOYMENT": ["references/deployment/minification_guide.md", "references/deployment/cdn_deployment.md"],
"PERFORMANCE": [
"references/performance/interaction_gated_loading.md",
"assets/checklists/performance_loading_checklist.md",
"references/performance/cwv_remediation.md",
"references/performance/resource_loading.md",
"references/performance/third_party.md",
"references/performance/webflow_constraints.md",
"references/implementation/performance_patterns.md",
"references/implementation/async_patterns.md",
],
}
LOADING_LEVELS = {
"ALWAYS": [DEFAULT_RESOURCE],
"ON_DEMAND_KEYWORDS": ["deep dive", "full checklist", "full performance plan"],
"ON_DEMAND": ["assets/checklists/code_quality_checklist.md", "assets/checklists/verification_checklist.md"],
}
def _task_text(task) -> str:
return " ".join([
str(getattr(task, "description", "")),
str(getattr(task, "query", "")),
str(getattr(task, "text", "")),
" ".join(getattr(task, "keywords", []) or []),
]).lower()
def _guard_in_skill(relative_path: str) -> str:
resolved = (SKILL_ROOT / relative_path).resolve()
resolved.relative_to(SKILL_ROOT)
if resolved.suffix.lower() != ".md":
raise ValueError(f"Only markdown resources are routable: {relative_path}")
return resolved.relative_to(SKILL_ROOT).as_posix()
def discover_markdown_resources() -> set[str]:
docs = []
for base in RESOURCE_BASES:
if base.exists():
docs.extend(p for p in base.rglob("*.md") if p.is_file())
return {doc.relative_to(SKILL_ROOT).as_posix() for doc in docs}
def score_intents(task):
"""Weighted intent scoring from request text and phase signals."""
text = _task_text(task)
scores = {intent: 0.0 for intent in TASK_SIGNALS}
for intent, terms in TASK_SIGNALS.items():
for term, weight in terms.items():
if term in text:
scores[intent] += weight
for intent, synonyms in NOISY_SYNONYMS.items():
for term, weight in synonyms.items():
if term in text:
scores[intent] += weight
if getattr(task, "phase", "") == "verification" or getattr(task, "claiming_complete", False):
scores["VERIFICATION"] += 5
if getattr(task, "phase", "") == "debugging":
scores["DEBUGGING"] += 5
return scores
def select_intents(scores: dict[str, float], task_text: str, ambiguity_delta: float = 0.8, base_max_intents: int = 2, adaptive_max_intents: int = 3) -> list[str]:
ranked = sorted(scores.items(), key=lambda item: item[1], reverse=True)
if not ranked or ranked[0][1] <= 0:
return ["IMPLEMENTATION"]
noisy_hits = sum(1 for term in MULTI_SYMPTOM_TERMS if term in (task_text or ""))
max_intents = adaptive_max_intents if noisy_hits >= 3 else base_max_intents
selected = [ranked[0][0]]
for intent, score in ranked[1:]:
if score <= 0:
continue
if (ranked[0][1] - score) <= ambiguity_delta:
selected.append(intent)
if len(selected) >= max_intents:
break
return selected[:max_intents]
def route_frontend_resources(task):
inventory = discover_markdown_resources()
task_text = _task_text(task)
scores = score_intents(task)
intents = select_intents(scores, task_text, ambiguity_delta=0.8)
loaded = []
seen = set()
def load_if_available(relative_path: str) -> None:
guarded = _guard_in_skill(relative_path)
if guarded in inventory and guarded not in seen:
load(guarded)
loaded.append(guarded)
seen.add(guarded)
for relative_path in LOADING_LEVELS["ALWAYS"]:
load_if_available(relative_path)
if sum(scores.values()) < 0.5:
load_if_available("assets/checklists/debugging_checklist.md")
load_if_available("assets/checklists/verification_checklist.md")
return {
"intents": ["IMPLEMENTATION"],
"intent_scores": scores,
"load_level": "UNKNOWN_FALLBACK",
"needs_disambiguation": True,
"disambiguation_checklist": UNKNOWN_FALLBACK_CHECKLIST,
"resources": loaded,
}
for intent in intents:
for relative_path in RESOURCE_MAP.get(intent, []):
load_if_available(relative_path)
text = task_text
if "lenis" in text:
load_if_available("references/implementation/animation_workflows.md")
if "hls" in text:
load_if_available("references/implementation/implementation_workflows.md")
if any(keyword in text for keyword in LOADING_LEVELS["ON_DEMAND_KEYWORDS"]):
for relative_path in LOADING_LEVELS["ON_DEMAND"]:
load_if_available(relative_path)
if not loaded:
load_if_available(DEFAULT_RESOURCE)
return {"intents": intents, "intent_scores": scores, "resources": loaded}
3. HOW IT WORKS
Development Lifecycle
Frontend development flows through phases with a mandatory quality gate:
Research (optional) → Implementation → Code Quality Gate → Debugging (if issues) → Verification (MANDATORY)
Phase 0: Research (Optional)
When to Use: Complex performance issues, unfamiliar codebases, architectural decisions.
Performance Audit Workflow
Before implementing performance fixes, conduct systematic analysis:
-
Capture Baseline Metrics
- Run PageSpeed Insights (Mobile + Desktop)
- Record: LCP, FCP, TBT, CLS, Speed Index
- Screenshot the waterfall diagram
-
Identify Root Cause
- Use 10-agent research methodology for comprehensive analysis
- Map the critical rendering path
- Identify blocking resources
-
Document Constraints
- Platform limitations (Webflow, CMS, etc.)
- Third-party dependencies
- Business requirements
10-Agent Research Methodology
For complex codebase analysis, dispatch parallel agents:
| Agent | Focus Area |
|---|---|
| 1 | HTML loading strategy |
| 2 | JavaScript bundle inventory |
| 3 | Third-party scripts |
| 4 | CSS performance |
| 5 | LCP/Images analysis |
| 6 | Above-fold resources |
| 7 | Animation performance |
| 8 | Initialization patterns |
| 9 | External libraries |
| 10 | Network waterfall |
See: references/research/multi_agent_patterns.md
Skip Phase 0 When
- Simple, isolated fixes
- Clear requirements with known solution
- Time-critical hotfixes
Phase 1: Implementation
Implementation involves three specialized workflows:
-
Condition-Based Waiting - Replace arbitrary setTimeout with condition polling
- Wait for actual conditions, not timeouts
- Includes timeout limits with clear errors
- Handles: DOM ready, library loading, image/video ready, animations
-
Defense-in-Depth Validation - Validate at every layer data passes through
- Layer 1: Entry point validation
- Layer 2: Processing validation
- Layer 3: Output validation
- Layer 4: Safe access patterns
-
CDN Version Management - Update version parameters after JS changes
- Manual version increment workflow (see Section 4)
- Updates all HTML files referencing changed JS
- Forces browser cache refresh
-
Animation Visibility Gates - Use IntersectionObserver for animation control
- 0.1 threshold for animation start/stop (10% visibility)
- Controls video autoplay and Swiper pagination
- Prefer SharedObservers (
window.SharedObservers.observe()) with raw IO fallback - See observer_patterns.md for patterns
See implementation_workflows.md for complete workflows.
Phase 1.5: Code Quality Gate
Before claiming implementation is complete, validate code against style standards:
-
Identify File Type - Determine which checklist sections apply:
- JavaScript (
.js): Sections 2-7 (13 P0 items) - CSS (
.css): Section 8 (4 P0 items) - Both: All sections (17 P0 items)
- JavaScript (
-
Load Checklist - Load code_quality_checklist.md
-
Validate P0 Items - Check all P0 (blocking) items for the file type:
JavaScript P0 Items:
- File header format (three-line with box-drawing characters)
- Section organization (IIFE, numbered headers)
- No commented-out code
- snake_case naming conventions
- CDN-safe initialization pattern
CSS P0 Items:
- Custom property naming (semantic prefixes:
--font-*,--vw-*, etc.) - Attribute selectors use case-insensitivity flag
i - BEM naming convention (
.block--element,.block-modifier) - GPU-accelerated animation properties only (
transform,opacity,scale)
-
Validate P1 Items - Check all P1 (required) items for the file type
-
Fix or Document - For any failures:
- P0 violations: MUST fix before proceeding
- P1 violations: Fix OR document approved deferral
- P2 violations: Can defer with documented reason
-
Only Then - Proceed to verification or claim completion
Formal review output remains baseline-owned: use sk-code--review for severity-ranked findings and treat this phase as overlay compliance evidence.
Gate Rule: If ANY P0 item fails, completion is BLOCKED until fixed.
See code_style_enforcement.md for remediation instructions.
Phase 2: Debugging
Systematic Debugging uses a 4-phase framework: Root Cause Investigation → Pattern Analysis → Hypothesis Testing → Implementation. Key principle: Test one change at a time; if 3+ fixes fail → question approach.
Root Cause Tracing: Trace backward from symptom → immediate cause → source. Fix at source, not symptom.
See debugging_workflows.md for complete workflows.
Phase 3: Verification
The Gate Function - BEFORE claiming any status:
- IDENTIFY: What command/action proves this claim?
- OPEN: Launch actual browser
- TEST: Execute the interaction
- VERIFY: Does browser show expected behavior?
- VERIFY: Multi-viewport check (mobile + desktop)
- VERIFY: Cross-browser check (if critical)
- RECORD: Note what you saw
- ONLY THEN: Make the claim
Browser Testing Matrix:
Minimum (ALWAYS REQUIRED):
- Chrome Desktop (1920px)
- Mobile emulation (375px)
- DevTools Console - No errors
Standard (Production work):
- Chrome Desktop (1920px)
- Chrome Tablet emulation (991px)
- Chrome Mobile emulation (375px)
- DevTools console clear at all viewports
See verification_workflows.md for complete requirements.
4. RULES
Phase 1: Implementation
✅ ALWAYS
- Wait for actual conditions, not arbitrary timeouts (include timeout limits)
- Validate all inputs: function parameters, API responses, DOM elements
- Sanitize user input before storing or displaying
- Update CDN versions after JavaScript modifications
- Use optional chaining (
?.) and try/catch for safe access - Log meaningful success/error messages
- Use validated timing constants: 64ms throttle (pointer), 180ms debounce (validation), 200ms debounce (resize), 0.1 IntersectionObserver threshold
❌ NEVER
- Use
setTimeoutwithout documenting WHY - Assume data exists without checking
- Trust external data without validation
- Use innerHTML with unsanitized data
- Skip CDN version updates after JS changes
⚠️ ESCALATE IF
- Condition never becomes true (infinite wait)
- Validation logic becoming too complex
- Security concerns with XSS or injection attacks
- Script reports no HTML files found
- CDN version cannot be determined
See implementation_workflows.md for detailed rules.
Phase 1.5: Code Quality Gate (MANDATORY for all code files)
✅ ALWAYS
- Load code_quality_checklist.md before claiming implementation complete
- Identify file type (JavaScript → Sections 2-7, CSS → Section 8)
- Validate all P0 items for the applicable file type
- Fix P0 violations before proceeding
- Document any P1/P2 deferrals with reasons
- Use code_style_enforcement.md for remediation guidance
- Use
sk-code--reviewbaseline for formal findings-first review output
❌ NEVER (JavaScript)
- Skip the quality gate for "simple" changes
- Claim completion with P0 violations
- Use commented-out code (delete it)
- Use camelCase for variables/functions (use snake_case)
- Skip file headers or section organization
❌ NEVER (CSS)
- Use generic custom property names without semantic prefixes
- Omit case-insensitivity flag
ion data attribute selectors - Use inconsistent BEM naming (mix snake_case, camelCase)
- Animate layout properties (width, height, top, left, padding, margin)
- Set
will-changepermanently in CSS (set dynamically via JS)
⚠️ ESCALATE IF
- Cannot fix a P0 violation
- Standard conflicts with existing code patterns
- Unclear whether code is compliant
See code_quality_checklist.md and code_style_enforcement.md for detailed rules.
Phase 2: Debugging
✅ ALWAYS
- Open DevTools console BEFORE attempting fixes
- Read complete error messages and stack traces
- Test across multiple viewports (375px, 768px, 1920px)
- Test one change at a time
- Trace backward from symptom to root cause
- Document root cause in comments
- Remember: RAF auto-throttles to ~1fps in background tabs (no manual visibility checks needed)
❌ NEVER
- Skip console error messages
- Change multiple things simultaneously
- Proceed with 4th fix without questioning approach
- Fix only symptoms without tracing root cause
- Leave production console.log statements
⚠️ ESCALATE IF
- Bug only occurs in production
- Issue requires changing Webflow-generated code
- Cross-browser compatibility cannot be achieved
- Bug intermittent despite extensive logging
- Cannot trace backward (dead end)
- Root cause in third-party library
See debugging_workflows.md for detailed rules.
✅ Phase 3: Verification (MANDATORY)
✅ ALWAYS
- Open actual browser to verify (not just code review)
- Test mobile viewport (375px minimum)
- Check DevTools console for errors
- Test interactive elements by clicking them
- Note what you tested in your claim
❌ NEVER
- Claim "works" without opening browser
- Say "should work" or "probably works" - test it
- Test only at one viewport size
- Assume desktop testing covers mobile
- Express satisfaction before verification
⚠️ ESCALATE IF
- Cannot test in required browsers
- Real device testing required but unavailable
- Issue only reproduces in production
- Performance testing requires specialized tools
See verification_workflows.md for detailed rules.
Error Recovery
See error_recovery.md for CDN upload, minification, and version mismatch recovery procedures.
5. SUCCESS CRITERIA
Phase Completion Checklists
| Phase | Checklist | Key Criteria |
|---|---|---|
| Phase 1: Implementation | implementation_workflows.md | No arbitrary setTimeout, inputs validated, CDN updated |
| Phase 1.5: Code Quality | code_quality_checklist.md | P0 items passing, snake_case, file headers |
| Phase 2: Debugging | debugging_workflows.md | Root cause documented, fix at source |
| Phase 3: Verification | verification_checklist.md | Browser tested, multi-viewport, console clean |
Performance Targets
| Metric | Target | Tool | Metric | Target | Tool |
|---|---|---|---|---|---|
| FCP | < 1.8s | Lighthouse | CLS | < 0.1 | Lighthouse |
| LCP | < 2.5s | Lighthouse | FPS | 60fps | DevTools |
| TTI | < 3.8s | Lighthouse | Errors | 0 | Console |
Run Lighthouse 3× in Incognito with mobile emulation, use median scores.
6. EXTERNAL RESOURCES
Official Documentation
| Resource | URL | Use For |
|---|---|---|
| MDN Web Docs | developer.mozilla.org | JavaScript, DOM, Web APIs |
| Webflow University | university.webflow.com | Webflow platform patterns |
| Motion.dev | motion.dev/docs | Animation library |
| HLS.js | github.com/video-dev/hls.js | Video streaming |
| Lenis | lenis.darkroom.engineering | Smooth scroll |
Testing & Debugging
| Resource | URL | Use For |
|---|---|---|
| Chrome DevTools | developer.chrome.com/docs/devtools | Browser debugging |
| Can I Use | caniuse.com | Browser compatibility |
7. RELATED RESOURCES
Related Skills
| Skill | Use For |
|---|---|
| sk-code--review | Findings-first review baseline, severity model, risk reporting |
| sk-doc | Documentation quality, skill creation, markdown validation |
| sk-git | Git workflows, commit hygiene, PR creation |
| system-spec-kit | Spec folder management, memory system, context preservation |
| mcp-chrome-devtools | Browser debugging, screenshots, console access |
Navigation Guide
For Implementation Tasks:
- Start with Section 1 (When to Use) to confirm this skill applies
- Follow Implementation phase from Section 3 (How It Works)
- Load ALWAYS/CONDITIONAL resources from
references/implementation/
For Debugging Tasks:
- Load debugging_checklist.md
- Follow systematic debugging workflow in Section 3
- Use mcp-chrome-devtools skill for DevTools reference
For Verification Tasks:
- Load verification_checklist.md
- Complete all applicable checks
- Only claim "done" when checklist passes
8. WHERE AM I? (Phase Detection)
| Phase | You're here if... | Exit criteria |
|---|---|---|
| 0: Research | Complex issue, unfamiliar codebase | Constraints documented, plan ready |
| 1: Implementation | Writing/modifying code | Code written, builds |
| 1.5: Code Quality | Implementation done, running checklist | All P0 items passing |
| 2: Debugging | Code has bugs/failing tests | All tests passing |
| 3: Verification | Tests pass, final validation | Verified in browser |
Transitions: 0→1 (plan ready) | 1→2 (bugs found) | 2→1 (missing code) | 2→3 (fixed) | 3→1/2 (issues found). Always end with Phase 3.
9. QUICK REFERENCE
CDN Version Update
# After JS changes, update version in HTML
# Pattern: src="https://cdn.example.com/js/file.js?v=X.Y.Z"
# Increment Z for patches, Y for features, X for breaking changes
Common Commands
# Minification workflow (scripts located in .opencode/skill/sk-code--web/scripts/)
node .opencode/skill/sk-code--web/scripts/minify-webflow.mjs # Batch minify all JS
node .opencode/skill/sk-code--web/scripts/verify-minification.mjs # AST verification
node .opencode/skill/sk-code--web/scripts/test-minified-runtime.mjs # Runtime testing
# Single file minification
npx terser src/javascript/[folder]/[file].js --compress --mangle \
-o src/javascript/z_minified/[folder]/[file].js
# CDN deployment (after minification)
wrangler r2 object put project-cdn/js/[file].min.js --file src/javascript/z_minified/[file].min.js
# Version check
grep -n "v=" src/html/global.html | head -5
Success Criteria Checklist (Quick)
Implementation:
□ No arbitrary setTimeout (condition-based waiting instead)
□ All inputs validated
□ CDN versions updated
Code Quality:
□ P0 items passing
□ snake_case naming
□ File headers present
Verification:
□ Actual browser opened
□ Mobile + Desktop tested
□ Console errors: 0
□ Documented what was tested
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
cli-copilot
GitHub Copilot CLI orchestrator enabling external AI assistants to invoke the standalone 'copilot' binary for supplementary tasks including collaborative planning, cloud delegation, versatile code generation, and autonomous task execution.
system-spec-kit
Unified documentation and context preservation: spec folder workflow (levels 1-3+), CORE + ADDENDUM template architecture (v2.2), validation, and Spec Kit Memory for context preservation. Mandatory for all file modifications.
sk-code--full-stack
Stack-agnostic development orchestrator guiding developers through implementation, testing, and verification phases with automatic stack detection via marker files and bundled stack-specific knowledge.
cli-gemini
Gemini CLI orchestrator enabling any AI assistant to invoke Google's Gemini CLI for supplementary AI tasks including code generation, web research via Google Search, codebase architecture analysis, cross-AI validation, and parallel task processing.
sk-prompt-improver
Prompt engineering specialist that transforms vague requests into structured, scored AI prompts using 7 proven frameworks (RCAF, COSTAR, RACE, CIDI, TIDD-EC, CRISPE, CRAFT), DEPTH thinking methodology, and CLEAR scoring across text modes.
mcp-figma
Figma design file access via MCP providing 18 tools for file retrieval, image export, component/style extraction, team management, and collaborative commenting. Accessed via Code Mode for token-efficient workflows.
Didn't find tool you were looking for?