Commit Graph

9 Commits

Author SHA1 Message Date
claude edf2e03b01 fix(blog): crop inline M2 screenshots to the terminal panel only
CI / check (pull_request) Successful in 7s
Removed the dark canvas around the terminal panels so each inline screenshot
lands as just the terminal on the post's own background. Cropped tight with
PIL by finding the bbox of non-outer-canvas pixels + an 8px pad.

- m2-git-log.png:  1200x628 -> 1016x210
- m2-restore.png:  1200x628 -> 1016x278

Uploaded the cropped versions to WP as new media (17170, 17171), swapped them
into draft #17112, deleted the old un-cropped media (17167, 17168).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
2026-07-01 10:37:28 -04:00
claude c4479e1041 Inline terminal screenshots for the M2 blog post (#115)
CI / check (push) Successful in 6s
Sync to GitHub mirror / sync (push) Successful in 8s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-01 10:31:00 -04:00
claude dec55e4c9f GitHub social-preview image (1280x640) (#114)
CI / check (push) Successful in 7s
Sync to GitHub mirror / sync (push) Successful in 9s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-06-24 23:25:34 -04:00
claude 75d9e2b419 Featured images for the 17 blog posts + square hero (#113)
CI / check (push) Successful in 7s
Sync to GitHub mirror / sync (push) Successful in 10s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-06-24 22:54:22 -04:00
claude 95e5911957 Use python3 as the canonical command name course-wide (#104) (#105)
CI / check (push) Successful in 7s
Sync course wiki / sync-wiki (push) Successful in 4s
2026-06-23 20:25:05 -04:00
justin 0f8e7497a4 Module 6: reframe Part C around the AI silently auto-resolving conflicts (#97)
A current frontier editor-agent told to "merge X into Y" resolves the
conflict and completes the merge in one turn, so the learner never sees a
marker. The old Part C assumed Git would stop and ask. Rework the lab into
a three-beat sequence: witness the conflict once (agent stop-on-conflict
idiom, as in Module 26), undo it with `git merge --abort`, then let the AI
merge for real and auto-resolve while the learner does the one job still
theirs: verify with `git diff` after every merge.

Updates the matching surfaces so they tell one story: learning objective
#4, the Merge-conflicts key concept, the AI-angle bullet, the
Where-it-breaks bullet, Check-for-understanding, the blog mirror, and the
make-conflict.sh on-screen guidance (read the markers yourself first).

Closes #97

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCv6VTpBG6Zo4xR4AvUQpj
2026-06-23 09:03:40 -04:00
claude 863435915c De-slop the syllabus and the blog (em-dashes + banned words) (#96)
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-06-23 07:28:55 -04:00
claude 3671541d6b Fill blog course-link placeholders with the course URL (#76)
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-06-22 19:15:32 -04:00
claude f47ccee96d docs(blog): add 17-post jpaul.me blog series for the course
A standalone blog/ folder (not course content) with drafts for jpaul.me:
an announcement, a getting-started piece, then a hybrid weekly series —
one post per module for Units 1-2 (posts 03-13) and one per unit for the
back half (14-16) plus a capstone finale (17). Each post carries WordPress
metadata, a [COURSE LINK] placeholder, and [insert screenshot] blocks for
Justin to fill before publishing. README.md holds the manifest + checklist.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015EghAChc9UbcF78t55mfdf
2026-06-22 17:49:00 -04:00