@mariasolos/fix-ci
BFetches failed and errored test details from CircleCI job test URLs using the CircleCI API v2. Use when the user provides a CircleCI tests URL and asks for errors, failures, test results, or help fixing CI.
Install
agr install @mariasolos/fix-ci --target claudeWrites 1 file into .claude/skills/, pinned to git-0d2aaf76.
- .claude/skills/fix-ci/SKILL.md
Document
name: fix-ci description: Fetches failed and errored test details from CircleCI job test URLs using the CircleCI API v2. Use when the user provides a CircleCI tests URL and asks for errors, failures, test results, or help fixing CI.
Fix CI
Use this skill to turn a CircleCI web tests URL like:
https://app.circle.example.com/pipelines/github/example-org/example-repo/19060/workflows/887679f9-1f30-43a6-a600-7292d29b3edc/jobs/215974/tests
into API calls to CircleCI v2 and summarize failing/erroring tests.
Requirements
Make sure that the following environment variables are set in your environment. If not, raise an error.
CIRCLECI_TOKENCIRCLECI_API_BASE
For such test run [ -n "${CIRCLECI_TOKEN}" ] && echo "ENV OK" || echo "ERROR: MISSING ENV VAR"
Usage
From this skill directory:
python3 scripts/circleci_errors.py '<circleci-tests-url>'
Useful options:
python3 scripts/circleci_errors.py '<url>' --all # print all tests, not just failed/error tests
python3 scripts/circleci_errors.py '<url>' --json # emit normalized JSON
python3 scripts/circleci_errors.py '<url>' --base-url https://circle.example.com/api/v2
Workflow
- Parse the CircleCI web URL.
- Derive the project slug (
github/org/repofrom app URLs, accepted by CircleCI Server; public cloud also acceptsgh/org/repofor cloud URLs). - Call
GET /api/v2/project/{project-slug}/{job-number}/tests, following pagination. - Report tests whose result is
failure,failed,error, orerrored, including class/name/file/message/source where available.
If authentication fails, ask the user to provide/export a valid CircleCI token with permission to read the project/job.
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- warnLicenseno SPDX license detected
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-0d2aaf7636f32026-07-31