agentleFS
sonichisonichi/sutando/skills/self-diagnose/SKILL.md

self-diagnose

Skill396 starsChanged 6 months agoMITView on GitHub

Sutando introspection — read logs + git + memory + build log for a chosen time window and produce a concise narrative of what the agent has been doing, what's broken, and what to prioritize next.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    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:

    Read Sutando's own observable state (logs, git, memory, build log, pending questions, health check, cold-review log) over a chosen window …

    line 9
  2. Very specific:

    Gather: Run bash skills/self-diagnose/scripts/gather.sh [window] — collects log tails, git log, build_log.md tail, pending-questions, …

    line 21
  3. Distinctive:

    Synthesize: Read each gathered file. Group findings under the three headings above.

    line 22
  4. Very specific:

    Save: Write the report to notes/diagnose-YYYY-MM-DD-HHMM.md with frontmatter (title, date, tags: [diagnose, self]).

    line 23
  5. Very specific:

    When Sutando works on one machine but is broken on another, the helper script runs gather.sh on both sides over SSH and produces a …

    line 28

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Self-Diagnose

Read Sutando's own observable state (logs, git, memory, build log, pending questions, health check, cold-review log) over a chosen window and produce a structured narrative:

  • What's been happening — significant events, PRs shipped, tasks processed, user interactions
  • What's broken — errors in logs, pending questions, health-check failures, 1006/1011/1007 transport events, unresolved bugs surfaced in logs
  • What I'd do next — concrete prioritized actions grounded in what was observed

Usage: /self-diagnose [--since 24h]

ARGUMENTS: $ARGUMENTS

Flow

  1. Gather. Run bash skills/self-diagnose/scripts/gather.sh [window] — collects log tails, git log, build_log.md tail, pending-questions, health-check output, cold-review-log, and recent Discord activity into /tmp/sutando-diagnose-<ts>/.
  2. Synthesize. Read each gathered file. Group findings under the three headings above. Be concrete: cite log lines, PR numbers, timestamps. Skip speculation.
  3. Save. Write the report to notes/diagnose-YYYY-MM-DD-HHMM.md with frontmatter (title, date, tags: [diagnose, self]).
  4. Summarize. Reply to the caller with a 5–10 line executive summary + path to the full report.

Cross-node mode (resolves #421)

When Sutando works on one machine but is broken on another, the helper script runs gather.sh on both sides over SSH and produces a structured comparison:

bash skills/self-diagnose/scripts/gather-remote.sh <ssh-target> [window]
# e.g.
bash skills/self-diagnose/scripts/gather-remote.sh mac-mini
bash skills/self-diagnose/scripts/gather-remote.sh user@macbook.local 6h

Output: /tmp/sutando-diagnose-cross-<ts>/{local,remote,diff.md} plus a persisted copy at notes/diagnose-cross-node-<YYYY-MM-DD>.md. The comparison report surfaces commit drift, health-check differences, voice-agent error counts, quota state, and PR-view divergence per side.

Override the remote sutando path via SUTANDO_REMOTE_REPO=/path/on/peer if the failing node's checkout isn't at the default ~/Desktop/sutando.

Security posture (per #421): read-only on the remote (only gather.sh runs there, no mutation), allowlist enforced by gather.sh's existing scope (no .env, no tokens), per-session SSH (no daemon, no persistent state on the remote).

Default window

24 hours if unspecified. Accept: 24h, 3d, 1w. Longer windows = broader scope, higher token cost.

What a good report looks like

  • Cites specific log timestamps (18:28:16 — transport 1006 after NoteView injection) rather than "some errors happened"
  • Lists PRs by number + status (#394 mergeable no reviews, #354 retention sweep open)
  • Separates recurring from one-off issues
  • Prioritizes "what I'd do next" by impact and blocking, not by what's most recent

What to skip

  • Verbose log dumps — the gathered files are on disk already; just reference them
  • Speculation without log evidence — "maybe the Gemini server is..." should be backed by a log line showing the close code and preceding event
  • Restating CLAUDE.md / build_log.md content — those are already durable; only surface what's NEW in the window

Related

  • notes/cold-review-capability.md — sister capability for PR-level review
  • notes/voice-transport-1006-hypothesis.md — example of the depth of analysis a self-diagnose report should match
  • build_log.md — the canonical "what has been built" log; complements but doesn't replace

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.