.claude/skills/runs/SKILL.md
# Skill: Runs ## Purpose Browse, inspect, compare, and clean up past pipeline runs. Each run is a self-contained directory under `working/runs/` with its own working files, outputs, and pipeline state. ## When to Use - User says `/runs`, `/runs list`, `/runs latest`, `/runs clean`, or `/runs compare` - When the user wants to see what analyses have been executed ## Invocation - `/runs` or `/runs list` -- list all past runs - `/runs latest` -- show details of the most recent run - `/runs {id}`
npx skillsauth add ai-analyst-lab/ai-analyst .claude/skills/runsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Browse, inspect, compare, and clean up past pipeline runs. Each run is a
self-contained directory under working/runs/ with its own working files,
outputs, and pipeline state.
/runs, /runs list, /runs latest, /runs clean, or /runs compare/runs or /runs list -- list all past runs/runs latest -- show details of the most recent run/runs {id} -- show details of a specific run (partial match supported)/runs clean -- remove runs older than 30 days (confirmation required)/runs compare {id1} {id2} -- compare two runs side by sideRead working/runs/ directory. Each subdirectory is a run, named:
{YYYY-MM-DD}_{DATASET}_{SHORT_TITLE}/
For each run directory, read pipeline_state.json to extract:
pipeline_id -- timestamp identifierdataset -- dataset namequestion -- the business questionstatus -- completed, failed, paused, or runningrun_dir -- full pathstarted_at, completed_at -- timingsteps -- agent status map (to compute agent counts)If pipeline_state.json is missing, infer status as unknown and derive
date/dataset from the directory name.
List (/runs or /runs list):
Display a table sorted by date descending:
Pipeline Runs (working/runs/)
| # | Date | Dataset | Title | Status | Agents |
|---|------------|-----------|--------------------------|-----------|--------|
| 1 | 2026-02-23 | acme-analytics | why-revenue-dropped-q3 | completed | 14/14 |
| 2 | 2026-02-21 | acme-analytics | activation-funnel-deep | failed | 8/14 |
| 3 | 2026-02-19 | hero | churn-by-segment | completed | 14/14 |
3 runs found. Use `/runs {#}` or `/runs {date_dataset_title}` for details.
The Agents column shows {completed}/{total} from the step map.
Latest (/runs latest):
Read working/latest symlink target. Display the detail view (same as /runs {id}).
Detail (/runs {id}):
Match {id} against run directory names (supports partial match -- e.g.,
/runs acme-analytics matches the most recent acme-analytics run). Display:
Run: {directory_name}
Status: {status}
Dataset: {dataset}
Question: {question}
Started: {started_at}
Completed: {completed_at} ({duration})
Agent Status:
completed: {list}
failed: {list with errors}
skipped: {list}
pending: {list}
Output Files:
- {RUN_DIR}/outputs/{file1}
- {RUN_DIR}/outputs/{file2}
...
Confidence: {grade from validation if available}
If the run has a validation report, extract and show the confidence grade.
Clean (/runs clean):
Found {N} runs older than 30 days:
- {dir1} (completed, {date})
- {dir2} (failed, {date})
Delete these runs? This cannot be undone. [y/N]
working/latest pointed to a deleted run, remove the symlinkCompare (/runs compare {id1} {id2}):
Load pipeline_state.json and key output files from both runs. Display:
Comparing Runs:
A: {dir1}
B: {dir2}
| Dimension | Run A | Run B |
|--------------------|--------------------|--------------------|
| Date | {date_a} | {date_b} |
| Dataset | {dataset_a} | {dataset_b} |
| Status | {status_a} | {status_b} |
| Agents completed | {count_a} | {count_b} |
| Confidence grade | {grade_a} | {grade_b} |
| Charts generated | {chart_count_a} | {chart_count_b} |
| Key findings | {finding_count_a} | {finding_count_b} |
| Duration | {duration_a} | {duration_b} |
If both runs analyzed the same dataset, also compare:
/run-pipeline to start one."status: unknown, note the errorworking/pipeline_state.json -- not in per-run format. Use /run-pipeline to create a tracked run."testing
# Skill: {{BLANK_1_SKILL_NAME}} ## Purpose {{BLANK_2_WHEN_TO_FIRE}} ## When to Use Fires automatically when the user asks Claude to do something that matches the trigger condition above. ## Instructions 1. Detect the trigger condition 2. Execute your guardrail check 3. If the check matters, print a clear, visible warning with "{{BLANK_3_SIGNATURE_PHRASE}}" as the first line 4. Continue with the analysis, incorporating the warning into the output ## Anti-Patterns - Do not fire when the condit
development
# Skill: Visualization Patterns ## Purpose Ensure every chart Claude Code produces follows high-quality design standards with named themes, consistent styling, and clear data communication. ## When to Use Apply this skill whenever generating a chart, graph, or data visualization. Always apply the active theme unless the user specifies otherwise. Default theme: `minimal`. ## Instructions ### Pre-flight: Load Learnings Before executing, check `.knowledge/learnings/index.md` for relevant entrie
development
# Skill: Triangulation / Sanity Check ## Purpose Cross-reference analytical findings against multiple data sources, external benchmarks, and common sense to catch errors before they become bad decisions. ## When to Use Apply this skill after every analysis, before presenting findings to stakeholders, and whenever a result seems surprising. If a finding would change a decision, it MUST be triangulated first. ## Instructions ### Triangulation Framework Every finding gets checked through four
data-ai
# Skill: Tracking Gap Identification ## Purpose Assess whether the data needed for an analysis actually exists, identify what's missing, and produce prioritized instrumentation requests for engineering when gaps are found. ## When to Use Apply this skill after the Data Explorer agent inventories available data, when an analysis requires data that might not exist, or when initial query results suggest incomplete tracking. Run before committing to an analysis approach. ## Instructions ### Gap