Files
gps-denied-onboard/.planning/phases/02-acceptance-criteria-test-taxonomy-observability-spine/02-PHASE-SUMMARY.md
T
Yuzviak 7f76acfe29 docs(02-07): Phase 2 plan 07 SUMMARY + Phase 2 PHASE-SUMMARY
- 02-07-SUMMARY.md: log_schemas.py shape, test counts, AC-TRACEABILITY delta,
  E2E smoke notes, Phase 2 DoD checklist (9/10 checked, ROADMAP human action)
- 02-PHASE-SUMMARY.md: Phase 2 capstone — 236 tests, 15 ACs covered, 39 declared,
  10 hot-path structlog files, 3 boundary schemas, handoff notes for Phase 3
2026-05-11 18:53:43 +03:00

2.8 KiB

phase, plans_completed, tags
phase plans_completed tags
02-acceptance-criteria-test-taxonomy-observability-spine 7
acceptance-criteria
test-taxonomy
structlog
pydantic
ci-pipeline
traceability

Phase 2: Acceptance Criteria, Test Taxonomy, Observability Spine — Phase Summary

Objective

Establish the verification infrastructure that Phase 3+ depends on:

  1. Formal 39-AC document with unambiguous pass/fail criteria
  2. pytest marker taxonomy (6 markers: unit/integration/blackbox/perf/hardware/ac)
  3. AC↔test traceability matrix + CI enforcement
  4. structlog hot-path spine (10 files, frame_id propagation)
  5. Pydantic v2 boundary-log schemas (3 models)

Plans Completed

Plan Name Key Deliverable
02-01 AC Document Rewrite 39 formal ACs in _docs/00_problem/acceptance_criteria.md
02-02 (not in scope / skipped)
02-03 Pytest Marker Taxonomy 6 markers registered, 37 test files decorated
02-04 AC Traceability Script gen_ac_traceability.py, AC-TRACEABILITY.md, @pytest.mark.ac on 7 files
02-05 CI Pipeline + Orphan Reconciliation ci.yml per-marker jobs, nightly.yml, 21 orphan ACs annotated
02-06 structlog Spine logging_config.py, 10 hot-path files switched, frame_id via contextvars
02-07 Boundary-Log Schemas + Final Gate log_schemas.py (3 models), 20 tests, 236 total passing, gate green

Final State

  • Total tests: 236 passing, 8 skipped (hardware/SITL skips expected)
  • ACs declared: 39
  • ACs covered by tests: 15 (non-deferred ACs with ≥1 test)
  • ACs deferred: 25 (annotated with pending-phase-N in traceability matrix)
  • Hot-path structlog files: 10
  • Boundary-log schemas: 3 (MavlinkGpsInputEmitted, ApiRequestCompleted, AnchorDecision)

Requirements Satisfied

Req ID Description Evidence
AC-01 AC document with formal criteria 39 ACs in acceptance_criteria.md
AC-02 Every non-deferred AC has ≥1 test 15 ACs covered, 25 annotated-deferred
TEST-01 pytest marker taxonomy defined 6 markers in pyproject.toml
TEST-02 Markers applied to all test files 37 files with module-level pytestmark
TEST-03 CI enforces per-marker lanes ci.yml: unit/integration/blackbox/perf jobs
OBS-01 structlog spine on hot path 10 files + boundary schemas

Handoff to Phase 3

Phase 3 (Visual Odometry + AnchorVerifier) can begin with:

  • Known-good measurement floor: 236 tests, 8 skipped
  • AC-2.1b (anchor verification) has schema contract tests; Phase 3 adds integration
  • AnchorDecision schema ready for Phase 3 AnchorVerifier wiring
  • merge_contextvars propagation verified; orchestrator binds frame_id at frame entry

ROADMAP.md Update (Human Action Required)

After merging Phase 2 branch:

  • Update Phase 2 row: Plans Complete: 7/7, Status: Done