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 AterDev/Perigon.CLI --skill dotnetgit clone --depth 1 https://github.com/AterDev/Perigon.CLIWrote 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/aterdev/perigon.cli/dotnet)<a href="https://agentmods.dev/skills/aterdev/perigon.cli/dotnet"><img src="https://agentmods.dev/badge/skills/aterdev/perigon.cli/dotnet/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/aterdev/perigon.cli/dotnet"><img src="https://agentmods.dev/badge/skills/aterdev/perigon.cli/dotnet.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00061 | $0.00333 |
| Opus 5.5 | $0.00024 | $0.00133 |
| Sonnet 5.5 | $0.00012 | $0.00067 |
| Haiku 4.5 | $0.00006 | $0.00033 |
Grade A, and why
dotnet 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 1mo 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.
What it actually says
.NET Application Development
Workflow
- Identify whether the change belongs in an app surface, service, manager, MCP tool, DTO/model, CodeGenerator, or Share.
- Read the calling surface from CLI or Blazor before changing shared behavior.
- Check shared entities and
DefaultDbContextbefore changing persistence. - Preserve dependency direction: app projects depend on CoreMod; CoreMod depends on CodeGenerator and Share; Share stays foundational.
Conventions
- Put cross-step workflows and external I/O in services.
- Put MiniDb query/update behavior in managers.
- Keep app-facing service methods stable when both CLI and Blazor consume them.
- Use existing DTO patterns and Mapster helpers (
MapTo,Merge,Adapt) where nearby code does. - Pass
CancellationTokenthrough file, HTTP, and long-running async operations. - Make HTTP services testable with injectable clients or handlers.
- Log exceptions with structured logging before wrapping them in localized, user-friendly errors.
- Keep MCP tools as protocol surfaces: stable parameter names, returned shapes, and no console output.
Tests
- Add tests under
tests/StudioMod.Tests/Services,Managers, orCommandsdepending on the observable behavior. - Stub HTTP and isolate filesystem/MiniDb state.
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.
- 1mo ago First seen · 30 lines · 61 tokens per session scan A 36db1ab86079
dotnet is a skill published in the GitHub repository AterDev/Perigon.CLI (54 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 61 tokens to every session and 333 once invoked, about $0.0002 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.
Other skills, from other repositories
migrate-mstest-v3-to-v4
Use this skill before answering, planning, or editing any MSTest 3.x-to-4.x upgrade or post-upgrade failure. Triggers include "MSTest v4 breaking changes"; CS0507/CS0103/CS1061/CS1615; ExecuteAsync, CallerInfo, DisplayName, or custom TestMethodAttribute; ClassCleanupBehavior; ContainsKey; ThrowsExactly or…
wpf
Build and modernize WPF applications on .NET with correct XAML, data binding, commands, threading, styling, and Windows desktop migration decisions. USE FOR: working on WPF UI, MVVM, binding, commands, or desktop modernization; migrating WPF from .NET Framework to .NET; integrating newer Windows capabilities into a…
worker-services
Build long-running .NET background services with BackgroundService, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons. USE FOR: background services; scheduled workers; hosted services; worker extraction; graceful shutdown, health checks, and service hosting…
mcp
Build or consume Model Context Protocol (MCP) servers and clients in .NET using the official MCP C# SDK, including stdio, Streamable HTTP, tools, prompts, resources, and capability negotiation. USE FOR: .NET MCP servers or clients; stdio versus HTTP transport choices; tools, resources, prompts, completions, and…
migrate-xunit-to-mstest
Convert .NET tests from xUnit.net v2/v3 to MSTest v4 while preserving VSTest or MTP. Use for replacing xunit packages, Fact/Theory/InlineData/MemberData, assertions, IClassFixture/ICollectionFixture, ITestOutputHelper, TestContext cancellation, traits/Owner, skips, timeouts, and xUnit parallelization. Also use when a…
migrate-xunit-to-xunit-v3
Migrate .NET test projects from xUnit.net v2 to xunit.v3 and fix v3 breaks. Use for package/CPM conversion, OutputType=Exe, preserving the VSTest or MTP runner (including projects currently using YTest.MTP.XUnit2), incompatible TFMs, async void tests, string-to-Type attributes, custom Fact/Theory/BeforeAfterTest…