Skip to content

docs(lt-dev): replace the unpassable check:envs acceptance with the env contract test - #11

Draft
DKoenig9 wants to merge 1 commit into
mainfrom
docs/check-envs-acceptance
Draft

DKoenig9 wants to merge 1 commit into
mainfrom
docs/check-envs-acceptance

Conversation

@DKoenig9

Copy link
Copy Markdown
Contributor

Why

fullstack-updater and modernizing-toolchain required <pm> run check:envs to print "All env configurations OK." as a done signal. That could never happen: scripts/check-envs.sh in nest-server-starter was broken on every machine.

Measured in nest-server-starter at c3912e8:

  • scripts/check-envs.sh:137 waited for Server startet at, but src/main.ts:140 logs Server started at (the typo came in with 00bf0d8). All nine boot cases hit the 60s timeout.
  • scripts/check-envs.sh:16 copied tests/fixtures/.env.deployed-test, which .gitignore:82 (.env.*) kept out of every clone, so Phase 2 aborted under set -e.
  • Neither scripts/check.mjs nor .github/workflows/test.yml runs check:envs, so nothing ever caught this.

nest-server-starter #57 (merged as e66263c) removed the script and moved the check into src/config.env.spec.ts, so it now runs in every pnpm test.

What changes

  • Acceptance (fullstack-updater success criteria, modernizing-toolchain done signals): src/config.env.spec.ts covers every entry of REQUIRED_DEPLOYED_ENV_VARS and passes in <pm> test.
  • Migration checklist Phase 8 now describes that contract test instead of check-envs.sh plus a fixture. It keeps a dated incident note so the script does not get reintroduced.
  • check:envs entries are removed from the Phase 5 script blocks. The check:envs job is removed from the Phase 10 GitLab CI recipe, and check-envs.sh is removed from the upstream file list in checking-upstream-first.

Checked

  • claude plugin validate plugins/lt-dev passes, scripts/scan-secrets.sh is clean, and check-cross-references.ts reports 0 broken references.
  • Swept every run <script> name and every scripts/* path in plugins/lt-dev against the local clones of both starters, lt-monorepo and the CLI. No other dead targets turned up.

Not checked / not changed

  • The sweep only covers references that name a script or a CI job. Criteria written as plain prose were not audited.
  • The Phase 5 check chain in the migration checklist still shows the old inline chain, while the starter now uses node scripts/check.mjs. That is drift, not an unpassable criterion, so it is left for a separate change.
  • No version bump. The release is up to the maintainer.

🤖 Generated with Claude Code

…nv contract test

check-envs.sh in nest-server-starter could never pass: it waited for
"Server startet at" while the app logs "Server started at", and its
Phase 2 copied tests/fixtures/.env.deployed-test, which .gitignore keeps
out of every clone. fullstack-updater and modernizing-toolchain still
required its "All env configurations OK." as a done signal, and the
migration checklist prescribed a CI job around it.

Acceptance is now src/config.env.spec.ts covering REQUIRED_DEPLOYED_ENV_VARS
and passing in `<pm> test`, matching nest-server-starter PR #57. Phase 8
describes that test and tells projects to delete a legacy check-envs.sh.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant