Error Handling
majiayu000/litellm-rs
LiteLLM-RS Error Handling Architecture. An agent skill from majiayu000/litellm-rs.
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…
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install danshapiro/kilroy investigating-kilroy-runs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/investigating-kilroy-runs .claude/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .claude/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install danshapiro/kilroy investigating-kilroy-runs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/investigating-kilroy-runs .agents/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .agents/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install danshapiro/kilroy investigating-kilroy-runs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/investigating-kilroy-runs .cursor/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .cursor/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/danshapiro/kilroy.git --path skills/investigating-kilroy-runs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install danshapiro/kilroy investigating-kilroy-runs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/investigating-kilroy-runs .gemini/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .gemini/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install danshapiro/kilroy investigating-kilroy-runsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/investigating-kilroy-runs .github/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .github/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install danshapiro/kilroy investigating-kilroy-runs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/investigating-kilroy-runs .opencode/skills/investigating-kilroy-runs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "investigating-kilroy-runs" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/investigating-kilroy-runs into .opencode/skills/investigating-kilroy-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-kilroy-runs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
investigating-kilroy-runsTo 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…
Investigating Kilroy Runs is an agent skill from danshapiro/kilroy. 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.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Model routing and gateways. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b55fb0f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
rgjqcurlgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Investigating Kilroy Runs loads about 3.1k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 774 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from danshapiro/kilroy at commit b55fb0f, republished under its MIT licence (© danshapiro). 774 words, ~3,059 tokens.
.claude/skills/investigating-kilroy-runs/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.To inspect a run quickly and produce a precise diagnosis, follow this workflow.
--logs-root path when provided.~/.local/state/kilroy/attractor/runs.RUN_ROOT.RUNS="$HOME/.local/state/kilroy/attractor/runs"
RUN_ID="$(find "$RUNS" -mindepth 1 -maxdepth 1 -type d -printf '%T@ %f\n' | sort -nr | awk 'NR==1 {id=$2} END {print id}')"
RUN_ROOT="$RUNS/$RUN_ID"
echo "$RUN_ID"For a quick check of the newest run without manually resolving RUN_ROOT, use:
./kilroy attractor status --latest --jsonTo get CXDB connection details, start with manifest.json, then fall back to run_config.json and live artifacts when fields are missing:
CXDB_URL="$(jq -r '.cxdb.http_base_url // empty' "$RUN_ROOT/manifest.json")"
CONTEXT_ID="$(jq -r '.cxdb.context_id // empty' "$RUN_ROOT/manifest.json")"
if [ -z "$CXDB_URL" ] && [ -f "$RUN_ROOT/run_config.json" ]; then
CXDB_URL="$(jq -r '.cxdb.http_base_url // empty' "$RUN_ROOT/run_config.json")"
fi
if [ -z "$CONTEXT_ID" ] && [ -f "$RUN_ROOT/live.json" ]; then
CONTEXT_ID="$(jq -r '.context_id // empty' "$RUN_ROOT/live.json")"
fi
if [ -z "$CONTEXT_ID" ] && [ -f "$RUN_ROOT/checkpoint.json" ]; then
CONTEXT_ID="$(jq -r '.context_id // empty' "$RUN_ROOT/checkpoint.json")"
fi
echo "cxdb_url=$CXDB_URL context_id=$CONTEXT_ID"To make sure CXDB is available and to print the UI endpoint, run:
./scripts/start-cxdb.sh
UI_LINE="$(./scripts/start-cxdb-ui.sh)"
echo "$UI_LINE" # prints: cxdb_ui=http://...
CXDB_UI="${UI_LINE#cxdb_ui=}"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:
KILROY_CXDB_OPEN_UI=1 ./scripts/start-cxdb-ui.shTo follow run events directly from CXDB:
./kilroy attractor status --logs-root "$RUN_ROOT" --follow --cxdb
./kilroy attractor status --logs-root "$RUN_ROOT" --follow --cxdb --rawTo run direct HTTP queries for ad-hoc debugging, use:
# Health endpoint may be /healthz even when /health returns 404.
curl -fsS "$CXDB_URL/health" || curl -fsS "$CXDB_URL/healthz"
curl -fsS "$CXDB_URL/v1/contexts"
curl -fsS "$CXDB_URL/v1/contexts/$CONTEXT_ID"
curl -fsS "$CXDB_URL/v1/contexts/$CONTEXT_ID/turns?limit=20"
curl -fsS "$CXDB_URL/v1/contexts/$CONTEXT_ID/turns?view=typed&limit=20"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 (success or fail).progress.ndjson: full event timeline.sed -n '1,200p' "$RUN_ROOT/graph.dot"
sed -n '1,200p' "$RUN_ROOT/manifest.json"
sed -n '1,200p' "$RUN_ROOT/live.json"
[ -f "$RUN_ROOT/checkpoint.json" ] && sed -n '1,200p' "$RUN_ROOT/checkpoint.json"
[ -f "$RUN_ROOT/final.json" ] && sed -n '1,200p' "$RUN_ROOT/final.json"
tail -n 80 "$RUN_ROOT/progress.ndjson"To classify run state:
final.json missing and live.json/progress.ndjson still changing.final.json present.progress.ndjson updates for longer than configured stall timeout.attractor status can show terminal fail while progress.ndjson still advances in overlap conditions; timestamp comparison resolves this ambiguity.To quickly validate terminal state vs liveness, use:
ls -la "$RUN_ROOT/final.json"
tail -n 1 "$RUN_ROOT/progress.ndjson"To avoid filtering for non-existent event keys, discover the active event schema before building event-specific queries:
jq -r '.event? // empty' "$RUN_ROOT/progress.ndjson" | sort | uniq -c | sort -nrTo inspect fields for a specific event type, run:
jq -c 'select(.event=="stage_attempt_end")' "$RUN_ROOT/progress.ndjson" | head -n 5These patterns come from real investigation mistakes where the first query produced noisy output and the replacement query produced useful signal.
# noisy
tail -n 80 "$RUN_ROOT/progress.ndjson"
# higher-signal
jq -rc 'select(.event!="branch_heartbeat") | {ts,event,node_id,status,branch_key,branch_event,branch_status,branch_failure_reason}' \
"$RUN_ROOT/progress.ndjson" | tail -n 80# broad but low immediate diagnostic value
jq -r '.event? // empty' "$RUN_ROOT/progress.ndjson" | sort | uniq -c | sort -nr
# better for current state
jq -rc 'select(.event!="branch_heartbeat") | {ts,event,node_id,status,branch_key,branch_event,branch_status,branch_failure_reason}' \
"$RUN_ROOT/progress.ndjson" | tail -n 40# noisy across repo history
git rev-list HEAD | head -n 200
# scoped to this run's commits
git log --oneline --grep "$RUN_ID" -n 80target/ and artifact churn.# noisy if commit touched build outputs
git show --stat <commit>
# source-focused
git show --stat <commit> -- demo/rogue/rogue-wasm/src# brittle in strict pipefail shells
set -euo pipefail
jq -rc 'select(.event!="branch_heartbeat")' "$RUN_ROOT/progress.ndjson" | head -n 20
# safer wrapper for quick probes
set -euo pipefail
jq -rc 'select(.event!="branch_heartbeat")' "$RUN_ROOT/progress.ndjson" | head -n 20 || true# activity-only view
git log --oneline --grep "$RUN_ID" -n 30
# source progress since last meaningful implementation commit
git diff --stat <last_meaningful_commit>..HEAD -- demo/rogue/rogue-wasm/srcTo handle cases where final.json exists but progress.ndjson still changes:
final.json exists and progress.ndjson is newer, this is a possible overlapping-resume state rather than immediate data corruption.run/resume process is currently active.stat -c '%n %y' "$RUN_ROOT/final.json" "$RUN_ROOT/live.json" "$RUN_ROOT/progress.ndjson" 2>/dev/null
tail -n 5 "$RUN_ROOT/progress.ndjson"To determine whether the run is truly active at the OS level:
pgrep -af 'kilroy attractor (run|resume)'
[ -f "$RUN_ROOT/run.pid" ] && cat "$RUN_ROOT/run.pid"
[ -f "$RUN_ROOT/run.pid" ] && ps -fp "$(cat "$RUN_ROOT/run.pid")"
ps -ef | rg -i 'kilroy attractor (run|resume)' | rg -v rgIf 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.
E1="$(tail -n 1 "$RUN_ROOT/progress.ndjson")"
sleep 3
E2="$(tail -n 1 "$RUN_ROOT/progress.ndjson")"
[ "$E1" = "$E2" ] && echo "no new events" || echo "events advancing"When relaunching, quiescing duplicate resume processes first and launching one detached resume reduces the chance of stopped by signal terminated outcomes.
ps -ef | rg -i "kilroy attractor resume --logs-root $RUN_ROOT" | rg -v rg
# If duplicates exist, stop extras before launching a single detached resume.
setsid -f bash -lc "cd /path/to/repo && ./kilroy attractor resume --logs-root '$RUN_ROOT' >> '$RUN_ROOT/resume.out' 2>&1"To diagnose fan-in waits, inspect branch-local progress under parallel/<join-node>/:
find "$RUN_ROOT/parallel" -maxdepth 3 -type f -name 'progress.ndjson' | sortTo inspect branch outcomes and status-contract behavior:
rg -n 'status_contract|stage_attempt_end|stage_retry_blocked|deterministic_failure_cycle_check|subgraph_deterministic_failure_cycle_check' \
"$RUN_ROOT"/parallel/*/*/progress.ndjsonTo interpret heartbeat-only behavior:
branch_heartbeat and branch_idle_ms rises monotonically, the branch is likely waiting/stalled rather than converging.branch_progress continues with new stage_attempt_* events, the branch is still making progress.tail -n 200 "$RUN_ROOT/progress.ndjson" | rg 'branch_heartbeat|branch_progress|branch_idle_ms'To distinguish policy stops from compute hangs, inspect guardrail events directly:
rg -n 'stuck_cycle_breaker|deterministic_failure_cycle_breaker|stage_retry_blocked|deterministic_failure_cycle_check' \
"$RUN_ROOT/progress.ndjson"Interpretation guidance:
stuck_cycle_breaker with visit_count/visit_limit indicates a configured loop-visit stop.*_cycle_breaker indicates repeated deterministic failures reached the configured signature limit.To identify models/providers accurately, combine static and runtime evidence:
model_stylesheet and node classes.progress.ndjson (llm_retry, llm_call_*, provider/model fields).run_config.json.rg -n 'model_stylesheet|llm_model|llm_provider|class=' "$RUN_ROOT/graph.dot"
rg -n '"event":"llm_|"provider":"|"model":"' "$RUN_ROOT/progress.ndjson"
sed -n '1,220p' "$RUN_ROOT/run_config.json"missing status.json, check whether the codergen node emitted the required status signal.llm retry with 429/rate-limit, check for provider quota or backoff pressure.deterministic_failure_cycle_check, check for repeated deterministic failure at the same node.setup_command_* events and stage stderr.log.rg -n 'missing status.json|llm_retry|deterministic_failure_cycle_check|setup_command_|failure_reason' "$RUN_ROOT/progress.ndjson"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).
stat -c '%y %n' "$RUN_ROOT/final.json" "$RUN_ROOT/live.json" "$RUN_ROOT/progress.ndjson" 2>/dev/null
ps -ef | rg -i "kilroy attractor resume --logs-root $RUN_ROOT" | rg -v rg
rg -n 'stopped by signal terminated|subgraph_canceled_exit|stage_attempt_end' "$RUN_ROOT/progress.ndjson" | tail -n 80To present findings clearly, report in this order:
run_id, run_root, started time.© danshapiro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/investigating-kilroy-runs of danshapiro/kilroy.
Open the folder on GitHubat commit b55fb0f
Investigating Kilroy Runs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Investigating Kilroy Runs this skilldanshapiro/kilroy | 222 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Error Handlingmajiayu000/litellm-rs | 118 | — | ~2k | Automated safety check: Pass | MIT | |
| Verifytheopenco/llmgateway | 1.7k | — | ~1k | Automated safety check: Pass | Custom licence | |
| Antigravityyuting0624/antigravity-for-claude-code | 375 | — | ~9.1k | Automated safety check: Pass | MIT | |
| Changelogtheopenco/llmgateway | 1.7k | — | ~2k | Automated safety check: Pass | Custom licence | |
| Provider Integrationhex/claude-council | 857 | — | ~635 | Automated safety check: Pass | MIT |
majiayu000/litellm-rs
LiteLLM-RS Error Handling Architecture. An agent skill from majiayu000/litellm-rs.
theopenco/llmgateway
Build, launch, and drive the LLM Gateway stack in an isolated worktree environment to verify API, gateway, dashboard, playground, or screenshot changes.
yuting0624/antigravity-for-claude-code
Run the Antigravity CLI (Gemini) as a collaborating AI inside Claude Code, with intelligent model routing across the software development lifecycle.
theopenco/llmgateway
Write a new LLM Gateway changelog entry. An agent skill from theopenco/llmgateway.
hex/claude-council
Adds new AI providers to claude-council, configures provider API settings, troubleshoots provider connections, and documents the provider script interface.
majiayu000/litellm-rs
LiteLLM-RS Configuration Architecture. An agent skill from majiayu000/litellm-rs.
danshapiro/kilroy
A skill your agent uses when converting a spec, requirements document, or goal statement into a Definition of Done with acceptance criteria and integration test scenarios
danshapiro/kilroy
A skill your agent uses when authoring or repairing Kilroy run config YAML/JSON files, including DOT-to-provider backend alignment and runtime policy defaults.
danshapiro/kilroy
A skill your agent uses when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
danshapiro/kilroy
A skill your agent uses when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
danshapiro/kilroy
A skill your agent uses when bootstrapping a new project repository for Kilroy Attractor from a clean directory using existing spec, DoD, graph, and run config artifacts.
danshapiro/kilroy
Operate Kilroy Attractor pipelines end-to-end: ingest English requirements into DOT graphs, validate graph semantics, run and resume pipelines with run config files, configure provider backends…
Categories
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…. Investigating Kilroy Runs is an agent skill from danshapiro/kilroy.ndjson), resolve run IDs/log roots, identify model/provider routing, and isolate failure causes.
Investigating Kilroy Runs fits situations like: tasks that involve Model routing and gateways.
Run `npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a claude-code`. Or copy the skill folder (skills/investigating-kilroy-runs in danshapiro/kilroy) into .claude/skills/investigating-kilroy-runs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a codex`. Or copy the skill folder (skills/investigating-kilroy-runs in danshapiro/kilroy) into .agents/skills/investigating-kilroy-runs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add danshapiro/kilroy --skill investigating-kilroy-runs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/investigating-kilroy-runs, .gemini/skills/investigating-kilroy-runs, .github/skills/investigating-kilroy-runs and .opencode/skills/investigating-kilroy-runs in your project.
Going by SKILL.md and its folder, Investigating Kilroy Runs needs the command-line tools its instructions call (rg, jq, curl and git).
SKILL.md contains no URLs. Its commands use curl and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Investigating Kilroy Runs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Investigating Kilroy Runs: Error Handling (majiayu000/litellm-rs, 118 stars), Verify (theopenco/llmgateway, 1.7k stars), Antigravity (yuting0624/antigravity-for-claude-code, 375 stars) and Changelog (theopenco/llmgateway, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
danshapiro (a GitHub user) maintains it in danshapiro/kilroy, which has 222 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on April 27, 2026.
Source: danshapiro/kilroy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.