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.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
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.
日本語の概要は準備中です。原文の説明を表示しています。