11 Commits

Author SHA1 Message Date
Jon Chery 79b6749211 docs(P05): complete examples + cross-links — v0.4
---ci---
project: atelier
phase: 5
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.5
requirements:
  covered: [ATELIER-112, ATELIER-113, ATELIER-114]
  partial: []
audit:
  cross_links_verified: 57
  cross_links_broken: 0
  edge_messaging_bidirectional: resolved
---/ci---
2026-08-05 16:16:55 +00:00
Jon Chery c7f46bc0cc docs(ship): P4 complete — v0.3.4 tagged, release 486
---ci---
project: atelier
phase: 4
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.4
release_id: 486
---/ci---
2026-08-05 16:13:38 +00:00
Jon Chery 7fdd143d03 docs(P04): complete matrix+review+manifest+architecture — v0.4
---ci---
project: atelier
phase: 4
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.4
requirements:
  covered: [ATELIER-106, ATELIER-107, ATELIER-108, ATELIER-109, ATELIER-110, ATELIER-111, ATELIER-117]
  partial: []
---/ci---
2026-08-05 16:12:57 +00:00
Jon Chery 9f5ed4b5cd docs(ship): P3 complete — v0.3.3 tagged, release 485
---ci---
project: atelier
phase: 3
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.3
release_id: 485
---/ci---
2026-08-05 16:07:51 +00:00
Jon Chery 4e433158cd docs(P03): complete language-derived extension — v0.4
---ci---
project: atelier
phase: 3
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.3
requirements:
  covered: [ATELIER-102, ATELIER-103, ATELIER-104, ATELIER-105]
  partial: []
---/ci---
2026-08-05 16:07:21 +00:00
Jon Chery 0fdf892d81 docs(ship): P2 complete — v0.3.2 tagged, release 483
---ci---
project: atelier
phase: 2
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.2
release_id: 483
---/ci---
2026-08-05 16:01:08 +00:00
Jon Chery f61dffbb5a docs(P02): complete messaging domain phase — v0.4
---ci---
project: atelier
phase: 2
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.2
requirements:
  covered: [ATELIER-97, ATELIER-98, ATELIER-99, ATELIER-100, ATELIER-101]
  partial: []
---/ci---
2026-08-05 16:00:31 +00:00
Jon Chery f7f007dce8 docs(ship): P1 complete — v0.3.1 tagged, release 479
---ci---
project: atelier
phase: 1
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.1
release_id: 479
---/ci---
2026-08-05 15:53:16 +00:00
Jon Chery 20992883ff docs(P01): complete edge domain phase — v0.4
---ci---
project: atelier
phase: 1
milestone: v0.4
status: complete
phase_role: execution
phase_tag: v0.3.1
requirements:
  covered: [ATELIER-92, ATELIER-93, ATELIER-94, ATELIER-95, ATELIER-96]
  partial: []
---/ci---
2026-08-05 15:51:03 +00:00
Jon Chery a622419e7d docs(ship): P0 complete — v0.3.0 tagged, release 475
---ci---
project: atelier
phase: 0
milestone: v0.4
status: complete
phase_role: pre_execution
phase_tag: v0.3.0
release_id: 475
---/ci---
2026-08-05 14:03:35 +00:00
Jon Chery b1d293d218 docs(P00): complete pre-execution phase — v0.4
---ci---
project: atelier
phase: 0
milestone: v0.4
status: complete
phase_role: pre_execution
decisions:
  - id: D-054
    decision: "v0.4 scope = edge + messaging + language-derived docs"
  - id: D-055
    decision: "NFR milestone type — all phases docs/chore"
  - id: D-056
    decision: "6 execution phases P1-P5 + final phase P6"
  - id: D-057
    decision: "Edge domain groups CDN + offline-first + IoT + sync"
  - id: D-058
    decision: "Messaging domain covers queues + pub/sub + streams + delivery-semantics"
  - id: D-059
    decision: "Language-derived docs trace to existing domain P-rules, no new matrix rows"
  - id: D-060
    decision: "4 derived docs per language, 16 total, per-language picks"
  - id: D-061..D-069
    decision: "9 clarify resolutions (boundary, persona, examples, manifest, matrix)"
  - id: D-070..D-072
    decision: "Research findings — edge P1-P10, messaging P1-P10, persona roster"
  - id: D-073
    decision: "13 ideation recommendations accepted (12 refinements + 1 new req ATELIER-117)"
  - id: D-074..D-075
    decision: "46-task vertical-slice plan, persona lifecycle"
  - id: G-013..G-018
    decision: "Grill conditional proceed — G-014 false-premise fix applied"
requirements:
  covered: [ATELIER-92, ATELIER-93, ATELIER-94, ATELIER-95, ATELIER-96, ATELIER-97, ATELIER-98, ATELIER-99, ATELIER-100, ATELIER-101, ATELIER-102, ATELIER-103, ATELIER-104, ATELIER-105, ATELIER-106, ATELIER-107, ATELIER-108, ATELIER-109, ATELIER-110, ATELIER-111, ATELIER-112, ATELIER-113, ATELIER-114, ATELIER-115, ATELIER-116, ATELIER-117]
  partial: []
---/ci---
2026-08-05 14:01:13 +00:00
7 changed files with 59 additions and 349 deletions
+7 -7
View File
@@ -1,15 +1,15 @@
{ {
"phase": 6, "phase": 4,
"stage": "complete", "stage": "complete",
"milestone": "v0.4", "milestone": "v0.4",
"phase_role": "final", "phase_role": "execution",
"project": "atelier", "project": "atelier",
"attempts": 0, "attempts": 0,
"updated_at": "2026-08-05T07:30:00Z", "updated_at": "2026-08-05T07:00:00Z",
"milestone_complete": true, "milestone_complete": false,
"milestone_branch": "milestone/v0.4-edge-quantum-langs", "milestone_branch": "milestone/v0.4-edge-quantum-langs",
"phase_branch": "phase/06-final-review-ship", "phase_branch": "phase/04-matrix-review-manifest",
"tag_base": "v0.3", "tag_base": "v0.3",
"phase_tag": "v0.3.6", "phase_tag": "v0.3.4",
"release_id": 488 "release_id": 486
} }
+17 -18
View File
@@ -3,10 +3,9 @@
> Generated during P0 RESEARCH. Atelier is a documentation-only project; > Generated during P0 RESEARCH. Atelier is a documentation-only project;
> the default runtime persona roster is deactivated. Custom personas > the default runtime persona roster is deactivated. Custom personas
> reflect the docs-as-code nature of the work. Updated per milestone: > reflect the docs-as-code nature of the work. Updated per milestone:
> v0.4 added `edge-engineer` (P1) and `languages-engineer` (P3) phase- > v0.4 adds `edge-engineer` (P1) and `languages-engineer` (P3) phase-
> specific personas (D-067); both REMOVED after v0.4 completion — roster > specific personas (D-067); messaging (P2) is authored by tech-writer
> returned to 3 active personas. Messaging (P2) was authored by > + domain-expert with edge-engineer consultation.
> tech-writer + domain-expert with edge-engineer consultation.
## Active Personas ## Active Personas
@@ -24,7 +23,7 @@
- **frameworks:** [] - **frameworks:** []
- **constraints:** ["markdown-first", "examples are mandatory", "why over what", "audience awareness"] - **constraints:** ["markdown-first", "examples are mandatory", "why over what", "audience awareness"]
- **territory:** ["**/*.md", "LICENSE", "CHANGELOG.md", "CONTRIBUTING.md"] - **territory:** ["**/*.md", "LICENSE", "CHANGELOG.md", "CONTRIBUTING.md"]
- **reason:** Primary author of all framework markdown content. Owns docs-as-code discipline (Documentation P1). Excludes `.ciagent/**` governance files (owned by lead-developer). For v0.4: co-authored the messaging domain (P2) with domain-expert, per D-067. v0.4 complete. - **reason:** Primary author of all framework markdown content. Owns docs-as-code discipline (Documentation P1). Excludes `.ciagent/**` governance files (owned by lead-developer). For v0.4: co-authors the messaging domain (P2) with domain-expert, per D-067.
### domain-expert ### domain-expert
- **active:** true - **active:** true
@@ -32,7 +31,7 @@
- **frameworks:** [] - **frameworks:** []
- **constraints:** ["every principle traces to core", "10 principles per domain", "no orphans in matrix"] - **constraints:** ["every principle traces to core", "10 principles per domain", "no orphans in matrix"]
- **territory:** ["core/**", "domains/**", "matrix/**", "review/**", "examples/**"] - **territory:** ["core/**", "domains/**", "matrix/**", "review/**", "examples/**"]
- **reason:** Validates domain principle correctness and traceability to core principles. Ensures the matrix is complete and no domain rule is orphaned. For v0.4: co-authored the messaging domain (P2) with tech-writer, consulting edge-engineer for the D-062 boundary, per D-067. v0.4 complete. - **reason:** Validates domain principle correctness and traceability to core principles. Ensures the matrix is complete and no domain rule is orphaned. For v0.4: co-authors the messaging domain (P2) with tech-writer, consulting edge-engineer for the D-062 boundary, per D-067.
## Inactive Personas (from default roster) ## Inactive Personas (from default roster)
@@ -50,25 +49,25 @@
## Phase-Specific Personas ## Phase-Specific Personas
### edge-engineer (v0.4 — REMOVED after milestone completion) ### edge-engineer (v0.4 — REMOVE after milestone completion)
- **active:** false - **active:** true
- **phase_specific:** true - **phase_specific:** true
- **domain:** edge computing - **domain:** edge computing
- **frameworks:** [] - **frameworks:** []
- **constraints:** ["latency-bound first", "resource-constrained examples", "trace to core", "10 P-rules per domain", "no runtime code", "proximity is the distinguishing constraint (D-061)", "offline-capability is non-negotiable"] - **constraints:** ["latency-bound first", "resource-constrained examples", "trace to core", "10 P-rules per domain", "no runtime code", "proximity is the distinguishing constraint (D-061)", "offline-capability is non-negotiable"]
- **territory:** ["domains/edge/**", "examples/good/edge-offline-sync.md", "examples/bad/edge-sync-loop.md"] - **territory:** ["domains/edge/**", "examples/good/edge-offline-sync.md", "examples/bad/edge-sync-loop.md"]
- **reason:** Per D-067: edge domain authoring (cdn, offline-first, iot, sync) benefited from a specialist persona with the proximity-is-correctness and offline-is-non-negotiable constraints. The distinguishing angle is proximity/location (D-061) — distinct from performance (generic), concurrency (in-process), and observability (generic telemetry). Was active for v0.4 P1 (Edge Domain) only; consulted during P2 (Messaging) for the D-062 in-process-vs-cross-system boundary; reviewed edge content in P6 Wave 1; removed after v0.4 completed; roster returned to 3 active personas. - **reason:** Per D-067: edge domain authoring (cdn, offline-first, iot, sync) benefits from a specialist persona with the proximity-is-correctness and offline-is-non-negotiable constraints. The distinguishing angle is proximity/location (D-061) — distinct from performance (generic), concurrency (in-process), and observability (generic telemetry). Active for v0.4 P1 (Edge Domain) only; consulted during P2 (Messaging) for the D-062 in-process-vs-cross-system boundary; removed after v0.4 completes; roster returns to 3 active personas.
### languages-engineer (v0.4 — REMOVED after milestone completion) ### languages-engineer (v0.4 — REMOVE after milestone completion)
- **active:** false - **active:** true
- **phase_specific:** true - **phase_specific:** true
- **domain:** language-specific application - **domain:** language-specific application
- **frameworks:** [] - **frameworks:** []
- **constraints:** ["trace to existing domain P-rules (D-063, D-066) — no new matrix rows", "per-language idioms", "fenced code examples in-language", "10 P-rules per domain does NOT apply to language docs", "manifest gains Languages section (D-065)"] - **constraints:** ["trace to existing domain P-rules (D-063, D-066) — no new matrix rows", "per-language idioms", "fenced code examples in-language", "10 P-rules per domain does NOT apply to language docs", "manifest gains Languages section (D-065)"]
- **territory:** ["languages/**"] - **territory:** ["languages/**"]
- **reason:** Per D-067: language-derived extension authoring (16 derived docs across TypeScript, Python, Go, Rust) benefited from a specialist persona enforcing the apply-don't-derive discipline (D-063) and the no-new-matrix-rows invariant (D-066). Languages are an application lens, not a principle source — the existing stubs' section-header-trace pattern was preserved, no P1P10 numbering was introduced. Was active for v0.4 P3 (Language-Derived Extension) only; reviewed language-derived content in P6 Wave 1; removed after v0.4 completed; roster returned to 3 active personas. - **reason:** Per D-067: language-derived extension authoring (16 derived docs across TypeScript, Python, Go, Rust) benefits from a specialist persona enforcing the apply-don't-derive discipline (D-063) and the no-new-matrix-rows invariant (D-066). Languages are an application lens, not a principle source — the existing stubs' section-header-trace pattern is preserved, no P1P10 numbering is introduced. Active for v0.4 P3 (Language-Derived Extension) only; removed after v0.4 completes; roster returns to 3 active personas.
### platform-engineer (v0.3 — REMOVED after milestone completion) ### platform-engineer (v0.3 — REMOVED after milestone completion)
@@ -106,11 +105,11 @@ Mode: `warn` (per config.json `personas.territory_enforcement`).
At `warn`, territory violations are logged but not blocked. This is appropriate for a docs project where tech-writer may touch `.ciagent/` files incidentally (e.g., updating ROADMAP status). Strict mode would be appropriate once territories stabilize. At `warn`, territory violations are logged but not blocked. This is appropriate for a docs project where tech-writer may touch `.ciagent/` files incidentally (e.g., updating ROADMAP status). Strict mode would be appropriate once territories stabilize.
## v0.4 Persona Roster Summary (post-milestone) ## v0.4 Persona Roster Summary (active during milestone)
Active personas (3, span full milestone + ongoing): lead-developer, tech-writer, domain-expert. Active personas (3, span full milestone): lead-developer, tech-writer, domain-expert.
Phase-specific personas (2, now removed): edge-engineer (P1 Edge Domain), languages-engineer (P3 Language-Derived Extension) — both deactivated after v0.4 completion per D-067; reviewed their authored content in P6 Wave 1 before removal. Phase-specific personas (2, active during milestone): edge-engineer (P1 Edge Domain), languages-engineer (P3 Language-Derived Extension) — both removed after v0.4 completion per D-067.
Messaging (P2) was authored by tech-writer + domain-expert (the permanent roster) with edge-engineer consultation for the distributed-systems/async overlap (D-062 boundary), per D-067. The edge-engineer's distributed-systems lens survived the P1→P2 persona transition via a task must-have baked into the plan (the D-051 constraints-baked-into-task pattern from v0.3). Messaging (P2) is authored by tech-writer + domain-expert (the permanent roster) with edge-engineer consultation for the distributed-systems/async overlap (D-062 boundary), per D-067. The edge-engineer's distributed-systems lens survives the P1→P2 persona transition via a task must-have baked into the plan (the D-051 constraints-baked-into-task pattern from v0.3): "P1/P2 demonstrated edge + messaging boundary (D-062); delivery-semantics comparison table required (D-069)."
Inactive default personas (3, unchanged): data-engineer, backend-engineer, frontend-engineer. Inactive default personas (3, unchanged): data-engineer, backend-engineer, frontend-engineer.
Historical phase-specific personas (5, inactive): edge-engineer (v0.4), languages-engineer (v0.4), platform-engineer (v0.2), platform-engineer (v0.3 extended), ml-engineer (v0.3) — retained as historical record. Historical phase-specific personas (3, inactive): platform-engineer (v0.2), platform-engineer (v0.3 extended), ml-engineer (v0.3) — retained as historical record; "v0.4: still inactive" appended to their reasons.
Peak active roster during v0.4: 5 (3 permanent + 2 phase-specific), matching v0.3's peak and avoiding persona-explosion risk. Roster has returned to 3 active personas for post-v0.4 maintenance. Peak active roster during v0.4: 5 (3 permanent + 2 phase-specific), matching v0.3's peak and avoiding persona-explosion risk. Roster returns to 3 active personas after v0.4 completion.
+26 -26
View File
@@ -239,32 +239,32 @@ All 35 requirements covered. 8 core principles, 11 domains, 110 domain principle
| REQ-ID | Requirement | Priority | Phase | Status | | REQ-ID | Requirement | Priority | Phase | Status |
|--------|-------------|----------|-------|--------| |--------|-------------|----------|-------|--------|
| ATELIER-92 | `domains/edge/first-principles.md` — 10 edge principles (P1P10) | P0 | 1 | covered | | ATELIER-92 | `domains/edge/first-principles.md` — 10 edge principles (P1P10) | P0 | 1 | pending |
| ATELIER-93 | `domains/edge/cdn.md` — CDN/edge-cache derived doc (with edge-cache vs origin decision matrix) | P1 | 1 | covered | | ATELIER-93 | `domains/edge/cdn.md` — CDN/edge-cache derived doc (with edge-cache vs origin decision matrix) | P1 | 1 | pending |
| ATELIER-94 | `domains/edge/offline-first.md` — offline-first derived doc | P1 | 1 | covered | | ATELIER-94 | `domains/edge/offline-first.md` — offline-first derived doc | P1 | 1 | pending |
| ATELIER-95 | `domains/edge/iot.md` — constrained-device/IoT derived doc | P1 | 1 | covered | | ATELIER-95 | `domains/edge/iot.md` — constrained-device/IoT derived doc | P1 | 1 | pending |
| ATELIER-96 | `domains/edge/sync.md` — conflict/sync derived doc (CRDT/last-write-win decision matrix) | P1 | 1 | covered | | ATELIER-96 | `domains/edge/sync.md` — conflict/sync derived doc (CRDT/last-write-win decision matrix) | P1 | 1 | pending |
| ATELIER-97 | `domains/messaging/first-principles.md` — 10 messaging principles (P1P10) | P0 | 2 | covered | | ATELIER-97 | `domains/messaging/first-principles.md` — 10 messaging principles (P1P10) | P0 | 2 | pending |
| ATELIER-98 | `domains/messaging/queues.md` — queue derived doc (with at-least-once/at-most-once/exactly-once comparison) | P1 | 2 | covered | | ATELIER-98 | `domains/messaging/queues.md` — queue derived doc (with at-least-once/at-most-once/exactly-once comparison) | P1 | 2 | pending |
| ATELIER-99 | `domains/messaging/pubsub.md` — pub/sub derived doc | P1 | 2 | covered | | ATELIER-99 | `domains/messaging/pubsub.md` — pub/sub derived doc | P1 | 2 | pending |
| ATELIER-100 | `domains/messaging/streams.md` — stream processing derived doc | P1 | 2 | covered | | ATELIER-100 | `domains/messaging/streams.md` — stream processing derived doc | P1 | 2 | pending |
| ATELIER-101 | `domains/messaging/delivery-semantics.md` — delivery semantics derived doc (idempotency, ordering, dead-letter) | P1 | 2 | covered | | ATELIER-101 | `domains/messaging/delivery-semantics.md` — delivery semantics derived doc (idempotency, ordering, dead-letter) | P1 | 2 | pending |
| ATELIER-102 | `languages/typescript.md` extended + `languages/ts-types.md`, `ts-tooling.md`, `ts-async.md`, `ts-testing.md` — 4 TS derived docs | P1 | 3 | covered | | ATELIER-102 | `languages/typescript.md` extended + `languages/ts-types.md`, `ts-tooling.md`, `ts-async.md`, `ts-testing.md` — 4 TS derived docs | P1 | 3 | pending |
| ATELIER-103 | `languages/python.md` extended + `languages/py-types.md`, `py-tooling.md`, `py-async.md`, `py-testing.md` — 4 Python derived docs | P1 | 3 | covered | | ATELIER-103 | `languages/python.md` extended + `languages/py-types.md`, `py-tooling.md`, `py-async.md`, `py-testing.md` — 4 Python derived docs | P1 | 3 | pending |
| ATELIER-104 | `languages/go.md` extended + `languages/go-types.md`, `go-tooling.md`, `go-concurrency.md`, `go-testing.md` — 4 Go derived docs | P1 | 3 | covered | | ATELIER-104 | `languages/go.md` extended + `languages/go-types.md`, `go-tooling.md`, `go-concurrency.md`, `go-testing.md` — 4 Go derived docs | P1 | 3 | pending |
| ATELIER-105 | `languages/rust.md` extended + `languages/rs-ownership.md`, `rs-tooling.md`, `rs-async.md`, `rs-testing.md` — 4 Rust derived docs | P1 | 3 | covered | | ATELIER-105 | `languages/rust.md` extended + `languages/rs-ownership.md`, `rs-tooling.md`, `rs-async.md`, `rs-testing.md` — 4 Rust derived docs | P1 | 3 | pending |
| ATELIER-106 | Extend `matrix/principles-matrix.md` with 20 new P-rules → core C-rule mappings (10 per new domain; review check: row count per domain = 10, each row ≥1 C-rule) — post-v0.4: 19 domains, 190 P-rules | P0 | 4 | covered | | ATELIER-106 | Extend `matrix/principles-matrix.md` with 20 new P-rules → core C-rule mappings (10 per new domain; review check: row count per domain = 10, each row ≥1 C-rule) — post-v0.4: 19 domains, 190 P-rules | P0 | 4 | pending |
| ATELIER-107 | Extend `matrix/domain-coverage.md` with edge + messaging (per-domain row schema) + add `languages/` coverage sub-table (language → derived docs → traced domains) | P1 | 4 | covered | | ATELIER-107 | Extend `matrix/domain-coverage.md` with edge + messaging (per-domain row schema) + add `languages/` coverage sub-table (language → derived docs → traced domains) | P1 | 4 | pending |
| ATELIER-108 | Extend `review/agent-checklist.md` with edge + messaging trigger sections + a language-derived-docs section | P1 | 4 | covered | | ATELIER-108 | Extend `review/agent-checklist.md` with edge + messaging trigger sections + a language-derived-docs section | P1 | 4 | pending |
| ATELIER-109 | Extend `review/peer-review-checklist.md` with edge + messaging + language-derived sections (parity with agent-checklist) | P1 | 4 | covered | | ATELIER-109 | Extend `review/peer-review-checklist.md` with edge + messaging + language-derived sections (parity with agent-checklist) | P1 | 4 | pending |
| ATELIER-110 | Extend `review/anti-patterns.md` with edge + messaging violations incl. orphaned P-rule + deployable example artifact; pre-specify domain chaos anti-patterns (edge: sync conflict loop, TTL-less cache; messaging: shared subscription, blocking consumer) | P1 | 4 | covered | | ATELIER-110 | Extend `review/anti-patterns.md` with edge + messaging violations incl. orphaned P-rule + deployable example artifact; pre-specify domain chaos anti-patterns (edge: sync conflict loop, TTL-less cache; messaging: shared subscription, blocking consumer) | P1 | 4 | pending |
| ATELIER-111 | Update `MANIFEST.md` to list new v0.4 domains + new `languages/` section (first-principles + derived docs per language) + post-v0.4 totals | P0 | 4 | covered | | ATELIER-111 | Update `MANIFEST.md` to list new v0.4 domains + new `languages/` section (first-principles + derived docs per language) + post-v0.4 totals | P0 | 4 | pending |
| ATELIER-112 | `examples/good/edge-offline-sync.md` + `examples/good/messaging-idempotent-consumer.md` — 2 good examples (markdown with fenced code only) | P2 | 5 | covered | | ATELIER-112 | `examples/good/edge-offline-sync.md` + `examples/good/messaging-idempotent-consumer.md` — 2 good examples (markdown with fenced code only) | P2 | 5 | pending |
| ATELIER-113 | `examples/bad/edge-sync-loop.md` + `examples/bad/messaging-shared-subscription.md` — 2 named bad examples (each cites the P-rule breached) | P2 | 5 | covered | | ATELIER-113 | `examples/bad/edge-sync-loop.md` + `examples/bad/messaging-shared-subscription.md` — 2 named bad examples (each cites the P-rule breached) | P2 | 5 | pending |
| ATELIER-114 | Cross-links from new domains to existing devops/observability/data/concurrency/kubernetes/infrastructure-as-code domains; cross-links from language-derived docs to their traced domain docs (review check: every new derived doc ≥1 outbound cross-link to a MANIFEST-listed doc) | P1 | 5 | covered | | ATELIER-114 | Cross-links from new domains to existing devops/observability/data/concurrency/kubernetes/infrastructure-as-code domains; cross-links from language-derived docs to their traced domain docs (review check: every new derived doc ≥1 outbound cross-link to a MANIFEST-listed doc) | P1 | 5 | pending |
| ATELIER-115 | Final review passes (all v0.4 phases reviewed, audit clean) | P0 | 6 | covered | | ATELIER-115 | Final review passes (all v0.4 phases reviewed, audit clean) | P0 | 6 | pending |
| ATELIER-116 | Milestone v0.4 released (tag v0.3.6, merged to main) | P0 | 6 | covered | | ATELIER-116 | Milestone v0.4 released (tag v0.3.6, merged to main) | P0 | 6 | pending |
| ATELIER-117 | Update `ARCHITECTURE.md` for v0.4 — extend the component tree with `edge/` + `messaging/` domain entries, add a `## v0.4 Domain Additions` section documenting the two new domains (boundary per D-061/D-062, derived docs, cross-link targets), and note the `languages/` derived-doc extension (D-063 apply-don't-derive). Closes architecture-tree drift: the file currently stops at v0.3 with no edge/messaging/languages-derived coverage (IDEATE-32). | P1 | 4 | covered | | ATELIER-117 | Update `ARCHITECTURE.md` for v0.4 — extend the component tree with `edge/` + `messaging/` domain entries, add a `## v0.4 Domain Additions` section documenting the two new domains (boundary per D-061/D-062, derived docs, cross-link targets), and note the `languages/` derived-doc extension (D-063 apply-don't-derive). Closes architecture-tree drift: the file currently stops at v0.3 with no edge/messaging/languages-derived coverage (IDEATE-32). | P1 | 4 | pending |
## v0.4 Traceability Matrix ## v0.4 Traceability Matrix
-285
View File
@@ -1,285 +0,0 @@
# Atelier v0.4 — Final Review (P6)
## Reviewers: lead-developer, domain-expert, tech-writer, edge-engineer, languages-engineer
> Phase 6 Wave 1 — multi-persona review of all v0.4 content authored in P1P5,
> plus the autonomous audit. The edge-engineer and languages-engineer personas
> review their territory then are removed (phase-specific). The lead-developer
> coordinates; domain-expert and tech-writer review messaging and verify
> traceability. Autonomy = full; P0 fixes auto-applied; P1+ flagged post-hoc.
## Findings by Persona
### edge-engineer (edge domain — D-061)
- Files reviewed: 5
(`domains/edge/first-principles.md`, `cdn.md`, `offline-first.md`, `iot.md`, `sync.md`)
- Boundary check: **PASS**
- Edge owns proximity/location/constraint/disconnection (D-061). Each doc
explicitly demarcates vs `domains/performance/` (generic measurement /
`performance/P4 Resource Bounds`, `performance/P5 Caching with Intent`),
`domains/observability/` (generic structured telemetry), and
`domains/concurrency/` (in-process primitives). The C4-Locality
discriminator is stated in first-principles §4: "performance's locality is
algorithmic; edge's locality is geographic." No generic-perf or
in-process-concurrency content leaked into edge.
- P-rule traces: **PASS — 10/10 trace to ≥1 C-rule**
- first-principles §2 Core Principle Trace table has all 10 P-rules with
explicit C-rule(s): P1→C4,C1 · P2→C1,C5 · P3→C8,C1 · P4→C1,C5 · P5→C1 ·
P6→C1,C3 · P7→C1,C5 · P8→C4,C6 · P9→C1,C8 · P10→C7,C5. Broad derivation
(7 of 8 C-rules); C2 is correctly noted as indirect.
- Decision matrices: **PASS — cdn, sync**
- `cdn.md` has "Edge-Cache vs Origin — Decision Matrix (D-069)" (6 rows:
serve-from-PoP, serve-stale-while-revalidate, fetch-fresh-miss,
origin-shield-fetch, purge-and-serve-fresh, serve-from-origin-bypass).
- `sync.md` has "CRDT vs Last-Write-Win — Decision Matrix (D-069)" (5 rows:
CvRDT, CmRDT, LWW-with-vector-clocks, LWW-with-wall-clock-only,
three-way-merge). Both carry the correctness-guarantee, cost, and
failure-mode columns.
- Cross-links: **PASS** (≥1 per derived doc)
- cdn.md → 1 (performance/frontend, security/input-validation, observability/metrics)
- offline-first.md → 5 (concurrency/patterns, observability/logging,
edge/sync, edge/cdn, testing/pyramid, testing/fixtures, observability/metrics)
- iot.md → 3 (security/secrets, messaging/queues, observability/metrics)
- sync.md → 2 (data/migrations, concurrency/patterns, observability/metrics)
- All one-directional outward per D-026 extended; edge↔messaging intra-v0.4
link (edge/iot → messaging/queues, MQTT QoS) resolved bidirectionally in
P5 per IDEATE-40 — verified: 4 refs in iot.md, 6 back-refs in
messaging/first-principles.md.
- Testing-pyramid mapping (IDEATE-38): **PASS**
- offline-first.md §"Offline Write-Queue and Conflict Detection Mapped to
the Testing Pyramid (IDEATE-38, ATELIER-94)" maps to all three tiers
(Unit: merge function; Integration: reconnect reconcile; E2e: partition
simulation) with the table + per-tier fenced sketches + cross-link to
`domains/testing/pyramid` and `domains/testing/fixtures`.
- P0 issues: **none**
- P1+ issues: **none**
### languages-engineer (language-derived — D-063)
- Files reviewed: 20 (4 stubs + 16 derived)
- Stubs: `typescript.md`, `python.md`, `go.md`, `rust.md`
- TS derived: `ts-types.md`, `ts-tooling.md`, `ts-async.md`, `ts-testing.md`
- Py derived: `py-types.md`, `py-tooling.md`, `py-async.md`, `py-testing.md`
- Go derived: `go-types.md`, `go-tooling.md`, `go-concurrency.md`, `go-testing.md`
- Rs derived: `rs-ownership.md`, `rs-tooling.md`, `rs-async.md`, `rs-testing.md`
- Apply-don't-derive check: **PASS — no new P-rules, no P1P10 numbering**
- All 4 stubs retain their v0.1 section structure (0 `### P[0-9]` headers —
verified). All 16 derived docs introduce no new P-rules (0 new-P-rule
refs — verified). Each derived doc's blockquote header states
"introduces no new P-rules (D-063)". Every section header names the
traced domain P-rule(s) inline (e.g.,
`## Nominal vs Structural Typing (C1 Correctness, Data P7 Type Fidelity, API P1 Contract Fidelity)`).
- Trace check: **PASS — every section traces to a domain P-rule**
- Spot-check confirms section headers name ≥1 domain P-rule AND the core
C-rule(s). Cross-References sections at the end of each derived doc list
the traced domain first-principles + sibling language docs.
- D-066 matrix invariant: **PASS** — matrix stays at 190 P-rows / 19 domains.
The `## Languages Coverage` sub-table in `matrix/domain-coverage.md` is
exactly 16 rows (one per derived doc); no new matrix rows were added.
- Runtime artifact check: **PASS — no standalone .ts/.py/.go/.rs**
- `find` for standalone runtime artifact files returns empty. All code is
fenced inside `.md` files (illustrative only, D-020). The
`review/anti-patterns.md` v0.4 Deployable Artifact Types table lists the
forbidden extensions explicitly.
- Cross-links to new + existing: **PASS**
- Every derived doc has a Cross-References section linking to BOTH new
(edge/messaging where relevant — e.g., ts-async → messaging/delivery-semantics,
py-async → messaging/queues, go-concurrency → messaging/queues,
rs-async → messaging/delivery-semantics) AND existing domains
(concurrency, errors, data, testing, devops, documentation, api).
- P0 issues: **none**
- P1+ issues: **none**
### tech-writer + domain-expert (messaging — D-062)
- Files reviewed: 5
(`domains/messaging/first-principles.md`, `queues.md`, `pubsub.md`,
`streams.md`, `delivery-semantics.md`)
- Boundary check: **PASS**
- Messaging owns cross-process/network-failure-model (D-062). Each doc
explicitly demarcates vs `domains/concurrency/` (in-process/crash-failure-
model): concurrency's bounded queue fails by OOM or thread crash;
messaging's broker-backed queue fails by network partition, broker
restart, or consumer crash-and-retry. The discriminator (failure model)
is stated in first-principles §4 and repeated per derived doc.
- P-rule traces: **PASS — 10/10**
- first-principles §2 Core Principle Trace table: P1→C1,C2 · P2→C1,C2 ·
P3→C1 · P4→C1,C2 · P5→C1,C5 · P6→C1,C8 · P7→C4,C6 · P8→C5,C7 · P9→C5,C6 ·
P10→C7,C1. Broad derivation (7 C-rules); C3 correctly noted as not
primary (messaging is a tradeoff domain).
- Comparison tables: **PASS — queues, streams ×2, delivery-semantics ×2**
- `queues.md` — "Delivery Semantics Comparison (D-069)" (at-most-once /
at-least-once / exactly-once with guarantee, latency cost, implementation
cost, when-it-fits).
- `streams.md` — "Stream-Platform Comparison (D-069)" (Kafka / Kinesis /
Pulsar / NATS JetStream across ordering, partitioning, replay/retention,
consumer groups, exactly-once, use-case fit, watch-outs).
- `streams.md` — "Consumer-Group Rebalance Strategies (IDEATE-41)" (eager /
sticky-incremental-cooperative / cooperative-no-revoke with mechanism,
partition stop-the-world cost, use-case fit).
- `delivery-semantics.md` — "Dead-Letter Strategy Comparison (D-069)"
(retry-count-limit / TTL-with-backoff / poison-queue / DLQ+alert with
when-it-applies, failure-visibility, operational-cost).
- `delivery-semantics.md` — fenced idempotency-key dedup-store example
(IDEATE-39 — not prose-only; the `DedupStore` class with TTL-bounded
`seen`/`mark`).
- Cross-links: **PASS** (≥1 per derived doc)
- queues.md → 6 (concurrency/patterns, observability/metrics,
messaging/delivery-semantics, messaging/pubsub, messaging/streams,
errors/patterns)
- pubsub.md → 4 (messaging/streams, messaging/queues, observability/metrics)
- streams.md → 4 (messaging/delivery-semantics, messaging/pubsub,
data/schema-design, observability/tracing, observability/metrics)
- delivery-semantics.md → 5 (concurrency/patterns, errors/patterns,
observability/metrics, messaging/queues, messaging/streams)
- All one-directional outward per D-026 extended; edge↔messaging
bidirectional link resolved in P5 (messaging/first-principles §4
acknowledges the edge/iot back-link without editing edge content).
- P0 issues: **none**
- P1+ issues: **none**
### domain-expert (traceability)
- 20 new P-rules trace to ≥1 C-rule: **PASS**
- Edge (10): all traced in `domains/edge/first-principles.md` §2 AND
`matrix/principles-matrix.md` `## Edge` section (10 rows). No orphans.
- Messaging (10): all traced in `domains/messaging/first-principles.md` §2
AND `matrix/principles-matrix.md` `## Messaging` section (10 rows). No orphans.
- The two trace tables (first-principles §2 and matrix) are consistent.
- 16 Languages Coverage rows match derived docs: **PASS**
- `matrix/domain-coverage.md` `## Languages Coverage` sub-table has exactly
16 rows (4 languages × 4 derived docs). Spot-check confirms the traced
domain P-rules column matches the derived docs' actual section-header
traces (e.g., ts-types.md row: `Data P7, API P1, Errors P1` matches the
doc's headers naming Data P7, API P1, Errors P1).
- Matrix row count: **190 — PASS**
- `grep -c "^| P[0-9]" matrix/principles-matrix.md` = 190 exactly.
- Per G-014: 170 pre-existing (v0.1 + v0.2 + v0.3) + 20 new (10 edge + 10
messaging) = 190. NOT 171 + 20 (the v0.3 baseline was correctly 170, not 171).
- Edge section = 10 P-rows; Messaging section = 10 P-rows; no language rows
(D-066 invariant holds).
## P0 Fixes Applied (auto-applied in this phase)
1. **MANIFEST.md — 4 v0.4 examples unlisted (MANIFEST reconstruction drift).**
The 4 v0.4 example files existed on disk but were NOT listed in
`MANIFEST.md`'s Examples section:
- `examples/good/edge-offline-sync.md`
- `examples/good/messaging-idempotent-consumer.md`
- `examples/bad/edge-sync-loop.md`
- `examples/bad/messaging-shared-subscription.md`
Per the MANIFEST contract ("unlisted = not part of framework") and the
ATELIER-115 audit MANIFEST reconstruction test, this was a P0. Fix: added
the 4 rows to the Examples table with `✓` status + v0.4 notes, updated the
directory count notes (good: 8→10, bad: 7→9), and extended the closing
note to mention the 4 v0.4 examples. The 4 example files were verified
present on disk; the anti-patterns they instantiate are catalogued in
`review/anti-patterns.md` (v0.4 Chaos Anti-Patterns table + the
`edge-sync-loop` and `messaging-shared-subscription` named examples).
## P1+ Issues Flagged for Post-Hoc
none — review clean. The v0.4 content (edge, messaging, languages-derived)
is consistent with the D-061/D-062/D-063 boundaries, the traceability
invariants (G-014, D-066), the cross-link discipline (D-026 extended,
IDEATE-40), and the manifest contract. The only finding was the P0
MANIFEST drift, which has been fixed.
## Overall Review Verdict: **PASS**
---
## Audit (ATELIER-115)
### Reconstruction test: **PASS**
- git log v0.3.0..HEAD: 11 commits, all with `---ci---` blocks containing
`project: atelier` (P0 pre-exec, P1 edge, P2 messaging, P3 languages,
P4 matrix+review+manifest+architecture, P5 examples+crosslinks + 5 ship
commits). Verified: 0 v0.4 commits missing the `project: atelier` field.
- CHECKPOINT.json: phase 5, stage complete — matches current state (P5
shipped at v0.3.5, release 487; P6 is the current pending phase per
ROADMAP). Note: CHECKPOINT.json will be advanced to phase 6 by the
orchestrator at ship (Wave 2); this is expected — the audit verifies
reconstruction from commits + ROADMAP + CHECKPOINT, all of which agree.
### Branch hygiene: **PASS**
- `milestone/v0.4-edge-quantum-langs`: exists (local + remote
`remotes/origin/milestone/v0.4-edge-quantum-langs`).
- `phase/01-05`: deleted post-merge — `git branch -a | grep -E "phase/0[1-5]"`
returns empty locally and on remote (phase/01..05 branches were merged and
removed per the phase-branch strategy).
- `phase/06-final-review-ship`: active (checked out, working tree clean
except the P0 MANIFEST fix which is staged for the orchestrator's commit).
### Commit discipline: **PASS**
- Total v0.4 commits (v0.3.0..HEAD): 11
- Commits with `---ci---` block: 11 (100%)
- Coverage: 11/11 = 100%
- Each `---ci---` block includes `project: atelier` (verified by scanning
every v0.4 commit body). The v0.4 milestone is fully `---ci---`-compliant.
- (Repo-wide: 38 of 46 all-branches commits carry `---ci---` blocks; the
non-ci commits are the pre-framework chore commits and the v0.1 legacy
commits before the ci-block convention was established — out of v0.4
scope.)
### MANIFEST reconstruction test: **PASS** (after P0 fix)
- Listed docs existing on disk: 33/33 paths checked (the 4
"missing-on-disk" detections are intentional placeholders —
`domains/<relevant>/first-principles.md` and `domains/<relevant>/<topic>.md`
in the Reading-Order section, and the `examples/good/` +
`examples/bad/` directory rows — not real files).
- Existing docs listed in MANIFEST: all 129 on-disk `.md` files under
`core/`, `domains/`, `languages/`, `matrix/`, `review/`, `examples/` are
listed. The MANIFEST uses a summarized format (Domains table by domain
name + derived-doc basenames; Languages table by language name + derived-
doc basenames; Examples table by full path; Cross-Cutting table by full
path). Verified by basename match for domains/languages + full-path match
for examples/core/matrix/review. The 4 v0.4 examples were the only drift;
the P0 fix added them.
- Drift: **none after P0 fix** (pre-fix: 4 v0.4 examples unlisted → fixed).
### Matrix row-count test: **PASS**
- `grep -c "^| P[0-9]" matrix/principles-matrix.md` = **190** (expected 190).
- Per G-014: 170 pre-existing (110 v0.1 + 20 v0.2 + 40 v0.3) + 20 new
(10 edge + 10 messaging) = 190. The v0.3 baseline was correctly 170 (NOT
171 — the v0.3 audit confirmed this; v0.4 builds on the correct baseline).
- Edge section: 10 P-rows. Messaging section: 10 P-rows. No language rows
(D-066 invariant — languages apply, not derive; matrix stays at 19
domains × 10 P-rules = 190).
### ARCHITECTURE.md component-tree test: **PASS**
- `domains/` on disk (19): ai-ml, api, compliance, concurrency, data,
devops, documentation, edge, errors, gitops-operators, i18n,
infrastructure-as-code, kubernetes, messaging, observability, performance,
security, testing, uiux.
- `domains/` in ARCHITECTURE.md: all 19 present (v0.1: 11 summarized as
`... (v0.1: 11 domains)`; v0.2: infrastructure-as-code, kubernetes
explicit; v0.3: gitops-operators, ai-ml, i18n, compliance explicit; v0.4:
edge, messaging explicit). The summary form for v0.1 is intentional and
consistent with the v0.2/v0.3 audit precedents.
- `languages/` on disk (20): 4 stubs (typescript.md, python.md, go.md,
rust.md) + 16 derived (ts-*, py-*, go-*, rs-*).
- `languages/` in ARCHITECTURE.md: all 20 present (4 stubs explicit + 4
derived-doc globs `ts-*.md`, `py-*.md`, `go-*.md`, `rs-*.md` each
enumerating the 4 derived docs, plus the "Derived docs by language"
listing in the v0.4 Language-Derived Extension section).
- Drift: **none**.
### Audit Verdict: **PASS**
---
## Summary
- Review verdict: **PASS** (clean across all 5 personas; 1 P0 fixed).
- Audit verdict: **PASS** (6 audit checks all pass after P0 fix).
- P0 fixes applied: **1** (MANIFEST.md — 4 v0.4 examples unlisted → listed).
- P1+ flagged: **0** (review clean).
- Matrix row count: **190** (confirmed — 170 pre-existing + 20 new, NOT
171 + 20).
- MANIFEST drift: **no** (after P0 fix; was: 4 v0.4 examples unlisted).
- Ready-to-ship: **yes** — review and audit both PASS; the milestone is
ready for Wave 2 (ship) by the orchestrator.
The v0.4 milestone (edge + messaging + language-derived extension) is
coherent, traceable, boundary-respecting, manifest-complete, and
audit-clean. The single P0 (MANIFEST examples drift) has been auto-applied;
the working tree carries only that one-line fix, staged for the
orchestrator's ship commit.
+4 -4
View File
@@ -119,10 +119,10 @@ NFR milestone: no separate minor tag. The final patch (v0.2.6) IS the v0.3 deliv
## Future Milestones ## Future Milestones
- **v0.4** (COMPLETE): `domains/edge/`, `domains/messaging/`, `languages/`-derived docs (typescript/python/go/rust → 4 derived docs each). Shipped v0.3.6. - **v0.4** (ACTIVE): `domains/edge/`, `domains/messaging/`, `languages/`-derived docs (typescript/python/go/rust → 4 derived docs each).
- **v0.5** (candidates): `domains/quantum/`, tooling adapters (linters), translation/localization of framework docs. - **v0.5** (candidates): `domains/quantum/`, tooling adapters (linters), translation/localization of framework docs.
## Milestone: v0.4 — Edge + Messaging + Language-Derived Docs (COMPLETE) ## Milestone: v0.4 — Edge + Messaging + Language-Derived Docs (ACTIVE)
**Milestone type:** NFR (all phases produce docs — no `feat` code) **Milestone type:** NFR (all phases produce docs — no `feat` code)
**Tag line:** v0.3.x (previous minor from v0.4) **Tag line:** v0.3.x (previous minor from v0.4)
@@ -135,8 +135,8 @@ NFR milestone: no separate minor tag. The final patch (v0.2.6) IS the v0.3 deliv
| 2 | Messaging Domain | docs | complete | domains/messaging/{first-principles, queues, pubsub, streams, delivery-semantics}.md — shipped v0.3.2 | | 2 | Messaging Domain | docs | complete | domains/messaging/{first-principles, queues, pubsub, streams, delivery-semantics}.md — shipped v0.3.2 |
| 3 | Language-Derived Extension | docs | complete | languages/ × 4 → first-principles + 4 derived docs each (16 derived docs) — shipped v0.3.3 | | 3 | Language-Derived Extension | docs | complete | languages/ × 4 → first-principles + 4 derived docs each (16 derived docs) — shipped v0.3.3 |
| 4 | Matrix + Review Integration | docs | complete | matrix/principles-matrix.md (+20 mappings, 170→190), matrix/domain-coverage.md (+ languages/ sub-table), review/{agent-checklist, peer-review-checklist, anti-patterns}.md, MANIFEST.md (languages/ section), ARCHITECTURE.md — shipped v0.3.4 | | 4 | Matrix + Review Integration | docs | complete | matrix/principles-matrix.md (+20 mappings, 170→190), matrix/domain-coverage.md (+ languages/ sub-table), review/{agent-checklist, peer-review-checklist, anti-patterns}.md, MANIFEST.md (languages/ section), ARCHITECTURE.md — shipped v0.3.4 |
| 5 | Examples + Cross-Links | docs | complete | examples/good + examples/bad for 2 domains, cross-links to devops/observability/data/concurrency/kubernetes/infrastructure-as-code + language→domain links — shipped v0.3.5 | | 5 | Examples + Cross-Links | docs | pending | examples/good + examples/bad for 2 domains, cross-links to devops/observability/data/concurrency/kubernetes/infrastructure-as-code + language→domain links |
| 6 | Final Review + Ship | docs | complete | Review passed, audit clean, milestone merged to main, tag v0.3.6 — shipped v0.3.6 (IS the v0.4 release) | | 6 | Final Review + Ship | docs | pending | Review passed, audit clean, milestone merged to main, tag v0.3.6 |
## v0.4 Phase Tag Mapping ## v0.4 Phase Tag Mapping
+1 -1
View File
@@ -4,7 +4,7 @@
"slug": "atelier", "slug": "atelier",
"name": "Atelier", "name": "Atelier",
"milestone": "v0.4", "milestone": "v0.4",
"status": "complete" "status": "active"
} }
], ],
"active_project": "atelier", "active_project": "atelier",
+4 -8
View File
@@ -58,12 +58,12 @@
## Examples ## Examples
> Examples are illustrative markdown with fenced code only (no standalone runtime artifacts per D-020 / D-025). The `examples/` directory listing closes the v0.2 ESC-002 drift (IDEATE-17, ATELIER-91). P5 authored the v0.3 examples and promoted all entries from `pending` to `✓` (verified — every listed file exists). P5 also authored the 4 v0.4 examples (edge + messaging chaos anti-patterns + good examples) and listed them here. > Examples are illustrative markdown with fenced code only (no standalone runtime artifacts per D-020 / D-025). The `examples/` directory listing closes the v0.2 ESC-002 drift (IDEATE-17, ATELIER-91). P5 authored the v0.3 examples and promoted all entries from `pending` to `✓` (verified — every listed file exists).
| Path | Status | Notes | | Path | Status | Notes |
|------|--------|-------| |------|--------|-------|
| `examples/good/` | ✓ | Good-example directory — 10 examples (v0.1 + v0.2 + v0.3 + v0.4) | | `examples/good/` | ✓ | Good-example directory — 8 examples (v0.1 + v0.2 + v0.3) |
| `examples/bad/` | ✓ | Bad-example directory — 9 examples (v0.1 + v0.2 + v0.3 + v0.4) | | `examples/bad/` | ✓ | Bad-example directory — 7 examples (v0.1 + v0.2 + v0.3) |
| `examples/good/api-endpoint.md` | ✓ | v0.1 example — good REST endpoint | | `examples/good/api-endpoint.md` | ✓ | v0.1 example — good REST endpoint |
| `examples/good/react-component.md` | ✓ | v0.1 example — good React component | | `examples/good/react-component.md` | ✓ | v0.1 example — good React component |
| `examples/good/db-schema.md` | ✓ | v0.1 example — good DB schema | | `examples/good/db-schema.md` | ✓ | v0.1 example — good DB schema |
@@ -79,12 +79,8 @@
| `examples/good/ai-ml-reproducibility.md` | ✓ | v0.3 example — good reproducible training run | | `examples/good/ai-ml-reproducibility.md` | ✓ | v0.3 example — good reproducible training run |
| `examples/bad/i18n-string-concat.md` | ✓ | v0.3 example — bad i18n string concat | | `examples/bad/i18n-string-concat.md` | ✓ | v0.3 example — bad i18n string concat |
| `examples/bad/compliance-audit-log.md` | ✓ | v0.3 example — bad audit log (P1 + P9 breaches) | | `examples/bad/compliance-audit-log.md` | ✓ | v0.3 example — bad audit log (P1 + P9 breaches) |
| `examples/good/edge-offline-sync.md` | ✓ | v0.4 example — good edge offline-first + sync reconcile (CRDT-vs-LWW decision matrix) |
| `examples/good/messaging-idempotent-consumer.md` | ✓ | v0.4 example — good idempotent consumer with dedup store + DLQ |
| `examples/bad/edge-sync-loop.md` | ✓ | v0.4 example — bad edge sync livelock (`edge-sync-loop` chaos anti-pattern, ATELIER-110) |
| `examples/bad/messaging-shared-subscription.md` | ✓ | v0.4 example — bad messaging shared subscription (`messaging-shared-subscription` chaos anti-pattern, ATELIER-110) |
> **Note:** The `examples/` section was established in P4 with entries pre-listed as `pending P5`. P5 authored the 4 v0.3 examples and the 4 v0.4 examples, and promoted all entries to `✓` after verifying every listed file exists on disk. The manifest remains authoritative — unlisted = not part of framework. > **Note:** The `examples/` section was established in P4 with entries pre-listed as `pending P5`. P5 authored the 4 v0.3 examples and promoted all entries to `✓` after verifying every listed file exists on disk. The manifest remains authoritative — unlisted = not part of framework.
## Cross-Cutting ## Cross-Cutting