Skip to content

A Plan should be able to hold reasoning before it has any Steps #9

Description

@schickling-assistant

Problem

A version declares zero or more named Step declarations, so a Plan with a goal and no Steps is representable and committable. Nothing can then be recorded against it: progress is recorded against a Step, positionally and mandatorily — compass progress <plan> <step> <kind> — and so is evidence.

A revision cannot stand in either. With no Steps there is nothing to edit or retire, and CMP.DM-R07b refuses a version that alters no Step and no goal. So the only revision an empty Plan can author is a restatement of its goal, which is a poor place to put "spent two hours on this, ruled out the obvious cause, the assumption in the goal is probably wrong."

Why this matters more than it looks

This is the exact period in which a plan is most wrong and least written down: the investigation before the shape is known.

CMP-R11 says beginning a plan "must cost one command and produce something immediately workable, with nothing to import, configure, or look up", and argues the point sharply — "a hand-written checklist is always available and always cheap. A tool that is heavier at the first step loses to the checklist before any of its guarantees can matter."

A Plan that can be created in one command and then cannot absorb anything until its author knows enough to declare named Steps has not removed the ceremony; it has moved it one step later, to the first moment there is something to say. And CMP.DM-R09a makes the workaround worse than the gap: a Step must be a named declaration, so the only way to make early work recordable is to invent Step names before the work has a shape — and CMP.DM-R10 makes those names permanent and never reusable once retired. The tool's own rules punish the workaround it forces.

The thinking done in that window is precisely what the vision says compounds. Losing it is the failure mode the whole design exists to prevent, arriving through a gap rather than through a mechanism.

What a predecessor in-house planning design concluded

It stated it as a requirement — a plan may exist without units of work while intent is still fuzzy — and separately allowed a progress record to name the plan and no unit of work, so that "fuzzy investigation can be durable." Its own review of the alternative found both failure modes: forcing structure early produces fake units of work that exist only to be recorded against, and leaving the period unrecorded loses the early learning entirely. A record with an absent Step is better than either.

The change

Make the Step optional on a progress record: a record may name a Plan alone. Consequences to settle:

  • Readiness is unaffected. Only evidence feeds acceptance, and a Plan-level record names no Step, so it contributes to no criterion and CMP.DM-R14 is untouched. Whether Plan-level evidence is meaningful at all is a separate question, and the conservative answer is no — evidence exists to satisfy a criterion, and there is nothing for it to satisfy.
  • CMP.DM-R11a still applies unchanged. The record cites the head version it was observed against, which an empty Plan has — its origin.
  • Attribution forward has nothing to do. A record against a superseded Step is attributed forward through supersedes; a Plan-level record has no Step to carry forward and stays attached to the Plan. It is presumably the first thing a reader wants when asking how a Plan began.
  • Ordering against later structure. Once Steps exist, the Plan-level records from before they did are still the reasoning that produced them. Whether they read as a preamble to the lineage or interleave with Step-level records is a presentation question, but it should be decided rather than fall out.
  • This is the same relaxation the companion issue on recording a reviewed non-change requires, and the two should land together.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions