Skip to content

A refuted alternative is offered, not required #424

Description

@sameera

As a delivery lead approving a decision record, I want each refuted alternative to be something the record chose to add rather than a slot it had to fill, so that I can tell a real trade-off from a manufactured one and remove the manufactured ones cheaply.

Acceptance Criteria

  • Given a decision entry drafted with no viable alternative, when the entry is read, then it carries no refuted-alternative line and no placeholder standing in for one.
  • Given a drafted record, when a refuted alternative's stated reason for losing names no trade-off, then that alternative is reported to the reviewer as a non-blocking observation.
  • Given a drafted record at its pre-filing checkpoint, when the reviewer reads it, then every refuted alternative appears in one numbered list, each naming the decision it belongs to.
  • Given that list, when the reviewer names items to remove, then those alternatives are gone from the record body before the record sub-issue is created or updated.
  • Given a filed record body, when it is read, then no observation marker and no placeholder token from the draft appears in it.

Notes

The provenance rule does not reach this. A refuted alternative is the model's own by construction, so labelling it inferred discriminates nothing. The question that discriminates is viability — whether a competent engineer might genuinely have chosen it — and that is a judgment, not a count or a comparison. It therefore gets the treatment this epic already decided for its one other judgment rule, mechanism-naming: prevented at drafting time, reported as a non-blocking observation, decided by the reviewer.

The standing placeholder is this epic's own observed failure in a second template. The record template carries - **Refuted alternative:** {{...}} as a fixed line under every decision, with the permission to omit it sitting in an adjacent comment, while the template's filling rules say to replace every placeholder. A heading's presence beating an instruction placed near it is the same mechanism that produced the personas table.

The decision-record stage has no pre-filing checkpoint today. Its approval gate runs after the sub-issue is already filed, and offers only approve-now or leave-open — there is no point at which the body can be reduced. The command already refers to a "Phase 3.5 gate" that no phase defines; this story is where that reference acquires a phase. The list and the selection reuse the numbered-prose and named-selection shape decided for the epic digest, and the final criterion reuses the derived-body cleanliness assertion rather than restating it.

Size: M. Story type: user.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    pipelineOrchestration of the Nexus stages and human-decision gatesstoryUser story (created by nxs-gh-create-story)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions