Fulfills §5 step 1 pre-scan gate with concrete V3 source evidence and
propagates findings to §3 observations.
## Pre-scan output (§5 step 1)
5-row checklist table against V3 source:
- SetReplicaAddrs / ReplicaAddrs / replica fields: NONE in
`core/frontend/` or `core/storage/` (grep-clean)
- Sync/Write remote-ack semantics: NONE; all returns pure-local
(`types.go:50-78`, `logical_storage.go:57-70`)
- LogicalStorage.Write LSN: pure-local; distributed durability
is explicit non-contract (`logical_storage.go:45`)
- Ship/Replicate/Quorum/Barrier/Durability identifiers: none in
code; comments only
- Replication stubs: NONE; but three fully-implemented replica-
side primitives on LogicalStorage: ApplyEntry / AdvanceFrontier
/ AllBlocks, with impls in walstore.go + smartwal/store.go
Net: frontend/durable layer clean; LogicalStorage layer already
committed to a specific replica-side shape. L2 must ALIGN with
that shape, not override it.
## §3 updates driven by pre-scan
§3.11 (H6) narrowed with V3 existing-shape evidence:
- Option A unlikely (no supporting V3 shape; StorageBackend is
replication-unaware)
- Option B effectively ruled out (ApplyEntry/AdvanceFrontier sit
BELOW Backend on LogicalStorage; a ReplicatedBackend wrapper
would either reach past its wrapped contents or duplicate the
storage-layer contract)
- Option C leading (matches V3 existing Provider-owns-lifecycle
shape; generalizes BUG-005 lesson)
§3.12 (H7) new — LSN surface-up gap:
- `Backend.Write → (int, error)` discards LSN
- `LogicalStorage.Write → (lsn, error)` returns it
- Primary-side shipper needs per-write LSN
- H7a (extend Backend sig) unlikely; H7b (Provider intercepts
at LogicalStorage layer) natural fit with H6 Option C; H7c
(side-channel NextLSN+Boundaries delta) rejected as racy
- H7 resolution coupled to H6 — joint L2 LOCK
§3.13 new — replica-side bypasses Backend entirely:
- Structural finding already locked by V3 shape, NOT an L2 choice
- Primary-side traffic: session → handler → Backend → LogicalStorage
- Replica-side traffic: network frame → ReplicaReceiver →
LogicalStorage.ApplyEntry (bypasses Backend)
- Explicit so L2 builds on it rather than fighting
## Feedback-round log + change log
§5 feedback log gains round 2 entry; §6 change log gains full
round-2 detail with line-level citations.
No sign event; this is iterative informal feedback per §8C.8
lightweight cadence. L1 stays DRAFT until bundled T4 T-start
three-sign with L2 + L3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
V2 Design
This directory currently contains both the active V2 design canon and a large set of working notes, migration packs, and historical comparison material.
Use this README as the navigation layer. If a document is not listed under
Core Canon, treat it as supporting or historical context rather than the
current source of truth.
Core Canon
These are the documents that define the current V2 model and should be read first.
v2-protocol-truths.md— the stable semantic rulesv2-sync-recovery-protocol.md— sync, keepup, catchup, and rebuild protocol meaningv2-rebuild-mvp-session-protocol.md— rebuild session contract and data/control lanesv2-automata-ownership-map.md— assignment, session, and projection ownershipv2-protocol-claim-and-evidence.md— claims and current proof posturev2-validation-matrix.md—Rebuild Ready,Restore Ready, andV2 Readygatesv2-capability-map.md— capability-to-proof-tier mappingv2-proof-and-retest-pyramid.md— proof layering and retest strategy
Implementation Guides
These help maintainers understand how the current model maps into code.
v2-engine-maintainer-tutorial.mdv2-protocol-aware-execution.mdv2-session-protocol-shape.mdv2-two-loop-protocol.mdv2-assignment-translation-unification.mdv2-reuse-replacement-boundary.md
Validation And Rollout
These define how the active design is validated, staged, or operationalized.
v2-validation-matrix.mdv2-acceptance-criteria.mdv2-product-completion-overview.mdv2-first-launch-supported-matrix.mdv2-legacy-runtime-exit-criteria.mdv2-controlled-rollout-review.mdv2-bounded-internal-pilot-pack.mdv2-pilot-preflight-checklist.mdv2-pilot-stop-conditions.md
Working Reference
These are still useful, but they are not the shortest route to the current truth.
v2-open-questions.mdv2-phase-development-plan.mdv2-execution-muscles-inventory.mdv2-scenario-sources-from-v1.mdv2_scenarios.mdv1-v15-v2-comparison.mdv2-algorithm-overview.mdv2-algorithm-overview.zh.mdv2-detailed-algorithm.zh.mdv2-semantic-methodology.zh.mdv2-protocol-closure-map.zh.md
Migration And Historical Working Set
These files are mostly valuable for reconstruction of design history, migration intent, or earlier prototype shapes. They should usually not be the first docs opened during current development.
v2-first-migration-batch.mdv2-first-migration-task-pack.mdv2-second-migration-batch.mdv2-second-migration-task-pack.mdv2-third-migration-batch.mdv2-third-migration-task-pack.mdv2-phase14plus-semantic-framework.mdv2-pure-runtime-rf1-bootstrap.mdv2-volumev2-single-node-mvp.mdv2-loop1-surface-draft.mdv2-rf2-runtime-bounded-envelope.mdv2-rf2-runtime-bounded-envelope-review.mdv2-separation-port-layer-audit.mdv2_mini_core_design.mdwal-replication-v2.mdwal-replication-v2-state-machine.mdwal-replication-v2-orchestrator.mdwal-v2-tiny-prototype.mdwal-v1-to-v2-mapping.mdv2-dist-fsm.mdv1-v15-v2-simulator-goals.mdprotocol-version-simulation.md
Process
protocol-development-process.mdagent_dev_process.md
Cleanup Rule
When a document is superseded, prefer:
- keeping one canonical file in
Core Canon - leaving older reasoning in
Migration And Historical Working Set - avoiding duplicate "read first" lists across many files
Future cleanup should physically move or archive files only after their inbound references are reviewed.
Execution Note
- active development tracking lives under
../.private/phase/ - current phase contract and slice packages live there rather than in this directory
The original project-level copies under learn/projects/sw-block/design/
remain as shared references for now.