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
125802616d
Drop the bad gh-mirror/ exclude (it blocked the auto-heal) ( #112 )
...
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 21:43:45 -04:00
claude
c46715b811
Fix sync workflow self-include (polluted GitHub with gh-mirror/) ( #111 )
...
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 21:41:13 -04:00
claude
9b6658563b
Auto-sync Gitea main to GitHub mirror on every push ( #110 )
...
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 21:38:40 -04:00
claude
556b5a7256
M15: change planted secret pattern + note hosted-forge push protection ( #109 )
...
Sync course wiki / sync-wiki (push) Successful in 5s
CI / check (push) Successful in 7s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-24 21:12:57 -04:00
claude
70d91722b7
Prep docs/syllabus/README for github.com/recklessop public mirror ( #108 )
...
Sync course wiki / sync-wiki (push) Successful in 5s
CI / check (push) Successful in 7s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-24 21:10:08 -04:00
justin
58f54ce745
Module 8: walk through GitHub PAT setup, link SSH as optional ( #106 ) ( #107 )
...
Sync course wiki / sync-wiki (push) Successful in 4s
CI / check (push) Successful in 7s
Co-authored-by: Justin Paul <justin@jpaul.me >
Co-committed-by: Justin Paul <justin@jpaul.me >
2026-06-23 20:32:04 -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
claude
7f439212ac
Self-contained, skip-friendly lab starting points ( #103 )
...
Sync course wiki / sync-wiki (push) Successful in 5s
CI / check (push) Successful in 6s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-23 18:24:36 -04:00
justin
74f23534c0
Module prereqs: sort Prerequisites lists numerically ascending ( #102 )
CI / check (push) Successful in 5s
Sync course wiki / sync-wiki (push) Successful in 5s
2026-06-23 14:06:28 -04:00
claude
edf3f34336
Add CI (build+test) and tools/check.sh ( #101 )
...
CI / check (push) Successful in 5s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-23 09:48:32 -04:00
justin
8e0ae0d58a
Merge pull request 'Module 6: reframe Part C around the AI silently auto-resolving conflicts' ( #99 ) from claude/issue-97 into main
...
Sync course wiki / sync-wiki (push) Successful in 5s
Reviewed-on: #99
2026-06-23 09:07:34 -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
173f39ac44
De-slop internal docs + config (repo now fully em-dash-free) ( #98 )
...
Sync course wiki / sync-wiki (push) Successful in 4s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-23 08:51:38 -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
66c15800c3
Remove em-dashes from the wiki generator + README ( #95 )
...
Sync course wiki / sync-wiki (push) Successful in 5s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 23:25:31 -04:00
claude
c098933f25
De-slop: remove every em-dash + banned words across all modules + capstone ( #94 )
...
Sync course wiki / sync-wiki (push) Successful in 4s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 23:21:22 -04:00
claude
513d7e7ac8
Reframe sweep M7-27 + capstone (AI drives git, lesson=theory, de-slop) ( #93 )
...
Sync course wiki / sync-wiki (push) Successful in 11s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 21:58:36 -04:00
claude
a29823f4b3
Reframe M1-6: AI drives git, lesson=theory, de-slop + issue fixes ( #92 )
...
Sync course wiki / sync-wiki (push) Successful in 4s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 21:41:31 -04:00
claude
2467f25901
Lock direction: AI-drives-git reframe + lesson=theory + Claude Code example ( #91 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 21:31:37 -04:00
claude
1522721a9a
Add prev/next textbook nav to wiki pages ( #77 )
...
Sync course wiki / sync-wiki (push) Successful in 4s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 19:22:00 -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
e5960c17ab
Run wiki sync on docker runners (skip cleanly without token) ( #75 )
...
Sync course wiki / sync-wiki (push) Successful in 3s
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 19:02:47 -04:00
claude
b0efe4912d
Fix README wiki link (absolute URL; relative form 404s in Gitea) ( #74 )
...
Sync course wiki / sync-wiki (push) Has been cancelled
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 18:55:52 -04:00
claude
a3ff56e570
Update learner working-dir path to ~/ai-workflow-course after rename ( #73 )
...
Sync course wiki / sync-wiki (push) Has been cancelled
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 18:54:23 -04:00
claude
3c1c94fb1a
Generate the course textbook into the wiki from modules/ (CI sync) ( #72 )
...
Sync course wiki / sync-wiki (push) Has been cancelled
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 18:53:11 -04:00
claude
b974dce5f8
Update in-repo references after rename to ai-workflow-course ( #71 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 18:35:55 -04:00
justin
a4ea86fd23
Merge pull request 'docs(blog): jpaul.me blog series for the course (17 posts)' ( #69 ) from claude/blog-posts into main
...
Reviewed-on: justin/the-workflow-course#69
2026-06-22 18:05:37 -04:00
claude
ba66f8a622
Reframe Module 9 worked-examples off already-built features ( #40 ) ( #70 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:51:57 -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
claude
f743bb671b
Voice + consistency: vary stock formulas, vendor-balance orient.py, unify loop (#48,#49,#51) ( #68 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:45:33 -04:00
claude
f7011d4211
Strengthen M1 Seam 1; fix M6 conflict labels (#36,#37) ( #67 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:35:47 -04:00
claude
3f096c71ff
Recovery editor note + refresh CI action pins + scaffold M15 merge (#43,#44,#50) ( #66 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:30:41 -04:00
claude
315cb2c190
Container/runner/MCP lab polish (#41,#42,#45,#46) ( #65 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:21:16 -04:00
claude
6691755060
Module 8 polish: backup check, credentials, forge, prices (#38,#39,#47,#52) ( #64 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:15:40 -04:00
claude
6d28567c12
Git-command chain hygiene (#33,#34,#35) ( #63 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:06:58 -04:00
claude
c34052665f
Portability: python/python3 note + cross-shell lab commands (#31,#32) ( #62 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 17:01:27 -04:00
claude
90012ca711
M10: gloss /path/to/, git apply, and review-lab as throwaway ( #61 )
2026-06-22 16:52:30 -04:00
claude
8830e91846
Capstone recovery + M11 lab honesty (#8,#14,#15,#30) ( #60 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 16:16:09 -04:00
claude
391df7fc6d
Testing/CI/tooling consistency (#9,#20,#21,#22,#23,#28) ( #59 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 16:07:58 -04:00
claude
a6a3cfdc50
Onboarding + make M15 gate catch the plant + M17 override (#6,#17,#18,#19,#29) ( #58 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 15:48:40 -04:00
claude
06b9f8f308
Running-example consistency: paths, tasks.json, command collisions (#7,#10,#11) ( #57 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 15:35:51 -04:00
claude
848ad14e3c
Deterministic main branch + fix two claims (#5,#13,#16) ( #56 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 14:58:51 -04:00
claude
e2a53c8259
Fix broken git demos/labs in Modules 4, 7, 14 (#2,#3,#4,#12) ( #55 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 14:52:31 -04:00
claude
b061a9da14
Fix Module 25 command injection + lab integrity (#24–#27) ( #54 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 14:37:19 -04:00
claude
2684095e2f
Build out all 27 modules + capstone ( #1 )
...
Co-authored-by: claude <claude@jpaul.io >
Co-committed-by: claude <claude@jpaul.io >
2026-06-22 12:19:01 -04:00
justin
4bd586bbd0
Delete HANDOFF.md
2026-06-22 10:07:56 -04:00