Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
中文简介正在准备中。当前显示原文说明。
Use when implementing, debugging, refactoring, or reviewing code — enforces the think → analyze → verify → execute workflow — even when the user just says 'implement X' without naming it.
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Do NOT use when only explaining concepts or writing pure reference documentation without execution.
Act like a real developer: think before acting, analyze before coding, verify before concluding. Avoid unnecessary trial-and-error. Minimize output, token usage, and irrelevant data. Develop against expected behavior, ideally test-first.
Use the smallest, most targeted tool that gives the needed evidence. If a tool is available as MCP server, prefer it over manual alternatives.
| What changed | Primary tool | MCP alternative |
|---|---|---|
| Backend/API endpoint | curl -s | jq | Postman MCP (if configured) |
| Frontend/UI | Manual browser check | Playwright MCP (navigate + snapshot) |
| Execution flow/debugging | Print statements, logs | Xdebug MCP (breakpoints, variable inspection) |
| CLI commands/jobs | Run command, check exit code | — |
| Database | SQL query, migration status | — |
| External APIs | Http::fake() in tests | Postman MCP for manual checks |
If Xdebug is available (as MCP or IDE integration):
Use Xdebug before adding print statements or debug logging. It's faster and leaves no cleanup work.
When UI changes are involved:
jq for JSON: curl -s /api/users | jq '.[0] | {id, email}' — never the full responserg, grep for text: specific patterns, not full fileshead, tail, cut, sort, uniq for narrowing results--filter, --json, --format flags on CLI tools — always use themphp artisan route:list --json | jq '…', Rails bin/rails routes | grep users, Express console.log(app._router.stack), FastAPI app.routes, Symfony bin/console debug:router.rg "request_id=abc123" <log-dir> — never cat <log-file>. Log dirs by stack: Laravel storage/logs/, Rails log/, Node ./logs/ or journalctl, Python ./logs/ or journalctl, Docker docker compose logs <svc> --since 5m.Do NOT:
Before acting, verify:
If important information is missing:
memory-access, call
retrieve(types=["domain-invariants"], keys=<touched paths>, limit=3).
A matching domain-invariant is a hard constraint — violating it = regression,
surface the conflict to the user before proceeding. For architectural rationale
(why the current shape exists), check the ADR index
docs/decisions/INDEX.md; plan around it, do
not silently overturn it. Cite matching ids / ADR numbers in the plan.
See engineering-memory-data-format
for the schema.Prefer test-driven or test-first development whenever practical.
Before changing code, define:
Prefer: write or update failing test first → implement against it → run tests again.
If full TDD is not practical: at least write down the expected output before coding.
# Route lookup — pick the project's framework
php artisan route:list --json | jq '.[] | select(.uri == "api/users") | {method, uri, name, action, middleware}' # Laravel
bin/console debug:router --format=json | jq '.[] | select(.path == "/api/users")' # Symfony
bin/rails routes -g users # Rails
curl -s http://localhost:3000/__routes | jq '.[] | select(.path == "/api/users")' # Express custom-introspection
curl -s http://localhost:8000/openapi.json | jq '.paths["/api/users"]' # FastAPI
# Config inspection
php artisan config:show app | grep env # Laravel
bin/console debug:config framework # Symfony
bin/rails runner 'puts Rails.application.config_for(:database)' # Rails
# API inspection — extract only what you need
curl -s http://localhost/api/users | jq '.[0] | {id, email, status}'
curl -s http://localhost/api/users/1 | jq '{id, name, roles: [.roles[].name]}'
# Recent logs — targeted, not full dump
tail -n 200 storage/logs/laravel.log | rg "payment|timeout" # Laravel
tail -n 200 log/development.log | rg "payment|timeout" # Rails
docker compose logs api --since 5m --no-color | rg "payment|timeout" # any container stack
journalctl -u myapp --since "5 min ago" | rg "payment|timeout" # systemd
# DB-state probe — targeted single record, not full table
php artisan tinker --execute="User::where('email','x@y')->first(['id','email','status'])" # Laravel
bin/rails runner "p User.where(email: 'x@y').first&.slice(:id,:email,:status)" # Rails
bin/console doctrine:query:sql "SELECT id,email,status FROM users WHERE email='x@y' LIMIT 1" # Symfony
psql -d mydb -c "SELECT id,email,status FROM users WHERE email='x@y' LIMIT 1" # raw SQL fallback
When available (MCP or IDE), prefer over print/log debugging:
1. Set breakpoint at suspected method
2. Trigger request: curl -s http://localhost/api/endpoint
3. Inspect variables at breakpoint
4. Step through execution to verify actual flow
5. Remove breakpoint when done — zero cleanup
When UI is affected, verify with Playwright (MCP or direct):
Use rg over broad grep, jq for JSON, cut/awk/sort/uniq to reduce noise.
Never load full output into context when a filter gives you the answer.
Tests are mandatory when behavior changes or bugs are fixed.
Prefer: failing test first → implementation → passing test.
Test types: unit (isolated logic), feature/integration (behavior), UI (frontend), regression (bugs).
If a test cannot be added: state exactly why and explain what verification replaces it.
Never trust "it should work" — execute and observe.
| What | How | MCP alternative |
|---|---|---|
| Backend/API | curl -s | jq, test endpoint | Postman MCP |
| Frontend/UI | Browser check | Playwright MCP (navigate + snapshot) |
| Execution flow | Logs, print debug | Xdebug MCP (breakpoints, step-through) |
| CLI/Jobs | Run command, check exit code | — |
| Database | Query result, migration status | — |
| Skills/rules | Lint, structure check | — |
If a debugging/testing tool is available as MCP server — prefer it over manual alternatives.
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
中文简介正在准备中。当前显示原文说明。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
中文简介正在准备中。当前显示原文说明。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
中文简介正在准备中。当前显示原文说明。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
中文简介正在准备中。当前显示原文说明。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
中文简介正在准备中。当前显示原文说明。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
中文简介正在准备中。当前显示原文说明。