T-LAKY-adopt-augmented-dot-com
Status: closed/done · Impact: low · Complexity: small
Bring the augmented_dot_com personal/marketing site (Astro + a
Cloudflare Worker) in as apps/augmented_dot_com/. It has no internal
package deps, so it stays a standalone Bun workspace root (the zoo
pattern, per the D-0016/D-0018 convention that sites and tauri apps keep
their own Bun workspaces).
Source: https://github.com/sksizer/augmented_books at pinned rev
acedcf77652e2e7c481e95123c486c2befe2c423, path
apps/augmented_dot_com/.
| Location | Role today |
|---|---|
.moon/workspace.yml | apps/* glob registers the app once it carries a moon.yml |
moon.yml | Documents that sites keep their own Bun workspaces — this app does not join root package.json workspaces |
sites/ | Existing public web properties; this app stays under apps/ per the owner’s flat-placement decision, but sites/df-docs is the moon-registration shape to mirror |
apps/zoo/MIGRATION.md | Lock-conversion recipe |
Source app facts at the pinned rev: Astro site (astro.config.mjs,
src/, public/), workers/contact-form/ Cloudflare Worker, own
package-lock.json (npm), docs/, no moon.yml. Landed in the source
repo as a single “Moving experimental personal site” commit (2026-01-29).
Proposed
Section titled “Proposed”apps/augmented_dot_com/ builds with Bun as its own workspace root
(own bun.lock), carries a thin new moon.yml, and the contact-form
worker’s wrangler config validates.
Approach
Section titled “Approach”- Clone the pinned rev; copy the app dir (exclude
node_modules,package-lock.json). bun installin the app dir to generatebun.lock; fix scripts that assumed npm.- Write a thin
moon.yml(idaugmented_dot_com, build taskbun run build), mirroring the shape ofsites/df-docs’s moon file. - Verify
bun run build(astro build) passes. - For
workers/contact-form/:bun install+bunx wrangler deploy --dry-run(orwrangler checkequivalent); do not deploy. If the dry-run needs credentials, document that in the app README and skip.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
apps/augmented_dot_com/ | new | The vendored Astro site + contact-form worker + new moon.yml |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
bun install+bun run buildsucceed inapps/augmented_dot_com/. - AC-2:
moon query projectslistsaugmented_dot_com. - AC-3: The contact-form worker passes a wrangler dry-run, or the credential blocker is documented in the app README.
- AC-4: No
package-lock.jsonunderapps/augmented_dot_com/.
Out of scope
Section titled “Out of scope”- Deploying the site or the worker.
- Moving it under
sites/— owner chose flatapps/<name>placement; revisit only if the owner asks.
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”- Part of the augmented_books adoption (owner decision 2026-07-18).
Post-mortem
Section titled “Post-mortem”Captured by /sdlc:task-work on 2026-07-18. PR: pending.
Acceptance criteria coverage
Section titled “Acceptance criteria coverage”- AC-1: agent-manual —
bun install+bun run build(astro) in the app dir; built 4 pages + sitemap. - AC-2: agent-manual —
moon query projectslistsaugmented_dot_com;moon run augmented_dot_com:buildsucceeds. - AC-3: agent-manual —
bunx wrangler deploy --dry-runonworkers/contact-form/bundles cleanly (exit 0, no credentials needed); deploy-secrets requirement noted in the app README. - AC-4: auto — no committable
package-lock.json/pnpm-lock.yamlunder the app (only a transitive artifact inside gitignorednode_modules/).
What worked
Section titled “What worked”- The zoo npm/pnpm→Bun recipe applied cleanly;
package.jsonscripts callastrodirectly, so there were no npm-isms to rewrite. - Standalone Bun workspace root (own
bun.lock) needed no rootpackage.jsonchange. - The contact-form worker’s wrangler dry-run passed without credentials — no blocker to document.
Friction and automation gaps
Section titled “Friction and automation gaps”- Quality baseline not seeded into the worktree —
.sdlc/quality-baselines/<sha>.jsonis gitignored andgit worktree adddoes not propagate it, sosdlc quality run --diff-against-baselinefailed withbaseline not founduntil the file was copied in by hand. Fix: task-work worktree init should seed/symlink.sdlc/quality-baselines/into new worktrees, or the quality CLI should fall back to the main checkout’s baseline dir when run from a linked worktree. - Copy-exclusion spec under-specified — the source app carried a foreign gsd
.planning/framework tree the task’s## Todayinventory omits; excluding it was a judgment call. Fix: adoption tasks should enumerate framework-artifact exclusions (.planning/,.claude/,.husky/) or reference the zoo MIGRATION exclusion list as canonical. sdlc quality run(full pass) exceeded the 120s foreground timeout and had to be backgrounded — the gate is not a quick pre-commit-scale check.