What a requirement is
One thing that must be true of this server, with where the demand came from and
what holds it to that. A test where there is one, not guarded where there is
none.
It has to hold on while everything around it changes. That is what makes it worth a file of its own rather than a sentence in the change that established it. The change ends, the demand does not.
This is the base. What a change rested on and what would show it wrong is a
decision. A requirement names the ones it stands on in its own restsOn:, see
what a decision is. Where an entry goes and how to write it
is Writing a requirement.
A feedback is one route a demand arrives by, and the most common one. It is not what this directory is for. A reader reads an entry long after the question that produced it had its answer. A demand arrives as readily from a review, from a recorded run, or from a read that found nothing that holds a rule everybody assumed.
What the state means#
status is held or open, and a third state derives from them:
- open — accepted and not built yet. It comes out beside not guarded rather than in a list of its own. A requirement nobody has implemented and one that could silently regress are the same kind of thing.
- not guarded — built, and
heldBynames no test. It never stands in the front matter. An entry may not claim it of itself, and it is what a claim ofheldturns out to be. It is the honest answer for a requirement no test can hold. It is the one worth a look in a listing, because from afar it looks exactly likeheld. - held — built, and the tests it names hold it there. They name themselves.
A test carries
#[Requirement]andbin/cli requirements:coverwritesheldByfrom it, so the state follows the tests rather than a list somebody keeps.
They are the RequirementState enum. bin/cli requirements:check cannot
fail on open or not guarded, since both are legitimate.
bin/cli unresolved:list reads them out instead, together with the
decision about each. That is a todo that names the id, or a judged: date
that says a session read the entry and left it as it is. See
judging one. Nothing in requirements/ reaches
the order of the work on its own; that listing is the whole of the tie.