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 agentmods add skills/codervisor/leanspec/watch-cinpx skills add codervisor/leanspec --skill watch-cigit clone --depth 1 https://github.com/codervisor/leanspecWrote 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/codervisor/leanspec/watch-ci)<a href="https://agentmods.dev/skills/codervisor/leanspec/watch-ci"><img src="https://agentmods.dev/badge/skills/codervisor/leanspec/watch-ci.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 | $0.00025 | $0.00822 |
| Opus 5 | $0.00013 | $0.00411 |
| Sonnet 5 | $0.00005 | $0.00164 |
| Haiku 4.5 | $0.00003 | $0.00082 |
Grade A, and why
watch-ci scanned grade A with 1 finding 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 4d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
The `gh` CLI is **not available** in the Claude VM. Use the GitHub REST API via `curl`. How it starts
The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Watch CI
Poll the GitHub Actions CI pipeline for the current HEAD commit until all jobs finish.
Environment
The gh CLI is not available in the Claude VM. Use the GitHub REST API via curl.
The repo is codervisor/leanspec.
Steps
-
Get the current commit SHA and branch:
SHA=$(git rev-parse HEAD) BRANCH=$(git branch --show-current) echo "Watching CI for commit $SHA on branch $BRANCH" -
Find the workflow run matching our exact commit. The API returns runs newest-first; filter by
head_sha. If the run hasn't appeared yet (GitHub can take a few seconds), retry up to 5 times with 10s waits:curl -sH "Accept: application/vnd.github+json" \ "https://api.github.com/repos/codervisor/lean-spec/actions/runs?branch=$BRANCH&head_sha=$SHA&per_page=1" \ | python3 -c " import json, sys data = json.load(sys.stdin) runs = data.get('workflow_runs', []) if not runs: print('NO_RUNS'); sys.exit() r = runs[0] print(f'RUN_ID={r[\"id\"]}') print(f'Status: {r[\"status\"]} Conclusion: {r.get(\"conclusion\") or \"pending\"} Commit: {r[\"head_sha\"][:8]}')" -
Poll jobs until all complete (every 60s for Rust builds which take ~8-10 min):
curl -sH "Accept: application/vnd.github+json" \ "https://api.github.com/repos/codervisor/lean-spec/actions/runs/$RUN_ID/jobs" \ | python3 -c " import json, sys data = json.load(sys.stdin) for j in data.get('jobs', []): steps = [s for s in j.get('steps', []) if s['status'] == 'in_progress'] step_info = f' -> {steps[0][\"name\"]}' if steps else '' print(f'{j[\"name\"]:40} {j[\"status\"]:12} {j.get(\"conclusion\") or \"\"}{step_info}')" -
On failure, fetch the failed job logs to diagnose:
curl -sH "Accept: application/vnd.github+json" \ "https://api.github.com/repos/codervisor/lean-spec/actions/runs/$RUN_ID/jobs" \ | python3 -c " import json, sys data = json.load(sys.stdin) for j in data.get('jobs', []): if j.get('conclusion') == 'failure': print(f'FAILED: {j[\"name\"]} (id: {j[\"id\"]})') for s in j.get('steps', []): if s.get('conclusion') == 'failure': print(f' Step: {s[\"name\"]}')"
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.
- 4d ago First seen · 81 lines · 25 tokens per session scan A 2b5dc6a3b1b2
watch-ci is a skill published in the GitHub repository codervisor/leanspec (287 stars, last pushed 3mo ago), licensed MIT. It adds 25 tokens to every session and 822 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
add-community-extension
Add a community extension to the Spec Kit catalog from a GitHub issue submission. USE FOR: processing extension submission issues, validating catalog entries, updating catalog.community.json and docs/community/extensions.md, creating PRs. DO NOT USE FOR: creating new extensions from scratch, or first-party extension…
qa-ci-cd-testing
当需要把测试集成到 CI/CD 流水线中、或者现有流水线的测试环节跑起来效率低不可靠时使用此技能。覆盖流水线各阶段的分层测试卡点设计(提交检查→单元测试→接口测试→UI 测试→回归测试)、工具集成策略和质量门禁配置。不要在 CI 里堆满慢的 UI 测试——而是构建测试金字塔:提交阶段跑最快的(<5min),合码阶段跑核心的(<15min),夜间跑全量的。.
qa-test-automation-arch
当需要设计自动化测试框架、或者现有框架维护成本太高需要重构时使用此技能。运用 PageObject、分层测试、关键字驱动、数据驱动等模式设计可维护可扩展的自动化架构。不要直接写测试代码——先设计架构:选型(UI/API/单元)、分层(测试层/业务层/基础设施层)、数据管理(测试数据与脚本分离)和 CI 集成方案。好的自动化架构应该让写用例的人不需要懂底层实现。.
harden-gitlab-ci
Harden GitLab CI/CD pipelines for supply-chain security — SHA-pin include: and CI/CD components, scope the CIJOBTOKEN allowlist, protect and mask variables, pin job image digests, and use idtokens/OIDC instead of long-lived secrets. Use when adding or auditing a .gitlab-ci.yml, before making a GitLab project public…
validate-quality-config
Validate consistency across quality configuration files. Use after setup-git-hooks, when debugging "works locally, fails in CI" issues, before major releases, or when onboarding.
aif-ci
Generate CI/CD pipeline (GitHub Actions / GitLab CI) with linting, static analysis, tests, security. Use when user says "ci", "setup ci", "github actions", "gitlab ci", "pipeline".