Run Local Stack
Confirms the target repo can boot its local stack and respond to a healthcheck before Phase 3 authors tests.
When to Use
prompts/autorun.prompt.mdPhase 2, unless--skip-quickstartis passed.- Any plan-implementation flow that promises runnable contract tests.
Detection Order (first match wins)
- Devcontainer:
.devcontainer/devcontainer.jsonexists →devcontainer up --workspace-folder . - Docker Compose:
docker-compose.ymlordocker-compose.dev.ymlorcompose.ymlexists →docker compose -f <file> up -d - Makefile target
dev:make -n devexits 0 →make dev - Native: repo-level script such as
./scripts/dev.sh,./run.ps1,npm run dev,mvn spring-boot:run,dotnet run,fastapi dev. Pick the first one found; prefer ones documented inREADME.md.
Record the chosen strategy in trace.
Healthcheck
After the stack is up:
- Look for a healthcheck URL. Sources (in order):
autorun.config.json.quickstart.healthcheckUrl(future extension).README.mdgrep forlocalhost:\d+/(health|healthz|status|ping).- Default per taxonomy: REST →
http://localhost:8080/health; GraphQL → POSTquery{__typename}; event-driven → broker admin port.
- Curl with 30s timeout, 5 retries, 2s delay.
- Pass criterion: HTTP 200 or custom matcher configured in spec's quickstart.md.
On failure → emit gate quickstart-healthcheck-failed (category config, blocking).
Teardown
After Phase 7 (or on --abort), run the inverse:
- devcontainer: leave running (user owns it).
- docker compose:
docker compose downonly if autorun started it (track in trace). - make / native:
make dev-downif present, else leave running with a trace note.
Authz (CLI harness)
Both startup and teardown commands must match an entry in .github/autorun.allowlist under ids start-stack / stop-stack. Missing → gate authz-no-allowlist (exit 30).
Outputs
{strategy, healthcheckUrl, bootMs, healthcheckMs, containers?: string[]}.- One trace event per step (detect, start, healthcheck, teardown).
Failure Modes
| Condition | Gate id | Notes |
|---|---|---|
| No strategy detected | quickstart-unknown |
suggest adding devcontainer |
| Boot timed out (>5 min) | quickstart-boot-timeout |
|
| Healthcheck failed | quickstart-healthcheck-failed |
include last N log lines in evidence (redacted) |
| Port already in use | quickstart-port-collision |
suggest docker compose down then retry |
Verification
- Golden Java repo:
docker compose up -d+ curl health endpoint in CI smoke matrix. - Golden .NET repo: same.
- Negative test: stop the DB container, verify
quickstart-healthcheck-failedfires with redacted log excerpt in gateevidence.
Source: vndkubi/bootstrap-toolkits — distributed by TomeVault.