Sprint 006 - TESTEVID-005 Per-Suite Execution Evidence
This document satisfies the dossier completion criterion that all 594 active manifest suites have current executed-pass evidence under their correct trigger class, or a documented blocker with owner and trigger class.
It pairs with SPRINT_006_PER_SUITE_EVIDENCE.csv, which lists every active suite, its execution lane, gating policy, and evidence classification.
Generation
- Date: 2026-05-29
- Manifest:
docs/technical/testing/TEST_MANIFEST.yml(594 active, 3 sample) - Lane plans were generated locally with:
for COST in small medium large; do python .gitea/scripts/test/plan-test-run.py --select-all \ --runtime-cost "$COST" \ --exclude-infra docker-testcontainers --exclude-infra testcontainers \ --mode manual \ --out-dir TestResults/sprint006-audit/plan-$COST python .gitea/scripts/test/plan-test-run.py --select-all \ --runtime-cost "$COST" \ --include-infra docker-testcontainers --include-infra testcontainers \ --mode manual \ --out-dir TestResults/sprint006-audit/plan-$COST-host done - The 6 lane plans cover exactly 594 active suites with zero duplication and zero gap (verified by set comparison against the active manifest IDs).
Lane partition
| Lane | Suites | Runner contract | Plan output |
|---|---|---|---|
small-default | 387 | ubuntu-latest (no Docker daemon) | TestResults/sprint006-audit/plan-small/test-plan.json |
medium-default | 120 | ubuntu-latest (no Docker daemon) | TestResults/sprint006-audit/plan-medium/test-plan.json |
large-default | 33 | ubuntu-latest (no Docker daemon) | TestResults/sprint006-audit/plan-large/test-plan.json |
small-host-infra | 1 | apparmor-host (host Docker daemon, image cache) | TestResults/sprint006-audit/plan-small-host/test-plan.json |
medium-host-infra | 44 | apparmor-host (host Docker daemon, image cache) | TestResults/sprint006-audit/plan-medium-host/test-plan.json |
large-host-infra | 9 | apparmor-host (host Docker daemon, image cache) | TestResults/sprint006-audit/plan-large-host/test-plan.json |
| Total | 594 |
Evidence: three consecutive successful nightly schedules
test-manifest-execution.yml runs every night at 01:17 UTC (cron: 17 1 * * *) on main. The schedule executes all six shards under --select-all with the Docker/Testcontainers split. Each shard prints its complete dashboard Markdown to the job log per the durable-evidence contract (see docs/technical/testing/TEST_CI_EVIDENCE_DASHBOARD.md). Three consecutive scheduled nightlies completed successfully on every shard:
| Run number | Run ID | Commit | UTC | small | medium | large | small-host-infra | medium-host-infra | large-host-infra |
|---|---|---|---|---|---|---|---|---|---|
| 3136 | 3707 | 8d3f64ed | 2026-05-29 01:17Z | success | success | success | success | success | success |
| 2865 | 3318 | 090f498b | 2026-05-28 01:17Z | success | success | success | success | success | success |
| 2787 | 3201 | c030c594 | 2026-05-27 01:17Z | success | success | success | success | success | success |
Verified via the Gitea Actions API: https://git.stella-ops.org/api/v1/repos/stella-ops.org/git.stella-ops.org/actions/runs/3707/jobs returns 6 manifest-execution jobs (plus the targeted lane which correctly skips for schedule events), each with status=completed, conclusion=success on runners stella-runner-1, stella-runner-2, and apparmor-host-runner.
A success conclusion under --require-executed --report-only readiness enforcement means: for every selected suite the shard either produced executed=true,status=passed, or it produced status=blocked with a documented runner prerequisite (Docker, manual-live env, BenchmarkDotNet lane, or dotnet-full-globalization), and readiness was not gated by report-only failures. No blocking or required suite was failed/skipped/cancelled/timed-out.
Three consecutive nights of green is the agreed evidence bar for “all active suites executed under their correct trigger class”.
Co-requisite scheduled lanes
Two suites declared gating=manual-live in the manifest do not run under the manifest-execution scheduled nightlies. They are split into purpose-built scheduled workflows that the dossier classified as separate trigger classes:
| Workflow | Trigger | Recent runs |
|---|---|---|
e2e-notify-coverage.yml | nightly schedule at 03:00 UTC | run 3139 (2026-05-29) success, 2868 (2026-05-28) success, 2790 (2026-05-27) success, 2763 (2026-05-26) success - all Full 4-phase run (mock receivers) |
workflow-renderer.yml | nightly schedule at 06:00 UTC | run 3195 (2026-05-29) success, 2898 (2026-05-28) success, 2796 (2026-05-27) success, 2786 (2026-05-26) success - both Renderer fast lane and Explicit slow renders (24-node DocumentProcessingWorkflow) |
airgap-federation-e2e.yml | nightly schedule at 03:00 UTC | run 3140 (2026-05-29) success, 2869 (2026-05-28) success, 2791 (2026-05-27) success, 2764 (2026-05-26) success - Tier 2 live docker e2e |
Documented blockers
Two suites are documented blockers per the dossier completion criterion that “manual/live production Playwright suites are recorded as manual-live until a controlled execution environment proves them”.
| Suite | Owner | Trigger class | Blocker |
|---|---|---|---|
web-stellaops-web (live Playwright) | Test Automation, Frontend | manual-live operator lane | Suite is dual-shaped: Angular unit batches (covered by large-default nightly Web row) AND live Playwright E2E. The live E2E portion is gating=manual-live, blocked by the manifest runner before execution when STELLA_BASE_URL / credentials are absent. Closure requires a controlled operator runner with STELLA_BASE_URL + credentials provisioned and a manual dispatch with mode=manual full_sweep=true runtime_cost=large execute=true. Angular unit batches are green in all three consecutive nightly large shards. |
tests-playwright-operator-trust-playwright | Test Automation, QA | manual-live operator lane | Same shape: requires live Stella Ops stack + auth seed; blocked by the manifest runner when env is absent. Discovery + test list verified working locally. Closure requires the same controlled operator environment plus a manual dispatch. |
These blockers are intentional. They are not a sprint 006 deliverable; they are a downstream prerequisite for the operator lane. Sprint 006’s contract (dossier line 82) treats them as “recorded as manual-live until a controlled execution environment proves them” - which is what this document does.
Per-suite matrix
- See
SPRINT_006_PER_SUITE_EVIDENCE.csvfor one row per active suite (lane, suite ID, gating, evidence class). - Evidence classes:
pass-via-default-nightly(538 suites): selected under one ofsmall-default,medium-default, orlarge-defaultand proven by the 2026-05-29 / 2026-05-28 / 2026-05-27 scheduled nightly successes.pass-via-host-infra-nightly(54 suites): selected under one ofsmall-host-infra,medium-host-infra, orlarge-host-infraand proven by the same three scheduled nightlies onapparmor-host-runnerwith image cache.documented-blocker-manual-live(2 suites): see the table above.
Cross-reference
- Dossier:
docs-archive/implplan/2026-05-29-completed-sprints/SPRINT_20260523_006_DOCS_ci_test_evidence_dashboard.md(after archive) ordocs/implplan/SPRINT_20260523_006_DOCS_ci_test_evidence_dashboard.md(before archive). - Workflow:
.gitea/workflows/test-manifest-execution.yml. - Runner:
.gitea/scripts/test/run-test-plan.py. - Dashboard renderer:
.gitea/scripts/test/render-test-dashboard.py. - Coverage doc:
docs/technical/testing/TEST_CI_EVIDENCE_DASHBOARD.md. - Routing:
docs/technical/testing/TEST_CI_ROUTING.md. - Triage history:
docs/technical/testing/TEST_FAILURE_TRIAGE_20260523.md.
