Foundation: validate template/ against scaffold.md §13 checklist #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #14. The template/ scaffold is locally complete (commit
ef90202) but no part of it has been executed end-to-end — the standards-repo devcontainer is Python-only and cannot run pnpm/uv/docker. This issue tracks the §13 verification gate.Validate where
Run validation in the template's own polyglot devcontainer, NOT in this standards-repo devcontainer. Two equivalent paths:
ai-development-stack-templaterepo on the forge → clone fresh → "Reopen in container" → VS Code builds template/.devcontainer/ → run the checklist below. Also exercises the "Use this template" flow end-to-end./path/to/ai-development-stack/template/as a separate VS Code workspace from the host (not from inside the standards-repo devcontainer) → VS Code finds template/.devcontainer/ → run the checklist below. Skips the forge round-trip.(c) is explicitly NOT to make the standards-repo devcontainer polyglot — keep that one Python-only; the standards repo is a meta-repo, the template owns its own runtime.
scaffold.md §13 checklist (the actual gate)
Run these in order, in a clean checkout:
pnpm installfrom a fresh clone succeeds (resolves all pinned versions)docker compose -f .devcontainer/docker-compose.yml up -d postgresandpnpm db:migrate(oruv run alembic upgrade head) succeedspnpm devboots both apps; web reaches api at/healthpnpm typecheckandpnpm testpass with zero warningsbootstrap.shruns cleanly with each forge choice (tea / gh / glab / none) and each lane (typescript / python)bootstrap.shwrites a sensible AGENTS.md "Forge" block per choicePinning verification (resolves cleanly against real registries)
drizzle-orm@1.0.0-beta.22anddrizzle-kit@1.0.0-beta.22resolve on npmbetter-auth@1.1.5resolves on npm@opentelemetry/*versions in apps/web and apps/api-typescript-template resolve compatiblytea 0.14.0,glab 1.49.0download URLs in .devcontainer/Dockerfile still work (these will rot)https://astral.sh/uv/install.shstill works@hey-api/openapi-ts@0.64.0resolves on npmuv syncKnown small fixes to apply during validation
apps/api-python-template/src/api/auth/router.pyhas a... if False else Noneplaceholder that won't passruffcleanly — replace with a comment blockapps/api-python-template/alembic.inipost_write_hooks = ruffrequiresuvon PATH at migration-author time — confirm this is reliably true inside the polyglot devcontainerrouteTree.gen.tsis gitignored; firstpnpm typecheckfails on a clean checkout untilpnpm dev/pnpm buildruns once. Either add apnpm prebuildscript that runstsr generate, or document it in apps/web/AGENTS.md.bootstrap.shnon-interactive default-to-TS edge case: ifentrypoint.shruns bootstrap headless andBOOTSTRAP_LANEisn't exported, the Python lane is silently deleted with no recovery. Decide: refuse to proceed in non-TTY mode without explicit lane, or print loud warning before destroying the unused lane dir.Out of scope
docs/recipes/*.mdcontent) — separate issues, can proceed in parallel.template/docs/observability.md— referenced from AGENTS.md but not yet written; flag during validation but track separately.ai-development-stack-templateforge repo — that's the remaining work item from #14 and gates on this issue passing.Done when
The §13 checklist is fully green from a fresh clone of template/ (whether from the forge or the local subworkspace), pinning checks pass, and the small fixes are in. At that point #14's last work item (create + push the forge template repo) is unblocked.