task
Task — Systematic Implementation Workflow
Standard 5-phase workflow for all implementation tasks with built-in quality gates.
<essential_principles>
Serena Think Checkpoints (Mandatory)
Call the following Serena tools at the specified points. Never skip them.
| Checkpoint | Tool | When | Purpose |
|---|---|---|---|
| Adherence Gate | mcp__serena__think_about_task_adherence |
Before each code edit in Phase 3 | Confirm still aligned with original task |
| Completion Gate | mcp__serena__think_about_whether_you_are_done |
Before exiting Phase 4 (Verify) | Confirm all work is truly complete |
After Phase 1 and again after Phase 2, do a short information sufficiency self-check in prose (requirements understood, relevant code located, plan covers acceptance criteria and verification). If gaps remain, gather more context before continuing—do not rely on a removed Serena tool.
Introspection Markers (Always Active)
Use these markers throughout all phases to make reasoning visible:
- 🤔 Reasoning — "🤔 The error suggests a missing dependency"
- 🎯 Decision — "🎯 Choosing approach A over B because..."
- ⚡ Performance — "⚡ This query may cause N+1"
- 📊 Quality — "📊 Checking consistency with existing patterns"
- 💡 Insight — "💡 This pattern can be reused for..."
Safety Rules
- Before destructive operations (delete, overwrite, reset): Always confirm with user
- Before code edits: Call
think_about_task_adherence - Never auto-commit: Phase 5 waits for user instruction to commit/push
- Quality gate required: Phase 4 must pass before Phase 5
</essential_principles>
Phase 1: Investigate
Understand the task and gather context.
- Parse task requirements from user input
- Read relevant code files (Grep, Read, Serena symbolic tools)
- Check external libraries with Context7 if needed
- Identify existing patterns and conventions
- Information sufficiency self-check — Confirm you understand the task, have seen the relevant code paths, and know project conventions well enough to plan. If not, keep reading or ask the user before Phase 2.
Tools: Grep, Read, Glob, mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__context7__query-docs
Phase 2: Plan
Break down the task and design the approach.
- Create task breakdown with
TodoWrite - Identify parallelizable steps:
Plan: 1) Parallel [Read A, B] → 2) Edit → 3) Parallel [Test, Lint] - Save plan to Serena Memory:
mcp__serena__write_memory("plan_<topic>", content) - Plan completeness self-check — Confirm the plan and todos cover acceptance criteria, edge cases, and how you will verify the change. Revise the plan if anything important is missing.
Output: TodoWrite entries with clear acceptance criteria per step.
Phase 3: Implement
Execute the plan with continuous adherence checks.
For each implementation step:
- Mark TodoWrite item as in-progress
- 🔶
think_about_task_adherence— Still on track? - Edit code (Edit, Write)
- Use introspection markers (🤔🎯⚡📊💡) to explain reasoning
- Mark TodoWrite item as complete
Rules:
- No
// TODO: implement later— write working code - No mock objects outside tests
- Follow existing code patterns and conventions
- Confirm with user before destructive operations
Phase 4: Verify
Run quality checks and validate correctness.
Standard Verification (always)
Run in parallel where possible:
# Parallel execution
pnpm lint &
pnpm typecheck &
pnpm test &
pnpm build &
wait
If any check fails → investigate root cause → fix in Phase 3 → re-verify.
--frontend-verify (when flag is provided)
Visual verification across platforms. Auto-detect platform from package.json:
| Dependency | Platform | Preflight | Verification Tool |
|---|---|---|---|
| (default) | Web | kill-port <port> && pnpm dev |
playwright-cli (open --headed, snapshot, screenshot) |
electron |
Electron | pnpm electron:dev |
/qa-electron skill (playwright-cli attached to Electron CDP) |
expo / react-native |
Mobile | mcp__ios-simulator__open_simulator |
iOS Simulator MCP (screenshot, ui_tap, ui_swipe) |
commander / inquirer / oclif |
CLI | shell session | Shellwright MCP (TUI/CLI operation and output verification) |
Frontend Verify Workflow:
- Pre-flight knowledge: invoke
/dndto load the drag-and-drop coordinate protocol. Ref-baseddragreports false success ondnd-kitand similar libraries — required before any Web or Electron interaction. - Preflight:
kill-port <port> && pnpm dev, confirmplaywright-cliis available (Web direct; Electron viaplaywright-cli attach --cdp=http://localhost:9222) - Scenario creation: Design test scenarios based on changes, save to Serena Memory
- Execute: Run each scenario via
playwright-cli, take screenshot after each step - Judge: All pass → continue. Any fail → return to Phase 3
Authentication for Frontend Verify
When verifying authenticated apps (SaaS dashboards, admin panels, OAuth-protected pages), use playwright-cli's auth persistence:
| Strategy | Command | Use Case |
|---|---|---|
state-save / state-load |
playwright-cli state-save auth.json |
Session cookies + localStorage. Best for most web apps |
--profile <dir> |
playwright-cli open <url> --profile ./browser-data |
Full Chromium user data dir. Best for complex OAuth (Google, GitHub SSO) |
OAuth Flow:
playwright-cli open <login-url> --headed(must be headed for OAuth redirects)- Complete OAuth manually or via
snapshot+fill+click playwright-cli state-save auth.jsonto persist session- Future runs:
playwright-cli state-load auth.jsonbefore navigating to app
Security:
- Add
auth.json,browser-data/to.gitignore - State files contain session secrets — treat as credentials
- Use
--headedfor initial OAuth setup (redirects require visible browser)
Completion Gate
🔶 think_about_whether_you_are_done — Is everything truly complete?
Phase 5: Complete
Report results and wait for user instruction.
- Present verification summary to user:
- What was changed (files, functions)
- Test results
- Screenshots (if --frontend-verify)
- Update TodoWrite — mark all items complete
- ⏸️ Wait for user instruction to commit/push
- On user confirmation:
git commit && git push
Quick Reference
/task fix the login button styling
/task add dark mode support --frontend-verify
/task refactor the API error handling
Phase Flow Diagram
[Investigate] → 🔶 info gate
↓
[Plan] → 🔶 info gate
↓
[Implement] → 🔶 adherence gate (per edit)
↓
[Verify] → 🔶 completion gate
↓
[Complete] → ⏸️ wait for user → commit/push