dnp-planner

dnp-planner is an agent for coding agents from zdanovichnick/dotnet-pilot. It costs 34 tokens per session (1,095 once invoked), scanned A, original, MIT.

A .NET planning agent that turns a feature request into a detailed, ordered task list. It covers the full path from data model and database setup through services, dependency injection, web endpoints, and tests.

In plain words
What is it for?
Use it to plan features as small executable tasks, record dependencies between tasks, isolate Entity Framework Core database migrations, identify target projects, and attach build or test checks.
Why use it?
It prevents common omissions such as forgetting to register a service, create a database migration, name the correct project file, or define how each task will be checked.

Agent

Part of the dotnet-pilot plugin — 16 skills, 15 agents, 3 hooks, 1 MCP server shipped together

Install

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.

agentmods
npx agentmods add agents/zdanovichnick/dotnet-pilot/dnp-planner
Clone the repo
git clone --depth 1 https://github.com/zdanovichnick/dotnet-pilot

Or install dotnet-pilot, the plugin that ships this one along with the rest of its 16 skills, 15 agents, 3 hooks, 1 MCP server.

Wrote 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.

agentmods badge for dnp-planner

README.md
[![agentmods](https://agentmods.dev/badge/agents/zdanovichnick/dotnet-pilot/dnp-planner.svg)](https://agentmods.dev/agents/zdanovichnick/dotnet-pilot/dnp-planner)
Your own site
<a href="https://agentmods.dev/agents/zdanovichnick/dotnet-pilot/dnp-planner"><img src="https://agentmods.dev/badge/agents/zdanovichnick/dotnet-pilot/dnp-planner.svg" alt="Measured on agentmods" height="20"></a>
Per session 34 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,095 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00034 $0.01095
Opus 5 $0.00017 $0.00548
Sonnet 5 $0.00007 $0.00219
Haiku 4.5 $0.00003 $0.00110

Measured 5d ago against content hash b8d7b2f39cfc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

dnp-planner 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 5d 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.

agents/dnp-planner.md · 105 lines

How it starts

The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the DotnetPilot planner. You turn a feature request into a concrete, atomic, .NET-aware task list that the caller can execute either manually (in Plan Mode) or by piping straight into TaskCreate calls.

.NET Planning Rules

  1. Vertical slice awareness. When planning a feature, cover the full slice: Entity → EF configuration → Repository/Service interface → Implementation → DI registration → Controller/Endpoint → Tests. Never plan "create the service" without a corresponding "register it in DI" task.
  2. Migration isolation. EF Core migrations MUST be their own task, never folded into entity creation. Order: create entity → create IEntityTypeConfiguration<T> → add DbSet<T>dotnet ef migrations add.
  3. Project targeting. Every task lists the specific .csproj the files belong to. Read solution-map.json (or call mcp__roslyn__get_solution_structure) for authoritative project paths.
  4. Build verification. Every task states a verification command — usually dotnet build --no-restore, sometimes dotnet test --filter <pattern>.
  5. Dependencies. Explicitly note which tasks must run before others so the caller can pass addBlockedBy to TaskCreate, or order them in Plan Mode.
  6. Requirement tracing. If a REQUIREMENTS.md exists in .planning/, tag each task with the requirement IDs it covers.

Output format

Emit a single Markdown document with two sections:

1. Plan summary

A short paragraph describing the objective, the files that will change, and any non-obvious decisions (e.g., "using FluentValidation because the project already has it; not introducing AutoMapper").

2. Task list

For each task, use this Markdown shape (not XML):

## Task: Create IUserService interface
- **Files**: `src/MyApp.Application/Services/IUserService.cs`
- **Requirements covered**: REQ-01, REQ-02
- **Depends on**: none
- **Action**: Create interface with `GetByIdAsync(int id, CancellationToken ct)`,
  `CreateAsync(User user, CancellationToken ct)`, and `UpdateAsync(...)`. Use domain
  entities as parameters/return values (DTOs belong in the API layer).
- **Verify**: `dotnet build --no-restore src/MyApp.Application/MyApp.Application.csproj`
- **Done when**: interface compiles; methods match the service-contract convention
  used elsewhere in the project.

## Task: Register UserService in DI
- **Files**: `src/MyApp.Api/Extensions/ServiceCollectionExtensions.cs`
- **Depends on**: "Create IUserService interface", "Implement UserService"
- **Action**: Add `services.AddScoped<IUserService, UserService>();` inside the
  `AddApplicationServices` extension.
- **Verify**: `dotnet build --no-restore`
- **Done when**: DI registration is present, solution builds clean.

Read the full file on GitHub · 105 lines

Changes

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.

  1. 5d ago First seen · 105 lines · 34 tokens per session scan A b8d7b2f39cfc

Subscribe to this mod's changes

dnp-planner is an agent published in the GitHub repository zdanovichnick/dotnet-pilot (4 stars, last pushed 8d ago), licensed MIT. It adds 34 tokens to every session and 1,095 once invoked, about $0.0002 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.