Review code changes for bugs, regressions, security issues, maintainability problems, and cleanup opportunities. Use when the user asks for a code review, refactor pass, cleanup pass, review comments, or a merge-readiness check on changed code.
Create test plans and focused automated tests that cover happy paths, edge cases, failures, and state transitions. Use when the user asks for QA planning, test cases, edge-case coverage, unit or integration tests, or a release-readiness check on feature behavior.
Debug a failing feature from evidence, isolate the cause, propose the smallest safe fix, and verify the result. Use when the user shares an error, stack trace, failing behavior, terminal output, logs, or asks for root-cause analysis and a targeted fix.
Turn a rough product idea into a usable PRD with problem statement, users, scope, flows, metrics, acceptance criteria, risks, and open questions. Use when the user asks for a PRD, product spec, feature definition, discovery write-up, or planning document before UX, architecture, or coding starts.
Translate a PRD into technical decisions, data shape, boundaries, folder structure, and implementation slices. Use when the user asks for architecture, system design, stack choices, app structure, APIs, repositories, services, or a tech lead handoff before coding starts.
Review a feature, architecture, or code path for practical security risks including auth, permissions, secrets, data exposure, abuse cases, and release blockers. Use when the user asks for a security review, threat model, permissions check, data-handling sanity check, or pre-release risk scan.
Implement a feature in small, testable slices using Composer-style multi-file work. Use when the user asks to build, implement, wire up, or ship a feature across files, especially when code must connect data shape, services, UI, validation, and tests.
Design user journeys, flows, screen logic, and state handoffs before visual UI work starts. Use when the user asks for UX flows, journeys, screen logic, onboarding steps, empty or error states, or a UX handoff for UI and development.