agentsclimarketplace

Ci workflow doctor

Skill Starr-del/ShipSafe/skills/ci-workflow-doctor

Offline deploy-safety skills for Claude Code. Zero credentials, zero network, zero dependencies.

Install
npx -y skills add Starr-del/ShipSafe --skill ci-workflow-doctor

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Lint GitHub Actions workflows for deploy-breaking and security mistakes. Use whenever the user writes or edits a workflow file, mentions GitHub Actions, sets up CI/CD, complains that deploys land out of order, or before the first automated deploy of a project. Also run it during any security review of a repo. Runs fully offline — no API keys, no network, no credentials.

SKILL.md

1.7 KB, as published. Nobody here has run it

ci-workflow-doctor

Part of shipsafe — offline deploy-safety skills. Every script is stdlib-only Python 3.8+; nothing leaves the machine.

python3 scripts/lint_workflows.py <repo_root> [--json]   # finds .github/workflows itself

Checks:

  • PR_TARGET_WITH_CHECKOUT (critical) — pull_request_target + checkout of the PR head runs untrusted fork code WITH repo secrets. This is the classic GitHub Actions exfiltration pattern; fix immediately.
  • MUTABLE_ACTION_REF (high) — third-party actions pinned to tags/branches can be force-pushed by a compromised maintainer. Pin to a 40-char commit SHA. Official actions/* are exempt.
  • MISSING_CONCURRENCY (high) — deploy jobs without a concurrency group let two pushes deploy in parallel; the OLDER build can finish last and win. The fix block to suggest is in the script output.
  • SECRET_IN_RUN (high) — ${{ secrets.X }} interpolated into run: scripts leaks via shell tracing; pass via env: instead.
  • NO_TIMEOUT / UNPINNED_RUNNER (low) — hygiene for deploy reliability.

Implementation note: parsing is line-structured and heuristic (zero dependencies, runs anywhere) — on exotic YAML, verify a finding against the file before asserting it.

Exit codes: 0 clean, 1 findings.

All paths below are relative to this skill's directory (ci-workflow-doctor/).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.