v0.32.2 — design-aggregate fixes from the first end-to-end run
Three gaps the first end-to-end run of /architect:design-aggregate --auto (the ec-monolith
sample — Order, StockItem, Reservation, Payment, fifteen invariants) surfaced in the
skill itself.
Fixed
- A two-aggregate write inside one service is
local, and says so.rules/aggregate-design.md
§4 classified every two-aggregate writedistributedorsaga; a counter and the detail rows it
summarises (StockItem+Reservation) are one ACID transaction on one datastore. §4 now names
three cases; the command declares the second aggregate inalso_writes, the validator checks it
names another aggregate of the manifest (never itself), and the document template carries the
owner and the reconciliation. - One event, one publishing aggregate. Two aggregates declaring the same event name is now a
violation — the non-owner's command emitsnone. The sample hadInventoryReservedon both
Inventory aggregates. - The
STM-link is recorded by whichever skill runs second. When a machine for the root
already exists,design-aggregate --autofillsstate_machineitself instead of leaving it for
a write-back that only runs whendesign-state-machinefollows.