Jira / user story
- Story As a buyer I want to pay so the seller receives funds
- AC Card charged once · funds arrive · cart preserved on failure
- Status Done after the children went green
Topic · Acceptance criteria
Gist
Acceptance criteria are usually a Done list on a user story. Proof fails proof audit --check acceptance_criteria_witnessed unless each testable stakeholder criterion has its own acceptance test, not a unit test on a child.
proof audit --check acceptance_criteria_witnessed
Keep Jira if you need a story template. Keep Jama if you author shalls. Proof will not count green children as the assembled whole. Jama still authors.
01 · The story is not the witness
The ticket lists three bullets. The children have unit tests. The seller never receives the funds. The story still reads Done.
The glossary pages (Atlassian, Scrum Alliance, the product blogs) define acceptance criteria as the conditions that mark a user story complete. That is a planning artifact. Proof stores the criterion on a stakeholder requirement and asks for a witness at the same level: an end-to-end acceptance test annotated
STK-REQ:<AC-id>:acceptance.
Decomposition is not that witness. A nominal-covered child verifies its own shall. It does not verify the assembled whole. That gap is how “users can pay” ships with eleven system requirements and no criterion that the funds reach the seller.
The command is deterministic. It does not call a model. It does not write the Jira story. It refuses a silent pass when a testable criterion has no acceptance test and no honest deferral.
proof validate --strict
proof audit --check stakeholder_acceptance_criteria
proof audit --check acceptance_criteria_witnessed
The first command checks criterion ids and text. The second refuses an empty
acceptance_criteria: list on a stakeholder requirement. The third is the default-on witness check. Printing Done on the story after the children went green is how the assembled whole stayed untested.
02 · The exhibit
The ticket still has the bullets. STK-REQ-007 never gained an acceptance test. Click the tabs.
Jira / user story
This criterion
No acceptance test. Eleven SYS-REQs. The seller path was never exercised as a whole.
No witnessJira / user story
Still the story. Still a Done field.
Keep the templateProof
Same payment. A Done story, or this witness. Click the tabs.
| What the record lists | What Proof actually does | What a green cell is not |
|---|---|---|
| Story template | Keep Jira. Proof stores the criterion on the STK-REQ YAML | Not a user-story editor. Not Cucumber. |
| Empty AC list | stakeholder_acceptance_criteria refuses a stakeholder need with no usable criteria |
Not “the SYS-REQs imply it.” |
| Witness | A test annotated <STK-REQ>:<AC-id>:acceptance on the integrated system |
Not a unit test on a derived_req. |
| Deferral | witness_deferred with a reason is counted WARNING, never a silent pass |
Not evidence. Only a real acceptance test clears it. |
| CI | Default-on warning. audit.evidence_strict can promote findings |
Not a signed V&V certificate. Jama still authors. |
The witness looks like this on a test file:
// STK-REQ-007:AC-002:acceptance
func TestSellerBalanceReceivesCartTotal(t *testing.T) {
// exercise the criterion end-to-end on the integrated system
}
If the criterion cannot be executed as a test, say so on the record
(analysis, inspection, or demonstration with a rationale). Those methods are a last resort. They are never a shortcut around writing the test.
We have not run Jira, Cucumber, and Proof on the same frozen corpus, and we have not scored this witness as a proof of the Go. The loss is named, not scored.
03 · The honest loss
The command refuses a silent pass. Proof will not pretend that YAML is a signed board pack, or that a warning is an error.
Jira still owns the story, the Done field, and the glossary. Cucumber still owns Given/When/Then scenarios. Jama still authors the shall. Proof stores the criterion in the repo and fails a silent pass when a testable AC has no acceptance test. It does not independently prove the criteria are the right criteria. It does not execute the acceptance test for you unless you wrote one. Default-on is a warning. Debt staged with
witness_deferred stays a warning even under
evidence_strict.
Proof is not Jira. It is not a user-story workshop. It is not FitNesse. Jama still authors. VectorCAST or LDRA still win at a qualified C toolchain.
The child shall still lives on derived requirements. The story-to-shall question still lives on the INCOSE Guide for Writing Requirements.
04 · Nearby questions
What are software acceptance criteria? Same URL. The typed head is acceptance criteria. The software qualifier is this page, not a twin.
How do I write acceptance criteria for a user story? Atlassian and the product blogs still win that template. This page is the witness that re-runs in CI.
proof audit --check acceptance_criteria_witnessed.
Is Proof an alternative to Jira? No. Keep the story. Proof stores the criterion on the STK-REQ. Jama still authors.
Do unit tests on derived requirements count? No. A child's unit test witnesses the child. The stakeholder criterion needs its own acceptance test.
What is integration testing? That H1 lives on integration testing. INT-REQs want an integration test. Stakeholder criteria want an acceptance test. Same V-model, different level.
What are derived requirements? That H1 lives on derived requirements.
What is the INCOSE Guide for Writing Requirements? That H1 lives on the INCOSE Guide for Writing Requirements.