docs(wiki): sync from modules/ @ 1522721a

2026-06-22 23:22:06 +00:00
parent 0f8a1106f8
commit fea62c4278
28 changed files with 244 additions and 0 deletions
+6
@@ -1,5 +1,6 @@
> 📖 _This page is generated from [`modules/01-the-copy-paste-problem/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/01-the-copy-paste-problem/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
# Module 1 — The Copy-Paste Problem
> **You can already get an AI to write good code. The thing that's failing you is everything around
@@ -254,3 +255,8 @@ Be honest about the limits of this module's claims:
If all three are true, you're ready for Module 2, where we install the safety net that makes the
rest of the course safe to attempt.
---
**Continue to: [Module 2 — Version Control as a Safety Net](02-version-control-as-a-safety-net)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/02-version-control-as-a-safety-net/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/02-version-control-as-a-safety-net/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 1 — The Copy-Paste Problem](01-the-copy-paste-problem)**
# Module 2 — Version Control as a Safety Net
> **Version control is undo for the AI — and it's the AI's memory between sessions.** This is the one
@@ -282,3 +286,8 @@ When undo feels free and starting a cold session feels like "just read the repo,
safety net. Module 3 puts it to work on the lowest-risk possible target — documents, not code —
before Module 4 lets the AI edit your files directly.
---
**Continue to: [Module 3 — Version Control for Words, Not Just Code](03-version-control-for-words)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/03-version-control-for-words/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/03-version-control-for-words/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 2 — Version Control as a Safety Net](02-version-control-as-a-safety-net)**
# Module 3 — Version Control for Words, Not Just Code
> **The safest possible place to practice Git is on prose — and it happens to be a genuinely useful
@@ -358,3 +362,8 @@ When branch/diff/commit/merge feels routine on a document, you're ready for **Mo
finally comes out of the browser and starts editing your files directly — a step that's only safe
because you can now branch, diff, and revert exactly what it does.
---
**Continue to: [Module 4 — Getting the AI Out of the Browser](04-getting-the-ai-out-of-the-browser)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/04-getting-the-ai-out-of-the-browser/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/04-getting-the-ai-out-of-the-browser/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 3 — Version Control for Words, Not Just Code](03-version-control-for-words)**
# Module 4 — Getting the AI Out of the Browser
> **The copy-paste loop from Module 1 ends here.** You stop being the integration layer between a
@@ -450,3 +454,8 @@ time:
current tools; update the labels if the common terminology has moved.
- [ ] `lab/verify.sh` still passes against the Module 1 `tasks-app` after an AI implements `delete`.
---
**Continue to: [Module 5 — Commit the AI's Config, Not Just the Code](05-commit-the-ai-config)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/05-commit-the-ai-config/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/05-commit-the-ai-config/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 4 — Getting the AI Out of the Browser](04-getting-the-ai-out-of-the-browser)**
# Module 5 — Commit the AI's Config, Not Just the Code
> **The instructions you give the model are as worth versioning as the code it writes.** Write your
@@ -308,3 +312,8 @@ When the AI behaves like it already knows your project the moment you open it
word this session — the file is doing its job. Module 6 takes the safety net further: branches, so the
AI can try something wild in a sandbox you can throw away.
---
**Continue to: [Module 6 — Branches: Sandboxes for Experiments](06-branches-sandboxes-for-experiments)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/06-branches-sandboxes-for-experiments/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/06-branches-sandboxes-for-experiments/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 5 — Commit the AI's Config, Not Just the Code](05-commit-the-ai-config)**
# Module 6 — Branches: Sandboxes for Experiments
> **A branch is a disposable copy of your project where the AI can try anything — and `main` never
@@ -503,3 +507,8 @@ When "let the agent try something wild" feels like a one-line decision instead o
you've got it. Module 7 takes the next step: running several of these branches *live at the same
time* in separate working directories, so multiple agents can work in parallel without colliding.
---
**Continue to: [Module 7 — Worktrees: Running Agents in Parallel](07-worktrees-running-agents-in-parallel)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/07-worktrees-running-agents-in-parallel/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/07-worktrees-running-agents-in-parallel/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 6 — Branches: Sandboxes for Experiments](06-branches-sandboxes-for-experiments)**
# Module 7 — Worktrees: Running Agents in Parallel
> **A branch lets one agent try something risky. A worktree lets two agents try two things at the
@@ -421,3 +425,8 @@ Worktrees are sharp tools. The honest caveats:
When "run two agents at once" feels like "open two folders" instead of "orchestrate a stash dance,"
you've got it. This is the primitive Module 26 scales up — for now, two is plenty.
---
**Continue to: [Module 8 — Remotes and Hosting: GitHub, the Alternatives, and Owning Your Repo](08-remotes-and-hosting)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/08-remotes-and-hosting/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/08-remotes-and-hosting/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 7 — Worktrees: Running Agents in Parallel](07-worktrees-running-agents-in-parallel)**
# Module 8 — Remotes and Hosting: GitHub, the Alternatives, and Owning Your Repo
> **One repo on one laptop is one spilled coffee away from gone.** A remote gets your history
@@ -494,3 +498,8 @@ tables, and update the "as of" date when you do.
scope name on the default-example host before publishing.
- [ ] Update the comparison's **"as of" date** to the build date.
---
**Continue to: [Module 9 — Issues and the Task Layer](09-issues-and-the-task-layer)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/09-issues-and-the-task-layer/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/09-issues-and-the-task-layer/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 8 — Remotes and Hosting: GitHub, the Alternatives, and Owning Your Repo](08-remotes-and-hosting)**
# Module 9 — Issues and the Task Layer
> **An issue is how you hand a piece of work to someone else — and "someone else" is now a mix of
@@ -355,3 +359,8 @@ moving ground:
vs. custom labels) — confirm the neutral descriptions still hold across the forges named in
Module 8.
---
**Continue to: [Module 10 — Reviewing Code You Didn't Write](10-reviewing-code-you-didnt-write)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/10-reviewing-code-you-didnt-write/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/10-reviewing-code-you-didnt-write/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 9 — Issues and the Task Layer](09-issues-and-the-task-layer)**
# Module 10 — Reviewing Code You Didn't Write
> **The AI wrote a diff that reads beautifully and is wrong in one line you'll skim right past.**
@@ -332,3 +336,8 @@ When "it runs" stops feeling like sufficient evidence and "I read every `-` line
mandatory, you've got the skill. Module 11 takes this gate and wires it into the full collaboration
loop — issues, branches, PRs, and merges — with both humans and agents as contributors.
---
**Continue to: [Module 11 — Collaboration: Humans and Agents on One Repo](11-collaboration-humans-and-agents)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/11-collaboration-humans-and-agents/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/11-collaboration-humans-and-agents/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 10 — Reviewing Code You Didn't Write](10-reviewing-code-you-didnt-write)**
# Module 11 — Collaboration: Humans and Agents on One Repo
> **You now have every piece — issues, branches, PRs, review. This module wires them into one loop,
@@ -468,3 +472,8 @@ branch and review its PR" feels obvious rather than novel — you're ready for M
the *recovery* half of this safety net its own discipline: reverting a bad PR after it's already
merged.
---
**Continue to: [Module 12 — When It Goes Wrong: Revert, Reset, and Recovery](12-revert-reset-and-recovery)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/12-revert-reset-and-recovery/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/12-revert-reset-and-recovery/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 11 — Collaboration: Humans and Agents on One Repo](11-collaboration-humans-and-agents)**
# Module 12 — When It Goes Wrong: Revert, Reset, and Recovery
> **A bad change already shipped. Now what?** Recovery is its own skill — and knowing the *right*
@@ -421,3 +425,8 @@ When `revert` vs. `reset` is automatic, the reflog feels like a safety net inste
can name where Git's recovery stops, you've got the recovery half of the thread. That completes the
team layer (Unit 2) — next, Unit 3 starts automating the checking and shipping, beginning with tests.
---
**Continue to: [Module 13 — Testing in the AI Era](13-testing-in-the-ai-era)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/13-testing-in-the-ai-era/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/13-testing-in-the-ai-era/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 12 — When It Goes Wrong: Revert, Reset, and Recovery](12-revert-reset-and-recovery)**
# Module 13 — Testing in the AI Era
> **AI writes code that looks right and passes a human skim — that's exactly the code that needs a
@@ -356,3 +360,8 @@ The honest limits, because a green suite invites overconfidence:
If a test that can't possibly fail now reads to you as obviously useless, you've got the core idea —
and you're ready for **Module 14**, where these tests stop depending on you remembering to run them.
---
**Continue to: [Module 14 — Continuous Integration](14-continuous-integration)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/14-continuous-integration/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/14-continuous-integration/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 13 — Testing in the AI Era](13-testing-in-the-ai-era)**
# Module 14 — Continuous Integration
> **The AI writes code that looks right. CI is the tireless reviewer that checks whether it actually
@@ -385,3 +389,8 @@ Re-check at build time:
described — or swap in the equivalent the rest of the course uses. (The test runner is Python's
standard-library `unittest`, which ships with Python — no install, nothing to drift.)
---
**Continue to: [Module 15 — Security Scanning for AI-Generated Code](15-security-scanning)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/15-security-scanning/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/15-security-scanning/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 14 — Continuous Integration](14-continuous-integration)**
# Module 15 — Security Scanning for AI-Generated Code
> **Your build is green, your tests pass, and the AI just imported a package that doesn't exist —
@@ -476,3 +480,8 @@ reproducible.
make the slopsquatting point for you, but breaks the lab's "resolution fails" step). Swap for a
currently-nonexistent plausible name if so.
---
**Continue to: [Module 16 — Containers and Reproducible Environments](16-containers-and-reproducible-environments)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/16-containers-and-reproducible-environments/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/16-containers-and-reproducible-environments/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 15 — Security Scanning for AI-Generated Code](15-security-scanning)**
# Module 16 — Containers and Reproducible Environments
> **"Works on my machine" is a confession, not a defense.** A container ships the machine with the
@@ -355,3 +359,8 @@ Expansion-zone module — container tooling and base images move. Re-check at bu
- [ ] **`useradd` on the base.** Confirm the Debian-slim base still ships `useradd` (it does today;
a future minimal base might not), or switch to the engine's documented non-root pattern.
---
**Continue to: [Module 17 — Secrets, Config, and Environments](17-secrets-config-and-environments)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/17-secrets-config-and-environments/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/17-secrets-config-and-environments/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 16 — Containers and Reproducible Environments](16-containers-and-reproducible-environments)**
# Module 17 — Secrets, Config, and Environments
> **Ask an AI to "connect to the API" and it will cheerfully paste your secret key straight into
@@ -498,3 +502,8 @@ publishing:
- [ ] **Confirm cross-references** to Modules 2, 5, 8, 12, 14, 15, 16, and 18 still match those
modules' final numbering and titles.
---
**Continue to: [Module 18 — Continuous Delivery and Deployment](18-continuous-delivery-and-deployment)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/18-continuous-delivery-and-deployment/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/18-continuous-delivery-and-deployment/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 17 — Secrets, Config, and Environments](17-secrets-config-and-environments)**
# Module 18 — Continuous Delivery and Deployment
> **Merged isn't running.** This module closes the last gap in the pipeline — getting approved code
@@ -388,3 +392,8 @@ This is expansion-zone material (Module 15+); some specifics drift. Re-check at
(`run`, `--health-*`, `inspect`) match current CLI behavior.
- [ ] **Cross-references** to Modules 16, 17, and 19 still match those modules' final content.
---
**Continue to: [Module 19 — Runners: The Compute Behind the Automation](19-runners-the-compute-behind-automation)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/19-runners-the-compute-behind-automation/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/19-runners-the-compute-behind-automation/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 18 — Continuous Delivery and Deployment](18-continuous-delivery-and-deployment)**
# Module 19 — Runners: The Compute Behind the Automation
> **Every green check in the last five modules ran on someone else's computer. This module is where
@@ -364,3 +368,8 @@ This is an expansion-zone module and the runner ecosystem moves. Re-check at bui
- [ ] **Runner-to-server version-compatibility guidance** — confirm the "keep the agent version
matched to the forge" caveat still reflects current behavior.
---
**Continue to: [Module 20 — MCP Servers: Giving the AI Hands](20-mcp-servers-giving-the-ai-hands)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/20-mcp-servers-giving-the-ai-hands/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/20-mcp-servers-giving-the-ai-hands/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 19 — Runners: The Compute Behind the Automation](19-runners-the-compute-behind-automation)**
# Module 20 — MCP Servers: Giving the AI Hands
> **Until now the AI could read and write files in your repo and nothing else. MCP lets it reach
@@ -482,3 +486,8 @@ MCP is moving fast; re-check these at build/publish time rather than trusting th
- [ ] **Adoption framing.** Re-confirm the "open standard, adopted across vendors regardless of
model" claim is still accurate and still vendor-neutral; update if the ecosystem has shifted.
---
**Continue to: [Module 21 — Skills: Teaching the AI Your Playbook](21-skills-teaching-the-ai-your-playbook)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/21-skills-teaching-the-ai-your-playbook/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/21-skills-teaching-the-ai-your-playbook/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 20 — MCP Servers: Giving the AI Hands](20-mcp-servers-giving-the-ai-hands)**
# Module 21 — Skills: Teaching the AI Your Playbook
> **Stop re-explaining your own procedures.** A skill is a repeatable workflow written down once,
@@ -309,3 +313,8 @@ time:
walkthrough still matches the starter files (`add`/`list`/`done`/`count`, `test_tasks.py`,
`CHANGELOG.md`).
---
**Continue to: [Module 22 — Securing Third-Party MCP Servers and Skills](22-securing-third-party-mcp-and-skills)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/22-securing-third-party-mcp-and-skills/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/22-securing-third-party-mcp-and-skills/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 21 — Skills: Teaching the AI Your Playbook](21-skills-teaching-the-ai-your-playbook)**
# Module 22 — Securing Third-Party MCP Servers and Skills
> **Installing a third-party MCP server or skill is installing untrusted code that runs with access
@@ -369,3 +373,8 @@ Expansion-zone module; the surface this defends moves fast. Re-check at build ti
hidden-Unicode instruction, and the `tasks-app` injection lab still works against a current
model.
---
**Continue to: [Module 23 — Working with Existing Codebases](23-working-with-existing-codebases)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/23-working-with-existing-codebases/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/23-working-with-existing-codebases/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
**Previous: [Module 22 — Securing Third-Party MCP Servers and Skills](22-securing-third-party-mcp-and-skills)**
# Module 23 — Working with Existing Codebases
> **Every module so far quietly assumed you started the project. Most of your real work won't be
@@ -309,3 +313,8 @@ This is an expansion-zone module; the durable motion is stable, but the tooling
- [ ] Sanity-check the suggested "small-to-medium repo with a fast test suite" lab guidance still
lands — recommend nothing by name that could rot.
---
**Continue to: [Module 24 — Assistive Agents: AI Review and Issue Triage](24-assistive-agents)**
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/24-assistive-agents/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/24-assistive-agents/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
⬅ **Previous: [Module 23 — Working with Existing Codebases](23-working-with-existing-codebases)**
# Module 24 — Assistive Agents: AI Review and Issue Triage
> **The first safe way to put an AI *inside* your workflow instead of beside it: let it comment and
@@ -335,3 +339,8 @@ This is expansion-zone material; the agent-tooling landscape moves fast. Re-chec
if any modules were renumbered.
- [ ] Check that nothing here pins a specific LLM vendor or a specific bot's config filename.
---
**Continue to: [Module 25 — Autonomous Agents: Issue-to-PR and Self-Healing CI](25-autonomous-agents)** ➡
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/25-autonomous-agents/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/25-autonomous-agents/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
⬅ **Previous: [Module 24 — Assistive Agents: AI Review and Issue Triage](24-assistive-agents)**
# Module 25 — Autonomous Agents: Issue-to-PR and Self-Healing CI
> **Now the AI acts on its own — takes an assigned issue, opens a pull request, even fixes its own
@@ -379,3 +383,8 @@ This is an expansion-zone module sitting on fast-moving ground. Re-check at buil
trigger events (issue-labeled, comment command) match current forge behavior, and that the GitLab /
Forgejo equivalents in the comments are still accurate.
---
**Continue to: [Module 26 — Orchestrating Multiple Agents](26-orchestrating-multiple-agents)** ➡
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/26-orchestrating-multiple-agents/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/26-orchestrating-multiple-agents/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
⬅ **Previous: [Module 25 — Autonomous Agents: Issue-to-PR and Self-Healing CI](25-autonomous-agents)**
# Module 26 — Orchestrating Multiple Agents
> **One agent on its own branch was the experiment. Several agents at once, on their own branches,
@@ -482,3 +486,8 @@ Re-check at build/publish time:
- [ ] **Cross-references** to Modules 24 (assistive review) and 27 (evals) still match their final
titles and framing.
---
**Continue to: [Module 27 — Evals: Trusting an Agent That Acts Without You](27-evals)** ➡
+9
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`modules/27-evals/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/modules/27-evals/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
⬅ **Previous: [Module 26 — Orchestrating Multiple Agents](26-orchestrating-multiple-agents)**
# Module 27 — Evals: Trusting an Agent That Acts Without You
> **You will swap the model. Evals are the only thing that tells you whether the swap was safe.**
@@ -383,3 +387,8 @@ This is an expansion-zone module over fast-moving ground. Re-check at build/publ
- [ ] **Lab still runs.** `python run_eval.py candidates/current_model` exits 0 at 100%, and
`candidates/swapped_model` exits 1 below threshold, on a current Python 3.x.
---
**Continue to: [Capstone — The Full Loop](capstone)** ➡
+4
@@ -1,5 +1,9 @@
> 📖 _This page is generated from [`capstone/README.md`](https://git.jpaul.io/justin/ai-workflow-course/src/branch/main/capstone/README.md). **Edit the source, not the wiki** — edits here are overwritten on the next sync. Run the hands-on labs from the repo, linked inline._
⬅ **Previous: [Module 27 — Evals: Trusting an Agent That Acts Without You](27-evals)**
# Capstone — The Full Loop
> **One feature, taken end to end, with every module doing its job in sequence.** This is the finale: