Extend with AI
NetForge's biggest idea isn't a feature — it's a shape. The whole codebase is uniform enough that an AI assistant has exactly one way to add anything, so a complete feature can land from a single prompt as idiomatic, reviewable code.
Why it works
AI assistants do their best work when there's a clear pattern to follow and a short feedback loop. NetForge is built for both:
- One shape per layer. Every backend feature is six files under
Features/{Domain}/; every screen is a folder undersrc/pages/. There's no "where does this go?" — there's a_Templateto copy and a place for everything. - Zero hidden wiring. Slices register by reflection and routes are generated from the file tree, so the assistant never has to find and edit a central registration file (and never forgets to). Add the folder, and it's live.
- One way to do things. RFC 7807 errors,
PagedResultlists, the filter pipeline, static mapping,DbContextdirectly — the deliberate lack of alternatives (no MediatR, no AutoMapper, no repository layer) means there's nothing to choose wrong. - The conventions are written down — for agents.
CLAUDE.mdandAGENTS.mdship in the repo as the canonical "what to do," with recipes and a conventions cheat-sheet the assistant can read before it writes.
What a prompt looks like
"Add a Projects feature: a Project has a name, description, and owner. CRUD endpoints gated by
projects.*permissions, a list page with search and a create/edit dialog, and make it searchable in ⌘K."
Because there's a canonical slice to copy and documented recipes for each part, that prompt produces:
- a backend slice (
Features/Projects/) with endpoints, validators, EF config, permissions, and a migration, - a typed API module and a routed list/detail screen on the frontend,
- a search provider so it shows up in the command palette.
Each piece follows the same patterns as the rest of the app, so the diff is easy to review — you're checking that it matches the house style, not deciphering a new one.
The agent context
The repo ships the context an assistant needs to stay on-pattern:
| File | Role |
|---|---|
CLAUDE.md | The canonical agent/contributor guide — architecture, conventions, recipes. |
AGENTS.md | Points any assistant (Claude, Cursor, Copilot, Codex, …) at CLAUDE.md. |
docs/RECIPES.md, docs/CONVENTIONS.md | The deep how-to and one-screen reference, in-repo for local tools. |
It's not Claude-specific: the agents.md convention means any AI coding assistant treats the same guide as the source of truth.
Try it
Scaffold a project, open it in your assistant of choice, and ask it to add a feature. The Add a feature recipe is the same loop a human follows — which is exactly why an assistant can follow it too.