Homepage refresh + JSON slide-deck system + Summer curriculum prep - #48
Open
unforced wants to merge 6 commits into
Open
Homepage refresh + JSON slide-deck system + Summer curriculum prep#48unforced wants to merge 6 commits into
unforced wants to merge 6 commits into
Conversation
Homepage: - Hero: "Become a builder." — outcome-first messaging replacing "Build your personal AI assistant" - Lineage section folded into "What's happening" as a compact provenance paragraph + pilot testimonial - Coming Soon card: The Augmented Knowledge Worker (Benjamin Life + Aaron), replacing AAE - CTA + FAQ copy aligned with builder framing Slide-deck system (replaces Claude Design workflow): - lessons.slides_json column (migration 0027, applied local+remote) - src/lib/deck-schema.ts: 8-layout deck vocabulary + validateDeck() - src/lib/deck-render.ts: server-rendered standalone deck HTML with design tokens from the Week 6 reference deck - public/deck.js: scale-to-fit runtime — keyboard/click nav, hash sync, speaker-notes overlay, print CSS - GET /cohort/:slug/week/:num/slides — access-gated, admins can preview draft-lesson decks - MCP: admin_upsert_deck + get_deck tools; get_lesson returns slidesUrl when a deck exists - Week 6 Spring deck ported to JSON and stored in D1 as the reference implementation Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The slides route had the admin draft-preview bypass but the cohort lesson list, lesson page, and prev/next nav still filtered status='published' for everyone — so admins couldn't reach the cohort-2 drafts at all. Same isAdmin() pattern as the slides route, with Draft badges on the list and lesson header so drafts don't blend in. Public ICS feed intentionally stays published-only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New /cu route (aliases /atls4519, /fall) for the Fall 2026 ATLAS class. Hybrid design per the CU CSCI-2830 inspiration but in the LVB brand: full-bleed dark hero (mono eyebrow, Learn/Vibe/Build, a terminal session card) over a warm body with the blurb, three movements, a details panel, and how-to-register steps. One route serves both deliverables Mark asked for: the screen view is the landing page; an @media print block flips the hero to printer-friendly white, swaps in a condensed blurb, drops the chat card / bio / hero CTAs, and compacts to a single page so Save-as-PDF produces the flyer. All registration facts confirmed by Aaron; Buff Portal + public classes.colorado.edu links verified live. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Instructor: Aaron G Neyer (was Aaron Gabriel) - Bio: ATLAS Institute alum (no longer a grad student) - Detail row now shows the full catalog title "Advanced Special Topics: Learn, Vibe, Build"; register step tells students to pick the section titled "Learn, Vibe, Build" (4519/5519 is a multi- section special-topics number) - Added a visible "learnvibe.build/cu" link so the printed flyer points back to the page for live updates - Print: uniform 13.5px root font-size so the flyer stays one page after the added content Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- /cu: registration is now frictionless — Section/Class # detail row (Section 005 · #39152) and an "add by class number → 39152" step - Homepage CU card is now a link to /cu with a "Course details & how to register" affordance; code updated to ATLS 4519 / 5519 - Homepage guide bio + CLAUDE.md: Aaron is an ATLAS Institute alum (was "grad student"); CLAUDE.md notes the Aaron G Neyer / Aaron Gabriel name split (CU legal name vs LVB brand) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Course is a single listing, not cross-listed. Removed 5519 and the "(cross-listed)" / undergrad-vs-grad framing from the /cu page (code, eyebrow, details, register step, mailto subject, header comment) and the homepage card. Registration is now one path: ATLS 4519, Section 005, Class #39152. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Stacked on #47 (cloudflare-auth-email-migration) — merge that first, then re-target this to main.
Homepage refresh
Slide-deck system
Decks are now JSON in D1 (
lessons.slides_json), edited via MCP, rendered server-side — no more Claude Design round-trips, consistency is structural because the layout vocabulary is fixed.notes+ screenlabelvalidateDeck()collects all errors with per-slide paths; text is escaped then[[accent]]-highlighted (no raw HTML passthrough)GET /cohort/:slug/week/:num/slides— access-gated; admins can preview decks on draft lessonspublic/deck.jsruntime: scale-to-fit 1920×1080, keyboard/click nav, hash sync, 'n' notes overlay, print CSSadmin_upsert_deck,get_deck;get_lessonnow returnsslidesUrlAlso shipped outside this diff
Known low-severity items (not fixed, noted for the record)
get_deckinheritsget_lesson's MCP enrollment-gate bypass (pre-existing pattern)mantrasarray bypasses the MAX_TEXT cap🤖 Generated with Claude Code