389ac2e460
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
103 lines
5.8 KiB
Markdown
103 lines
5.8 KiB
Markdown
# AGENTS.md — instructions for AI agents working in this repo
|
||
|
||
> This is the committed AI instructions file for *The Workflow* course. It exists for two reasons:
|
||
> it actually configures the agents that help author the course, **and** it is a live worked example
|
||
> of [Module 5 — Commit the AI's Config, Not Just the Code](modules/05-commit-the-ai-config/). The
|
||
> filename is deliberately vendor-neutral: most agentic coding tools read a repo-level instructions
|
||
> file, and the principle outlives any one vendor's filename. If your tool looks for a different
|
||
> name, point it here.
|
||
|
||
## What this repo is
|
||
|
||
A course that teaches IT professionals the engineering toolchain *around* AI coding — version
|
||
control, collaboration, CI/CD, and the tools that extend AI into real systems. The repo is both the
|
||
course content and a dogfooded example of the practices it teaches.
|
||
|
||
- **Source of truth for structure:** `the-workflow-syllabus.md`. Don't re-derive decisions it
|
||
settles; read it first.
|
||
- **Build-context for authoring:** `handoff.md`. The "how" of building, plus the owner's settled
|
||
decisions.
|
||
- **Every module follows** `_TEMPLATE.md`. Don't invent a new shape per module.
|
||
|
||
## Core promises (do not violate)
|
||
|
||
- **Model-agnostic in principle; Claude Code as the concrete example.** The concepts and workflow
|
||
never depend on one LLM or tool. Name the common agentic tools once, then use **Claude Code** as
|
||
the worked example in commands and labs — e.g. `claude --version # sub your own agent`. Keep the
|
||
*concepts* vendor-neutral; use a concrete tool so steps aren't abstract. Examples must survive a
|
||
model swap.
|
||
- **GitHub is the default, not the requirement.** Keep hosting content provider-neutral; name the
|
||
alternatives and the self-host track. Do not reintroduce a single specific forge as *the* answer.
|
||
- **The dependency chain is load-bearing.** A module may assume only what precedes it. Never
|
||
reference a tool before its introducing module. If you think something should move, **flag it** —
|
||
don't silently reorder.
|
||
- **Honesty about limits.** Where a tool or analogy breaks, say so. Don't sand off the caveats.
|
||
- **Don't pad.** This audience reads fast and trusts concrete over comprehensive. Lead with the
|
||
pain, show the command and the failure mode.
|
||
|
||
## What the course teaches about git (the reframe)
|
||
|
||
This is **not** a "memorize git commands" course. The reader should finish knowing git is
|
||
*critical*, understanding the *concepts* and the *basics*, and — above all — that they don't have to
|
||
memorize commands because **the AI drives git for them**. The analogy: learn arithmetic by hand,
|
||
then use a calculator.
|
||
|
||
- **Modules 1–3 teach the mechanics by hand, on purpose.** The AI is still in the browser; the
|
||
learner types git to build intuition. Keep that.
|
||
- **Module 4 is the pivot.** It puts the AI in the editor/CLI. From there on the learner **directs
|
||
the AI** to do the git work (commit, branch, merge, revert, decide what to commit) and **verifies**
|
||
the result — they don't type the commands by hand, and modules must not tell them to.
|
||
- **Don't re-teach basics.** Once a concept is introduced, later modules build on it through the AI;
|
||
they don't re-explain how to create a branch, etc.
|
||
|
||
## Lesson vs. lab (keep them separate)
|
||
|
||
- The **lesson / Key-concepts** section is **theory**. To show a command, show it *with example
|
||
output* as illustration — never instruct the reader to *run* it there.
|
||
- **All hands-on execution lives in the lab.** The lesson must not duplicate commands the lab runs.
|
||
|
||
## Voice
|
||
|
||
Direct, concrete, rigorous. Reframe ops instincts the reader already has toward AI-assisted work.
|
||
No motivational filler. When in doubt, show the command and what goes wrong without it.
|
||
|
||
**No slop (hard rules).** Don't write like an AI.
|
||
|
||
- **No em-dash character (`—`) anywhere.** Use a semicolon, a period, a comma, or restructure the
|
||
sentence. This is absolute; self-check every edit by searching for `—` and removing each one.
|
||
- **Banned words:** "prose" (say "writing"/"words"/"docs"), delve, leverage, utilize, foster,
|
||
bolster, underscore, unveil, streamline, robust, comprehensive, pivotal, seamless, significantly,
|
||
extremely, truly, unlock, "dive in".
|
||
- **Banned openers/transitions:** Furthermore, Moreover, That being said, In today's world,
|
||
It's worth noting, When it comes to.
|
||
- No hollow "this is important" statements, no intensifier standing in for a number, no weasel
|
||
hedges ("may potentially", "can help to"), no dramatic/teasing headings (a heading names its
|
||
content). End claims on a concrete, checkable fact.
|
||
|
||
## Conventions for labs
|
||
|
||
- Labs run on the learner's **own machine, any OS**. Don't assume a sandbox, cloud account, or
|
||
specific shell beyond what's stated.
|
||
- Lean on **Python or shell**, chosen per lab, kept minimal. State the language once per lab.
|
||
- Every module ends at a keyboard (a lab), not a quiz, and has a concrete "you're done when…" check.
|
||
|
||
## Working in this repo (dogfooding the course)
|
||
|
||
This repo is hosted on `git.jpaul.io`. Follow the same flow the course teaches:
|
||
|
||
- **Never commit directly to `main`.** Branch per module/change, open a PR, squash-merge. The PR is
|
||
the review gate (Module 10) even for solo work — it exists for traceability.
|
||
- **Build in dependency-chain order.** Modules 1–2 are the locked exemplars; match their tone,
|
||
depth, and lab style.
|
||
- **Verify before publishing volatile claims.** Anything about pricing, versions, or tool behavior
|
||
(especially the Module 8 hosting comparison) must be checked at build time, not written from
|
||
memory. Mark such claims with a "Verify-before-publish" note.
|
||
|
||
## Don't
|
||
|
||
- Duplicate or fork `the-workflow-syllabus.md` — edit it in place if structure changes.
|
||
- Reorder modules or break the dependency chain without flagging it.
|
||
- Pin to a specific LLM vendor or a specific tool's config filename.
|
||
- Write pricing/version claims from memory.
|
||
- Pad.
|