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,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/decisions/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["schema", "project_id", "revision", "items", "updated_at"],
7
+ "properties": {
8
+ "schema": { "const": "wtfp.project.decisions/v1" },
9
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
10
+ "revision": { "type": "integer", "minimum": 0 },
11
+ "items": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "object",
15
+ "additionalProperties": false,
16
+ "required": ["id", "authority", "disposition", "statement", "rationale", "scope_uri", "recorded_at"],
17
+ "properties": {
18
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
19
+ "authority": { "enum": ["author", "venue", "project-evidence"] },
20
+ "disposition": { "enum": ["locked", "deferred", "discretion", "superseded"] },
21
+ "statement": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
22
+ "rationale": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
23
+ "scope_uri": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
24
+ "recorded_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" },
25
+ "supersedes": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" }
26
+ }
27
+ }
28
+ },
29
+ "updated_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
30
+ }
31
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/evidence/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "id",
9
+ "project_id",
10
+ "source_uri",
11
+ "claim_id",
12
+ "relation",
13
+ "statement",
14
+ "locator",
15
+ "interpretation",
16
+ "confidence",
17
+ "inspection_depth",
18
+ "verified_at"
19
+ ],
20
+ "properties": {
21
+ "schema": { "const": "wtfp.project.evidence/v1" },
22
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
23
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
24
+ "source_uri": { "type": "string", "pattern": "^project://sources/[A-Za-z0-9._~-]+$" },
25
+ "claim_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
26
+ "relation": { "enum": ["supports", "contradicts", "contextualizes", "method-precedent"] },
27
+ "statement": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
28
+ "locator": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "required": ["kind", "value"],
32
+ "properties": {
33
+ "kind": { "enum": ["page", "section", "figure", "table", "timestamp", "record", "abstract"] },
34
+ "value": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" }
35
+ }
36
+ },
37
+ "quote": { "type": "string", "minLength": 1 },
38
+ "interpretation": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
39
+ "limitations": {
40
+ "type": "array",
41
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
42
+ "uniqueItems": true
43
+ },
44
+ "confidence": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/confidence" },
45
+ "inspection_depth": { "enum": ["metadata", "abstract", "full-text", "primary-data"] },
46
+ "verified_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
47
+ }
48
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/manifest/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "protocol_version",
9
+ "id",
10
+ "title",
11
+ "document_type",
12
+ "core_argument",
13
+ "created_at",
14
+ "updated_at",
15
+ "artifacts"
16
+ ],
17
+ "properties": {
18
+ "schema": { "const": "wtfp.project.manifest/v1" },
19
+ "protocol_version": { "const": 1 },
20
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
21
+ "title": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
22
+ "document_type": {
23
+ "enum": [
24
+ "research-article",
25
+ "conference-paper",
26
+ "review",
27
+ "grant-proposal",
28
+ "thesis",
29
+ "dissertation",
30
+ "book-chapter",
31
+ "other"
32
+ ]
33
+ },
34
+ "core_argument": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
35
+ "target": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "properties": {
39
+ "venue": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
40
+ "audience": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
41
+ "word_limit": { "type": "integer", "minimum": 1 },
42
+ "deadline": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/date" }
43
+ }
44
+ },
45
+ "requirements": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": ["must_have", "should_have", "out_of_scope"],
49
+ "properties": {
50
+ "must_have": {
51
+ "type": "array",
52
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
53
+ "uniqueItems": true
54
+ },
55
+ "should_have": {
56
+ "type": "array",
57
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
58
+ "uniqueItems": true
59
+ },
60
+ "out_of_scope": {
61
+ "type": "array",
62
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
63
+ "uniqueItems": true
64
+ }
65
+ }
66
+ },
67
+ "created_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" },
68
+ "updated_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" },
69
+ "artifacts": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": ["manifest", "config", "state", "decisions", "outline"],
73
+ "properties": {
74
+ "manifest": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
75
+ "config": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
76
+ "state": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
77
+ "decisions": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
78
+ "outline": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
79
+ "materials": {
80
+ "type": "array",
81
+ "items": { "type": "string", "pattern": "^project://materials/[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$" },
82
+ "uniqueItems": true
83
+ },
84
+ "manuscripts": {
85
+ "type": "array",
86
+ "items": { "type": "string", "pattern": "^project://paper/[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$" },
87
+ "uniqueItems": true
88
+ },
89
+ "deliverables": {
90
+ "type": "array",
91
+ "items": { "type": "string", "pattern": "^project://deliverables/[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$" },
92
+ "uniqueItems": true
93
+ },
94
+ "archives": {
95
+ "type": "array",
96
+ "items": { "type": "string", "pattern": "^project://archives/[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$" },
97
+ "uniqueItems": true
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/outline/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["schema", "project_id", "revision", "thesis", "target_words", "sections", "updated_at"],
7
+ "properties": {
8
+ "schema": { "const": "wtfp.project.outline/v1" },
9
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
10
+ "revision": { "type": "integer", "minimum": 0 },
11
+ "thesis": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
12
+ "target_words": { "type": "integer", "minimum": 1 },
13
+ "sections": {
14
+ "type": "array",
15
+ "minItems": 1,
16
+ "items": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": [
20
+ "id",
21
+ "title",
22
+ "goal",
23
+ "argument_role",
24
+ "word_target",
25
+ "wave",
26
+ "depends_on",
27
+ "claim_ids",
28
+ "research"
29
+ ],
30
+ "properties": {
31
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
32
+ "title": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
33
+ "goal": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
34
+ "argument_role": {
35
+ "enum": ["setup", "background", "method", "evidence", "synthesis", "implications", "conclusion", "other"]
36
+ },
37
+ "word_target": { "type": "integer", "minimum": 1 },
38
+ "wave": { "type": "integer", "minimum": 1 },
39
+ "depends_on": {
40
+ "type": "array",
41
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
42
+ "uniqueItems": true
43
+ },
44
+ "claim_ids": {
45
+ "type": "array",
46
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
47
+ "uniqueItems": true
48
+ },
49
+ "research": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": ["required", "topics"],
53
+ "properties": {
54
+ "required": { "type": "boolean" },
55
+ "topics": {
56
+ "type": "array",
57
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
58
+ "uniqueItems": true
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ },
65
+ "updated_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
66
+ }
67
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/section/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "id",
9
+ "project_id",
10
+ "outline_uri",
11
+ "title",
12
+ "goal",
13
+ "status",
14
+ "word_target",
15
+ "word_count",
16
+ "wave",
17
+ "depends_on",
18
+ "claims",
19
+ "artifacts",
20
+ "checkpoint_uris",
21
+ "validation_uris",
22
+ "updated_at"
23
+ ],
24
+ "properties": {
25
+ "schema": { "const": "wtfp.project.section/v1" },
26
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
27
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
28
+ "outline_uri": { "const": "project://structure/outline" },
29
+ "title": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
30
+ "goal": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
31
+ "status": {
32
+ "enum": ["not-started", "researching", "planned", "writing", "reviewing", "complete", "blocked"]
33
+ },
34
+ "word_target": { "type": "integer", "minimum": 1 },
35
+ "word_count": { "type": "integer", "minimum": 0 },
36
+ "wave": { "type": "integer", "minimum": 1 },
37
+ "depends_on": {
38
+ "type": "array",
39
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
40
+ "uniqueItems": true
41
+ },
42
+ "claims": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["id", "statement", "status", "evidence_required", "evidence_uris"],
48
+ "properties": {
49
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
50
+ "statement": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
51
+ "status": { "enum": ["planned", "drafted", "verified", "rejected"] },
52
+ "evidence_required": { "type": "boolean" },
53
+ "evidence_uris": {
54
+ "type": "array",
55
+ "items": { "type": "string", "pattern": "^project://evidence/[A-Za-z0-9._~-]+$" },
56
+ "uniqueItems": true
57
+ }
58
+ }
59
+ }
60
+ },
61
+ "artifacts": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": ["plans", "reviews"],
65
+ "properties": {
66
+ "context": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
67
+ "research": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
68
+ "plans": {
69
+ "type": "array",
70
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
71
+ "uniqueItems": true
72
+ },
73
+ "reviews": {
74
+ "type": "array",
75
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
76
+ "uniqueItems": true
77
+ },
78
+ "manuscript": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
79
+ "summary": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
80
+ "handoff": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" }
81
+ }
82
+ },
83
+ "checkpoint_uris": {
84
+ "type": "array",
85
+ "items": { "type": "string", "pattern": "^project://checkpoints/[A-Za-z0-9._~-]+$" },
86
+ "uniqueItems": true
87
+ },
88
+ "validation_uris": {
89
+ "type": "array",
90
+ "items": { "type": "string", "pattern": "^project://validations/[A-Za-z0-9._~-]+$" },
91
+ "uniqueItems": true
92
+ },
93
+ "updated_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
94
+ }
95
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/source/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "id",
9
+ "project_id",
10
+ "kind",
11
+ "title",
12
+ "creators",
13
+ "year",
14
+ "identifiers",
15
+ "status",
16
+ "provenance"
17
+ ],
18
+ "properties": {
19
+ "schema": { "const": "wtfp.project.source/v1" },
20
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
21
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
22
+ "kind": {
23
+ "enum": [
24
+ "journal-article",
25
+ "conference-paper",
26
+ "book",
27
+ "book-chapter",
28
+ "preprint",
29
+ "thesis",
30
+ "dataset",
31
+ "software",
32
+ "standard",
33
+ "web-resource",
34
+ "author-material",
35
+ "other"
36
+ ]
37
+ },
38
+ "title": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
39
+ "creators": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" }
43
+ },
44
+ "year": { "type": ["integer", "null"], "minimum": 1000, "maximum": 2200 },
45
+ "identifiers": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "minProperties": 1,
49
+ "properties": {
50
+ "doi": { "type": "string", "pattern": "^10\\.[0-9]{4,9}/\\S+$" },
51
+ "arxiv": { "type": "string", "pattern": "^(?:[a-z-]+/[0-9]{7}|[0-9]{4}\\.[0-9]{4,5})(?:v[0-9]+)?$" },
52
+ "isbn": { "type": "string", "minLength": 10 },
53
+ "url": { "type": "string", "format": "uri" },
54
+ "local_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" }
55
+ }
56
+ },
57
+ "citation_key": { "type": "string", "pattern": "^[A-Za-z0-9:_-]+$" },
58
+ "status": { "enum": ["verified", "provisional", "unavailable", "retracted"] },
59
+ "provenance": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": ["discovered_via", "inspection_depth", "verified_at"],
63
+ "properties": {
64
+ "discovered_via": {
65
+ "enum": ["scholarly-index", "bibliography-import", "author-provided", "repository", "manual"]
66
+ },
67
+ "inspection_depth": { "enum": ["metadata", "abstract", "full-text", "primary-data"] },
68
+ "verified_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" },
69
+ "notes": { "type": "string" }
70
+ }
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/state/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "project_id",
9
+ "revision",
10
+ "phase",
11
+ "status",
12
+ "current_section_uri",
13
+ "progress",
14
+ "active_checkpoint_uris",
15
+ "updated_at"
16
+ ],
17
+ "properties": {
18
+ "schema": { "const": "wtfp.project.state/v1" },
19
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
20
+ "revision": { "type": "integer", "minimum": 0 },
21
+ "phase": {
22
+ "enum": ["initialized", "mapped", "outlining", "planning", "writing", "reviewing", "ready", "delivered"]
23
+ },
24
+ "status": { "enum": ["active", "paused", "blocked", "complete"] },
25
+ "current_section_uri": {
26
+ "type": ["string", "null"],
27
+ "pattern": "^project://sections/[A-Za-z0-9._~-]+$"
28
+ },
29
+ "progress": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": ["sections_total", "sections_complete", "word_target", "word_count"],
33
+ "properties": {
34
+ "sections_total": { "type": "integer", "minimum": 0 },
35
+ "sections_complete": { "type": "integer", "minimum": 0 },
36
+ "word_target": { "type": "integer", "minimum": 0 },
37
+ "word_count": { "type": "integer", "minimum": 0 }
38
+ }
39
+ },
40
+ "active_checkpoint_uris": {
41
+ "type": "array",
42
+ "items": { "type": "string", "pattern": "^project://checkpoints/[A-Za-z0-9._~-]+$" },
43
+ "uniqueItems": true
44
+ },
45
+ "last_transition": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": ["from", "to", "reason", "at"],
49
+ "properties": {
50
+ "from": { "type": "string", "minLength": 1 },
51
+ "to": { "type": "string", "minLength": 1 },
52
+ "reason": { "type": "string", "minLength": 1 },
53
+ "at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
54
+ }
55
+ },
56
+ "updated_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
57
+ }
58
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.wtf-p.dev/project/validation/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schema",
8
+ "id",
9
+ "project_id",
10
+ "subject_uri",
11
+ "validator_role",
12
+ "action_id",
13
+ "status",
14
+ "checks",
15
+ "issues",
16
+ "next_actions",
17
+ "effects_applied",
18
+ "executed_at"
19
+ ],
20
+ "properties": {
21
+ "schema": { "const": "wtfp.project.validation/v1" },
22
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
23
+ "project_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
24
+ "subject_uri": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/logicalUri" },
25
+ "validator_role": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
26
+ "action_id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
27
+ "status": { "enum": ["passed", "issues-found", "needs-input", "failed"] },
28
+ "checks": {
29
+ "type": "array",
30
+ "minItems": 1,
31
+ "items": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": ["id", "status", "summary", "evidence"],
35
+ "properties": {
36
+ "id": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
37
+ "status": { "enum": ["passed", "warning", "failed", "not-applicable"] },
38
+ "summary": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
39
+ "evidence": {
40
+ "type": "array",
41
+ "items": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" }
42
+ }
43
+ }
44
+ }
45
+ },
46
+ "issues": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": ["severity", "summary"],
52
+ "properties": {
53
+ "severity": { "enum": ["info", "warning", "error", "blocker"] },
54
+ "summary": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" },
55
+ "evidence": { "type": "string" }
56
+ }
57
+ }
58
+ },
59
+ "next_actions": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": ["action", "reason"],
65
+ "properties": {
66
+ "action": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/identifier" },
67
+ "reason": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/nonEmptyString" }
68
+ }
69
+ }
70
+ },
71
+ "effects_applied": { "const": [] },
72
+ "executed_at": { "$ref": "https://schemas.wtf-p.dev/project/common/v1#/$defs/timestamp" }
73
+ }
74
+ }