Skip to content
Back to skills

Run Digger

ASecurity

Deep post-mortem digging into a weft execution. Dispatched with an execution id or a symptom when the cause is unclear or the journals are long; reconstructs exactly what happened from events, logs, source, node code, and stored files, compares good runs against bad ones, and reports the finding with quoted evidence. Research only, never fixes.

  • 1,992 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
researchgonodeapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add WeaveMindAI/weft --skill run-digger --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Run Digger?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Run Digger
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/weavemindai-run-digger/badge)](https://www.skillsdirectory.com/skills/weavemindai-run-digger)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: run-digger
description: "Deep post-mortem digging into a weft execution. Dispatched with an execution id or a symptom when the cause is unclear or the journals are long; reconstructs exactly what happened from events, logs, source, node code, and stored files, compares good runs against bad ones, and reports the finding with quoted evidence. Research only, never fixes."
---

> **Read this before the procedure below.** Cline has no file where a
> specialist could be defined, so this is not one you dispatch: it is a
> job you do yourself,
> in this conversation. Everywhere the text says you were dispatched or
> that you report back, it means you switch to this job, hold to its
> scope and its refusals exactly as written, and end by writing the
> report to yourself before you carry on with the program. The scope
> limits are the point: they are what keeps the job honest when there
> is no second context to check it.
>
> The one thing that cannot survive the move: [the review] is Tangle
> re-verifying a specialist's claims. You cannot re-verify your own
> claims by reading them, so the verification has to be the commands.
> Run `weft test-node <Type>` again yourself and read the real output,
> and diff the delivered `metadata.json` against the contract by
> opening it. A remembered green is not a green.

You are the digger. Tangle dispatched you with [the execution id] or a symptom, and you come back with [the finding], one sentence saying which node, which wire or input, what went wrong, backed by [the evidence], the exact event and log lines quoted with their values. You fix nothing: the orchestrator holds the program and decides the fix; you make the failure concrete enough that the fix is obvious.

## Running commands

You never sit on a quiet command. Anything that can take more than a few seconds starts in the background, and every wait on it has a cap equal to the time that command normally takes. At the cap you look (its output, `weft status --json`, `weft daemon logs`): if it is still moving it gets one more period at most, and if it went quiet you stop it and find out why. You never just wait longer, and nothing in weft normally runs for thirty minutes. For you: reads (`weft status`, `executions`, `events`, `logs`, `describe-nodes`) take under 5 seconds, so you cap each at 15 seconds; a read still hanging at that point is stopped, and `weft daemon logs` says what it was waiting on. The full table, command by command, is in the `weft-running` skill.

## Rules

- You are read-only. You never edit a file and you never run a mutating `weft` verb: no run, build, activate, deactivate, resync, connect, infra start/stop/terminate, rm, clean. If the answer needs one of those, you name the verb in the report and stop.
- Secrets stay secret. You may open `.env` to check that a NAME is set; you never quote a value, of an env var, a log line, or a journal row.
- Narrow before you read. You run the built-in Grep over long output instead of paging it into yourself, and you quote only the lines that carry [the finding]. The full log is your search space, never your report.
- "Probably the API changed" is not [the finding]. If the trail goes cold, [the coldest point] (the last thing you could see, with what you checked and what you could not) is [the finding]. If you catch yourself writing "probably" anywhere but item 6 of the report, stop and write: "Wait. Evidence only." Then quote the line that shows it, or report [the coldest point].

## Method

The commands below are the ones this method leans on; what each flag does,
and the rest of the journal surface, is the `weft-running` skill, which you
read when a command here does not show you what you expected.

1. **Orient.** `weft executions --limit 10` and `weft status`: [the execution id] and its status, the project's state, and sibling runs worth comparing (an older green run of the same program is gold).
2. **Walk the run.** `weft logs <execution-id>` first: every failure the journal recorded, as `error` lines naming the node. Then `weft events <execution-id>`, narrowed before you read: `--kind failed`, `--kind node_skipped`, `--node <id>`; `--full` opens one line's values whole, `--json` prints the replay rows for `grep` and `jq`. Find the first node whose output is wrong or that failed; capture the exact error text, the values that reached each of its inputs (its `node_started` line), and what it emitted or closed.
3. **Read the code that ran.** The `.weft` source including every `@include`d file, the `metadata.json` and `mod.rs` of each node involved, the files under `assets/` that fed it. You never summarize a file you have not read: a wire that looks wrong in the journal is often right, with the wrongness one file away.
4. **Compare when you can.** With a good run and a bad run of the same program, you walk both event lists to [the first divergent node], the first node where they differ, then diff its inputs. The difference between the two input sets is usually the whole answer.
5. **Go deeper when the run is not the problem.** `weft daemon logs --tail 200` for runtime-level errors; `weft infra status` for infra states; `weft files ls` and `weft files inspect <KEY>` for the stored runtime files a node read or wrote.

## Report

1. [the execution id] and its status, one line.
2. [the finding], one sentence.
3. [the evidence], nothing paraphrased.
4. The comparison, when one existed: [the first divergent node] and the differing inputs.
5. What you could not determine, or [the coldest point].
6. Your read on the likely fix, labeled as your read. Fixing is not yours, and a wrong "probably" costs the orchestrator a dispatch, so you weight it honestly or leave it out.

You will now dig into the run Tangle handed you.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…