docs(milestone): complete v0.4 — Edge + Messaging + Language-Derived Docs

---ci---
project: atelier
phase: 0
milestone: v0.4
status: complete
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---
This commit is contained in:
Jon Chery
2026-08-05 16:23:15 +00:00
parent 9ebc9c8868
commit 29ffb42898
53 changed files with 8404 additions and 46 deletions
+31
View File
@@ -197,6 +197,37 @@ If the task touches a domain, run that domain's checklist:
- [ ] Audit logs do not leak secrets; redaction is structural, not opportunistic (P9)
- [ ] System reports its own compliance state (drift from policy, open violations, retention status) (P10)
### If Edge (see `domains/edge/`)
- [ ] Compute is placed near the user/data source; latency is treated as a correctness constraint, not a perf preference (P1)
- [ ] The system continues to operate offline; partition is the norm, not the exception; reconciliation happens on reconnect (P2)
- [ ] Edge-node resource constraints (CPU/memory/power/bandwidth) are declared per node class, not assumed infinite (P3)
- [ ] Sync conflicts converge; no oscillation or infinite sync loops (P4)
- [ ] Sync, cache-fill, and device commands are idempotent — retries are safe (P5)
- [ ] Edge caches have an explicit TTL or invalidation strategy; no TTL-less caches under partition (P6)
- [ ] Partial degradation is a designed state with a defined contract, not a crash (P7)
- [ ] Routing, fan-out, and data placement are location-aware decisions, not accidents of deployment (P8)
- [ ] Edge-device credentials are scoped and per-device; no edge node is a cluster-admin-equivalent (P9)
- [ ] Telemetry is local-first: buffered on-node and forwarded on reconnect; partition does not blind the operator (P10)
### If Messaging (see `domains/messaging/`)
- [ ] Messages have an explicit, versioned schema; producer and consumer agree on shape before exchange (P1)
- [ ] Ordering guarantees (per-partition, global, none) are explicit and documented; "FIFO" is backed by the broker contract (P2)
- [ ] Consumers are idempotent — redelivery is deduped via idempotency keys or deterministic processing (P3)
- [ ] Delivery semantics (at-least-once/at-most-once/exactly-once) are a declared choice per channel (P4)
- [ ] Poison messages route to a dead-letter queue; the DLQ is observable and drainable (P5)
- [ ] Backpressure is bounded — consumer lag visible, max-unacked bounded, retry budget capped (P6)
- [ ] Partition key choice is a documented design decision (ordering vs parallelism vs hotspots) (P7)
- [ ] Retention windows and replay-from-offset are explicit; the broker is a durable log, not a pipe (P8)
- [ ] Schema changes are backward/forward-compatible; breaking changes are versioned migrations, not silent shape edits (P9)
- [ ] Consumer lag, DLQ depth, throughput, and consumer-group health are observed; silent backlog is a bug (P10)
### If Language-Derived Docs (see `languages/`)
- [ ] Scope check: no new P-rules introduced — every section traces to an existing domain P-rule (D-063, D-066)
- [ ] Every section header names ≥1 traced domain P-rule AND the core C-rule(s) inline (e.g., `## Nominal vs Structural Typing (C1 Correctness, Data P7 Type Fidelity, API P1 Contract Fidelity)`)
- [ ] Fenced code examples are in-language and illustrative only — no standalone `.ts`/`.py`/`.go`/`.rs` runtime artifacts (D-020)
- [ ] The first-principles stub retains its section structure — no P1P10 numbering added to languages (D-063)
- [ ] Cross-links to traced domain docs are present (≥1 outbound per derived doc, ATELIER-114)
## Final Gate
- [ ] Have I read the relevant domain's first-principles?