@drunkcoding/dknet-implementation-skills 14.1.1 → 14.2.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/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/dknet-crud/SKILL.md +2 -0
- package/plugin/skills/dknet-endpoint/SKILL.md +2 -0
- package/plugin/skills/dknet-feature/SKILL.md +2 -0
- package/plugin/skills/dknet-feature-remove/SKILL.md +5 -4
- package/plugin.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drunkcoding/dknet-implementation-skills",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.2.0",
|
|
4
4
|
"description": "Agent skills (Claude Code plugin + Agent Skills standard) that teach coding agents how to build features on solutions generated from DKNet.Minimal.Template. Install with `npx skills add baoduy/DKNet.Templates`.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dknet",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "dknet-minimal",
|
|
4
4
|
"displayName": "DKNet Minimal Template",
|
|
5
5
|
"description": "Skills and subagents that teach an agent how to build features on the DKNet.Minimal.Template (.NET 10, vertical-slice DDD/CQRS): endpoints (hand-mapped, generated CRUD, generic helpers), actions and queries, FluentValidation + Mapster DTOs, domain entities and static seeding, SlimMessageBus internal and Azure Service Bus events, auth/ownership and every platform flag — plus slash workflows that scaffold a slice end-to-end.",
|
|
6
|
-
"version": "14.
|
|
6
|
+
"version": "14.2.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "baoduy",
|
|
9
9
|
"email": "baoduy2412@gmail.com",
|
|
@@ -321,6 +321,7 @@ of the five the generator genuinely cannot express (`dknet-feature-lifecycle` §
|
|
|
321
321
|
`Result.Ok()`.
|
|
322
322
|
4. Wire each into `<Feature>V1Endpoint.cs` with a literal `Map*` call (`dknet-endpoint`) so
|
|
323
323
|
DataAnnotations validation, if any, is actually enforced.
|
|
324
|
+
5. Keep `ApiEndpoints/<YourApp>.Client` in step by adding the matching client methods (`I{Plural}Client`, contracts under `Contracts/`) in the same change.
|
|
324
325
|
|
|
325
326
|
**mode=auto** (mirror `AutomatedSample/Product`):
|
|
326
327
|
|
|
@@ -332,6 +333,7 @@ of the five the generator genuinely cannot express (`dknet-feature-lifecycle` §
|
|
|
332
333
|
4. For an operation that must write more than one aggregate, or must reject a repeat call as a
|
|
333
334
|
domain failure rather than a `200`, write a `...Command` (not `...Request`) and drop the
|
|
334
335
|
generated route for that member with `CrudMapOptions.Exclude("MethodName")` in the endpoint.
|
|
336
|
+
5. Keep `ApiEndpoints/<YourApp>.Client` in step by adding the matching client methods for every route the endpoint maps, in the same change.
|
|
335
337
|
|
|
336
338
|
## Validation checklist
|
|
337
339
|
|
|
@@ -404,6 +404,7 @@ skill.
|
|
|
404
404
|
through `IMessageBus`.
|
|
405
405
|
4. Add `.RequiredIdempotentKey()` to the create route if a duplicate submit must not create two rows.
|
|
406
406
|
5. Add `.WithDescription(...)`/`.Produces<T>(...)` to every route.
|
|
407
|
+
6. Keep `ApiEndpoints/<YourApp>.Client` in step by adding the matching client method (one Refit method per route, on `I{Plural}Client`) in the same change — `<YourApp>.App.Tests/Client/ClientEndpointParityTests.cs` fails on any endpoint without one.
|
|
407
408
|
|
|
408
409
|
### `mode=auto`
|
|
409
410
|
|
|
@@ -416,6 +417,7 @@ skill.
|
|
|
416
417
|
`o.Configure(...)` only for a route whose scope its HTTP method cannot decide.
|
|
417
418
|
4. For anything the generator can't express, hand-map it below the composite call, dropping the
|
|
418
419
|
generated route it replaces via `o.Exclude(...)` when one exists.
|
|
420
|
+
5. Keep `ApiEndpoints/<YourApp>.Client` in step by adding the matching client method for every generated and hand-mapped route (on `I{Plural}Client`) in the same change — the parity test fails on any drift.
|
|
419
421
|
|
|
420
422
|
## Verification
|
|
421
423
|
|
|
@@ -102,6 +102,8 @@ the package version supports it, dropping to `o.Configure(...)`/`.RequireAuthori
|
|
|
102
102
|
behind the `FeatureOptions.RequireAuthorization` guard — only for a route whose HTTP method cannot
|
|
103
103
|
decide its scope.
|
|
104
104
|
|
|
105
|
+
Client, either mode: keep `ApiEndpoints/<YourApp>.Client` in step by adding the matching client methods — one Refit method per route on a new `I{Plural}Client`, its contracts under `Contracts/` — in the same change; `<YourApp>.App.Tests/Client/ClientEndpointParityTests.cs` must stay green.
|
|
106
|
+
|
|
105
107
|
Build green.
|
|
106
108
|
|
|
107
109
|
### Phase 5 — Unit/integration tests
|
|
@@ -62,10 +62,11 @@ intermediate build failure points at real coupling rather than at the ordering.
|
|
|
62
62
|
generated `*.feature.cs`, plus `Steps/`).
|
|
63
63
|
3. Tests — `<YourApp>.App.Tests/Unit/<Feature>/` and `<YourApp>.App.Tests/Integration/<Feature>/`.
|
|
64
64
|
Also grep `<YourApp>.App.Tests/Architecture/` — a convention test may assert on this feature by name.
|
|
65
|
-
4.
|
|
66
|
-
5.
|
|
67
|
-
6.
|
|
68
|
-
7.
|
|
65
|
+
4. Client — keep `<YourApp>.Client` in step by removing the matching client methods (the feature's `I{Plural}Client` and the `Contracts/` only it uses) in the same change. A removed sample also takes its named tests in `<YourApp>.App.Tests/Client/` with it — the drift ATs in `Client/ClientEndpointParityTests.cs` name `ManualSample` and `AutomatedSample` routes.
|
|
66
|
+
5. Api — `<YourApp>.Api/ApiEndpoints/<Feature>/`.
|
|
67
|
+
6. AppServices — `<YourApp>.AppServices/<Feature>/`.
|
|
68
|
+
7. Infra — `<YourApp>.Infra/Features/<Feature>/`.
|
|
69
|
+
8. Domains — `<YourApp>.Domains/Features/<Feature>/`.
|
|
69
70
|
|
|
70
71
|
## Phase 2 — Out-of-folder touchpoints
|
|
71
72
|
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dknet-minimal",
|
|
3
3
|
"description": "Agent skills and agents for building vertical-slice DDD/CQRS features on solutions generated from DKNet.Minimal.Template (.NET 10, EF Core, .NET Aspire, SlimMessageBus, FluentValidation, Mapster, Reqnroll BDD).",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.2.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "baoduy"
|
|
7
7
|
},
|