Files
ui/_docs/06_metrics/structure_2026-05-12.md
Oleksandr Bezdieniezhnykh d7fff1374c
ci/woodpecker/push/build-arm Pipeline was successful
Update autodev state and lessons documentation
- Changed current step from 16 (Deploy) to 9 (New Task) and updated cycle from 1 to 2 in _docs/_autodev_state.md.
- Closed Cycle 1 (Phase B) and noted that Steps 14, 15, and 16 were skipped due to no changes in auth, wire, or performance surfaces.
- Added new lessons to _docs/LESSONS.md, including insights on architecture gates and handling state discrepancies during session resumes, sourced from recent retrospectives.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 01:07:48 +03:00

65 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Structural Snapshot — 2026-05-12 (Phase B Cycle 1 close)
**Cycle**: Phase B, cycle 1 (`state.cycle = 1`)
**Source-of-truth files**: `_docs/02_document/module-layout.md`, `_docs/02_document/architecture_compliance_baseline.md`, `scripts/check-arch-imports.mjs`, `scripts/run-tests.sh`.
## Component Inventory
| Metric | Value | Notes |
|--------|-------|-------|
| Component count | 12 | `00_foundation`, `01_api-transport`, `02_auth`, `03_shared-ui`, `04_login`, `05_flights`, `06_annotations`, `07_dataset`, `08_admin`, `09_settings`, `10_app-shell`, `11_class-colors` |
| Components with Public API barrels | 11 | Every component except `10_app-shell` (intentionally barrel-less; collection of root files like `App.tsx`, `main.tsx`) |
| Barrel coverage of barrel-eligible components | 11 / 11 = 100 % | F4 closed by AZ-485 (commit `23746ec`) |
| Documented feature→feature edges | 1 | F2 grandfathered: `07_dataset → 06_annotations` for `CanvasEditor`, routed through the `06_annotations` barrel (STC-ARCH-01 compliant) |
| Documented F3-pending exemption | 1 | `src/features/annotations/classColors` direct path — exempted by `STC-ARCH-01` until F3 lands; tracked in 5 places (barrel, consumer, script regex, layout doc, test) |
| Cycles in component import graph | 0 | Verified by `STC-T1` (`tsc --noEmit`) + `STC-B1` (`vite build`) — both green |
## Architecture Gates (cycle close)
| Gate | Added in | Enforces | Status |
|------|----------|----------|--------|
| `STC-ARCH-01` | Batch 09 / AZ-485 / Phase B cycle 1 | No cross-component deep imports; barrels are the Public API | PASS |
| `STC-ARCH-02` | Batch 10 / AZ-486 / Phase B cycle 1 | No hardcoded `/api/<service>/...` literals in production source | PASS |
Total commit-time static gates: **31** (29 at start of Phase B cycle 1; +2 this cycle).
## Architecture Baseline Delta vs `architecture_compliance_baseline.md`
| Finding | Category | Baseline status | After cycle 1 |
|---------|----------|-----------------|---------------|
| F1 — mission-planner vs flights duplication | Architecture | Open | Open (out of cycle scope) |
| F2 — cross-feature edge `07_dataset → 06_annotations` | Architecture | Open | Open (grandfathered; routed through barrel post-AZ-485) |
| F3 — classColors physical/logical owner split | Architecture | Open | Open (exemption holds; deferred) |
| **F4 — No Public API barrels** | Architecture | Open | **RESOLVED (AZ-485, STC-ARCH-01)** |
| F5 — Pre-existing cycle inside `mission-planner` | Architecture | Open | Open (port-source, out of scope) |
| F6 — No `src/shared/` | Architecture | Open | Open (deferred; AZ-486 builds the relocation-friendly barrel pattern that makes F6 trivial later) |
| **F7 — Hardcoded `/api/<service>/` literals** | Architecture | Open | **RESOLVED (AZ-486, STC-ARCH-02)** |
| F8 — Layering-table inconsistency | Architecture | Open | Open (doc-only fix; deferred) |
| F9 — Inert second Vite entry tree | Architecture | Open | Open (port-source, out of scope) |
- **Resolved this cycle**: 2 (F4, F7)
- **Newly introduced**: 0
- **Net delta**: 2 (improvement)
## Contract Coverage
- `_docs/02_document/contracts/` does NOT exist in this project. The project uses the **"code-derived documentation" pattern**: `src/api/endpoints.test.ts` (36 assertions, AZ-486) IS the wire-contract document for every `/api/<service>/` path. Computed coverage % is not applicable.
- Wire-contract surface: 25 endpoint builders × multi-arity inputs = 36 pinned URL assertions in fast suite.
## Test Suite Snapshot
| Profile | Files | Count | Wall-clock |
|---------|-------|-------|------------|
| Fast | 28 | 209 PASS / 13 SKIP / 0 FAIL | ~22.6 s |
| Static | — | 31 / 31 PASS | ~14 s |
| e2e | — | env-blocked (registry-access; same condition as Step 7) | n/a |
## Sources
- `_docs/03_implementation/batch_09_report.md` (AZ-485, batch 1 of 2)
- `_docs/03_implementation/batch_10_report.md` (AZ-486, batch 2 of 2)
- `_docs/03_implementation/implementation_report_refactor_phase_b_cycle1.md`
- `_docs/03_implementation/test_run_report_phase_b_cycle1.md`
- `_docs/02_document/module-layout.md`
- `_docs/02_document/architecture_compliance_baseline.md`