Skip to content

Commit 099767b

Browse files
committed
Upgrade ssot-registry and align claim tier validation
1 parent bdbb559 commit 099767b

59 files changed

Lines changed: 1871 additions & 446 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
The only authored machine-readable source of truth is `.ssot/registry.json`.
3-
decision_date: null
4-
id: "adr:0600"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0600"
64
number: 600
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "canonical-json-registry"
6+
title: "Canonical registry is a single JSON document"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "The only authored machine-readable source of truth is `.ssot/registry.json`."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Canonical registry is a single JSON document"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
The only authored machine-readable source of truth is `.ssot/registry.json`.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
Features are the only targetable implementation units. There is no separate `targets[]` section.
3-
decision_date: null
4-
id: "adr:0601"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0601"
64
number: 601
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "features-are-targetable-units"
6+
title: "Features are the targetable units"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "Features are the only targetable implementation units. There is no separate `targets[]` section."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Features are the targetable units"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
Features are the only targetable implementation units. There is no separate `targets[]` section.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
Issues and tickets can be planned as current, next, future, explicit, backlog, or out-of-bounds, but they are not substitute targets for features.
3-
decision_date: null
4-
id: "adr:0602"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0602"
64
number: 602
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "issues-are-plannable-work-items"
6+
title: "Issues are plannable work items"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "Issues and tickets can be planned as current, next, future, explicit, backlog, or out-of-bounds, but they are not substitute targets for features."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Issues are plannable work items"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
Issues and tickets can be planned as current, next, future, explicit, backlog, or out-of-bounds, but they are not substitute targets for features.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
The canonical registry is entity-centric JSON with explicit references. A graph export is derived from it.
3-
decision_date: null
4-
id: "adr:0603"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0603"
64
number: 603
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "entity-centric-registry-derived-graph"
6+
title: "Entity-centric registry with a derived graph export"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "The canonical registry is entity-centric JSON with explicit references. A graph export is derived from it."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Entity-centric registry with a derived graph export"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
The canonical registry is entity-centric JSON with explicit references. A graph export is derived from it.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
Every first-class entity uses a normalized prefixed ID.
3-
decision_date: null
4-
id: "adr:0604"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0604"
64
number: 604
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "normalized-prefixed-ids"
6+
title: "Normalized prefixed IDs"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "Every first-class entity uses a normalized prefixed ID."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Normalized prefixed IDs"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
Every first-class entity uses a normalized prefixed ID.
Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,33 @@
1-
body: |-
2-
Claim status expresses lifecycle progression. Claim tier expresses assurance strength.
3-
decision_date: null
4-
id: "adr:0605"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0605"
64
number: 605
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "claim-status-vs-tier"
6+
title: "Claim status and claim tier are orthogonal"
117
status: "draft"
12-
status_notes: []
13-
summary: "Claim status expresses lifecycle progression. Claim tier expresses assurance strength."
14-
superseded_by: []
15-
supersedes: []
8+
origin: "ssot-origin"
9+
decision_date: null
1610
tags: []
17-
title: "Claim status and claim tier are orthogonal"
11+
summary: "Claims carry both lifecycle status and assurance tier. Earlier wording stated that status and tier are orthogonal, but the registry now also needs explicit promotion gates so a high lifecycle status cannot be mistaken for high assurance."
12+
supersedes: []
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
## Context
18+
19+
Claims carry both lifecycle status and assurance tier. Earlier wording stated that status and tier are orthogonal, but the registry now also needs explicit promotion gates so a high lifecycle status cannot be mistaken for high assurance.
20+
21+
## Decision
22+
23+
Claim status expresses lifecycle progression. Claim tier expresses assurance strength.
24+
25+
Status values such as `asserted`, `evidenced`, `certified`, `promoted`, and `published` indicate where the claim sits in the registry workflow. They do not authorize stronger assurance language or a higher claim tier.
26+
27+
Tier values `T0` through `T4` indicate what kind of proof supports the claim. A claim may only be treated as valid at a requested tier when the applicable claim tier gate passes.
28+
29+
## Consequences
30+
31+
Automation and reviewers must not infer assurance strength from status alone. A claim with a high lifecycle status but insufficient tier-gate evidence must be reported as over-stated or blocked at the requested tier.
32+
33+
Claim closure remains a support-coherence check. Tier gates remain the authority for the semantic meaning of `T1`, `T2`, `T3`, and `T4`.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
`implementation_status` and `lifecycle.stage` are distinct fields.
3-
decision_date: null
4-
id: "adr:0606"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0606"
64
number: 606
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "feature-implementation-vs-lifecycle"
6+
title: "Feature implementation state is separate from lifecycle state"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "`implementation_status` and `lifecycle.stage` are distinct fields."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Feature implementation state is separate from lifecycle state"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
`implementation_status` and `lifecycle.stage` are distinct fields.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
Frozen boundaries and promoted/published releases emit immutable snapshots with hashes.
3-
decision_date: null
4-
id: "adr:0607"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0607"
64
number: 607
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "immutable-boundary-and-release-snapshots"
6+
title: "Immutable boundary and release snapshots"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "Frozen boundaries and promoted/published releases emit immutable snapshots with hashes."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Immutable boundary and release snapshots"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
Frozen boundaries and promoted/published releases emit immutable snapshots with hashes.
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
body: |-
2-
Validation, certification, promotion, publication, and lifecycle transitions refuse to proceed on guard violations.
3-
decision_date: null
4-
id: "adr:0608"
1+
schema_version: "0.6.0"
52
kind: "adr"
3+
id: "adr:0608"
64
number: 608
7-
origin: "ssot-origin"
8-
references: []
9-
schema_version: "0.1.0"
105
slug: "fail-closed-guards"
6+
title: "Fail-closed guards"
117
status: "draft"
12-
status_notes: []
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
1311
summary: "Validation, certification, promotion, publication, and lifecycle transitions refuse to proceed on guard violations."
14-
superseded_by: []
1512
supersedes: []
16-
tags: []
17-
title: "Fail-closed guards"
13+
superseded_by: []
14+
status_notes: []
15+
references: []
16+
body: |-
17+
Validation, certification, promotion, publication, and lifecycle transitions refuse to proceed on guard violations.
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
schema_version: "0.6.0"
2+
kind: "adr"
3+
id: "adr:0609"
4+
number: 609
5+
slug: "generated-projections-are-non-canonical"
6+
title: "Generated projections are non-canonical"
7+
status: "draft"
8+
origin: "ssot-origin"
9+
decision_date: null
10+
tags: []
11+
summary: "This is an `ssot-origin` ADR copied into downstream SSOT repositories."
12+
supersedes: []
13+
superseded_by: []
14+
status_notes: []
15+
references: []
116
body: |-
217
This is an `ssot-origin` ADR copied into downstream SSOT repositories.
318
@@ -15,18 +30,3 @@ body: |-
1530
- reports and snapshots,
1631
- rendered or exported representations such as CSV, YAML, TOML, DOT, PNG, and SVG,
1732
- mirrored or regenerated documentation derived from the canonical SSOT content.
18-
decision_date: null
19-
id: "adr:0609"
20-
kind: "adr"
21-
number: 609
22-
origin: "ssot-origin"
23-
references: []
24-
schema_version: "0.1.0"
25-
slug: "generated-projections-are-non-canonical"
26-
status: "draft"
27-
status_notes: []
28-
summary: "This is an `ssot-origin` ADR copied into downstream SSOT repositories."
29-
superseded_by: []
30-
supersedes: []
31-
tags: []
32-
title: "Generated projections are non-canonical"

0 commit comments

Comments
 (0)