dotnet-production-agent-skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +389 -0
- package/dist/src/cli.js +440 -0
- package/package.json +53 -0
- package/skills/api-contract-safety/SKILL.md +14 -0
- package/skills/api-endpoint-deprecation/SKILL.md +27 -0
- package/skills/aspnet-core-api-development/SKILL.md +29 -0
- package/skills/bug-investigation/SKILL.md +18 -0
- package/skills/code-quality/SKILL.md +18 -0
- package/skills/code-review/SKILL.md +14 -0
- package/skills/context-reset/SKILL.md +16 -0
- package/skills/dependency-management/SKILL.md +26 -0
- package/skills/diff-review/SKILL.md +22 -0
- package/skills/distributed-workflows/SKILL.md +17 -0
- package/skills/dotnet-architecture/SKILL.md +22 -0
- package/skills/dotnet-architecture/references/design-checks.md +24 -0
- package/skills/dotnet-implementation/SKILL.md +20 -0
- package/skills/dotnet-implementation/references/runtime-safety.md +46 -0
- package/skills/dotnet-security/SKILL.md +18 -0
- package/skills/ef-core-safety/SKILL.md +19 -0
- package/skills/exception-handling/SKILL.md +16 -0
- package/skills/exception-handling/references/customer-facing-api.md +17 -0
- package/skills/git-workflow/SKILL.md +42 -0
- package/skills/google-bigquery-dotnet/SKILL.md +23 -0
- package/skills/google-bigquery-dotnet/references/query-safety.md +19 -0
- package/skills/google-cloud-pubsub-dotnet/SKILL.md +33 -0
- package/skills/google-cloud-pubsub-dotnet/references/client-patterns.md +32 -0
- package/skills/google-firestore-dotnet/SKILL.md +23 -0
- package/skills/poc-development/SKILL.md +14 -0
- package/skills/production-debugging/SKILL.md +14 -0
- package/skills/production-hotfix/SKILL.md +17 -0
- package/skills/production-logging/SKILL.md +24 -0
- package/skills/relational-database-dotnet/SKILL.md +22 -0
- package/skills/relational-database-dotnet/references/oracle.md +12 -0
- package/skills/relational-database-dotnet/references/postgresql.md +12 -0
- package/skills/safe-terminal/SKILL.md +60 -0
- package/skills/shared-code-impact/SKILL.md +16 -0
- package/skills/targeted-validation/SKILL.md +18 -0
- package/skills/task-router/SKILL.md +30 -0
- package/skills/unit-testing/SKILL.md +22 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Devi Prakash
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
# .NET Production Agent Skills
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://dprakash2101.github.io/dotnet-production-agent-skills/)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://agentskills.io/specification)
|
|
8
|
+
|
|
9
|
+
## Practical .NET guidance for coding agents
|
|
10
|
+
|
|
11
|
+
A focused collection of `SKILL.md` guidance built to reduce repeated prompting, unnecessary token use, and avoidable rework when developing production .NET software with AI coding tools.
|
|
12
|
+
|
|
13
|
+
[Browse the skills catalog](https://dprakash2101.github.io/dotnet-production-agent-skills/#skills) · [Build an install command](https://dprakash2101.github.io/dotnet-production-agent-skills/#install) · [Report an issue](https://github.com/dprakash2101/dotnet-production-agent-skills/issues)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Table of Contents
|
|
20
|
+
|
|
21
|
+
- [Overview & Core Philosophy](#overview--core-philosophy)
|
|
22
|
+
- [Architecture & Progressive Disclosure](#architecture--progressive-disclosure)
|
|
23
|
+
- [Quick Start](#quick-start)
|
|
24
|
+
- [Skills Catalog](#skills-catalog)
|
|
25
|
+
- [🧭 Workflow & Orientation](#1--workflow--orientation)
|
|
26
|
+
- [🏗️ Architecture & Core Implementation](#2-️-architecture--core-implementation)
|
|
27
|
+
- [🛡️ API Contracts & Boundaries](#3-️-api-contracts--boundaries)
|
|
28
|
+
- [🧪 Quality, Testing & Review](#4--quality-testing--review)
|
|
29
|
+
- [☁️ Cloud & Database Engineering](#5-️-cloud--database-engineering)
|
|
30
|
+
- [⚡ Distributed Resilience & Security](#6-️-distributed-resilience--security)
|
|
31
|
+
- [🔍 Incident Response & Diagnosis](#7--incident-response--diagnosis)
|
|
32
|
+
- [Composition Workflows](#composition-workflows)
|
|
33
|
+
- [Quality Policies & Standards](#quality-policies--standards)
|
|
34
|
+
- [TypeScript CLI Reference](#typescript-cli-reference)
|
|
35
|
+
- [Installation Targets & Paths](#installation-targets--paths)
|
|
36
|
+
- [Safety & Conflict Handling](#safety--conflict-handling)
|
|
37
|
+
- [Host Compatibility](#host-compatibility)
|
|
38
|
+
- [Validation & Development](#validation--development)
|
|
39
|
+
- [Why I built this](#why-i-built-this)
|
|
40
|
+
- [License](#license)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Overview & Core Philosophy
|
|
45
|
+
|
|
46
|
+
**dotnet-production-agent-skills** captures reusable production guidance for coding agents working on modern .NET and ASP.NET Core codebases. It maintains one canonical source of truth and uses a small TypeScript installer to adapt that content to supported agent discovery locations.
|
|
47
|
+
|
|
48
|
+
The repository maintains **one canonical source of truth**:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
skills/ (canonical portable Agent Skills)
|
|
52
|
+
├── focused SKILL.md specifications
|
|
53
|
+
└── targeted references/ (deep dive technical guides)
|
|
54
|
+
│
|
|
55
|
+
▼
|
|
56
|
+
TypeScript Adapter (dist/src/cli.js)
|
|
57
|
+
│
|
|
58
|
+
├── Codex → .agents/skills
|
|
59
|
+
├── GitHub Copilot → .github/skills | .copilot/skills
|
|
60
|
+
├── Claude Code → .claude/skills
|
|
61
|
+
└── Cursor → .cursor/skills | .agents/skills
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Core Engineering Invariant
|
|
65
|
+
|
|
66
|
+
> **Implement the requested behavior without changing unrelated behavior.**
|
|
67
|
+
>
|
|
68
|
+
> Task size changes investigation depth and validation rigor — never baseline safety standards.
|
|
69
|
+
|
|
70
|
+
- **No Hallucinated Edits**: Narrow, intentional changes that preserve existing patterns.
|
|
71
|
+
- **Progressive Context Disclosure**: Prevents token waste by loading comprehensive reference guides only when the specific scenario demands it.
|
|
72
|
+
- **Vendor Agnostic**: Adheres to the portable [Agent Skills specification](https://agentskills.io/specification). Guidance is maintained in one place rather than duplicated across agent ecosystems.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Architecture & Progressive Disclosure
|
|
77
|
+
|
|
78
|
+
Agents initially ingest only skill **names** and **descriptions**. When a task activates a skill, its concise `SKILL.md` is loaded. Specialized references (e.g. ADO.NET connection pools, BigQuery cost minimization, or API boundary error handling) are pulled into context only on demand:
|
|
79
|
+
|
|
80
|
+
```mermaid
|
|
81
|
+
flowchart TD
|
|
82
|
+
subgraph Discovery ["1. Host Discovery (Zero Context Overhead)"]
|
|
83
|
+
D1["Scan Skill Names & Descriptions"]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
subgraph Activation ["2. Scenario Matching"]
|
|
87
|
+
D1 -->|User Request Matches Scenario| S1["Load canonical SKILL.md"]
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
subgraph References ["3. Progressive Disclosure (On Demand Only)"]
|
|
91
|
+
S1 -->|Cloud / Complex Task| R1["references/client-patterns.md"]
|
|
92
|
+
S1 -->|Relational Database| R2["references/postgresql.md OR oracle.md"]
|
|
93
|
+
S1 -->|HTTP Error Boundaries| R3["references/api-boundaries.md"]
|
|
94
|
+
end
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This layout ensures an ordinary controller edit does not saturate the agent's context window with Pub/Sub, BigQuery, Firestore, and Oracle rules.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Quick Start
|
|
102
|
+
|
|
103
|
+
Choose the smallest command that matches how you work. Copy mode is the recommended default because it is portable and easy to inspect.
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
# Recommended: install for supported agents on this machine
|
|
107
|
+
npx dotnet-production-agent-skills install --target all
|
|
108
|
+
|
|
109
|
+
# Keep the installation inside the current repository
|
|
110
|
+
npx dotnet-production-agent-skills install --target all --scope project
|
|
111
|
+
|
|
112
|
+
# Install for one agent only
|
|
113
|
+
npx dotnet-production-agent-skills install --target copilot
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
| Choice | Use it when | Flag |
|
|
117
|
+
| :--- | :--- | :--- |
|
|
118
|
+
| **All agents** | You use more than one supported coding agent. | `--target all` |
|
|
119
|
+
| **One agent** | You only want Codex, Copilot, Claude Code, or Cursor. | `--target <agent>` |
|
|
120
|
+
| **My machine** | You want skills available across repositories. | default user scope |
|
|
121
|
+
| **This project** | You want repository-specific installation. | `--scope project` |
|
|
122
|
+
| **Copy** | You want the safest, portable installation. | default mode |
|
|
123
|
+
| **Link** | You are developing the skill library locally. | `--mode link` |
|
|
124
|
+
|
|
125
|
+
### From Local Checkout
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
# Clone and build
|
|
129
|
+
git clone https://github.com/dprakash2101/dotnet-production-agent-skills.git
|
|
130
|
+
cd dotnet-production-agent-skills
|
|
131
|
+
npm install
|
|
132
|
+
npm run build
|
|
133
|
+
|
|
134
|
+
# Run health check & dry run
|
|
135
|
+
node dist/src/cli.js doctor --target all
|
|
136
|
+
node dist/src/cli.js install --target all --dry-run
|
|
137
|
+
|
|
138
|
+
# Perform installation
|
|
139
|
+
node dist/src/cli.js install --target all
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Shell and PowerShell scripts are also provided:
|
|
143
|
+
|
|
144
|
+
```sh
|
|
145
|
+
# POSIX (Linux / macOS)
|
|
146
|
+
./scripts/install-skills.sh --target all
|
|
147
|
+
|
|
148
|
+
# Windows PowerShell
|
|
149
|
+
./scripts/install-skills.ps1 -Target all
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Skills Catalog
|
|
155
|
+
|
|
156
|
+
The catalog is grouped by task so agents can load only the guidance relevant to the current work. Use the [interactive catalog](https://dprakash2101.github.io/dotnet-production-agent-skills/#skills) to search by technology, workflow, or engineering concern.
|
|
157
|
+
|
|
158
|
+
### 1. 🧭 Workflow & Orientation
|
|
159
|
+
|
|
160
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
161
|
+
| :--- | :--- | :--- |
|
|
162
|
+
| [`task-router`](skills/task-router/SKILL.md) | Classify requests to select the smallest proportionate workflow when the path forward is ambiguous. | — |
|
|
163
|
+
| [`context-reset`](skills/context-reset/SKILL.md) | Reorient safely when user instructions interrupt, pivot, or invalidate an in-progress coding task. | — |
|
|
164
|
+
| [`safe-terminal`](skills/safe-terminal/SKILL.md) | Execute shell commands safely, handle failures, and prevent accidental mutations or credential leaks. | — |
|
|
165
|
+
| [`poc-development`](skills/poc-development/SKILL.md) | Build bounded, explicit spikes or prototypes to answer technical questions without cutting production corners prematurely. | — |
|
|
166
|
+
|
|
167
|
+
### 2. 🏗️ Architecture & Core Implementation
|
|
168
|
+
|
|
169
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
170
|
+
| :--- | :--- | :--- |
|
|
171
|
+
| [`dotnet-architecture`](skills/dotnet-architecture/SKILL.md) | Design and preserve clean boundaries, layering, and DI registrations for substantial changes. | [architecture-patterns](skills/dotnet-architecture/references/architecture-patterns.md) |
|
|
172
|
+
| [`dotnet-implementation`](skills/dotnet-implementation/SKILL.md) | Implement robust production .NET & ASP.NET Core behavior adhering to established repository conventions. | [idiomatic-csharp](skills/dotnet-implementation/references/idiomatic-csharp.md) |
|
|
173
|
+
| [`shared-code-impact`](skills/shared-code-impact/SKILL.md) | Identify all consumers, analyze ripple effects, and strictly constrain changes to shared libraries/helpers. | — |
|
|
174
|
+
| [`dependency-management`](skills/dependency-management/SKILL.md) | Assess, add, prune, or upgrade NuGet dependencies conservatively without breaking transitive graphs. | — |
|
|
175
|
+
|
|
176
|
+
### 3. 🛡️ API Contracts & Boundaries
|
|
177
|
+
|
|
178
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
179
|
+
| :--- | :--- | :--- |
|
|
180
|
+
| [`aspnet-core-api-development`](skills/aspnet-core-api-development/SKILL.md) | Build thin controllers/minimal APIs with validation, structured responses, and complete OpenAPI specs. | — |
|
|
181
|
+
| [`api-contract-safety`](skills/api-contract-safety/SKILL.md) | Guard HTTP contracts against unintended breaking changes across routes, payloads, error formats, and headers. | — |
|
|
182
|
+
| [`api-endpoint-deprecation`](skills/api-endpoint-deprecation/SKILL.md) | Execute formal multi-stage API deprecation, migration windows, consumer verification, and safe retirement. | — |
|
|
183
|
+
| [`exception-handling`](skills/exception-handling/SKILL.md) | Establish clear recovery, translation, cancellation, and logging boundaries across .NET application tiers. | [api-boundaries](skills/exception-handling/references/api-boundaries.md) |
|
|
184
|
+
|
|
185
|
+
### 4. 🧪 Quality, Testing & Review
|
|
186
|
+
|
|
187
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
188
|
+
| :--- | :--- | :--- |
|
|
189
|
+
| [`code-quality`](skills/code-quality/SKILL.md) | Apply Clean-as-You-Code principles, Roslyn analyzers, and Sonar expectations to new/modified code. | — |
|
|
190
|
+
| [`unit-testing`](skills/unit-testing/SKILL.md) | Target 90–100% meaningful coverage of new business logic using parameterized tests without test bloat. | — |
|
|
191
|
+
| [`code-review`](skills/code-review/SKILL.md) | Review diffs rigorously for correctness, security, concurrency, performance, and regression risks. | — |
|
|
192
|
+
| [`targeted-validation`](skills/targeted-validation/SKILL.md) | Run proportionate verification (from single-test execution to full suite runs) aligned with change risk. | — |
|
|
193
|
+
| [`diff-review`](skills/diff-review/SKILL.md) | Perform a final pre-commit audit of working tree diffs for accidental mutations, formatting drift, and secrets. | — |
|
|
194
|
+
|
|
195
|
+
### 5. ☁️ Cloud & Database Engineering
|
|
196
|
+
|
|
197
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
198
|
+
| :--- | :--- | :--- |
|
|
199
|
+
| [`ef-core-safety`](skills/ef-core-safety/SKILL.md) | Prevent N+1 queries, audit DbContext lifecycles, manage transactions, and write safe migrations. | — |
|
|
200
|
+
| [`relational-database-dotnet`](skills/relational-database-dotnet/SKILL.md) | Execute high-performance ADO.NET access, connection lifecycle, and parameterized queries for PostgreSQL & Oracle. | [postgresql](skills/relational-database-dotnet/references/postgresql.md), [oracle](skills/relational-database-dotnet/references/oracle.md) |
|
|
201
|
+
| [`google-cloud-pubsub-dotnet`](skills/google-cloud-pubsub-dotnet/SKILL.md) | Implement robust Google Cloud Pub/Sub publishers and pull subscribers with proper ack/nack semantics. | [client-patterns](skills/google-cloud-pubsub-dotnet/references/client-patterns.md) |
|
|
202
|
+
| [`google-bigquery-dotnet`](skills/google-bigquery-dotnet/SKILL.md) | Query BigQuery with parameterization, pagination, streaming buffers, and strict query-cost awareness. | [query-safety](skills/google-bigquery-dotnet/references/query-safety.md) |
|
|
203
|
+
| [`google-firestore-dotnet`](skills/google-firestore-dotnet/SKILL.md) | Model Firestore documents, transactions, and batched writes with concurrency and read-cost awareness. | — |
|
|
204
|
+
|
|
205
|
+
### 6. ⚡ Distributed Resilience & Security
|
|
206
|
+
|
|
207
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
208
|
+
| :--- | :--- | :--- |
|
|
209
|
+
| [`distributed-workflows`](skills/distributed-workflows/SKILL.md) | Build idempotent consumers, handle partial failures, manage distributed retries, and design background workers. | — |
|
|
210
|
+
| [`dotnet-security`](skills/dotnet-security/SKILL.md) | Threat-model .NET boundaries, protect against SSRF/XSS/SQLi, enforce authorization, and handle secrets safely. | — |
|
|
211
|
+
| [`production-logging`](skills/production-logging/SKILL.md) | Produce structured, high-signal, sensitive-data-masked, and cost-efficient Serilog/ILogger production logs. | — |
|
|
212
|
+
|
|
213
|
+
### 7. 🔍 Incident Response & Diagnosis
|
|
214
|
+
|
|
215
|
+
| Skill | Focus & Trigger | Progressive References |
|
|
216
|
+
| :--- | :--- | :--- |
|
|
217
|
+
| [`bug-investigation`](skills/bug-investigation/SKILL.md) | Isolate symptoms to an empirical root cause before proposing or writing code modifications. | — |
|
|
218
|
+
| [`production-debugging`](skills/production-debugging/SKILL.md) | Diagnose production failures from telemetry, dumps, traces, and metrics without mutating live state. | — |
|
|
219
|
+
| [`production-hotfix`](skills/production-hotfix/SKILL.md) | Formulate and validate emergency incident hotfixes with minimal blast radius and rapid evidence-based testing. | — |
|
|
220
|
+
| [`git-workflow`](skills/git-workflow/SKILL.md) | Carry out requested branch, commit, and push operations using efficient batch commands and clean Git hygiene. | — |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Composition Workflows
|
|
225
|
+
|
|
226
|
+
Rather than bloating single skills, skills are composed to form seamless end-to-end engineering pipelines:
|
|
227
|
+
|
|
228
|
+
```mermaid
|
|
229
|
+
flowchart LR
|
|
230
|
+
subgraph DefectWorkflow ["Fixing a Production Defect"]
|
|
231
|
+
BI["bug-investigation"] --> DI["dotnet-implementation"]
|
|
232
|
+
DI --> UT["unit-testing"]
|
|
233
|
+
UT --> TV["targeted-validation"]
|
|
234
|
+
TV --> DR["diff-review"]
|
|
235
|
+
end
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
```mermaid
|
|
239
|
+
flowchart LR
|
|
240
|
+
subgraph ApiWorkflow ["Building a Customer-Facing API"]
|
|
241
|
+
AD["aspnet-core-api-development"] --> CS["api-contract-safety"]
|
|
242
|
+
CS --> EH["exception-handling"]
|
|
243
|
+
EH --> PL["production-logging"]
|
|
244
|
+
PL --> CQ["code-quality"]
|
|
245
|
+
end
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
```mermaid
|
|
249
|
+
flowchart LR
|
|
250
|
+
subgraph CloudWorker ["Building an Event-Driven Worker"]
|
|
251
|
+
PS["google-cloud-pubsub-dotnet"] --> DW["distributed-workflows"]
|
|
252
|
+
DW --> EF["ef-core-safety / relational-database"]
|
|
253
|
+
EF --> PL2["production-logging"]
|
|
254
|
+
end
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Quality Policies & Standards
|
|
260
|
+
|
|
261
|
+
### Sonar & Clean-as-You-Code
|
|
262
|
+
- Automatically inspects `.editorconfig`, repository analyzers, Roslyn rules, and SonarCloud settings before writing C#.
|
|
263
|
+
- Adheres to [Clean as You Code](https://docs.sonarsource.com/sonarqube-cloud/standards/about-new-code/): fixes new defects and complexity in modified code without derailing tasks into massive legacy cleanups.
|
|
264
|
+
|
|
265
|
+
### Targeted Unit-Test Coverage (90–100%)
|
|
266
|
+
- Focuses on 90–100% meaningful coverage of new or modified business logic.
|
|
267
|
+
- Avoids redundant test counts and brittle implementation testing; prioritizes framework-native parameterized tests (`[Theory]`, `[TestCase]`) and real observable outcomes.
|
|
268
|
+
|
|
269
|
+
### Formal API Deprecation Lifecycle
|
|
270
|
+
Endpoints follow an explicit, multi-step deprecation cycle before removal:
|
|
271
|
+
|
|
272
|
+
$$\text{ACTIVE} \longrightarrow \text{DEPRECATED} \longrightarrow \text{MIGRATION WINDOW} \longrightarrow \text{USAGE VERIFIED} \longrightarrow \text{REMOVAL APPROVED} \longrightarrow \text{REMOVED}$$
|
|
273
|
+
|
|
274
|
+
External consumers are never assumed absent just because no internal repository reference is found.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## TypeScript CLI Reference
|
|
279
|
+
|
|
280
|
+
The installer CLI is written in TypeScript and compiles to dependency-free Node.js ESM (requiring Node.js >= 18).
|
|
281
|
+
|
|
282
|
+
```text
|
|
283
|
+
dotnet-agent-skills <command> [options]
|
|
284
|
+
|
|
285
|
+
Commands:
|
|
286
|
+
install Install canonical skills into agent discovery paths
|
|
287
|
+
update Refresh managed skills and retire stale/removed skills
|
|
288
|
+
list Display available skills and current installation status
|
|
289
|
+
doctor Validate skill metadata and report host installation health
|
|
290
|
+
uninstall Safely remove only skills tracked by this package
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Options & Flags
|
|
294
|
+
|
|
295
|
+
| Flag | Description | Default |
|
|
296
|
+
| :--- | :--- | :--- |
|
|
297
|
+
| `--target <host>` | Target agent: `all`, `shared`, `codex`, `copilot`, `claude`, `cursor` | `all` |
|
|
298
|
+
| `--scope <scope>` | Installation scope: `user` (home dir) or `project` (repository dir) | `user` |
|
|
299
|
+
| `--project <path>`| Explicit path to repository root (forces `--scope project`) | Current dir |
|
|
300
|
+
| `--mode <mode>` | Installation mode: `copy` (portable) or `link` (symlinks) | `copy` |
|
|
301
|
+
| `--dry-run` | Simulate actions without modifying disk | `false` |
|
|
302
|
+
| `--force` | Overwrite conflict files after moving originals to backup | `false` |
|
|
303
|
+
| `--yes` | Bypass confirmation prompts (required for non-interactive force) | `false` |
|
|
304
|
+
| `--json` | Format output as JSON (supported on `list` and `doctor`) | `false` |
|
|
305
|
+
|
|
306
|
+
### Installation Targets & Paths
|
|
307
|
+
|
|
308
|
+
| Target | User Scope (`~`) | Project Scope (`<repo>`) |
|
|
309
|
+
| :--- | :--- | :--- |
|
|
310
|
+
| `codex` / `shared` | `~/.agents/skills` | `<project>/.agents/skills` |
|
|
311
|
+
| `copilot` | `~/.copilot/skills` | `<project>/.github/skills` |
|
|
312
|
+
| `claude` | `~/.claude/skills` | `<project>/.claude/skills` |
|
|
313
|
+
| `cursor` | `~/.cursor/skills` | `<project>/.cursor/skills` |
|
|
314
|
+
| `all` | `~/.agents/skills` + `~/.claude/skills` | `<project>/.agents/skills` + `<project>/.claude/skills` |
|
|
315
|
+
|
|
316
|
+
### Safety & Conflict Handling
|
|
317
|
+
|
|
318
|
+
- **State Manifest**: Managed installations are tracked in `.dotnet-agent-skills.json` with cryptographic content digests.
|
|
319
|
+
- **Conflict Protection**: If a destination file was manually modified or belongs to another tool, the CLI aborts and refuses to overwrite.
|
|
320
|
+
- **Safe Backups**: When `--force` is authorized, conflicting skills are backed up to timestamped archives before replacement.
|
|
321
|
+
- **Surgical Uninstallation**: `uninstall` only removes files explicitly tracked by the manifest, leaving custom user skills untouched.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Host Compatibility
|
|
326
|
+
|
|
327
|
+
| Agent Platform | Native Specification | Adapter Support | Operational Notes |
|
|
328
|
+
| :--- | :--- | :--- | :--- |
|
|
329
|
+
| **OpenAI Codex** | Portable `SKILL.md` in `.agents/skills` | Direct copy or symlink into `.agents/skills` | Follows native discovery paths for user & project scopes. |
|
|
330
|
+
| **GitHub Copilot** | `.github/skills`, `.agents/skills` | Installs to `.github/skills` (project) or `.copilot/skills` (user) | Surface capabilities vary across VS Code, Visual Studio, and JetBrains. |
|
|
331
|
+
| **Claude Code** | Portable `SKILL.md` in `.claude/skills` | Direct copy or symlink into `.claude/skills` | Supports project & user scopes. Committed project skills recommended for team consistency. |
|
|
332
|
+
| **Cursor** | `.cursor/skills` and `.agents/skills` | Installs to `.cursor/skills` or shared `.agents/skills` | Auto-detects compatible `.agents/skills` layouts. |
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Publishing to npm
|
|
337
|
+
|
|
338
|
+
GitHub Actions publishes the package from [`.github/workflows/publish-npm.yml`](.github/workflows/publish-npm.yml).
|
|
339
|
+
|
|
340
|
+
1. Configure repository settings:
|
|
341
|
+
- Secret `PACKAGE_MANAGER_TOKEN` — npm automation token that can publish `dotnet-production-agent-skills` (used as `NODE_AUTH_TOKEN`)
|
|
342
|
+
- Variable `RELEASE_GIT_NAME` — git author name for version-bump commits (example: `Devi Prakash`)
|
|
343
|
+
- Variable `RELEASE_GIT_EMAIL` — git author email for version-bump commits (example: `dprakash2101@gmail.com`)
|
|
344
|
+
2. Choose a versioning path:
|
|
345
|
+
- **GitHub Release**: create a release whose tag is semver (`v1.2.3` or `1.2.3`). The workflow aligns `package.json` to that version, refuses to republish an existing npm version, validates, then publishes.
|
|
346
|
+
- **Workflow dispatch**: choose `keep` to publish the current `package.json` version as-is, or `patch` / `minor` / `major` / `prerelease` to bump first. Optionally override the npm dist-tag, and optionally commit/tag changes back to the branch before publish.
|
|
347
|
+
3. Dist-tags default from the version (`latest` for stable, `beta` / `next` / `alpha` / `rc` for matching prereleases) unless you override them on dispatch.
|
|
348
|
+
|
|
349
|
+
`package.json` is the version source of truth. If `package-lock.json` root version drifts, the workflow aligns the lockfile to `package.json` (or the release tag) without inventing a new semver. `keep` does not bump; it only publishes the current version (after any lock sync). Republishing a version that already exists on npm is still rejected.
|
|
350
|
+
|
|
351
|
+
Successful publishes are recorded under the repository **npm** environment (Deployments on the GitHub repo page) and link to the published package version on npmjs.com.
|
|
352
|
+
|
|
353
|
+
The workflow runs version resolution, an npm uniqueness check, and `npm run validate` before `npm publish --access public --provenance`.
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Validation & Development
|
|
358
|
+
|
|
359
|
+
Verify all canonical skills against the Agent Skills specification and run the automated test suite:
|
|
360
|
+
|
|
361
|
+
```sh
|
|
362
|
+
# Validate skill markdown, frontmatter, links, and line-length limits
|
|
363
|
+
python3 scripts/validate_skills.py
|
|
364
|
+
|
|
365
|
+
# Run TypeScript build and node:test suite
|
|
366
|
+
npm test
|
|
367
|
+
|
|
368
|
+
# Run complete validation pipeline
|
|
369
|
+
npm run validate
|
|
370
|
+
|
|
371
|
+
# Dry-run package artifact creation
|
|
372
|
+
npm pack --dry-run
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Why I built this
|
|
378
|
+
|
|
379
|
+
I created **dotnet-production-agent-skills** after repeatedly explaining the same production expectations to GitHub Copilot—then spending more tokens correcting and reworking the result. This project captures those lessons as focused, reusable guidance so coding agents can start with better context and produce safer .NET code the first time.
|
|
380
|
+
|
|
381
|
+
Created and maintained by [Devi Prakash](https://github.com/dprakash2101). Contributions and practical feedback are welcome through [GitHub issues](https://github.com/dprakash2101/dotnet-production-agent-skills/issues).
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## License
|
|
386
|
+
|
|
387
|
+
Distributed under the **MIT License**. See [`LICENSE`](LICENSE) for complete terms.
|
|
388
|
+
|
|
389
|
+
Copyright (c) 2026 **Devi Prakash**.
|