The file
- On disk SYS-REQ-321.req.yaml
- Rationale unquoted colon, parsed as a mapping
- Loader zero record, id gone
Topic · requirements validation
Gist
Requirements validation is whether every .req.yaml still parses as a requirement. Proof fails proof validate when an unquoted colon drops the file. A workshop that the customer still wants this is not that. Jama still authors.
proof validate
Keep Jama if you author shalls. Keep SEBoK if you teach Boehm. Proof will not treat a silent drop as a clean corpus.
01 · The silent drop
An unquoted colon in the rationale. The loader returns zero. Every later check is green on a corpus that no longer contains the shall.
GeeksforGeeks and SEBoK will tell you validation is “are we building the right thing.” Jama will run verification versus validation as a programme. That is not this URL. Proof's proof validate is the structural gate on the files you already have: YAML that still loads, required fields that still parse, variable files that still match the model, stakeholder criterion ids that still resolve.
The motivating miss is mechanical. SYS-REQ-321 has a rationale that says Declaring it as `req_type: assumption` is wrong here. YAML treats the inner colon as a mapping. repo.LoadAllSpecsFromDirs drops the spec and returns a zero record. proof req show SYS-REQ-321 says not found. Lint skips it. The audit reports a clean pass on a corpus with the id gone.
validate_passes is the only gate that reports the parse loudly: file, line, field, fix hint. The headline counts are requirements only, so they reconcile with proof status. Variable files are tallied on a second line. The exit code matches the error state.
proof validate
proof workflow check --stage spec --verbose
The first command names the file. The second fails the spec stage when the parse is still broken. A green suite next to a dropped id is how the guessed shall shipped.
02 · The exhibit
The file exists. The id does not. Click the tabs.
The file
This hop
req show says not found. Lint skips the file. The audit is clean because the shall is not in the corpus.
No recordThe file
Keep the path. Keep the id you meant. They are not the validation hop.
Keep the fileProof
Same YAML. A silent drop, or this parse. Click the tabs.
| Surface | What they do | What Proof does | What we lose |
|---|---|---|---|
| Jama | Verification versus validation as a programme. Does the product match the user. | Fail the parse on the files. File, line, field. | Not Jama's V&V. Jama still authors. |
| SEBoK / GeeksforGeeks | Boehm: are we building the right thing. | Whether the YAML still loads. Different question. | Not a workshop. Not a customer interview. |
| Requirements quality | Whether rationale, description, and FRETish are present. requirements quality. | Whether the file parses at all. Empty FRETish is later. | Not quality_clean. |
| Requirements completeness | Whether catalog ids, classes, signal rules, and checklists still agree. requirements completeness. | Parse of one file, not agreement of four ids. | Not catalog_completeness. |
| INCOSE Guide | Writing rules for the shalls. Preflight on the sentence. INCOSE. | Default validate is structure. --preflight is the variable model. |
Not the Guide. Keep the course they already run. |
The teaching graph is still an unquoted colon next to a file that looks present. Quote the rationale, or the loader will keep dropping it. Three traps ship through hand-edits that did not run validate: the inner colon, a backslash-quote in a plain scalar, and triple-single-quote bleed on description.
id: SYS-REQ-321
rationale: Declaring it as `req_type: assumption` is wrong here.
proof validate
proof audit --check validate_passes
proof workflow check --stage spec --verbose
proof help validate_passes
Quote the whole value. Then rerun validate before proof req, lint, or the spec-stage workflow. --strict fails advisory warnings too. --preflight specs/system compiler is the variable model for one component, not this H1. See
stakeholder requirements
if the failure is an empty L0 folder, not a parse.
03 · The honest loss
1401/1401 valid is not a proof of the Go. Jama still authors.
Proof does not implement Boehm's validation, Jama's V&V programme, or a stakeholder workshop. It does not infer that the shall is the right thing. A file that parses is not proof the Go matches the shall. We have not scored this against a frozen Jama validation pack. The loss is named, not scored.
validate_passes stays on this URL as the CI floor, not a twin. Quality of the fields stays on
requirements quality.
Completeness of the catalog stays on
requirements completeness.
The writing rules stay on
INCOSE.
Jama still authors.
04 · Nearby questions
What is requirements validation? Same question. Same URL.
What is verification vs validation? Jama and SEBoK mean building the right thing versus building it right. Different cluster. Not this URL.
How do I validate requirements? Same cluster. The workshop is the customer. This URL is the parse on the files.
What is requirements quality? Whether rationale and FRETish are present, after the file already parses. requirements quality.
What is requirements completeness? Whether four ids still agree, not whether YAML loads. requirements completeness.
What is the INCOSE Guide for Writing Requirements? The writing rules. Preflight on the sentence. INCOSE.
Is Proof a Jama alternative for validation? No. Jama still authors. Proof vs Jama.