mit einem Klick
new-feature
// Plan a new feature end-to-end — impact analysis across all layers before delegating to /domain, /read-model, /controller skills
// Plan a new feature end-to-end — impact analysis across all layers before delegating to /domain, /read-model, /controller skills
Create atomic git commits following project conventions
Build a new read model following project conventions (event handlers, tests, migration, configuration)
Upgrade Rails framework to a newer version following the smooth upgrade methodology
Upgrade RailsEventStore (RES) gems to a newer version
Create a new domain bounded context with aggregates, commands, events, and handlers
Scaffold a new Rails app with event sourcing, following project conventions (todomvc as reference)
| name | new-feature |
| description | Plan a new feature end-to-end — impact analysis across all layers before delegating to /domain, /read-model, /controller skills |
Use this skill when asked to add a new user-facing feature. It ensures you think through all affected layers upfront before writing any code.
This skill is a planning and coordination step. It does NOT contain implementation details — those live in /domain, /read-model, and /controller. This skill ensures you:
Before writing any code, search for all consumers of the affected entity's data:
# Find all read models that subscribe to events from the same entity
grep -r "DomainModule::RelatedEvent" apps/rails_application/app/read_models/ -l
# Find all places that store the affected attribute
grep -r "affected_attribute" apps/rails_application/app/read_models/
# Find all views that display it
grep -r "affected_attribute" apps/rails_application/app/views/
For each read model that stores the affected data, ask:
Common patterns requiring multi-read-model updates:
List every change needed:
Present this plan to the user before proceeding.
The integration test must verify the feature works across all affected UI surfaces, not just the primary one.
Create enough related data (orders, deals, etc.) so that secondary pages also display the affected data. Then assert the change is visible on every page that shows it.
Use the existing skills:
/domain — for commands, events, aggregates, handlers/read-model — for read model event handlers and configuration/controller — for controller actions, routes, viewsFor every read model that was touched (not just the primary one):
where-clause removal mutations (e.g., two customers so renaming one doesn't affect the other)RAILS_ENV=test bundle exec mutant run "OrderHeader::RenameCustomer*"
RAILS_ENV=test bundle exec mutant run "Deals::EventHandler*"
rails test test/integration/ — all integration tests passmake test — all tests green