Jama Connect
- Link STK-REQ-004 → session.go:74
Compare · Jama Connect
Jama Connect stores the links a person asserted. Proof re-reads the code on every commit and fails CI when those links are no longer true in the binary. IBM DOORS, Polarion, and codeBeamer sit on this page.
proof audit --check spec_lint_ac_subset_of_satisfies
Not a Jama alternative. Keep the ALM for programme authoring. Proof does not ingest your Jama project.
01 · Answers
The comparison, as a list. The exhibit below is the same split as a table.
02 · The distinction
Jama Connect is a real ALM. Teams author, review, and trace requirements there because that is the programme layer. Proof does not ingest your Jama project. It holds signed requirements for one component against the source, and it re-runs that check in CI.
When an engineer types a Jama link from STK-REQ-004 to session.go:74, the cell is true that day. Forty commits later the function moved. Jama still shows green, because the database only stores what it was last told. Proof's check reads the satisfies back-link and the code. If they disagree, the gate is non-zero.
The same miss exists in IBM DOORS, Polarion, and codeBeamer. They are requirements databases. None of them re-derive the link from the source on every commit.
03 · The exhibit
Jama is the programme layer. Proof is the check that the running code still keeps the requirement.
Jama Connect
Proof
Jama Connect
The function moved. The cell was never re-typed. Jama still shows green.
Still greenProof
The back-link and the code disagree. CI is red until they match.
Stale satisfiesSame link. Two moments. Click the tabs.
| Axis | Jama Connect | Proof |
|---|---|---|
| What it is | Requirements ALM. Author, review, baseline, impact across a programme. | Signed requirements in the repo for one component. Re-checked in CI. The audit is what makes that more than a database. |
| What a link means | A person asserted requirement ↔ test ↔ change. The cell stays until someone edits it. | A path re-derived from the spec and the source. Stale satisfies fails the check. |
| When the function moves | The Jama cell stays green. | CI is red until the back-link matches the code that shipped. |
| What you keep | The Jama project, workflows, and reviewers. Keep it. | Requirements as files in the repo, and a CI gate. |
| Where they win | Many authors, review states, programme-scale authoring. Proof does not replace that. | One component, held to signed requirements, on every commit. |
The check is this lint: every SYS-REQ cited in a stakeholder acceptance criterion must also appear in that child's traces.satisfies. When the two sides disagree, the matrix you would export from an ALM is already a lie.
proof audit --check spec_lint_ac_subset_of_satisfies \
--check spec_lint_ac_inverse_coverage
spec_lint_ac_subset_of_satisfies specs/stakeholder/requirements/STK-REQ-003.req.yaml:41 STK-REQ-003 AC-001 cites SYS-REQ-374 which back-links to STK-REQ-015 instead of STK-REQ-003.
04 · The honest loss
Jama still wins at the work it was built for: a requirements database, many authors, review workflow.
Jama can trace requirements. So can DOORS, Polarion, and codeBeamer. The miss is treating a green cell in the ALM as proof the running code still keeps the promise. Proof holds signed requirements for one component against the source, in CI. It is not Jama for the enterprise corpus.
A re-derived matrix still cannot invent the requirement nobody wrote. On the public jsonparser audit, a defect shipped in code that carried full structural coverage because the case that broke was never a requirement. Unspecified partitions are not in any check's denominator.