All authors

Claude Skills by gbourgeat
github.com/gbourgeat22 skills0 installs22 views
- Access ControlDesigns or reviews authentication and authorization in a ddd-ts-kit project. Every use case declares the permission it requires or says it is public, rights are decided in the application layer, the actor is explicit, searches are narrowed by an access scope. Covers policies on one element and the choice between roles, attributes and relationships. Use when adding a permission, a role or an ownership rule, when code needs the connected user or the tenant, when filtering a list by rights, or w...Votes: 0GitHub stars: 2
- BootstrapChooses the stack by criteria and creates the project with the ddd-ts-kit CLI: config, composition root, platform, database, Docker Compose, pipeline, agent rules, then one bounded context per row of the strategic artefacts, with its glossary and its relationships. Works in an empty directory or adopts an existing backend. Run by the user only, with /ddd-ts-kit:bootstrap, usually as step 5 of /ddd-ts-kit:start.Votes: 0GitHub stars: 2
- Bounded ContextsFinds the bounded contexts of a system and classifies each as core, supporting or generic, from the domain discovery or from an existing model. Produces docs/architecture/contexts.md with the reason for every boundary. Use when cutting a system into contexts, when a concept has no obvious home, when a context grows two vocabularies, or when the user asks about boundaries, subdomains, splitting or merging contexts. For the terms of one context use glossary; for the relationships between contex...Votes: 0GitHub stars: 2
- Clean CodeClean Code rules of a ddd-ts-kit project for TypeScript under src/contexts. Business naming from the ubiquitous language, small single-purpose functions, stepdown ordering of a file, comments only for what code cannot say, no escape hatches, testability by construction (Clock, IdGenerator, ports). Use when a clean/*, purity/* or language/* rule is reported, or when the user asks to clean, simplify, rename or make code more readable. To define a missing business term use glossary.Votes: 0GitHub stars: 2
- Commit DisciplineKeeps commits small and meaningful in a ddd-ts-kit project. One use case or one concept per commit, generated files in the commit of what generated them, conventional messages scoped by bounded context, a target size, and how to split a change that grew. Use when about to commit, when the user asks to commit, to write a commit message or to split a change, or when the guard reports too many uncommitted changes. To check the code before the commit use quality-gate.Votes: 0GitHub stars: 2
- Context MapDraws and maintains the context map of a ddd-ts-kit project. For every pair of contexts that collaborate, names the upstream, the downstream, the relationship pattern (published-language, customer-supplier, conformist, anti-corruption-layer, open-host-service, shared-kernel) and the contract exchanged, with no cycle. Use when two contexts start depending on each other, when a context needs data or a reaction from another, when choosing or changing a relationship pattern, when context/no-cycle...Votes: 0GitHub stars: 2
- Cross CuttingKeeps technical concerns out of business code in a ddd-ts-kit project. Logging, metrics, tracing, error reporting, the audit trail, retry, timeout, circuit breaker, caching and rate limiting are applied from outside the use cases (the composition root, bus middlewares, adapters), on the standard interfaces of the kernel. Use when adding logs, metrics, traces, an error tracker, an audit log, resilience or a cache, when choosing a logger, when code needs a correlation id, the tenant or the sess...Votes: 0GitHub stars: 2
- DeviationHandles a request or a temptation to go around the architecture. Use when the user asks to skip a rule, do it quick and dirty, disable a check, add an eslint-disable or ts-ignore, put logic where it does not belong "just this once", skip tests or the glossary, or when the guard asks for confirmation on a suppression or a change of the rules.Votes: 0GitHub stars: 2
- Discover DomainRuns a light event storming in writing, from a statement of needs: actors, commands, domain events, policies, read models and external systems, laid out on a timeline, in the business's own words. Produces docs/architecture/discovery.md. Use as the first step of a new project or a new area of a product, before any boundary or any code, or when the user describes a business process to build. To cut the result into contexts use bounded-contexts.Votes: 0GitHub stars: 2
- DocumentKeeps the generated documents and contracts of a ddd-ts-kit project current: the OpenAPI contract from the routes, the event catalog and the AsyncAPI document from the integration events, the generated lists and diagram, plus the written integration notes and decision records. Use when a route, a schema, an error code or an integration event changes, when the user asks for the API contract, Swagger, client generation, an ADR or the integration documentation, or when the pipeline reports docum...Votes: 0GitHub stars: 2
- Extract ServiceKeeps every bounded context ready to run as an independent service, and performs the extraction when asked. Checks the isolation rules (own data, no shared transaction, collaboration by integration events through the outbox, synchronous needs behind a port), the standalone entry point and the per-context boot test. Use when the user mentions microservices, splitting the monolith, deploying or scaling one context alone, when a context needs data or a synchronous answer from another, or when co...Votes: 0GitHub stars: 2
- GlossaryWrites the ubiquitous language of a bounded context, before any code, and keeps its CONTEXT.md, the per-context document every agent reads first. One row per term with its meaning here and what it must not be confused with. Use when a business term is missing, ambiguous or used with two meanings, when the generator or language/glossary-term refuses a name, when a CONTEXT.md is empty or stale, or as the glossary step of a new project. For the boundary itself use bounded-contexts.Votes: 0GitHub stars: 2
- Integration EventMakes two bounded contexts collaborate through a versioned integration event: declaring it in the producer's published language, publishing through the outbox, handling it idempotently in the consumer, evolving its payload, choosing a broker. Use when a context must react to another, when building a contract row of the slices, or when the user mentions events between contexts, messaging, outbox, consumers, RabbitMQ, Kafka, NATS, Redis Streams or eventual consistency. To decide who is upstream...Votes: 0GitHub stars: 2
- Parallel WorkSplits the planned slices between several agents or people so that they cannot collide. One worker per bounded context, contracts and skeleton committed first, a git worktree per worker, shared files touched by the conductor only and regenerated instead of merged, a fixed merge order, and a short briefing per worker. Use when the user wants several agents or developers to build at the same time, asks how to parallelise or share the work, or before launching more than one context-builder agent...Votes: 0GitHub stars: 2
- PersistenceImplements or reviews the persistence of a bounded context behind repository ports. Repository port, ORM adapter, mapper, fake and contract suite, unit of work, optimistic concurrency, audit and tenant columns, read models, migrations, on Drizzle, Knex, Prisma, TypeORM or a custom store. Use when adding a table, a repository, a lookup, a read model or a migration, when replacing the in-memory adapter by a real one, when choosing an ORM, or when persistence types leak out of infrastructure.Votes: 0GitHub stars: 2
- Plan SlicesPlans the work of a bootstrapped project as vertical slices per bounded context, each one use case end to end, with the generator commands that start it, an explicit dependency order and an owner. Produces docs/architecture/slices.md, the backlog every worker reads. Use after the bootstrap, when the user asks what to build first, to order or size the work, or before splitting it between several agents or people. To build one slice use use-case; to hand slices to several workers use parallel-w...Votes: 0GitHub stars: 2
- Quality GateRuns the checks of a ddd-ts-kit project at the right scope (the changed files while iterating, the whole gate before a slice is closed or merged) and fixes what fails at the root cause. Use before closing a slice or opening a pull or merge request, when the user asks whether the work is clean, done or ready, or when a check, the guard or the pipeline reports a violation. For the size and message of the commit use commit-discipline.Votes: 0GitHub stars: 2
- ScaffoldCreates ONE file of a ddd-ts-kit role from a template with `ddd-ts-kit generate`, with its spec, fake and registration, then lists the places where business logic is expected. Use whenever a single aggregate, entity, value object, domain event, error or service, port, repository, adapter, gateway, policy, job, background job, state machine, process manager, event handler, builder, end-to-end spec or context is needed, instead of writing it by hand, or when the guard refuses a hand-written fil...Votes: 0GitHub stars: 2
- StartConducts a project from a statement of needs to working bounded contexts, strategic design first. Drives the steps in order (discover the domain, find the bounded contexts, write the glossaries, draw the context map, choose the stack and bootstrap, plan the slices, build), keeps the state in docs/architecture/plan.md so any later session resumes from one file, and stops for the owner's decision at each strategic choice. Run by the user only, with /ddd-ts-kit:start, to begin a project or to re...Votes: 0GitHub stars: 2
- TestingWrites readable, refactoring-proof tests for a ddd-ts-kit project. Given / when / then for aggregates, real handlers through the test application with fakes, builders for test data, contract suites shared by fakes and adapters, end-to-end specs. Use when writing or reviewing a test, turning it.todo entries into tests, when a test needs data setup, when tempted by vi.mock, vi.fn or a spy, or when a test/* rule is reported.Votes: 0GitHub stars: 2
- Use CaseBuilds one vertical slice inside one bounded context, test first: the behaviour of the aggregate, the command or query with its permission, the handler, the route and their specs, generated then filled. Use when the user asks for a feature, an endpoint, a business rule or "add the ability to ...", or to build the next row of docs/architecture/slices.md. For a single file use scaffold; for a reaction to another context use integration-event.Votes: 0GitHub stars: 2
- WiringExplains how the classes of a bounded context reach the composition root in a ddd-ts-kit project. Ports as abstract classes used as injection tokens, the declared style (decorators of the kernel, dependencies stated by the constructor signature, a generated barrel) or the explicit module file, values bound in the platform, fakes in tests. Use when binding an adapter to a port, adding a dependency to a handler, replacing an adapter by a fake, composing main.ts, or when a WiringError, Declarati...Votes: 0GitHub stars: 2