Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add mgiovani/cc-arsenal --skill ci-localgit clone --depth 1 https://github.com/mgiovani/cc-arsenalWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mgiovani/cc-arsenal/ci-local)<a href="https://agentmods.dev/skills/mgiovani/cc-arsenal/ci-local"><img src="https://agentmods.dev/badge/skills/mgiovani/cc-arsenal/ci-local.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00214 | $0.01711 |
| Opus 5 | $0.00107 | $0.00856 |
| Sonnet 5 | $0.00043 | $0.00342 |
| Haiku 4.5 | $0.00021 | $0.00171 |
Grade A, and why
ci-local scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CI Local
Reproduce a GitHub Actions run on the local machine. The workflow YAML is the spec: read it, don't guess at what "the lint step" or "the test step" means.
Scope
GitHub Actions only (.github/workflows/*.yml). If the repo uses GitLab CI, CircleCI,
or Jenkins instead, say so and stop: no translation layer exists for those yet
(add one if it comes up twice, not speculatively).
Phase 1: Find the merge-gating jobs
- If invoked with
[workflow-file]and/or--job name, skip the glob: read only that file, and if--jobis given, extract only that job. OtherwiseGlobfor.github/workflows/*.yml(and.yaml). If none exist, tell the user there's no workflow to mirror and stop. - Read each file. A job gates merges if its workflow triggers on
pull_requestorpushto a protected branch: ignore jobs that only run onschedule,workflow_dispatch, orreleaseunless the user asks for those specifically. - For a multi-file or multi-job repo, use a haiku
Exploresubagent to read all workflow files in parallel and return a structured list of: job name, trigger, runs-on, steps (withuses/run/env/working-directory),services:,strategy.matrix, and any${{ secrets.* }}references. Keep this out of the main thread: workflow YAML is verbose and you only need the extracted summary. No subagent tool available? Read the workflow files directly and extract the same summary inline.
Phase 2: Translate steps to local commands
Walk the steps in order and translate each one. Do not invent a generic
lint && test && build: use exactly what the workflow does.
| Workflow step | Local translation |
|---|---|
actions/checkout |
no-op: you're already in the working tree |
actions/setup-node with node-version: X |
fnm use X (or nvm use X) before the next steps; if neither is installed, warn and continue on whatever node -v reports |
actions/setup-python with python-version: X |
uv python pin X / uv run --python X ...; same fallback-and-warn if uv isn't available |
run: <cmd> with a working-directory: or env: block |
run <cmd> from that directory with those env vars exported for just that command |
cache steps (actions/cache) |
no-op: local disk cache already exists |
a run: step gated by if: on OS or event |
skip if the condition can't hold locally (e.g. runs-on: windows-latest step on a Mac), and say so |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 129 lines · 214 tokens per session scan A 73eff9f69358
ci-local is a skill published in the GitHub repository mgiovani/cc-arsenal (7 stars, last pushed 7d ago), licensed MIT. It adds 214 tokens to every session and 1,711 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
atmos-ci
Atmos CI: Native CI with GitHub Actions containers, native outputs, SBOM workflow-artifact publication, collapsible log groups, affected/all matrix workflows, OIDC profiles, toolchain-aware jobs, drift routing to Atmos Pro, deployment approvals, merge queues, environments, statuses, and Atlantis integration.
atmos-hooks
Atmos hooks: lifecycle events, hook kinds, command/store/git/security hooks, step/steps hooks, when: conditions, scoping and overrides, toolchain integration, --skip-hooks, and Atmos Pro/local output.
atmos-modernization
Atmos Modernization: migrate deprecated or legacy Atmos patterns to current names, Native CI, Atmos Pro drift detection, dependencies.components, nametemplate, and declared secrets.
atmos-lint
Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings. Use when configuring, running, debugging, or documenting Terraform/OpenTofu linting in an Atmos project.
atmos-pro
Atmos Pro setup and workflows: settings.pro, GitHub OIDC, affected and inventory uploads, stack locks, pro commit, workflow dispatch, merge queues, and drift detection.
atmos-sbom
Atmos SBOM provenance: CycloneDX and SPDX generation from vendor and Terraform evidence, coverage diagnostics, NTIA validation, and native CI workflow-artifact publication.