# Dependencies Table **Date**: 2026-05-15 **Mode**: tests-only decomposition (Step 5 of `existing-code` autodev flow) **Epic**: AZ-575 — Blackbox Tests — Missions **Total Tasks**: 11 **Total Complexity Points**: 45 (5 + 5 + 5 + 5 + 3 + 5 + 5 + 3 + 5 + 3 + 3) | Task | Name | Complexity | Dependencies | Epic | |------|------|-----------|-------------|------| | AZ-576 | test_infrastructure | 5 | None | AZ-575 | | AZ-577 | test_vehicles_positive | 5 | AZ-576 | AZ-575 | | AZ-578 | test_missions_positive | 5 | AZ-576 | AZ-575 | | AZ-579 | test_waypoints_health_positive | 5 | AZ-576 | AZ-575 | | AZ-580 | test_validation_authz_negative | 3 | AZ-576 | AZ-575 | | AZ-581 | test_security_auth_claims | 5 | AZ-576 | AZ-575 | | AZ-582 | test_security_alg_rotation_cors | 5 | AZ-576 | AZ-575 | | AZ-583 | test_resilience_cascade_migrator | 3 | AZ-576 | AZ-575 | | AZ-584 | test_resilience_config_db_rotation_race | 5 | AZ-576 | AZ-575 | | AZ-585 | test_resource_limits | 3 | AZ-576 | AZ-575 | | AZ-586 | test_performance | 3 | AZ-576 | AZ-575 | ## Coverage Verification | Spec file | Scenarios | Covered by | |-----------|-----------|------------| | `tests/blackbox-tests.md` § Positive | FT-P-01..06 (Vehicles) | AZ-577 | | `tests/blackbox-tests.md` § Positive | FT-P-07..12 (Missions) | AZ-578 | | `tests/blackbox-tests.md` § Positive | FT-P-13..18 (Waypoints + Health) | AZ-579 | | `tests/blackbox-tests.md` § Negative | FT-N-01..08 | AZ-580 | | `tests/security-tests.md` | NFT-SEC-01..06 + 04b | AZ-581 | | `tests/security-tests.md` | NFT-SEC-07..13 | AZ-582 | | `tests/resilience-tests.md` | NFT-RES-01..04 | AZ-583 | | `tests/resilience-tests.md` | NFT-RES-05..08 | AZ-584 | | `tests/resource-limit-tests.md` | NFT-RES-LIM-01..04 | AZ-585 | | `tests/performance-tests.md` | NFT-PERF-01..04 | AZ-586 | **Total scenarios covered**: 56 (18 FT-P + 8 FT-N + 14 NFT-SEC + 8 NFT-RES + 4 NFT-RES-LIM + 4 NFT-PERF). ## Cross-Task Consistency Checks | Check | Result | |-------|--------| | Every scenario from `blackbox-tests.md` § Positive (FT-P-01..18) is covered | PASS | | Every scenario from `blackbox-tests.md` § Negative (FT-N-01..08) is covered | PASS | | Every scenario from `security-tests.md` (NFT-SEC-01..13 + 04b) is covered | PASS | | Every scenario from `resilience-tests.md` (NFT-RES-01..08) is covered | PASS | | Every scenario from `resource-limit-tests.md` (NFT-RES-LIM-01..04) is covered | PASS | | Every scenario from `performance-tests.md` (NFT-PERF-01..04) is covered | PASS | | No task exceeds 5 complexity points | PASS | | Every blackbox test task depends on the test-infrastructure task (AZ-576) | PASS | | Test-infrastructure task (AZ-576) has no upstream test dependencies | PASS | | No circular dependencies in the task graph | PASS — graph is a fan-out: AZ-576 → {AZ-577..AZ-586} | | Every e2e/blackbox task has a System Under Test Boundary section | PASS — all 10 child tasks include the section | | System Under Test Boundary forbids stubbing internal product modules | PASS — verified in each task spec | | System Under Test Boundary requires comparison to expected-results artifacts | PASS — every task references `_docs/00_problem/input_data/expected_results/results_report.md` and/or the relevant machine-readable expected-result JSON | ## Overlap & Shared-Concern Notes - **NFT-SEC-08 (Task 15) ↔ FT-N-08 (Task 13)** both exercise the 500 error envelope. FT-N-08 owns the destructive `DROP TABLE vehicles` fault injection and asserts redaction + log line presence; NFT-SEC-08 additionally asserts the body has NO key matching `stack`/`stackTrace`/`exception`/`inner`/`trace`/file-path/type-name. No work duplication — the two tests share the fixture but assert distinct invariants. - **NFT-SEC-11 (Task 15) ↔ NFT-RES-07 (Task 17)** both exercise JWKS rotation. NFT-SEC-11 focuses on the `kid`-cache mechanics + grace-window timing; NFT-RES-07 additionally asserts the `docker inspect StartedAt` invariant (no restart). Sharing the same primitive via the `JwksRotateFixture` from AZ-576. - **NFT-SEC-12 (Task 15) ↔ NFT-RES-05 (Task 17)** both exercise startup fail-fast on missing required env vars. NFT-SEC-12 covers 4 missing-env cases + HTTP-JWKS-URL path. NFT-RES-05 covers the same 4 missing-env cases + an additional whitespace-only case + the DB-down-after-config-resolution differentiator (proves config resolution succeeded before Npgsql failed). Tasks share the `MissionsContainerHelper` docker-run primitive from AZ-576. ## Execution Order Hint Recommended dependency-aware batches for `/implement`: 1. **Batch 1 (sequential, blocking the rest)**: AZ-576 — test_infrastructure 2. **Batch 2 (parallel, fan-out from AZ-576)**: AZ-577..AZ-586 in any order. Independent test classes within a single xUnit assembly; no inter-task ordering needed. CSV report sorting at suite end: by `Category` (Blackbox / Sec / Res / ResLim / Perf), then by test ID within category. --- ## Refactor: `02-baseline-cleanup` (2026-05-16) **Run**: `_docs/04_refactoring/02-baseline-cleanup/` (quick-assessment, phases 0–2) **Epic**: AZ-587 — Refactor 02-baseline-cleanup: remove residual empty scaffolding dirs **Total Tasks**: 1 **Total Complexity Points**: 1 | Task | Name | Complexity | Dependencies | Epic | |------|------|-----------|-------------|------| | AZ-588 | refactor_remove_empty_scaffolding_dirs | 1 | None | AZ-587 | ### Cross-Task Consistency Checks | Check | Result | |-------|--------| | Every change in `02-baseline-cleanup/list-of-changes.md` has a corresponding task | PASS — C01 → AZ-588 | | No task exceeds 5 complexity points | PASS | | No circular dependencies | PASS — single task, no dependencies | | All tasks linked to the run's epic | PASS — AZ-588 → AZ-587 |