yaaw-se 0.3.7 → 0.3.8
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/README.md +6 -2
- package/dist/installer/migrations/index.d.ts +2 -2
- package/dist/installer/migrations/index.js +2 -2
- package/dist/installer/migrations/project/index.js +2 -2
- package/dist/installer/migrations/project/index.js.map +1 -1
- package/dist/installer/migrations/project/v1-to-v2.d.ts +2 -0
- package/dist/installer/migrations/project/v1-to-v2.js +64 -0
- package/dist/installer/migrations/project/v1-to-v2.js.map +1 -0
- package/dist/installer/project-state.js +1 -0
- package/dist/installer/project-state.js.map +1 -1
- package/dist/installer/transaction.js +5 -0
- package/dist/installer/transaction.js.map +1 -1
- package/dist/installer/types.d.ts +5 -0
- package/dist/payload/bootstrap/claude-code.md +1 -1
- package/dist/payload/bootstrap/cline.md +1 -1
- package/dist/payload/bootstrap/codex.md +1 -1
- package/dist/payload/bootstrap/gemini-cli.md +1 -1
- package/dist/payload/integrations/codex/yaaw-runtime.md +1 -1
- package/dist/payload/payload-files.json +146 -111
- package/dist/payload/payload.json +1 -1
- package/dist/payload/skills/yaaw-create-spec/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-create-ticket/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-create-tickets/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-implement/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-orchestrator/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-planner/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-planning-review/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-prd/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-refine-prd/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-repair/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-review/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-revise-prd/SKILL.md +6 -2
- package/dist/payload/yaaw-core/system/core/dispatch-execution.md +16 -53
- package/dist/payload/yaaw-core/system/core/invalidation.md +7 -38
- package/dist/payload/yaaw-core/system/core/io-contract.md +12 -45
- package/dist/payload/yaaw-core/system/core/lifecycle.md +11 -18
- package/dist/payload/yaaw-core/system/core/recovery.md +12 -26
- package/dist/payload/yaaw-core/system/core/routing.md +16 -31
- package/dist/payload/yaaw-core/system/core/state-model.md +7 -27
- package/dist/payload/yaaw-core/system/registries/handoff-policy.json +41 -59
- package/dist/payload/yaaw-core/system/registries/reconciliation-policy.json +17 -0
- package/dist/payload/yaaw-core/system/registries/role-io.json +15 -144
- package/dist/payload/yaaw-core/system/registries/skills.json +108 -12
- package/dist/payload/yaaw-core/system/roles/implementer.md +10 -13
- package/dist/payload/yaaw-core/system/roles/orchestrator.md +12 -17
- package/dist/payload/yaaw-core/system/roles/planner.md +9 -18
- package/dist/payload/yaaw-core/system/roles/reviewer.md +9 -14
- package/dist/payload/yaaw-core/system/schemas/engineering-v1.schema.json +15 -0
- package/dist/payload/yaaw-core/system/schemas/engineering-v2.schema.json +59 -0
- package/dist/payload/yaaw-core/system/schemas/engineering.schema.json +9 -12
- package/dist/payload/yaaw-core/system/schemas/evidence-v3.schema.json +111 -0
- package/dist/payload/yaaw-core/system/schemas/evidence.schema.json +3 -0
- package/dist/payload/yaaw-core/system/schemas/handoff.schema.json +3 -60
- package/dist/payload/yaaw-core/system/schemas/intent.schema.json +63 -8
- package/dist/payload/yaaw-core/system/schemas/observed-state.schema.json +55 -61
- package/dist/payload/yaaw-core/system/schemas/project-state-v1.schema.json +74 -0
- package/dist/payload/yaaw-core/system/schemas/project-state-v2.schema.json +251 -0
- package/dist/payload/yaaw-core/system/schemas/project-state.schema.json +9 -71
- package/dist/payload/yaaw-core/system/templates/engineering-research.md +2 -2
- package/dist/payload/yaaw-core/system/templates/engineering.md +2 -1
- package/dist/payload/yaaw-core/system/templates/evidence.json +2 -1
- package/dist/payload/yaaw-core/system/templates/handoff.json +7 -8
- package/dist/payload/yaaw-core/system/templates/intent.json +4 -3
- package/dist/payload/yaaw-core/system/templates/observed-state.json +6 -13
- package/dist/payload/yaaw-core/system/templates/project-state.json +2 -2
- package/dist/payload/yaaw-core/system/templates/review.md +4 -4
- package/dist/payload/yaaw-core/system/templates/spec.md +2 -2
- package/dist/payload/yaaw-core/system/templates/ticket.md +3 -3
- package/dist/payload/yaaw-core/system/tools/orchestration-engine.mjs +187 -0
- package/dist/payload/yaaw-core/system/tools/orchestration-runtime.mjs +46 -688
- package/dist/payload/yaaw-core/system/workflows/implementation/implement-ticket.md +9 -17
- package/dist/payload/yaaw-core/system/workflows/implementation/repair-ticket.md +7 -12
- package/dist/payload/yaaw-core/system/workflows/implementation/verify-ticket.md +9 -10
- package/dist/payload/yaaw-core/system/workflows/orchestration/reconcile-state.md +10 -13
- package/dist/payload/yaaw-core/system/workflows/orchestration/recover-interruption.md +9 -12
- package/dist/payload/yaaw-core/system/workflows/orchestration/route.md +14 -21
- package/dist/payload/yaaw-core/system/workflows/planning/create-spec.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/create-tickets.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/decision-frontier.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/replan.md +2 -0
- package/package.json +4 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "yaaw.engineering/v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "revision", "status", "product_revision", "current_frontier", "readiness"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": {"const": "yaaw.engineering/v1"},
|
|
8
|
+
"revision": {"type": "integer", "minimum": 1},
|
|
9
|
+
"status": {"enum": ["discovery", "questions", "ready", "blocked"]},
|
|
10
|
+
"product_revision": {"type": "integer", "minimum": 1},
|
|
11
|
+
"current_frontier": {"type": ["string", "null"]},
|
|
12
|
+
"readiness": {"enum": ["pending", "PASS", "MISSING_DECISIONS", "PRODUCT_GAP", "REPLAN", "BLOCKED"]}
|
|
13
|
+
},
|
|
14
|
+
"additionalProperties": false
|
|
15
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "yaaw.engineering/v2",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": [
|
|
6
|
+
"schema",
|
|
7
|
+
"revision",
|
|
8
|
+
"status",
|
|
9
|
+
"product_revision",
|
|
10
|
+
"current_frontier",
|
|
11
|
+
"readiness",
|
|
12
|
+
"scope_status"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"schema": {
|
|
16
|
+
"const": "yaaw.engineering/v2"
|
|
17
|
+
},
|
|
18
|
+
"revision": {
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"minimum": 1
|
|
21
|
+
},
|
|
22
|
+
"status": {
|
|
23
|
+
"enum": [
|
|
24
|
+
"discovery",
|
|
25
|
+
"questions",
|
|
26
|
+
"ready",
|
|
27
|
+
"blocked"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"product_revision": {
|
|
31
|
+
"type": "integer",
|
|
32
|
+
"minimum": 1
|
|
33
|
+
},
|
|
34
|
+
"current_frontier": {
|
|
35
|
+
"type": [
|
|
36
|
+
"string",
|
|
37
|
+
"null"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"readiness": {
|
|
41
|
+
"enum": [
|
|
42
|
+
"pending",
|
|
43
|
+
"PASS",
|
|
44
|
+
"MISSING_DECISIONS",
|
|
45
|
+
"PRODUCT_GAP",
|
|
46
|
+
"REPLAN",
|
|
47
|
+
"BLOCKED"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"scope_status": {
|
|
51
|
+
"enum": [
|
|
52
|
+
"UNKNOWN",
|
|
53
|
+
"OPEN",
|
|
54
|
+
"COMPLETE"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"additionalProperties": false
|
|
59
|
+
}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "yaaw.engineering
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"readiness": {"enum": ["pending", "PASS", "MISSING_DECISIONS", "PRODUCT_GAP", "REPLAN", "BLOCKED"]}
|
|
13
|
-
},
|
|
14
|
-
"additionalProperties": false
|
|
3
|
+
"$id": "yaaw.engineering",
|
|
4
|
+
"oneOf": [
|
|
5
|
+
{
|
|
6
|
+
"$ref": "engineering-v1.schema.json"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"$ref": "engineering-v2.schema.json"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
15
12
|
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "yaaw.evidence/v3",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": [
|
|
6
|
+
"schema",
|
|
7
|
+
"id",
|
|
8
|
+
"ticket",
|
|
9
|
+
"ticket_revision",
|
|
10
|
+
"spec_revision",
|
|
11
|
+
"kind",
|
|
12
|
+
"result",
|
|
13
|
+
"repository",
|
|
14
|
+
"workflow",
|
|
15
|
+
"commands",
|
|
16
|
+
"checks"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"schema": {
|
|
20
|
+
"const": "yaaw.evidence/v3"
|
|
21
|
+
},
|
|
22
|
+
"id": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
},
|
|
26
|
+
"ticket": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^TASK-[0-9]+$"
|
|
29
|
+
},
|
|
30
|
+
"ticket_revision": {
|
|
31
|
+
"type": "integer",
|
|
32
|
+
"minimum": 0
|
|
33
|
+
},
|
|
34
|
+
"spec_revision": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 0
|
|
37
|
+
},
|
|
38
|
+
"kind": {
|
|
39
|
+
"enum": [
|
|
40
|
+
"implementation_start",
|
|
41
|
+
"implementation_verification"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"result": {
|
|
45
|
+
"enum": [
|
|
46
|
+
"STARTED",
|
|
47
|
+
"PASS",
|
|
48
|
+
"FAIL",
|
|
49
|
+
"BLOCKED"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"$ref": "repository-identity.schema.json"
|
|
54
|
+
},
|
|
55
|
+
"workflow": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"minLength": 1
|
|
58
|
+
},
|
|
59
|
+
"commands": {
|
|
60
|
+
"type": "array"
|
|
61
|
+
},
|
|
62
|
+
"checks": {
|
|
63
|
+
"type": "array"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"allOf": [
|
|
67
|
+
{
|
|
68
|
+
"if": {
|
|
69
|
+
"properties": {
|
|
70
|
+
"kind": {
|
|
71
|
+
"const": "implementation_start"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"required": [
|
|
75
|
+
"kind"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"then": {
|
|
79
|
+
"properties": {
|
|
80
|
+
"result": {
|
|
81
|
+
"const": "STARTED"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"if": {
|
|
88
|
+
"properties": {
|
|
89
|
+
"kind": {
|
|
90
|
+
"const": "implementation_verification"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"required": [
|
|
94
|
+
"kind"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"then": {
|
|
98
|
+
"properties": {
|
|
99
|
+
"result": {
|
|
100
|
+
"enum": [
|
|
101
|
+
"PASS",
|
|
102
|
+
"FAIL",
|
|
103
|
+
"BLOCKED"
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"additionalProperties": false
|
|
111
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "yaaw.handoff/
|
|
3
|
+
"$id": "yaaw.handoff/v3",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"required": [
|
|
6
6
|
"schema",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"properties": {
|
|
26
26
|
"schema": {
|
|
27
|
-
"const": "yaaw.handoff/
|
|
27
|
+
"const": "yaaw.handoff/v3"
|
|
28
28
|
},
|
|
29
29
|
"role": {
|
|
30
30
|
"enum": [
|
|
@@ -119,64 +119,7 @@
|
|
|
119
119
|
]
|
|
120
120
|
},
|
|
121
121
|
"repository": {
|
|
122
|
-
"
|
|
123
|
-
"required": [
|
|
124
|
-
"status",
|
|
125
|
-
"workspace_scope",
|
|
126
|
-
"git_root_relation",
|
|
127
|
-
"head_commit",
|
|
128
|
-
"dirty",
|
|
129
|
-
"worktree_digest",
|
|
130
|
-
"error"
|
|
131
|
-
],
|
|
132
|
-
"properties": {
|
|
133
|
-
"status": {
|
|
134
|
-
"enum": [
|
|
135
|
-
"READY",
|
|
136
|
-
"UNVERSIONED",
|
|
137
|
-
"UNAVAILABLE",
|
|
138
|
-
"ROOT_MISMATCH",
|
|
139
|
-
"IDENTITY_FAILED"
|
|
140
|
-
]
|
|
141
|
-
},
|
|
142
|
-
"workspace_scope": {
|
|
143
|
-
"type": "string",
|
|
144
|
-
"minLength": 1
|
|
145
|
-
},
|
|
146
|
-
"git_root_relation": {
|
|
147
|
-
"enum": [
|
|
148
|
-
"same",
|
|
149
|
-
"ancestor",
|
|
150
|
-
"none",
|
|
151
|
-
"unknown"
|
|
152
|
-
]
|
|
153
|
-
},
|
|
154
|
-
"head_commit": {
|
|
155
|
-
"type": [
|
|
156
|
-
"string",
|
|
157
|
-
"null"
|
|
158
|
-
]
|
|
159
|
-
},
|
|
160
|
-
"dirty": {
|
|
161
|
-
"type": [
|
|
162
|
-
"boolean",
|
|
163
|
-
"null"
|
|
164
|
-
]
|
|
165
|
-
},
|
|
166
|
-
"worktree_digest": {
|
|
167
|
-
"type": [
|
|
168
|
-
"string",
|
|
169
|
-
"null"
|
|
170
|
-
]
|
|
171
|
-
},
|
|
172
|
-
"error": {
|
|
173
|
-
"type": [
|
|
174
|
-
"string",
|
|
175
|
-
"null"
|
|
176
|
-
]
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
"additionalProperties": false
|
|
122
|
+
"$ref": "repository-identity.schema.json"
|
|
180
123
|
},
|
|
181
124
|
"transition_sequence": {
|
|
182
125
|
"type": "integer",
|
|
@@ -1,15 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "yaaw.intent/
|
|
3
|
+
"$id": "yaaw.intent/v2",
|
|
4
4
|
"type": "object",
|
|
5
|
-
"required": [
|
|
5
|
+
"required": [
|
|
6
|
+
"schema",
|
|
7
|
+
"source_skill",
|
|
8
|
+
"desired_outcome",
|
|
9
|
+
"requested_workflow",
|
|
10
|
+
"target_artifact",
|
|
11
|
+
"completion_kind",
|
|
12
|
+
"created_from_transition_sequence"
|
|
13
|
+
],
|
|
6
14
|
"properties": {
|
|
7
|
-
"schema": {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
"schema": {
|
|
16
|
+
"const": "yaaw.intent/v2"
|
|
17
|
+
},
|
|
18
|
+
"source_skill": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
},
|
|
22
|
+
"desired_outcome": {
|
|
23
|
+
"enum": [
|
|
24
|
+
"CONTINUE",
|
|
25
|
+
"CONTINUE_PRODUCT",
|
|
26
|
+
"REVISE_PRODUCT",
|
|
27
|
+
"REFINE_PRODUCT",
|
|
28
|
+
"CONTINUE_PLANNING",
|
|
29
|
+
"PLANNING_REVIEW",
|
|
30
|
+
"CREATE_SPEC",
|
|
31
|
+
"CREATE_TICKETS",
|
|
32
|
+
"IMPLEMENT",
|
|
33
|
+
"REPAIR",
|
|
34
|
+
"REVIEW"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"requested_workflow": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
},
|
|
41
|
+
"target_artifact": {
|
|
42
|
+
"type": [
|
|
43
|
+
"string",
|
|
44
|
+
"null"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"completion_kind": {
|
|
48
|
+
"enum": [
|
|
49
|
+
"CONTINUE_UNTIL_STOP",
|
|
50
|
+
"PRODUCT_READY",
|
|
51
|
+
"PRODUCT_REVISION_ADVANCED",
|
|
52
|
+
"PRODUCT_REFINED",
|
|
53
|
+
"PLANNING_READY",
|
|
54
|
+
"PLANNING_READINESS_DECIDED",
|
|
55
|
+
"CURRENT_SPEC_ACCEPTED",
|
|
56
|
+
"CURRENT_TICKETS_REGISTERED",
|
|
57
|
+
"TICKET_REVIEW_REQUIRED",
|
|
58
|
+
"TICKET_REVIEW_APPLIED"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"created_from_transition_sequence": {
|
|
62
|
+
"type": "integer",
|
|
63
|
+
"minimum": 0
|
|
64
|
+
},
|
|
65
|
+
"note": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
}
|
|
13
68
|
},
|
|
14
69
|
"additionalProperties": false
|
|
15
70
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "yaaw.observed-state/
|
|
3
|
+
"$id": "yaaw.observed-state/v3",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"required": [
|
|
6
6
|
"schema",
|
|
@@ -10,71 +10,15 @@
|
|
|
10
10
|
"claims",
|
|
11
11
|
"artifacts",
|
|
12
12
|
"inconsistencies",
|
|
13
|
-
"candidate_actions"
|
|
13
|
+
"candidate_actions",
|
|
14
|
+
"reconciliation"
|
|
14
15
|
],
|
|
15
16
|
"properties": {
|
|
16
17
|
"schema": {
|
|
17
|
-
"const": "yaaw.observed-state/
|
|
18
|
+
"const": "yaaw.observed-state/v3"
|
|
18
19
|
},
|
|
19
20
|
"repository": {
|
|
20
|
-
"
|
|
21
|
-
"required": [
|
|
22
|
-
"status",
|
|
23
|
-
"workspace_scope",
|
|
24
|
-
"git_root_relation",
|
|
25
|
-
"head_commit",
|
|
26
|
-
"dirty",
|
|
27
|
-
"worktree_digest",
|
|
28
|
-
"error"
|
|
29
|
-
],
|
|
30
|
-
"properties": {
|
|
31
|
-
"status": {
|
|
32
|
-
"enum": [
|
|
33
|
-
"READY",
|
|
34
|
-
"UNVERSIONED",
|
|
35
|
-
"UNAVAILABLE",
|
|
36
|
-
"ROOT_MISMATCH",
|
|
37
|
-
"IDENTITY_FAILED"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"workspace_scope": {
|
|
41
|
-
"type": "string",
|
|
42
|
-
"minLength": 1
|
|
43
|
-
},
|
|
44
|
-
"git_root_relation": {
|
|
45
|
-
"enum": [
|
|
46
|
-
"same",
|
|
47
|
-
"ancestor",
|
|
48
|
-
"none",
|
|
49
|
-
"unknown"
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
"head_commit": {
|
|
53
|
-
"type": [
|
|
54
|
-
"string",
|
|
55
|
-
"null"
|
|
56
|
-
]
|
|
57
|
-
},
|
|
58
|
-
"dirty": {
|
|
59
|
-
"type": [
|
|
60
|
-
"boolean",
|
|
61
|
-
"null"
|
|
62
|
-
]
|
|
63
|
-
},
|
|
64
|
-
"worktree_digest": {
|
|
65
|
-
"type": [
|
|
66
|
-
"string",
|
|
67
|
-
"null"
|
|
68
|
-
]
|
|
69
|
-
},
|
|
70
|
-
"error": {
|
|
71
|
-
"type": [
|
|
72
|
-
"string",
|
|
73
|
-
"null"
|
|
74
|
-
]
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"additionalProperties": false
|
|
21
|
+
"$ref": "repository-identity.schema.json"
|
|
78
22
|
},
|
|
79
23
|
"transition_sequence": {
|
|
80
24
|
"type": "integer",
|
|
@@ -168,6 +112,56 @@
|
|
|
168
112
|
}
|
|
169
113
|
},
|
|
170
114
|
"additionalProperties": false
|
|
115
|
+
},
|
|
116
|
+
"reconciliation": {
|
|
117
|
+
"anyOf": [
|
|
118
|
+
{
|
|
119
|
+
"type": "null"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"type": "object",
|
|
123
|
+
"required": [
|
|
124
|
+
"id",
|
|
125
|
+
"kind",
|
|
126
|
+
"reason"
|
|
127
|
+
],
|
|
128
|
+
"properties": {
|
|
129
|
+
"id": {
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"kind": {
|
|
133
|
+
"enum": [
|
|
134
|
+
"STATE",
|
|
135
|
+
"BLOCKED"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"subject": {
|
|
139
|
+
"type": [
|
|
140
|
+
"string",
|
|
141
|
+
"null"
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"from": {},
|
|
145
|
+
"to": {},
|
|
146
|
+
"reason": {
|
|
147
|
+
"type": "string"
|
|
148
|
+
},
|
|
149
|
+
"workflow": {
|
|
150
|
+
"type": [
|
|
151
|
+
"string",
|
|
152
|
+
"null"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"evidence": {
|
|
156
|
+
"type": "array",
|
|
157
|
+
"items": {
|
|
158
|
+
"type": "string"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"additionalProperties": true
|
|
163
|
+
}
|
|
164
|
+
]
|
|
171
165
|
}
|
|
172
166
|
},
|
|
173
167
|
"additionalProperties": false
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "yaaw.project-state/v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "phase", "product", "planning", "active_ticket", "tickets", "transition_sequence", "last_transition", "blocker", "last_observed_commit", "last_workflow"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": {"const": "yaaw.project-state/v1"},
|
|
8
|
+
"phase": {"enum": ["product", "planning", "implementation", "complete", "blocked"]},
|
|
9
|
+
"product": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"required": ["artifact", "status", "revision"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"artifact": {"type": "string"},
|
|
14
|
+
"status": {"enum": ["missing", "draft", "ready", "blocked"]},
|
|
15
|
+
"revision": {"type": "integer", "minimum": 0}
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
},
|
|
19
|
+
"planning": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"required": ["artifact", "status", "revision", "current_frontier", "readiness", "active_spec"],
|
|
22
|
+
"properties": {
|
|
23
|
+
"artifact": {"type": "string"},
|
|
24
|
+
"status": {"enum": ["missing", "discovery", "questions", "ready", "blocked"]},
|
|
25
|
+
"revision": {"type": "integer", "minimum": 0},
|
|
26
|
+
"current_frontier": {"type": ["string", "null"]},
|
|
27
|
+
"readiness": {"enum": ["pending", "PASS", "MISSING_DECISIONS", "PRODUCT_GAP", "REPLAN", "BLOCKED"]},
|
|
28
|
+
"active_spec": {"type": ["string", "null"]}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
},
|
|
32
|
+
"active_ticket": {"type": ["string", "null"], "pattern": "^TASK-[0-9]+$"},
|
|
33
|
+
"tickets": {"type": "object", "additionalProperties": {"enum": ["DRAFT", "READY", "IN_PROGRESS", "REVIEW_REQUIRED", "REPAIR_REQUIRED", "REPLAN_REQUIRED", "BLOCKED", "PASS", "CANCELLED"]}},
|
|
34
|
+
"transition_sequence": {"type": "integer", "minimum": 0},
|
|
35
|
+
"last_transition": {
|
|
36
|
+
"anyOf": [
|
|
37
|
+
{"type": "null"},
|
|
38
|
+
{
|
|
39
|
+
"type": "object",
|
|
40
|
+
"required": ["sequence", "subject", "from", "to", "workflow", "reason", "evidence", "observed_commit"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"sequence": {"type": "integer", "minimum": 1},
|
|
43
|
+
"subject": {"type": "string", "minLength": 1},
|
|
44
|
+
"from": {"type": ["string", "null"]},
|
|
45
|
+
"to": {"type": "string", "minLength": 1},
|
|
46
|
+
"workflow": {"type": "string", "minLength": 1},
|
|
47
|
+
"reason": {"type": "string", "minLength": 1},
|
|
48
|
+
"evidence": {"type": "array", "items": {"type": "string"}},
|
|
49
|
+
"observed_commit": {"type": ["string", "null"]}
|
|
50
|
+
},
|
|
51
|
+
"additionalProperties": false
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"blocker": {
|
|
56
|
+
"anyOf": [
|
|
57
|
+
{"type": "null"},
|
|
58
|
+
{
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": ["kind", "summary", "missing"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"kind": {"type": "string", "minLength": 1},
|
|
63
|
+
"summary": {"type": "string", "minLength": 1},
|
|
64
|
+
"missing": {"type": "array", "items": {"type": "string"}}
|
|
65
|
+
},
|
|
66
|
+
"additionalProperties": false
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"last_observed_commit": {"type": ["string", "null"]},
|
|
71
|
+
"last_workflow": {"type": ["string", "null"]}
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false
|
|
74
|
+
}
|