From 7a4e1f6491de012428768f4ccea2c9872902a7ba Mon Sep 17 00:00:00 2001 From: claude Date: Tue, 23 Jun 2026 22:24:46 +0000 Subject: [PATCH] docs(wiki): sync from modules/ @ 7f439212 --- 01-the-copy-paste-problem.md | 12 ++++++++++++ 02-version-control-as-a-safety-net.md | 12 ++++++++++++ 03-version-control-for-words.md | 12 ++++++++++++ 04-getting-the-ai-out-of-the-browser.md | 12 ++++++++++++ 05-commit-the-ai-config.md | 12 ++++++++++++ 06-branches-sandboxes-for-experiments.md | 12 ++++++++++++ 07-worktrees-running-agents-in-parallel.md | 12 ++++++++++++ 08-remotes-and-hosting.md | 12 ++++++++++++ 09-issues-and-the-task-layer.md | 12 ++++++++++++ 10-reviewing-code-you-didnt-write.md | 12 ++++++++++++ 11-collaboration-humans-and-agents.md | 12 ++++++++++++ 12-revert-reset-and-recovery.md | 12 ++++++++++++ 13-testing-in-the-ai-era.md | 12 ++++++++++++ 14-continuous-integration.md | 12 ++++++++++++ 15-security-scanning.md | 9 +++++++++ 16-containers-and-reproducible-environments.md | 12 ++++++++++++ 17-secrets-config-and-environments.md | 9 +++++++++ 18-continuous-delivery-and-deployment.md | 9 +++++++++ 19-runners-the-compute-behind-automation.md | 9 +++++++++ 20-mcp-servers-giving-the-ai-hands.md | 12 ++++++++++++ 21-skills-teaching-the-ai-your-playbook.md | 12 ++++++++++++ 22-securing-third-party-mcp-and-skills.md | 9 +++++++++ 23-working-with-existing-codebases.md | 9 +++++++++ 24-assistive-agents.md | 9 +++++++++ 25-autonomous-agents.md | 9 +++++++++ 26-orchestrating-multiple-agents.md | 12 ++++++++++++ 27-evals.md | 9 +++++++++ capstone.md | 11 +++++++++++ 28 files changed, 308 insertions(+) diff --git a/01-the-copy-paste-problem.md b/01-the-copy-paste-problem.md index 748680f..36e8546 100644 --- a/01-the-copy-paste-problem.md +++ b/01-the-copy-paste-problem.md @@ -125,6 +125,18 @@ you already feel is the curriculum. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/01-the-copy-paste-problem/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 1" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell + a tiny bit of Python (just enough to have something real to run). You will not write Python; you'll run a small app we provide. diff --git a/02-version-control-as-a-safety-net.md b/02-version-control-as-a-safety-net.md index e27cbb6..1a7a0d0 100644 --- a/02-version-control-as-a-safety-net.md +++ b/02-version-control-as-a-safety-net.md @@ -138,6 +138,18 @@ Everything above is standard Git. What's *specific* to AI-assisted work: ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/02-version-control-as-a-safety-net/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 2" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands), on the `tasks-app` project from Module 1. **You'll need:** Git installed (`git --version`; if it's missing, install from diff --git a/03-version-control-for-words.md b/03-version-control-for-words.md index 40142d2..de401d1 100644 --- a/03-version-control-for-words.md +++ b/03-version-control-for-words.md @@ -199,6 +199,18 @@ Here's why this module is more than "learn Git on easy mode": ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/03-version-control-for-words/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 3" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands) plus a little markdown writing, on the `tasks-app` from Modules 1–2. The AI stays in the **browser**; you copy its draft into the file yourself, exactly as in Module 2. diff --git a/04-getting-the-ai-out-of-the-browser.md b/04-getting-the-ai-out-of-the-browser.md index cfbca2b..78bede5 100644 --- a/04-getting-the-ai-out-of-the-browser.md +++ b/04-getting-the-ai-out-of-the-browser.md @@ -287,6 +287,18 @@ loop and the loop is unchanged. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/04-getting-the-ai-out-of-the-browser/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 4" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell + a small Python change *made by the AI, not by you*. You'll drive an agentic tool; the tool writes the Python. diff --git a/05-commit-the-ai-config.md b/05-commit-the-ai-config.md index e4bd701..4f48b9d 100644 --- a/05-commit-the-ai-config.md +++ b/05-commit-the-ai-config.md @@ -201,6 +201,18 @@ Three things make this specifically an AI problem, not a generic config chore: ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/05-commit-the-ai-config/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 5" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell + markdown, on the `tasks-app` project from Modules 1–2. You'll use your editor-integrated AI (Module 4) for the part where the AI obeys the file. diff --git a/06-branches-sandboxes-for-experiments.md b/06-branches-sandboxes-for-experiments.md index 8270f33..46db6cc 100644 --- a/06-branches-sandboxes-for-experiments.md +++ b/06-branches-sandboxes-for-experiments.md @@ -239,6 +239,18 @@ Everything above is standard Git. Here's why it matters *more* in an AI-assisted ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/06-branches-sandboxes-for-experiments/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 6" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands), driving the `tasks-app` from Modules 1–2 with your editor-integrated AI from Module 4. diff --git a/07-worktrees-running-agents-in-parallel.md b/07-worktrees-running-agents-in-parallel.md index 3dd50d0..26b3c34 100644 --- a/07-worktrees-running-agents-in-parallel.md +++ b/07-worktrees-running-agents-in-parallel.md @@ -219,6 +219,18 @@ to run two agents and watch them overwrite each other's work. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/07-worktrees-running-agents-in-parallel/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 7" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands), plus two AI edit sessions on the `tasks-app`. In this lab you'll run **two AI sessions at the same time** on the same project (one adding a diff --git a/08-remotes-and-hosting.md b/08-remotes-and-hosting.md index 27c22ee..ba60cee 100644 --- a/08-remotes-and-hosting.md +++ b/08-remotes-and-hosting.md @@ -301,6 +301,18 @@ A remote isn't only about durability. It's what the AI parts of this course run ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/08-remotes-and-hosting/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 8" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands), plus one short provided shell script. Runs on macOS, Linux, WSL, or Git Bash on Windows. Continues the `tasks-app` repo from Module 2. diff --git a/09-issues-and-the-task-layer.md b/09-issues-and-the-task-layer.md index 68d6373..c45ebf9 100644 --- a/09-issues-and-the-task-layer.md +++ b/09-issues-and-the-task-layer.md @@ -231,6 +231,18 @@ valuable, not less. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/09-issues-and-the-task-layer/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 9" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** Markdown + shell, against the `tasks-app` repo you pushed to a forge in Module 8. You'll draft issues as Markdown locally (so you can version and reuse the format), then have your diff --git a/10-reviewing-code-you-didnt-write.md b/10-reviewing-code-you-didnt-write.md index 7a56684..35c60af 100644 --- a/10-reviewing-code-you-didnt-write.md +++ b/10-reviewing-code-you-didnt-write.md @@ -197,6 +197,18 @@ you couldn't do yourself. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/10-reviewing-code-you-didnt-write/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 10" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell + the Python `tasks-app`. You won't write Python; you'll open a PR for a real change, then review a diff the "AI" produced and catch the trap planted in it. diff --git a/11-collaboration-humans-and-agents.md b/11-collaboration-humans-and-agents.md index ab1a0e4..f3ce87f 100644 --- a/11-collaboration-humans-and-agents.md +++ b/11-collaboration-humans-and-agents.md @@ -259,6 +259,18 @@ You're not learning collaboration *and then* learning to work with agents. They' ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/11-collaboration-humans-and-agents/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 11" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell plus your host's web UI for the issue, PR, review, and merge steps. From Module 4 on you direct the AI to do the git work and verify the result; the only commands you type by hand here are read-only checks like `git branch` and `git show`. You'll implement the feature with diff --git a/12-revert-reset-and-recovery.md b/12-revert-reset-and-recovery.md index 1dd472f..10fc313 100644 --- a/12-revert-reset-and-recovery.md +++ b/12-revert-reset-and-recovery.md @@ -227,6 +227,18 @@ Recovery was always a real skill. AI raises its value on every axis: ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/12-revert-reset-and-recovery/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 12" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git commands), on the `tasks-app` from Modules 1–2. You'll do the two scenarios that matter most: **revert a bad merge** that's already on `main`, then diff --git a/13-testing-in-the-ai-era.md b/13-testing-in-the-ai-era.md index 7e3f9a0..e80f717 100644 --- a/13-testing-in-the-ai-era.md +++ b/13-testing-in-the-ai-era.md @@ -208,6 +208,18 @@ Passing for the right reason is the skill. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/13-testing-in-the-ai-era/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 13" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** Python (standard-library `unittest`), with a couple of shell commands to run the suite. Nothing to install. diff --git a/14-continuous-integration.md b/14-continuous-integration.md index f7228fc..226b8c4 100644 --- a/14-continuous-integration.md +++ b/14-continuous-integration.md @@ -211,6 +211,18 @@ the more you need a reviewer that checks behavior instead of believing the diff. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/14-continuous-integration/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 14" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** YAML (the CI config) plus the Python `tasks-app` and shell commands. You direct the agent to place files, commit, and recover; you commit a starter workflow, watch it pass, then break it on purpose and watch CI catch it. diff --git a/15-security-scanning.md b/15-security-scanning.md index 6026ed6..b40b9c1 100644 --- a/15-security-scanning.md +++ b/15-security-scanning.md @@ -209,6 +209,15 @@ add them *despite* using AI; using AI is what moves them from "nice to have" to ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/15-security-scanning/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/15-security-scanning/lab ~/ai-workflow-course/15-security-scanning-lab +> cd ~/ai-workflow-course/15-security-scanning-lab && git init -b main && git add -A && git commit -m "start: module 15" +> ``` **Lab language:** shell, driving Python tooling, on the `tasks-app` from Module 1. You'll install two scanners (both pip-installable, cross-platform), let the AI introduce all three problems, catch them, and wire the catch into your pipeline. diff --git a/16-containers-and-reproducible-environments.md b/16-containers-and-reproducible-environments.md index 560e66b..c17e46a 100644 --- a/16-containers-and-reproducible-environments.md +++ b/16-containers-and-reproducible-environments.md @@ -170,6 +170,18 @@ Docker itself you may already know. What makes containers matter *more* in AI-as ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/16-containers-and-reproducible-environments/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 16" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Docker CLI) on the `tasks-app` from Module 1. You won't write Python; you'll containerize and run the app you already have. diff --git a/17-secrets-config-and-environments.md b/17-secrets-config-and-environments.md index dd52828..3a87b3c 100644 --- a/17-secrets-config-and-environments.md +++ b/17-secrets-config-and-environments.md @@ -283,6 +283,15 @@ model will keep offering it. Concretely: ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/17-secrets-config-and-environments/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/17-secrets-config-and-environments/lab ~/ai-workflow-course/17-secrets-config-and-environments-lab +> cd ~/ai-workflow-course/17-secrets-config-and-environments-lab && git init -b main && git add -A && git commit -m "start: module 17" +> ``` **Lab language:** Python + shell, on a new `sync` feature for the `tasks-app` from Module 1. You'll take a file that hardcodes a secret (the exact thing an AI hands you) and refactor it so the diff --git a/18-continuous-delivery-and-deployment.md b/18-continuous-delivery-and-deployment.md index bd9e45d..5f53f21 100644 --- a/18-continuous-delivery-and-deployment.md +++ b/18-continuous-delivery-and-deployment.md @@ -205,6 +205,15 @@ between an autonomous contributor and your users. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/18-continuous-delivery-and-deployment/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/18-continuous-delivery-and-deployment/lab ~/ai-workflow-course/18-continuous-delivery-and-deployment-lab +> cd ~/ai-workflow-course/18-continuous-delivery-and-deployment-lab && git init -b main && git add -A && git commit -m "start: module 18" +> ``` **Lab language:** shell, driving the container tooling from Module 16. You'll extend the `tasks-app` into a tiny running service, then build a deploy script that ships it locally with a health check and automatic rollback, the whole CD motion simulated on your own machine. diff --git a/19-runners-the-compute-behind-automation.md b/19-runners-the-compute-behind-automation.md index b00caac..a48313a 100644 --- a/19-runners-the-compute-behind-automation.md +++ b/19-runners-the-compute-behind-automation.md @@ -208,6 +208,15 @@ review reflex from Module 10 has to extend to the workflow files, not just the a ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/19-runners-the-compute-behind-automation/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/19-runners-the-compute-behind-automation/lab ~/ai-workflow-course/19-runners-the-compute-behind-automation-lab +> cd ~/ai-workflow-course/19-runners-the-compute-behind-automation-lab && git init -b main && git add -A && git commit -m "start: module 19" +> ``` **Lab language:** shell, plus a one-line edit to the YAML workflow from Module 14. Runs on your own machine and your own forge, with no hosted account required for the core of it. diff --git a/20-mcp-servers-giving-the-ai-hands.md b/20-mcp-servers-giving-the-ai-hands.md index 3b31e16..e84f084 100644 --- a/20-mcp-servers-giving-the-ai-hands.md +++ b/20-mcp-servers-giving-the-ai-hands.md @@ -231,6 +231,18 @@ That changes what matters about the integration. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/20-mcp-servers-giving-the-ai-hands/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 20" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** Python (a ~15-line MCP server) plus your agentic tool's config. Runs on your own machine, any OS. diff --git a/21-skills-teaching-the-ai-your-playbook.md b/21-skills-teaching-the-ai-your-playbook.md index 82bb3c5..afcd9f4 100644 --- a/21-skills-teaching-the-ai-your-playbook.md +++ b/21-skills-teaching-the-ai-your-playbook.md @@ -166,6 +166,18 @@ On paper this is just "write a runbook." The AI-specific twist is what changes t ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/21-skills-teaching-the-ai-your-playbook/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 21" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** markdown (the skill file) plus shell and Python (the `tasks-app`). You'll write a skill, then have your editor-integrated AI (Module 4) execute it. diff --git a/22-securing-third-party-mcp-and-skills.md b/22-securing-third-party-mcp-and-skills.md index 0230886..fe70ba5 100644 --- a/22-securing-third-party-mcp-and-skills.md +++ b/22-securing-third-party-mcp-and-skills.md @@ -201,6 +201,15 @@ skills different from any dependency you've shipped before: ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/22-securing-third-party-mcp-and-skills/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/22-securing-third-party-mcp-and-skills/lab ~/ai-workflow-course/22-securing-third-party-mcp-and-skills-lab +> cd ~/ai-workflow-course/22-securing-third-party-mcp-and-skills-lab && git init -b main && git add -A && git commit -m "start: module 22" +> ``` **Lab language:** shell, with a small Python file to read. You'll audit a deliberately sketchy third-party skill, run a static red-flag scan over it, then reproduce a prompt-injection attack against the Module 1 `tasks-app` and apply the least-privilege mitigation. diff --git a/23-working-with-existing-codebases.md b/23-working-with-existing-codebases.md index b032c11..8f07ac6 100644 --- a/23-working-with-existing-codebases.md +++ b/23-working-with-existing-codebases.md @@ -168,6 +168,15 @@ into a revertable diff. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/23-working-with-existing-codebases/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/23-working-with-existing-codebases/lab ~/ai-workflow-course/23-working-with-existing-codebases-lab +> cd ~/ai-workflow-course/23-working-with-existing-codebases-lab && git init -b main && git add -A && git commit -m "start: module 23" +> ``` **Lab language:** shell + the provided Python script (`orient.py`); you run it, you don't write it. This lab does **not** use `tasks-app`; the entire point is a codebase you *didn't* write. diff --git a/24-assistive-agents.md b/24-assistive-agents.md index c483fbc..b223398 100644 --- a/24-assistive-agents.md +++ b/24-assistive-agents.md @@ -173,6 +173,15 @@ occasionally wrong with no consequences. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/24-assistive-agents/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/24-assistive-agents/lab ~/ai-workflow-course/24-assistive-agents-lab +> cd ~/ai-workflow-course/24-assistive-agents-lab && git init -b main && git add -A && git commit -m "start: module 24" +> ``` **Lab language:** Python (two small stdlib-only scripts) driven by Claude Code (`claude`; sub your own agent). No `pip install`, no hosted account. The scripts do the deterministic halves (assemble the prompt, validate and render the response, present the decision gate); the model does the one part diff --git a/25-autonomous-agents.md b/25-autonomous-agents.md index 1fc3d7f..547975d 100644 --- a/25-autonomous-agents.md +++ b/25-autonomous-agents.md @@ -208,6 +208,15 @@ the job is non-deterministic and persuasive**, and that changes what "automation ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/25-autonomous-agents/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/25-autonomous-agents/lab ~/ai-workflow-course/25-autonomous-agents-lab +> cd ~/ai-workflow-course/25-autonomous-agents-lab && git init -b main && git add -A && git commit -m "start: module 25" +> ``` **Lab language:** Python (one orchestrator script) plus a little shell and Git. It runs on your own machine, any OS, against the `tasks-app` repo from Module 1, with no forge account or paid agent required to complete it. diff --git a/26-orchestrating-multiple-agents.md b/26-orchestrating-multiple-agents.md index 49b503b..a6b958e 100644 --- a/26-orchestrating-multiple-agents.md +++ b/26-orchestrating-multiple-agents.md @@ -260,6 +260,18 @@ imaginary, and that the fix was a ten-minute coordination plan you skipped. ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** You do not need to have done the earlier labs. +> To begin from a clean, known state, copy this module's snapshot into a fresh `tasks-app` and +> make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/modules/26-orchestrating-multiple-agents/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: module 26" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell (Git + a couple of helper scripts) driving multiple AI edit sessions on the `tasks-app`, integrated through PRs. diff --git a/27-evals.md b/27-evals.md index 4044985..9eb7716 100644 --- a/27-evals.md +++ b/27-evals.md @@ -218,6 +218,15 @@ That's the durable skill. Models are weather. The eval set is the thermometer yo ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** This lab is self-contained and does not depend +> on the earlier labs. Its files live in `modules/27-evals/lab/`. Copy them into a working folder +> and make a first commit so you start clean: +> +> ```bash +> cp -r ~/ai-workflow-course/modules/27-evals/lab ~/ai-workflow-course/27-evals-lab +> cd ~/ai-workflow-course/27-evals-lab && git init -b main && git add -A && git commit -m "start: module 27" +> ``` **Lab language:** Python + shell. You'll run a tiny eval harness, point an agent at a task, and run a regression eval across a "model swap." diff --git a/capstone.md b/capstone.md index d129d91..e0c1ebb 100644 --- a/capstone.md +++ b/capstone.md @@ -133,6 +133,17 @@ swappable part; the workflow is the durable skill*), and you just lived it inste ## Hands-on lab + +> **Starting point (this lab is skip-friendly).** The capstone runs the whole loop on one feature. +> To begin from a clean app, copy the snapshot into a fresh `tasks-app` and make the first commit: +> +> ```bash +> mkdir -p ~/ai-workflow-course/tasks-app +> cp -r ~/ai-workflow-course/capstone/lab/start/. ~/ai-workflow-course/tasks-app/ +> cd ~/ai-workflow-course/tasks-app && git init -b main && git add -A && git commit -m "start: capstone" +> ``` +> +> Already carrying your `tasks-app` from earlier modules? Keep using it and ignore this box. **Lab language:** shell + Python, on the `tasks-app` repo. You'll direct Claude Code (`claude`; sub your own agent) to do the git and the edits (M4); you make the calls and verify each result.