Build or refactor reusable Node.js APIs using Express, express.Router, ESM imports, named exports, entity classes in model/, helpers for non-endpoint logic, middleware for auth and other pre-route concerns, and route handlers that talk to model instances. Use when creating CRUD APIs, JWT auth flows, bcrypt password login, route modules, or starter API structures.
Deliver behavior changes, bug fixes, refactors, and feature work in any project with tests or explicit validation. Use when changing application behavior, updating existing tests, writing tests, reviewing missing coverage, choosing between automated and manual validation, or documenting testing gaps across backend, frontend, CLI, and database migrations.
Build or refactor reusable server-rendered web frontends using Express, render middleware, template variables, page entry files in src/js root, DOM-related component classes in components/, support helpers in helpers/, and API-backed entity classes in models/. Use when scaffolding or reorganizing frontend projects that consume an API through frontend model methods.
Codebase Search & Intelligence using SocratiCode. Use when exploring code structure, searching concepts, finding symbol usages, inspecting impact/blast radius before refactoring, tracing execution flows, checking circular dependencies, or searching non-code context artifacts. Automatically checks index status and triggers indexing if the project is not yet indexed.
Enforce reusable, brand-aware CSS architecture for public web apps by owning shared tokens in a common stylesheet, importing page entrypoints first, keeping component partials scoped, and using consistent media-query and color-token conventions.
Maintain and query the developer's persistent Obsidian vault memory, component registry, architecture decision records (ADRs), and dev changelog graph. Automatically invoke whenever creating or modifying relevant code (features, fixes, refactors, shared components), making architectural decisions, capturing technical brainstorming, or when the user references past work or component versions across projects.
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
Deeply review frontend code for rendering regressions, interaction bugs, state and URL sync defects, auth and redirect issues, accessibility gaps, date/time problems, bundle or template contract drift, and missing regression coverage. Use when auditing UI code, investigating user-facing bugs, or pairing findings with deterministic frontend tests and honest browser validation.