feat(course): build out all 27 modules, capstone, scaffold, and conventions
Scaffold the course repo and author the full curriculum in dependency-chain order, following the settled build decisions in handoff.md. - Scaffold: course README, vendor-neutral AGENTS.md (dogfoods Module 5), _TEMPLATE.md (the fixed 9-section module shape), root .gitignore, ship config. - Modules 1-2: reference exemplars (locked for tone/depth/lab style). - Modules 3-27: full lessons + runnable labs, each following the template, respecting the chain, vendor/model-agnostic, with "feel the pain" labs. - Module 8 hosting comparison web-researched and date-stamped (as of 2026-06-22), not written from memory; expansion-zone modules carry Verify-before-publish. - Capstone: the full loop end to end on the running tasks-app example. Lab code syntax-checked (Python/shell/YAML); every module has the 7 core template sections. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Agent prompt — issue #42, branch `feature/42-count`
|
||||
|
||||
Run this in the `tasks-app-42-count` worktree. This agent's work is genuinely parallel with #43
|
||||
(docs) — different files — and deliberately collides with #44 (clear) at `cli.py`'s dispatch chain.
|
||||
|
||||
---
|
||||
|
||||
You are working in this worktree only. Do not touch any other folder.
|
||||
|
||||
**Task:** Add a `count` command to `cli.py` that prints the number of *pending* (not-done) tasks.
|
||||
|
||||
- Add a new `elif command == "count":` branch to the dispatch in `main()` in `cli.py`.
|
||||
- Use the existing `TaskList.pending()` method from `tasks.py` — do not change `tasks.py`.
|
||||
- Print just the integer, e.g. `3`.
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- `python cli.py count` prints the number of pending tasks and exits 0.
|
||||
- No other files change. (`README.md`, `CHANGELOG.md`, and `tasks.py` are owned by other agents —
|
||||
stay out of them.)
|
||||
|
||||
When done, stop. The human commits, pushes, and opens the PR.
|
||||
@@ -0,0 +1,26 @@
|
||||
# Agent prompt — issue #43, branch `feature/43-docs`
|
||||
|
||||
Run this in the `tasks-app-43-docs` worktree. This agent owns documentation only — different files
|
||||
from every other agent in the fleet, so it merges cleanly no matter what the others do. This is what
|
||||
a *genuinely* parallel split looks like: disjoint files, no shared interface.
|
||||
|
||||
---
|
||||
|
||||
You are working in this worktree only. Do not touch any other folder, and do not edit `cli.py` or
|
||||
`tasks.py` — code is owned by other agents.
|
||||
|
||||
**Task:** Document the `tasks-app` and start a changelog.
|
||||
|
||||
- In `README.md`, add a "Commands" section documenting the existing commands: `add <title>`, `list`,
|
||||
and `done <index>`. Show an example invocation for each.
|
||||
- Create `CHANGELOG.md` with a "Keep a Changelog"–style `## [Unreleased]` section and an `### Added`
|
||||
list. (Other agents are adding commands in parallel; leave a placeholder line noting that new
|
||||
commands are landing — the human will reconcile the exact list at merge.)
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- `README.md` documents the three existing commands accurately.
|
||||
- `CHANGELOG.md` exists and is valid markdown.
|
||||
- No code files change.
|
||||
|
||||
When done, stop. The human commits, pushes, and opens the PR.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Agent prompt — issue #44, branch `feature/44-clear`
|
||||
|
||||
Run this in the `tasks-app-44-clear` worktree. **This agent deliberately collides with #42.** Both
|
||||
add a new `elif` to the same dispatch chain in `cli.py` — same file, same region. That's the
|
||||
agent-vs-agent merge conflict the lab wants you to predict in Part A and resolve in Part C. It is not
|
||||
a mistake in the lab; it is the lesson. Two agents on the same file is a *joint*, not a seam.
|
||||
|
||||
---
|
||||
|
||||
You are working in this worktree only. Do not touch any other folder.
|
||||
|
||||
**Task:** Add a `clear` command to `cli.py` that removes all tasks.
|
||||
|
||||
- Add a new `elif command == "clear":` branch to the dispatch in `main()` in `cli.py`.
|
||||
- It should empty the task list and save, then print `cleared`.
|
||||
- Reuse the existing `load()` / `save()` helpers. Do not change `tasks.py`.
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- `python cli.py clear` removes all tasks and prints `cleared`.
|
||||
- `python cli.py list` afterward shows `(no tasks yet)`.
|
||||
|
||||
When done, stop. The human commits, pushes, and opens the PR — and should expect a conflict against
|
||||
`feature/42-count` at merge.
|
||||
Reference in New Issue
Block a user