@deftai/directive-content 0.55.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.
Files changed (250) hide show
  1. package/.agents/skills/deft/SKILL.md +6 -0
  2. package/.agents/skills/deft-directive-article-review/SKILL.md +11 -0
  3. package/.agents/skills/deft-directive-build/SKILL.md +10 -0
  4. package/.agents/skills/deft-directive-cost/SKILL.md +12 -0
  5. package/.agents/skills/deft-directive-debug/SKILL.md +13 -0
  6. package/.agents/skills/deft-directive-gh-arch/SKILL.md +11 -0
  7. package/.agents/skills/deft-directive-gh-slice/SKILL.md +10 -0
  8. package/.agents/skills/deft-directive-glossary/SKILL.md +10 -0
  9. package/.agents/skills/deft-directive-interview/SKILL.md +9 -0
  10. package/.agents/skills/deft-directive-pre-pr/SKILL.md +9 -0
  11. package/.agents/skills/deft-directive-refinement/SKILL.md +10 -0
  12. package/.agents/skills/deft-directive-release/SKILL.md +12 -0
  13. package/.agents/skills/deft-directive-review-cycle/SKILL.md +10 -0
  14. package/.agents/skills/deft-directive-setup/SKILL.md +10 -0
  15. package/.agents/skills/deft-directive-swarm/SKILL.md +10 -0
  16. package/.agents/skills/deft-directive-sync/SKILL.md +9 -0
  17. package/.agents/skills/deft-directive-triage/SKILL.md +9 -0
  18. package/.agents/skills/deft-directive-write-skill/SKILL.md +9 -0
  19. package/LICENSE.md +22 -0
  20. package/QUICK-START.md +167 -0
  21. package/UPGRADING.md +517 -0
  22. package/coding/build-output.md +28 -0
  23. package/coding/coding.md +235 -0
  24. package/coding/debugging.md +110 -0
  25. package/coding/holzmann.md +96 -0
  26. package/coding/hygiene.md +127 -0
  27. package/coding/security.md +158 -0
  28. package/coding/testing.md +162 -0
  29. package/coding/toolchain.md +44 -0
  30. package/commands.md +300 -0
  31. package/context/context.md +57 -0
  32. package/context/deterministic-split.md +67 -0
  33. package/context/examples.md +26 -0
  34. package/context/fractal-summaries.md +69 -0
  35. package/context/long-horizon.md +46 -0
  36. package/context/spec-deltas.md +177 -0
  37. package/context/tool-design.md +34 -0
  38. package/context/working-memory.md +62 -0
  39. package/contracts/boundary-maps.md +65 -0
  40. package/contracts/deterministic-questions.md +59 -0
  41. package/contracts/hierarchy.md +77 -0
  42. package/conventions/content-manifest.json +399 -0
  43. package/conventions/machine-generated-banner.md +130 -0
  44. package/conventions/references.md +120 -0
  45. package/conventions/rule-ownership.json +382 -0
  46. package/conventions/task-caching.md +43 -0
  47. package/conventions/vbrief-filenames.md +70 -0
  48. package/deployments/README.md +37 -0
  49. package/deployments/agentuity/README.md +138 -0
  50. package/deployments/agentuity/via-cli.md +380 -0
  51. package/deployments/agentuity/via-cloud.md +425 -0
  52. package/deployments/agentuity/via-github-actions.md +664 -0
  53. package/deployments/agentuity/via-gravity-network.md +606 -0
  54. package/deployments/agentuity/via-vpc.md +607 -0
  55. package/deployments/aws/README.md +38 -0
  56. package/deployments/aws/via-app-runner.md +612 -0
  57. package/deployments/aws/via-ecs-fargate.md +561 -0
  58. package/deployments/aws/via-elastic-beanstalk.md +628 -0
  59. package/deployments/aws/via-lambda.md +649 -0
  60. package/deployments/azure/README.md +37 -0
  61. package/deployments/azure/via-aks.md +390 -0
  62. package/deployments/azure/via-app-service.md +564 -0
  63. package/deployments/azure/via-container-apps.md +599 -0
  64. package/deployments/azure/via-functions.md +552 -0
  65. package/deployments/cloud-gov/README.md +63 -0
  66. package/deployments/cloud-gov/agents/compliance-docs.md +154 -0
  67. package/deployments/cloud-gov/agents.md +39 -0
  68. package/deployments/cloud-gov/cicd.md +64 -0
  69. package/deployments/cloud-gov/deployment.md +150 -0
  70. package/deployments/cloud-gov/logging.md +43 -0
  71. package/deployments/cloud-gov/manifest.md +121 -0
  72. package/deployments/cloud-gov/overview.md +58 -0
  73. package/deployments/cloud-gov/security.md +46 -0
  74. package/deployments/cloud-gov/services.md +72 -0
  75. package/deployments/cloud-gov/upstream/README.md +18 -0
  76. package/deployments/cloudflare/README.md +33 -0
  77. package/deployments/cloudflare/via-dashboard.md +83 -0
  78. package/deployments/cloudflare/via-git.md +90 -0
  79. package/deployments/cloudflare/via-github-actions.md +185 -0
  80. package/deployments/cloudflare/via-terraform.md +157 -0
  81. package/deployments/cloudflare/via-wrangler.md +165 -0
  82. package/deployments/fly-io/README.md +37 -0
  83. package/deployments/fly-io/via-dockerfile.md +648 -0
  84. package/deployments/fly-io/via-flyctl.md +653 -0
  85. package/deployments/fly-io/via-github-actions.md +695 -0
  86. package/deployments/fly-io/via-multi-region.md +598 -0
  87. package/deployments/google/README.md +34 -0
  88. package/deployments/google/via-app-engine.md +42 -0
  89. package/deployments/google/via-cloud-functions.md +23 -0
  90. package/deployments/google/via-cloud-run.md +330 -0
  91. package/deployments/google/via-gke.md +23 -0
  92. package/deployments/netlify/README.md +99 -0
  93. package/deployments/netlify/via-cli.md +17 -0
  94. package/deployments/netlify/via-functions.md +19 -0
  95. package/deployments/netlify/via-git.md +25 -0
  96. package/deployments/vercel/README.md +90 -0
  97. package/deployments/vercel/via-api.md +16 -0
  98. package/deployments/vercel/via-cli.md +17 -0
  99. package/deployments/vercel/via-git.md +24 -0
  100. package/docs/BROWNFIELD.md +179 -0
  101. package/docs/getting-started.md +137 -0
  102. package/docs/good-agents-md.md +137 -0
  103. package/events/README.md +89 -0
  104. package/events/event-record.schema.json +26 -0
  105. package/events/registry.json +166 -0
  106. package/events/registry.schema.json +71 -0
  107. package/glossary.md +145 -0
  108. package/incidents/README.md +81 -0
  109. package/incidents/_template.md +38 -0
  110. package/interfaces/cli.md +104 -0
  111. package/interfaces/rest.md +212 -0
  112. package/interfaces/tui.md +242 -0
  113. package/interfaces/web.md +123 -0
  114. package/languages/6502-DASM.md +132 -0
  115. package/languages/c.md +235 -0
  116. package/languages/commands.md +23 -0
  117. package/languages/cpp.md +132 -0
  118. package/languages/csharp.md +259 -0
  119. package/languages/dart.md +183 -0
  120. package/languages/delphi.md +218 -0
  121. package/languages/elixir.md +208 -0
  122. package/languages/go.md +78 -0
  123. package/languages/java.md +278 -0
  124. package/languages/javascript.md +163 -0
  125. package/languages/julia.md +175 -0
  126. package/languages/kotlin.md +193 -0
  127. package/languages/markdown.md +168 -0
  128. package/languages/mermaid.md +146 -0
  129. package/languages/officejs.md +392 -0
  130. package/languages/python.md +209 -0
  131. package/languages/r.md +163 -0
  132. package/languages/rust.md +216 -0
  133. package/languages/sql.md +216 -0
  134. package/languages/swift.md +153 -0
  135. package/languages/typescript.md +132 -0
  136. package/languages/vba.md +279 -0
  137. package/languages/vhdl.md +180 -0
  138. package/languages/visual-basic.md +151 -0
  139. package/languages/zig.md +196 -0
  140. package/meta/SOUL.md +27 -0
  141. package/meta/code-field.md +44 -0
  142. package/meta/morals.md +40 -0
  143. package/meta/philosophy.md +39 -0
  144. package/meta/project.md +49 -0
  145. package/meta/ralph.md +223 -0
  146. package/meta/security.md +80 -0
  147. package/meta/versioning.md +326 -0
  148. package/package.json +22 -0
  149. package/packs/lessons/lessons-pack-0.1.json +553 -0
  150. package/packs/patterns/patterns-pack-0.1.json +57 -0
  151. package/packs/rules/rules-pack-0.1.json +4767 -0
  152. package/packs/skills/skills-pack-0.1.json +262 -0
  153. package/packs/strategies/strategies-pack-0.1.json +167 -0
  154. package/packs/swarm-spec/swarm-spec-pack-0.1.json +17 -0
  155. package/patterns/executor-layer-credentials.md +227 -0
  156. package/patterns/llm-app.md +156 -0
  157. package/patterns/multi-agent.md +278 -0
  158. package/patterns/prompt-assembly-layer-ordering.md +154 -0
  159. package/patterns/role-as-overlay.md +179 -0
  160. package/platforms/2600.md +137 -0
  161. package/platforms/unity.md +329 -0
  162. package/references/composer-skill-porting.md +152 -0
  163. package/references/cost-models.md +163 -0
  164. package/references/ip-risk.md +246 -0
  165. package/references/plain-english-ux.md +275 -0
  166. package/resilience/context-pruning.md +67 -0
  167. package/resilience/continue-here.md +62 -0
  168. package/scm/changelog.md +276 -0
  169. package/scm/git.md +139 -0
  170. package/scm/github.md +265 -0
  171. package/secrets/.gitkeep +0 -0
  172. package/skills/deft-build/SKILL.md +20 -0
  173. package/skills/deft-directive-article-review/SKILL.md +156 -0
  174. package/skills/deft-directive-build/SKILL.md +302 -0
  175. package/skills/deft-directive-cost/SKILL.md +201 -0
  176. package/skills/deft-directive-debug/SKILL.md +140 -0
  177. package/skills/deft-directive-decompose/SKILL.md +96 -0
  178. package/skills/deft-directive-gh-arch/SKILL.md +160 -0
  179. package/skills/deft-directive-gh-slice/SKILL.md +199 -0
  180. package/skills/deft-directive-glossary/SKILL.md +118 -0
  181. package/skills/deft-directive-interview/SKILL.md +528 -0
  182. package/skills/deft-directive-pre-pr/SKILL.md +131 -0
  183. package/skills/deft-directive-probe/SKILL.md +127 -0
  184. package/skills/deft-directive-refinement/SKILL.md +403 -0
  185. package/skills/deft-directive-release/SKILL.md +266 -0
  186. package/skills/deft-directive-review-cycle/SKILL.md +401 -0
  187. package/skills/deft-directive-setup/SKILL.md +717 -0
  188. package/skills/deft-directive-swarm/SKILL.md +989 -0
  189. package/skills/deft-directive-sync/SKILL.md +288 -0
  190. package/skills/deft-directive-triage/SKILL.md +137 -0
  191. package/skills/deft-directive-write-skill/SKILL.md +169 -0
  192. package/skills/deft-interview/SKILL.md +16 -0
  193. package/skills/deft-pre-pr/SKILL.md +16 -0
  194. package/skills/deft-review-cycle/SKILL.md +16 -0
  195. package/skills/deft-roadmap-refresh/SKILL.md +16 -0
  196. package/skills/deft-setup/SKILL.md +20 -0
  197. package/skills/deft-swarm/SKILL.md +16 -0
  198. package/skills/deft-sync/SKILL.md +16 -0
  199. package/strategies/README.md +83 -0
  200. package/strategies/artifact-guards.md +85 -0
  201. package/strategies/bdd.md +115 -0
  202. package/strategies/brownfield.md +7 -0
  203. package/strategies/discuss.md +129 -0
  204. package/strategies/emit-hints.md +69 -0
  205. package/strategies/enterprise.md +193 -0
  206. package/strategies/interview.md +551 -0
  207. package/strategies/map.md +179 -0
  208. package/strategies/probe.md +151 -0
  209. package/strategies/rapid.md +155 -0
  210. package/strategies/research.md +155 -0
  211. package/strategies/roadmap.md +9 -0
  212. package/strategies/speckit.md +437 -0
  213. package/strategies/v0-20-contract.md +134 -0
  214. package/strategies/yolo.md +169 -0
  215. package/swarm/swarm.md +300 -0
  216. package/templates/COST-ESTIMATE.md +114 -0
  217. package/templates/PULL_REQUEST_TEMPLATE.md +35 -0
  218. package/templates/agent-prompt-preamble.md +409 -0
  219. package/templates/agents-entry.md +211 -0
  220. package/templates/agents-entry.placeholders.md +75 -0
  221. package/templates/embed.go +20 -0
  222. package/templates/embed_test.go +36 -0
  223. package/templates/make-spec-example.md +9 -0
  224. package/templates/make-spec.md +246 -0
  225. package/templates/project.md.template +52 -0
  226. package/templates/specification.md +1 -0
  227. package/templates/swarm-greptile-poller-prompt.md +556 -0
  228. package/templates/user.md.template +31 -0
  229. package/tools/RWLDL.md +80 -0
  230. package/tools/greptile.md +141 -0
  231. package/tools/installer.md +23 -0
  232. package/tools/taskfile-migration.md +32 -0
  233. package/tools/taskfile.md +185 -0
  234. package/tools/telemetry.md +285 -0
  235. package/vbrief/schemas/cache-meta.schema.json +137 -0
  236. package/vbrief/schemas/candidates.schema.json +130 -0
  237. package/vbrief/schemas/codebase-map.schema.json +213 -0
  238. package/vbrief/schemas/lessons-pack.schema.json +134 -0
  239. package/vbrief/schemas/patterns-pack.schema.json +84 -0
  240. package/vbrief/schemas/rules-pack.schema.json +105 -0
  241. package/vbrief/schemas/skills-pack.schema.json +94 -0
  242. package/vbrief/schemas/slices.schema.json +87 -0
  243. package/vbrief/schemas/strategies-pack.schema.json +89 -0
  244. package/vbrief/schemas/swarm-spec-pack.schema.json +84 -0
  245. package/vbrief/schemas/vbrief-core.schema.json +1022 -0
  246. package/vbrief/vbrief.md +684 -0
  247. package/verification/integration.md +76 -0
  248. package/verification/plan-checking.md +85 -0
  249. package/verification/uat.md +60 -0
  250. package/verification/verification.md +117 -0
@@ -0,0 +1,1022 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://vbrief.dev/schemas/vbrief-core-0.6.schema.json",
4
+ "title": "vBRIEF Core Schema v0.6",
5
+ "description": "JSON Schema for vBRIEF core document structure (v0.6). Uses `items` as the preferred nested PlanItem field, retains `subItems` as a deprecated compatibility alias, and adds `failed` to the shared status enum.",
6
+ "type": "object",
7
+ "required": [
8
+ "vBRIEFInfo",
9
+ "plan"
10
+ ],
11
+ "properties": {
12
+ "vBRIEFInfo": {
13
+ "$ref": "#/$defs/vBRIEFInfo"
14
+ },
15
+ "plan": {
16
+ "$ref": "#/$defs/Plan"
17
+ }
18
+ },
19
+ "additionalProperties": true,
20
+ "not": {
21
+ "anyOf": [
22
+ {
23
+ "required": [
24
+ "todoList"
25
+ ]
26
+ },
27
+ {
28
+ "required": [
29
+ "playbook"
30
+ ]
31
+ }
32
+ ]
33
+ },
34
+ "$defs": {
35
+ "vBRIEFInfo": {
36
+ "type": "object",
37
+ "required": [
38
+ "version"
39
+ ],
40
+ "properties": {
41
+ "version": {
42
+ "type": "string",
43
+ "const": "0.6"
44
+ },
45
+ "author": {
46
+ "type": "string"
47
+ },
48
+ "description": {
49
+ "type": "string"
50
+ },
51
+ "metadata": {
52
+ "type": "object"
53
+ },
54
+ "created": {
55
+ "$ref": "#/$defs/dateTime"
56
+ },
57
+ "updated": {
58
+ "$ref": "#/$defs/dateTime"
59
+ },
60
+ "timezone": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "additionalProperties": true
65
+ },
66
+ "Architecture": {
67
+ "type": "object",
68
+ "properties": {
69
+ "codeStructure": {
70
+ "$ref": "#/$defs/CodeStructure"
71
+ }
72
+ },
73
+ "additionalProperties": true
74
+ },
75
+ "CodeStructure": {
76
+ "type": "object",
77
+ "required": [
78
+ "version",
79
+ "modules",
80
+ "pathOwnership",
81
+ "allowedPatterns",
82
+ "projectionManifest"
83
+ ],
84
+ "properties": {
85
+ "version": {
86
+ "type": "string",
87
+ "const": "0.1"
88
+ },
89
+ "modules": {
90
+ "type": "array",
91
+ "minItems": 1,
92
+ "items": {
93
+ "$ref": "#/$defs/CodeStructureModule"
94
+ }
95
+ },
96
+ "pathOwnership": {
97
+ "type": "array",
98
+ "items": {
99
+ "$ref": "#/$defs/CodeStructurePathOwnership"
100
+ }
101
+ },
102
+ "allowedPatterns": {
103
+ "type": "array",
104
+ "items": {
105
+ "$ref": "#/$defs/CodeStructureAllowedPattern"
106
+ }
107
+ },
108
+ "projectionManifest": {
109
+ "type": "array",
110
+ "items": {
111
+ "$ref": "#/$defs/CodeStructureProjection"
112
+ }
113
+ },
114
+ "filePurposeOverrides": {
115
+ "type": "array",
116
+ "items": {
117
+ "$ref": "#/$defs/CodeStructureFilePurposeOverride"
118
+ }
119
+ },
120
+ "glossaryRefs": {
121
+ "type": "array",
122
+ "items": {
123
+ "$ref": "#/$defs/CodeStructureGlossaryRef"
124
+ }
125
+ }
126
+ },
127
+ "additionalProperties": true
128
+ },
129
+ "CodeStructureStableId": {
130
+ "type": "string",
131
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
132
+ },
133
+ "CodeStructureRelativePath": {
134
+ "type": "string",
135
+ "minLength": 1
136
+ },
137
+ "CodeStructureModule": {
138
+ "type": "object",
139
+ "required": [
140
+ "id",
141
+ "name",
142
+ "purpose",
143
+ "pathGlobs"
144
+ ],
145
+ "properties": {
146
+ "id": {
147
+ "$ref": "#/$defs/CodeStructureStableId"
148
+ },
149
+ "name": {
150
+ "type": "string",
151
+ "minLength": 1
152
+ },
153
+ "purpose": {
154
+ "type": "string",
155
+ "minLength": 1
156
+ },
157
+ "pathGlobs": {
158
+ "type": "array",
159
+ "minItems": 1,
160
+ "items": {
161
+ "$ref": "#/$defs/CodeStructureRelativePath"
162
+ }
163
+ },
164
+ "owner": {
165
+ "type": "string"
166
+ }
167
+ },
168
+ "additionalProperties": true
169
+ },
170
+ "CodeStructurePathOwnership": {
171
+ "type": "object",
172
+ "required": [
173
+ "pathGlob",
174
+ "module"
175
+ ],
176
+ "properties": {
177
+ "pathGlob": {
178
+ "$ref": "#/$defs/CodeStructureRelativePath"
179
+ },
180
+ "module": {
181
+ "$ref": "#/$defs/CodeStructureStableId"
182
+ },
183
+ "owner": {
184
+ "type": "string"
185
+ },
186
+ "rationale": {
187
+ "type": "string"
188
+ }
189
+ },
190
+ "additionalProperties": true
191
+ },
192
+ "CodeStructureAllowedPattern": {
193
+ "type": "object",
194
+ "required": [
195
+ "id",
196
+ "module",
197
+ "name",
198
+ "description"
199
+ ],
200
+ "properties": {
201
+ "id": {
202
+ "$ref": "#/$defs/CodeStructureStableId"
203
+ },
204
+ "module": {
205
+ "$ref": "#/$defs/CodeStructureStableId"
206
+ },
207
+ "name": {
208
+ "type": "string",
209
+ "minLength": 1
210
+ },
211
+ "description": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "appliesTo": {
216
+ "type": "array",
217
+ "items": {
218
+ "$ref": "#/$defs/CodeStructureRelativePath"
219
+ }
220
+ },
221
+ "forbidden": {
222
+ "type": "boolean"
223
+ }
224
+ },
225
+ "additionalProperties": true
226
+ },
227
+ "CodeStructureProjection": {
228
+ "type": "object",
229
+ "required": [
230
+ "path",
231
+ "kind",
232
+ "source",
233
+ "generated"
234
+ ],
235
+ "properties": {
236
+ "path": {
237
+ "$ref": "#/$defs/CodeStructureRelativePath"
238
+ },
239
+ "kind": {
240
+ "$ref": "#/$defs/CodeStructureStableId"
241
+ },
242
+ "source": {
243
+ "type": "string",
244
+ "minLength": 1
245
+ },
246
+ "generated": {
247
+ "type": "boolean"
248
+ }
249
+ },
250
+ "additionalProperties": true
251
+ },
252
+ "CodeStructureFilePurposeOverride": {
253
+ "type": "object",
254
+ "required": [
255
+ "path",
256
+ "purpose"
257
+ ],
258
+ "properties": {
259
+ "path": {
260
+ "$ref": "#/$defs/CodeStructureRelativePath"
261
+ },
262
+ "module": {
263
+ "$ref": "#/$defs/CodeStructureStableId"
264
+ },
265
+ "purpose": {
266
+ "type": "string",
267
+ "minLength": 1
268
+ }
269
+ },
270
+ "additionalProperties": true
271
+ },
272
+ "CodeStructureGlossaryRef": {
273
+ "type": "object",
274
+ "required": [
275
+ "term"
276
+ ],
277
+ "properties": {
278
+ "term": {
279
+ "type": "string",
280
+ "minLength": 1
281
+ },
282
+ "uri": {
283
+ "$ref": "#/$defs/CodeStructureRelativePath"
284
+ }
285
+ },
286
+ "additionalProperties": true
287
+ },
288
+ "Plan": {
289
+ "type": "object",
290
+ "required": [
291
+ "title",
292
+ "status",
293
+ "items"
294
+ ],
295
+ "properties": {
296
+ "id": {
297
+ "type": "string",
298
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
299
+ },
300
+ "uid": {
301
+ "type": "string"
302
+ },
303
+ "title": {
304
+ "type": "string",
305
+ "minLength": 1
306
+ },
307
+ "status": {
308
+ "$ref": "#/$defs/Status"
309
+ },
310
+ "items": {
311
+ "type": "array",
312
+ "items": {
313
+ "$ref": "#/$defs/PlanItem"
314
+ }
315
+ },
316
+ "policy": {
317
+ "$ref": "#/$defs/Policy"
318
+ },
319
+ "architecture": {
320
+ "$ref": "#/$defs/Architecture"
321
+ },
322
+ "narratives": {
323
+ "type": "object",
324
+ "properties": {
325
+ "Proposal": {
326
+ "type": "string"
327
+ },
328
+ "Overview": {
329
+ "type": "string"
330
+ },
331
+ "Background": {
332
+ "type": "string"
333
+ },
334
+ "Problem": {
335
+ "type": "string"
336
+ },
337
+ "Constraint": {
338
+ "type": "string"
339
+ },
340
+ "Hypothesis": {
341
+ "type": "string"
342
+ },
343
+ "Alternative": {
344
+ "type": "string"
345
+ },
346
+ "Risk": {
347
+ "type": "string"
348
+ },
349
+ "Test": {
350
+ "type": "string"
351
+ },
352
+ "Action": {
353
+ "type": "string"
354
+ },
355
+ "Observation": {
356
+ "type": "string"
357
+ },
358
+ "Result": {
359
+ "type": "string"
360
+ },
361
+ "Reflection": {
362
+ "type": "string"
363
+ },
364
+ "Outcome": {
365
+ "type": "string"
366
+ },
367
+ "Strengths": {
368
+ "type": "string"
369
+ },
370
+ "Weaknesses": {
371
+ "type": "string"
372
+ },
373
+ "Lessons": {
374
+ "type": "string"
375
+ }
376
+ },
377
+ "additionalProperties": {
378
+ "type": "string"
379
+ }
380
+ },
381
+ "edges": {
382
+ "type": "array",
383
+ "items": {
384
+ "$ref": "#/$defs/Edge"
385
+ }
386
+ },
387
+ "tags": {
388
+ "type": "array",
389
+ "items": {
390
+ "type": "string"
391
+ }
392
+ },
393
+ "metadata": {
394
+ "type": "object"
395
+ },
396
+ "created": {
397
+ "$ref": "#/$defs/dateTime"
398
+ },
399
+ "updated": {
400
+ "$ref": "#/$defs/dateTime"
401
+ },
402
+ "author": {
403
+ "type": "string"
404
+ },
405
+ "reviewers": {
406
+ "type": "array",
407
+ "items": {
408
+ "type": "string"
409
+ }
410
+ },
411
+ "uris": {
412
+ "type": "array",
413
+ "items": {
414
+ "$ref": "#/$defs/URI"
415
+ }
416
+ },
417
+ "references": {
418
+ "type": "array",
419
+ "items": {
420
+ "$ref": "#/$defs/VBriefReference"
421
+ }
422
+ },
423
+ "timezone": {
424
+ "type": "string"
425
+ },
426
+ "agent": {
427
+ "$ref": "#/$defs/Agent"
428
+ },
429
+ "lastModifiedBy": {
430
+ "$ref": "#/$defs/Agent"
431
+ },
432
+ "changeLog": {
433
+ "type": "array",
434
+ "items": {
435
+ "$ref": "#/$defs/Change"
436
+ }
437
+ },
438
+ "sequence": {
439
+ "type": "integer",
440
+ "minimum": 0
441
+ },
442
+ "fork": {
443
+ "$ref": "#/$defs/Fork"
444
+ }
445
+ },
446
+ "additionalProperties": true
447
+ },
448
+ "PlanItem": {
449
+ "type": "object",
450
+ "required": [
451
+ "title",
452
+ "status"
453
+ ],
454
+ "properties": {
455
+ "id": {
456
+ "type": "string",
457
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
458
+ },
459
+ "uid": {
460
+ "type": "string"
461
+ },
462
+ "title": {
463
+ "type": "string",
464
+ "minLength": 1
465
+ },
466
+ "status": {
467
+ "$ref": "#/$defs/Status"
468
+ },
469
+ "narrative": {
470
+ "type": "object",
471
+ "additionalProperties": {
472
+ "type": "string"
473
+ }
474
+ },
475
+ "subItems": {
476
+ "type": "array",
477
+ "description": "Deprecated legacy alias for items; retained for compatibility.",
478
+ "items": {
479
+ "$ref": "#/$defs/PlanItem"
480
+ }
481
+ },
482
+ "planRef": {
483
+ "type": "string",
484
+ "pattern": "^(#[a-zA-Z0-9_.-]+|file://.*|https://.*)$"
485
+ },
486
+ "tags": {
487
+ "type": "array",
488
+ "items": {
489
+ "type": "string"
490
+ }
491
+ },
492
+ "metadata": {
493
+ "type": "object"
494
+ },
495
+ "created": {
496
+ "$ref": "#/$defs/dateTime"
497
+ },
498
+ "updated": {
499
+ "$ref": "#/$defs/dateTime"
500
+ },
501
+ "completed": {
502
+ "$ref": "#/$defs/dateTime"
503
+ },
504
+ "priority": {
505
+ "enum": [
506
+ "low",
507
+ "medium",
508
+ "high",
509
+ "critical"
510
+ ]
511
+ },
512
+ "dueDate": {
513
+ "$ref": "#/$defs/dateTime"
514
+ },
515
+ "startDate": {
516
+ "$ref": "#/$defs/dateTime"
517
+ },
518
+ "endDate": {
519
+ "$ref": "#/$defs/dateTime"
520
+ },
521
+ "percentComplete": {
522
+ "type": "number",
523
+ "minimum": 0,
524
+ "maximum": 100
525
+ },
526
+ "participants": {
527
+ "type": "array",
528
+ "items": {
529
+ "$ref": "#/$defs/Participant"
530
+ }
531
+ },
532
+ "location": {
533
+ "$ref": "#/$defs/Location"
534
+ },
535
+ "uris": {
536
+ "type": "array",
537
+ "items": {
538
+ "$ref": "#/$defs/URI"
539
+ }
540
+ },
541
+ "recurrence": {
542
+ "$ref": "#/$defs/RecurrenceRule"
543
+ },
544
+ "reminders": {
545
+ "type": "array",
546
+ "items": {
547
+ "$ref": "#/$defs/Reminder"
548
+ }
549
+ },
550
+ "classification": {
551
+ "enum": [
552
+ "public",
553
+ "private",
554
+ "confidential"
555
+ ]
556
+ },
557
+ "relatedComments": {
558
+ "type": "array",
559
+ "items": {
560
+ "type": "string"
561
+ }
562
+ },
563
+ "timezone": {
564
+ "type": "string"
565
+ },
566
+ "sequence": {
567
+ "type": "integer",
568
+ "minimum": 0
569
+ },
570
+ "lastModifiedBy": {
571
+ "$ref": "#/$defs/Agent"
572
+ },
573
+ "lockedBy": {
574
+ "$ref": "#/$defs/Lock"
575
+ },
576
+ "items": {
577
+ "type": "array",
578
+ "description": "Preferred v0.6 nested PlanItem field.",
579
+ "items": {
580
+ "$ref": "#/$defs/PlanItem"
581
+ }
582
+ }
583
+ },
584
+ "additionalProperties": true
585
+ },
586
+ "Status": {
587
+ "enum": [
588
+ "draft",
589
+ "proposed",
590
+ "approved",
591
+ "pending",
592
+ "running",
593
+ "completed",
594
+ "blocked",
595
+ "failed",
596
+ "cancelled"
597
+ ]
598
+ },
599
+ "Policy": {
600
+ "type": "object",
601
+ "description": "Project-level policy flags. Typed surface introduced by #746 (no-feature-branch opt-out) -- replaces the legacy free-form narrative key 'Allow direct commits to master'.",
602
+ "properties": {
603
+ "allowDirectCommitsToMaster": {
604
+ "type": "boolean",
605
+ "description": "When true, the project explicitly opts out of the deft branch-protection policy and allows direct commits to the default branch (master/main). Default: false (enforce feature branches)."
606
+ },
607
+ "sessionRitualStalenessHours": {
608
+ "type": "integer",
609
+ "minimum": 1,
610
+ "description": "Maximum age, in hours, for .deft/ritual-state.json before the fail-closed session ritual verifier requires task session:start to run again. Default: 4."
611
+ },
612
+ "projectionProviders": {
613
+ "$ref": "#/$defs/ProjectionProviderPolicies"
614
+ }
615
+ },
616
+ "additionalProperties": true
617
+ },
618
+ "ProjectionProviderPolicies": {
619
+ "type": "object",
620
+ "description": "Projection provider artifact policies keyed by projection kind. Values point at durable artifacts; runner command strings are not canonical policy.",
621
+ "additionalProperties": {
622
+ "$ref": "#/$defs/ProjectionProviderPolicy"
623
+ }
624
+ },
625
+ "ProjectionProviderPolicy": {
626
+ "type": "object",
627
+ "required": [
628
+ "artifactPath"
629
+ ],
630
+ "properties": {
631
+ "artifactPath": {
632
+ "$ref": "#/$defs/CodeStructureRelativePath",
633
+ "description": "Repository-relative path to a provider-emitted artifact for this projection kind."
634
+ },
635
+ "expect": {
636
+ "$ref": "#/$defs/ProjectionProviderExpectation"
637
+ }
638
+ },
639
+ "additionalProperties": true
640
+ },
641
+ "ProjectionProviderExpectation": {
642
+ "type": "object",
643
+ "description": "Optional validation assertion for provider identity and version.",
644
+ "properties": {
645
+ "provider": {
646
+ "type": [
647
+ "string",
648
+ "object"
649
+ ]
650
+ },
651
+ "name": {
652
+ "type": "string"
653
+ },
654
+ "version": {
655
+ "type": "string"
656
+ },
657
+ "providerVersion": {
658
+ "type": "string"
659
+ }
660
+ },
661
+ "additionalProperties": true
662
+ },
663
+ "Edge": {
664
+ "type": "object",
665
+ "required": [
666
+ "from",
667
+ "to",
668
+ "type"
669
+ ],
670
+ "properties": {
671
+ "from": {
672
+ "type": "string",
673
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
674
+ },
675
+ "to": {
676
+ "type": "string",
677
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
678
+ },
679
+ "type": {
680
+ "type": "string",
681
+ "description": "Core types: blocks, informs, invalidates, suggests. Custom types allowed."
682
+ }
683
+ },
684
+ "additionalProperties": true
685
+ },
686
+ "Participant": {
687
+ "type": "object",
688
+ "required": [
689
+ "id",
690
+ "role"
691
+ ],
692
+ "properties": {
693
+ "id": {
694
+ "type": "string"
695
+ },
696
+ "name": {
697
+ "type": "string"
698
+ },
699
+ "email": {
700
+ "type": "string"
701
+ },
702
+ "role": {
703
+ "enum": [
704
+ "owner",
705
+ "assignee",
706
+ "reviewer",
707
+ "observer",
708
+ "contributor"
709
+ ]
710
+ },
711
+ "status": {
712
+ "enum": [
713
+ "accepted",
714
+ "declined",
715
+ "tentative",
716
+ "needsAction"
717
+ ]
718
+ }
719
+ },
720
+ "additionalProperties": true
721
+ },
722
+ "URI": {
723
+ "type": "object",
724
+ "required": [
725
+ "uri"
726
+ ],
727
+ "properties": {
728
+ "uri": {
729
+ "type": "string"
730
+ },
731
+ "description": {
732
+ "type": "string"
733
+ },
734
+ "type": {
735
+ "type": "string"
736
+ },
737
+ "title": {
738
+ "type": "string"
739
+ },
740
+ "tags": {
741
+ "type": "array",
742
+ "items": {
743
+ "type": "string"
744
+ }
745
+ }
746
+ },
747
+ "additionalProperties": true
748
+ },
749
+ "VBriefReference": {
750
+ "allOf": [
751
+ {
752
+ "$ref": "#/$defs/URI"
753
+ },
754
+ {
755
+ "type": "object",
756
+ "required": [
757
+ "uri",
758
+ "type"
759
+ ],
760
+ "properties": {
761
+ "type": {
762
+ "type": "string",
763
+ "pattern": "^x-vbrief/",
764
+ "description": "A vBRIEF reference type. Known types: x-vbrief/plan, x-vbrief/context, x-vbrief/research. Any x-vbrief/* value is valid."
765
+ }
766
+ }
767
+ }
768
+ ]
769
+ },
770
+ "Location": {
771
+ "type": "object",
772
+ "properties": {
773
+ "name": {
774
+ "type": "string"
775
+ },
776
+ "address": {
777
+ "type": "string"
778
+ },
779
+ "geo": {
780
+ "type": "array",
781
+ "minItems": 2,
782
+ "maxItems": 2,
783
+ "items": {
784
+ "type": "number"
785
+ }
786
+ },
787
+ "url": {
788
+ "type": "string"
789
+ }
790
+ },
791
+ "additionalProperties": true
792
+ },
793
+ "RecurrenceRule": {
794
+ "type": "object",
795
+ "required": [
796
+ "frequency"
797
+ ],
798
+ "properties": {
799
+ "frequency": {
800
+ "enum": [
801
+ "daily",
802
+ "weekly",
803
+ "monthly",
804
+ "yearly"
805
+ ]
806
+ },
807
+ "interval": {
808
+ "type": "integer",
809
+ "minimum": 1
810
+ },
811
+ "until": {
812
+ "$ref": "#/$defs/dateTime"
813
+ },
814
+ "count": {
815
+ "type": "integer",
816
+ "minimum": 1
817
+ },
818
+ "byDay": {
819
+ "type": "array",
820
+ "items": {
821
+ "enum": [
822
+ "MO",
823
+ "TU",
824
+ "WE",
825
+ "TH",
826
+ "FR",
827
+ "SA",
828
+ "SU"
829
+ ]
830
+ }
831
+ },
832
+ "byMonth": {
833
+ "type": "array",
834
+ "items": {
835
+ "type": "integer",
836
+ "minimum": 1,
837
+ "maximum": 12
838
+ }
839
+ },
840
+ "byMonthDay": {
841
+ "type": "array",
842
+ "items": {
843
+ "type": "integer",
844
+ "minimum": 1,
845
+ "maximum": 31
846
+ }
847
+ }
848
+ },
849
+ "additionalProperties": true
850
+ },
851
+ "Reminder": {
852
+ "type": "object",
853
+ "required": [
854
+ "trigger",
855
+ "action"
856
+ ],
857
+ "properties": {
858
+ "trigger": {
859
+ "type": "string"
860
+ },
861
+ "action": {
862
+ "enum": [
863
+ "display",
864
+ "email",
865
+ "webhook",
866
+ "audio"
867
+ ]
868
+ },
869
+ "description": {
870
+ "type": "string"
871
+ }
872
+ },
873
+ "additionalProperties": true
874
+ },
875
+ "Agent": {
876
+ "type": "object",
877
+ "required": [
878
+ "id",
879
+ "type"
880
+ ],
881
+ "properties": {
882
+ "id": {
883
+ "type": "string"
884
+ },
885
+ "type": {
886
+ "enum": [
887
+ "human",
888
+ "aiAgent",
889
+ "system"
890
+ ]
891
+ },
892
+ "name": {
893
+ "type": "string"
894
+ },
895
+ "email": {
896
+ "type": "string"
897
+ },
898
+ "model": {
899
+ "type": "string"
900
+ },
901
+ "version": {
902
+ "type": "string"
903
+ }
904
+ },
905
+ "additionalProperties": true
906
+ },
907
+ "Change": {
908
+ "type": "object",
909
+ "required": [
910
+ "sequence",
911
+ "timestamp",
912
+ "agent",
913
+ "operation"
914
+ ],
915
+ "properties": {
916
+ "sequence": {
917
+ "type": "integer",
918
+ "minimum": 0
919
+ },
920
+ "timestamp": {
921
+ "$ref": "#/$defs/dateTime"
922
+ },
923
+ "agent": {
924
+ "$ref": "#/$defs/Agent"
925
+ },
926
+ "operation": {
927
+ "enum": [
928
+ "create",
929
+ "update",
930
+ "delete",
931
+ "fork",
932
+ "merge"
933
+ ]
934
+ },
935
+ "reason": {
936
+ "type": "string"
937
+ },
938
+ "path": {
939
+ "type": "string"
940
+ },
941
+ "oldValue": {},
942
+ "newValue": {},
943
+ "description": {
944
+ "type": "string"
945
+ },
946
+ "snapshotUri": {
947
+ "type": "string"
948
+ },
949
+ "relatedChanges": {
950
+ "type": "array",
951
+ "items": {
952
+ "type": "string"
953
+ }
954
+ }
955
+ },
956
+ "additionalProperties": true
957
+ },
958
+ "Fork": {
959
+ "type": "object",
960
+ "required": [
961
+ "parentUid",
962
+ "parentSequence",
963
+ "forkedAt"
964
+ ],
965
+ "properties": {
966
+ "parentUid": {
967
+ "type": "string"
968
+ },
969
+ "parentSequence": {
970
+ "type": "integer",
971
+ "minimum": 0
972
+ },
973
+ "forkedAt": {
974
+ "$ref": "#/$defs/dateTime"
975
+ },
976
+ "forkReason": {
977
+ "type": "string"
978
+ },
979
+ "mergeStatus": {
980
+ "enum": [
981
+ "unmerged",
982
+ "mergePending",
983
+ "merged",
984
+ "conflict"
985
+ ]
986
+ }
987
+ },
988
+ "additionalProperties": true
989
+ },
990
+ "Lock": {
991
+ "type": "object",
992
+ "required": [
993
+ "agent",
994
+ "acquiredAt",
995
+ "type"
996
+ ],
997
+ "properties": {
998
+ "agent": {
999
+ "$ref": "#/$defs/Agent"
1000
+ },
1001
+ "acquiredAt": {
1002
+ "$ref": "#/$defs/dateTime"
1003
+ },
1004
+ "expiresAt": {
1005
+ "$ref": "#/$defs/dateTime"
1006
+ },
1007
+ "type": {
1008
+ "enum": [
1009
+ "soft",
1010
+ "hard"
1011
+ ]
1012
+ }
1013
+ },
1014
+ "additionalProperties": true
1015
+ },
1016
+ "dateTime": {
1017
+ "type": "string",
1018
+ "format": "date-time",
1019
+ "pattern": "(Z|[+-]\\d{2}:\\d{2})$"
1020
+ }
1021
+ }
1022
+ }