Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…

MITAuto-check passedDevOps & Cloud

Install CI Troubleshoot

skills CLI
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill ci-troubleshoot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install BlackBeltTechnology/pi-agent-dashboard ci-troubleshoot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pi/skills/ci-troubleshoot .claude/skills/ci-troubleshoot && rm -rf skills-src

Use ~/.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/

Facts

Skill name
ci-troubleshoot
GitHub stars
316
Token cost
~3.5k tokens
SKILL.md length
1,299 words
Files
12 (incl. scripts, references)
Skills in repo
70
Repo updated
First seen
Licence
MIT

At a glance

Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…

  • A CI run is red
  • SKILL.md covers First moves — always run these, ci.yml job taxonomy —…, Triage decision tree and Release pipeline — publish.yml, plus 4 more sections
  • Runs TypeScript scripts from its folder; calls gh, pnpm and jq; needs NPM_TOKEN
  • A release is stuck

What it does

CI Troubleshoot is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and retrigger jobs. Use when a CI run is red, a release is stuck, a workflow won't dispatch, or you need to know which workflow does what. See release-cut to trigger a release, release-revoke to revoke one.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `SKILL.md.AGENTS.md`, `references/common-failures.md` and `references/common-failures.md.AGENTS.md`).

It sits in DevOps & Cloud, covering CI/CD. It works with GitHub Actions. The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.

When your agent uses it

  • A CI run is red
  • A release is stuck
  • A workflow wont dispatch
  • You need to know which workflow does what

Example prompts

  • “/ci-troubleshoot”

Requirements

  • Node.js
  • A credential in NPM_TOKEN

What it can do on your machine

Read from SKILL.md and the folder at commit 7feac4d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 4 files in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • pnpm
    • jq
    • npm
    • git
    • vitest
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, pnpm, npm 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.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • NPM_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

CI Troubleshoot loads about 3.5k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 104 tokens; SKILL.md has 1,299 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~104
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.8k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from BlackBeltTechnology/pi-agent-dashboard at commit 7feac4d, republished under its MIT licence (© BlackBeltTechnology). 1,299 words, ~3,526 tokens.

Download SKILL.mdSave it as .claude/skills/ci-troubleshoot/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
ci-troubleshoot
description
Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read `gh run` logs and retrigger jobs. Use when a CI run is red, a release is stuck, a workflow won't dispatch, or you need to know which workflow does what. See `release-cut` to trigger a release, `release-revoke` to revoke one.

CI Troubleshoot

Diagnose CI failures for pi-agent-dashboard. The repo has 11 workflow files: 9 entry workflows and 2 reusable workflows.

mermaid
flowchart LR
  ci[ci.yml] --> checks[guards + lint + build<br/>+ affected tests]
  nightlyTests[nightly-tests.yml] --> full[full suite + nightly-tests issue]
  deploy[deploy-site.yml] --> pages[GitHub Pages]
  native[ci-e2e-electron.yml] --> nativeTests[native Electron E2E]
  ciSmoke[ci-smoke.yml] --> smoke[_smoke.yml]
  publish[publish.yml] --> smoke
  ciElectron[ci-electron.yml] --> electron[_electron-build.yml]
  nightly[nightly.yml] --> electron
  publish --> electron
  publish --> release[GitHub Release]
  release --> sync[sync-release-version.yml]

Full per-workflow detail: references/workflow-taxonomy.md.

First moves — always run these

bash
pnpm exec tsx .pi/skills/ci-troubleshoot/scripts/list-recent-runs.ts                  # last 10 runs across all workflows
pnpm exec tsx .pi/skills/ci-troubleshoot/scripts/list-recent-runs.ts --failed         # only failed
pnpm exec tsx .pi/skills/ci-troubleshoot/scripts/show-failed-run.ts <run-id>          # failed steps + log tails
pnpm exec tsx .pi/skills/ci-troubleshoot/scripts/show-failed-run.ts                   # most recent failed run

These wrap gh run list, gh run view --log-failed, and similar. You need gh auth status to be authenticated.

ci.yml job taxonomy — affected-only tests

ci.yml runs parallel jobs (change: speed-up-ci-affected-tests):

JobDoesRed means
selectscripts/select-affected-tests.mjs → artifact test-selection + job summaryselector could not run at all (it degrades to mode: full on its own errors)
ciguards, spec validate, lint, lint:e2e, Biome, build, publish-import checks — NO testsa guard/lint/build failure
unit ×4the selector's shard n via pnpm run test:parallel <files>a test failed, dist/index.html missing, or verify-executed found an assigned file that never ran
real-processreal-process files (runs only when selected)as today's phase 2; retries once under CI
ci-scenariosthe RUN_CI_SCENARIOS-gated packaging files only (skipped for OpenSpec-only diffs)a packaging scenario failed
ci-resultaggregate; check-result.mjsselect failed, a job failed/cancelled, or an EXPECTED job was skipped

What did this run skip? Open the select job summary, or:

bash
gh run download <run-id> -n test-selection -D /tmp/sel
jq '{mode, reason, counts, slowTierDeselected, unmapped}' /tmp/sel/selection.json
jq -r '.selected | to_entries[] | "\(.value)\t\(.key)"' /tmp/sel/selection.json | sort | head   # file → layer
jq '.shards | map(length)' /tmp/sel/selection.json

Mode full has a reason: a global input (lockfile, root package.json, any vitest/tsconfig, setupFiles, the selector or its data), an unmapped file outside packages/, a ci:full label, workflow_dispatch, or a selector error (all-zero/non-ancestor/missing base).

Force a full run. ci:full label on the PR → takes effect on the NEXT push (there is no labeled trigger — on purpose). Immediate: gh workflow run ci.yml --ref <branch> (dispatch is always full).

Slow tier. scripts/test-selection/slow-tier.json (only the 504 s mutation harness) is deselected in affected mode unless the file itself changed; it runs nightly, in full mode, and under ci:full. Listed under "Slow-tier deselections" in the summary.

A test is green on PRs but red nightly. Not automatically a selection miss — flakes and environment changes do this too. The nightly-tests issue names the bisect range (A..B, since the last green SCHEDULED run). Bisect in that range to the breaking commit, then open that commit's PR run test-selection artifact: if the failing file WAS selected (and executed), debug the test itself; only if it was NOT selected did selection miss it — close the gap with a scripts/test-selection/triggers.json entry or a layer fix, never just a re-run.

nightly-tests issue triage. One open issue, label nightly-tests, updated each red scheduled night, closed on the first green one. "no report" = a job was cancelled or died (infra), not a pass. "no new commits" = flake or environment. Refreshed shard timings: artifact test-timings → copy to scripts/test-selection/timings.json by hand.

Unit-test failure → read the vitest-report-* artifact FIRST, not the log. Each vitest job uploads its own report on every run (if: always(), 14-day retention): vitest-report-unit-<n>, vitest-report-real-process, vitest-report-ci-scenarios.

bash
gh run download <run-id> -p 'vitest-report-*' -D /tmp/vr
# failures
jq -r '.testResults[].assertionResults[] | select(.status=="failed") | .fullName' /tmp/vr/*/vitest*.json
# RETRIED PASSES — passed, but a failed attempt's error is still retained
jq -r '.testResults[].assertionResults[] | select(.status=="passed" and (.failureMessages|length)>0) | .fullName' /tmp/vr/*/vitest*.json

There is no retryCount field. Vitest 4.1.11's JSON reporter emits only {ancestorTitles, fullName, status, title, duration, failureMessages, meta, tags}; retryCount lives on the runner API, not the report. The retried-pass signature is therefore status == "passed" with a non-empty failureMessages. Verified empirically against a fail-once fixture; re-verify after a vitest major upgrade — if the second query returns nothing on a run you know flaked, the reporter shape moved.

Retry semantics: ONLY the server-real-process project retries, ONLY under CI, ONLY once (retry: process.env.CI ? 1 : 0). A green job whose report matches the retried-pass query did NOT pass cleanly — that test flaked. A test failing twice still reds the job. Locally retry is 0. The default reporter prints (retry x1) only for tests it lists; a retried PASS is invisible there, which is why the artifact is the first move. Locally npm test = test:parallel then test:real-process; in CI the real-process phase is its own real-process job running vitest run --config packages/server/vitest.real-process.config.ts.

Scripts are TypeScript and cross-platform. All invocations use pnpm exec tsx, which resolves the declared local dependency and fails if dependencies are absent. gh CLI is cross-platform.

Triage decision tree

mermaid
flowchart TD
  red{Run is red?} --> workflow{Which workflow?}
  workflow --> ci[ci.yml]
  workflow --> publish[publish.yml]
  workflow --> electron[ci-electron.yml]
  workflow --> other[Other workflow]
  ci --> common[Tests, lint, build<br/>references/common-failures.md]
  other --> taxonomy[references/workflow-taxonomy.md]
  publish --> releaseJob{Which release job?}
  releaseJob --> tag[tag-and-push]
  releaseJob --> npmOrder[publish: npm ordering]
  releaseJob --> matrix[electron: matrix leg]
  releaseJob --> assets[github-release: asset collision]
  electron --> smoke[On-demand Electron smoke<br/>never publish]

Release pipeline — publish.yml

The release flow uses a gated 7-job graph:

mermaid
flowchart LR
  resolve[resolve] --> checks[ci-checks]
  resolve --> smoke[smoke via _smoke.yml]
  checks --> tag[tag-and-push]
  smoke --> tag
  tag --> publish[publish packages]
  publish --> electron[electron via _electron-build.yml]
  electron --> release[github-release]

Tag-push runs skip tag-and-push; publish.if accepts that skip while still requiring checks and smoke. Do not remove needs: [resolve, publish] from electron. The bundled server installs the just-published packages. Locked by packages/shared/src/__tests__/publish-workflow-contract.test.ts.

Full walkthrough with per-job failure modes: references/release-pipeline.md.

Show full SKILL.md (619 more words)Show less

Known failure modes

Maintained in references/common-failures.md. Headline catalog:

FailureWhereDiagnosisFix
verify-lockfile-versions.mjs failstag-and-pushCross-ref specifier in lockfile doesn't match bumped versionRegenerate lockfile + commit; or fix scripts/sync-versions.js
CHANGELOG already has ## [X.Y.Z]tag-and-pushYou're re-dispatching with a version that was already promotedBump to a new version, or revert the CHANGELOG section
npm publish 403publishOIDC trusted publisher not configured for that packageConfigure in npm web UI; or temporarily use NPM_TOKEN
Electron matrix leg failselectronMissing prebuild for node-pty/better-sqlite3 on that OS/archCheck bundle-server.mjs GO/NO-GO guard; rebuild prebuilds
shell: bash on Windows runneranyLint test no-bash-on-windows.test.ts flags itRemove shell: bash or guard with if: runner.os != 'Windows'
Electron job missing needs:repo-lintpublish-workflow-contract.test.ts failedRestore needs: [resolve, publish]
Cannot find module @blackbelt-technology/... in electronelectronpublish job didn't run or failed; bundled server can't resolve from npmCheck publish job — re-run only if it failed; never bypass
Fastify crashes in bundled server smokeany using nodeBad Node version pinned in workflowBump node-version: to ≥ 22.18.0
Loud-but-harmless EADDRINUSE in smokesmoke jobConcurrent server spawnsUsually self-recovering; check next log lines
Green run but a timing test flakedci.yml real-processserver-real-process retried oncevitest-report-real-process artifact → passed + non-empty failureMessages; root-cause it, do not ignore
verify-executed fails: assigned file did not executeci.yml unit/real-process/ci-scenariosvitest filter/path mismatch, or the file is no longer collectedCheck the file still matches its project include; re-run select locally: node scripts/select-affected-tests.mjs --base origin/develop --merge-base --out /tmp/s.json
ci-result red with every job greenci.ymla job the selection EXPECTED was skipped, or select failedRead ci-result log: it names the job
Nightly red, PR was greennightly-tests.ymlflake, environment, or a selection missBisect the issue's range; check the breaking PR's test-selection artifact — selected → debug the test; not selected → trigger/layer fix
real-process-project-guard.test.ts failsrepo-lintNew server test spawns a process but runs in the parallel projectAdd it to packages/server/vitest.real-process-files.ts, or annotate // real-process-exempt: <reason>
electron + github-release SKIPPED despite green publishelectronTag-push path skips tag-and-push; a skipped needs-ancestor poisons electron's DEFAULT if: success()Give electron explicit if: ${{ !cancelled() && needs.publish.result == 'success' }} (mirrors publish's guard). First hit v0.6.1
✗ koffi prebuild GO/NO-GO failed at ...koffi\build\koffi\win32_x64\koffi.nodeelectron (both win32 legs)koffi@3.x ships the prebuild at @koromix/koffi-win32-x64/win32_x64/koffi.node; the 2.x koffi/build/... path is never createdUpdate bundle-server.mjs guard to check the 3.x @koromix path first, 2.x fallback. First hit v0.6.1
arm64 NSIS smoke: pi-dashboard.exe not found ... after 150selectron (win32-arm64)x64 runner can't execute an arm64 Setup.exe/app, so silent install extracts nothingGuard the NSIS install-smoke step if: matrix.platform == 'win32' && matrix.arch == 'x64'. arm64 installer still builds+ships. First hit v0.6.1

Reading gh logs efficiently

bash
# Last 10 runs (all workflows, this branch)
gh run list -L 10

# Last 5 failed runs across all workflows
gh run list -L 50 | grep -E 'failure|cancelled' | awk 'NR <= 5'

# Get a specific run, only the failed steps
gh run view <run-id> --log-failed

# Watch a running workflow (live tail)
gh run watch <run-id>

# Re-run only the failed jobs (preserves successful ones, saves CI time)
gh run rerun <run-id> --failed

# Re-run from scratch (rare; usually for flakes)
gh run rerun <run-id>

# Cancel a stuck run
gh run cancel <run-id>

gh run view --log-failed is the highest-leverage one — it pulls only failed-step output, which is what you want 95% of the time.

Never bypass the release pipeline with a manual npm publish. That loses OIDC trusted publishing, lockfile synchronization, changelog promotion, smoke gates, and Electron dependency ordering.

Rerun gotcha (tag-push releases): gh run rerun <id> --failed does NOT re-dispatch skipped downstream reusable-workflow jobs (e.g. electron) even after publish flips green — they stay skipped. After a smoke-gate flake on a tag-push release, re-push the tag for a clean single-pass run instead: git push --delete origin vX.Y.Z && git push origin vX.Y.Z. publish is idempotent (skips already-published packages), so re-pushing the tag is safe.

When the failure is repo-lint

Repo-lint tests fail the ci job specifically. They're listed in debug-dashboard/references/test-failure-triage.md → "Repo-lint tests". Fix the file that violated the rule. Don't loosen the lint — each one exists because of a real regression.

  • release-cut — trigger a release (cuts the tag that fires publish.yml)
  • release-revoke — rollback / yank a release
  • debug-dashboard — when the bug only reproduces locally
  • implement — back to writing the fix
  • code-review — review the fix before re-pushing

© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts, references) in .pi/skills/ci-troubleshoot of BlackBeltTechnology/pi-agent-dashboard.

  • SKILL.md
  • SKILL.md.AGENTS.md
  • references/common-failures.md
  • references/common-failures.md.AGENTS.md
  • references/release-pipeline.md
  • references/release-pipeline.md.AGENTS.md
  • references/workflow-taxonomy.md
  • references/workflow-taxonomy.md.AGENTS.md
  • scripts/list-recent-runs.ts
  • scripts/retrigger-failed.ts
  • scripts/retrigger-failed.ts.AGENTS.md
  • scripts/show-failed-run.ts

Open the folder on GitHubat commit 7feac4d

Compare with similar skills

CI Troubleshoot 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.

CI Troubleshoot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
CI Troubleshoot this skillBlackBeltTechnology/pi-agent-dashboard316—~3.5kAutomated safety check: PassMIT
Analyze GitHub Action Logswithastro/astro63k1 repos~1.3kAutomated safety check: PassCustom licence
GitHub Actions Templatesbartstc/vite-ts-react-template12214 repos~1.9kAutomated safety check: PassMIT
Nushellccusage/ccusage19k—~938Automated safety check: PassCustom licence
Repo Hygiene Scan and FixQwenLM/qwen-code28k—~1.7kAutomated safety check: PassApache-2.0
Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit2606 repos~1.1kAutomated safety check: NotesCustom licence

Similar skills

  • Official

    Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.

    63k GitHub starsUsed in 1 repo~1.3k tokens
    DevOps & CloudAuto-check passed
  • GitHub Actions Templates

    bartstc/vite-ts-react-template

    Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications.

    122 GitHub starsUsed in 14 repos~1.9k tokens
    DevOps & CloudAuto-check passed
  • Nushell

    ccusage/ccusage

    Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.

    19k GitHub stars~938 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Scheduled CI skill that scans a repository for small, certain docs, test and code hygiene issues and fixes them on one branch with a commit per finding.

    28k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    260 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes
  • CI Failure Triage and Repair

    Chachamaru127/claude-code-harness

    Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.

    3.2k GitHub starsUsed in 1 repo~1.1k tokens
    DevOps & CloudAuto-check: notes

More from BlackBeltTechnology/pi-agent-dashboard

All 70 skills in this repo
  • Browser

    BlackBeltTechnology/pi-agent-dashboard

    Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    316 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Debug Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.

    316 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Implement

    BlackBeltTechnology/pi-agent-dashboard

    Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.

    316 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Pi Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    316 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Session To Guideline

    BlackBeltTechnology/pi-agent-dashboard

    Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…

    316 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Bpmn Package Explorer

    BlackBeltTechnology/pi-agent-dashboard

    Generate, validate and view BPMN 2.0 process packages from a prose description, and render existing .bpmn / .dmn files.

    316 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about CI Troubleshoot

What does CI Troubleshoot do?

Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…. CI Troubleshoot is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and retrigger jobs.

When should I use CI Troubleshoot?

CI Troubleshoot fits situations like: A CI run is red; A release is stuck; A workflow wont dispatch; you need to know which workflow does what.

How do I install CI Troubleshoot in Claude Code?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill ci-troubleshoot -a claude-code`. Or copy the skill folder (.pi/skills/ci-troubleshoot in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/ci-troubleshoot in your project. Claude Code loads it when a task matches its description.

How do I install CI Troubleshoot in Codex?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill ci-troubleshoot -a codex`. Or copy the skill folder (.pi/skills/ci-troubleshoot in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/ci-troubleshoot in your project. Codex loads it when a task matches its description.

Can I use CI Troubleshoot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill ci-troubleshoot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ci-troubleshoot, .gemini/skills/ci-troubleshoot, .github/skills/ci-troubleshoot and .opencode/skills/ci-troubleshoot in your project.

What does CI Troubleshoot need to run?

Going by SKILL.md and its folder, CI Troubleshoot needs TypeScript for the scripts in its folder, the command-line tools its instructions call (gh, pnpm, jq, npm, git and vitest) and credentials named NPM_TOKEN. Our summary lists: Node.js; A credential in NPM_TOKEN.

Does CI Troubleshoot access the network?

SKILL.md contains no URLs. Its commands use gh, npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is CI Troubleshoot safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does CI Troubleshoot use?

CI Troubleshoot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does CI Troubleshoot use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.3k tokens, read only when the agent opens those files.

What are the alternatives to CI Troubleshoot?

Skills that share tags, products or a category with CI Troubleshoot: Analyze GitHub Action Logs (withastro/astro, 63k stars), GitHub Actions Templates (bartstc/vite-ts-react-template, 122 stars), Nushell (ccusage/ccusage, 19k stars) and Repo Hygiene Scan and Fix (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains CI Troubleshoot?

BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 316 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 11, 2026.

Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.