@namewta/speculo 2.0.4 → 2.0.5
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/package.json +1 -1
- package/template/canonical/canonical-specdev-goal-plan.md +2145 -1003
- package/template/canonical/canonical-specdev-grill-with-docs.md +1948 -506
- package/template/canonical/canonical-specdev-spec.md +2046 -604
- package/template/canonical/canonical-specdev-tickets.md +1978 -518
- package/template/canonical/canonical-specdev-wayfinder.md +2393 -951
- package/template/references/coordination/coordination-contract.md +7 -5
- package/template/references/coordination/result-and-recovery.md +1 -1
- package/template/references/coordination/session-files.md +2 -2
- package/template/references/coordination/task-brief.md +4 -4
- package/template/references/retrospective/references/friction-taxonomy.md +1 -1
- package/template/references/writing-for-agents/references/project-skill-maintenance.md +29 -0
- package/template/references/writing-for-agents/writing-contract.md +2 -0
- package/template/workflows/specdev/SKILL.md +1 -1
- package/template/workflows/specdev/common/README.md +1 -1
- package/template/workflows/specdev/common/rules/artifact-contract.md +1 -1
- package/template/workflows/specdev/common/rules/change-completion.md +6 -6
- package/template/workflows/specdev/common/rules/domain-runtime.md +2 -2
- package/template/workflows/specdev/common/rules/evidence-and-verification.md +17 -34
- package/template/workflows/specdev/common/rules/execution-policy.md +24 -16
- package/template/workflows/specdev/common/rules/operating-governance.md +1 -1
- package/template/workflows/specdev/common/rules/parent-implementation-orchestration.md +4 -2
- package/template/workflows/specdev/common/rules/path-ownership.md +9 -7
- package/template/workflows/specdev/common/rules/workflow-routing.md +1 -1
- package/template/workflows/specdev/common/rules/workflow-state-and-lifecycle.md +6 -2
- package/template/workflows/specdev/common/schemas/execution-context.schema.json +67 -0
- package/template/workflows/specdev/common/schemas/execution-record.schema.json +154 -0
- package/template/workflows/specdev/common/schemas/goal-plan.schema.json +15 -55
- package/template/workflows/specdev/common/schemas/implementation-plan.schema.json +15 -55
- package/template/workflows/specdev/common/schemas/retro-approval.schema.json +44 -0
- package/template/workflows/specdev/common/schemas/retro-archive.schema.json +99 -0
- package/template/workflows/specdev/common/schemas/retro-execution.schema.json +112 -0
- package/template/workflows/specdev/common/schemas/retro-upgrade.schema.json +163 -0
- package/template/workflows/specdev/common/schemas/retrospective.schema.json +119 -14
- package/template/workflows/specdev/common/skills/code-review/references/review-evidence.md +2 -2
- package/template/workflows/specdev/common/skills/code-review/references/source-discovery.md +2 -0
- package/template/workflows/specdev/common/skills/code-review/references/working-tree-review.md +1 -1
- package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +15 -34
- package/template/workflows/specdev/common/skills/dev-worktree/references/create.md +27 -56
- package/template/workflows/specdev/common/skills/dev-worktree/references/finalize.md +10 -54
- package/template/workflows/specdev/common/tools/README.md +10 -0
- package/template/workflows/specdev/common/tools/delivery-artifacts.mjs +4 -4
- package/template/workflows/specdev/common/tools/execution-context.mjs +104 -0
- package/template/workflows/specdev/common/tools/plan-contract.mjs +3 -1
- package/template/workflows/specdev/common/tools/review-evidence.mjs +2 -2
- package/template/workflows/specdev/common/tools/tests/engineering.test.mjs +2 -2
- package/template/workflows/specdev/common/tools/tests/review-fixture.mjs +4 -4
- package/template/workflows/specdev/common/tools/ticket-control.mjs +17 -12
- package/template/workflows/specdev/common/tools/validate-retro.mjs +331 -0
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +135 -105
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/SKILL.md +2 -1
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/references/operation-contract.md +2 -0
- package/template/workflows/specdev/specdev-a-archive-and-consolidate/references/retro-archive.md +27 -0
- package/template/workflows/specdev/specdev-c-code-review/SKILL.md +1 -1
- package/template/workflows/specdev/specdev-i-implement/SKILL.md +3 -3
- package/template/workflows/specdev/specdev-i-implement/assets/evidence-template.md +37 -29
- package/template/workflows/specdev/specdev-i-implement/references/execution-preflight.md +16 -16
- package/template/workflows/specdev/specdev-i-implement/references/implementation-procedure.md +21 -37
- package/template/workflows/specdev/specdev-i-implement/references/merge-conflict-protocol.md +8 -18
- package/template/workflows/specdev/specdev-p-goal-plan/SKILL.md +3 -3
- package/template/workflows/specdev/specdev-p-goal-plan/assets/goal-plan-template.md +23 -26
- package/template/workflows/specdev/specdev-p-goal-plan/references/completion-control.md +11 -14
- package/template/workflows/specdev/specdev-p-goal-plan/references/lead-orchestration.md +12 -33
- package/template/workflows/specdev/specdev-p-goal-plan/references/map-control.md +1 -1
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-change-plan.md +11 -16
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-conflict-and-drift.md +2 -2
- package/template/workflows/specdev/specdev-p-goal-plan/references/multi-execution-loop.md +6 -6
- package/template/workflows/specdev/specdev-p-goal-plan/references/orchestration-protocol.md +13 -44
- package/template/workflows/specdev/specdev-p-goal-plan/references/planning-modes.md +18 -25
- package/template/workflows/specdev/specdev-p-goal-plan/references/single-change-plan.md +16 -16
- package/template/workflows/specdev/specdev-r-retro/SKILL.md +15 -11
- package/template/workflows/specdev/specdev-r-retro/assets/retro-template.md +26 -14
- package/template/workflows/specdev/specdev-r-retro/assets/upgrade-plan-template.md +41 -0
- package/template/workflows/specdev/specdev-r-retro/references/development-retrospective.md +42 -0
- package/template/workflows/specdev/specdev-r-retro/references/records.md +47 -0
- package/template/workflows/specdev/specdev-r-retro/references/skill-upgrade.md +13 -0
- package/template/workflows/specdev/specdev-t-tickets/SKILL.md +2 -0
- package/template/workflows/specdev/specdev-t-tickets/assets/ticket-template.md +1 -1
- package/template/workflows/specdev/specdev-t-tickets/assets/tickets-map-template.md +6 -6
- package/template/workflows/specdev/specdev-t-tickets/references/planning-procedure.md +2 -2
- package/template/workflows/specdev/specdev-t-tickets/references/ticket-readiness.md +3 -3
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:specdev:execution-record:v1",
|
|
4
|
+
"title": "SpecDev execution evidence",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schema_version",
|
|
8
|
+
"workspace_context",
|
|
9
|
+
"implementation_owners",
|
|
10
|
+
"status",
|
|
11
|
+
"checkpoint",
|
|
12
|
+
"verification",
|
|
13
|
+
"attempts"
|
|
14
|
+
],
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema_version": {
|
|
18
|
+
"const": 1
|
|
19
|
+
},
|
|
20
|
+
"ticket_id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^T-\\d{2,}$"
|
|
23
|
+
},
|
|
24
|
+
"purpose": {
|
|
25
|
+
"const": "direct-spec"
|
|
26
|
+
},
|
|
27
|
+
"change": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1
|
|
30
|
+
},
|
|
31
|
+
"workspace_context": {
|
|
32
|
+
"const": "README.md#execution-context"
|
|
33
|
+
},
|
|
34
|
+
"implementation_owners": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"minItems": 1,
|
|
37
|
+
"uniqueItems": true,
|
|
38
|
+
"items": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"status": {
|
|
44
|
+
"enum": [
|
|
45
|
+
"active",
|
|
46
|
+
"review",
|
|
47
|
+
"verified",
|
|
48
|
+
"blocked",
|
|
49
|
+
"cancelled"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"checkpoint": {
|
|
53
|
+
"type": [
|
|
54
|
+
"string",
|
|
55
|
+
"null"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"attempts": {
|
|
59
|
+
"type": "integer",
|
|
60
|
+
"minimum": 0
|
|
61
|
+
},
|
|
62
|
+
"verification": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"required": [
|
|
65
|
+
"status",
|
|
66
|
+
"evidence",
|
|
67
|
+
"e2e"
|
|
68
|
+
],
|
|
69
|
+
"properties": {
|
|
70
|
+
"status": {
|
|
71
|
+
"enum": [
|
|
72
|
+
"pending",
|
|
73
|
+
"passed",
|
|
74
|
+
"failed"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"evidence": {
|
|
78
|
+
"type": [
|
|
79
|
+
"string",
|
|
80
|
+
"null"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"e2e": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"required": [
|
|
86
|
+
"required",
|
|
87
|
+
"status",
|
|
88
|
+
"reason",
|
|
89
|
+
"evidence"
|
|
90
|
+
],
|
|
91
|
+
"properties": {
|
|
92
|
+
"required": {
|
|
93
|
+
"type": "boolean"
|
|
94
|
+
},
|
|
95
|
+
"status": {
|
|
96
|
+
"enum": [
|
|
97
|
+
"pending",
|
|
98
|
+
"passed",
|
|
99
|
+
"failed",
|
|
100
|
+
"not-required"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
"reason": {
|
|
104
|
+
"type": [
|
|
105
|
+
"string",
|
|
106
|
+
"null"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"evidence": {
|
|
110
|
+
"type": [
|
|
111
|
+
"string",
|
|
112
|
+
"null"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"additionalProperties": false
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"additionalProperties": false
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"oneOf": [
|
|
123
|
+
{
|
|
124
|
+
"required": [
|
|
125
|
+
"ticket_id"
|
|
126
|
+
],
|
|
127
|
+
"not": {
|
|
128
|
+
"anyOf": [
|
|
129
|
+
{
|
|
130
|
+
"required": [
|
|
131
|
+
"purpose"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"required": [
|
|
136
|
+
"change"
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"required": [
|
|
144
|
+
"purpose",
|
|
145
|
+
"change"
|
|
146
|
+
],
|
|
147
|
+
"not": {
|
|
148
|
+
"required": [
|
|
149
|
+
"ticket_id"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "urn:speculo:specdev:goal-plan:
|
|
3
|
+
"$id": "urn:speculo:specdev:goal-plan:v8",
|
|
4
4
|
"title": "SpecDev Goal Plan Frontmatter",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
@@ -11,15 +11,13 @@
|
|
|
11
11
|
"modes",
|
|
12
12
|
"orchestration",
|
|
13
13
|
"lead",
|
|
14
|
-
"concurrent_implementation_limit",
|
|
15
14
|
"integration_attempt_limit",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"ready_for_execution"
|
|
15
|
+
"ready_for_execution",
|
|
16
|
+
"ticket_execution"
|
|
19
17
|
],
|
|
20
18
|
"properties": {
|
|
21
19
|
"schema_version": {
|
|
22
|
-
"const":
|
|
20
|
+
"const": 8
|
|
23
21
|
},
|
|
24
22
|
"artifact": {
|
|
25
23
|
"const": "goal-plan"
|
|
@@ -64,61 +62,23 @@
|
|
|
64
62
|
"type": "integer",
|
|
65
63
|
"minimum": 1
|
|
66
64
|
},
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"current",
|
|
70
|
-
"required"
|
|
71
|
-
]
|
|
65
|
+
"ready_for_execution": {
|
|
66
|
+
"type": "boolean"
|
|
72
67
|
},
|
|
73
|
-
"
|
|
68
|
+
"ticket_execution": {
|
|
74
69
|
"enum": [
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
70
|
+
"auto",
|
|
71
|
+
"serial",
|
|
72
|
+
"parallel"
|
|
73
|
+
],
|
|
74
|
+
"default": "auto"
|
|
78
75
|
},
|
|
79
|
-
"
|
|
80
|
-
"type": "
|
|
76
|
+
"max_parallel_tickets": {
|
|
77
|
+
"type": "integer",
|
|
78
|
+
"minimum": 1
|
|
81
79
|
}
|
|
82
80
|
},
|
|
83
81
|
"allOf": [
|
|
84
|
-
{
|
|
85
|
-
"if": {
|
|
86
|
-
"properties": {
|
|
87
|
-
"ticket_workspace_policy": {
|
|
88
|
-
"const": "current"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"required": [
|
|
92
|
-
"ticket_workspace_policy"
|
|
93
|
-
]
|
|
94
|
-
},
|
|
95
|
-
"then": {
|
|
96
|
-
"properties": {
|
|
97
|
-
"integration_gate": {
|
|
98
|
-
"const": "direct-parent"
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"if": {
|
|
105
|
-
"properties": {
|
|
106
|
-
"ticket_workspace_policy": {
|
|
107
|
-
"const": "required"
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
"required": [
|
|
111
|
-
"ticket_workspace_policy"
|
|
112
|
-
]
|
|
113
|
-
},
|
|
114
|
-
"then": {
|
|
115
|
-
"properties": {
|
|
116
|
-
"integration_gate": {
|
|
117
|
-
"const": "candidate-merge"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
82
|
{
|
|
123
83
|
"if": {
|
|
124
84
|
"properties": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "urn:speculo:specdev:implementation-plan:
|
|
3
|
+
"$id": "urn:speculo:specdev:implementation-plan:v3",
|
|
4
4
|
"title": "SpecDev Parent Implementation Plan Frontmatter",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
@@ -11,15 +11,13 @@
|
|
|
11
11
|
"source_map_revision",
|
|
12
12
|
"orchestration",
|
|
13
13
|
"lead",
|
|
14
|
-
"concurrent_implementation_limit",
|
|
15
14
|
"integration_attempt_limit",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"ready_for_execution"
|
|
15
|
+
"ready_for_execution",
|
|
16
|
+
"ticket_execution"
|
|
19
17
|
],
|
|
20
18
|
"properties": {
|
|
21
19
|
"schema_version": {
|
|
22
|
-
"const":
|
|
20
|
+
"const": 3
|
|
23
21
|
},
|
|
24
22
|
"artifact": {
|
|
25
23
|
"const": "implementation-plan"
|
|
@@ -55,61 +53,23 @@
|
|
|
55
53
|
"type": "integer",
|
|
56
54
|
"minimum": 1
|
|
57
55
|
},
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"current",
|
|
61
|
-
"required"
|
|
62
|
-
]
|
|
56
|
+
"ready_for_execution": {
|
|
57
|
+
"type": "boolean"
|
|
63
58
|
},
|
|
64
|
-
"
|
|
59
|
+
"ticket_execution": {
|
|
65
60
|
"enum": [
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
61
|
+
"auto",
|
|
62
|
+
"serial",
|
|
63
|
+
"parallel"
|
|
64
|
+
],
|
|
65
|
+
"default": "auto"
|
|
69
66
|
},
|
|
70
|
-
"
|
|
71
|
-
"type": "
|
|
67
|
+
"max_parallel_tickets": {
|
|
68
|
+
"type": "integer",
|
|
69
|
+
"minimum": 1
|
|
72
70
|
}
|
|
73
71
|
},
|
|
74
72
|
"allOf": [
|
|
75
|
-
{
|
|
76
|
-
"if": {
|
|
77
|
-
"properties": {
|
|
78
|
-
"ticket_workspace_policy": {
|
|
79
|
-
"const": "current"
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
"required": [
|
|
83
|
-
"ticket_workspace_policy"
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
"then": {
|
|
87
|
-
"properties": {
|
|
88
|
-
"integration_gate": {
|
|
89
|
-
"const": "direct-parent"
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"if": {
|
|
96
|
-
"properties": {
|
|
97
|
-
"ticket_workspace_policy": {
|
|
98
|
-
"const": "required"
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"required": [
|
|
102
|
-
"ticket_workspace_policy"
|
|
103
|
-
]
|
|
104
|
-
},
|
|
105
|
-
"then": {
|
|
106
|
-
"properties": {
|
|
107
|
-
"integration_gate": {
|
|
108
|
-
"const": "candidate-merge"
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
73
|
{
|
|
114
74
|
"if": {
|
|
115
75
|
"properties": {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:specdev:retro-approval:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": [
|
|
6
|
+
"schema_version",
|
|
7
|
+
"source",
|
|
8
|
+
"snapshot",
|
|
9
|
+
"sha256",
|
|
10
|
+
"quote",
|
|
11
|
+
"confirmed_at",
|
|
12
|
+
"plan_sha256"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"schema_version": {
|
|
16
|
+
"const": 1
|
|
17
|
+
},
|
|
18
|
+
"source": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
},
|
|
22
|
+
"snapshot": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
},
|
|
26
|
+
"sha256": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
29
|
+
},
|
|
30
|
+
"quote": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1
|
|
33
|
+
},
|
|
34
|
+
"confirmed_at": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time"
|
|
37
|
+
},
|
|
38
|
+
"plan_sha256": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:specdev:retro-archive:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": [
|
|
6
|
+
"schema_version",
|
|
7
|
+
"id",
|
|
8
|
+
"owner",
|
|
9
|
+
"upgrade",
|
|
10
|
+
"source",
|
|
11
|
+
"target",
|
|
12
|
+
"plan_sha256",
|
|
13
|
+
"approval_sha256",
|
|
14
|
+
"result",
|
|
15
|
+
"time",
|
|
16
|
+
"entries"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"schema_version": {
|
|
20
|
+
"const": 1
|
|
21
|
+
},
|
|
22
|
+
"id": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"
|
|
25
|
+
},
|
|
26
|
+
"owner": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"upgrade": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"
|
|
33
|
+
},
|
|
34
|
+
"source": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 1
|
|
37
|
+
},
|
|
38
|
+
"target": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1
|
|
41
|
+
},
|
|
42
|
+
"plan_sha256": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
45
|
+
},
|
|
46
|
+
"approval_sha256": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
49
|
+
},
|
|
50
|
+
"result": {
|
|
51
|
+
"enum": [
|
|
52
|
+
"moved",
|
|
53
|
+
"verified"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"time": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"format": "date-time"
|
|
59
|
+
},
|
|
60
|
+
"entries": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"required": [
|
|
65
|
+
"path",
|
|
66
|
+
"type",
|
|
67
|
+
"mode"
|
|
68
|
+
],
|
|
69
|
+
"properties": {
|
|
70
|
+
"path": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"minLength": 1
|
|
73
|
+
},
|
|
74
|
+
"type": {
|
|
75
|
+
"enum": [
|
|
76
|
+
"file",
|
|
77
|
+
"directory",
|
|
78
|
+
"symlink"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"mode": {
|
|
82
|
+
"type": "integer"
|
|
83
|
+
},
|
|
84
|
+
"sha256": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
87
|
+
},
|
|
88
|
+
"target": {
|
|
89
|
+
"type": "string",
|
|
90
|
+
"minLength": 1
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"additionalProperties": false
|
|
94
|
+
},
|
|
95
|
+
"minItems": 1
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:speculo:specdev:retro-execution:v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": [
|
|
6
|
+
"schema_version",
|
|
7
|
+
"plan_sha256",
|
|
8
|
+
"approval_sha256",
|
|
9
|
+
"status",
|
|
10
|
+
"results"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"schema_version": {
|
|
14
|
+
"const": 1
|
|
15
|
+
},
|
|
16
|
+
"plan_sha256": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"approval_sha256": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
23
|
+
},
|
|
24
|
+
"status": {
|
|
25
|
+
"enum": [
|
|
26
|
+
"applying",
|
|
27
|
+
"blocked",
|
|
28
|
+
"verified"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"results": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"required": [
|
|
36
|
+
"path",
|
|
37
|
+
"result",
|
|
38
|
+
"sha256",
|
|
39
|
+
"evidence",
|
|
40
|
+
"evidence_sha256",
|
|
41
|
+
"method",
|
|
42
|
+
"observed",
|
|
43
|
+
"command",
|
|
44
|
+
"exit"
|
|
45
|
+
],
|
|
46
|
+
"properties": {
|
|
47
|
+
"path": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1
|
|
50
|
+
},
|
|
51
|
+
"result": {
|
|
52
|
+
"enum": [
|
|
53
|
+
"passed",
|
|
54
|
+
"failed",
|
|
55
|
+
"pending"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"sha256": {
|
|
59
|
+
"anyOf": [
|
|
60
|
+
{
|
|
61
|
+
"type": "string",
|
|
62
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "null"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"evidence": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"minLength": 1
|
|
72
|
+
},
|
|
73
|
+
"evidence_sha256": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
76
|
+
},
|
|
77
|
+
"method": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"minLength": 1
|
|
80
|
+
},
|
|
81
|
+
"observed": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"minLength": 1
|
|
84
|
+
},
|
|
85
|
+
"command": {
|
|
86
|
+
"anyOf": [
|
|
87
|
+
{
|
|
88
|
+
"type": "string",
|
|
89
|
+
"minLength": 1
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "null"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
"exit": {
|
|
97
|
+
"anyOf": [
|
|
98
|
+
{
|
|
99
|
+
"type": "integer"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"type": "null"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"additionalProperties": false
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|