Skip to main content

Which primitive?

Should this be a prompt, an instruction, a skill, a subagent, a hook, a workflow, a goal, a loop, a routine, or CI? The course outline answers that in a handful of tables. This page puts them in one place, lets you test yourself against them, and checks a real instructions file for rules that need something stronger than prose.

Writing a rule down doesn’t make it happen. Everything here shows where a choice sits on the ladder from “asks” to “refuses.”

Predict first

Before anything else, where would you put this one?

“Ensure all contributors obey this check”
Where does it belong? Pick one before you see the answer.

The map

Across: who decides it runs. Down: how strongly it enforces, from refusing no matter what at the top to only asking. Choose a mechanism to open its card and light its rung.

The outline’s operating model has five concerns. Pick one to highlight the mechanisms that serve it.

Decided by you

Decided by the model

Decided by an event

Decided by a schedule

Ask it of every rule. Formatting goes to the formatter. Forbidden imports go to the linter. “Don’t write to production” goes to the credentials: the agent shouldn’t have them. Prose is for judgment calls. From the course outline

Almost every mistake here is the same one: treating writing something down as doing it. A rule in an instructions file can only ask. A permission rule, a hook, a required check, or the OS can refuse. If it matters, make it executable.

Everything on this page is the course outline’s editorial guidance, not a description of how any tool behaves. The linter’s rules are simple, visible heuristics, and you can edit them.