Files
seaweedfs/sw-block/design/v3-phase-14-s8-assignment.md
T
Ping Qiu f4ce2be875 doc: P14 S8 final bounded close — evidence matrix + P15 handoff (#9142)
* doc: P14 S8 final bounded close — evidence matrix + P15 handoff

Adds the six S8 closure deliverables consolidating S4-S7 evidence,
classifying V2 scenarios, and mapping residual product gaps onto
canonical P15 tracks (per v3-phase-15-product-plan.md §4).

New docs:
- v3-phase-14-s8-assignment.md — S8 execution contract.
- v3-phase-14-s8-final-bounded-close.md — bounded P14 target,
  accepted topology, reject conditions.
- v3-phase-14-s8-evidence-matrix.md — 16 claims × {L0, L1, L2, L3,
  Status, Residual}. 15 PROVEN, 1 PARTIAL (Claim 15 fence
  quantitative bound, P14 internal follow-up). Rounds 2-3 architect
  corrections: Claim 10 / 12 L2 narrowed; Claim 6 refresh gap closed
  by the new L1 test (see companion commit in seaweed_block).
- v3-phase-14-s8-v2-scenario-classification.md — every V2 scenario
  mapped to RUNNABLE-P14 / BLOCKED-FRONTEND / BLOCKED-OPS /
  BLOCKED-HA / BLOCKED-PERF / PORT-MECHANISM; scenario YAMLs kept
  as L3 shape, not executed evidence.
- v3-phase-14-s8-p15-handoff.md — 11 rows (10 canonical P15 tracks
  + 1 P14 internal follow-up anchored to Claim 15 PARTIAL); §4
  integrity check split by row class.
- v3-phase-14-s8-closure.md — final P14 closure statement matching
  the close doc §10 wording; explicit non-goals; all 9 P15 tracks
  named with canonical numbering.

No claim of CSI / frontend / migration / security / performance /
production readiness. Every product gap is handed off with a
concrete first-proof gate.

Companion: seaweed_block commit adds the IntentRefreshEndpoint L1
route test that closes Claim 6.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* doc: P14 S8 — resolve port-now doc conflict (CodeRabbit #4)

final-bounded-close.md §7 previously said "Port now: testrunner,
scenarios, component harness, qa_block, learn/test" while
v2-scenario-classification.md §2 says S8 does NOT port testrunner
machinery and defers all actual porting to P15.

Align final-bounded-close.md §7 with classification: section
renamed "Classify now (S8 scope), port deferred to P15". Every
item now states which P15 track actually owns the port (Final Gate
or T1 Frontend + Data Path as applicable).

No scope expansion; no new handoff gap. Pure doc-consistency fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 02:24:44 -07:00

5.6 KiB

V3 Phase 14 S8 Assignment

Date: 2026-04-19 Status: draft Owner: sw, with architect and tester review Purpose: execute the final bounded P14 close by producing evidence, scenario classification, and a clean P15 handoff

1. One-Line Goal

Close P14 as a bounded internal single-active-master topology/control-plane loop, backed by L0/L1/L2 evidence and honest L3/P15 carry-forward.

2. Scope

Included:

  1. S4-S7 route evidence consolidation
  2. acceptance matrix for all P14 internal claims
  3. final supported topology statement
  4. unsupported/deferred list
  5. V2 testrunner/scenario port classification
  6. process smoke gaps review
  7. 14A final targeted review packet
  8. P15 handoff mapping

Excluded:

  1. CSI implementation
  2. external API implementation
  3. user data-path production readiness
  4. migration implementation
  5. security implementation
  6. multi-master / HA
  7. performance or soak claims

3. Required Work

A. Evidence Inventory

Create an evidence table that maps S4-S7 claims to concrete tests and commands.

Must include:

  1. observation institution
  2. durable authority institution
  3. convergence institution
  4. real-route restart closure
  5. placement/rebalance/failover policy for accepted topology
  6. unsupported topology evidence
  7. old-slot/stale observation rejection
  8. per-volume isolation

B. Gap Classification

Classify every missing proof as one of:

  1. P14 internal blocker
  2. P14 S8 test/harness gap
  3. P15 product-surface gap
  4. 14A verification follow-up
  5. explicit non-goal

Any P14 internal blocker must be fixed before S8 close. A P15 product-surface gap must be carried forward, not disguised as P14 closure.

C. V2 Scenario Port Classification

Inspect V2 scenario/test assets and produce a table:

V2 asset P14 use P15 use Port shape Blocker

Start with:

  1. weed/storage/blockvol/testrunner/
  2. weed/storage/blockvol/testrunner/scenarios/public/ha-restart-recovery.yaml
  3. weed/storage/blockvol/testrunner/scenarios/public/ha-failover.yaml
  4. weed/storage/blockvol/testrunner/scenarios/public/fault-partition.yaml
  5. weed/storage/blockvol/test/component/
  6. weed/server/qa_block_*
  7. learn/test evidence layout

D. L2 Process Smoke Decision

Answer whether current sparrow hidden smoke surfaces are sufficient for S8 L2 internal close.

If not sufficient, add the minimum internal S8 smoke surface needed to prove the S4-S7 route without inventing P15 external product APIs.

The smoke must check:

  1. real process starts
  2. durable authority reloads
  3. observation or fixture input drives controller
  4. assignment reaches adapter through VolumeBridge
  5. restart does not mint backward
  6. structured output can be consumed by tester

E. 14A Final Targeted Pass

Prepare a 14A checklist for:

  1. stale authority after restart
  2. stale observation after reassignment
  3. old-slot delivery after authority move
  4. unsupported topology no-op/evidence
  5. convergence stuck/supersede clearing
  6. publication honesty during transition
  7. per-volume isolation

14A should review findings first. It should not expand P14 scope.

F. P15 Handoff

Produce a P15 handoff table:

Gap Why not P14 P15 owner track Required first proof

Must include:

  1. CSI lifecycle
  2. frontend data path
  3. external volume API
  4. security/auth
  5. diagnostics/operator workflow
  6. migration/coexistence
  7. deployment/hardening
  8. final cluster validation agent

4. Required Commands

At minimum run or document blockers for:

go test ./core/engine ./core/adapter ./core/authority -count=1
go test ./cmd/sparrow ./core/authority -count=1
go test ./... -count=1

If sandbox or Windows filesystem behavior blocks durable-store tests, rerun outside the sandbox and record the reason.

If L3 hardware scenarios are not runnable, do not fake them. Record the scenario names and blockers.

5. Expected Files

Expected docs:

  1. sw-block/design/v3-phase-14-s8-final-bounded-close.md — this scope document
  2. sw-block/design/v3-phase-14-s8-assignment.md — this assignment
  3. sw-block/design/v3-phase-14-s8-closure.md — final closure statement, created after implementation/evidence
  4. updates to v3-phase-14-checklist.md
  5. updates to v3-phase-14-log.md
  6. updates to v3-phase-14a-checklist.md if 14A final pass finds coverage gaps

Expected code/tests only if needed:

  1. internal process smoke helper in cmd/sparrow
  2. component evidence consolidation tests in core/authority or a shared component package
  3. scenario classification artifacts under the chosen test/runner directory

6. Acceptance

S8 can be accepted only when:

  1. the evidence matrix exists and is honest
  2. all P14 internal blockers are either fixed or explicitly rejected from the P14 claim
  3. L0 and L1 tests pass
  4. L2 process smoke is present or its absence is classified as a P15 product-surface blocker
  5. L3 scenarios are classified with runnable/deferred/blocker status
  6. 14A final targeted pass has no open P14 safety blocker
  7. P15 handoff maps every product gap to a P15 track
  8. final closure statement does not claim production readiness

7. Review Focus

Architect should review:

  1. whether S8 closure is product-honest
  2. whether any P15 work was pulled backward into P14
  3. whether any P14 internal truth gap was pushed forward into P15
  4. whether test evidence matches the claimed layer
  5. whether V2 porting stays mechanism-only

Tester should review:

  1. whether evidence is reproducible
  2. whether commands and scenario blockers are specific
  3. whether L2/L3 gaps are visible
  4. whether final artifacts are enough to start P15 without re-litigating P14