style(no-slop): remove every em-dash + banned words across all modules + capstone

Apply the no-ai-slop standard (now binding in AGENTS.md): the em-dash character is
banned outright (restructured, not blind-replaced), plus the banned word/phrase
list (delve, leverage, robust, seamless, truly, unlock, etc.). 0 em-dashes remain
in modules + capstone; the only "robust" left is the planted M10 ai-change.patch
trap. Module H1 titles use a colon separator.

All deliberate teaching devices preserved; labs compile/parse (py/sh/yaml/json);
no junk. AGENTS.md updated with the hard no-slop rules.

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:
2026-06-22 23:21:09 -04:00
parent 513d7e7ac8
commit 389ac2e460
99 changed files with 1324 additions and 1315 deletions
@@ -1,14 +1,14 @@
# Skill: Add a new tasks-app command, end to end
> A reusable playbook. Don't paste this whole file into a chat and hope. Point your agentic tool at
> it by name "follow `add-command.md` to add a `clear` command" or drop it wherever your tool
> it by name ("follow `add-command.md` to add a `clear` command"), or drop it wherever your tool
> auto-discovers procedures (a skills/commands folder). The steps are the same either way.
## When to use this
Invoke this whenever the task is **"add a new subcommand to the `tasks-app` CLI."** It exists so a
new command lands the *same* way every time: real code, a real test, a changelog line, and a clean
commit never just the code with the rest forgotten.
commit; never just the code with the rest forgotten.
If the task is *not* "add a CLI command" (a bug fix, a refactor, a docs change), this skill does not
apply. Don't force it.
@@ -17,18 +17,18 @@ apply. Don't force it.
Ask for these if they weren't given:
- `COMMAND_NAME` the subcommand word, e.g. `clear`.
- `WHAT_IT_DOES` one sentence of intended behavior, e.g. "remove all tasks."
- `COMMAND_NAME`: the subcommand word, e.g. `clear`.
- `WHAT_IT_DOES`: one sentence of intended behavior, e.g. "remove all tasks."
## Project facts (so you don't have to rediscover them)
- Core logic lives in `tasks.py` (the `TaskList` class). The CLI front end is `cli.py`. State
persists to `tasks.json` **never edit `tasks.json` by hand; it's generated.**
- Tests live in `test_tasks.py` and run with `python -m unittest`. Standard library only no
persists to `tasks.json`. **Never edit `tasks.json` by hand; it's generated.**
- Tests live in `test_tasks.py` and run with `python -m unittest`. Standard library only; no
third-party packages, no new dependencies.
- The human-facing change log is `CHANGELOG.md`, newest entry on top.
## Procedure do these in order, do not skip
## Procedure: do these in order, do not skip
1. **Core logic in `tasks.py`.** If the command needs new behavior on the task list, add a small
method to `TaskList` (e.g. `clear()`). Keep it minimal; match the existing style. If the command
@@ -43,7 +43,7 @@ Ask for these if they weren't given:
A test that passes against a broken implementation is worse than no test.
4. **Run the tests.** `python -m unittest` from the project root. Do not claim success until it's
green. If it fails, fix the code not the test and run again.
green. If it fails, fix the code, not the test, and run again.
5. **Smoke-test the CLI.** Actually run it: `python cli.py COMMAND_NAME`, then `python cli.py list`
to confirm the visible result. Paste what you ran and what it printed.
@@ -60,8 +60,8 @@ Ask for these if they weren't given:
- `python -m unittest` is green and includes a new test that actually exercises `COMMAND_NAME`.
- `python cli.py COMMAND_NAME` does `WHAT_IT_DOES` and you've shown the output.
- `CHANGELOG.md` has a new top line for the command.
- One commit contains the code, the test, and the changelog line and nothing else (no
- One commit contains the code, the test, and the changelog line, and nothing else (no
`tasks.json`, no unrelated reformatting).
If any of those is missing, the skill isn't finished. Report which step failed and stop don't
If any of those is missing, the skill isn't finished. Report which step failed and stop; don't
paper over it.
@@ -5,7 +5,7 @@ Run it:
python cli.py list
python cli.py count
State is kept in tasks.json next to this file. The same minimal app from Module 1 onward the
State is kept in tasks.json next to this file. The same minimal app from Module 1 onward; the
target your "add a command" skill extends.
"""