ADR 0008: Make Command Taxonomy and Workflow Entrypoints

Ratification

Adopted before ADR 0018. There was no separate ratification process. Git history for this file on main is the record.

Context

Why this matters: A long Makefile lists many targets; without naming rules, every developer invents a personal script. That fragments onboarding (“how do I run what CI runs?”) and makes documentation brittle. Clear atomic commands (one job each) plus a few scenario entrypoints (fix → verify → release) match how people actually work.

We standardize on memorable verbs for whole workflows so new contributors do not hunt through the Makefile during every fix or release.

Decision

We use two levels of Make targets:

  1. Atomic commands remain source-of-truth building blocks (format/lint/test/docs/etc.).
  2. Scenario entrypoints provide memorable, high-level workflows.

Scenario entrypoints introduced:

Operational reference (diagrams and scenarios)

For grouped targets, PlantUML pipeline figures (sources under docs/uml/make/), and if → then onboarding flows, see the developer guide Make commands and workflows. It does not replace make help; it explains how composite targets relate for day-to-day use.

Command taxonomy

Atomic commands

Scenario entrypoints

Implementation rules

  1. Keep one canonical command per workflow; avoid duplicate aliases with identical behavior.
  2. When adding a new atomic target, update make help under Atomic commands.
  3. When adding a new multi-step process, expose it as scenario entrypoint in make help.
  4. Keep release flow explicit and parameterized via DEPLOY_CMD.

Consequences

Positive

Trade-offs

Page history

Date Change Author
Added Page history section (repository baseline). Ivan Boyarkin