Files
clean-architecture-backend-…/docs/superpowers/plans/evidence/2026-08-15-wave6-final/task2-b5-ghost-release-lanes.md
T

60 lines
2.5 KiB
Markdown

# Task 2 — Wave 2 Task B5, the three ghost release lanes
Wave 2 offered two outcomes for `mongoShardedTest`, `mongoAtlasTest` and `mongoKmsTest`: implement
them, or demote them and stop describing an unrunnable gate. **(b) Demote was taken**, and it is
reflected in all three places the plan names.
## `src/config/mongodb/release-contracts.json`
All three moved out of the Stable blocking set into `experimental_contracts`, each carrying
`"blocking": false`, `"promotion": "experimental"` and a `not_promoted_reason` that states the
mechanism rather than an intention:
> A manifest entry pointing at an unregistered task does not fail; it is simply never run, and the
> release reports green for a capability nobody qualified. Demoted rather than implemented so the
> green means what it says.
That is the correct reading. A release manifest naming a task that no build file registers is not a
failing gate — it is an absent one, and absence is indistinguishable from success in a report that
counts failures.
## `docs/mongodb/advanced/sharding.md`
The gate row now reads:
> **Not promoted.** No `mongoShardedTest` lane is registered, and a sharded cluster is not an
> environment this repository stands up. Listed under `experimental_contracts` in
> `src/config/mongodb/release-contracts.json`; promoting it needs the lane, its required class, and
> protected-environment evidence to exist first.
## `scripts/verify-mongodb-advanced.sh`
Setting `MONGODB_SHARDED_URI` is now an explicit error rather than an invocation of a task that does
not exist:
```
sharded topology is experimental and has no registered lane;
MONGODB_SHARDED_URI was set but mongoShardedTest does not exist.
See experimental_contracts in src/config/mongodb/release-contracts.json.
```
The distinction the script draws is worth keeping: an operator who exported the URI expected a
qualification to run, so silence would be worse than failure. With the URI unset it records missing
evidence instead, which is a different statement from a pass.
## The arbiter
```bash
cd src
./gradlew :app-bootstrap:test --tests '*ReleaseManifestTaskExistenceTest' --console=plain
```
`BUILD SUCCESSFUL` — 1 test, 0 failures, 0 skipped. The manifest names no blocking task that the
build does not register.
## Registered Mongo lanes, for the record
`mongoStableContractTest`, `mongoReplicaSetTest`, `mongoFailoverTest`, `mongoMigrationTest`,
`mongoCompatibilityTest`, `mongoSecurityIntegrationTest`, `mongoPerformanceTest` — seven, and none of
the three demoted names among them, which is the state the demotion describes.