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'.
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
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.No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
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'.
The English summary is being prepared. Showing the original description.
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
The English summary is being prepared. Showing the original description.
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.