agentleFS
dynos-fitdynos-fit/dynos-work/skills/investigate/SKILL.md

investigate

Skill2 starsChanged 8 months agoMITView on GitHub

Deep bug investigation. Pass a short description of the problem — error message, unexpected behavior, or failing test. Returns structured root cause analysis with evidence and fix recommendation. Runs only when the user explicitly types /dynos-work:investigate; never auto-triggered from conversation or by reported bugs.

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

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 115 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every conclusion must cite a pre-minted evidence ID from the dossier.

    line 13
  2. Distinctive:

    If the evidence does not support a claim, say so instead of guessing.

    line 14
  3. Very specific:

    Create an investigation directory inside the project's .dynos/ (never /tmp — the write policy denies it), then run the triage orchestrator …

    line 18
  4. Very specific:

    If a task dir exists, grant the investigator role before the spawn (enforces dossier-only reads in the hook): python3 …

    line 37

“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

dynos-work: investigate

Runs a deterministic-first investigation pipeline: triage first, reasoning second, citation validation third. The LLM never gathers evidence on its own — it reasons over a pre-built dossier, and that guarantee is enforced in code: the investigator role's Read access is restricted to the investigations directory and its Grep/Glob calls are denied by the pre-tool-use hook.

Ruthlessness Standard

  • Name the mechanism, not the symptom.
  • Every conclusion must cite a pre-minted evidence ID from the dossier.
  • If the evidence does not support a claim, say so instead of guessing.

Phase 1 — Deterministic Evidence Gathering

Create an investigation directory inside the project's .dynos/ (never /tmp — the write policy denies it), then run the triage orchestrator before invoking the LLM:

INVESTIGATION_DIR=".dynos/investigations/$(date +%Y%m%d-%H%M%S)"
mkdir -p "$INVESTIGATION_DIR"
python3 "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}/debug-module/triage.py" --bug "<bug text>" --repo . --out "$INVESTIGATION_DIR/dossier.json"

This produces an evidence dossier with pre-minted evidence IDs, git blame ranges, and co-change history. The LLM does not gather evidence — it reasons over what triage has already found, so triage puts the code the bug text names into the dossier:

  • F-NNN — each mentioned file that exists in the repo (path, size, line count, a short numbered head), plus a numbered snippet for every file.py:123 or file.py:120-140 reference (and stack-frame line).
  • SY-NNN — the definition of each identifier the bug text names (backticked, name(), snake_case, camelCase, dotted, UPPER_CASE constants, and cmd_* handlers derived from kebab-case CLI subcommands like clear-role): file, line range, and up to 120 numbered source lines. Looked up in the mentioned files first, then repo-wide for distinctive names.
  • MF-NNN / S-NNN — linter and Semgrep silent-accomplice findings, limited to the mentioned files when any resolve (capped at 100 each otherwise).
  • T-NNN, ST-NNN, CG-NNN — test results, stack frames, coverage gaps.

evidence_scope in the dossier records which files and symbols resolved, which did not, and how many out-of-scope findings were dropped.

Phase 2 — Causal Reasoning

If a task dir exists, grant the investigator role before the spawn (enforces dossier-only reads in the hook): python3 "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}/hooks/ctl.py" grant-role .dynos/task-{id} --role investigator. Standalone investigations (no task) skip this.

Spawn the @investigator subagent. Pass the contents of $INVESTIGATION_DIR/dossier.json as input and instruct the agent to:

  • Trace root cause, immediate cause, and detection failure.
  • Cite only evidence IDs that exist in the dossier.
  • Return the structured bug-report JSON as its final message — a single JSON object matching debug-module/schemas/bug_report.schema.json, no prose, no markdown fences. The investigator is read-only (tools: [Read, Grep]); it must NOT attempt to write any file.

The agent must not invent file paths, symbols, or findings outside the dossier.

Phase 3 — Validation, Persistence, and Render

Pipe the agent's returned JSON into the deterministic finalize step. It validates the report structure (every claim must carry non-empty evidence_ids), mechanically verifies every cited evidence ID exists in the dossier, renders the Markdown via debug-module/lib/render_report.py (render_report.render), and persists bug_report.json + the rendered report.md — rejection exits non-zero and nothing is persisted:

python3 "${CODEX_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}/debug-module/triage.py" finalize \
  --report - \
  --dossier "$INVESTIGATION_DIR/dossier.json" <<'REPORT_JSON'
{ ...the investigator's returned JSON, verbatim... }
REPORT_JSON
  • Exit 0: print the rendered report.md content to the user.
  • Exit 1 (rejected — structural violation or unknown citation): the stderr names each violation. Re-spawn the investigator ONCE with the violations appended to its prompt; if the second attempt is also rejected, report the failure honestly. Do NOT edit the report JSON yourself to make validation pass — fabricating or trimming citations defeats the entire evidence chain.

Usage

/dynos-work:investigate <your problem description>

Examples:

/dynos-work:investigate TypeError: Cannot read properties of undefined reading 'id' at UserService.ts:47
/dynos-work:investigate the checkout flow always skips the discount calculation when coupon code is applied
/dynos-work:investigate test suite: AuthController > login > should return 401 on invalid password is failing
/dynos-work:investigate the GitHub Actions workflow fails on main but tests pass locally

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.