con un clic
wow-code-review
// Use when reviewing Wow framework code, PR diffs, or pre-merge changes involving aggregates, commands, events, sourcing, sagas, projections, command gateway, Query DSL, starter configuration, or Wow tests
// Use when reviewing Wow framework code, PR diffs, or pre-merge changes involving aggregates, commands, events, sourcing, sagas, projections, command gateway, Query DSL, starter configuration, or Wow tests
Wow framework assistant for building reactive DDD + Event Sourcing + CQRS microservices in Kotlin/Java on JVM 17+ with Spring Boot. Use this skill when a task involves Wow framework semantics: - DDD aggregates, command/event/state modeling, bounded contexts, tenant/owner routing - CQRS, Event Sourcing, event stores, snapshots, projections, read models - Saga orchestration, event processors, retry policy, PrepareKey - Command gateway, wait strategies, command bus, WebFlux command endpoints - Wow tests: AggregateSpec, SagaSpec, AggregateVerifier, SagaVerifier - Wow annotations such as @AggregateRoot, @OnCommand, @OnSourcing, @OnEvent, @StatelessSaga, @ProjectionProcessor, @EventProcessor, @AfterCommand, @OnError, @Retry, @BoundedContext, @CreateAggregate, @CommandRoute Do not trigger for unrelated Kotlin, Gradle, frontend, or documentation tasks unless Wow framework behavior or APIs are directly relevant.
Use when Wow commands, events, sourcing, sagas, projections, wait strategies, Query DSL, retry policies, starter configuration, or tests fail, hang, skip handlers, produce unexpected state, or behave inconsistently
Use when developing, completing, restructuring, or enhancing Wow framework aggregate or saga behavior, including new domain capability, command/event/state design, cross-aggregate orchestration, aggregate tests, saga tests, KDoc, scenario documents, or design reports.
| name | wow-code-review |
| description | Use when reviewing Wow framework code, PR diffs, or pre-merge changes involving aggregates, commands, events, sourcing, sagas, projections, command gateway, Query DSL, starter configuration, or Wow tests |
Review Wow code for framework semantics first, style second. The goal is to catch event-sourcing, CQRS, routing, and test-coverage mistakes before they become production behavior.
AggregateSpec or verifier coverage.@ConfigurationProperties.settings.gradle.kts.../wow/SKILL.md as router. Load only the relevant reference files such as ../wow/references/modeling.md, ../wow/references/annotations.md, or ../wow/references/testing.md.rg to compare with nearby aggregate, saga, projection, query, or configuration code.| Area | Check |
|---|---|
| Aggregate | Command handlers return events, enforce invariants, and do not mutate state. |
| State | State changes are deterministic and sourced from events. |
| Events | Event payloads are sufficient to rebuild state and preserve compatibility. |
| API metadata | Commands and domain events include @Summary and @Description; long descriptions use raw string annotation syntax. |
| Field contracts | Important repeated domain fields are extracted into <FieldName>Capable interfaces when reuse improves the model. |
| Routing | Aggregate ID, owner, tenant, and command route rules are explicit and tested. |
| Polymorphic returns | Any or multi-event returns declare metadata when current APIs require it. |
| Saga | Trigger, no-command, multi-command, and dependency branches are tested. |
| Projection/EventProcessor | Side effects stay outside aggregates; retry behavior is intentional and annotation-driven. |
| Query DSL | Uses current condition, pagination, projection, and sort APIs. |
| Configuration | Examples match current @ConfigurationProperties classes. |
| Tests | Use .assert(), cover error paths, lifecycle paths, and branch conditions. |
Lead with findings, ordered by severity. Use file and line references.
Critical: breaks correctness or event-sourcing guarantees.
Important: likely bug, missing behavior coverage, or framework misuse.
Minor: clarity, maintainability, naming, or follow-up improvement.
If there are no findings, say that directly and name residual risks or test gaps.