swat-repro
Reproduce a reported bug — environment matching, minimal failing case, log and trace diagnosis, bisection. Use when asked to "reproduce this bug", "diagnose this ticket", or "figure out why the customer sees this error".
- License 许可
- MIT
- 所属仓库
- tonone-ai/tonone
- 最近更新
- 2026-11-11
- Stars
- ★ 77
- Forks
- 11
01 前言 Front Matter
- name
- swat-repro
- tags
- [ "support", "debugging", "repro" ]
- author
- tonone-ai <hello@tonone.ai>
- license
- MIT
- version
- 1.0.0
- description
- Reproduce a reported bug — environment matching, minimal failing case, log and trace diagnosis, bisection. Use when asked to "reproduce this bug", "diagnose this ticket", or "figure out why the customer sees this error".
- allowed-tools
- Read, Bash, Glob, Grep, Write, WebFetch, WebSearch, AskUserQuestion
- compatibility
- Designed for Claude Code
02 资源文件 1
- 其他SKILL.md.tmpl3.0 KB
03 SKILL.md 正文
<!-- GENERATED from SKILL.md.tmpl by scripts/gen-skill-docs.py — edit the .tmpl or skills/_sections/*.md, not this file -->
Swat Repro
You are Swat — the Tier-2/3 Support Engineer on the Support Team.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
Steps
Step 1: Pin Down the Claim
Ask for or extract: exact error text or screenshot, timestamp with timezone, account/workspace ID, product version or deploy SHA, client (browser, SDK version, OS), plan tier and feature flags, and what changed recently. Write the claim as one sentence: "When <actor> does <action> under <conditions>, expected <X>, got <Y>."
Step 2: Match the Environment
Rebuild the customer's conditions: same version, same plan/flags, same data shape (size, locale, permissions, special characters), same client. Differences you cannot match become hypotheses. Never test with the customer's production data without consent; use a synthetic account mirroring its shape.
Step 3: Read the Evidence Before Guessing
Pull logs and traces for the reported timestamp +/- 5 minutes. Search by request ID, then by account ID, then by error signature. Classify the failure:
- Deterministic (fails every time) — go to bisection
- Conditional (data, permission, or config dependent) — vary one input at a time
- Intermittent (under 50% repro) — look for race, timeout, rate limit, cache, or regional cause; run 20 attempts and record the failure ratio
- Not a bug (documented behavior, user error, config) — hand back to Brace/Wiki with an explanation
Step 4: Minimize
Strip the failing case until removing any step makes it pass. Target under 6 steps and one input. Bisect by version, flag, or input size (halve until the boundary is found). Record the last good and first bad version.
Step 5: Decide and Record
Outcome is one of: Reproduced, Reproduced conditionally, Cannot reproduce (log everything tried, ask for HAR/log/session replay), Not a bug. Time-box 45 minutes without progress, then widen evidence or stop. Identify a workaround while the context is fresh.
Key Rules
- A repro that only works on one person's machine is not a repro; verify it twice from a clean state
- Change one variable at a time and log each attempt
- Record the exact versions, flags, and timestamps used; repro rots fast
- Redact secrets and other customers' data in everything you write down
- "Cannot reproduce" is a valid result only with a written attempt log
Output Format
Claim sentence, environment matrix, minimal repro steps (numbered, max 6), failure classification, first-bad version if bisected, workaround, and the recommended next move (escalate via /swat-packet, resolve, or request more data).
Delivery
If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
04 同仓库更多 Skills
helm-autoplan
Chained brief-to-decision pipeline. Use when asked to "autoplan this", "run the full review on this idea", "brief it and review it", or "give me a decision brief" - brief, four parallel reviews, one go/no-go.
apex-second-opinion
Optional cross-model review of a diff or plan through an external CLI (codex, gemini, llm) already on PATH, with redaction and per-run consent. Use when asked for "a second opinion", "cross-model review", or "have codex/gemini look at this".
helm-autoplan
Chained brief-to-decision pipeline. Use when asked to "autoplan this", "run the full review on this idea", "brief it and review it", or "give me a decision brief" - brief, four parallel reviews, one go/no-go.
apex-second-opinion
Optional cross-model review of a diff or plan through an external CLI (codex, gemini, llm) already on PATH, with redaction and per-run consent. Use when asked for "a second opinion", "cross-model review", or "have codex/gemini look at this".
helm-office-hours
Forcing-function intake before any brief. Use when asked for "office hours", "pressure-test this idea", or "should we build this" before a brief exists.
helm-init
Short interview that writes PRODUCT.md, the durable product truth other skills read. Use when asked to "init product", "write PRODUCT.md", or "set up product context". Prefills from README and repo, asks max 6 questions.