Getting Started
Ngrx Traits ships an Agent Skill that teaches coding agents how to use the library: which store feature solves which problem, the order the features have to be composed in, the exact names of the signals and methods each one generates, and the options they take.
Without it agents tend to invent names that look right (productsLoading(), setFilter()) and to place
features in an order that compiles but never fetches. With it they write stores that match the docs.
The skill lives in the repository under skills/ngrx-traits
and is released together with the library, so it always describes the current API.
Skills are folders of markdown, so installing one is copying that folder where your agent looks for skills. The skills CLI does it for every agent it detects, or you can copy it yourself.
# in your project, adds it to .claude/skills and .agents/skills
npx skills add gabrielguerrero/ngrx-traits
# or for every project on your machine
npx skills add gabrielguerrero/ngrx-traits -g
Useful flags: --copy copies the files instead of symlinking them, -a claude-code installs for one
agent only, and npx skills update pulls the latest version later.
git clone --depth 1 https://github.com/gabrielguerrero/ngrx-traits.git /tmp/ngrx-traits
mkdir -p .claude/skills
cp -r /tmp/ngrx-traits/skills/ngrx-traits .claude/skills/
.claude/skills is what Claude Code reads in a project, ~/.claude/skills for every project. Other
agents that support the Agent Skills format read their own skills directory the same way.
For anything that does not support skills, point the agent at skills/ngrx-traits/SKILL.md and let it
follow the links from there.
Nothing to call: the agent loads the skill on its own when a prompt mentions Ngrx Traits or one of its store features, and reads only the reference files the task needs.
Create a product store with server side filtering, sorting and pagination,
and load the detail of the selected row.
Why does my filter not reload the list?
Bind this filter form to the store with signal forms.
| File | Contents |
|---|---|
SKILL.md |
Composition ordering rules, config style, generated naming conventions, common mistakes, testing |
recipes.md |
Complete stores: local list, remote list, infinite scroll, list + detail, forms, split store, SSR, caching |
entities-loading.md |
withEntities, withCallStatus, withEntitiesLoadingCall, withAllCallStatus, withCallStatusMap |
calls.md |
withCalls, withEntitiesCalls, awaiting results, the resource view of a call |
filtering.md / sorting.md / pagination.md / selection.md |
The withEntities* feature families |
links-forms.md |
withLink, withLinkEntities*, withStateSetter, Signal Forms binding |
sync-routing.md |
withRoute, URL query params sync, web storage, SSR state transfer |
caching.md |
cacheCall, cacheRxCall, CacheStore |
utils.md |
ExtractStoreFeatureOutput, withFeatureFactory, withLogger, the rename-collection schematic |