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 the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Reactive mode: User reports a bug, shares a Sentry issue, or asks to investigate an error. Proactive mode: User asks to audit code for hidden bugs, edge cases, or risky patterns.
Do NOT use when:
feature-planningcode-refactoringperformance-analysissecurity-auditdata-flow-mapperblast-radius-analyzerBugs can come from multiple sources — gather as many as available:
| Source | What it provides |
|---|---|
| Branch name | Auto-detected ticket ID (e.g., fix/DEV-1234/...) |
| Jira ticket | Description, acceptance criteria, comments, priority |
| Sentry issue URL | Stacktrace, affected users/environments, frequency, tags |
| Sentry event ID | Specific occurrence with full context |
| Error message | String to search in codebase |
| User description | Reproduction steps, expected vs. actual behavior |
Always check the current branch for ticket IDs:
git branch --show-current
Pattern matching:
fix/DEV-1234/description → extract DEV-1234fix/PROJ-567-some-bug → extract PROJ-567hotfix/DEV-999 → extract DEV-999agent-config git:convention ticket — commit-subject § Reading the ticketIf found, auto-fetch the ticket and confirm with the user.
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
If you haven't completed Phase 1, you cannot propose fixes. Random fixes waste time and create new bugs. Quick patches mask underlying issues.
Gather all available evidence before forming any hypothesis:
get_issue_details to fetch stacktrace, tags, environments, frequency.get_issue_tag_values for browser, URL, environment distribution.codebase-retrieval to find the relevant code.agents/settings/contexts/) for the affected area.memory-access call
retrieve(types=["historical-patterns", "incident-learnings"], keys=[<error class>, <affected file paths>], limit=3). A prior
matching pattern or incident is the single most reliable accelerator
for root-cause analysis. Cite id and path verbatim so the user
can verify the precedent.When the system has multiple layers (Controller → Service → Repository → DB, or multi-tenant DB switching), add diagnostic instrumentation before proposing fixes:
For EACH component boundary:
- Log what data enters the component
- Log what data exits the component
- Verify environment/config propagation (e.g. DB connection, tenant context)
- Check state at each layer
Run once → gather evidence → identify WHICH layer breaks → investigate that layer.
This is especially important for:
Once the root cause is confirmed, sweep for variants before closing:
first()").codebase-retrieval for the shape, not the symptom:
the same API misuse, the same copy-pasted block, the same missing guard.minimal-safe-diff's remediation carve-out) or land as a noted follow-up.Worked example: root cause $order->customer->email crashes when the
customer was soft-deleted. Signature: ->customer-> after an unguarded
relation. Sweep finds 3 more sites; 2 are variants (same nullable relation),
1 is rejected (eager-loaded with whereHas, cannot be null there).
MonitoringHelper::captureException()) for data quality issues.When asked to audit code for hidden bugs, use this workflow instead of the 4 phases above:
Trace the actual code path step by step:
For each code path, test these scenarios mentally:
| Category | What to check |
|---|---|
| Null/empty | Null inputs, empty arrays, empty strings, missing keys |
| Boundaries | Zero, negative, max int, first/last element |
| Type coercion | String "0" vs int 0, loose comparison bugs |
| Timing | Race conditions, stale cache, concurrent writes |
| State | Uninitialized state, partial updates, rollback failures |
| External | Network timeout, API errors, malformed responses |
→ PHP/Laravel bug-pattern catalogue: see php-debugging.
Before a candidate enters the report, restate it as one falsifiable sentence: the concrete input or state that triggers it, and the observable wrong behavior that follows. A candidate whose trigger you cannot name is not a finding — trace further or drop it with a one-line reason.
Route verification by severity: a Low/Medium finding with a traced trigger reports normally (Standard); a High/Critical finding gets a devil's-advocate pass first (Deep) — actively try to refute it (guard clause upstream? framework default? unreachable input?) and report only what survives. List killed candidates one-line under Rejected candidates so the triage is auditable.
For each bug found: Bug → Location → Severity → Root Cause → Trigger → Fix → Confidence
Close with Rejected candidates — one line per looks-broken-but-benign pattern the gate killed, with the traced reason.
| Command | Purpose |
|---|---|
bug-investigate | Gather context from all sources, analyze, identify root cause |
bug-fix | Plan the fix, implement, verify with tests and quality tools |
Read AGENTS.md and ./agents/ for project-specific architecture, business rules, and domain docs.
Detect the project from the repo name (see rules/architecture.md).
Check for existing contexts in agents/settings/contexts/ or module agents/settings/contexts/.
Before implementing a fix, run the adversarial-review skill.
Focus on the "Bug fixes" attack questions: Is this the root cause or a symptom? Will the fix break something else?
| Excuse | Reality |
|---|---|
| "Should work now" | RUN the verification — confidence ≠ evidence |
| "It's probably X, let me fix that" | "Probably" = guessing. Complete Phase 1 first |
| "Quick fix for now" | Quick fixes mask root causes and create technical debt |
| "I'll investigate later" | Later never comes. Investigate now |
| "One more fix attempt" (after 2+) | 3+ failures = architectural problem. Stop and discuss |
| "Issue is simple, don't need process" | Simple issues have root causes too. Process is fast for simple bugs |
| "Emergency, no time for process" | Systematic debugging is FASTER than guess-and-check thrashing |
| "It looks broken" | Pattern-recognition is not analysis — name the concrete trigger or drop it |
| "This is clearly critical" | Complete a devil's-advocate pass — models overrate severity |
| "Report it just in case" | Over-reporting erodes trust; an unverifiable finding is noise |
curl against the failing route (or an actingAs() HTTP test) before and after the fix; assert the new response shape with assertJsonPath.xdebug breakpoint at the suspect frame, step through, and inspect the stack trace; for log-only repros, dump the failing variable with dd( once, then remove.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。