Commit Graph

63 Commits

Author SHA1 Message Date
claude a3c2872526 feat(blog): inline terminal screenshots for M12, Unit 4 (both), and Unit 5
CI / check (pull_request) Successful in 7s
Four real-capture terminal screenshots covering the last of the automatable
blog placeholders:

- m12-reflog.png:      real git reflog on a demo repo where an agent's
                       reset --hard lost a "6h of work" commit. The lost
                       commit line (HEAD@{2}, feat: add count command) is
                       highlighted amber so the reader's eye lands on the
                       recovery target.

- u4-mcp.png:          the tasks MCP server actually queried via stdio
                       JSON-RPC (real tools/list response). Shows the
                       project's .mcp.json, then claude mcp list marking
                       tasks as Connected, then a tool list with the real
                       tool signatures (list_tasks() and add_task(title:
                       string)) with their live descriptions from the server.

- u4-orient-diff.png:  two side-by-side terminals. Left: real head -18 of
                       ORIENT.md produced by the M23 lab's orient.py against
                       a small quotient demo project. Right: a real, tightly
                       scoped git diff on src/quotient.py adding a
                       divide-by-zero guard. Facts first, then one small
                       change, exactly M23's teaching.

- u5-reviewer.png:     real python3 reviewer.py apply ai-review.sample.json
                       from the M24 lab. Shows the reviewer's output: summary,
                       three findings sorted by severity (BLOCKER in red,
                       SUGGESTION in amber, NIT dim), the agent's
                       recommendation (request_changes), and the explicit
                       "human decides" gate section.

Uploaded to WP as media 17197 (M12), 17198+17199 (Unit 4), 17200 (Unit 5).
Embedded in drafts #17132 (M12), #17136 (Unit 4), #17138 (Unit 5), all
scheduled: M12 Thu 2026-08-06, Unit 4 Thu 2026-08-13, Unit 5 Tue 2026-08-18.

Unit 3 (#17134, Tue 2026-08-11) and Capstone (#17140, Thu 2026-08-20) are
scheduled and awaiting Justin's screenshots of a real red-CI PR (recklessop/
m11-worktrees-demo#5) and a real green-CI PR (recklessop/m11-worktrees-demo#4)
respectively, both set up by this batch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
2026-07-02 16:59:26 -04:00
claude 7c5920dc1a Inline screenshots for the M11 (collaboration) post (#126)
CI / check (push) Successful in 6s
Sync to GitHub mirror / sync (push) Successful in 10s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-02 16:03:27 -04:00
claude 361ae4bb8d Port PR #2 from GitHub: tighten tasks-app scope note (#125)
CI / check (push) Successful in 6s
Sync course wiki / sync-wiki (push) Successful in 3s
Sync to GitHub mirror / sync (push) Successful in 11s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-02 15:58:03 -04:00
claude f61c46fe19 Inline screenshot for the M10 (reviewing) blog post (#124)
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-02 15:45:48 -04:00
claude bdbb91f1d1 Inline screenshot for the M9 (issues) blog post (#123)
CI / check (push) Successful in 8s
Sync to GitHub mirror / sync (push) Successful in 9s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-02 15:37:00 -04:00
claude 164559fcb5 Inline screenshots for the M8 blog post (#122)
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-07-02 15:16:39 -04:00
claude 585aeabd9a Inline screenshot for the M7 (worktrees) blog post (#121)
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-07-02 15:01:51 -04:00
claude efc5161698 Inline terminal screenshot for the M6 blog post (#120)
CI / check (push) Successful in 7s
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-02 14:58:03 -04:00
claude 60989dc640 Inline terminal screenshot for the M5 blog post (#119)
CI / check (push) Successful in 8s
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-02 14:53:32 -04:00
claude 5c745e9748 Inline terminal screenshots for the M4 blog post (#118)
CI / check (push) Successful in 8s
Sync to GitHub mirror / sync (push) Successful in 9s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-02 14:43:53 -04:00
claude 1be4e5b56c Inline terminal screenshots for the M3 blog post (#117)
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:42:53 -04:00
claude 11b1995d77 Crop inline M2 screenshots to terminal-only (#116)
CI / check (push) Successful in 6s
Sync to GitHub mirror / sync (push) Successful in 11s
Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
2026-07-01 10:37:30 -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