[AZ-1133] Cycle 16 closeout — traceability, retro, state
ci/woodpecker/push/02-build-push/2 Pipeline is pending
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push/1 Pipeline was successful

Test-spec sync, doc ripple, retrospective; autodev advances to cycle 17.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-06-26 18:00:47 +03:00
parent 67530eb169
commit 56c15611ce
6 changed files with 89 additions and 10 deletions
+19
View File
@@ -0,0 +1,19 @@
# Ripple Log — Cycle 16
**Task**: AZ-1133 (perf gate preflight)
**Date**: 2026-06-26
## Files updated (Step 13)
| File | Change |
|------|--------|
| `scripts/run-performance-tests.sh` | Added `preflight_api_reachable` (implementation) |
| `_docs/02_document/tests/environment.md` | Preflight + exit 7 in Performance tests section |
| `_docs/02_document/deployment/containerization.md` | Preflight cross-link under perf overlay |
| `_docs/02_document/tests/performance-tests.md` | New § Preflight before PT-01 |
| `_docs/02_document/tests/traceability-matrix.md` | AZ-1133 AC-1..AC-4 rows + cycle 16 summary |
## Skipped ripples
- No module-layout / architecture / contract version bumps (tooling-only)
- No OpenAPI / blackbox scenario additions (harness preflight only)
@@ -1,5 +1,13 @@
# Performance Test Scenarios
## Preflight: API reachability (before PT-01)
**Trigger**: `scripts/run-performance-tests.sh` after JWT mint, before PT-01
**Load**: 1 authenticated GET `/api/satellite/tiles/latlon` probe (same `CURL_OPTS` / TLS trust as scenarios)
**Expected**: API at `$API_URL` accepts TCP/TLS connection
**Pass criterion**: curl completes (any HTTP status including 4xx counts as reachable); script continues to PT-01
**Fail criterion**: connection refused / timeout / TLS handshake failure → script prints `docker compose -f docker-compose.yml -f docker-compose.perf.yml up -d --build` and exits **7** (PT-01 does not run)
## PT-01: Single Tile Download Latency
**Trigger**: GET /api/satellite/tiles/latlon (uncached tile)
+11 -1
View File
@@ -227,7 +227,8 @@
| Cycle 13 — AZ-1126 capturedAt DateTimeOffset (integration + unit + blackbox + contract patch) | 1 integration method (`UavUploadValidationTests.ItemCapturedAtOffsetLess_Returns400`) + 4 unit files (`UtcOffsetRequiredDateTimeOffsetConverterTests`, updated UAV validator/gate/handler tests) + 1 blackbox (BT-34 with 2 sub-cases) + `uav-tile-upload.md` v1.2.1 patch | 4/4 in-scope (AZ-1126 AC-1..AC-4); 1 doc-verified at Step 13 (AC-4); closes F-AZ810-2 | — |
| Cycle 14 — AZ-1131 environment.md integration command (doc-only) | doc-only (`environment.md`, `README.md`, `AGENTS.md` integration-test orchestration) | 3/3 in-scope (AZ-1131 AC-1..AC-3); doc-verified at Step 13; smoke regression Step 11 | — |
| Cycle 15 — AZ-1132 FluentValidation bump (dependency + security) | structural (`SatelliteProvider.Api.csproj` pins) + validator unit regression (`SatelliteProvider.Tests/Validators/*`) + validation integration regression (inventory, region, route, upload, latlon) + security scan artifacts | 5/5 in-scope (AZ-1132 AC-1..AC-5); AC-5 in `_docs/05_security/` cycle-15 artifacts; full suite Step 11 | — |
| **Total** | **174** | **142/142 in-scope (100%); 3 ACs gated at Step 15 (2 AZ-504 + 1 AZ-1124 AC-3); 14 prior-cycle ACs doc-verified at Step 13 (2 cycle-7 + 8 cycle-8 + 1 AZ-1124 AC-5 + 3 AZ-1131); 2 advisory non-tested (cycle-8 AZ-809 AC-9/AC-10)** | **8/8 (100%)** |
| Cycle 16 — AZ-1133 perf gate preflight (shell harness + docs) | 1 perf preflight probe (`scripts/run-performance-tests.sh` `preflight_api_reachable`) + doc updates (`environment.md`, `containerization.md`, `performance-tests.md` § Preflight) | 4/4 in-scope (AZ-1133 AC-1..AC-4); AC-2 via isolated curl probe; AC-4 doc-verified at Step 13; Step 11 full suite regression | — |
| **Total** | **178** | **146/146 in-scope (100%); 3 ACs gated at Step 15 (2 AZ-504 + 1 AZ-1124 AC-3); 15 prior-cycle ACs doc-verified at Step 13 (2 cycle-7 + 8 cycle-8 + 1 AZ-1124 AC-5 + 3 AZ-1131 + 1 AZ-1133 AC-4); 2 advisory non-tested (cycle-8 AZ-809 AC-9/AC-10)** | **8/8 (100%)** |
**Coverage shape notes (Cycle 5 — AZ-503 foundation):**
- AZ-503 was split mid-cycle (Option C, autodev Step 10 batch 2): 7 of 12 original ACs land here; 5 (AC-5, AC-6, AC-9, AC-10, AC-12) are deferred to AZ-505 with a `Blocks` link in Jira and an entry in `_docs/02_tasks/_dependencies_table.md`. The deferred rows above are marked `◐ deferred → AZ-505` so the matrix surfaces the scope boundary explicitly.
@@ -305,6 +306,15 @@
| AZ-1132 AC-3 | Validation integration tests pass unchanged | Inventory, region, route, upload, latlon validation integration suites at Step 11 full `./scripts/run-tests.sh` (457 unit + integration) | ✓ |
| AZ-1132 AC-4 | Production FluentValidation absent from vulnerable-package scan | `dotnet list SatelliteProvider.sln package --vulnerable` (batch closure); `dependency_scan_cycle15.md` | ✓ |
| AZ-1132 AC-5 | Security finding D-AZ795-1 resolved | `_docs/05_security/dependency_scan_cycle15.md` + `security_report_cycle15.md` — Resolved, references AZ-1132 | ✓ |
| AZ-1133 AC-1 | Preflight runs after JWT mint, before PT-01 | Structural: `preflight_api_reachable` call in `scripts/run-performance-tests.sh` before PT-01 banner | ✓ |
| AZ-1133 AC-2 | Unreachable API exits 7 with compose-up instructions | Isolated curl probe to unreachable port → `curl_exit=7`; script prints perf overlay `docker compose … up` and `exit 7` | ✓ |
| AZ-1133 AC-3 | Reachable API proceeds to PT-01 unchanged | Preflight treats any HTTP response as reachable; PT-01..PT-10 logic unchanged after probe | ✓ |
| AZ-1133 AC-4 | Docs mention preflight + exit 7 | doc-state AC; verified at Step 13 (`environment.md`, `containerization.md`, `performance-tests.md` § Preflight) | ✓ |
**Coverage shape notes (Cycle 16 — AZ-1133 perf gate preflight):**
- Shell-harness-only change — no production code, wire contracts, or PT-01..PT-10 thresholds. Closes cycle 13/14/15 retro carry-over (Step 15 first-run exit when perf stack not up).
- AC-2 verified by isolated curl probe (same TLS/`CURL_OPTS` path as script); full-script blackbox requires perf stack for AC-3 happy path at Step 15 if perf gate runs.
- Reliability NFR (same TLS trust as PT-01) covered structurally by shared `CURL_OPTS` in `preflight_api_reachable`.
**Coverage shape notes (Cycle 15 — AZ-1132 FluentValidation bump):**
- Dependency-only patch bump (12.0.0 → 12.1.1) — no new HTTP routes, wire contracts, validation rules, or perf/security harness scenarios. Closes the last open Low production dependency carry-over from the AZ-795 epic footprint (D-AZ795-1).