agentleFS
lucastosettolucastosetto/dev-skills/skills/investigate/SKILL.md

investigate

Skill0 starsChanged 26 days agoMITView on GitHub

Read-only root-cause investigation of any reported problem (bug, incident, error traceback, support ticket, Slack thread, customer complaint, unexpected data or behavior), proven with the project's own logs, metrics, traces, error tracker and data. Considers software, client action, data/config, third party and working-as-designed causes. Ends with drafted ticket and support reply for confirmation. Use on "investigate", "debug", "look into", "diagnose", "root cause", "why did this happen", "/investigate", or a pasted problem report.

128 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use pair-agent, plan-devex-review and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • seek888Skill

    pair-agent

    Pair a remote AI agent with your browser. One command generates a setup key and prints instructions the other agent can follow to connect. Works with OpenClaw, Hermes, Codex, Cursor, or any agent that can make HTTP requests. The remote agent gets its own tab with scoped access (read+write by default, admin on request). Use when asked to "pair agent", "connect agent", "share browser", "remote browser", "let another agent use my browser", or "give browser access". (gstack) Voice triggers (speech-to-text aliases): "pair agent", "connect agent", "share my browser", "remote browser access".

    Also in 10 projects that use this

  • seek888Skill

    plan-devex-review

    Interactive developer experience plan review. Explores developer personas, benchmarks against competitors, designs magical moments, and traces friction points before scoring. Three modes: DX EXPANSION (competitive advantage), DX POLISH (bulletproof every touchpoint), DX TRIAGE (critical gaps only). Use when asked to "DX review", "developer experience audit", "devex review", or "API design review". Proactively suggest when the user has a plan for developer-facing products (APIs, CLIs, SDKs, libraries, platforms, docs). (gstack) Voice triggers (speech-to-text aliases): "dx review", "developer experience review", "devex review", "devex audit", "API design review", "onboarding review".

    Also in 13 projects that use this

  • ShreyRaviSkill

    landing-report

    Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)

    Also in 7 projects that use this

  • ayudaySkill

    setup-deploy

    Configure deployment settings for /land-and-deploy. Detects your deploy platform (Fly.io, Render, Vercel, Netlify, Heroku, GitHub Actions, custom), production URL, health check endpoints, and deploy status commands. Writes the configuration to CLAUDE.md so all future deploys are automatic. Use when: "setup deploy", "configure deployment", "set up land-and-deploy", "how do I deploy with gstack", "add deploy config".

    Also in 14 projects that use this

  • ayudaySkill

    cso

    Chief Security Officer mode. Performs OWASP Top 10 audit, STRIDE threat modeling, attack surface analysis, auth flow verification, secret detection, dependency CVE scanning, supply chain risk assessment, and data classification review. Use when: "security audit", "threat model", "pentest review", "OWASP", "CSO review".

    Also in 17 projects that use this

  • ramybarsoumSkill

    document-release

    Post-ship documentation update. Reads all project docs, cross-references the diff, updates README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md to match what shipped, polishes CHANGELOG voice, cleans up TODOS, and optionally bumps VERSION. Use when asked to "update the docs", "sync documentation", or "post-ship docs". Proactively suggest after a PR is merged or code is shipped.

    Also in 18 projects that use this

  • +1 more from seek888

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 1 is distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 115 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Follow ../../shared/policy.md.

    line 14
  2. Very specific:

    No changes: no code edits, commits, branches, PRs, ticket changes, messages, or writes to any shared DB/cache/queue/service.

    line 18
  3. Very specific:

    Run dev-skills:gather-context on the inputs.

    line 29
  4. Very specific:

    Use dev-skills:observe for the target and window, plus:

    line 45
  5. Very specific:

    When the answer depends on record state, give copy-paste read-only console commands (see the profile's console), each noting which …

    line 52
  6. Very specific:

    Ticket: when the cause is a confirmed bug and no ticket exists (search the tracker first): draft title, description (problem, root cause …

    line 68
  7. Distinctive:

    Support reply: when the input came from a support thread or customer: what happened, why, what happens next, in plain words for the …

    line 71

“Common” is measured: kept by at least 6 in 10 of the 115 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Investigate

Follow ../../shared/policy.md. Run dev-skills:project-profile first. Goal: explain why it happened, proven with data. Output is a finding, not a fix.

Rules

  • No changes: no code edits, commits, branches, PRs, ticket changes, messages, or writes to any shared DB/cache/queue/service. Local dev data during a local repro is fine. If the fix is obvious, name it in one line.
  • Every claim needs data, including claims in the report itself ("it's the cron", "we changed nothing", "customer X has no Y"), from teammates, clients, bots or AI triage. They are hypotheses until a log line, metric, trace, record or code read backs them. Mark each confirmed / partly / refuted / unverified.
  • Never run commands against production yourself. Hand read-only console commands to the user. MCP read tools (logs, metrics, traces, tickets) are fine to call directly.

1. Frame the case

Run dev-skills:gather-context on the inputs. Then write 3-5 lines: who (tenant/user/record ids), what, expected vs actual, when (timestamp + timezone, or a window), scope (one client or many). List each claim as H1, H2..., and add competing explanations from every category:

  • Software: bug, regression, race, bad deploy.
  • Client/user action: wrong input, misuse, steps out of order, their integration or config wrong, stale info. Their expectation may be the wrong part.
  • Data/config: record state, flag, account/plan settings, migration leftovers.
  • Third party/infra: provider outage, webhook delay, rate limit, capacity.
  • Working as designed: correct per code/docs; the gap is docs, UX or communication.

2. Trace the code

Entry point → logic → data layer (plus jobs, webhooks, frontend). file:line for each decision point that could produce the symptom, including validations the client's input could hit. git log on those files around the incident time.

3. Evidence

Use dev-skills:observe for the target and window, plus:

  • What the client actually did: their exact requests (params, order, timing, client), audit or activity logs, compared with what they say they did.
  • Deploys, annotations, alerts in the window. Quote the decisive line or number. Empty results count as evidence after checking labels and timezone.

4. Data (handed to the user)

When the answer depends on record state, give copy-paste read-only console commands (see the profile's console), each noting which hypothesis it tests. Only reads (find, where, count, pluck, exists?, values_list, history tables). Prefer change history (PaperTrail versions, django-simple-history, audit logs) to tell client action from system action. Small output, no PII dumps. Wait for the pasted output and iterate.

5. Reproduce (when it helps)

For a suspected software cause, run dev-skills:qa in repro mode with the client's exact steps or payload. A matching failure is the strongest evidence; a clean run points back to data/config/client.

6. Conclude

The root cause must explain every observed fact (who, when, scope); if not, keep digging or say so. Separate the trigger from the root cause. When the client caused it, say so plainly with evidence, and note whether the product made the mistake easy.

7. Drafts

  • Ticket: when the cause is a confirmed bug and no ticket exists (search the tracker first): draft title, description (problem, root cause with file:line, impact, fix direction), and fields per the tracker. Confirmation list.
  • Support reply: when the input came from a support thread or customer: what happened, why, what happens next, in plain words for the audience, without internal details they don't need. Confirmation list.

Output

Save investigation.md (and the final repro script, if any) in the work folder. Print:

# <issue> — <one-line title>
**Problem:** <who / what / expected vs actual / when>
**Category:** software | client action | data/config | third party/infra | working as designed
**Root cause:** <mechanism, 1-3 lines> — `path:LINE`
**Trigger:** <event that set it off, if different>
**Evidence:**
- Code: `file:line` — <what it does>
- Client activity: <what they did vs reported | n/a>
- Logs/errors: <decisive line or count | none in window>
- Metrics/traces: <change + time; this client vs everyone | n/a>
- Data (user-run): <result | pending>
- Local repro: <reproduced | not reproduced | skipped> — <how>
**Claims:** H1 "<claim>" — confirmed | partly | refuted | unverified — <evidence>
**Impact:** <affected clients/records, how counted>
**Fix direction (not applied):** <one line>
**Gaps:** <missing source or question + the query that would close it>
<confirmation list: ticket draft, support reply draft>

With incomplete evidence, say so and give the single next step. Never present a hypothesis as the cause.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.