Skip to content
Back to skills

Change Endpoint

ASecurity

Add a new endpoint or change an existing one (route, HTTP status codes, request/response shape, validation rules) end to end across controller, service, repository, validator, tests, and docs. Use for any API behavior change in this project.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
developmentapi

Works with

  • api

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add nanotaboada/Dotnet.Samples.AspNetCore.WebApi --skill change-endpoint --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Change Endpoint?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Change Endpoint
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nanotaboada-change-endpoint/badge)](https://www.skillsdirectory.com/skills/nanotaboada-change-endpoint)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: change-endpoint
description: Add a new endpoint or change an existing one (route, HTTP status codes, request/response shape, validation rules) end to end across controller, service, repository, validator, tests, and docs. Use for any API behavior change in this project.
---

# Change an endpoint

The API contract (endpoints, status codes, response shapes) is an invariant:
confirm the change with the user and make sure an issue exists before editing.

Source paths below are relative to `src/Dotnet.Samples.AspNetCore.WebApi/`.
Test paths start with `test/`. Repository-root files (`README.md`,
`CLAUDE.md`, `docs/`) use repository-root paths.

1. **Models** — add or update DTOs in `Models/` (`PlayerRequestModel`,
   `PlayerResponseModel`); keep the `Player` entity untouched unless the
   schema changes too (then also follow the `change-data` skill).
2. **Mapping** — update `Mappings/PlayerMappingProfile.cs`.
3. **Repository** — add query methods to `IPlayerRepository` /
   `PlayerRepository` only if `Repository<T>` does not already cover them.
   Use `AsNoTracking()` for reads.
4. **Service** — add or update the method in `IPlayerService` /
   `PlayerService`; keep cache invalidation consistent with the other
   mutating methods.
5. **Validation** — update `Validators/PlayerRequestModelValidator.cs` inside
   the `Create` or `Update` rule set; the controller must call the matching
   rule set explicitly.
6. **Controller** — add or update the action in
   `Controllers/PlayerController.cs`:
   - `[Http*(..., Name = "...")]` route, `/// <summary>` XML docs (they feed
     Swagger)
   - one `[ProducesResponseType]` per possible status code
   - `TypedResults.*`; RFC 7807 Problem Details for errors, `422` for
     validation failures
7. **Tests** — follow the naming patterns in `CLAUDE.md`:
   - `test/.../Unit/PlayerControllerTests.cs`, `PlayerServiceTests.cs`,
     `PlayerValidatorTests.cs`
   - `test/.../Integration/PlayerWebApplicationTests.cs` for the HTTP-level
     status code and payload
   - build test data with `PlayerFakes` / `PlayerMocks`
8. **Docs** — update the API Reference table and error codes in `README.md`;
   add an ADR (see the `create-adr` skill) if the change alters an accepted
   decision such as status codes or the mutation key.
9. Run `/pre-commit`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.