wtf-p 0.7.4 → 0.8.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 (109) hide show
  1. package/README.md +10 -10
  2. package/bin/commands/install-logic.js +1 -1
  3. package/bin/lib/adapter-compiler.js +163 -55
  4. package/bin/lib/clio-registration.js +127 -36
  5. package/bin/lib/manifest.js +11 -3
  6. package/bin/uninstall.js +3 -2
  7. package/package.json +1 -1
  8. package/vendors/antigravity/.wtfp-generated.json +2 -2
  9. package/vendors/antigravity/plugin.json +1 -1
  10. package/vendors/claude/.claude-plugin/marketplace.json +2 -2
  11. package/vendors/claude/.claude-plugin/plugin.json +1 -1
  12. package/vendors/claude/.wtfp-generated.json +5 -5
  13. package/vendors/claude/ai.iowarp.clio/prompts/wtfp/help.md +1 -1
  14. package/vendors/claude/plugin.json +1 -1
  15. package/vendors/clio-extension/.wtfp-generated.json +228 -0
  16. package/vendors/clio-extension/actions/add-todo.json +52 -0
  17. package/vendors/clio-extension/actions/analyze-bib.json +97 -0
  18. package/vendors/clio-extension/actions/audit-milestone.json +63 -0
  19. package/vendors/clio-extension/actions/check-refs.json +80 -0
  20. package/vendors/clio-extension/actions/check-todos.json +52 -0
  21. package/vendors/clio-extension/actions/checkpoint.json +76 -0
  22. package/vendors/clio-extension/actions/contribute.json +57 -0
  23. package/vendors/clio-extension/actions/create-outline.json +84 -0
  24. package/vendors/clio-extension/actions/create-poster.json +54 -0
  25. package/vendors/clio-extension/actions/create-slides.json +54 -0
  26. package/vendors/clio-extension/actions/discuss-section.json +76 -0
  27. package/vendors/clio-extension/actions/execute-outline.json +116 -0
  28. package/vendors/clio-extension/actions/export-latex.json +65 -0
  29. package/vendors/clio-extension/actions/help.json +30 -0
  30. package/vendors/clio-extension/actions/insert-section.json +61 -0
  31. package/vendors/clio-extension/actions/list-assumptions.json +35 -0
  32. package/vendors/clio-extension/actions/map-project.json +71 -0
  33. package/vendors/clio-extension/actions/new-paper.json +70 -0
  34. package/vendors/clio-extension/actions/pause-writing.json +71 -0
  35. package/vendors/clio-extension/actions/plan-milestone-gaps.json +57 -0
  36. package/vendors/clio-extension/actions/plan-revision.json +58 -0
  37. package/vendors/clio-extension/actions/plan-section.json +100 -0
  38. package/vendors/clio-extension/actions/polish-prose.json +69 -0
  39. package/vendors/clio-extension/actions/progress.json +51 -0
  40. package/vendors/clio-extension/actions/quick.json +70 -0
  41. package/vendors/clio-extension/actions/remove-section.json +63 -0
  42. package/vendors/clio-extension/actions/report-bug.json +47 -0
  43. package/vendors/clio-extension/actions/request-feature.json +47 -0
  44. package/vendors/clio-extension/actions/research-gap.json +102 -0
  45. package/vendors/clio-extension/actions/resume-writing.json +65 -0
  46. package/vendors/clio-extension/actions/review-section.json +83 -0
  47. package/vendors/clio-extension/actions/settings.json +47 -0
  48. package/vendors/clio-extension/actions/submit-milestone.json +77 -0
  49. package/vendors/clio-extension/actions/update.json +42 -0
  50. package/vendors/clio-extension/actions/verify-work.json +63 -0
  51. package/vendors/clio-extension/actions/write-section.json +115 -0
  52. package/vendors/clio-extension/clio-coder-extension.yaml +53 -0
  53. package/vendors/clio-extension/compatibility/action-availability.json +295 -0
  54. package/vendors/clio-extension/project/schemas/checkpoint.schema.json +102 -0
  55. package/vendors/clio-extension/project/schemas/common.schema.json +33 -0
  56. package/vendors/clio-extension/project/schemas/config.schema.json +69 -0
  57. package/vendors/clio-extension/project/schemas/decisions.schema.json +31 -0
  58. package/vendors/clio-extension/project/schemas/evidence.schema.json +48 -0
  59. package/vendors/clio-extension/project/schemas/manifest.schema.json +102 -0
  60. package/vendors/clio-extension/project/schemas/outline.schema.json +67 -0
  61. package/vendors/clio-extension/project/schemas/section.schema.json +95 -0
  62. package/vendors/clio-extension/project/schemas/source.schema.json +73 -0
  63. package/vendors/clio-extension/project/schemas/state.schema.json +58 -0
  64. package/vendors/clio-extension/project/schemas/validation.schema.json +74 -0
  65. package/vendors/clio-extension/runtime/extension.test.ts +248 -0
  66. package/vendors/clio-extension/runtime/extension.ts +1321 -0
  67. package/vendors/clio-extension/runtime/json-schema.cjs +304 -0
  68. package/vendors/clio-extension/runtime/package.json +3 -0
  69. package/vendors/clio-extension/runtime/write-guard.json +21 -0
  70. package/vendors/clio-extension/skins/wtfp.json +20 -0
  71. package/vendors/codex/plugins/wtfp/.codex-plugin/plugin.json +1 -1
  72. package/vendors/codex/plugins/wtfp/.wtfp-generated.json +3 -3
  73. package/vendors/codex/plugins/wtfp/plugin.json +1 -1
  74. package/vendors/copilot/.wtfp-generated.json +2 -2
  75. package/vendors/copilot/marketplace.json +2 -2
  76. package/vendors/copilot/plugins/wtfp/.claude-plugin/plugin.json +1 -1
  77. package/vendors/copilot/plugins/wtfp/.wtfp-generated.json +2 -2
  78. package/vendors/gemini/.wtfp-generated.json +2 -2
  79. package/vendors/gemini/gemini-extension.json +1 -1
  80. package/vendors/plugin/.wtfp-generated.json +30 -30
  81. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/add-todo.md +6 -12
  82. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/analyze-bib.md +7 -19
  83. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/audit-milestone.md +7 -25
  84. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/check-refs.md +7 -15
  85. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/check-todos.md +9 -13
  86. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/checkpoint.md +7 -27
  87. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/create-outline.md +7 -25
  88. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/discuss-section.md +7 -17
  89. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/execute-outline.md +8 -27
  90. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/help.md +2 -2
  91. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/insert-section.md +7 -13
  92. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/map-project.md +6 -14
  93. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/new-paper.md +7 -17
  94. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/pause-writing.md +6 -18
  95. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/plan-milestone-gaps.md +7 -15
  96. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/plan-section.md +7 -27
  97. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/polish-prose.md +8 -15
  98. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/quick.md +8 -15
  99. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/research-gap.md +7 -21
  100. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/resume-writing.md +7 -23
  101. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/review-section.md +7 -19
  102. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/settings.md +7 -9
  103. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/submit-milestone.md +7 -25
  104. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/verify-work.md +7 -15
  105. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/write-section.md +8 -28
  106. package/vendors/plugin/compatibility/action-availability.json +16 -1
  107. package/vendors/plugin/plugin.json +7 -7
  108. /package/vendors/plugin/ai.iowarp.clio/{fleets → playbooks}/wtfp-draft-review.md +0 -0
  109. /package/vendors/plugin/ai.iowarp.clio/{fleets → playbooks}/wtfp-plan-section.md +0 -0
@@ -0,0 +1,115 @@
1
+ {
2
+ "schema": "wtfp.action/v1",
3
+ "id": "write-section",
4
+ "title": "Write a section",
5
+ "description": "Execute an approved section plan, update state, and optionally verify argument coverage.",
6
+ "alias": "wtfp:write-section",
7
+ "surface": {
8
+ "kind": "skill",
9
+ "skill": "wtfp-write-section"
10
+ },
11
+ "workflow": "wtfp://workflows/write-section",
12
+ "requirements": {
13
+ "capabilities": [
14
+ "agent.delegate",
15
+ "filesystem.read",
16
+ "filesystem.write",
17
+ "user.interaction"
18
+ ],
19
+ "conditions": [
20
+ "The selected section has an executable plan"
21
+ ]
22
+ },
23
+ "reads": [
24
+ "project://manifest",
25
+ "project://config",
26
+ "project://state",
27
+ "project://decisions",
28
+ "project://structure/outline",
29
+ "project://sections/{section}",
30
+ "project://sections/{section}/context",
31
+ "project://sections/{section}/research",
32
+ "project://sections/{section}/plans/{plan}",
33
+ "project://sections/{section}/summary",
34
+ "project://sources/{source}",
35
+ "project://evidence/{evidence}",
36
+ "project://paper/{artifact}"
37
+ ],
38
+ "produces": [
39
+ {
40
+ "uri": "project://paper/{artifact}",
41
+ "mode": "create"
42
+ },
43
+ {
44
+ "uri": "project://paper/{artifact}",
45
+ "mode": "update"
46
+ },
47
+ {
48
+ "uri": "project://manifest",
49
+ "mode": "update"
50
+ },
51
+ {
52
+ "uri": "project://sections/{section}/summary",
53
+ "mode": "create"
54
+ },
55
+ {
56
+ "uri": "project://sections/{section}/summary",
57
+ "mode": "update"
58
+ },
59
+ {
60
+ "uri": "project://validations/{validation}",
61
+ "mode": "create"
62
+ },
63
+ {
64
+ "uri": "project://checkpoints/{checkpoint}",
65
+ "mode": "create"
66
+ },
67
+ {
68
+ "uri": "project://sections/{section}",
69
+ "mode": "update"
70
+ },
71
+ {
72
+ "uri": "project://state",
73
+ "mode": "update"
74
+ }
75
+ ],
76
+ "delegation": [
77
+ {
78
+ "role": "section-writer",
79
+ "mode": "required",
80
+ "purpose": "Draft the section from its approved plan and evidence"
81
+ },
82
+ {
83
+ "role": "argument-verifier",
84
+ "mode": "optional",
85
+ "purpose": "Independently verify claim, evidence, and requirement coverage"
86
+ }
87
+ ],
88
+ "tools": [],
89
+ "effects": [
90
+ {
91
+ "id": "agent.delegate",
92
+ "scope": "role://section-writer, role://argument-verifier"
93
+ },
94
+ {
95
+ "id": "filesystem.create",
96
+ "scope": "project://paper/{artifact}, project://sections/{section}/summary, project://validations/{validation}, project://checkpoints/{checkpoint}"
97
+ },
98
+ {
99
+ "id": "filesystem.modify",
100
+ "scope": "project://paper/{artifact}, project://manifest, project://sections/{section}/summary, project://sections/{section}, project://state"
101
+ },
102
+ {
103
+ "id": "filesystem.read",
104
+ "scope": "project://manifest, project://config, project://state, project://decisions, project://structure/outline, project://sections/{section}, project://sections/{section}/context, project://sections/{section}/research, project://sections/{section}/plans/{plan}, project://sections/{section}/summary, project://sources/{source}, project://evidence/{evidence}, project://paper/{artifact}"
105
+ },
106
+ {
107
+ "id": "filesystem.write",
108
+ "scope": "declared manuscript, manifest, summary, validation, checkpoint, section, and state resources"
109
+ },
110
+ {
111
+ "id": "user.gate",
112
+ "scope": "verification exceptions and blocked plan decisions"
113
+ }
114
+ ]
115
+ }
@@ -0,0 +1,53 @@
1
+ # Generated by WTF-P adapter compiler v5 from clio/clio-coder-extension.yaml; do not edit.
2
+ id: wtfp
3
+ plugin: wtfp
4
+ name: WTF-P
5
+ version: 0.8.0
6
+ description: "The WTF-P writing desk for Clio Coder; paper state, gates and the write guard run in code."
7
+ compatibility: { clio: ">=0.6.2" }
8
+ runtime:
9
+ api: 2
10
+ entrypoint: runtime/extension.ts
11
+ commands:
12
+ - { name: desk, description: "Enter the WTF-P writing desk." }
13
+ - { name: progress, description: "Paper progress and the next action, computed locally.", replaces: prompt }
14
+ - { name: help, description: "The WTF-P action reference, rendered locally.", replaces: prompt }
15
+ - { name: check-todos, description: "Answer pending gates and author tasks.", replaces: prompt }
16
+ - { name: checkpoints, description: "List interaction gates and state snapshots." }
17
+ - { name: validate, description: "Validate every planning record against its schema." }
18
+ events: [session_open, dispatch_started, dispatch_completed, dispatch_failed, fs_changed, workspace_enter, workspace_leave]
19
+ watch: [".planning/**", "paper/**"]
20
+ hooks:
21
+ - { on: prompt_submit, timeoutMs: 1000, onTimeout: pass, onError: pass }
22
+ - { on: before_tool, tools: [write, edit], timeoutMs: 1000, onTimeout: block, onError: block }
23
+ tools:
24
+ - name: record
25
+ description: "Write one .planning record at its logical URI, validated against its canonical schema, its revision bumped, replaced atomically and read back."
26
+ actionClass: execute
27
+ inputSchema: { type: object, properties: { uri: { type: string }, record: { type: object }, expect_revision: { type: integer } }, required: [uri, record], additionalProperties: false }
28
+ - name: measure_section
29
+ description: "Count a section's manuscript body words by the desk's one method and record the count in the section and state records."
30
+ actionClass: execute
31
+ inputSchema: { type: object, properties: { section: { type: string } }, required: [section], additionalProperties: false }
32
+ - name: gate
33
+ description: "Ask the author a pending checkpoint as an interview; only the author's answer resolves it, and that answer is the result."
34
+ actionClass: execute
35
+ inputSchema: { type: object, properties: { checkpoint: { type: string } }, required: [checkpoint], additionalProperties: false }
36
+ ui: [status, band, card, toast, interview]
37
+ workspaces:
38
+ - id: desk
39
+ title: WTF-P writing desk
40
+ regions: [header, board, islands, rail, footer]
41
+ board: band
42
+ skin: skins/wtfp.json
43
+ keys:
44
+ - { key: f, action: next, label: "Fill the next writing action" }
45
+ - { key: c, action: gates, label: "Answer the pending gate" }
46
+ - { key: v, action: validate, label: "Validate planning records" }
47
+ - { key: h, action: help, label: "WTF-P action reference" }
48
+ access: [prompt, tool-args]
49
+ permissions:
50
+ fs: { read: [".planning", "paper"], write: [".planning"] }
51
+ exec: false
52
+ net: false
53
+ state: { session: true, store: false }
@@ -0,0 +1,295 @@
1
+ {
2
+ "schema": "wtfp.action-availability/v1",
3
+ "target": "clio",
4
+ "marker": "WTFP_ACTION_UNAVAILABLE",
5
+ "hostToolEnforcement": {
6
+ "actionScoped": false,
7
+ "surface": "clio:session-tools",
8
+ "certificationAutonomy": [
9
+ "read-only",
10
+ "suggest"
11
+ ],
12
+ "undeclaredToolCall": "fail"
13
+ },
14
+ "capabilityBindings": {
15
+ "agent.delegate": "clio:plugin-agent",
16
+ "agent.parallel": "clio:fleet",
17
+ "external.issue": null,
18
+ "filesystem.delete": null,
19
+ "filesystem.read": "clio:workspace-read",
20
+ "filesystem.write": "clio:workspace-write",
21
+ "network.fetch": "clio:web_fetch",
22
+ "network.search": "clio:bash-bundled-citation-tools",
23
+ "package.update": null,
24
+ "tool.execute": "clio:bash",
25
+ "user.interaction": "clio:ask_user",
26
+ "vcs.branch": null,
27
+ "vcs.commit": null
28
+ },
29
+ "approvalBindings": {
30
+ "none": "clio:permission-policy",
31
+ "implicit": "clio:permission-policy",
32
+ "explicit": "clio:ask_user"
33
+ },
34
+ "effectCapabilityBindings": {
35
+ "agent.delegate": "agent.delegate",
36
+ "agent.parallel": "agent.parallel",
37
+ "artifact.archive": "filesystem.write",
38
+ "external.issue": "external.issue",
39
+ "filesystem.create": "filesystem.write",
40
+ "filesystem.delete": "filesystem.delete",
41
+ "filesystem.modify": "filesystem.write",
42
+ "filesystem.read": "filesystem.read",
43
+ "filesystem.write": "filesystem.write",
44
+ "network.fetch": "network.fetch",
45
+ "network.search": "network.search",
46
+ "package.update": "package.update",
47
+ "tool.execute": "tool.execute",
48
+ "user.gate": "user.interaction",
49
+ "vcs.branch": "vcs.branch",
50
+ "vcs.commit": "vcs.commit",
51
+ "vcs.merge": null
52
+ },
53
+ "actions": [
54
+ {
55
+ "id": "add-todo",
56
+ "status": "available",
57
+ "unavailableCapabilities": [],
58
+ "unavailableEffects": []
59
+ },
60
+ {
61
+ "id": "analyze-bib",
62
+ "status": "available",
63
+ "unavailableCapabilities": [],
64
+ "unavailableEffects": []
65
+ },
66
+ {
67
+ "id": "audit-milestone",
68
+ "status": "available",
69
+ "unavailableCapabilities": [],
70
+ "unavailableEffects": []
71
+ },
72
+ {
73
+ "id": "check-refs",
74
+ "status": "available",
75
+ "unavailableCapabilities": [],
76
+ "unavailableEffects": []
77
+ },
78
+ {
79
+ "id": "check-todos",
80
+ "status": "available",
81
+ "unavailableCapabilities": [],
82
+ "unavailableEffects": []
83
+ },
84
+ {
85
+ "id": "checkpoint",
86
+ "status": "available",
87
+ "unavailableCapabilities": [],
88
+ "unavailableEffects": []
89
+ },
90
+ {
91
+ "id": "contribute",
92
+ "status": "unavailable",
93
+ "unavailableCapabilities": [
94
+ "external.issue",
95
+ "vcs.branch",
96
+ "vcs.commit"
97
+ ],
98
+ "unavailableEffects": [
99
+ "external.issue",
100
+ "vcs.branch",
101
+ "vcs.commit"
102
+ ]
103
+ },
104
+ {
105
+ "id": "create-outline",
106
+ "status": "available",
107
+ "unavailableCapabilities": [],
108
+ "unavailableEffects": []
109
+ },
110
+ {
111
+ "id": "create-poster",
112
+ "status": "available",
113
+ "unavailableCapabilities": [],
114
+ "unavailableEffects": []
115
+ },
116
+ {
117
+ "id": "create-slides",
118
+ "status": "available",
119
+ "unavailableCapabilities": [],
120
+ "unavailableEffects": []
121
+ },
122
+ {
123
+ "id": "discuss-section",
124
+ "status": "available",
125
+ "unavailableCapabilities": [],
126
+ "unavailableEffects": []
127
+ },
128
+ {
129
+ "id": "execute-outline",
130
+ "status": "available",
131
+ "unavailableCapabilities": [],
132
+ "unavailableEffects": []
133
+ },
134
+ {
135
+ "id": "export-latex",
136
+ "status": "available",
137
+ "unavailableCapabilities": [],
138
+ "unavailableEffects": []
139
+ },
140
+ {
141
+ "id": "help",
142
+ "status": "available",
143
+ "unavailableCapabilities": [],
144
+ "unavailableEffects": []
145
+ },
146
+ {
147
+ "id": "insert-section",
148
+ "status": "available",
149
+ "unavailableCapabilities": [],
150
+ "unavailableEffects": []
151
+ },
152
+ {
153
+ "id": "list-assumptions",
154
+ "status": "available",
155
+ "unavailableCapabilities": [],
156
+ "unavailableEffects": []
157
+ },
158
+ {
159
+ "id": "map-project",
160
+ "status": "available",
161
+ "unavailableCapabilities": [],
162
+ "unavailableEffects": []
163
+ },
164
+ {
165
+ "id": "new-paper",
166
+ "status": "available",
167
+ "unavailableCapabilities": [],
168
+ "unavailableEffects": []
169
+ },
170
+ {
171
+ "id": "pause-writing",
172
+ "status": "available",
173
+ "unavailableCapabilities": [],
174
+ "unavailableEffects": []
175
+ },
176
+ {
177
+ "id": "plan-milestone-gaps",
178
+ "status": "available",
179
+ "unavailableCapabilities": [],
180
+ "unavailableEffects": []
181
+ },
182
+ {
183
+ "id": "plan-revision",
184
+ "status": "available",
185
+ "unavailableCapabilities": [],
186
+ "unavailableEffects": []
187
+ },
188
+ {
189
+ "id": "plan-section",
190
+ "status": "available",
191
+ "unavailableCapabilities": [],
192
+ "unavailableEffects": []
193
+ },
194
+ {
195
+ "id": "polish-prose",
196
+ "status": "available",
197
+ "unavailableCapabilities": [],
198
+ "unavailableEffects": []
199
+ },
200
+ {
201
+ "id": "progress",
202
+ "status": "available",
203
+ "unavailableCapabilities": [],
204
+ "unavailableEffects": []
205
+ },
206
+ {
207
+ "id": "quick",
208
+ "status": "available",
209
+ "unavailableCapabilities": [],
210
+ "unavailableEffects": []
211
+ },
212
+ {
213
+ "id": "remove-section",
214
+ "status": "unavailable",
215
+ "unavailableCapabilities": [
216
+ "filesystem.delete"
217
+ ],
218
+ "unavailableEffects": [
219
+ "filesystem.delete"
220
+ ]
221
+ },
222
+ {
223
+ "id": "report-bug",
224
+ "status": "unavailable",
225
+ "unavailableCapabilities": [
226
+ "external.issue"
227
+ ],
228
+ "unavailableEffects": [
229
+ "external.issue"
230
+ ]
231
+ },
232
+ {
233
+ "id": "request-feature",
234
+ "status": "unavailable",
235
+ "unavailableCapabilities": [
236
+ "external.issue"
237
+ ],
238
+ "unavailableEffects": [
239
+ "external.issue"
240
+ ]
241
+ },
242
+ {
243
+ "id": "research-gap",
244
+ "status": "available",
245
+ "unavailableCapabilities": [],
246
+ "unavailableEffects": []
247
+ },
248
+ {
249
+ "id": "resume-writing",
250
+ "status": "available",
251
+ "unavailableCapabilities": [],
252
+ "unavailableEffects": []
253
+ },
254
+ {
255
+ "id": "review-section",
256
+ "status": "available",
257
+ "unavailableCapabilities": [],
258
+ "unavailableEffects": []
259
+ },
260
+ {
261
+ "id": "settings",
262
+ "status": "available",
263
+ "unavailableCapabilities": [],
264
+ "unavailableEffects": []
265
+ },
266
+ {
267
+ "id": "submit-milestone",
268
+ "status": "available",
269
+ "unavailableCapabilities": [],
270
+ "unavailableEffects": []
271
+ },
272
+ {
273
+ "id": "update",
274
+ "status": "unavailable",
275
+ "unavailableCapabilities": [
276
+ "package.update"
277
+ ],
278
+ "unavailableEffects": [
279
+ "package.update"
280
+ ]
281
+ },
282
+ {
283
+ "id": "verify-work",
284
+ "status": "available",
285
+ "unavailableCapabilities": [],
286
+ "unavailableEffects": []
287
+ },
288
+ {
289
+ "id": "write-section",
290
+ "status": "available",
291
+ "unavailableCapabilities": [],
292
+ "unavailableEffects": []
293
+ }
294
+ ]
295
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/checkpoint/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "allOf": [
7
+ {
8
+ "if": {
9
+ "required": ["kind"],
10
+ "properties": { "kind": { "const": "state-snapshot" } }
11
+ },
12
+ "then": {
13
+ "required": ["snapshot"],
14
+ "properties": {
15
+ "status": { "enum": ["available", "restored", "expired"] },
16
+ "blocking": { "const": false }
17
+ }
18
+ },
19
+ "else": {
20
+ "not": { "required": ["snapshot"] },
21
+ "properties": {
22
+ "status": { "enum": ["pending", "resolved", "waived", "expired"] }
23
+ }
24
+ }
25
+ }
26
+ ],
27
+ "required": [
28
+ "schema",
29
+ "id",
30
+ "project_id",
31
+ "kind",
32
+ "status",
33
+ "blocking",
34
+ "scope_uri",
35
+ "request",
36
+ "options",
37
+ "resume_action",
38
+ "created_at"
39
+ ],
40
+ "properties": {
41
+ "schema": { "const": "wtfp.project.checkpoint/v1" },
42
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
43
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
44
+ "kind": { "enum": ["human-verify", "decision", "human-action", "safety-authorization", "state-snapshot"] },
45
+ "status": { "enum": ["pending", "resolved", "waived", "expired", "available", "restored"] },
46
+ "blocking": { "type": "boolean" },
47
+ "scope_uri": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
48
+ "request": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
49
+ "context": { "type": "string" },
50
+ "options": {
51
+ "type": "array",
52
+ "items": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["id", "label", "implication"],
56
+ "properties": {
57
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
58
+ "label": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
59
+ "implication": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" }
60
+ }
61
+ }
62
+ },
63
+ "resume_action": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
64
+ "created_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" },
65
+ "snapshot": {
66
+ "type": "object",
67
+ "additionalProperties": false,
68
+ "required": ["archive_uri", "resources"],
69
+ "properties": {
70
+ "archive_uri": {
71
+ "type": "string",
72
+ "pattern": "^project://archives/checkpoints/[A-Za-z0-9._~-]+$"
73
+ },
74
+ "resources": {
75
+ "type": "array",
76
+ "minItems": 1,
77
+ "items": {
78
+ "type": "object",
79
+ "additionalProperties": false,
80
+ "required": ["uri", "sha256"],
81
+ "properties": {
82
+ "uri": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
83
+ "revision": { "type": "integer", "minimum": 0 },
84
+ "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ },
90
+ "resolution": {
91
+ "type": "object",
92
+ "additionalProperties": false,
93
+ "required": ["resolved_by", "summary", "resolved_at"],
94
+ "properties": {
95
+ "resolved_by": { "enum": ["author", "policy"] },
96
+ "selected_option": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
97
+ "summary": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
98
+ "resolved_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
99
+ }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/common/v1",
4
+ "$defs": {
5
+ "identifier": {
6
+ "type": "string",
7
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
8
+ },
9
+ "logicalUri": {
10
+ "type": "string",
11
+ "pattern": "^project://(?!\\.{1,2}(?:/|$))(?!.*\\/\\.{1,2}(?:/|$))[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$"
12
+ },
13
+ "protocolUri": {
14
+ "type": "string",
15
+ "pattern": "^protocol://(?!\\.{1,2}(?:/|$))(?!.*\\/\\.{1,2}(?:/|$))[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$"
16
+ },
17
+ "nonEmptyString": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "timestamp": {
22
+ "type": "string",
23
+ "format": "date-time"
24
+ },
25
+ "date": {
26
+ "type": "string",
27
+ "format": "date"
28
+ },
29
+ "confidence": {
30
+ "enum": ["high", "medium", "low", "unknown"]
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/config/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "project_id",
9
+ "interaction_mode",
10
+ "depth",
11
+ "output_format",
12
+ "language",
13
+ "gates",
14
+ "workflow",
15
+ "safety",
16
+ "parallelism"
17
+ ],
18
+ "properties": {
19
+ "schema": { "const": "wtfp.project.config/v1" },
20
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
21
+ "interaction_mode": { "enum": ["guided", "standard", "autonomous"] },
22
+ "depth": { "enum": ["quick", "standard", "comprehensive"] },
23
+ "output_format": { "enum": ["markdown", "latex", "typst"] },
24
+ "language": { "type": "string", "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$" },
25
+ "citation_style": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
26
+ "gates": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["confirm_outline", "confirm_plan", "confirm_write", "confirm_review", "confirm_delivery"],
30
+ "properties": {
31
+ "confirm_outline": { "type": "boolean" },
32
+ "confirm_plan": { "type": "boolean" },
33
+ "confirm_write": { "type": "boolean" },
34
+ "confirm_review": { "type": "boolean" },
35
+ "confirm_delivery": { "type": "boolean" }
36
+ }
37
+ },
38
+ "workflow": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["research", "plan_validation", "argument_validation", "coherence_validation"],
42
+ "properties": {
43
+ "research": { "type": "boolean" },
44
+ "plan_validation": { "type": "boolean" },
45
+ "argument_validation": { "type": "boolean" },
46
+ "coherence_validation": { "type": "boolean" }
47
+ }
48
+ },
49
+ "safety": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": ["destructive_requires_authorization", "external_publish_requires_authorization", "backup_before_major_edits"],
53
+ "properties": {
54
+ "destructive_requires_authorization": { "const": true },
55
+ "external_publish_requires_authorization": { "const": true },
56
+ "backup_before_major_edits": { "type": "boolean" }
57
+ }
58
+ },
59
+ "parallelism": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": ["enabled", "max_workers"],
63
+ "properties": {
64
+ "enabled": { "type": "boolean" },
65
+ "max_workers": { "type": "integer", "minimum": 1, "maximum": 32 }
66
+ }
67
+ }
68
+ }
69
+ }