|
| 1 | +# TASK-046: Phase 2 requirements — `crsql-mesh` slice (node-first) |
| 2 | + |
| 3 | +## Status |
| 4 | +- [x] Planned |
| 5 | +- [ ] Assigned |
| 6 | +- [ ] In Progress |
| 7 | +- [ ] Blocked (reason: ...) |
| 8 | +- [ ] Complete |
| 9 | + |
| 10 | +## Priority |
| 11 | +high |
| 12 | + |
| 13 | +## Assigned To |
| 14 | +subagent (general) |
| 15 | + |
| 16 | +## Parent Docs / Cross-links |
| 17 | +- Tom decisions: `.wishes/done/tom-review-crsql-mesh-instructions.md` |
| 18 | +- Spec-first rules: `effect-native/.specs/AGENTS.md` |
| 19 | +- Phase 1 docs: |
| 20 | + - `effect-native/.specs/crsql-mesh-protocol/instructions.md` |
| 21 | + - `effect-native/.specs/crsql-mesh-transport/instructions.md` |
| 22 | + - `effect-native/.specs/crsql-mesh/instructions.md` |
| 23 | + - `effect-native/.specs/crsql-mesh-runtime/instructions.md` (node section) |
| 24 | + |
| 25 | +## Description |
| 26 | +Write Phase 2 `requirements.md` (EARS) for the first-ship slice: |
| 27 | + |
| 28 | +- `@effect-native/crsql-mesh-protocol` |
| 29 | +- `@effect-native/crsql-mesh-transport` |
| 30 | +- `@effect-native/crsql-mesh` (core engine) |
| 31 | +- `@effect-native/crsql-mesh-runtime-node` |
| 32 | + |
| 33 | +Keep it thing-golf small: define the minimum behaviors needed to run a two-peer sync loop over an in-memory transport and a filesystem-backed DB. |
| 34 | + |
| 35 | +STOP after Phase 2 docs (do not design or implement). |
| 36 | + |
| 37 | +## Files to Modify |
| 38 | +- `effect-native/.specs/crsql-mesh-protocol/requirements.md` |
| 39 | +- `effect-native/.specs/crsql-mesh-transport/requirements.md` |
| 40 | +- `effect-native/.specs/crsql-mesh/requirements.md` |
| 41 | +- `effect-native/.specs/crsql-mesh-runtime/requirements.md` |
| 42 | + |
| 43 | +## Acceptance Criteria |
| 44 | +- [ ] All requirements use EARS notation. |
| 45 | +- [ ] Requirements reference reuse of `@effect-native/crsql` schemas (no duplicate serialization types). |
| 46 | +- [ ] `unhex()` requirement is explicit and includes fail-fast behavior (`UnhexUnavailable`). |
| 47 | +- [ ] Node runtime requirements explicitly depend on `@effect/platform` capabilities. |
| 48 | +- [ ] Each requirements.md has a short “Out of Scope” section aligned with Phase 1. |
| 49 | + |
| 50 | +## Progress Log |
| 51 | +### 2025-12-15 |
| 52 | +- Task created from Tom-approved Phase 2 gate |
| 53 | + |
| 54 | +## Completion Notes |
| 55 | +[fill in when done] |
0 commit comments