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.
Files changed (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +389 -0
  3. package/dist/src/cli.js +440 -0
  4. package/package.json +53 -0
  5. package/skills/api-contract-safety/SKILL.md +14 -0
  6. package/skills/api-endpoint-deprecation/SKILL.md +27 -0
  7. package/skills/aspnet-core-api-development/SKILL.md +29 -0
  8. package/skills/bug-investigation/SKILL.md +18 -0
  9. package/skills/code-quality/SKILL.md +18 -0
  10. package/skills/code-review/SKILL.md +14 -0
  11. package/skills/context-reset/SKILL.md +16 -0
  12. package/skills/dependency-management/SKILL.md +26 -0
  13. package/skills/diff-review/SKILL.md +22 -0
  14. package/skills/distributed-workflows/SKILL.md +17 -0
  15. package/skills/dotnet-architecture/SKILL.md +22 -0
  16. package/skills/dotnet-architecture/references/design-checks.md +24 -0
  17. package/skills/dotnet-implementation/SKILL.md +20 -0
  18. package/skills/dotnet-implementation/references/runtime-safety.md +46 -0
  19. package/skills/dotnet-security/SKILL.md +18 -0
  20. package/skills/ef-core-safety/SKILL.md +19 -0
  21. package/skills/exception-handling/SKILL.md +16 -0
  22. package/skills/exception-handling/references/customer-facing-api.md +17 -0
  23. package/skills/git-workflow/SKILL.md +42 -0
  24. package/skills/google-bigquery-dotnet/SKILL.md +23 -0
  25. package/skills/google-bigquery-dotnet/references/query-safety.md +19 -0
  26. package/skills/google-cloud-pubsub-dotnet/SKILL.md +33 -0
  27. package/skills/google-cloud-pubsub-dotnet/references/client-patterns.md +32 -0
  28. package/skills/google-firestore-dotnet/SKILL.md +23 -0
  29. package/skills/poc-development/SKILL.md +14 -0
  30. package/skills/production-debugging/SKILL.md +14 -0
  31. package/skills/production-hotfix/SKILL.md +17 -0
  32. package/skills/production-logging/SKILL.md +24 -0
  33. package/skills/relational-database-dotnet/SKILL.md +22 -0
  34. package/skills/relational-database-dotnet/references/oracle.md +12 -0
  35. package/skills/relational-database-dotnet/references/postgresql.md +12 -0
  36. package/skills/safe-terminal/SKILL.md +60 -0
  37. package/skills/shared-code-impact/SKILL.md +16 -0
  38. package/skills/targeted-validation/SKILL.md +18 -0
  39. package/skills/task-router/SKILL.md +30 -0
  40. 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
+ [![Documentation](https://img.shields.io/badge/Documentation-Browse-2563eb.svg?style=flat-square&logo=githubpages)](https://dprakash2101.github.io/dotnet-production-agent-skills/)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-512BD4.svg?style=flat-square)](LICENSE)
7
+ [![Agent Skills](https://img.shields.io/badge/Agent%20Skills-Vendor--neutral-059669.svg?style=flat-square)](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**.