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
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Create the paper outline
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-start-project/SKILL.md
10
- @${pluginRoot}/skills/wtfp-start-project/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://config`, `project://state`, `project://decisions`, `project://structure/outline`, `project://sources/{source}`, `project://evidence/{evidence}`.
15
13
  Produce: `project://structure/outline` (update), `project://sections/{section}` (create), `project://decisions` (update), `project://state` (update), `project://validations/{validation}` (create).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -32,28 +30,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
32
30
 
33
31
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
34
32
 
35
- ## Bound action contract and schemas
33
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
34
+ If desk tools are absent, follow `${pluginRoot}/workflows/create-outline.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
35
+
36
+ ## Bound action contract
36
37
 
37
38
  @${pluginRoot}/actions/create-outline.json
38
- @${pluginRoot}/project/schemas/common.schema.json
39
- @${pluginRoot}/project/schemas/config.schema.json
40
- @${pluginRoot}/project/templates/config.json
41
- @${pluginRoot}/project/schemas/decisions.schema.json
42
- @${pluginRoot}/project/templates/decisions.json
43
- @${pluginRoot}/project/schemas/evidence.schema.json
44
- @${pluginRoot}/project/templates/evidence.json
45
- @${pluginRoot}/project/schemas/manifest.schema.json
46
- @${pluginRoot}/project/templates/manifest.json
47
- @${pluginRoot}/project/schemas/outline.schema.json
48
- @${pluginRoot}/project/templates/outline.json
49
- @${pluginRoot}/project/schemas/section.schema.json
50
- @${pluginRoot}/project/templates/section.json
51
- @${pluginRoot}/project/schemas/source.schema.json
52
- @${pluginRoot}/project/templates/source.json
53
- @${pluginRoot}/project/schemas/state.schema.json
54
- @${pluginRoot}/project/templates/state.json
55
- @${pluginRoot}/project/schemas/validation.schema.json
56
- @${pluginRoot}/project/templates/validation.json
57
39
 
58
40
  ## Invocation input
59
41
 
@@ -65,7 +47,7 @@ $ARGUMENTS
65
47
 
66
48
  ## Clio user-gate binding
67
49
 
68
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
50
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
69
51
 
70
52
  ## Clio role-result binding
71
53
 
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Discuss a section
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-plan-section/SKILL.md
10
- @${pluginRoot}/skills/wtfp-plan-section/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://decisions`, `project://structure/outline`, `project://sections/{section}`, `project://sections/{section}/context`, `project://sections/{section}/summary`.
15
13
  Produce: `project://sections/{section}/context` (create), `project://sections/{section}/context` (update), `project://checkpoints/{checkpoint}` (create), `project://sections/{section}` (update), `project://decisions` (update).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -30,20 +28,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
30
28
 
31
29
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
32
30
 
33
- ## Bound action contract and schemas
31
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
32
+ If desk tools are absent, follow `${pluginRoot}/workflows/discuss-section.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
33
+
34
+ ## Bound action contract
34
35
 
35
36
  @${pluginRoot}/actions/discuss-section.json
36
- @${pluginRoot}/project/schemas/common.schema.json
37
- @${pluginRoot}/project/schemas/checkpoint.schema.json
38
- @${pluginRoot}/project/templates/checkpoint.json
39
- @${pluginRoot}/project/schemas/decisions.schema.json
40
- @${pluginRoot}/project/templates/decisions.json
41
- @${pluginRoot}/project/schemas/manifest.schema.json
42
- @${pluginRoot}/project/templates/manifest.json
43
- @${pluginRoot}/project/schemas/outline.schema.json
44
- @${pluginRoot}/project/templates/outline.json
45
- @${pluginRoot}/project/schemas/section.schema.json
46
- @${pluginRoot}/project/templates/section.json
47
37
 
48
38
  ## Invocation input
49
39
 
@@ -55,6 +45,6 @@ $ARGUMENTS
55
45
 
56
46
  ## Clio user-gate binding
57
47
 
58
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
48
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
59
49
 
60
50
  <!-- Generated by WTF-P adapter compiler v5 from protocol/actions/discuss-section; do not edit. -->
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Execute the outline
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-write-section/SKILL.md
10
- @${pluginRoot}/skills/wtfp-write-section/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://config`, `project://state`, `project://decisions`, `project://structure/outline`, `project://sections/{section}`, `project://sections/{section}/plans/{plan}`, `project://sections/{section}/summary`, `project://sources/{source}`, `project://evidence/{evidence}`, `project://checkpoints/{checkpoint}`, `project://paper/{artifact}`.
15
13
  Produce: `project://paper/{artifact}` (update), `project://sections/{section}/summary` (create), `project://sections/{section}/summary` (update), `project://checkpoints/{checkpoint}` (create), `project://checkpoints/{checkpoint}` (update), `project://sections/{section}` (update), `project://state` (update), `project://validations/{validation}` (create).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -30,30 +28,13 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
30
28
 
31
29
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
32
30
 
33
- ## Bound action contract and schemas
31
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
32
+ After changing a linked section manuscript, call `extension_wtfp__measure_section` with that section ID; it persists the desk's body-word count in the section and state.
33
+ If desk tools are absent, follow `${pluginRoot}/workflows/execute-outline.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
34
+
35
+ ## Bound action contract
34
36
 
35
37
  @${pluginRoot}/actions/execute-outline.json
36
- @${pluginRoot}/project/schemas/common.schema.json
37
- @${pluginRoot}/project/schemas/checkpoint.schema.json
38
- @${pluginRoot}/project/templates/checkpoint.json
39
- @${pluginRoot}/project/schemas/config.schema.json
40
- @${pluginRoot}/project/templates/config.json
41
- @${pluginRoot}/project/schemas/decisions.schema.json
42
- @${pluginRoot}/project/templates/decisions.json
43
- @${pluginRoot}/project/schemas/evidence.schema.json
44
- @${pluginRoot}/project/templates/evidence.json
45
- @${pluginRoot}/project/schemas/manifest.schema.json
46
- @${pluginRoot}/project/templates/manifest.json
47
- @${pluginRoot}/project/schemas/outline.schema.json
48
- @${pluginRoot}/project/templates/outline.json
49
- @${pluginRoot}/project/schemas/section.schema.json
50
- @${pluginRoot}/project/templates/section.json
51
- @${pluginRoot}/project/schemas/source.schema.json
52
- @${pluginRoot}/project/templates/source.json
53
- @${pluginRoot}/project/schemas/state.schema.json
54
- @${pluginRoot}/project/templates/state.json
55
- @${pluginRoot}/project/schemas/validation.schema.json
56
- @${pluginRoot}/project/templates/validation.json
57
38
 
58
39
  ## Invocation input
59
40
 
@@ -65,7 +46,7 @@ $ARGUMENTS
65
46
 
66
47
  ## Clio user-gate binding
67
48
 
68
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
49
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
69
50
 
70
51
  ## Clio role-result binding
71
52
 
@@ -4,7 +4,7 @@ display-only: true
4
4
  ---
5
5
 
6
6
  ```text
7
- WTF-P 0.7.4 on Clio Coder: evidence-grounded academic writing
7
+ WTF-P 0.8.0 on Clio Coder: evidence-grounded academic writing
8
8
 
9
9
  Start here
10
10
  /wtfp:new-paper [input]
@@ -106,7 +106,7 @@ Product operations
106
106
  /wtfp:update [input]
107
107
  Check for a newer compatible package or plugin release and install it only after approval. [unavailable on clio: package.update]
108
108
 
109
- Fleets (clio-coder fleet run <fleet> --var section=<section>; explicit fleet primitives, not auto-routed)
109
+ Playbooks (clio-coder fleet run <playbook> --var section=<section>; run explicitly, never auto-routed)
110
110
  wtfp-draft-review
111
111
  Draft one approved section and independently review its argument and evidence.
112
112
  wtfp-plan-section
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Insert a section
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-plan-section/SKILL.md
10
- @${pluginRoot}/skills/wtfp-plan-section/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://structure/outline`, `project://state`, `project://sections/{section}`.
15
13
  Produce: `project://structure/outline` (update), `project://sections/{section}` (create), `project://state` (update).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -30,16 +28,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
30
28
 
31
29
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
32
30
 
33
- ## Bound action contract and schemas
31
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
32
+ If desk tools are absent, follow `${pluginRoot}/workflows/insert-section.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
33
+
34
+ ## Bound action contract
34
35
 
35
36
  @${pluginRoot}/actions/insert-section.json
36
- @${pluginRoot}/project/schemas/common.schema.json
37
- @${pluginRoot}/project/schemas/outline.schema.json
38
- @${pluginRoot}/project/templates/outline.json
39
- @${pluginRoot}/project/schemas/section.schema.json
40
- @${pluginRoot}/project/templates/section.json
41
- @${pluginRoot}/project/schemas/state.schema.json
42
- @${pluginRoot}/project/templates/state.json
43
37
 
44
38
  ## Invocation input
45
39
 
@@ -51,6 +45,6 @@ $ARGUMENTS
51
45
 
52
46
  ## Clio user-gate binding
53
47
 
54
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
48
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
55
49
 
56
50
  <!-- Generated by WTF-P adapter compiler v5 from protocol/actions/insert-section; do not edit. -->
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Map an existing project
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-start-project/SKILL.md
10
- @${pluginRoot}/skills/wtfp-start-project/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://state`, `project://materials/{artifact}`, `project://paper/{artifact}`, `project://sources/{source}`, `project://evidence/{evidence}`.
15
13
  Produce: `project://sources/{source}` (create), `project://evidence/{evidence}` (create), `project://state` (update), `project://sources/{source}` (update), `project://evidence/{evidence}` (update), `project://manifest` (update).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -32,18 +30,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
32
30
 
33
31
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
34
32
 
35
- ## Bound action contract and schemas
33
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
34
+ If desk tools are absent, follow `${pluginRoot}/workflows/map-project.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
35
+
36
+ ## Bound action contract
36
37
 
37
38
  @${pluginRoot}/actions/map-project.json
38
- @${pluginRoot}/project/schemas/common.schema.json
39
- @${pluginRoot}/project/schemas/evidence.schema.json
40
- @${pluginRoot}/project/templates/evidence.json
41
- @${pluginRoot}/project/schemas/manifest.schema.json
42
- @${pluginRoot}/project/templates/manifest.json
43
- @${pluginRoot}/project/schemas/source.schema.json
44
- @${pluginRoot}/project/templates/source.json
45
- @${pluginRoot}/project/schemas/state.schema.json
46
- @${pluginRoot}/project/templates/state.json
47
39
 
48
40
  ## Invocation input
49
41
 
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Start a new paper
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-start-project/SKILL.md
10
- @${pluginRoot}/skills/wtfp-start-project/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://materials/{artifact}`, `project://paper/{artifact}`.
15
13
  Produce: `project://manifest` (create), `project://config` (create), `project://state` (create), `project://decisions` (create), `project://structure/outline` (create).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -35,20 +33,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
35
33
 
36
34
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
37
35
 
38
- ## Bound action contract and schemas
36
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
37
+ If desk tools are absent, follow `${pluginRoot}/workflows/new-paper.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
38
+
39
+ ## Bound action contract
39
40
 
40
41
  @${pluginRoot}/actions/new-paper.json
41
- @${pluginRoot}/project/schemas/common.schema.json
42
- @${pluginRoot}/project/schemas/config.schema.json
43
- @${pluginRoot}/project/templates/config.json
44
- @${pluginRoot}/project/schemas/decisions.schema.json
45
- @${pluginRoot}/project/templates/decisions.json
46
- @${pluginRoot}/project/schemas/manifest.schema.json
47
- @${pluginRoot}/project/templates/manifest.json
48
- @${pluginRoot}/project/schemas/outline.schema.json
49
- @${pluginRoot}/project/templates/outline.json
50
- @${pluginRoot}/project/schemas/state.schema.json
51
- @${pluginRoot}/project/templates/state.json
52
42
 
53
43
  ## Invocation input
54
44
 
@@ -60,6 +50,6 @@ $ARGUMENTS
60
50
 
61
51
  ## Clio user-gate binding
62
52
 
63
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
53
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
64
54
 
65
55
  <!-- Generated by WTF-P adapter compiler v5 from protocol/actions/new-paper; do not edit. -->
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Pause writing
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-manage-project/SKILL.md
10
- @${pluginRoot}/skills/wtfp-manage-project/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://state`, `project://decisions`, `project://structure/outline`, `project://sections/{section}`, `project://sections/{section}/plans/{plan}`, `project://sections/{section}/reviews/{review}`, `project://sections/{section}/summary`, `project://sections/{section}/handoff`, `project://validations/{validation}`, `project://paper/{artifact}`.
15
13
  Produce: `project://sections/{section}/handoff` (create), `project://sections/{section}/handoff` (update), `project://checkpoints/{checkpoint}` (create), `project://sections/{section}` (update), `project://state` (update).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -30,22 +28,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
30
28
 
31
29
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
32
30
 
33
- ## Bound action contract and schemas
31
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
32
+ If desk tools are absent, follow `${pluginRoot}/workflows/pause-writing.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
33
+
34
+ ## Bound action contract
34
35
 
35
36
  @${pluginRoot}/actions/pause-writing.json
36
- @${pluginRoot}/project/schemas/common.schema.json
37
- @${pluginRoot}/project/schemas/checkpoint.schema.json
38
- @${pluginRoot}/project/templates/checkpoint.json
39
- @${pluginRoot}/project/schemas/decisions.schema.json
40
- @${pluginRoot}/project/templates/decisions.json
41
- @${pluginRoot}/project/schemas/outline.schema.json
42
- @${pluginRoot}/project/templates/outline.json
43
- @${pluginRoot}/project/schemas/section.schema.json
44
- @${pluginRoot}/project/templates/section.json
45
- @${pluginRoot}/project/schemas/state.schema.json
46
- @${pluginRoot}/project/templates/state.json
47
- @${pluginRoot}/project/schemas/validation.schema.json
48
- @${pluginRoot}/project/templates/validation.json
49
37
 
50
38
  ## Invocation input
51
39
 
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Plan milestone gap fixes
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-review-manuscript/SKILL.md
10
- @${pluginRoot}/skills/wtfp-review-manuscript/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://validations/{validation}`, `project://structure/outline`, `project://sections/{section}`.
15
13
  Produce: `project://sections/{section}/plans/{plan}` (create), `project://checkpoints/{checkpoint}` (create).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -30,18 +28,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
30
28
 
31
29
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
32
30
 
33
- ## Bound action contract and schemas
31
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
32
+ If desk tools are absent, follow `${pluginRoot}/workflows/plan-milestone-gaps.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
33
+
34
+ ## Bound action contract
34
35
 
35
36
  @${pluginRoot}/actions/plan-milestone-gaps.json
36
- @${pluginRoot}/project/schemas/common.schema.json
37
- @${pluginRoot}/project/schemas/checkpoint.schema.json
38
- @${pluginRoot}/project/templates/checkpoint.json
39
- @${pluginRoot}/project/schemas/outline.schema.json
40
- @${pluginRoot}/project/templates/outline.json
41
- @${pluginRoot}/project/schemas/section.schema.json
42
- @${pluginRoot}/project/templates/section.json
43
- @${pluginRoot}/project/schemas/validation.schema.json
44
- @${pluginRoot}/project/templates/validation.json
45
37
 
46
38
  ## Invocation input
47
39
 
@@ -53,6 +45,6 @@ $ARGUMENTS
53
45
 
54
46
  ## Clio user-gate binding
55
47
 
56
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
48
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
57
49
 
58
50
  <!-- Generated by WTF-P adapter compiler v5 from protocol/actions/plan-milestone-gaps; do not edit. -->
@@ -5,18 +5,16 @@ argument-hint: "[arguments]"
5
5
 
6
6
  # Plan a section
7
7
 
8
- @${pluginRoot}/project/README.md
9
8
  @${pluginRoot}/skills/wtfp-plan-section/SKILL.md
10
- @${pluginRoot}/skills/wtfp-plan-section/references/actions.md
11
9
 
12
10
  ## Record contract
13
11
 
14
12
  Read: `project://manifest`, `project://config`, `project://state`, `project://decisions`, `project://structure/outline`, `project://validations/*`, `project://sections/{section}`, `project://sections/{section}/context`, `project://sections/{section}/research`, `project://sections/{section}/summary`, `project://sources/{source}`, `project://evidence/{evidence}`.
15
13
  Produce: `project://sections/{section}/plans/{plan}` (create), `project://validations/{validation}` (create), `project://checkpoints/{checkpoint}` (create), `project://sections/{section}` (update), `project://state` (update).
16
14
 
17
- Resolve every logical URI through the host adapter. Portable v1 JSON records are the source of truth: schema-validate before a write, preserve stable IDs, update revision and timestamps where required, and replace records atomically. Never pass a literal logical URI to a shell command or infer record state from a legacy Markdown control file.
15
+ Use `extension_wtfp__record` for each declared JSON record write: pass its logical `uri`, complete `record`, and the revision read as `expect_revision` for revisioned updates. It validates, bumps revisions/timestamps, replaces atomically and reads back; preserve stable IDs and author decisions.
18
16
 
19
- Manuscript prose and supporting context, research, plan, review, summary, handoff, and deliverable artifacts retain their authored format (normally Markdown). Link them from the relevant v1 record; do not convert manuscript prose into project-state JSON.
17
+ Write prose and linked artifacts with native file tools; keep their authored formats. The record tool handles JSON records only, never manuscript text, deletion or archives.
20
18
 
21
19
  ## Procedure
22
20
 
@@ -33,30 +31,12 @@ Do not initialize a repository or run branch, stage, commit, merge, push, or pub
33
31
 
34
32
  Report the logical resources read, created, updated, archived, or deleted; the gates crossed; validation results; unresolved checkpoints; and the safest next action. Never claim a mutation that was not verified.
35
33
 
36
- ## Bound action contract and schemas
34
+ Discover the named tools with `gateway(op="describe", capability="extension_wtfp__record")` (and the corresponding `measure_section` or `gate` name), then use `gateway(op="call", capability="<exact name>", args={...})`. A present tool's error or refusal stops the action; never bypass it with a manual write or shell script.
35
+ If desk tools are absent, follow `${pluginRoot}/workflows/plan-section.md` and `${pluginRoot}/project/README.md` with native tools and `ask_user` gates.
36
+
37
+ ## Bound action contract
37
38
 
38
39
  @${pluginRoot}/actions/plan-section.json
39
- @${pluginRoot}/project/schemas/common.schema.json
40
- @${pluginRoot}/project/schemas/checkpoint.schema.json
41
- @${pluginRoot}/project/templates/checkpoint.json
42
- @${pluginRoot}/project/schemas/config.schema.json
43
- @${pluginRoot}/project/templates/config.json
44
- @${pluginRoot}/project/schemas/decisions.schema.json
45
- @${pluginRoot}/project/templates/decisions.json
46
- @${pluginRoot}/project/schemas/evidence.schema.json
47
- @${pluginRoot}/project/templates/evidence.json
48
- @${pluginRoot}/project/schemas/manifest.schema.json
49
- @${pluginRoot}/project/templates/manifest.json
50
- @${pluginRoot}/project/schemas/outline.schema.json
51
- @${pluginRoot}/project/templates/outline.json
52
- @${pluginRoot}/project/schemas/section.schema.json
53
- @${pluginRoot}/project/templates/section.json
54
- @${pluginRoot}/project/schemas/source.schema.json
55
- @${pluginRoot}/project/templates/source.json
56
- @${pluginRoot}/project/schemas/state.schema.json
57
- @${pluginRoot}/project/templates/state.json
58
- @${pluginRoot}/project/schemas/validation.schema.json
59
- @${pluginRoot}/project/templates/validation.json
60
40
 
61
41
  ## Invocation input
62
42
 
@@ -68,7 +48,7 @@ $ARGUMENTS
68
48
 
69
49
  ## Clio user-gate binding
70
50
 
71
- Call `ask_user` whenever this workflow reaches a declared `user.gate`; only the structured value returned by that tool satisfies the gate. Invocation arguments, assistant prose, silence, or a report artifact do not count as a selection. Apply no gated mutation before `ask_user` returns. After any permitted mutation, perform the workflow-required readback before reporting success.
51
+ For a pending checkpoint in the declared gate's exact scope, call `extension_wtfp__gate` with its ID. Create a missing pending checkpoint through `extension_wtfp__record` only when this action declares checkpoint creation; otherwise use `ask_user` for the unpersisted author decision and do not invent an undeclared output. Only the structured author answer satisfies the gate; cancelled, retained or expired checkpoints authorize nothing. Never write `resolution.resolved_by: author` yourself or infer approval from invocation text, prose or silence. Read back a persisted resolution before applying its gated mutation.
72
52
 
73
53
  ## Clio role-result binding
74
54