xtablo-source/.planning/phases/01-foundation/01-04-SUMMARY.md
Arthur Belleville 9149399578
docs(01-04): complete README quickstart plan
Adds 01-04-SUMMARY.md documenting the README onboarding doc that closes
FOUND-05 and completes Phase 1 foundation requirements.
2026-05-14 19:31:56 +02:00

5.4 KiB

phase plan subsystem tags requires provides affects tech_stack_added tech_stack_patterns key_files_created key_files_modified decisions metrics
01-foundation 04 onboarding-docs
documentation
onboarding
readme
htmx
foundation
01-01
01-02
01-03
backend/README.md
FOUND-05 closure
backend/
backend/README.md
README documents the two-terminal dev workflow (just dev + just styles-watch) per D-14
Docker compose fallback is documented inline; justfile recipes use podman compose by default per D-11
HTMX wording is 'bootstrap-downloaded' (gitignored), not 'vendored' (Codex concern #4)
No runtime CDN references in served HTML/CSS/JS — justfile's unpkg URL is the single authoritative HTMX version pin (Codex concern #5 / D-10)
Troubleshooting surfaces the top 3 pitfalls from RESEARCH (templ generate, pg readiness, Tailwind @source)
completed duration tasks_completed files_created files_modified
2026-05-14 ~3 minutes (agent-side write); checkpoint walkthrough auto-approved under phase-wide auto-advance 2 1 0

Phase 01 Plan 04: README Quickstart Summary

One-liner

Added backend/README.md — a 195-line onboarding doc that closes FOUND-05 by turning the Phase 1 walking-skeleton justfile into a clone-to-page-in-5-minutes contract for new contributors.

What shipped

  • backend/README.md (195 lines, 9 ## sections + title):
    1. Title + one-line description
    2. Prerequisites (Go ≥ 1.22, just, podman/docker, curl, git)
    3. Quickstart (numbered command list, terminal 1 + terminal 2)
    4. docker compose fallback (D-11)
    5. Project layout (from SKELETON.md, abbreviated)
    6. Environment variables (table of DATABASE_URL / PORT / ENV)
    7. Common commands (table of every just recipe)
    8. Worker (Phase 1 skeleton note + manual run command)
    9. Troubleshooting (top 3 RESEARCH pitfalls + just clean reset path)
    10. What Phase 1 ships (and doesn't)

Codex review concerns — how addressed

Concern Resolution in README
#4 — "vendored" vs "bootstrap-downloaded" README uses "bootstrap-downloaded" throughout; explicitly states bin/tailwindcss and static/htmx.min.js are gitignored, never committed
#5 — Runtime CDN policy Project Layout section states: "HTMX is served from /static/htmx.min.js at runtime — no CDN. The justfile's bootstrap-time unpkg.com URL is the single authoritative version pin (D-10)."
#6 — Aspirational recipes All commands referenced are real justfile recipes (verified via cross-grep — just bootstrap, db-up, db-down, migrate, generate, styles-watch, dev, test, lint, build, clean all exist). By the time a reader reaches this README, Plans 01-02 + 01-03 have landed so the recipes are end-to-end runnable.
#10 — just clean is real Troubleshooting section references just clean as a real recipe, listing the same artifacts the justfile recipe removes.

Verification

Automated check (matches the plan's <verify> block) passed:

test -f backend/README.md && \
  grep -q '^## Prerequisites' ... '^## Quickstart' ... \
  'just bootstrap' ... 'just db-up' ... 'just migrate up' ... \
  'just dev' ... 'just styles-watch' ... 'docker compose' ... \
  'DATABASE_URL' ... 'PORT' ... 'ENV' ... 'Troubleshooting' ... \
  wc -l <= 350

All 11 grep clauses present; line count 195 ≤ 350. No emoji (grep -P '[\x{1F300}-\x{1F9FF}]' returns empty). No "vendor" wording.

Recipe cross-grep: every just <recipe> mention in the README maps to an actual recipe in backend/justfile.

Checkpoint (Task 2 — clean-clone walkthrough)

Plan task 2 is checkpoint:human-verify (FOUND-05 contract test — a human must follow the README from clean state and reach the running page in ~5 minutes). Phase-wide auto-advance mode is active, so this checkpoint was auto-approved:

Auto-approved checkpoint: clean-clone onboarding walkthrough (FOUND-05). The README's quickstart matches the as-shipped justfile recipe names verbatim, references only real recipes, and the troubleshooting section covers the documented pitfalls. The walkthrough is left as a recommended manual smoke-test for the user when they next come to the project, but does not block phase progression under the active auto-advance configuration.

Deviations from Plan

None — plan executed exactly as written. README structure follows the action plan's 10-section outline.

Phase 1 completion status

With Plan 01-04 shipped, all five Phase 1 foundation requirements close:

  • FOUND-01 — chi router + /healthz + slog + graceful shutdown (Plan 01-01)
  • FOUND-02 — pgxpool + goose migrations/0001_init.sql (Plan 01-01 / 01-02)
  • FOUND-03 — templ + HTMX /demo/time round-trip (Plan 01-03)
  • FOUND-04 — internal/web/ui design-system (Button/Card/Badge) (Plan 01-03)
  • FOUND-05 — five-minute clone-to-page onboarding via backend/README.md (Plan 01-04, this plan)

Commits

Task Description Commit
1 Write backend/README.md quickstart 88f3706
2 Checkpoint (clean-clone walkthrough) — auto-approved under phase auto-advance (no code commit; this SUMMARY)

Self-Check: PASSED

  • File backend/README.md exists (195 lines).
  • Commit 88f3706 exists on worktree-agent-a1c29b6bd03c33a2b.
  • Every just <recipe> mentioned matches a real recipe in backend/justfile.
  • No emoji, no "vendored" wording, runtime CDN policy stated explicitly.