Context
Parent epic #10945 calls out that deployment-pipeline integration coverage must be meaningful, not just present. During the #10945 sweep, .github/workflows/test.yml and current integration specs were identified as needing explicit skip-gate cleanup: stale or broad CI skips can make the integration row look healthier than it is.
Duplicate sweep before filing:
gh issue list --search "NEO_TEST_SKIP_CI integration" found #10945 and adjacent unit-lane #10924 only.
- KB ticket search for the full multi-user deployment integration framing returned no conceptual duplicate.
- This ticket is scoped to integration CI gates, not Bucket G unit-test cleanup.
The Problem
Integration tests are only useful if CI actually runs the important assertions. Broad NEO_TEST_SKIP_CI behavior or stale skip guards referencing closed tickets can silently turn deployment checks back into shallow smoke coverage.
The current #10945 body notes HeartbeatPropagation.integration.spec.mjs still had a CI skip tied to a closed ticket lineage. That class of drift needs an actionable cleanup lane.
The Architectural Reality
Relevant surfaces:
.github/workflows/test.yml for CI environment variables and integration row behavior.
test/playwright/playwright.config.integration.mjs for integration runner behavior.
test/playwright/integration/*.spec.mjs for per-spec skip guards.
test/playwright/integration/fixtures/composeWebServer.mjs for readiness/log output when Docker stack fails.
- #10897/#10915/#10917/#10918 as current integration CI lineage.
The Fix
Audit the integration suite for skip guards and weak assertions, then remove stale skips or link them to live blockers. Improve failure artifacts/log capture where useful so future agents can diagnose failed integration rows without blind reruns.
This is deliberately separate from adding new OIDC/topology/team/private tests; it keeps the existing integration row honest while those larger lanes progress.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
| Integration CI skip gates |
#10945, workflow config |
No stale skip remains tied to closed work |
If a skip remains, it links to an open issue and states exact blocker |
Test docs or spec comments |
CI/local integration run shows intended tests execute |
| Integration assertions |
Current integration specs |
Assertions check behavior, not just health/liveness where product risk is higher |
Heartbeat-only assertions stay only where liveness is the explicit contract |
Spec names/comments |
Failing regression would fail a named assertion |
| Failure artifacts |
Prior CI debugging friction |
Docker/log output is available enough for triage |
Keep minimal if current runner already captures enough |
Workflow docs if touched |
PR evidence includes failure/log capture check |
Acceptance Criteria
Out of Scope
- Writing the new OIDC/backup/topology/team-private tests from sibling #10945 subissues.
- Changing unit-test Bucket G skip behavior.
- Making slow diagnostic topology modes mandatory in default CI without maintainer agreement.
Related
Parent: #10945
Adjacent: #10897, #10915, #10917, #10918, #10924
Origin Session ID: c02fbf4e-870c-44c0-ba7e-e9ffacce094b
Retrieval Hint: query_raw_memories(query="Memory Core integration CI skip gates NEO_TEST_SKIP_CI deployment pipeline")
Context
Parent epic #10945 calls out that deployment-pipeline integration coverage must be meaningful, not just present. During the #10945 sweep,
.github/workflows/test.ymland current integration specs were identified as needing explicit skip-gate cleanup: stale or broad CI skips can make the integration row look healthier than it is.Duplicate sweep before filing:
gh issue list --search "NEO_TEST_SKIP_CI integration"found #10945 and adjacent unit-lane #10924 only.The Problem
Integration tests are only useful if CI actually runs the important assertions. Broad
NEO_TEST_SKIP_CIbehavior or stale skip guards referencing closed tickets can silently turn deployment checks back into shallow smoke coverage.The current #10945 body notes
HeartbeatPropagation.integration.spec.mjsstill had a CI skip tied to a closed ticket lineage. That class of drift needs an actionable cleanup lane.The Architectural Reality
Relevant surfaces:
.github/workflows/test.ymlfor CI environment variables and integration row behavior.test/playwright/playwright.config.integration.mjsfor integration runner behavior.test/playwright/integration/*.spec.mjsfor per-spec skip guards.test/playwright/integration/fixtures/composeWebServer.mjsfor readiness/log output when Docker stack fails.The Fix
Audit the integration suite for skip guards and weak assertions, then remove stale skips or link them to live blockers. Improve failure artifacts/log capture where useful so future agents can diagnose failed integration rows without blind reruns.
This is deliberately separate from adding new OIDC/topology/team/private tests; it keeps the existing integration row honest while those larger lanes progress.
Contract Ledger Matrix
Acceptance Criteria
test/playwright/integration/**skip guards and.github/workflows/test.ymlintegration env settings.NEO_TEST_SKIP_CI.Out of Scope
Related
Parent: #10945 Adjacent: #10897, #10915, #10917, #10918, #10924
Origin Session ID: c02fbf4e-870c-44c0-ba7e-e9ffacce094b
Retrieval Hint:
query_raw_memories(query="Memory Core integration CI skip gates NEO_TEST_SKIP_CI deployment pipeline")