Run one small change completely

kind: drill

In a practice repository, run a change from openspec propose to openspec archive for something tiny — for example, adding a --version flag to a script.

Solution

The step that surprises people is archiving: the delta disappears from changes/ and reappears inside specs/. Before archiving, specs/ describes the old target state; afterwards it describes the new one, and the change document records how it moved. Run openspec list before and after to see it.

Decide three times whether a design document is needed

kind: drill

For each, decide and justify: renaming a variable; choosing between storing dates in UTC or local time; adding a fourth field to an existing form.

Solution

Rename — no decision, no design. UTC versus local time — a real choice with consequences that will be questioned in six months, so yes. Fourth field — usually no, unless it forces a schema migration, in which case the decision is the migration, not the field.

Split an oversized change

kind: drill

Take a change whose task list contains two unrelated halves and split it into two changes with their own specs and tasks.

Solution

The split usually reveals that one half was blocking the other for no reason. That is the practical argument for small changes: they can be archived independently, so a milestone does not wait for unrelated work.

Run your project’s first change

kind: project

Propose, implement and archive the first change of your own project, and record the archived change as the evidence for your first milestone.