openplanr 2.3.0 → 2.5.0
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 +17 -0
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-B74ddyXA.js → index-BaARCc1f.js} +2 -2
- package/dist/dashboard/assets/{index-B74ddyXA.js.map → index-BaARCc1f.js.map} +1 -1
- package/dist/dashboard/dashboard-manifest.json +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/services/diagram-pipeline-service.d.ts +6 -0
- package/dist/services/diagram-pipeline-service.d.ts.map +1 -1
- package/dist/services/diagram-pipeline-service.js +45 -2
- package/dist/services/diagram-pipeline-service.js.map +1 -1
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +1 -1
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +81 -25
- package/lib/host-packages/claude/openplanr/skills/design/SKILL.md +3 -0
- package/lib/host-packages/claude/openplanr/skills/design/openplanr.skill.json +34 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/handoff.md +35 -0
- package/lib/host-packages/claude/openplanr/skills/design/scripts/design.mjs +2227 -336
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/openplanr.skill.json +33 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/handoff.md +35 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/design.mjs +2227 -336
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/SKILL.md +3 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/openplanr.skill.json +34 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/handoff.md +35 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/design.mjs +2227 -336
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/claude/openplanr/skills/diagram/SKILL.md +12 -0
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-document.md +4 -0
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-intent-to-ir.md +4 -0
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +12 -0
- package/lib/host-packages/claude/openplanr/skills/plan/openplanr.skill.json +45 -1
- package/lib/host-packages/claude/openplanr/skills/plan/references/design-handoff.md +33 -0
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/design.mjs +2227 -336
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +9 -0
- package/lib/host-packages/claude/openplanr/skills/ship/openplanr.skill.json +12 -1
- package/lib/host-packages/claude/openplanr/skills/ship/references/design-lineage.md +26 -0
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +76 -20
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/handoff.md +35 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/design.mjs +2227 -336
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/handoff.md +35 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/design.mjs +2227 -336
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/handoff.md +35 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/design.mjs +2227 -336
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review.mdc +3 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design.mdc +3 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-document.md +4 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-intent-to-ir.md +4 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram.mdc +12 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/design-handoff.md +33 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/design.mjs +2227 -336
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +12 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/design-lineage.md +26 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +9 -0
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +81 -25
- package/lib/host-packages/openai/openplanr/skills/design/SKILL.md +3 -0
- package/lib/host-packages/openai/openplanr/skills/design/openplanr.skill.json +34 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/handoff.md +35 -0
- package/lib/host-packages/openai/openplanr/skills/design/scripts/design.mjs +2227 -336
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/openplanr.skill.json +33 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/handoff.md +35 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/design.mjs +2227 -336
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/SKILL.md +3 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/openplanr.skill.json +34 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/handoff.md +35 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/design.mjs +2227 -336
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/SKILL.md +12 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-document.md +4 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-intent-to-ir.md +4 -0
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +12 -0
- package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +45 -1
- package/lib/host-packages/openai/openplanr/skills/plan/references/design-handoff.md +33 -0
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/design.mjs +2227 -336
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-handoff-readiness.schema.json +398 -0
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-implementation-handoff.schema.json +518 -0
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/protocol/schemas/v1.11.0/design-planning-lineage.schema.json +106 -0
- package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +9 -0
- package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +12 -1
- package/lib/host-packages/openai/openplanr/skills/ship/references/design-lineage.md +26 -0
- package/package.json +2 -2
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openplanr.dev/schemas/v1.11.0/design-implementation-handoff.schema.json",
|
|
4
|
+
"x-openplanr-contract": {
|
|
5
|
+
"id": "design-implementation-handoff",
|
|
6
|
+
"version": "1.11.0"
|
|
7
|
+
},
|
|
8
|
+
"type": "object",
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"kind": {
|
|
12
|
+
"const": "openplanr-design-implementation-handoff"
|
|
13
|
+
},
|
|
14
|
+
"schemaVersion": {
|
|
15
|
+
"const": "1.0.0"
|
|
16
|
+
},
|
|
17
|
+
"id": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"maxLength": 160,
|
|
21
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
22
|
+
},
|
|
23
|
+
"version": {
|
|
24
|
+
"type": "integer",
|
|
25
|
+
"minimum": 1
|
|
26
|
+
},
|
|
27
|
+
"status": {
|
|
28
|
+
"enum": [
|
|
29
|
+
"draft",
|
|
30
|
+
"approved",
|
|
31
|
+
"superseded",
|
|
32
|
+
"revoked"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"authority": {
|
|
36
|
+
"const": "prepare-plan"
|
|
37
|
+
},
|
|
38
|
+
"title": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1,
|
|
41
|
+
"maxLength": 240
|
|
42
|
+
},
|
|
43
|
+
"basis": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"properties": {
|
|
47
|
+
"designId": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"maxLength": 160,
|
|
51
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
52
|
+
},
|
|
53
|
+
"sourceRevision": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
56
|
+
},
|
|
57
|
+
"selectedVariant": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"maxLength": 160,
|
|
61
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
62
|
+
},
|
|
63
|
+
"readiness": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"additionalProperties": false,
|
|
66
|
+
"properties": {
|
|
67
|
+
"status": {
|
|
68
|
+
"enum": [
|
|
69
|
+
"ready",
|
|
70
|
+
"attention",
|
|
71
|
+
"blocked",
|
|
72
|
+
"stale"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"digest": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"required": [
|
|
81
|
+
"status",
|
|
82
|
+
"digest"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"reviewHandoff": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"properties": {
|
|
89
|
+
"version": {
|
|
90
|
+
"type": "integer",
|
|
91
|
+
"minimum": 1
|
|
92
|
+
},
|
|
93
|
+
"contentDigest": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"required": [
|
|
99
|
+
"version",
|
|
100
|
+
"contentDigest"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"designId",
|
|
106
|
+
"sourceRevision",
|
|
107
|
+
"selectedVariant",
|
|
108
|
+
"readiness",
|
|
109
|
+
"reviewHandoff"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"sources": {
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"additionalProperties": false,
|
|
117
|
+
"properties": {
|
|
118
|
+
"id": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"minLength": 1,
|
|
121
|
+
"maxLength": 160,
|
|
122
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
123
|
+
},
|
|
124
|
+
"kind": {
|
|
125
|
+
"enum": [
|
|
126
|
+
"design-revision",
|
|
127
|
+
"selected-direction",
|
|
128
|
+
"design-specification",
|
|
129
|
+
"rendered-verification",
|
|
130
|
+
"review-context",
|
|
131
|
+
"review-feedback",
|
|
132
|
+
"review-metadata",
|
|
133
|
+
"review-handoff",
|
|
134
|
+
"screen",
|
|
135
|
+
"frame",
|
|
136
|
+
"component",
|
|
137
|
+
"state",
|
|
138
|
+
"flow",
|
|
139
|
+
"token",
|
|
140
|
+
"review-decision",
|
|
141
|
+
"element-anchor"
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"path": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"minLength": 1,
|
|
147
|
+
"maxLength": 4096
|
|
148
|
+
},
|
|
149
|
+
"revision": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
152
|
+
},
|
|
153
|
+
"digest": {
|
|
154
|
+
"type": "string",
|
|
155
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
156
|
+
},
|
|
157
|
+
"anchor": {
|
|
158
|
+
"oneOf": [
|
|
159
|
+
{
|
|
160
|
+
"type": "object",
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"properties": {
|
|
163
|
+
"section": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"minLength": 1,
|
|
166
|
+
"maxLength": 160,
|
|
167
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"required": [
|
|
171
|
+
"section"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "object",
|
|
176
|
+
"additionalProperties": false,
|
|
177
|
+
"properties": {
|
|
178
|
+
"screenId": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"minLength": 1,
|
|
181
|
+
"maxLength": 160,
|
|
182
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"required": [
|
|
186
|
+
"screenId"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"type": "object",
|
|
191
|
+
"additionalProperties": false,
|
|
192
|
+
"properties": {
|
|
193
|
+
"screenId": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"minLength": 1,
|
|
196
|
+
"maxLength": 160,
|
|
197
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
198
|
+
},
|
|
199
|
+
"elementId": {
|
|
200
|
+
"type": "string",
|
|
201
|
+
"minLength": 1,
|
|
202
|
+
"maxLength": 160,
|
|
203
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"required": [
|
|
207
|
+
"screenId",
|
|
208
|
+
"elementId"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"type": "object",
|
|
213
|
+
"additionalProperties": false,
|
|
214
|
+
"properties": {
|
|
215
|
+
"reviewId": {
|
|
216
|
+
"type": "string",
|
|
217
|
+
"minLength": 1,
|
|
218
|
+
"maxLength": 160,
|
|
219
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
220
|
+
},
|
|
221
|
+
"pinId": {
|
|
222
|
+
"type": "string",
|
|
223
|
+
"minLength": 1,
|
|
224
|
+
"maxLength": 160,
|
|
225
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"required": [
|
|
229
|
+
"reviewId",
|
|
230
|
+
"pinId"
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"required": [
|
|
237
|
+
"id",
|
|
238
|
+
"kind",
|
|
239
|
+
"path"
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"maxItems": 10000
|
|
243
|
+
},
|
|
244
|
+
"requirements": {
|
|
245
|
+
"type": "array",
|
|
246
|
+
"items": {
|
|
247
|
+
"type": "object",
|
|
248
|
+
"additionalProperties": false,
|
|
249
|
+
"properties": {
|
|
250
|
+
"id": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"pattern": "^REQ-[0-9]{3,}$"
|
|
253
|
+
},
|
|
254
|
+
"kind": {
|
|
255
|
+
"enum": [
|
|
256
|
+
"behavior",
|
|
257
|
+
"visual-state",
|
|
258
|
+
"responsive",
|
|
259
|
+
"accessibility",
|
|
260
|
+
"content-data-assumption",
|
|
261
|
+
"constraint",
|
|
262
|
+
"verification-intent"
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
"statement": {
|
|
266
|
+
"type": "string",
|
|
267
|
+
"minLength": 1,
|
|
268
|
+
"maxLength": 16384
|
|
269
|
+
},
|
|
270
|
+
"sourceRefs": {
|
|
271
|
+
"type": "array",
|
|
272
|
+
"items": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"minLength": 1,
|
|
275
|
+
"maxLength": 160,
|
|
276
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
277
|
+
},
|
|
278
|
+
"maxItems": 256,
|
|
279
|
+
"minItems": 1
|
|
280
|
+
},
|
|
281
|
+
"verification": {
|
|
282
|
+
"type": "array",
|
|
283
|
+
"items": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"minLength": 1,
|
|
286
|
+
"maxLength": 16384
|
|
287
|
+
},
|
|
288
|
+
"maxItems": 256,
|
|
289
|
+
"minItems": 1
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
"required": [
|
|
293
|
+
"id",
|
|
294
|
+
"kind",
|
|
295
|
+
"statement",
|
|
296
|
+
"sourceRefs",
|
|
297
|
+
"verification"
|
|
298
|
+
]
|
|
299
|
+
},
|
|
300
|
+
"maxItems": 10000,
|
|
301
|
+
"minItems": 1
|
|
302
|
+
},
|
|
303
|
+
"contentDigest": {
|
|
304
|
+
"type": "string",
|
|
305
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
306
|
+
},
|
|
307
|
+
"markdown": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"maxLength": 2097152
|
|
310
|
+
},
|
|
311
|
+
"approval": {
|
|
312
|
+
"type": "object",
|
|
313
|
+
"additionalProperties": false,
|
|
314
|
+
"properties": {
|
|
315
|
+
"actorId": {
|
|
316
|
+
"type": "string",
|
|
317
|
+
"minLength": 1,
|
|
318
|
+
"maxLength": 160,
|
|
319
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
320
|
+
},
|
|
321
|
+
"approvedAt": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"format": "date-time"
|
|
324
|
+
},
|
|
325
|
+
"contentDigest": {
|
|
326
|
+
"type": "string",
|
|
327
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
328
|
+
},
|
|
329
|
+
"authority": {
|
|
330
|
+
"const": "prepare-plan"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"required": [
|
|
334
|
+
"actorId",
|
|
335
|
+
"approvedAt",
|
|
336
|
+
"contentDigest",
|
|
337
|
+
"authority"
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
"supersededBy": {
|
|
341
|
+
"type": "object",
|
|
342
|
+
"additionalProperties": false,
|
|
343
|
+
"properties": {
|
|
344
|
+
"id": {
|
|
345
|
+
"type": "string",
|
|
346
|
+
"minLength": 1,
|
|
347
|
+
"maxLength": 160,
|
|
348
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
349
|
+
},
|
|
350
|
+
"version": {
|
|
351
|
+
"type": "integer",
|
|
352
|
+
"minimum": 1
|
|
353
|
+
},
|
|
354
|
+
"contentDigest": {
|
|
355
|
+
"type": "string",
|
|
356
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
"required": [
|
|
360
|
+
"id",
|
|
361
|
+
"version",
|
|
362
|
+
"contentDigest"
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
"revocation": {
|
|
366
|
+
"type": "object",
|
|
367
|
+
"additionalProperties": false,
|
|
368
|
+
"properties": {
|
|
369
|
+
"actorId": {
|
|
370
|
+
"type": "string",
|
|
371
|
+
"minLength": 1,
|
|
372
|
+
"maxLength": 160,
|
|
373
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
374
|
+
},
|
|
375
|
+
"revokedAt": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"format": "date-time"
|
|
378
|
+
},
|
|
379
|
+
"reason": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"minLength": 1,
|
|
382
|
+
"maxLength": 16384
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"required": [
|
|
386
|
+
"actorId",
|
|
387
|
+
"revokedAt",
|
|
388
|
+
"reason"
|
|
389
|
+
]
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"required": [
|
|
393
|
+
"kind",
|
|
394
|
+
"schemaVersion",
|
|
395
|
+
"id",
|
|
396
|
+
"version",
|
|
397
|
+
"status",
|
|
398
|
+
"authority",
|
|
399
|
+
"title",
|
|
400
|
+
"basis",
|
|
401
|
+
"sources",
|
|
402
|
+
"requirements",
|
|
403
|
+
"contentDigest",
|
|
404
|
+
"markdown"
|
|
405
|
+
],
|
|
406
|
+
"allOf": [
|
|
407
|
+
{
|
|
408
|
+
"if": {
|
|
409
|
+
"properties": {
|
|
410
|
+
"status": {
|
|
411
|
+
"const": "approved"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"required": [
|
|
415
|
+
"status"
|
|
416
|
+
]
|
|
417
|
+
},
|
|
418
|
+
"then": {
|
|
419
|
+
"required": [
|
|
420
|
+
"approval"
|
|
421
|
+
],
|
|
422
|
+
"not": {
|
|
423
|
+
"anyOf": [
|
|
424
|
+
{
|
|
425
|
+
"required": [
|
|
426
|
+
"supersededBy"
|
|
427
|
+
]
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"required": [
|
|
431
|
+
"revocation"
|
|
432
|
+
]
|
|
433
|
+
}
|
|
434
|
+
]
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"if": {
|
|
440
|
+
"properties": {
|
|
441
|
+
"status": {
|
|
442
|
+
"const": "superseded"
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"required": [
|
|
446
|
+
"status"
|
|
447
|
+
]
|
|
448
|
+
},
|
|
449
|
+
"then": {
|
|
450
|
+
"required": [
|
|
451
|
+
"approval",
|
|
452
|
+
"supersededBy"
|
|
453
|
+
],
|
|
454
|
+
"not": {
|
|
455
|
+
"required": [
|
|
456
|
+
"revocation"
|
|
457
|
+
]
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"if": {
|
|
463
|
+
"properties": {
|
|
464
|
+
"status": {
|
|
465
|
+
"const": "revoked"
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"required": [
|
|
469
|
+
"status"
|
|
470
|
+
]
|
|
471
|
+
},
|
|
472
|
+
"then": {
|
|
473
|
+
"required": [
|
|
474
|
+
"approval",
|
|
475
|
+
"revocation"
|
|
476
|
+
],
|
|
477
|
+
"not": {
|
|
478
|
+
"required": [
|
|
479
|
+
"supersededBy"
|
|
480
|
+
]
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"if": {
|
|
486
|
+
"properties": {
|
|
487
|
+
"status": {
|
|
488
|
+
"const": "draft"
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
"required": [
|
|
492
|
+
"status"
|
|
493
|
+
]
|
|
494
|
+
},
|
|
495
|
+
"then": {
|
|
496
|
+
"not": {
|
|
497
|
+
"anyOf": [
|
|
498
|
+
{
|
|
499
|
+
"required": [
|
|
500
|
+
"approval"
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"required": [
|
|
505
|
+
"supersededBy"
|
|
506
|
+
]
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"required": [
|
|
510
|
+
"revocation"
|
|
511
|
+
]
|
|
512
|
+
}
|
|
513
|
+
]
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
]
|
|
518
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openplanr.dev/schemas/v1.11.0/design-planning-lineage.schema.json",
|
|
4
|
+
"x-openplanr-contract": {
|
|
5
|
+
"id": "design-planning-lineage",
|
|
6
|
+
"version": "1.11.0"
|
|
7
|
+
},
|
|
8
|
+
"type": "object",
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"kind": {
|
|
12
|
+
"const": "openplanr-design-planning-lineage"
|
|
13
|
+
},
|
|
14
|
+
"schemaVersion": {
|
|
15
|
+
"const": "1.0.0"
|
|
16
|
+
},
|
|
17
|
+
"handoff": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"properties": {
|
|
21
|
+
"id": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"maxLength": 160,
|
|
25
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
|
|
26
|
+
},
|
|
27
|
+
"version": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"minimum": 1
|
|
30
|
+
},
|
|
31
|
+
"contentDigest": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": [
|
|
37
|
+
"id",
|
|
38
|
+
"version",
|
|
39
|
+
"contentDigest"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"specId": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^SPEC-[0-9]{3,}$"
|
|
45
|
+
},
|
|
46
|
+
"mappings": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"properties": {
|
|
52
|
+
"requirementId": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"pattern": "^REQ-[0-9]{3,}$"
|
|
55
|
+
},
|
|
56
|
+
"acceptanceRefs": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"properties": {
|
|
62
|
+
"storyId": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"pattern": "^US-[0-9]{3,}$"
|
|
65
|
+
},
|
|
66
|
+
"acceptanceId": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"pattern": "^AC-[0-9]{3,}$"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"required": [
|
|
72
|
+
"storyId",
|
|
73
|
+
"acceptanceId"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
"maxItems": 256,
|
|
77
|
+
"minItems": 1
|
|
78
|
+
},
|
|
79
|
+
"taskIds": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"items": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"pattern": "^T-[0-9]{3,}$"
|
|
84
|
+
},
|
|
85
|
+
"maxItems": 256,
|
|
86
|
+
"minItems": 1
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"required": [
|
|
90
|
+
"requirementId",
|
|
91
|
+
"acceptanceRefs",
|
|
92
|
+
"taskIds"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"maxItems": 10000,
|
|
96
|
+
"minItems": 1
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"required": [
|
|
100
|
+
"kind",
|
|
101
|
+
"schemaVersion",
|
|
102
|
+
"handoff",
|
|
103
|
+
"specId",
|
|
104
|
+
"mappings"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
@@ -49,6 +49,11 @@ report the changed inputs and obtain the missing decision only when it affects t
|
|
|
49
49
|
requested plan. Never silently substitute a newer draft for an approved snapshot.
|
|
50
50
|
A missing review handoff does not block ordinary planning from a clear specification.
|
|
51
51
|
|
|
52
|
+
When the request carries an approved implementation package, read
|
|
53
|
+
[the design handoff contract](references/design-handoff.md). Validate that the
|
|
54
|
+
package is still the current approved version before treating its numbered
|
|
55
|
+
requirements as scope. A missing package leaves ordinary Plan unchanged.
|
|
56
|
+
|
|
52
57
|
For a consequential unresolved choice, use the host's structured question
|
|
53
58
|
interface. Ask at most three short, mutually exclusive questions at once. If the
|
|
54
59
|
host has no structured question interface, ask one concise chat question.
|
|
@@ -88,6 +93,13 @@ Validate all frontmatter and acceptance coverage before finishing. If a helper
|
|
|
88
93
|
is unavailable, inspect existing IDs and validate the same invariants directly;
|
|
89
94
|
do not route semantic work to a CLI fallback.
|
|
90
95
|
|
|
96
|
+
For approved design input, author the complete story and task bytes before
|
|
97
|
+
touching target paths, then commit those bytes and the sibling
|
|
98
|
+
`design-lineage.json` through the public atomic planning-lineage helper described
|
|
99
|
+
in the reference. A failed requirement-to-acceptance-to-task mapping writes
|
|
100
|
+
nothing. This deterministic commit validates content; it does not generate the
|
|
101
|
+
plan or invoke another phase.
|
|
102
|
+
|
|
91
103
|
## Return
|
|
92
104
|
|
|
93
105
|
- **Outcome:** what is implementation-ready.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Use design lineage during Ship
|
|
2
|
+
|
|
3
|
+
`design-lineage.json` is optional. Its absence is normal and must not change an
|
|
4
|
+
ordinary Ship run.
|
|
5
|
+
|
|
6
|
+
When present, validate the sidecar and compare its package identity with the exact
|
|
7
|
+
approved implementation handoff. Load only mappings whose `taskIds` include the
|
|
8
|
+
selected task. From that subset, load only the referenced `REQ-NNN` requirements
|
|
9
|
+
and their source records. Do not ingest unrelated screens, requirements, package
|
|
10
|
+
versions, or complete design documents.
|
|
11
|
+
|
|
12
|
+
Treat the context as **current** when lineage, immutable package history, and the
|
|
13
|
+
current approved pointer identify the same package; **stale** when the exact
|
|
14
|
+
package is missing, changed, superseded, revoked, or disagrees with the sidecar;
|
|
15
|
+
and **absent** when there is no sidecar.
|
|
16
|
+
|
|
17
|
+
Carry current requirement statements, verification intents, accessibility and
|
|
18
|
+
responsive expectations into the implementation and checks. For stale context,
|
|
19
|
+
name the mismatch and use the evidence only as historical context; never silently
|
|
20
|
+
upgrade it to approved scope. The selected task, parents, and repository rules
|
|
21
|
+
remain authoritative.
|
|
22
|
+
|
|
23
|
+
Ship is a later, separate user invocation. Reading lineage never starts Plan,
|
|
24
|
+
another task, release, publication, deployment, or a Git operation. Delivery
|
|
25
|
+
status is a read-only projection of the approved package, lineage, task state, and
|
|
26
|
+
Ship closure. Never write delivery state back into an approved package.
|
|
@@ -18,6 +18,11 @@ when present, and specification. Also read repository instructions, ADRs,
|
|
|
18
18
|
planning rules, applicable stack guidance, relevant design/database context,
|
|
19
19
|
implementation code, tests, and interfaces produced by declared dependencies.
|
|
20
20
|
|
|
21
|
+
Read [the design lineage contract](references/design-lineage.md). If the selected
|
|
22
|
+
planning root contains `design-lineage.json`, load only the selected task's mapped
|
|
23
|
+
requirements and source references, and report whether the exact approved package
|
|
24
|
+
is current or stale. Its absence leaves the ordinary task context unchanged.
|
|
25
|
+
|
|
21
26
|
Only `dependsOn` defines semantic ordering. When a dependency has not produced
|
|
22
27
|
the interface this task consumes, report that concrete gap. Never infer a
|
|
23
28
|
dependency from order or overlapping paths. Isolate independent executions when
|
|
@@ -62,6 +67,10 @@ Run the strongest applicable focused checks while working, then the relevant
|
|
|
62
67
|
regression checks. Fix failures caused by the change and rerun affected checks.
|
|
63
68
|
Read [the result contract](references/result-contract.md) before reporting.
|
|
64
69
|
|
|
70
|
+
Do not write progress into an approved design package. The studio derives
|
|
71
|
+
approved, planned, implementing, and verified state from canonical planning and
|
|
72
|
+
Ship artifacts after this separate invocation.
|
|
73
|
+
|
|
65
74
|
## Return
|
|
66
75
|
|
|
67
76
|
Return the existing five fields:
|