2025-07-03 - 2026-07-03
Overview
59 Pull requests merged by 2 users
Merged
#128 Inline screenshots: Unit 3 (red CI) and Capstone (green CI)
Merged
#127 Inline screenshots: M12, Unit 4, Unit 5 (final terminal batch)
Merged
#126 Inline screenshots for the M11 (collaboration) post
Merged
#125 Port PR #2 from GitHub: tighten tasks-app scope note
Merged
#124 Inline screenshot for the M10 (reviewing) blog post
Merged
#123 Inline screenshot for the M9 (issues) blog post
Merged
#122 Inline screenshots for the M8 blog post
Merged
#121 Inline screenshot for the M7 (worktrees) blog post
Merged
#120 Inline terminal screenshot for the M6 blog post
Merged
#119 Inline terminal screenshot for the M5 blog post
Merged
#118 Inline terminal screenshots for the M4 blog post
Merged
#117 Inline terminal screenshots for the M3 blog post
Merged
#116 Crop inline M2 screenshots to terminal-only
Merged
#115 Inline terminal screenshots for the M2 blog post
Merged
#114 GitHub social-preview image (1280x640)
Merged
#113 Featured images for the 17 blog posts + square hero
Merged
#112 Drop the bad gh-mirror/ exclude (it blocked the auto-heal)
Merged
#111 Fix sync workflow self-include (polluted GitHub with gh-mirror/)
Merged
#110 Auto-sync Gitea main to GitHub mirror on every push
Merged
#109 M15: change planted secret pattern + note hosted-forge push protection
Merged
#108 Prep docs/syllabus/README for github.com/recklessop public mirror
Merged
#107 Module 8: walk through GitHub PAT setup, link SSH as optional (#106)
Merged
#105 Use python3 as the canonical command name course-wide (#104)
Merged
#103 Self-contained, skip-friendly lab starting points
Merged
#102 Module prereqs: sort Prerequisites lists numerically ascending
Merged
#101 Add CI (build+test) and tools/check.sh
Merged
#99 Module 6: reframe Part C around the AI silently auto-resolving conflicts
Merged
#98 De-slop internal docs + config (repo now fully em-dash-free)
Merged
#96 De-slop the syllabus and the blog (em-dashes + banned words)
Merged
#95 Remove em-dashes from the wiki generator + README
Merged
#94 De-slop: remove every em-dash + banned words across all modules + capstone
Merged
#93 Reframe sweep M7-27 + capstone (AI drives git, lesson=theory, de-slop)
Merged
#92 Reframe M1-6: AI drives git, lesson=theory, de-slop + issue fixes
Merged
#91 Lock direction: AI-drives-git reframe + lesson=theory + Claude Code example
Merged
#77 Add prev/next textbook nav to wiki pages
Merged
#76 Fill blog course-link placeholders with the course URL
Merged
#75 Run wiki sync on docker runners (skip cleanly without token)
Merged
#74 Fix README wiki link (absolute URL; relative form 404s in Gitea)
Merged
#73 Update learner working-dir path to ~/ai-workflow-course after rename
Merged
#72 Generate the course textbook into the wiki from modules/ (CI sync)
Merged
#71 Update in-repo references after rename to ai-workflow-course
Merged
#69 docs(blog): jpaul.me blog series for the course (17 posts)
Merged
#70 Reframe Module 9 worked-examples off already-built features (#40)
Merged
#68 Voice + consistency: vary stock formulas, vendor-balance orient.py, unify loop (#48,#49,#51)
Merged
#67 Strengthen M1 Seam 1; fix M6 conflict labels (#36,#37)
Merged
#66 Recovery editor note + refresh CI action pins + scaffold M15 merge (#43,#44,#50)
Merged
#65 Container/runner/MCP lab polish (#41,#42,#45,#46)
Merged
#64 Module 8 polish: backup check, credentials, forge, prices (#38,#39,#47,#52)
Merged
#63 Git-command chain hygiene (#33,#34,#35)
Merged
#62 Portability: python/python3 note + cross-shell lab commands (#31,#32)
Merged
#61 M10: gloss /path/to/, git apply, and review-lab as throwaway
Merged
#60 Capstone recovery + M11 lab honesty (#8,#14,#15,#30)
Merged
#59 Testing/CI/tooling consistency (#9,#20,#21,#22,#23,#28)
Merged
#58 Onboarding + make M15 gate catch the plant + M17 override (#6,#17,#18,#19,#29)
Merged
#57 Running-example consistency: paths, tasks.json, command collisions (#7,#10,#11)
Merged
#56 Deterministic main branch + fix two claims (#5,#13,#16)
Merged
#55 Fix broken git demos/labs in Modules 4, 7, 14 (#2,#3,#4,#12)
Merged
#54 Fix Module 25 command injection + lab integrity (#24–#27)
Merged
#1 Build out all 27 modules + capstone
69 Issues closed from 2 users
Closed
#106 [module 8] Walk user through PAT and SSH auth setup on github
Closed
#104 [all modules] Python is not found
Closed
#100 Module 25 - Sort Prerequsites
Closed
#97 Module 6 - AI auto resolves merge conflict
Closed
#89 All Modules - the lesson has commands to run, which duplicates the lab
Closed
#83 [All Modules] I would never say prose
Closed
#86 module 4 - Lab still has /path/to/modules
Closed
#79 [unclear] Module 2 leaves the delete code uncommitted, what should we do with it?
Closed
#88 Module 5 - have AI tell the user which files should be committed
Closed
#90 module 6 - We have already used branches several times....
Closed
#78 [Nit] Module 2 - we dont tell the user to copy cli.py into their chat client
Closed
#80 module 3 - what does ADR mean
Closed
#81 module 3 - we tell the user to write a doc but then tell them to git add a specific doc
Closed
#82 module 3 - prove that main doesnt have the docs from the branch
Closed
#84 Module 4 - Use claude code as the example
Closed
#85 module 4 - dont make the user manually commit anymore
Closed
#87 module 4 - Make the revert and verify more automated with the AI agent doing the work
Closed
#40 Fix Module 9 worked-example issues that describe features already built in Modules 4/6
Closed
#51 Render the collaboration loop consistently (M11's seven stations vs M25/M26's six)
Closed
#48 Vary two recurring stock formulas across modules ('A generic X course…' and 'Strip away X…')
Closed
#49 Balance the AI-instruction filenames orient.py detects (don't single out one vendor)
Closed
#36 Sharpen Module 1 Seam 1 so the example forces a real multi-file change
Closed
#37 Make Module 6 make-conflict.sh labels position-neutral (they're inverted vs the marker sides)
Closed
#44 Add a Verify-before-publish item for pinned CI action versions in Module 15 (and refresh stale @v4/@v5 pins)
Closed
#50 Scaffold the Module 15 'slot security steps into the workflow' YAML merge
Closed
#43 Tell the learner how to handle the editor git revert -m 1 HEAD opens in Module 12 (or add --no-edit)
Closed
#45 Note Module 16's bind-mount leaves root-owned cache files on native Linux
Closed
#42 Make Module 20 Part A runnable: name the reference-server runtime prereq (Node/uv) or make Part A optional
Closed
#46 Tell Module 16/18 learners the container engine/daemon must be running
Closed
#41 Add if: always() so Module 19 whoami-runner.yml prints its 'where did this run?' receipt even on a red build
Closed
#39 Add a provider-neutral first-push credential walkthrough to Module 8 (scopes, non-echo, caching)
Closed
#38 Make Module 8 verify-backup.sh fail fast instead of hanging on an HTTPS credential prompt
Closed
#52 Reconcile Module 8's hosting price table with its own Verify-before-publish caveats
Closed
#47 Define 'forge' on first use in Module 8
Closed
#33 Add a forward note where Module 11 uses git reset --hard HEAD~1 before Module 12 introduces reset
Closed
#34 Stop presenting git rebase / git pull --rebase as a casual fix before any module introduces it
Closed
#35 Add Module 3 to Module 6's prerequisites and back-reference the branch material it first taught
Closed
#32 Add cross-shell notes for the bash-only lab commands that break on Windows PowerShell / base macOS
Closed
#31 Flag the python/python3 command-name substitution once, prominently, in Module 1
Closed
#53 Replace Module 10's literal /path/to/ placeholders and gloss the unexplained git apply
Closed
#30 Replace the capstone's hardcoded due date 2026-07-15 with relative dates
Closed
#14 Fix Module 11 Part C hard-coded task index 1, which breaks on a carried-forward tasks.json
Closed
#15 Make Module 11 Part E honest about the forge integration its 'agent opens a PR' step requires
Closed
#8 Fix capstone Part F recovery rehearsal: sync local main after the forge merge, and revert the squash commit without -m 1
Closed
#28 Fix Module 27 Part D CI snippet path (won't resolve from repo root) and the frozen always-100% gate fixture
Closed
#22 Add a dependency-install step before Module 23's 'green test baseline' on a fresh clone
Closed
#20 Add venv / PEP 668 / which-python guidance for pip install "mcp[cli]" in Module 20 (and M14/M15 local installs)
Closed
#23 Make Module 24 lab scripts tolerate code-fence-wrapped JSON
Closed
#21 Fix Module 21 Part D's git diff HEAD~1 add-command.md (empty given the lab's commit ordering)
Closed
#9 Resolve the unittest-vs-pytest contradiction across Modules 13/14 (and align M5, M16, ci-starter.yml)
Closed
#17 Fix Module 15 security gate failing OPEN on python3-only systems (bare python)
Closed
#6 Add a no-git 'Get the course materials' step to Module 1 (clone isn't taught until Module 8)
Closed
#18 Fix Module 15 local secret gate missing the UNTRACKED config.py (stage starter files or scan paths)
Closed
#19 Fix Module 15 Bandit stretch's false claim that it flags the hardcoded API key
Closed
#29 State that Module 17's .env loader must use setdefault, or Part D's override demo silently fails
Closed
#7 Standardize how later labs reference modules/NN/lab/... scripts from inside the standalone tasks-app folder
Closed
#10 Reconcile tasks.json gitignore: keep it ignored, fix M20/M22 verification, and exempt M21
Closed
#11 Stop the running-example commands (count, clear, delete) from colliding across modules
Closed
#5 Initialize the Module 2 repo with git init -b main so every main reference downstream resolves
Closed
#13 Correct Module 9's claim that issues are enabled by default on every Module 8 forge
Closed
#16 Qualify Module 14's 'hosted runners need zero setup' — false for the self-hosted forge track
Closed
#12 Fix Module 7 Part C: don't run the new clear/count commands 'while the agents run' — they don't exist yet
Closed
#3 Fix Module 7 'watch it break' demo: git switch -c does NOT refuse on a dirty tree
Closed
#2 Fix Module 4 lab so git restore . doesn't wipe the uncommitted delete feature
Closed
#4 Fix Module 14 Part C recovery: git restore is a no-op on the committed bad change, so CI never goes green
Closed
#27 Clarify that Module 25 --simulate uses a stand-in demo, not the delete-command issue it's handed
Closed
#24 Fix GitHub Actions command injection in Module 25 agent-job.yml (untrusted issue body into shell)
Closed
#26 Fix Module 25 reject(): git restore . leaves the simulated agent's untracked files in place
Closed
#25 Add a .gitignore so Module 25 propose_pr's git add -A doesn't sweep __pycache__/scaffolding into the review diff
69 Issues created by 0 users
Opened
#2 Fix Module 4 lab so git restore . doesn't wipe the uncommitted delete feature
Opened
#3 Fix Module 7 'watch it break' demo: git switch -c does NOT refuse on a dirty tree
Opened
#4 Fix Module 14 Part C recovery: git restore is a no-op on the committed bad change, so CI never goes green
Opened
#6 Add a no-git 'Get the course materials' step to Module 1 (clone isn't taught until Module 8)
Opened
#5 Initialize the Module 2 repo with git init -b main so every main reference downstream resolves
Opened
#7 Standardize how later labs reference modules/NN/lab/... scripts from inside the standalone tasks-app folder
Opened
#8 Fix capstone Part F recovery rehearsal: sync local main after the forge merge, and revert the squash commit without -m 1
Opened
#10 Reconcile tasks.json gitignore: keep it ignored, fix M20/M22 verification, and exempt M21
Opened
#9 Resolve the unittest-vs-pytest contradiction across Modules 13/14 (and align M5, M16, ci-starter.yml)
Opened
#11 Stop the running-example commands (count, clear, delete) from colliding across modules
Opened
#12 Fix Module 7 Part C: don't run the new clear/count commands 'while the agents run' — they don't exist yet
Opened
#14 Fix Module 11 Part C hard-coded task index 1, which breaks on a carried-forward tasks.json
Opened
#13 Correct Module 9's claim that issues are enabled by default on every Module 8 forge
Opened
#15 Make Module 11 Part E honest about the forge integration its 'agent opens a PR' step requires
Opened
#16 Qualify Module 14's 'hosted runners need zero setup' — false for the self-hosted forge track
Opened
#17 Fix Module 15 security gate failing OPEN on python3-only systems (bare python)
Opened
#18 Fix Module 15 local secret gate missing the UNTRACKED config.py (stage starter files or scan paths)
Opened
#19 Fix Module 15 Bandit stretch's false claim that it flags the hardcoded API key
Opened
#21 Fix Module 21 Part D's git diff HEAD~1 add-command.md (empty given the lab's commit ordering)
Opened
#20 Add venv / PEP 668 / which-python guidance for pip install "mcp[cli]" in Module 20 (and M14/M15 local installs)
Opened
#22 Add a dependency-install step before Module 23's 'green test baseline' on a fresh clone
Opened
#23 Make Module 24 lab scripts tolerate code-fence-wrapped JSON
Opened
#25 Add a .gitignore so Module 25 propose_pr's git add -A doesn't sweep __pycache__/scaffolding into the review diff
Opened
#24 Fix GitHub Actions command injection in Module 25 agent-job.yml (untrusted issue body into shell)
Opened
#26 Fix Module 25 reject(): git restore . leaves the simulated agent's untracked files in place
Opened
#27 Clarify that Module 25 --simulate uses a stand-in demo, not the delete-command issue it's handed
Opened
#28 Fix Module 27 Part D CI snippet path (won't resolve from repo root) and the frozen always-100% gate fixture
Opened
#29 State that Module 17's .env loader must use setdefault, or Part D's override demo silently fails
Opened
#31 Flag the python/python3 command-name substitution once, prominently, in Module 1
Opened
#30 Replace the capstone's hardcoded due date 2026-07-15 with relative dates
Opened
#32 Add cross-shell notes for the bash-only lab commands that break on Windows PowerShell / base macOS
Opened
#33 Add a forward note where Module 11 uses git reset --hard HEAD~1 before Module 12 introduces reset
Opened
#35 Add Module 3 to Module 6's prerequisites and back-reference the branch material it first taught
Opened
#34 Stop presenting git rebase / git pull --rebase as a casual fix before any module introduces it
Opened
#37 Make Module 6 make-conflict.sh labels position-neutral (they're inverted vs the marker sides)
Opened
#36 Sharpen Module 1 Seam 1 so the example forces a real multi-file change
Opened
#39 Add a provider-neutral first-push credential walkthrough to Module 8 (scopes, non-echo, caching)
Opened
#38 Make Module 8 verify-backup.sh fail fast instead of hanging on an HTTPS credential prompt
Opened
#41 Add if: always() so Module 19 whoami-runner.yml prints its 'where did this run?' receipt even on a red build
Opened
#40 Fix Module 9 worked-example issues that describe features already built in Modules 4/6
Opened
#42 Make Module 20 Part A runnable: name the reference-server runtime prereq (Node/uv) or make Part A optional
Opened
#43 Tell the learner how to handle the editor git revert -m 1 HEAD opens in Module 12 (or add --no-edit)
Opened
#44 Add a Verify-before-publish item for pinned CI action versions in Module 15 (and refresh stale @v4/@v5 pins)
Opened
#46 Tell Module 16/18 learners the container engine/daemon must be running
Opened
#45 Note Module 16's bind-mount leaves root-owned cache files on native Linux
Opened
#47 Define 'forge' on first use in Module 8
Opened
#48 Vary two recurring stock formulas across modules ('A generic X course…' and 'Strip away X…')
Opened
#49 Balance the AI-instruction filenames orient.py detects (don't single out one vendor)
Opened
#50 Scaffold the Module 15 'slot security steps into the workflow' YAML merge
Opened
#52 Reconcile Module 8's hosting price table with its own Verify-before-publish caveats
Opened
#51 Render the collaboration loop consistently (M11's seven stations vs M25/M26's six)
Opened
#53 Replace Module 10's literal /path/to/ placeholders and gloss the unexplained git apply
Opened
#78 [Nit] Module 2 - we dont tell the user to copy cli.py into their chat client
Opened
#79 [unclear] Module 2 leaves the delete code uncommitted, what should we do with it?
Opened
#80 module 3 - what does ADR mean
Opened
#81 module 3 - we tell the user to write a doc but then tell them to git add a specific doc
Opened
#82 module 3 - prove that main doesnt have the docs from the branch
Opened
#83 [All Modules] I would never say prose
Opened
#84 Module 4 - Use claude code as the example
Opened
#85 module 4 - dont make the user manually commit anymore
Opened
#86 module 4 - Lab still has /path/to/modules
Opened
#87 module 4 - Make the revert and verify more automated with the AI agent doing the work
Opened
#88 Module 5 - have AI tell the user which files should be committed
Opened
#89 All Modules - the lesson has commands to run, which duplicates the lab
Opened
#90 module 6 - We have already used branches several times....
Opened
#97 Module 6 - AI auto resolves merge conflict
Opened
#100 Module 25 - Sort Prerequsites
Opened
#104 [all modules] Python is not found
Opened
#106 [module 8] Walk user through PAT and SSH auth setup on github