mirror of
https://github.com/azaion/missions.git
synced 2026-06-21 21:21: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>
54 lines
3.8 KiB
Markdown
54 lines
3.8 KiB
Markdown
# 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.
|