Skip to content

Commit fc100bc

Browse files
titustangibleclaude
andcommitted
Merge master back into v3-ddd (post-squash sync of #10)
#10 squash-merged the v3-ddd line into master, so the branch history was never ancestored — GitHub kept showing v3-ddd as ahead. This merge makes v3-ddd a descendant of master. SKILL.md add/add resolved to master's copy (the as-built banner). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011L6cwv6s34nJew65PC7jKN
2 parents 625b3cb + 63d6377 commit fc100bc

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

.claude/skills/tangible-ddd/SKILL.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,28 @@ Tangible DDD is organic. Every pattern was won through real problems, not textbo
1313

1414
---
1515

16-
## ⚠️ Upcoming: 0.2.0 Event Taxonomy (DESIGNED, NOT YET BUILT)
16+
## ⚠️ 0.2.0 Event Taxonomy (BUILT — merged 2026-07-10)
1717

18-
A hard-break redesign of the event system is fully specced. **Before writing any NEW
19-
integration event, listener, or await code — or implementing 0.2.0 itself — read:**
18+
A hard-break redesign of the event system, now merged (PR #9). Consumers
19+
(tangible-datastream, tangible-cred) have migration branches. **Before writing any
20+
NEW integration event, listener, or await code, read:**
2021

2122
- `docs/integration-event-evolution.md` (handoff — start here)
2223
- `docs/superpowers/specs/2026-07-03-integration-event-taxonomy-and-await-mechanisms-design.md` (full spec)
2324

24-
Key deltas vs. the v0.1 patterns documented below (which remain accurate for code
25-
as it exists today):
25+
Key deltas vs. the v0.1 patterns documented below (which describe the pre-0.2.0
26+
world and remain useful history, but the right column is now what's on disk):
2627

27-
| v0.1 (below, as-built) | 0.2.0 (specced) |
28+
| v0.1 (below, legacy) | 0.2.0 (as-built) |
2829
|---|---|
2930
| `IntegrationEvent` = fat domain event, `scalarise()` flattens lossily | `IntegrationEvent` = **scalar-by-definition** (reversible ctor values only); strict `scalarise()` throws; total round-trip via `from_payload()` — typed events post-AS |
3031
| fat event crosses via entity→id flattening | fat moment implements `IAnnouncesIntegration::to_integration()` → hand-written scalar twin in `Integration\` sub-namespace (the 5 judgment lines: fact selection + naming) |
3132
| listeners = closures in `includes/hooks/integration/` | `IntegrationListener` classes in `Application\IntegrationListeners\` (auto-wired; `get_event_class()` + `get_command(): ?ICommand`) |
3233
| `AsyncWordpressActionHandler` for same-context deferred | **deprecated** — decomposes into `IntegrationListener` + Command (deferred work belongs under command_audit) |
3334
| `AwaitEvent` only (1-of-1) | `IAwaitMechanism` + `AwaitAll` (fan-in: expected ids, `key_by` static extractor on the process, mandatory wall-clock timeout); `#[Awaits]` class attribute replaces YAML `awaits:` |
3435

35-
Even before 0.2.0 lands: **prefer scalar ctor params on new integration events**
36-
they'll survive the migration unchanged.
36+
New integration events: **scalar ctor params, always** the ctor is the wire
37+
schema (`integration_payload()` keys = ctor param names).
3738

3839
---
3940

0 commit comments

Comments
 (0)