danshapiro/kilroy/investigating-kilroy-runs
Claude Code and agent skill by danshapiro/kilroy
- community
Checking that the SKILL.md file is still in the repository.
To diagnose active, stuck, or failed Kilroy Attractor runs, inspect run artifacts (`manifest.json`, `live.json`, `checkpoint.json`, `final.json`, `progress.ndjson`), resolve run IDs/log roots, identify model/provider routing, and isolate failure causes. Includes CXDB operations for launching/probing CXDB, opening the CXDB UI, and querying run context turns. This skill is useful when investigating run status, debugging retries/failures, explaining model usage, or inspecting CXDB-backed event history.
Install
npx vskill@latest install danshapiro/kilroy/investigating-kilroy-runsSKILL.md
Investigating Kilroy Runs
To inspect a run quickly and produce a precise diagnosis, follow this workflow.
Resolve Run Root
- To resolve run root with highest confidence, start from an explicit
--logs-rootpath when provided. - To infer run root when no path is provided, locate the newest run under
~/.local/state/kilroy/attractor/runs. - To keep later commands consistent, treat that directory as
RUN_ROOT.
For a quick check of the newest run without manually resolving RUN_ROOT, use:
CXDB: Launch, UI, and Query
To get CXDB connection details, start with manifest.json, then fall back to run_config.json and live artifacts when fields are missing:
To make sure CXDB is available and to print the UI endpoint, run:
Use the endpoint printed by start-cxdb-ui.sh (cxdb_ui=...) as the source of truth. To open the UI in a browser when needed, run:
To follow run events directly from CXDB:
To run direct HTTP queries for ad-hoc debugging, use:
Read Canonical Files
To build a reliable picture of run state:
Always inspect graph.dot first so status is interpreted in graph context.
Preflight-only runs (--preflight / --test-run) are expected to write preflight_report.json and skip execution artifacts (manifest.json, checkpoint.json, final.json, worktree/).
manifest.json: run identity, graph name, repo, worktree,started_at.live.json: most recent event.checkpoint.json: last completed node and failure context.final.json: if present, run is finished (successorfail).progress.ndjson: full event timeline.
Determine Current State
To classify run state:
- Running:
final.jsonmissing andlive.json/progress.ndjsonstill changing. - Finished:
final.jsonpresent. - Likely stalled: no
progress.ndjsonupdates for longer than configured stall timeout. attractor statuscan show terminalfailwhileprogress.ndjsonstill advances in overlap conditions; timestamp comparison resolves this ambiguity.
To quickly validate terminal state vs liveness, use:
Discover Event Schema First
To avoid filtering for non-existent event keys, discover the active event schema before building event-specific queries:
To inspect fields for a specific event type, run:
Noise-to-Signal Query Patterns (Observed)
These patterns come from real investigation mistakes where the first query produced noisy output and the replacement query produced useful signal.
- Raw tail was dominated by heartbeats.
- Event frequency counts gave little "what is happening now" signal.
- Broad history scans mixed unrelated commits into run analysis.
- Full commit stats pulled in
target/and artifact churn.
- Progress checks can fail on pipe/SIGPIPE mechanics instead of run state.
- "Is code still improving?" was unclear without a last-meaningful-change anchor.
Resolve Terminal-vs-Live Conflicts
To handle cases where final.json exists but progress.ndjson still changes:
- If
final.jsonexists andprogress.ndjsonis newer, this is a possible overlapping-resume state rather than immediate data corruption. - Compare file mtimes and latest event timestamps.
- Confirm whether a
run/resumeprocess is currently active.
Check Process Liveness
To determine whether the run is truly active at the OS level:
If a resume process is already active for the same --logs-root, launching another resume is a possible source of mixed terminal/live state.
A live PID with unchanged tail events across repeated checks is a possible stale/hung process, not active run progress.
Relaunch Hygiene (Single Owner)
When relaunching, quiescing duplicate resume processes first and launching one detached resume reduces the chance of stopped by signal terminated outcomes.
Debug Parallel Fan-In Stalls
To diagnose fan-in waits, inspect branch-local progress under parallel/<join-node>/:
To inspect branch outcomes and status-contract behavior:
To interpret heartbeat-only behavior:
- If events are mostly
branch_heartbeatandbranch_idle_msrises monotonically, the branch is likely waiting/stalled rather than converging. - If
branch_progresscontinues with newstage_attempt_*events, the branch is still making progress.
Check Loop and Cycle Guardrails
To distinguish policy stops from compute hangs, inspect guardrail events directly:
Interpretation guidance:
stuck_cycle_breakerwithvisit_count/visit_limitindicates a configured loop-visit stop.*_cycle_breakerindicates repeated deterministic failures reached the configured signature limit.
Identify Models and Providers
To identify models/providers accurately, combine static and runtime evidence:
- Static routing from graph
model_stylesheetand node classes. - Runtime events from
progress.ndjson(llm_retry,llm_call_*, provider/model fields). - Provider availability from
run_config.json.
Triage Common Failures
- To diagnose
missing status.json, check whether the codergen node emitted the required status signal. - To diagnose
llm retrywith429/rate-limit, check for provider quota or backoff pressure. - To diagnose
deterministic_failure_cycle_check, check for repeated deterministic failure at the same node. - To diagnose toolchain/setup errors, inspect
setup_command_*events and stagestderr.log.
Postmortem Capture (Overlap/Termination)
Capture final.json timestamp, latest progress.ndjson timestamp, active resume PIDs/PPIDs, and termination events (stopped by signal terminated, subgraph_canceled_exit, stage_attempt_end).
Report Format
To present findings clearly, report in this order:
run_id,run_root, started time.- Current node/state and whether run is still active.
- Models/providers configured and observed.
- Top failure signals with exact file references.
- One next action (continue waiting, resume, or fix specific failure cause).
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/investigating-kilroy-runs/SKILL.md
Popularity
- Repository stars
- 159
- Repository forks
- 36
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/danshapiro/kilroy/investigating-kilroy-runs)