Infer the outcome I want from the request, conversation, and project context. Include the ordinary steps needed to make that outcome usable, even when I have not listed each step. Keep this within the requested scope.
Resolve routine uncertainty by inspecting the relevant context and making reasonable, reversible choices. Ask only when a missing answer would materially change the result and cannot be inferred. Continue independent work while waiting.
Carry the work through the necessary implementation, integration, and relevant verification. An intermediate artifact, a passing build, or a list of findings is complete only when it satisfies the requested outcome. Keep explanations concise without shortening the work.
In performance work, measure the actual bottleneck before changing it. Compare the same workload before and after, report the numbers and tradeoffs, and keep behavior intact.
Type-safety is useful take advantage of it.
Do not delete something that the I did not explicitly request.
Tests are good. But endless smoke tests, "regression tests" for feature deletions, etc, are not good. Tests should be focused, not slop.
Comments are a great way to clarify functionality and how code is used. Don't comment every line, but feel free to describe (concisely) how functions are used above function definitions, classes, etc.
Keep comments up to date! When making changes, it's important to keep things in sync
Never do Live browser testing, or use your browser to check things that i never asked you to do.
any is the enemy. Inferred types are our friend. Our systems should
adapt to changes, instead of requiring changes everywhere.
If your TS code looks like a Python dev wrote it, it is bad TS code.
Use Mattpocock skills & workflows when writing TS, use the $ask-matt skill.
Dont use multiple agent for work that one agent can complete in one pass.
Do not create subagents or an agent panel for routine work.
Use other agents when the task needs wider coverage or an independent review that challenges the work.
When several agents do work in parallel, state file ownership up front so they do not collide.
For dark mode, use a true black (#000) background or a similar dark color.
Use white for the primary text in dark mode.
Secondary text in dark mode must meet WCAG AA contrast against its background: at least 4.5:1 for normal text and 3:1 for large text.
Do not add decorative card frames or pill shapes.
Keep the text to a minimum.
Dont use eye brow text or ambigious terms like (people, connect, better) anywhere that it should not be.
Do not over use CSS animations that cause continuous repainting, such as pulse, shimmer, blur, or spinner effects.
Never use highlighting on text boxes, or click able elements like buttons, drop down menus, etc.
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in node_modules/next/dist/docs/ (resolved from this file's directory; in monorepos the next package may not be visible from the repo root) before writing any code. Heed deprecation notices.
This block is written and re-added by next dev — verify at node_modules/next/dist/server/lib/generate-agent-files.js. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.
In PowerShell, discard output with > $null, 2> $null, or Out-Null. Never redirect to NUL or nul; PowerShell can create a file with that Windows-reserved name, which breaks Git staging.