@alphazede/bearing-lite 0.1.11 → 0.2.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.
Files changed (50) hide show
  1. package/CONTRIBUTING.md +25 -0
  2. package/README.md +46 -14
  3. package/hooks/assurance-budget.cjs +149 -0
  4. package/hooks/closeout.cjs +16 -0
  5. package/hooks/com.anthropic.claude-code/mapping.md +72 -0
  6. package/hooks/com.cursor/hooks.json +11 -1
  7. package/hooks/hooks.json +45 -1
  8. package/hooks/plan-package.cjs +177 -0
  9. package/hooks/planning-review.cjs +9 -14
  10. package/hooks/policy.cjs +45 -0
  11. package/hooks/reconcile.cjs +145 -0
  12. package/hooks/te-capability.cjs +137 -0
  13. package/hooks/te-host.cjs +644 -0
  14. package/hooks/transition-order.cjs +32 -2
  15. package/lineups.json +1 -0
  16. package/package.json +4 -2
  17. package/plugin.json +1 -1
  18. package/schemas/authority.schema.json +75 -0
  19. package/schemas/event.schema.json +59 -0
  20. package/schemas/implementation.schema.json +150 -0
  21. package/schemas/journey.schema.json +101 -0
  22. package/schemas/lineups.schema.json +145 -0
  23. package/schemas/seit.schema.json +108 -0
  24. package/skills/bearing-lite/SKILL.md +20 -21
  25. package/skills/bearing-lite/references/assurance-policy.md +66 -0
  26. package/skills/bearing-lite/references/lineups.md +107 -0
  27. package/skills/bearing-lite/references/peer-synthesis.md +7 -3
  28. package/skills/bearing-lite/references/role-routing.mmd +2 -2
  29. package/skills/bearing-lite/references/task-state.md +4 -4
  30. package/skills/bearing-lite/references/task-state.mmd +1 -1
  31. package/skills/bearing-lite/templates/task.md +20 -11
  32. package/skills/crewmate/SKILL.md +3 -0
  33. package/skills/explorer/SKILL.md +7 -6
  34. package/skills/gather-supplies/SKILL.md +7 -1
  35. package/skills/integration-engineer/SKILL.md +41 -0
  36. package/skills/light-implementer/SKILL.md +53 -0
  37. package/skills/map-the-route/SKILL.md +9 -7
  38. package/skills/map-the-route/references/artifact-grammar.md +67 -32
  39. package/skills/park-ranger/SKILL.md +14 -9
  40. package/skills/plan-integrator/SKILL.md +46 -0
  41. package/skills/requirements-engineer/SKILL.md +57 -0
  42. package/skills/scribe/SKILL.md +34 -0
  43. package/skills/set-bearings/SKILL.md +16 -7
  44. package/skills/set-bearings/templates/workspace.md +28 -0
  45. package/skills/surveyor/SKILL.md +15 -9
  46. package/skills/systems-modeler/SKILL.md +35 -0
  47. package/skills/test-engineer/SKILL.md +48 -0
  48. package/skills/validator/SKILL.md +20 -27
  49. package/skills/validator/references/grading-rubric.md +5 -4
  50. package/skills/bearing-lite/templates/default-role-lineup.md +0 -26
package/lineups.json ADDED
@@ -0,0 +1 @@
1
+ {"schema_version":1,"lineups":{}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alphazede/bearing-lite",
3
- "version": "0.1.11",
3
+ "version": "0.2.1",
4
4
  "description": "Skills-first Agent Plugin for planning, routing, bounded execution, and independent review of repository work—without CLI, MCP, server, or hidden runtime state.",
5
5
  "keywords": [
6
6
  "agent-plugins",
@@ -37,7 +37,9 @@
37
37
  "CODE_OF_CONDUCT.md",
38
38
  "CONTRIBUTING.md",
39
39
  "SECURITY.md",
40
- "LICENSE-APACHE"
40
+ "LICENSE-APACHE",
41
+ "lineups.json",
42
+ "schemas/"
41
43
  ],
42
44
  "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319"
43
45
  }
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "bearing-lite",
4
- "version": "0.1.11",
4
+ "version": "0.2.1",
5
5
  "description": "Skills-first portable plugin that routes repository work through the smallest valid planning stages and agent roles, using project Markdown as the only task record.",
6
6
  "author": {
7
7
  "name": "William Rumph / AlphaZede",
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/authority.schema.json",
4
+ "title": "Bearing Lite authority.json",
5
+ "description": "Current machine-enforced authority envelope. Lineup or route selection is not a grant. CONTRACT-EMV-009 envelope fields are required. Canonical keys are granting_owner_decisions (array) and expiry_conditions (array of strings). effective is boolean only. Extra lifecycle metadata is allowed.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "schema_version",
10
+ "schema",
11
+ "id",
12
+ "state",
13
+ "subject",
14
+ "repositories",
15
+ "baseline",
16
+ "granting_owner_decisions",
17
+ "allowed",
18
+ "prohibited",
19
+ "role_grants",
20
+ "effective",
21
+ "expiry_conditions",
22
+ "supersedes",
23
+ "approval_receipt"
24
+ ],
25
+ "properties": {
26
+ "schema_version": { "type": "string", "minLength": 1 },
27
+ "schema": { "type": "string", "minLength": 1, "description": "Envelope schema identity" },
28
+ "id": { "type": "string", "minLength": 1, "description": "Authority envelope ID" },
29
+ "state": { "type": "string", "minLength": 1 },
30
+ "subject": { "type": "object", "minProperties": 1, "additionalProperties": true },
31
+ "repositories": {
32
+ "type": "array",
33
+ "items": { "type": "object", "additionalProperties": true }
34
+ },
35
+ "baseline": { "type": "object", "minProperties": 1, "additionalProperties": true },
36
+ "granting_owner_decisions": {
37
+ "type": "array",
38
+ "items": { "type": "string", "minLength": 1 }
39
+ },
40
+ "allowed": {
41
+ "type": "object",
42
+ "additionalProperties": true,
43
+ "required": ["scope", "actions", "paths"],
44
+ "properties": {
45
+ "scope": { "type": "array", "items": { "type": "string" } },
46
+ "actions": { "type": "array", "items": { "type": "string" } },
47
+ "paths": { "type": "array", "items": { "type": "string" } }
48
+ }
49
+ },
50
+ "prohibited": {
51
+ "type": "object",
52
+ "additionalProperties": true,
53
+ "required": ["scope", "actions", "paths"],
54
+ "properties": {
55
+ "scope": { "type": "array", "items": { "type": "string" } },
56
+ "actions": { "type": "array", "items": { "type": "string" } },
57
+ "paths": { "type": "array", "items": { "type": "string" } }
58
+ }
59
+ },
60
+ "role_grants": {
61
+ "type": "array",
62
+ "items": { "type": "object", "additionalProperties": true }
63
+ },
64
+ "effective": { "type": "boolean", "description": "Machine-enforced effectiveness. Boolean only: a string is not an effectiveness decision." },
65
+ "expiry_conditions": {
66
+ "type": "array",
67
+ "items": { "type": "string", "minLength": 1 }
68
+ },
69
+ "supersedes": {
70
+ "type": "array",
71
+ "items": { "type": "string" }
72
+ },
73
+ "approval_receipt": { "type": "object", "additionalProperties": true }
74
+ }
75
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/event.schema.json",
4
+ "title": "Bearing Lite evidence event",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "event_id",
10
+ "source",
11
+ "journey",
12
+ "repository",
13
+ "unit",
14
+ "candidate_revision",
15
+ "generation",
16
+ "evidence",
17
+ "transition",
18
+ "occurred_at"
19
+ ],
20
+ "properties": {
21
+ "schema_version": { "const": 1 },
22
+ "event_id": { "type": "string", "minLength": 1 },
23
+ "source": { "type": "string", "minLength": 1 },
24
+ "journey": { "type": "string", "minLength": 1 },
25
+ "repository": { "type": "string", "minLength": 1 },
26
+ "unit": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["slice"],
30
+ "properties": {
31
+ "wave": { "type": "string", "minLength": 1 },
32
+ "slice": { "type": "string", "minLength": 1 }
33
+ }
34
+ },
35
+ "candidate_revision": { "type": "string", "minLength": 1 },
36
+ "generation": { "type": "integer", "minimum": 0 },
37
+ "evidence": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["ref", "sha256"],
41
+ "properties": {
42
+ "ref": { "type": "string", "minLength": 1 },
43
+ "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
44
+ }
45
+ },
46
+ "transition": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["kind", "verdict"],
50
+ "properties": {
51
+ "kind": {
52
+ "enum": ["implementation", "verification", "assurance", "acceptance", "merge", "issue_close"]
53
+ },
54
+ "verdict": { "type": "string", "minLength": 1 }
55
+ }
56
+ },
57
+ "occurred_at": { "type": "string", "format": "date-time" }
58
+ }
59
+ }
@@ -0,0 +1,150 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/implementation.schema.json",
4
+ "title": "Bearing Lite implementation.json",
5
+ "description": "Nested execution authority. XLSX is never authority. Owner-configured n, k, and c have no assistant default integers. Every slice requires CONTRACT-EMV-008 fields including reasoning_level (object), not a sibling reasoning string. human_decision may be a string, object, or null. authority_id is a nonempty string on dispatchable slices and may be null only when dispatchable is false or slice_status is publication-blocked. Extra lifecycle metadata is allowed.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "schema_version",
10
+ "artifact",
11
+ "source_baseline",
12
+ "journey_settings",
13
+ "lineup_freeze",
14
+ "waves",
15
+ "dependencies",
16
+ "slices",
17
+ "traceability"
18
+ ],
19
+ "$defs": {
20
+ "contentfulObject": {
21
+ "type": "object",
22
+ "minProperties": 1,
23
+ "additionalProperties": true
24
+ },
25
+ "stringList": {
26
+ "type": "array",
27
+ "items": { "type": "string" }
28
+ },
29
+ "slice": {
30
+ "type": "object",
31
+ "additionalProperties": true,
32
+ "required": [
33
+ "role",
34
+ "goal",
35
+ "type",
36
+ "requirement_ids",
37
+ "design_ids",
38
+ "seit_proof_rows",
39
+ "design_lenses",
40
+ "model_route",
41
+ "reasoning_level",
42
+ "review_path",
43
+ "write_set",
44
+ "command_ids",
45
+ "stop_condition",
46
+ "human_decision",
47
+ "authority_id"
48
+ ],
49
+ "properties": {
50
+ "id": { "type": "string" },
51
+ "role": { "type": "string", "minLength": 1 },
52
+ "goal": { "type": "string", "minLength": 1, "maxLength": 512 },
53
+ "type": { "type": "string", "minLength": 1 },
54
+ "requirement_ids": { "$ref": "#/$defs/stringList" },
55
+ "design_ids": { "$ref": "#/$defs/stringList" },
56
+ "seit_proof_rows": { "$ref": "#/$defs/stringList" },
57
+ "design_lenses": { "$ref": "#/$defs/stringList" },
58
+ "model_route": { "$ref": "#/$defs/contentfulObject" },
59
+ "reasoning_level": { "$ref": "#/$defs/contentfulObject" },
60
+ "review_path": { "$ref": "#/$defs/contentfulObject" },
61
+ "write_set": { "$ref": "#/$defs/stringList" },
62
+ "command_ids": { "$ref": "#/$defs/stringList" },
63
+ "stop_condition": { "type": "string", "minLength": 1 },
64
+ "human_decision": { "type": ["string", "object", "null"] },
65
+ "authority_id": { "type": ["string", "null"] },
66
+ "dispatchable": { "type": "boolean" },
67
+ "slice_status": { "type": "string" },
68
+ "work_class": {
69
+ "type": "string",
70
+ "enum": ["light", "judgement"],
71
+ "description": "light: inputs fully determine the output and the packet's command verifies it (skills/light-implementer). Default judgement."
72
+ },
73
+ "work_class_reason": { "type": "string", "minLength": 1 }
74
+ },
75
+ "allOf": [
76
+ {
77
+ "if": {
78
+ "not": {
79
+ "anyOf": [
80
+ {
81
+ "properties": { "dispatchable": { "const": false } },
82
+ "required": ["dispatchable"]
83
+ },
84
+ {
85
+ "properties": { "slice_status": { "const": "publication-blocked" } },
86
+ "required": ["slice_status"]
87
+ }
88
+ ]
89
+ }
90
+ },
91
+ "then": {
92
+ "properties": {
93
+ "authority_id": { "type": "string", "minLength": 1 }
94
+ }
95
+ }
96
+ },
97
+ {
98
+ "if": {
99
+ "properties": { "work_class": { "const": "light" } },
100
+ "required": ["work_class"]
101
+ },
102
+ "then": {
103
+ "required": ["work_class_reason"],
104
+ "properties": {
105
+ "role": { "const": "Light Implementer" },
106
+ "command_ids": { "minItems": 1 }
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ "properties": {
114
+ "schema_version": { "type": "string", "minLength": 1 },
115
+ "artifact": { "$ref": "#/$defs/contentfulObject" },
116
+ "source_baseline": { "$ref": "#/$defs/contentfulObject" },
117
+ "journey_settings": {
118
+ "type": "object",
119
+ "additionalProperties": true,
120
+ "required": ["review_cardinality"],
121
+ "properties": {
122
+ "review_cardinality": {
123
+ "type": "object",
124
+ "additionalProperties": true,
125
+ "description": "Owner-configured reviewer count n, repair bound k, and confirmation count c. No default integers.",
126
+ "required": ["n", "k", "c"],
127
+ "properties": {
128
+ "n": { "type": "integer", "minimum": 0 },
129
+ "k": { "type": "integer", "minimum": 0 },
130
+ "c": { "type": "integer", "minimum": 0 }
131
+ }
132
+ }
133
+ }
134
+ },
135
+ "lineup_freeze": { "$ref": "#/$defs/contentfulObject" },
136
+ "waves": {
137
+ "type": "array",
138
+ "items": { "type": "object", "additionalProperties": true }
139
+ },
140
+ "dependencies": {
141
+ "type": "array",
142
+ "items": { "type": "object", "additionalProperties": true }
143
+ },
144
+ "slices": {
145
+ "type": "array",
146
+ "items": { "$ref": "#/$defs/slice" }
147
+ },
148
+ "traceability": { "$ref": "#/$defs/contentfulObject" }
149
+ }
150
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/journey.schema.json",
4
+ "title": "Bearing Lite journey.json",
5
+ "description": "Append-only decisions and authority-event history plus the generation-bound checkout lease. The full mutable file digest is not the stable SEIT execution baseline. Extra lifecycle metadata is allowed at the document root. Lease identity fields stay closed.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "schema_version",
10
+ "journey",
11
+ "checkout_lease",
12
+ "decisions",
13
+ "open_decisions",
14
+ "planning_receipts",
15
+ "lineup_selection"
16
+ ],
17
+ "properties": {
18
+ "schema_version": { "type": "string", "minLength": 1 },
19
+ "journey": {
20
+ "type": "object",
21
+ "additionalProperties": true,
22
+ "required": ["id", "title", "status", "planning_repository"],
23
+ "properties": {
24
+ "id": { "type": "string", "minLength": 1 },
25
+ "title": { "type": "string", "minLength": 1 },
26
+ "status": {
27
+ "type": "string",
28
+ "enum": ["planning", "implementation", "complete", "cancelled"]
29
+ },
30
+ "planning_repository": { "type": "string", "minLength": 1 }
31
+ }
32
+ },
33
+ "checkout_lease": {
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": [
37
+ "journey",
38
+ "controller",
39
+ "repository",
40
+ "checkout",
41
+ "branch",
42
+ "candidate_revision",
43
+ "acquired_at",
44
+ "generation",
45
+ "state"
46
+ ],
47
+ "properties": {
48
+ "journey": { "type": "string", "minLength": 1 },
49
+ "controller": { "type": "string", "minLength": 1 },
50
+ "repository": { "type": "string", "minLength": 1 },
51
+ "checkout": { "type": "string", "minLength": 1 },
52
+ "branch": { "type": "string", "minLength": 1 },
53
+ "candidate_revision": { "type": "string", "minLength": 1 },
54
+ "acquired_at": { "type": "string", "minLength": 1 },
55
+ "generation": { "type": "integer", "minimum": 1 },
56
+ "state": { "enum": ["active", "released"] },
57
+ "released_at": { "type": "string", "format": "date-time" },
58
+ "release_reason": { "type": "string", "minLength": 1 }
59
+ },
60
+ "if": {
61
+ "properties": {
62
+ "state": { "const": "released" }
63
+ }
64
+ },
65
+ "then": {
66
+ "required": ["released_at", "release_reason"]
67
+ }
68
+ },
69
+ "history": {
70
+ "type": "object",
71
+ "additionalProperties": true,
72
+ "description": "Optional append-only Journey history wrapper",
73
+ "properties": {
74
+ "decisions": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
75
+ "authority_events": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
76
+ }
77
+ },
78
+ "decisions": {
79
+ "type": "array",
80
+ "description": "Append-only confirmed owner decisions",
81
+ "items": { "type": "object", "additionalProperties": true }
82
+ },
83
+ "authority_events": {
84
+ "type": "array",
85
+ "description": "Append-only authority grant, amend, revoke, or supersede events",
86
+ "items": { "type": "object", "additionalProperties": true }
87
+ },
88
+ "open_decisions": {
89
+ "type": "array",
90
+ "items": { "type": "object", "additionalProperties": true }
91
+ },
92
+ "planning_receipts": {
93
+ "type": "array",
94
+ "items": { "type": "object", "additionalProperties": true }
95
+ },
96
+ "lineup_selection": {
97
+ "type": "object",
98
+ "additionalProperties": true
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,145 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/lineups.schema.json",
4
+ "title": "Bearing Lite lineups.json",
5
+ "description": "User-owned named lineup catalog. Packaged bytes stay an empty catalog with no defaults. Selection is not an authority grant.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schema_version",
10
+ "lineups"
11
+ ],
12
+ "properties": {
13
+ "schema_version": {
14
+ "type": "integer",
15
+ "const": 1,
16
+ "description": "Integer 1. The string \"1\" used by Journey artifacts is invalid here."
17
+ },
18
+ "lineups": {
19
+ "type": "object",
20
+ "description": "Named profiles. Empty object is valid. Unlimited keys; no maxProperties.",
21
+ "propertyNames": {
22
+ "type": "string",
23
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
24
+ },
25
+ "additionalProperties": {
26
+ "$ref": "#/$defs/profile"
27
+ }
28
+ },
29
+ "defaults": {
30
+ "type": "object",
31
+ "description": "Optional user-owned recommendations. Not a grant.",
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "planning": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "implementation": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "$defs": {
46
+ "identity": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": [
50
+ "harness",
51
+ "model",
52
+ "reasoning"
53
+ ],
54
+ "properties": {
55
+ "harness": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "model": {
60
+ "type": "string",
61
+ "minLength": 1
62
+ },
63
+ "reasoning": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ }
67
+ }
68
+ },
69
+ "fallback": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": [
73
+ "condition",
74
+ "harness",
75
+ "model",
76
+ "reasoning"
77
+ ],
78
+ "properties": {
79
+ "condition": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "harness": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ },
87
+ "model": {
88
+ "type": "string",
89
+ "minLength": 1
90
+ },
91
+ "reasoning": {
92
+ "type": "string",
93
+ "minLength": 1
94
+ }
95
+ }
96
+ },
97
+ "assignment": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": [
101
+ "role",
102
+ "primary",
103
+ "ordered_fallbacks"
104
+ ],
105
+ "properties": {
106
+ "role": {
107
+ "type": "string",
108
+ "minLength": 1
109
+ },
110
+ "primary": {
111
+ "$ref": "#/$defs/identity"
112
+ },
113
+ "ordered_fallbacks": {
114
+ "type": "array",
115
+ "items": {
116
+ "$ref": "#/$defs/fallback"
117
+ }
118
+ }
119
+ }
120
+ },
121
+ "phase": {
122
+ "type": "array",
123
+ "minItems": 1,
124
+ "items": {
125
+ "$ref": "#/$defs/assignment"
126
+ }
127
+ },
128
+ "profile": {
129
+ "type": "object",
130
+ "additionalProperties": false,
131
+ "required": [
132
+ "planned_planning_assignments",
133
+ "implementation_assignments"
134
+ ],
135
+ "properties": {
136
+ "planned_planning_assignments": {
137
+ "$ref": "#/$defs/phase"
138
+ },
139
+ "implementation_assignments": {
140
+ "$ref": "#/$defs/phase"
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/alphazede/bearing-lite/schemas/seit.schema.json",
4
+ "title": "Bearing Lite seit.json",
5
+ "description": "Canonical JSON Schema-validated tailored V&V plan. CONTRACT-EMV-007 always-on sections must appear as named objects or lists with content, not as a labels-only always_on_sections array: scope/baseline; responsibility/change authority; applicable documents/precedence; requirements flowdown/architecture context; V&V methods; verification and validation matrices; levels/integration sequence; environments/fixtures/data/simulations/support; procedures/commands; evidence/pass-fail; anomaly/corrective/closure. System fields only where applicable. Proof cases require the full canonical field set including observable_evidence and pass_fail_rule. Extra lifecycle metadata is allowed.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "schema_version",
10
+ "source_baseline",
11
+ "decision_baseline",
12
+ "responsibility_and_change_authority",
13
+ "applicable_documents_and_precedence",
14
+ "system_description_and_requirements_flowdown",
15
+ "vv_methods",
16
+ "levels",
17
+ "environments_fixtures_data_simulations_support",
18
+ "procedures_and_commands",
19
+ "evidence_and_pass_fail",
20
+ "anomaly_corrective_closure",
21
+ "integration_vv_sequence",
22
+ "proof_cases"
23
+ ],
24
+ "$defs": {
25
+ "contentfulObject": {
26
+ "type": "object",
27
+ "minProperties": 1,
28
+ "additionalProperties": true
29
+ },
30
+ "contentfulArray": {
31
+ "type": "array",
32
+ "minItems": 1
33
+ },
34
+ "contentfulString": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "proofCase": {
39
+ "type": "object",
40
+ "additionalProperties": true,
41
+ "required": [
42
+ "id",
43
+ "kind",
44
+ "requirement_id",
45
+ "design_id",
46
+ "command_id",
47
+ "method",
48
+ "preconditions",
49
+ "stimulus_or_procedure",
50
+ "expected_result",
51
+ "observable_evidence",
52
+ "pass_fail_rule",
53
+ "method_fields",
54
+ "negative_or_failure_case"
55
+ ],
56
+ "properties": {
57
+ "id": { "$ref": "#/$defs/contentfulString" },
58
+ "kind": { "$ref": "#/$defs/contentfulString" },
59
+ "requirement_id": { "$ref": "#/$defs/contentfulString" },
60
+ "design_id": { "$ref": "#/$defs/contentfulString" },
61
+ "command_id": { "$ref": "#/$defs/contentfulString" },
62
+ "method": { "$ref": "#/$defs/contentfulString" },
63
+ "preconditions": {
64
+ "type": "array",
65
+ "minItems": 1,
66
+ "items": { "type": "string", "minLength": 1 }
67
+ },
68
+ "stimulus_or_procedure": { "$ref": "#/$defs/contentfulString" },
69
+ "expected_result": { "$ref": "#/$defs/contentfulString" },
70
+ "observable_evidence": { "$ref": "#/$defs/contentfulString" },
71
+ "pass_fail_rule": { "$ref": "#/$defs/contentfulString" },
72
+ "method_fields": { "$ref": "#/$defs/contentfulObject" },
73
+ "negative_or_failure_case": { "$ref": "#/$defs/contentfulString" }
74
+ }
75
+ }
76
+ },
77
+ "properties": {
78
+ "schema_version": { "$ref": "#/$defs/contentfulString" },
79
+ "artifact": { "$ref": "#/$defs/contentfulObject" },
80
+ "source_baseline": { "$ref": "#/$defs/contentfulObject" },
81
+ "decision_baseline": {
82
+ "type": "object",
83
+ "minProperties": 1,
84
+ "additionalProperties": true,
85
+ "description": "Stable decision-baseline projection of confirmed decision identities and open-item statuses. Not the whole-file journey.json digest.",
86
+ "properties": {
87
+ "kind": { "type": "string" },
88
+ "confirmed_decisions": { "type": "object", "additionalProperties": true },
89
+ "open_items": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
90
+ }
91
+ },
92
+ "responsibility_and_change_authority": { "$ref": "#/$defs/contentfulObject" },
93
+ "applicable_documents_and_precedence": { "$ref": "#/$defs/contentfulObject" },
94
+ "system_description_and_requirements_flowdown": { "$ref": "#/$defs/contentfulObject" },
95
+ "vv_methods": { "$ref": "#/$defs/contentfulObject" },
96
+ "levels": { "$ref": "#/$defs/contentfulArray" },
97
+ "environments_fixtures_data_simulations_support": { "$ref": "#/$defs/contentfulObject" },
98
+ "procedures_and_commands": { "$ref": "#/$defs/contentfulArray" },
99
+ "evidence_and_pass_fail": { "$ref": "#/$defs/contentfulObject" },
100
+ "anomaly_corrective_closure": { "$ref": "#/$defs/contentfulObject" },
101
+ "integration_vv_sequence": { "$ref": "#/$defs/contentfulArray" },
102
+ "proof_cases": {
103
+ "type": "array",
104
+ "minItems": 1,
105
+ "items": { "$ref": "#/$defs/proofCase" }
106
+ }
107
+ }
108
+ }