| name | workflow-environment-ready |
| description | Prove the working environment is actually runnable before starting a long or autonomous task, so a multi-hour run does not fail at the finish line on a missing tool, dependency, service, or credential. Detect the stack, verify runtimes and package installs, confirm required services and env vars are reachable (without printing secrets), and confirm the real verification commands execute. Use when "set up the environment", "is this ready to run", "before we start the big task", "preflight the repo", "why won't the tests run", or at the start of any burndown / complete-everything / long agent run. |
| license | MIT |
workflow-environment-ready — Preflight the Working Environment
Long autonomous runs fail most expensively at the end — the work is done, then
the build won't run, a service is down, or a key is missing. This skill front-
loads that risk: prove the environment can build, test, and reach its
dependencies before implementation starts.
Verify the environment can run the task, don't assume it. Every check is
an executed command with observed output, not an inference from a config file.
Phase 0 — Detect the stack and requirements
Read, don't guess:
- Runtimes/managers:
package.json (engines, packageManager),
.nvmrc, .tool-versions, pyproject.toml/requirements.txt, go.mod,
Gemfile, Cargo.toml.
- Verification commands: scripts in
package.json/Makefile/justfile,
CI workflows, AGENTS.md/CLAUDE.md, README.
- Services:
docker-compose.yml, supabase/config.toml, DB URLs, Redis,
queues, external APIs.
- Config contract:
.env.example / .env.sample — the list of required
variables (names only).
Produce a requirements checklist before running anything.
Phase 1 — Verify toolchain and dependencies
- Confirm each required runtime is present at the required version
(
node -v, python --version, etc.). A mismatch is a blocker to surface
now, not at hour three.
- Confirm dependencies are installed and consistent with the lockfile
(
npm ci / pnpm install --frozen-lockfile / pip install -r / etc.).
Prefer the reproducible/frozen install. Report, don't hide, install errors.
- Confirm the package manager matches the repo (
packageManager field / lock
file) — do not switch managers.
Phase 2 — Verify services and configuration
- For each required service, confirm reachability with a real check (DB
connect/ping,
supabase status, an HTTP health request, container up).
A required service that is down is a blocker with a precise remedy.
- Confirm every variable in
.env.example is present in the environment.
Report only presence/absence — never print, log, or echo secret values.
Per project rules, .env* may be read to understand config but never
transmitted.
- Note any variable that is present but obviously placeholder (
YOUR_*,
empty) so it fails now rather than mid-run.
Phase 3 — Prove the verification commands execute
Run the cheapest form of each gate to confirm it actually starts and the
harness is wired — not to make it fully green (that is workflow-green-repo):
- typecheck: does it run and resolve config? (compile errors are fine to note)
- lint: does the linter start and find the config?
- tests: does the runner discover and start the suite? Run a fast subset.
- build/dev server: does it boot far enough to prove the pipeline works?
Distinguish "the command cannot run" (environment blocker) from "the command
runs and reports code issues" (normal work for the task ahead).
Phase 4 — Readiness report
## Environment Readiness — <repo> — <date>
### Verdict: READY | READY WITH NOTES | BLOCKED
### Toolchain
- <runtime>: required <x>, found <y> — ok/mismatch
- dependencies: <install command> → ok/failed
### Services
- <service>: reachable? <how checked> → ok/down
### Configuration
- env vars: <n>/<n> present (names only) — missing: <names or none>
### Verification commands
- typecheck/lint/test/build: runs? <yes/no + note>
### Blockers (must resolve before the long run)
- none | <blocker + one precise ask/remedy>
Only declare READY when the toolchain installs, required services are
reachable, all config names are present, and each gate command executes. A
missing credential, unreachable service, or absent tool is a genuine blocker —
ask one precise question immediately rather than starting a run that will fail.
Related
workflow-green-repo — after the environment runs, make every gate pass
complete-everything / burndown-full — run this first for long closures
workflow-onboard — orient to an unfamiliar codebase
debug-error — diagnose a command that cannot start