mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 07:31:13 +00:00
7f76acfe29
- 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
2.8 KiB
2.8 KiB
phase, plans_completed, tags
| phase | plans_completed | tags | ||||||
|---|---|---|---|---|---|---|---|---|
| 02-acceptance-criteria-test-taxonomy-observability-spine | 7 |
|
Phase 2: Acceptance Criteria, Test Taxonomy, Observability Spine — Phase Summary
Objective
Establish the verification infrastructure that Phase 3+ depends on:
- Formal 39-AC document with unambiguous pass/fail criteria
- pytest marker taxonomy (6 markers: unit/integration/blackbox/perf/hardware/ac)
- AC↔test traceability matrix + CI enforcement
- structlog hot-path spine (10 files, frame_id propagation)
- 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
AnchorDecisionschema ready for Phase 3 AnchorVerifier wiringmerge_contextvarspropagation verified; orchestrator bindsframe_idat frame entry
ROADMAP.md Update (Human Action Required)
After merging Phase 2 branch:
- Update Phase 2 row:
Plans Complete: 7/7,Status: Done