agentleFS
OpenPerfAgentOpenPerfAgent/who-ate-my-flops/skills/diagnose/SKILL.md

diagnose

Skill35 starsChanged 44 days agoApache-2.0View on GitHub

Profile the job defined in contract.md, name the one thing it loses most time to, and propose a single fix with a measured number behind it. It stops at the first finding. optimize is this same work repeated until nothing worth doing is left.

193 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use zoom-out, to-prd 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.
  • victorgarciaesgiSkill

    zoom-out

    Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.

    Also in 61 projects that use this

  • GoogleSkill

    to-prd

    Turn the current conversation into a PRD and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

    Also in 56 projects that use this

  • GoogleSkill

    to-issues

    Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.

    Also in 53 projects that use this

  • simo97Skill

    edit-article

    The user will invoke this skill to help them edit an article.

    Also in 17 projects that use this

  • simo97Skill

    write-a-skill

    Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.

    Also in 44 projects that use this

  • AnasX7Skill

    setup-pre-commit

    Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

    Also in 27 projects that use this

  • +4 more from simo97

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 174 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

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

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

    Use the setup-baseline skill.

    line 16
  2. Very specific:

    Do not arm anything. The registry and the Claude Code watchdog keep a campaign turning for hours, and this is one pass.

    line 26
  3. Distinctive:

    Read all five views before naming anything.

    line 36
  4. Distinctive:

    Do not rank by kernel time.

    line 41
  5. Very specific:

    Write latest-report.md for the reader named in contract.md, as short as you can, carrying a status: closed line of its own:

    line 67
  6. Very specific:

    Write records/mistakes.md as you go, in the same turn you get something wrong.

    line 79

“Common” is measured: kept by at least 6 in 10 of the 174 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

diagnose is a sequence of steps. Work through them one at a time and mark each one done as you go.

It stops after one finding, one fix and the measurement that proves it. The user chose this over optimize because they want an answer in an hour rather than a branch in a day, and a second finding they did not ask for costs them that hour.

Step 1: setup

Use the setup-baseline skill. It builds the worktree and the workspace, has extract-computation-graph write records/computation_graph.json and records/execution_schedule.json, then measures the base commit for speed, memory and correctness, profiles it in full with torch-profile, and records it with workspace.py add --verdict base. A workspace left in that shape is one optimize can pick up later without profiling the base again.

The tolerance it derives is what step 3 reads the fix against. Without it a fix has no number for whether the job still computes the same thing.

Do not arm anything. The registry and the Claude Code watchdog keep a campaign turning for hours, and this is one pass. They belong to optimize.

Step 2: the one finding

setup-baseline left the traces under commits/<base sha>/trace/, the rendered views beside them and the diagnosis at commits/<base sha>/report.md. This step reads them and picks one.

Read all five views before naming anything. "The largest" is a claim about the other four, so ranking them is what earns it.

Take the top finding by what it costs in wall clock: the part not already hidden behind other work, multiplied by its repeat count from records/computation_graph.json. Do not rank by kernel time. A collective that is fully hidden costs nothing, and a 2 ms stall on every one of forty blocks outranks a 60 ms one-off.

The finding carries everything torch-profile's ③ asks for. The code_anchor and the cost ceiling are the two the user reads first.

Step 3: the one fix

Pick the fix by optimize's Tradeoffs: architecture, breadth, memory, precision.

Then prove it, on the same benchmark script and the same node:

  • an interleaved timed pair against the base, so the two arms see the same machine
  • the recorder's comparison against the baseline record, at the tolerance derived in step 1

Record it with workspace.py add, with the tradeoffs in the --why text.

A fix that does not hold still answers the question. The finding stands, the fix did not, and the number says by how much. Write that down rather than going after a second finding to rescue the run. Another fix for the same finding is in scope; the next finding is not.

Step 4: closing

Write latest-report.md for the reader named in contract.md, as short as you can, carrying a status: closed line of its own:

  • where the time goes, for the whole run and for one step
  • the finding: what it is, its code_anchor, what it costs as a ceiling
  • the fix, what it traded, and the before and after on the hardware it was measured on
  • the correctness result, including any check that exceeded its tolerance
  • what looked expensive and was not
  • the rest of the ranked findings, one line each, and that optimize works through them

Write records/mistakes.md as you go, in the same turn you get something wrong.

workspace.py finish is optimize's loop condition and this is not a loop, so do not run it. Stop here. The user decides whether to run publish-pr for an issue and a PR, or optimize to keep going.

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.