Skip to content
Automation
Skill

/self-diagnose

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.

From plugin
sutando
41087 skills20 hooks

Claude Code

$ npx -y skills add sonichi/sutando --skill self-diagnose --agent claude-code

SKILL.md

self-diagnose.SKILL.md
name: self-diagnose
description: "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."
user-invocable: true

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
Read more
@sonichi
Ships withsutando

My AI Stand — Realtime by Day, Rewriting Itself by Night. Summon my AI superpower. Voice, vision, screen, meetings, calls when I'm engaged. Learns my patterns, ships its own code when I'm not. Runs across my Macs, interacts with people & their Stands.

Stars on GitHub

Momentum

stars in total
410
Star history of sonichi/sutando on GitHub, a chart by star-history.com

Other skills on sutando.

ag2-space-mcp

ag2-space-mcp

Connect this Sutando install to AG2 Space's hosted MCP as its own agent, without the desktop app, and know which room and Commons…

@sonichi@sonichiInstall Skill
ag2space-voice

ag2space-voice

s.space voice surface — binds the room the s.space client announces to the voice session's origin, so work delegated by voice in…

@sonichi@sonichiInstall Skill
agent-activity

agent-activity

Streams what the agent is doing into the room, as rows the desktop client renders in an **events drawer** above the composer…

@sonichi@sonichiInstall Skill
agent-registry

agent-registry

Local Agent Registry — a standalone, dependency-free service that tracks running Claude Code (and other) agent instances. Agents…

@sonichi@sonichiInstall Skill
agent-room-ops

agent-room-ops

For an all-room analysis sweep, use the tested window collector and coverage contract in…

@sonichi@sonichiInstall Skill
answer-format

answer-format

Deterministic final-answer normalizer — a last-step pass for any task that ends in a *precise* answer (a number, a short string,…

@sonichi@sonichiInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about self-diagnose.

Which coding agents can use self-diagnose?
self-diagnose installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.