@stravica-ai/rcf-schemas 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to `@stravica-ai/rcf-schemas` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format roughly follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Pre-1.0 breaking changes are signalled by a minor bump per semver 0.x convention.
|
|
6
6
|
|
|
7
|
+
## 0.4.1 - 2026-07-31
|
|
8
|
+
|
|
9
|
+
Additive patch bump: closes the verification-integrity B-1 finding on the 0.7.0 train by giving `rcf finalise --ship-without-verified` a durable, greppable manifest record.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`manifest.schema.json`**: new optional `shipWithoutVerified[]` array on the manifest. Each entry carries `id` (pattern `swv-<fbsId>-<n>`), `fbsId`, `ackedAt` timestamp, `declaredAcs[]` (each with `acId`, a `verdict` enum restricted to `MOCK-ONLY-DECLARED` or `BLOCKED-BY-DECLARATION`, and an optional `reason` string), and `reportPath`. New `$defs`: `shipWithoutVerifiedRecord`, `shipWithoutVerifiedDeclaredAc`. Written by build-side `rcf finalise --ship-without-verified` (rcf-build-lite 0.7.0 train, verification-integrity-cluster-spec section 5.2).
|
|
14
|
+
- Fixture: `fixtures/valid/manifest/manifest-006-ship-without-verified.json` proves the new field validates, alongside a fresh pre-0.4.1 back-compat fixture pass.
|
|
15
|
+
- Tests: `manifest.test.js` covers the new field, the id pattern, the verdict enum guard, and back-compat.
|
|
16
|
+
|
|
17
|
+
### Notes
|
|
18
|
+
|
|
19
|
+
- Additive-only: pre-0.4.0 and 0.4.0 manifests remain valid unchanged.
|
|
20
|
+
- Canonical `$id` URLs stay at `v0.4.0`, following the patch-release precedent set at 0.2.1 and 0.3.1.
|
|
21
|
+
|
|
7
22
|
## 0.4.0 - 2026-07-30
|
|
8
23
|
|
|
9
24
|
Additive minor bump carrying the 0.7.0 release-train schema surface for `rcf-lite`: three ratified track specs (verification-integrity, UI-design-gate, elicitation-and-playbook-hardening) co-ship every new schema field in one release, resolved through a single `$defs`-uniqueness sweep. Every field is optional at schema level; pre-0.4.0 chains remain valid. The 0.6.0 init-hygiene spec is pure build-side and touches no schemas here.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0.0",
|
|
3
|
+
"projectName": "Ship-without-verified ack coverage",
|
|
4
|
+
"prd": { "id": "PRD-001", "path": "rcf/prd.json" },
|
|
5
|
+
"tad": { "id": "TAD-001", "path": "rcf/tad.json" },
|
|
6
|
+
"bs": { "id": "BS-001", "path": "rcf/build-sequence.json" },
|
|
7
|
+
"shipWithoutVerified": [
|
|
8
|
+
{
|
|
9
|
+
"id": "swv-FBS-011-1",
|
|
10
|
+
"fbsId": "FBS-011",
|
|
11
|
+
"ackedAt": "2026-07-31T10:15:00Z",
|
|
12
|
+
"declaredAcs": [
|
|
13
|
+
{
|
|
14
|
+
"acId": "AC-1001-2",
|
|
15
|
+
"verdict": "MOCK-ONLY-DECLARED",
|
|
16
|
+
"reason": "no Resend live-path credentials available at ship time"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"acId": "AC-1001-3",
|
|
20
|
+
"verdict": "BLOCKED-BY-DECLARATION"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"reportPath": ".rcf-verify-report.json"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schemas.stravica.io/rcf/v0.4.0/manifest.schema.json",
|
|
4
4
|
"title": "RCF Project Manifest",
|
|
5
|
-
"description": "Project manifest. Roots-only shape: declares prd, tad, bs. Children are owned by their parents and discovered by walking from the roots. From 0.4.0 the manifest also carries optional records for pre-flight configuration, review audits, UI baselines, browser verification, baseline-AC opt-outs, intake classification, register-regression canaries, and the review-surface state. Every added field is optional; pre-0.4.0 manifests remain valid.",
|
|
5
|
+
"description": "Project manifest. Roots-only shape: declares prd, tad, bs. Children are owned by their parents and discovered by walking from the roots. From 0.4.0 the manifest also carries optional records for pre-flight configuration, review audits, UI baselines, browser verification, baseline-AC opt-outs, intake classification, register-regression canaries, and the review-surface state. From 0.4.1 the manifest additionally carries optional shipWithoutVerified acknowledgements written by rcf finalise --ship-without-verified. Every added field is optional; pre-0.4.0 manifests remain valid.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["version", "projectName", "prd", "tad", "bs"],
|
|
@@ -50,7 +50,12 @@
|
|
|
50
50
|
"items": { "$ref": "#/$defs/registerCanaryRecord" },
|
|
51
51
|
"description": "Register-regression canary records. One entry per canary run at release preparation."
|
|
52
52
|
},
|
|
53
|
-
"reviewSurface": { "$ref": "#/$defs/reviewSurfaceRecord" }
|
|
53
|
+
"reviewSurface": { "$ref": "#/$defs/reviewSurfaceRecord" },
|
|
54
|
+
"shipWithoutVerified": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": { "$ref": "#/$defs/shipWithoutVerifiedRecord" },
|
|
57
|
+
"description": "Operator acknowledgements recorded when rcf finalise --ship-without-verified acknowledges a MOCK-ONLY-DECLARED or BLOCKED-BY-DECLARATION verdict on the verify report and ships the FBS at complete without promoting to verified. One entry per acknowledgement (verification-integrity-cluster-spec section 5.2). The ack is durable and greppable at ship time."
|
|
58
|
+
}
|
|
54
59
|
},
|
|
55
60
|
"$defs": {
|
|
56
61
|
"preFlightConfigRecord": {
|
|
@@ -700,6 +705,48 @@
|
|
|
700
705
|
"lastHeartbeatAt": { "$ref": "https://schemas.stravica.io/rcf/v0.4.0/common.schema.json#/$defs/timestamp" },
|
|
701
706
|
"operatorRequestedPersistUntil": { "$ref": "https://schemas.stravica.io/rcf/v0.4.0/common.schema.json#/$defs/timestamp" }
|
|
702
707
|
}
|
|
708
|
+
},
|
|
709
|
+
"shipWithoutVerifiedRecord": {
|
|
710
|
+
"type": "object",
|
|
711
|
+
"additionalProperties": false,
|
|
712
|
+
"required": ["id", "fbsId", "ackedAt", "declaredAcs", "reportPath"],
|
|
713
|
+
"properties": {
|
|
714
|
+
"id": {
|
|
715
|
+
"type": "string",
|
|
716
|
+
"pattern": "^swv-FBS-\\d{3,}-\\d+$",
|
|
717
|
+
"description": "Ship-without-verified acknowledgement id. Format: swv-<fbsId>-<n>; the trailing integer increments per acknowledgement of the same FBS."
|
|
718
|
+
},
|
|
719
|
+
"fbsId": { "$ref": "https://schemas.stravica.io/rcf/v0.4.0/common.schema.json#/$defs/fbsId" },
|
|
720
|
+
"ackedAt": { "$ref": "https://schemas.stravica.io/rcf/v0.4.0/common.schema.json#/$defs/timestamp" },
|
|
721
|
+
"declaredAcs": {
|
|
722
|
+
"type": "array",
|
|
723
|
+
"minItems": 1,
|
|
724
|
+
"items": { "$ref": "#/$defs/shipWithoutVerifiedDeclaredAc" },
|
|
725
|
+
"description": "The per-AC verdicts on the verify report that the operator acknowledged. At least one entry, otherwise there is nothing to acknowledge."
|
|
726
|
+
},
|
|
727
|
+
"reportPath": {
|
|
728
|
+
"type": "string",
|
|
729
|
+
"minLength": 1,
|
|
730
|
+
"description": "Path (repo-relative or absolute as recorded by finalise) to the verify report file that carried the acknowledged verdicts."
|
|
731
|
+
}
|
|
732
|
+
},
|
|
733
|
+
"description": "Operator acknowledgement recorded on rcf finalise --ship-without-verified. Records the FBS, the verify verdicts acknowledged, and the report they came from, so the ack is durable and greppable at ship time."
|
|
734
|
+
},
|
|
735
|
+
"shipWithoutVerifiedDeclaredAc": {
|
|
736
|
+
"type": "object",
|
|
737
|
+
"additionalProperties": false,
|
|
738
|
+
"required": ["acId", "verdict"],
|
|
739
|
+
"properties": {
|
|
740
|
+
"acId": { "$ref": "https://schemas.stravica.io/rcf/v0.4.0/common.schema.json#/$defs/acId" },
|
|
741
|
+
"verdict": {
|
|
742
|
+
"enum": ["MOCK-ONLY-DECLARED", "BLOCKED-BY-DECLARATION"],
|
|
743
|
+
"description": "The verify per-AC verdict class the operator acknowledged. Only these two verdict classes are legitimately acknowledgeable via --ship-without-verified."
|
|
744
|
+
},
|
|
745
|
+
"reason": {
|
|
746
|
+
"type": "string",
|
|
747
|
+
"description": "Optional verify-supplied reason string carried through from the report entry."
|
|
748
|
+
}
|
|
749
|
+
}
|
|
703
750
|
}
|
|
704
751
|
}
|
|
705
752
|
}
|