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 StefanTheCode/dotnet-ai-toolkit --skill cicd-pipeline-generatorgit clone --depth 1 https://github.com/StefanTheCode/dotnet-ai-toolkitWrote 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/stefanthecode/dotnet-ai-toolkit/cicd-pipeline-generator)<a href="https://agentmods.dev/skills/stefanthecode/dotnet-ai-toolkit/cicd-pipeline-generator"><img src="https://agentmods.dev/badge/skills/stefanthecode/dotnet-ai-toolkit/cicd-pipeline-generator/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/stefanthecode/dotnet-ai-toolkit/cicd-pipeline-generator"><img src="https://agentmods.dev/badge/skills/stefanthecode/dotnet-ai-toolkit/cicd-pipeline-generator.svg" alt="Reviewed on agentmods" width="80" 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.00112 | $0.00743 |
| Opus 5.5 | $0.00045 | $0.00297 |
| Sonnet 5.5 | $0.00022 | $0.00149 |
| Haiku 4.5 | $0.00011 | $0.00074 |
Grade A, and why
cicd-pipeline-generator 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 2mo 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 — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CI/CD Pipeline Generator
Generate a complete CI/CD pipeline for a .NET app — GitHub Actions or Azure DevOps — covering build, test, coverage, security scan, container image, and deploy.
Input — point it at your project
Works on a target: a repo or GitHub URL. Detect platform (existing .github/workflows or azure-pipelines.yml), TFM, test projects, and whether there's a Dockerfile: find <target> -name "*.csproj" -o -name "Dockerfile" -o -name "*.sln".
GitHub Actions (CI)
name: ci
on:
push: { branches: [main] }
pull_request: { branches: [main] }
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with: { dotnet-version: '9.0.x' }
- run: dotnet restore
- run: dotnet build --no-restore -c Release
- run: dotnet test --no-build -c Release --collect:"XPlat Code Coverage" --logger trx
- run: dotnet list package --vulnerable --include-transitive # fail the build on CVEs
- uses: actions/upload-artifact@v4
with: { name: coverage, path: '**/coverage.cobertura.xml' }
Add a container job (build + push to a registry) and a deploy job (environment-gated) when a Dockerfile/target exists.
Azure DevOps variant
Equivalent stages in azure-pipelines.yml (DotNetCoreCLI@2 tasks for restore/build/test/publish, Docker@2 for image, environments for approvals).
What it wires
- Restore → build → test (with coverage) → vulnerability scan → publish/container → deploy.
- PR triggers for fast feedback;
mainfor release. - Secrets via the platform's secret store (never inline).
- Caching for
~/.nuget/packagesto speed restores.
Principles
- Fail fast on quality + security — tests and
--vulnerableshould break the build. - Keep CI fast (cache NuGet,
--no-restore/--no-buildbetween steps). - Secrets come from the platform, never YAML literals.
- Gate deploys with environments/approvals; don't auto-ship to prod on every commit unless that's intended.
What ships with it
1 file 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.
- 2mo ago First seen · 54 lines · 112 tokens per session scan A 1f0d460fa03e
cicd-pipeline-generator is a skill published in the GitHub repository StefanTheCode/dotnet-ai-toolkit (26 stars, last pushed 2mo ago), licensed MIT. It adds 112 tokens to every session and 743 once invoked, about $0.0004 per session on Opus 5.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-30.
cicd-pipeline-generator compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| cicd-pipeline-generatorStefanTheCode/dotnet-ai-toolkit | Skill | 26 | 2mo ago | MIT | A | 112 | Claude Code |
| tree-sitter-language-pack-managing-parsersxberg-io/tree-sitter-language-pack | Skill | 482 | yesterday | MIT | A | 65 | Claude Code |
| dotnet-deploynixopus/nixopus | Skill | 1.5k | 5d ago | none | A | 49 | Claude Code, Codex |
| dotnet-local-toolsF-U-S-E-E/FuseDevelopmentGroup | Skill | 23 | 4d ago | AGPL-3.0 | A | 26 | Claude Code |
| migrate-dotnet9-to-dotnet10managedcode/dotnet-skills | Skill | 508 | yesterday | MIT | A | 266 | Claude Code, Codex |
| migrate-dotnet10-to-dotnet11managedcode/dotnet-skills | Skill | 508 | yesterday | MIT | A | 199 | Claude Code, Codex |
| migrate-dotnet8-to-dotnet9managedcode/dotnet-skills | Skill | 508 | yesterday | MIT | A | 176 | Claude Code, Codex |