Documentation Index
Fetch the complete documentation index at: https://docs.roboticks.io/llms.txt
Use this file to discover all available pages before exploring further.
Snapshotting
The single property that makes Roboticks audit-grade is this: when you cut a release, the requirement set for that release is frozen. Three years later, when an auditor opens the evidence pack, they see exactly what you verified against — not a drifted-since version, not “what the team meant to verify”. The snapshot is the truth.A snapshot is immutable. Edits after a snapshot create a new version of the requirement. The snapshot keeps pointing at the version that existed at snapshot time, forever.
When a snapshot is created
A snapshot is created when:| Trigger | What is snapshotted |
|---|---|
You cut a release in Roboticks (rbtk release create v1.2.0 or the dashboard equivalent) | The current state of every requirement, every link, and every verification result on the chosen SHA. |
| A scheduled rollup runs (optional, per-project, default off) | Same as above, on a fixed cadence. Useful for monthly audit-ready packs without an explicit release. |
The SDK calls client.snapshots.create(...) from a custom script | Same. |
What goes into a snapshot
Every artifact carries the snapshot ID. Browsing the matrix in “snapshot v1.2.0” mode shows you the world as it was at snapshot time, not the live state.Editing a snapshotted requirement
You can edit any requirement at any time. What happens to a snapshotted one:- The edit creates a new version of the requirement. The version number increments (e.g.
REQ-014@v3→REQ-014@v4). - The snapshot keeps pointing at the old version.
v1.2.0still verifies againstREQ-014@v3. - The live state moves to
REQ-014@v4. The next snapshot will pick upv4. - The audit trail records the diff (field-level), the author, the timestamp, and the linked release(s) affected.
- Stability. A release once shipped does not change.
- Evolution. Requirements get tightened, clarified, and added as the product matures.
Deleting a snapshotted requirement
You can’t truly delete a snapshotted requirement — the snapshot needs it. What you can do:- Mark as obsolete in the live state. Future snapshots won’t include it. Past snapshots still do.
- Hard-delete from the live state. Permitted only if the requirement is not in any snapshot. Once snapshotted, it’s around for the snapshot’s retention life.
Snapshot retention
| Tier | Snapshot retention |
|---|---|
| Free | 90 days |
| Team | 10 years (EU Product Liability tail) |
| Enterprise | 10 years (Glacier Deep Archive, retrievable on demand) |
The audit trail
Every edit on a requirement — pre- or post-snapshot — is appended to the requirement’s audit trail. Each entry records:- The full pre/post state of every field that changed.
- The author (GitHub user or Roboticks dashboard user).
- The timestamp (server-side UTC).
- The originating action (web edit, ReqIF re-import, SDK call, etc.).
- The releases affected (which snapshots reference the prior version).
Snapshots vs Git tags
A Roboticks snapshot is not a Git tag. They overlap — a snapshot is usually tied to a SHA that is also tagged in Git — but the snapshot captures more than the commit:| Git tag | Roboticks snapshot | |
|---|---|---|
| Source code state | ✓ | ✓ (via SHA pointer) |
| Test results | ✗ | ✓ |
| Requirement set | ✗ | ✓ (frozen) |
| Verification status per requirement | ✗ | ✓ |
| Audit trail of who changed what when | ✗ | ✓ |
| Tamper-evident hash chain | ✗ | ✓ |
| Retention policy | Repo-managed | Tier-bound, 10 yr on Team / Enterprise |
Branching: long-lived release branches
Long-lived release branches (e.g.release/v1.x) generate their own snapshot lineage. The snapshot for v1.2.0 is independent of v1.3.0, which is independent of v2.0.0. Each lineage has its own audit trail and its own evidence packs.
This matches the way regulated teams ship — v1.x keeps getting safety patches for years after v2.0 lands; each v1.x.y patch needs its own audit-grade evidence pack against the requirements as they stood for that lineage.
Re-running tests against an old snapshot
Sometimes you need to re-run the tests as they existed at a snapshot — for example, to investigate a regression report from the field. The CLI:Next
Evidence pack
The PDF / ReqIF / ZIP a snapshot generates.
Hierarchy
How tree shape interacts with snapshots.
Coverage
Snapshot vs live coverage states.
CLI release commands
rbtk release and rbtk snapshots.