Edict.ClaudeSkills
1.0.0
dotnet tool install --global Edict.ClaudeSkills --version 1.0.0
dotnet new tool-manifest
dotnet tool install --local Edict.ClaudeSkills --version 1.0.0
#tool dotnet:?package=Edict.ClaudeSkills&version=1.0.0
nuke :add-package Edict.ClaudeSkills --version 1.0.0
Edict.ClaudeSkills
Edict is a CQRS and event-driven framework for .NET on Microsoft Orleans. Edict.ClaudeSkills is the installer that drops Edict's consumer-facing skill bundle into .claude/skills/ and wires Edict.Mcp into .mcp.json. Install as a dotnet tool and run edict-skills install from your repo root so Claude Code knows when to reach for which Edict-specific MCP tool while authoring code, contracts, silo wiring, tests, and diagnostics.
Requires the .NET 10 SDK on the developer machine.
Install (recommended)
Pin the tool version per repo via a local manifest. This keeps the installed skill bodies aligned with the consumer's Edict.* library version by construction.
dotnet new tool-manifest
dotnet tool install Edict.ClaudeSkills --prerelease
dotnet tool restore
Then from your repo root:
dotnet edict-skills install
Check the manifest into source control. Every developer on the repo gets the same skill bundle on dotnet tool restore.
Install (global)
If you prefer a machine-wide install:
dotnet tool install --global Edict.ClaudeSkills --prerelease
edict-skills install
A global install will not version-pin the installed skill bodies to your Edict.* library version.
Where it writes
The installer writes .claude/skills/<skill-name>/SKILL.md relative to where you run it. For unusual layouts, pass --target path/to/.claude/skills.
Existing skill files are not overwritten. The installer reports which files it wrote and which it skipped.
.mcp.json wiring
After installing skills, the installer inspects .mcp.json in the current directory and reports what it did. It never modifies an existing .mcp.json — only creates one when absent.
The behaviour matrix:
- File absent — creates
.mcp.jsonwith theedictentry in the form matching the detected install mode (manifest or global). This is the only case in which the installer writes the file. - File present, no
edictentry undermcpServers— prints the entry you should add. Your file is left untouched so any comments, ordering, or other servers stay exactly as you authored them. - File present,
edictentry already in the matching form — reports the file as already wired and does nothing. - File present,
edictentry in the other form — you have a manifest install but the entry is the global form, or vice versa. Prints the replacement entry; your file is left untouched.
Detection: an entry whose command is dotnet is classified as the manifest form; anything else is the global form. The installer reads .mcp.json permissively (comments and trailing commas tolerated) so a hand-curated file is not rejected for cosmetic reasons.
Skills
Five skills land, each scoped to "when working on a consumer app built on Edict":
edict-authoring— fires when adding a feature. Walks the Command Handler / Event Handler / Saga / Projection Builder / List Projection Builder decision tree.edict-contracts— fires when defining or modifying Commands and Events. Covers[EdictRouteKey],[EdictStream],[EdictTelemeterized], MessagePack-first.edict-silo-wiring— fires when editingProgram.cs. Covers theAddEdict*matrix.edict-testing— fires when writing tests. CoversEdictTestApp, the probes,Replace, and chaos-default.edict-diagnostics— fires when investigating failures. CoversIEdictDeadLetterRepository, the trace stitch, and common failure shapes.
Standalone use
The skill bundle is plain markdown. It works without Edict.Mcp wired up — Claude Code reads the bodies as context regardless. Cursor and other non-Claude editors that support skill-shaped markdown can consume the files directly.
Learn more
See docs/usage/getting-started.md for the smallest valid sample.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.