T-SRJQ-books-consolidation-p2-apps
Status: open/ready · Impact: medium · Complexity: medium
With the content tier and resolver landed (T-PP4I), move the two
book apps out of the augmented staging solution into
solutions/augmented_learning/apps/. Every content reference goes through the
position-independent resolver, so this is a pure git mv plus manifest
repoints — zero app-code edits.
| Location | Role today |
|---|---|
solutions/augmented/apps/learn_web/ | Web reader/editor; root Bun workspace member via the solutions/*/apps/* glob |
solutions/augmented/apps/augmented-books/ | Desktop reader/distributor; own Bun workspace root (negation !solutions/*/apps/augmented-books — wildcarded over the solution segment, survives the move) |
Cargo.toml | Glob member solutions/*/apps/*/src-tauri (covers the moved crate) + EXPLICIT member solutions/augmented/apps/augmented-books/runners/sqlite/builder — the one root repoint |
lefthook.yml | markdown-fmt exclude solutions/augmented/apps/learn_web/** — must become solution-wildcarded before the move commit |
.moon/workspace.yml | solutions/*/apps/* glob; project ids derive from unchanged basenames (learn_web, augmented-books) |
LIBRARIES.md | Carries the solutions/augmented ← sksizer/augmented_books lineage row — note the split |
Proposed
Section titled “Proposed”solutions/augmented_learning/apps/learn_web/ and
solutions/augmented_learning/apps/augmented-books/ exist; the old paths are gone.
Root config churn is exactly two files (Cargo.toml member repoint,
lefthook exclude wildcard) plus lock regen. Cargo.lock is untouched
(no crate rename). Moon ids stay learn_web / augmented-books.
Approach
Section titled “Approach”- FIRST edit
lefthook.yml: markdown-fmt excludesolutions/augmented/apps/learn_web/**→solutions/*/apps/learn_web/**(must be on disk before the move commit stages learn_web’s.mdfiles). git mv solutions/augmented/apps/learn_web solutions/augmented_learning/apps/learn_weband…/augmented-books → solutions/augmented_learning/apps/augmented-books.- Root
Cargo.toml: repoint the explicit member…/augmented-books/runners/sqlite/builderto the new path; update the narrative comment block naming augmented paths. - Root
bun.lock:bun install(workspace path key changes), verifybun install --frozen-lockfile. No rootpackage.json/.moon/workspace.ymledits — globs and the wildcarded negation cover the new paths. LIBRARIES.md: amend the lineage row —solutions/augmented_learningnow carries learn_web + augmented-books; the rest of the family stays undersolutions/augmented.- Cosmetic self-referential path mentions inside the moved apps (README, moon.yml comments) — update where trivially greppable. Historical planning entities are NOT rewritten (convention).
- Verify:
cargo metadataresolves;cargo check -p augmented_booksand the runner builder crate;moon query projectsstill listslearn_webandaugmented-books; learn_webbun run build+ prod smoke from repo root (curl /api/books/v2);cargo run -p augmented_books --bin prepare-booksstill resolvessolutions/augmented_learning/content/books; hierarchy package tests still pass (resolver-based, position-independent).
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
lefthook.yml | modify | Wildcard the learn_web markdown-fmt exclude (FIRST) |
solutions/augmented/apps/learn_web/ | delete | git mv → solutions/augmented_learning/apps/learn_web/ |
solutions/augmented/apps/augmented-books/ | delete | git mv → solutions/augmented_learning/apps/augmented-books/ |
solutions/augmented_learning/apps/ | new | Destination (pure rename) |
Cargo.toml | modify | Repoint explicit runners-builder member; comment update |
bun.lock | modify | Workspace path-key regen |
LIBRARIES.md | modify | Lineage row notes the books split |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
cargo check -p augmented_bookspasses from root with the moved member paths;Cargo.lockdiff is empty. - AC-2: learn_web
bun run buildsucceeds at the new path and the prod server booted from the repo root answers/api/books/v2. - AC-3:
moon query projectslistslearn_webandaugmented-books(ids unchanged) with sources undersolutions/augmented_learning/apps/. - AC-4:
git diff origin/main --statfor the two app trees shows pure renames; no learn_web.mdwas reflowed. - AC-5:
bun install --frozen-lockfilepasses at root. - AC-6: No
solutions/augmented/apps/(learn_web|augmented-books)path references remain outside historical planning entities (grep-proof in PR).
Out of scope
Section titled “Out of scope”- Package moves (
T-V57A). - The
augmented-desktopapp/crate rename salvaged from closed PR #1122 — a possible follow-up on the new paths, not this task. - Rewriting historical planning entities that cite old paths.
Dependencies
Section titled “Dependencies”T-PP4I— the resolver must be in place; without it the moved apps would still hardcode content paths.
Discovery context
Section titled “Discovery context”- Phase 2 of the books consolidation (owner decision 2026-08-01); plan
file
~/.claude/plans/twinkly-meandering-rabbit.md.
Depends on
Section titled “Depends on”T-PP4I