surfaces/.planning/phases/01.1-matrix-restart-reconciliation-and-dev-reset-workflow/01.1-VALIDATION.md

3.7 KiB

phase slug status nyquist_compliant wave_0_complete created
01.1 matrix-restart-reconciliation-and-dev-reset-workflow draft false false 2026-04-03

Phase 01.1 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework pytest 9.0.2 + pytest-asyncio 1.3.0
Config file pyproject.toml
Quick run command pytest tests/adapter/matrix -v
Full suite command pytest tests/ -v
Estimated runtime ~20 seconds

Sampling Rate

  • After every task commit: Run pytest tests/adapter/matrix -v
  • After every plan wave: Run pytest tests/ -v
  • Before $gsd-verify-work: Full suite must be green
  • Max feedback latency: 20 seconds

Per-Task Verification Map

Task ID Plan Wave Requirement Test Type Automated Command File Exists Status
01.1-01-01 01 1 PH01.1-BOOT unit/integration pytest tests/adapter/matrix/test_reconcile.py -v W0 pending
01.1-01-01 01 1 PH01.1-COUNTER unit pytest tests/adapter/matrix/test_reconcile.py -k next_chat_index -v W0 pending
01.1-01-01 01 1 PH01.1-NONDESTRUCTIVE unit pytest tests/adapter/matrix/test_reconcile.py -k no_create -v W0 pending
01.1-02-01 02 2 PH01.1-BOOT unit pytest tests/adapter/matrix/test_dispatcher.py -k startup -v pending
01.1-02-02 02 2 PH01.1-ROUTER unit pytest tests/adapter/matrix/test_dispatcher.py -k reconcile -v pending
01.1-03-01 03 1 PH01.1-RESET unit/smoke pytest tests/adapter/matrix/test_reset.py -v W0 pending
01.1-03-02 03 1 PH01.1-RESET smoke python -m adapter.matrix.reset --help W0 pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • tests/adapter/matrix/test_reconcile.py — startup reconciliation scenarios, next_chat_index, and no-provisioning assertions
  • tests/adapter/matrix/test_reset.py — CLI reset modes, dry-run behavior, and operator guidance output
  • tests/adapter/matrix/test_dispatcher.py — startup bootstrap order and targeted unknown-room recovery coverage
  • Fake AsyncClient fixture surface for joined rooms, room state, leave, and forget behavior

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Reconciled Space/chat rooms render correctly in a real Matrix client after restart PH01.1-BOOT Client UX and homeserver state cannot be fully trusted from fake nio fixtures 1. Start the bot with existing Space/chat rooms. 2. Verify the bot does not create duplicate Space or chat rooms. 3. Send a command in a recovered room and confirm it routes normally.
Server-side cleanup leaves the account in a usable Element state after server-leave-forget PH01.1-RESET Element/archive behavior and homeserver retention are client/server integration concerns 1. Run python -m adapter.matrix.reset --mode server-leave-forget --dry-run. 2. Run without --dry-run on a test account. 3. Confirm joined rooms disappear for the bot and fresh invites can be accepted cleanly.

Validation Sign-Off

  • All tasks have <automated> verify or Wave 0 dependencies
  • Sampling continuity: no 3 consecutive tasks without automated verify
  • Wave 0 covers all MISSING references
  • No watch-mode flags
  • Feedback latency < 20s
  • nyquist_compliant: true set in frontmatter

Approval: pending