Settle
One unsettled point in specs/requirements/prd.md, taken to a decision. The
instruction names the point — the line the user clicked. A bare instruction
means the Open Questions list.
The PRD carries two kinds of unsettled, and they are not the same job:
- An assumption is a judgment the agent already made. It is flagged
*assumed*and it is doing real work in the document. Settling it challenges an answer that already exists. - An open question is a hole nobody has filled — a fact only the user holds, which is why it was never guessed. Settling it fills it for the first time.
The grilling skill owns the question mechanics; prd-contract owns the shape
of what you write.
Revision propagates
This is the whole job. The point does not live alone: the document was written on top of it — stories it implied, decisions that leaned on it, an Out of Scope line it justified. So settling is one question, then a sweep for everything the old answer held up.
Amending only the line the user clicked leaves the PRD agreeing with itself in one place and contradicting itself everywhere else. Story numbers stay permanent through all of it: a story the new answer kills becomes an Out of Scope line, never a deleted number.
The sweep ends at the PRD. When a settled point would also change a design that already exists, say so in the close and leave it to the user.
Challenging an assumption
Put the assumption to the user as the decision it is — what you decided, why, and what the alternative costs — then:
- Confirmed — the tag comes off. It was a real decision all along; it is now the user's.
- Overturned — write the new answer in its place, unflagged, and sweep.
Answering an open question
An external service is a given or nothing: a Registered External resource or
a service the user already uses is written as the decision; "no preference"
leaves the capability unnamed, and the choice waits on the dependency's
definition at design (prd-contract). Never settle a capability by proposing
a provider.
Ask it. The answer moves to the section it belongs in — a decision, a story, a scope line — and the entry leaves Open Questions. An answer parked in the Open Questions list is not an answer.
A bare instruction walks the list this way, one ask_question per entry,
including the deferred ones — the user opened the section, so they are taking
it up.
Deferring
"Later", "I don't know yet", "stop asking" — mark the entry
deferred — the user will decide later and leave it in place.
Deferral is an outcome of this conversation, never something the user reaches for on its own, and it gates nothing: it is the user's way of saying stop raising this. Honour it — a deferred point stays out of later rounds until the user brings it back.
Close
Say what settled and what moved with it — the point, where its answer landed, and every other line the sweep changed. A sweep that changed nothing else says so, in a line.