mirror of
https://github.com/azaion/missions.git
synced 2026-06-21 09:41:08 +00:00
040b1f85f8
Autodev cycle 1 retro: 5 batches, 12 tasks, 48 SP delivered. Architecture baseline F4 partial -> resolved (Entities/ + DTOs/Requests/ removed); net architecture delta -1. Zero blockers, zero High/Critical findings, zero auto-fix escalations. Artifacts: - _docs/06_metrics/retro_2026-05-16.md (first retro, no trend yet) - _docs/06_metrics/structure_2026-05-16.md (baseline snapshot) - _docs/LESSONS.md (3 entries: tooling, process, estimation) State: cycle 1 -> cycle 2 boundary; Step 9 (New Task) is next. Co-authored-by: Cursor <cursoragent@cursor.com>
3.8 KiB
3.8 KiB
Structural Snapshot — 2026-05-16
Purpose: First structural snapshot for this codebase. Future retrospectives compute deltas against this file.
Component Inventory
| # | Component | Owns (representative) | Imports from |
|---|---|---|---|
| 1 | 01_vehicle_catalog |
Controllers/VehiclesController.cs, Services/VehicleService.cs, DTOs/{Create,Update,GetVehicles,SetDefault}*.cs |
04_persistence, 05_identity, 06_http_conventions |
| 2 | 02_mission_planning |
Controllers/MissionsController.cs, Services/{Mission,Waypoint}Service.cs, mission/waypoint DTOs |
04_persistence, 05_identity, 06_http_conventions, 01_vehicle_catalog (DB FK existence) |
| 3 | 04_persistence |
Database/AppDataConnection.cs, Database/DatabaseMigrator.cs, 7 entities under Database/Entities/, persisted enums under Enums/ |
(none internal) |
| 4 | 05_identity |
Auth/JwtExtensions.cs (single "FL" policy) |
(none internal) |
| 5 | 06_http_conventions |
Middleware/* (exception → ProblemDetails mapper, etc.) |
(none internal) |
| 6 | 07_host |
Program.cs, GlobalUsings.cs, Infrastructure/{ConfigurationResolver,CorsConfigurationValidator}.cs |
Every other component |
Layout Convention
Custom (layer-organized). Not per-component-directory. Each component's Owns glob is a set of file paths spanning multiple top-level directories (Controllers/, Services/, DTOs/, Enums/, Database/, Auth/, Middleware/).
This is the established baseline and is intentional per _docs/02_document/module-layout.md § "Layout Rules". Future refactors that introduce per-component subdirectories would be a structural deviation worth surfacing in the next snapshot delta.
Graph Metrics
| Metric | Value |
|---|---|
| Component count | 6 |
| Cross-component import edges | 8 (01→04, 01→05, 01→06, 02→04, 02→05, 02→06, 02→01, 07→all) |
| Cycles in the import graph | 0 |
Avg imports per component (excluding 07_host) |
~2.2 |
Components imported by 07_host |
5 (all non-host) — expected for a composition root |
| Public-API contracts directory present | No (_docs/02_document/contracts/ does not exist; this project documents Public API inline in each component's description.md) |
Architecture Baseline State (entering cycle 2)
Source: _docs/02_document/architecture_compliance_baseline.md (4 findings F1–F4 at cycle-1 start).
| Finding | Severity | Cycle-1 outcome |
|---|---|---|
| F1 | (see baseline doc) | unchanged — carried into cycle 2 |
| F2 | (see baseline doc) | unchanged — carried into cycle 2 |
| F3 | (see baseline doc) | unchanged — carried into cycle 2 |
| F4 (Low Maintainability — empty scaffolding dirs) | Low | Partially resolved: Entities/ and DTOs/Requests/ removed via AZ-588 (batch 05). Infrastructure/ retained — now legitimately used by 07_host (Infrastructure/ConfigurationResolver.cs, Infrastructure/CorsConfigurationValidator.cs). Per the AZ-588 spec the third originally-empty dir was explicitly out of scope. |
Open Architecture Tickets
- AZ-587 (Epic) — Refactor 02-baseline-cleanup. Single child AZ-588 closed today; epic can close once cycle 2 verifies no regression.
Notes for Next Snapshot
- Re-run this snapshot at the end of every cycle.
- If
_docs/02_document/contracts/is added in a future cycle, record contract count + contracts-per-public-API ratio. - If F1–F3 from the architecture baseline are addressed in a future cycle, log the resolution in this file's "Architecture Baseline State" table.
- If the layout convention changes (e.g., one component is split into a
src/01_vehicle_catalog/subdirectory), flag it as a structural deviation in the next snapshot.