Agent skill

CI Prep

by Nimblesite in Nimblesite/SharpLsp

Prepares the current branch for CI by running the exact same steps locally and fixing issues.

MITAuto-check passedTesting & QA

Install CI Prep

skills CLI
$ npx skills add Nimblesite/SharpLsp --skill ci-prep -a claude-code

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

GitHub CLI
$ gh skill install Nimblesite/SharpLsp ci-prep --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/Nimblesite/SharpLsp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ci-prep .claude/skills/ci-prep && 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-prep
GitHub stars
138
Token cost
~1.6k tokens
SKILL.md length
857 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Prepares the current branch for CI by running the exact same steps locally and fixing issues.

  • Works in 5 steps: Fetch failed CI logs (only when --failing) → Analyze the CI workflow → Run each CI step locally, in order → …
  • Tasks that involve Failing and flaky tests
  • SKILL.md covers Arguments, Step 1 — Fetch failed CI logs…, Step 2 — Analyze the CI workflow and Step 3 — Run each CI step…, plus 4 more sections
  • Calls gh, make and cargo

What it does

CI Prep is an agent skill from Nimblesite/SharpLsp. Prepares the current branch for CI by running the exact same steps locally and fixing issues. If CI is already failing, fetches the GH Actions logs first to diagnose. Use before pushing, when CI is red, or when the user says "fix ci".

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Failing and flaky tests. It works with Visual Studio Code and Rust. The licence is MIT.

When your agent uses it

  • Tasks that involve Failing and flaky tests

Example prompts

  • “fix ci”
  • “Use the ci-prep skill to prepare the current branch for CI by running the exact same steps locally and fixing issues”
  • “/ci-prep”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Fetch failed CI logs (only when --failing)
  2. Analyze the CI workflow
  3. Run each CI step locally, in order
  4. Report
  5. Commit/Push (only when --failing)

What it can do on your machine

Read from SKILL.md and the folder at commit 34f38bf. 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

    Shell commands in SKILL.md call:

    • gh
    • make
    • cargo
    • git
    • jq
    • node
    • npx
    • dotnet

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

  • Network

    No URLs in SKILL.md. Its commands use gh, git and npx, 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 no API keys, tokens, secrets or passwords.

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

Context cost

CI Prep loads about 1.6k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 857 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from Nimblesite/SharpLsp at commit 34f38bf, republished under its MIT licence (© Nimblesite). 857 words, ~1,609 tokens.

Download SKILL.mdSave it as .claude/skills/ci-prep/SKILL.md (or your agent's skills folder).
name
ci-prep
description
Prepares the current branch for CI by running the exact same steps locally and fixing issues. If CI is already failing, fetches the GH Actions logs first to diagnose. Use before pushing, when CI is red, or when the user says "fix ci".
argument-hint
[--failing] [optional job name to focus on]
<!-- agent-pmo:2efd847 -->

CI Prep

Prepare the current state for CI. If CI is already failing, fetch and analyze the logs first.

Arguments

  • --failing — Indicates a GitHub Actions run is already failing. When present, you MUST execute Step 1 before doing anything else.
  • Any other argument is treated as a job name to focus on (but all failures are still reported).

If --failing is NOT passed, skip directly to Step 2.

Step 1 — Fetch failed CI logs (only when --failing)

You MUST do this before any other work.

bash
BRANCH=$(git branch --show-current)
PR_JSON=$(gh pr list --head "$BRANCH" --state open --json number,title,url --limit 1)

If the JSON array is empty, stop immediately:

No open PR found for branch $BRANCH. Create a PR first.

Otherwise fetch the logs:

bash
PR_NUMBER=$(echo "$PR_JSON" | jq -r '.[0].number')
gh pr checks "$PR_NUMBER"
RUN_ID=$(gh run list --branch "$BRANCH" --limit 1 --json databaseId --jq '.[0].databaseId')
gh run view "$RUN_ID"
gh run view "$RUN_ID" --log-failed

Read every line of --log-failed output. For each failure note the exact file, line, and error message. If a job name argument was provided, prioritize that job but still report all failures.

Step 2 — Analyze the CI workflow

  1. Read every .github/workflows/ci*.yml completely — the PR pipeline is split into reusable workflows ([DIST-CI-LAYOUT]), so ci.yml alone only shows the orchestration:
    • ci.yml — orchestrator: detect-changes, dependency review, manifest validation, one uses: job per leg
    • ci-lint.yml — Rust / Zed / .NET / VS Code lint + format gates
    • ci-test-rust.yml — sharded Rust e2e suite, coverage gate, version contract
    • ci-test-dotnet.yml — sidecar tests (Ubuntu) + win32 named-pipe transport
    • ci-test-vsix.yml — full VS Code suite + coverage gate (Ubuntu)
    • ci-test-vsix-windows.yml — VS Code feature chunks on Windows ([DIST-CI-WIN-VSIX])
  2. Parse every job and every step, then extract the ordered list of commands the CI actually runs.
  3. Note any environment variables, matrix strategies, or conditional steps that affect execution. In particular the Windows VS Code matrix expands from src/editors/vscode/test-chunks.json — enumerate the chunks with node tools/vsix/vsix-test-chunks.mjs matrix and run each locally as make _test-vsix-win CHUNK=<name>.

Do NOT assume the steps are make lint, make test, make build. The actual CI may run different commands, in a different order. Extract what the CI actually does.

Step 3 — Run each CI step locally, in order

Before making changes, coordinate with other agents via TMC:

  1. Check TMC status for active agents and locked files
  2. Do NOT edit files locked by other agents
  3. Lock files before editing them
  4. Broadcast what you are doing

Work through failures in this priority order:

  1. Formatting — run auto-formatters first to clear noise
  2. Compilation errors — must compile before lint/test
  3. Lint violations — fix the code pattern
  4. Runtime / test failures — fix source code to satisfy the test

For each command extracted from the CI workflow:

  1. Run the command exactly as CI would run it (adjusting only for local environment differences like not needing actions/checkout).
  2. If the step fails, stop and fix the issues before continuing to the next step.
  3. After fixing, re-run the same step to confirm it passes.
  4. Move to the next step only after the current one succeeds.
Fix Rules
  • Rust clippy violations: Fix the code. Never add #[allow(clippy::...)] without an extraordinary justification.
  • Rust fmt: Run cargo fmt to auto-fix, then verify with cargo fmt --check.
  • TypeScript prettier: Run cd src/editors/vscode && npx prettier@3 --write 'src/**/*.ts' to auto-fix.
  • TypeScript ESLint: Fix lint errors in the source. Never add // eslint-disable.
  • TypeScript tsc: Fix type errors. Never use any to silence a type error.
  • .NET csharpier: Run dotnet csharpier src/sidecars/ to auto-fix.
  • .NET build warnings: Fix the actual warning in the source code.
Show full SKILL.md (314 more words)Show less
Hard constraints
  • NEVER modify test files — fix the source code, not the tests
  • NEVER add suppressions (#[allow(...)], // eslint-disable, #pragma warning disable)
  • NEVER use any in TypeScript to silence type errors
  • NEVER delete or ignore failing tests
  • NEVER remove assertions
When to Keep Looping

After reaching the end of the checklist, go back to the start and run it again. A fix for one check may break an earlier check. Keep looping until you get a complete clean pass — every check green on the first try with nothing fixed during that pass.

Do NOT stop after one loop. Keep going until a full pass is clean.

If stuck on the same failure after 5 attempts, ask the user for help.

Step 4 — Report

  • List every step that was run and its result (pass/fail/fixed).
  • If any step could not be fixed, report what failed and why.
  • Confirm whether the branch is ready to push.

Step 5 — Commit/Push (only when --failing)

Once all CI steps pass locally:

  1. Commit, but DO NOT MARK THE COMMIT WITH YOU AS AN AUTHOR!!! Only the user authors the commit!
  2. Push
  3. Monitor until completion or failure
  4. Upon failure, go back to Step 1

Rules

  • Always read the CI workflow first. Never assume what commands CI runs.
  • Do not push if any step fails (unless --failing and all steps now pass)
  • Fix issues found in each step before moving to the next
  • Never skip steps or suppress errors
  • If the CI workflow has multiple jobs, run all of them (respecting dependency order)
  • Skip steps that are CI-infrastructure-only (checkout, setup-node/rust actions, cache steps, artifact uploads) — focus on the actual build/test/lint commands
  • Always coordinate with other agents via TMC

Success criteria

  • Every command that CI runs has been executed locally and passed
  • All fixes are applied to the working tree
  • The CI passes successfully (if you are correcting an existing failure)

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

Files

Just SKILL.md in .agents/skills/ci-prep of Nimblesite/SharpLsp.

Open the folder on GitHubat commit 34f38bf

Compare with similar skills

CI Prep 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 Prep compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
CI Prep this skillNimblesite/SharpLsp138—~1.6kAutomated safety check: PassMIT
Apple Container Test RunnerRustPython/RustPython22k—~467Automated safety check: PassMIT
GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb6.7k—~4.4kAutomated safety check: PassApache-2.0
CI Failure Analysisvortex-data/vortex3.2k—~810Automated safety check: PassApache-2.0
OpenLogi Change VerificationAprilNEA/OpenLogi23k—~1.4kAutomated safety check: PassApache-2.0
RustPython Test Failure InvestigationRustPython/RustPython22k—~467Automated safety check: PassMIT

Similar skills

  • Apple Container Test Runner

    RustPython/RustPython

    Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.

    22k GitHub stars~467 tokensUpdated today
    Testing & QAAuto-check passed
  • Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.

    6.7k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed
  • CI Failure Analysis

    vortex-data/vortex

    Analyze Vortex GitHub Actions CI failures. An agent skill from vortex-data/vortex.

    3.2k GitHub stars~810 tokensUpdated today
    Testing & QAAuto-check passed
  • Plans the smallest check that could disprove a code change in the OpenLogi project, then escalates through reproduction, focused tests and a final gate before a push.

    23k GitHub stars~1.4k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • Investigates a failing RustPython test by comparing it with CPython, then either fixes it or gathers the details for an incompatibility report.

    22k GitHub stars~467 tokensUpdated today
    Testing & QAAuto-check passed
  • Review

    webern/cargo-readme

    Reviews a GitHub pull request for correctness, architecture, security, backward compatibility, and test coverage.

    385 GitHub stars~2k tokensUpdated 11 days ago
    Testing & QAAuto-check: notes

More from Nimblesite/SharpLsp

  • Code Dedup

    Nimblesite/SharpLsp

    Searches for duplicate code, duplicate tests, and dead code across the SharpLsp repo, then safely merges or removes them.

    138 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Upgrade Packages

    Nimblesite/SharpLsp

    Upgrades all project dependencies to latest compatible versions.

    138 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about CI Prep

What does CI Prep do?

Prepares the current branch for CI by running the exact same steps locally and fixing issues. CI Prep is an agent skill from Nimblesite/SharpLsp. Prepares the current branch for CI by running the exact same steps locally and fixing issues.

When should I use CI Prep?

CI Prep fits situations like: tasks that involve Failing and flaky tests.

How do I install CI Prep in Claude Code?

Run `npx skills add Nimblesite/SharpLsp --skill ci-prep -a claude-code`. Or copy the skill folder (.agents/skills/ci-prep in Nimblesite/SharpLsp) into .claude/skills/ci-prep in your project. Claude Code loads it when a task matches its description.

How do I install CI Prep in Codex?

Run `npx skills add Nimblesite/SharpLsp --skill ci-prep -a codex`. Or copy the skill folder (.agents/skills/ci-prep in Nimblesite/SharpLsp) into .agents/skills/ci-prep in your project. Codex loads it when a task matches its description.

Can I use CI Prep 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 Nimblesite/SharpLsp --skill ci-prep -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-prep, .gemini/skills/ci-prep, .github/skills/ci-prep and .opencode/skills/ci-prep in your project.

What does CI Prep need to run?

Going by SKILL.md and its folder, CI Prep needs the command-line tools its instructions call (gh, make, cargo, git, jq and node). Our summary lists: Node.js.

Does CI Prep access the network?

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

Is CI Prep 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. Review the folder before installing.

What licence does CI Prep use?

CI Prep 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 Prep use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to CI Prep?

Skills that share tags, products or a category with CI Prep: Apple Container Test Runner (RustPython/RustPython, 22k stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), CI Failure Analysis (vortex-data/vortex, 3.2k stars) and OpenLogi Change Verification (AprilNEA/OpenLogi, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains CI Prep?

Nimblesite (a GitHub organization) maintains it in Nimblesite/SharpLsp, which has 138 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.

Source: Nimblesite/SharpLsp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.