wtf-p 0.7.0 → 0.7.2

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 (71) hide show
  1. package/README.md +11 -10
  2. package/package.json +1 -1
  3. package/protocol/actions/research-gap.json +2 -1
  4. package/protocol/roles/research-synthesizer.md +1 -0
  5. package/protocol/skills/wtfp-research-literature/references/actions.md +1 -1
  6. package/protocol/workflows/research-gap.md +1 -1
  7. package/vendors/antigravity/.wtfp-generated.json +7 -7
  8. package/vendors/antigravity/actions/research-gap.json +2 -1
  9. package/vendors/antigravity/agents/wtfp-research-synthesizer.md +1 -0
  10. package/vendors/antigravity/plugin.json +1 -1
  11. package/vendors/antigravity/roles/research-synthesizer.md +1 -0
  12. package/vendors/antigravity/skills/wtfp-research-literature/references/actions.md +1 -1
  13. package/vendors/antigravity/workflows/research-gap.md +1 -1
  14. package/vendors/claude/.claude-plugin/marketplace.json +2 -2
  15. package/vendors/claude/.claude-plugin/plugin.json +1 -1
  16. package/vendors/claude/.wtfp-generated.json +13 -13
  17. package/vendors/claude/actions/research-gap.json +2 -1
  18. package/vendors/claude/agents/wtfp-research-synthesizer.md +1 -0
  19. package/vendors/claude/ai.iowarp.clio/agents/wtfp-research-synthesizer.md +1 -0
  20. package/vendors/claude/ai.iowarp.clio/prompts/wtfp/help.md +1 -1
  21. package/vendors/claude/ai.iowarp.clio/prompts/wtfp/research-gap.md +1 -1
  22. package/vendors/claude/commands/research-gap.md +1 -1
  23. package/vendors/claude/plugin.json +1 -1
  24. package/vendors/claude/roles/research-synthesizer.md +1 -0
  25. package/vendors/claude/skills/wtfp-research-literature/references/actions.md +1 -1
  26. package/vendors/claude/workflows/research-gap.md +1 -1
  27. package/vendors/codex/plugins/wtfp/.codex-plugin/plugin.json +1 -1
  28. package/vendors/codex/plugins/wtfp/.wtfp-generated.json +8 -8
  29. package/vendors/codex/plugins/wtfp/actions/research-gap.json +2 -1
  30. package/vendors/codex/plugins/wtfp/agents/wtfp-research-synthesizer.toml +1 -0
  31. package/vendors/codex/plugins/wtfp/plugin.json +1 -1
  32. package/vendors/codex/plugins/wtfp/roles/research-synthesizer.md +1 -0
  33. package/vendors/codex/plugins/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
  34. package/vendors/codex/plugins/wtfp/workflows/research-gap.md +1 -1
  35. package/vendors/copilot/.wtfp-generated.json +8 -8
  36. package/vendors/copilot/marketplace.json +2 -2
  37. package/vendors/copilot/plugins/wtfp/.claude-plugin/plugin.json +1 -1
  38. package/vendors/copilot/plugins/wtfp/.wtfp-generated.json +7 -7
  39. package/vendors/copilot/plugins/wtfp/actions/research-gap.json +2 -1
  40. package/vendors/copilot/plugins/wtfp/agents/wtfp-research-synthesizer.md +1 -0
  41. package/vendors/copilot/plugins/wtfp/roles/research-synthesizer.md +1 -0
  42. package/vendors/copilot/plugins/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
  43. package/vendors/copilot/plugins/wtfp/workflows/research-gap.md +1 -1
  44. package/vendors/copilot/project/.github/agents/wtfp-research-synthesizer.agent.md +1 -0
  45. package/vendors/copilot/project/.github/skills/wtfp-research-literature/references/actions.md +1 -1
  46. package/vendors/copilot/project/.github/wtfp/actions/research-gap.json +2 -1
  47. package/vendors/copilot/project/.github/wtfp/roles/research-synthesizer.md +1 -0
  48. package/vendors/copilot/project/.github/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
  49. package/vendors/copilot/project/.github/wtfp/workflows/research-gap.md +1 -1
  50. package/vendors/gemini/.wtfp-generated.json +7 -7
  51. package/vendors/gemini/actions/research-gap.json +2 -1
  52. package/vendors/gemini/agents/wtfp-research-synthesizer.md +1 -0
  53. package/vendors/gemini/gemini-extension.json +1 -1
  54. package/vendors/gemini/roles/research-synthesizer.md +1 -0
  55. package/vendors/gemini/skills/wtfp-research-literature/references/actions.md +1 -1
  56. package/vendors/gemini/workflows/research-gap.md +1 -1
  57. package/vendors/opencode/.wtfp-generated.json +6 -6
  58. package/vendors/opencode/actions/research-gap.json +2 -1
  59. package/vendors/opencode/agents/wtfp/research-synthesizer.md +1 -0
  60. package/vendors/opencode/roles/research-synthesizer.md +1 -0
  61. package/vendors/opencode/skills/wtfp-research-literature/references/actions.md +1 -1
  62. package/vendors/opencode/workflows/research-gap.md +1 -1
  63. package/vendors/plugin/.wtfp-generated.json +9 -9
  64. package/vendors/plugin/actions/research-gap.json +2 -1
  65. package/vendors/plugin/ai.iowarp.clio/agents/wtfp-research-synthesizer.md +1 -0
  66. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/help.md +1 -1
  67. package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/research-gap.md +1 -1
  68. package/vendors/plugin/plugin.json +1 -1
  69. package/vendors/plugin/roles/research-synthesizer.md +1 -0
  70. package/vendors/plugin/skills/wtfp-research-literature/references/actions.md +1 -1
  71. package/vendors/plugin/workflows/research-gap.md +1 -1
@@ -22,7 +22,7 @@ Manuscript prose and supporting context, research, plan, review, summary, handof
22
22
  ## Procedure
23
23
 
24
24
  1. Resolve the research question and section scope against locked/deferred decisions; agree on depth and source constraints.
25
- 2. Search declared scholarly services, verify source identity and inspection depth, and separate source records from claim-level evidence.
25
+ 2. Search declared scholarly services only after the gate names the providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Verify source identity and inspection depth, and separate source records from claim-level evidence.
26
26
  3. Synthesize supported, conflicting, and missing evidence into a Markdown research artifact; link new records and disclose limitations.
27
27
 
28
28
  ## Bundled tool execution
@@ -2,11 +2,11 @@
2
2
  "schema": "wtfp.generated-adapter/v1",
3
3
  "generatorVersion": 5,
4
4
  "target": "copilot-marketplace",
5
- "sourceHash": "b933037f9c8f8db38fa419255a7fb8b1a53752a9563cc4af3e2b0fcd04d0f68e",
5
+ "sourceHash": "4f20cee07923c03cc2317d1fe6331aa5ed6ba0cc45109c79cb52ed9678c6d2bf",
6
6
  "files": [
7
7
  {
8
8
  "path": "marketplace.json",
9
- "sha256": "6fadbcf000495f705f889160e9af5fa917bcff26b0acd9a6e1803ba2b1255c81"
9
+ "sha256": "d970d2c8747ae7f6d29d72fd5b941d1ada86eb5414a09d5b5c659731488ffe98"
10
10
  },
11
11
  {
12
12
  "path": "project/.github/agents/wtfp-argument-verifier.agent.md",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  {
40
40
  "path": "project/.github/agents/wtfp-research-synthesizer.agent.md",
41
- "sha256": "53eb17ad28cff8b6f4e83e879f217cac3af7bb4085925af881585e08c680cd49"
41
+ "sha256": "5a3fdba1f9c0524cae51569141087aa98c05d59be01dd4b66f0a91717fa4b6bb"
42
42
  },
43
43
  {
44
44
  "path": "project/.github/agents/wtfp-section-planner.agent.md",
@@ -242,7 +242,7 @@
242
242
  },
243
243
  {
244
244
  "path": "project/.github/skills/wtfp-research-literature/references/actions.md",
245
- "sha256": "c9aa3170d44f6668d05a042966e95c6bbb19902662395704384aa71856698206"
245
+ "sha256": "964ec6eb72c222bd7e7ac4eaef8d3b7b3ca51c3e54d6e45c3b1b6e2ebcf939b7"
246
246
  },
247
247
  {
248
248
  "path": "project/.github/skills/wtfp-research-literature/SKILL.md",
@@ -398,7 +398,7 @@
398
398
  },
399
399
  {
400
400
  "path": "project/.github/wtfp/actions/research-gap.json",
401
- "sha256": "61bb44bf5a5dbbaa5e296f69515b65c21a1ce15022f2bafcb4d22df82f0d690c"
401
+ "sha256": "80659531e18fb60dd46620c8b35aa27ce0f966c467f0d3073ae8c6519084153e"
402
402
  },
403
403
  {
404
404
  "path": "project/.github/wtfp/actions/resume-writing.json",
@@ -570,7 +570,7 @@
570
570
  },
571
571
  {
572
572
  "path": "project/.github/wtfp/roles/research-synthesizer.md",
573
- "sha256": "d04ba72d66f693202b9327aaef82dd47637f1d99349d190149ef82ec43c8be83"
573
+ "sha256": "011feaa1fdb967c267713f4fa4b0c45b27e66a62f71d1f24c4f44360442aef57"
574
574
  },
575
575
  {
576
576
  "path": "project/.github/wtfp/roles/section-planner.md",
@@ -650,7 +650,7 @@
650
650
  },
651
651
  {
652
652
  "path": "project/.github/wtfp/skills/wtfp-research-literature/references/actions.md",
653
- "sha256": "04768c3c0e0817ae3c3158c59c7075e838ad7c63b70d5a06a719ea0ef9f399b6"
653
+ "sha256": "83ad7126edc5f2012bc4bdbd3486a3eaf6b6453a0d575416b8ca4633c97fff24"
654
654
  },
655
655
  {
656
656
  "path": "project/.github/wtfp/skills/wtfp-research-literature/SKILL.md",
@@ -830,7 +830,7 @@
830
830
  },
831
831
  {
832
832
  "path": "project/.github/wtfp/workflows/research-gap.md",
833
- "sha256": "c98eb74ae970713affa435e79ba780703694cd1eca0c141bf840ebe67adc3983"
833
+ "sha256": "a1736edb7e739708a92e5ef11c2d7c7a87fe8e6e4d6586e8ce9b1db3ae5bb428"
834
834
  },
835
835
  {
836
836
  "path": "project/.github/wtfp/workflows/resume-writing.md",
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "WTF-P research workflow plugins",
8
- "version": "0.7.0"
8
+ "version": "0.7.2"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "wtfp",
13
13
  "source": "./plugins/wtfp",
14
14
  "description": "Portable academic research and writing workflows.",
15
- "version": "0.7.0",
15
+ "version": "0.7.2",
16
16
  "author": {
17
17
  "name": "akougkas"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wtfp",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "Portable academic research and writing workflows with stable wtfp actions.",
5
5
  "author": {
6
6
  "name": "akougkas",
@@ -2,11 +2,11 @@
2
2
  "schema": "wtfp.generated-adapter/v1",
3
3
  "generatorVersion": 5,
4
4
  "target": "copilot",
5
- "sourceHash": "592f78b5aa750de99e239898a484c196422501fe6628fb6deeae1f7c1fbf6912",
5
+ "sourceHash": "b24530a66abee36a6f2ca0dcaad6417c964cddd6a6a5f3f013c35e369742af49",
6
6
  "files": [
7
7
  {
8
8
  "path": ".claude-plugin/plugin.json",
9
- "sha256": "94c8c984c5fd89bdb9e9ce2e3569d3661e207b80491ab9d9be76afebf726883b"
9
+ "sha256": "737a8818dc1ef220429a477c9226664c5c924fcc42da54c421fc36d6b6fcbc37"
10
10
  },
11
11
  {
12
12
  "path": "actions/add-todo.json",
@@ -122,7 +122,7 @@
122
122
  },
123
123
  {
124
124
  "path": "actions/research-gap.json",
125
- "sha256": "61bb44bf5a5dbbaa5e296f69515b65c21a1ce15022f2bafcb4d22df82f0d690c"
125
+ "sha256": "80659531e18fb60dd46620c8b35aa27ce0f966c467f0d3073ae8c6519084153e"
126
126
  },
127
127
  {
128
128
  "path": "actions/resume-writing.json",
@@ -182,7 +182,7 @@
182
182
  },
183
183
  {
184
184
  "path": "agents/wtfp-research-synthesizer.md",
185
- "sha256": "d4ffefcddd233061e6c3bbdc8684d67df8d1f1306bddaa5a1eeadaf0e910d33d"
185
+ "sha256": "b631ecae2387a30998d738a39a1c5c2ef8cdeb09b3774d66710d35363bd43e7c"
186
186
  },
187
187
  {
188
188
  "path": "agents/wtfp-section-planner.md",
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "path": "roles/research-synthesizer.md",
489
- "sha256": "d04ba72d66f693202b9327aaef82dd47637f1d99349d190149ef82ec43c8be83"
489
+ "sha256": "011feaa1fdb967c267713f4fa4b0c45b27e66a62f71d1f24c4f44360442aef57"
490
490
  },
491
491
  {
492
492
  "path": "roles/section-planner.md",
@@ -566,7 +566,7 @@
566
566
  },
567
567
  {
568
568
  "path": "skills/wtfp-research-literature/references/actions.md",
569
- "sha256": "22e5e92acad39e4b8785f5664aa2a797aa94d3f7f0aee96b6c954e14649a7921"
569
+ "sha256": "b3281420d2f6d0abb0d53e93e54f7b56f3c07470808e1de9fbd738499bee1348"
570
570
  },
571
571
  {
572
572
  "path": "skills/wtfp-research-literature/SKILL.md",
@@ -786,7 +786,7 @@
786
786
  },
787
787
  {
788
788
  "path": "workflows/research-gap.md",
789
- "sha256": "c98eb74ae970713affa435e79ba780703694cd1eca0c141bf840ebe67adc3983"
789
+ "sha256": "a1736edb7e739708a92e5ef11c2d7c7a87fe8e6e4d6586e8ce9b1db3ae5bb428"
790
790
  },
791
791
  {
792
792
  "path": "workflows/resume-writing.md",
@@ -60,6 +60,7 @@
60
60
  ],
61
61
  "tools": [
62
62
  "bibliography.index",
63
+ "citation.fetch",
63
64
  "citation.rank",
64
65
  "citation.scholar-lookup",
65
66
  "citation.semantic-scholar"
@@ -95,7 +96,7 @@
95
96
  },
96
97
  {
97
98
  "id": "user.gate",
98
- "scope": "research scope and depth"
99
+ "scope": "the external providers, bounded query set, and research scope and depth"
99
100
  }
100
101
  ]
101
102
  }
@@ -47,6 +47,7 @@ Investigate the literature needed to plan and write a specific section well. The
47
47
  ## Boundaries
48
48
 
49
49
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
50
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
50
51
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
51
52
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
52
53
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -54,7 +54,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
54
54
  - `standard`: run a focused, reproducible search across the most relevant categories;
55
55
  - `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
56
56
  5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
57
- 6. Search authoritative scholarly sources when external research is approved and available. Deduplicate candidates by persistent identifier, then normalized title.
57
+ 6. Search authoritative scholarly sources only after disclosing and receiving approval for the external providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
58
58
  7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
59
59
  8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
60
60
  9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
@@ -22,7 +22,7 @@ Manuscript prose and supporting context, research, plan, review, summary, handof
22
22
  ## Procedure
23
23
 
24
24
  1. Resolve the research question and section scope against locked/deferred decisions; agree on depth and source constraints.
25
- 2. Search declared scholarly services, verify source identity and inspection depth, and separate source records from claim-level evidence.
25
+ 2. Search declared scholarly services only after the gate names the providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Verify source identity and inspection depth, and separate source records from claim-level evidence.
26
26
  3. Synthesize supported, conflicting, and missing evidence into a Markdown research artifact; link new records and disclose limitations.
27
27
 
28
28
  ## Bundled tool execution
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -54,7 +54,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
54
54
  - `standard`: run a focused, reproducible search across the most relevant categories;
55
55
  - `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
56
56
  5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
57
- 6. Search authoritative scholarly sources when external research is approved and available. Deduplicate candidates by persistent identifier, then normalized title.
57
+ 6. Search authoritative scholarly sources only after disclosing and receiving approval for the external providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
58
58
  7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
59
59
  8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
60
60
  9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
@@ -60,6 +60,7 @@
60
60
  ],
61
61
  "tools": [
62
62
  "bibliography.index",
63
+ "citation.fetch",
63
64
  "citation.rank",
64
65
  "citation.scholar-lookup",
65
66
  "citation.semantic-scholar"
@@ -95,7 +96,7 @@
95
96
  },
96
97
  {
97
98
  "id": "user.gate",
98
- "scope": "research scope and depth"
99
+ "scope": "the external providers, bounded query set, and research scope and depth"
99
100
  }
100
101
  ]
101
102
  }
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -14,7 +14,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
14
14
  - `standard`: run a focused, reproducible search across the most relevant categories;
15
15
  - `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
16
16
  5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
17
- 6. Search authoritative scholarly sources when external research is approved and available. Deduplicate candidates by persistent identifier, then normalized title.
17
+ 6. Search authoritative scholarly sources only after disclosing and receiving approval for the external providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
18
18
  7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
19
19
  8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
20
20
  9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
@@ -22,7 +22,7 @@ Manuscript prose and supporting context, research, plan, review, summary, handof
22
22
  ## Procedure
23
23
 
24
24
  1. Resolve the research question and section scope against locked/deferred decisions; agree on depth and source constraints.
25
- 2. Search declared scholarly services, verify source identity and inspection depth, and separate source records from claim-level evidence.
25
+ 2. Search declared scholarly services only after the gate names the providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Verify source identity and inspection depth, and separate source records from claim-level evidence.
26
26
  3. Synthesize supported, conflicting, and missing evidence into a Markdown research artifact; link new records and disclose limitations.
27
27
 
28
28
  ## Bundled tool execution
@@ -2,7 +2,7 @@
2
2
  "schema": "wtfp.generated-adapter/v1",
3
3
  "generatorVersion": 5,
4
4
  "target": "gemini",
5
- "sourceHash": "e2780b9dd2fdbad4667ec5248135caed0664bd3ec4122d0bac98ce1fdd762045",
5
+ "sourceHash": "839a3f065feecb9be6f892239227ce8540c42f0237ea6b80068290a297b3fbb7",
6
6
  "files": [
7
7
  {
8
8
  "path": "actions/add-todo.json",
@@ -118,7 +118,7 @@
118
118
  },
119
119
  {
120
120
  "path": "actions/research-gap.json",
121
- "sha256": "61bb44bf5a5dbbaa5e296f69515b65c21a1ce15022f2bafcb4d22df82f0d690c"
121
+ "sha256": "80659531e18fb60dd46620c8b35aa27ce0f966c467f0d3073ae8c6519084153e"
122
122
  },
123
123
  {
124
124
  "path": "actions/resume-writing.json",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  {
180
180
  "path": "agents/wtfp-research-synthesizer.md",
181
- "sha256": "03ecd1905fc9a9b3d879dac3e1ddc9f1009d061d5ec0c0b8d1db948ab2a6ed70"
181
+ "sha256": "98a411e1f0f534d8a8f1e56c485072ff3a189c50e0d4e899fa4a8bf59e7ea552"
182
182
  },
183
183
  {
184
184
  "path": "agents/wtfp-section-planner.md",
@@ -362,7 +362,7 @@
362
362
  },
363
363
  {
364
364
  "path": "gemini-extension.json",
365
- "sha256": "7d9e45fe44be4a5c910f491fa75ea479d8faf23ea27df916cad3884efd5eb64e"
365
+ "sha256": "d8e56f7ad464e483fb7ff459180f4848c64a2eb69c293f22f5188dfddc6adf07"
366
366
  },
367
367
  {
368
368
  "path": "GEMINI.md",
@@ -490,7 +490,7 @@
490
490
  },
491
491
  {
492
492
  "path": "roles/research-synthesizer.md",
493
- "sha256": "d04ba72d66f693202b9327aaef82dd47637f1d99349d190149ef82ec43c8be83"
493
+ "sha256": "011feaa1fdb967c267713f4fa4b0c45b27e66a62f71d1f24c4f44360442aef57"
494
494
  },
495
495
  {
496
496
  "path": "roles/section-planner.md",
@@ -570,7 +570,7 @@
570
570
  },
571
571
  {
572
572
  "path": "skills/wtfp-research-literature/references/actions.md",
573
- "sha256": "d8f803bcdc1f45581479d3a7dd16fd6f92fb5410a1be3a070a935eadf7be2c5d"
573
+ "sha256": "8e8987439f11c3b316f52cd009b4fd8dc4ba155fc9c7b8370425d59d832c4fae"
574
574
  },
575
575
  {
576
576
  "path": "skills/wtfp-research-literature/SKILL.md",
@@ -790,7 +790,7 @@
790
790
  },
791
791
  {
792
792
  "path": "workflows/research-gap.md",
793
- "sha256": "c98eb74ae970713affa435e79ba780703694cd1eca0c141bf840ebe67adc3983"
793
+ "sha256": "a1736edb7e739708a92e5ef11c2d7c7a87fe8e6e4d6586e8ce9b1db3ae5bb428"
794
794
  },
795
795
  {
796
796
  "path": "workflows/resume-writing.md",
@@ -60,6 +60,7 @@
60
60
  ],
61
61
  "tools": [
62
62
  "bibliography.index",
63
+ "citation.fetch",
63
64
  "citation.rank",
64
65
  "citation.scholar-lookup",
65
66
  "citation.semantic-scholar"
@@ -95,7 +96,7 @@
95
96
  },
96
97
  {
97
98
  "id": "user.gate",
98
- "scope": "research scope and depth"
99
+ "scope": "the external providers, bounded query set, and research scope and depth"
99
100
  }
100
101
  ]
101
102
  }
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wtfp",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "Portable academic research and writing workflows for Gemini CLI.",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -54,7 +54,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
54
54
  - `standard`: run a focused, reproducible search across the most relevant categories;
55
55
  - `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
56
56
  5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
57
- 6. Search authoritative scholarly sources when external research is approved and available. Deduplicate candidates by persistent identifier, then normalized title.
57
+ 6. Search authoritative scholarly sources only after disclosing and receiving approval for the external providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
58
58
  7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
59
59
  8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
60
60
  9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
@@ -22,7 +22,7 @@ Manuscript prose and supporting context, research, plan, review, summary, handof
22
22
  ## Procedure
23
23
 
24
24
  1. Resolve the research question and section scope against locked/deferred decisions; agree on depth and source constraints.
25
- 2. Search declared scholarly services, verify source identity and inspection depth, and separate source records from claim-level evidence.
25
+ 2. Search declared scholarly services only after the gate names the providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Verify source identity and inspection depth, and separate source records from claim-level evidence.
26
26
  3. Synthesize supported, conflicting, and missing evidence into a Markdown research artifact; link new records and disclose limitations.
27
27
 
28
28
  ## Bundled tool execution
@@ -2,7 +2,7 @@
2
2
  "schema": "wtfp.generated-adapter/v1",
3
3
  "generatorVersion": 5,
4
4
  "target": "opencode",
5
- "sourceHash": "4baad48deab35b546fd92cbe69d8ac854c3f039615b0b0dee5bf3fc80d922615",
5
+ "sourceHash": "421eb85c954ef0b7dbe38ad33c3379bf331e605b2f6fc657973dbb51c91ca062",
6
6
  "files": [
7
7
  {
8
8
  "path": "actions/add-todo.json",
@@ -118,7 +118,7 @@
118
118
  },
119
119
  {
120
120
  "path": "actions/research-gap.json",
121
- "sha256": "61bb44bf5a5dbbaa5e296f69515b65c21a1ce15022f2bafcb4d22df82f0d690c"
121
+ "sha256": "80659531e18fb60dd46620c8b35aa27ce0f966c467f0d3073ae8c6519084153e"
122
122
  },
123
123
  {
124
124
  "path": "actions/resume-writing.json",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  {
180
180
  "path": "agents/wtfp/research-synthesizer.md",
181
- "sha256": "df421501211fb2e0ad805634ead67a749e3b7193eea4f6bdb6249e436dc916fb"
181
+ "sha256": "ae63d3170606cf0aa9486e2780cd4fbdcb78aad1abe8dea4caab435e2ca6ed39"
182
182
  },
183
183
  {
184
184
  "path": "agents/wtfp/section-planner.md",
@@ -482,7 +482,7 @@
482
482
  },
483
483
  {
484
484
  "path": "roles/research-synthesizer.md",
485
- "sha256": "d04ba72d66f693202b9327aaef82dd47637f1d99349d190149ef82ec43c8be83"
485
+ "sha256": "011feaa1fdb967c267713f4fa4b0c45b27e66a62f71d1f24c4f44360442aef57"
486
486
  },
487
487
  {
488
488
  "path": "roles/section-planner.md",
@@ -562,7 +562,7 @@
562
562
  },
563
563
  {
564
564
  "path": "skills/wtfp-research-literature/references/actions.md",
565
- "sha256": "d7c27fa03e882fe67728cf9a04f299b8c1ada6332d36d77e8f13d12f08546ca8"
565
+ "sha256": "ebe21c6facfa34a6a99e61cbd8b48190164286cf897fdc1179c01dda5702915d"
566
566
  },
567
567
  {
568
568
  "path": "skills/wtfp-research-literature/SKILL.md",
@@ -782,7 +782,7 @@
782
782
  },
783
783
  {
784
784
  "path": "workflows/research-gap.md",
785
- "sha256": "c98eb74ae970713affa435e79ba780703694cd1eca0c141bf840ebe67adc3983"
785
+ "sha256": "a1736edb7e739708a92e5ef11c2d7c7a87fe8e6e4d6586e8ce9b1db3ae5bb428"
786
786
  },
787
787
  {
788
788
  "path": "workflows/resume-writing.md",
@@ -60,6 +60,7 @@
60
60
  ],
61
61
  "tools": [
62
62
  "bibliography.index",
63
+ "citation.fetch",
63
64
  "citation.rank",
64
65
  "citation.scholar-lookup",
65
66
  "citation.semantic-scholar"
@@ -95,7 +96,7 @@
95
96
  },
96
97
  {
97
98
  "id": "user.gate",
98
- "scope": "research scope and depth"
99
+ "scope": "the external providers, bounded query set, and research scope and depth"
99
100
  }
100
101
  ]
101
102
  }
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -42,6 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
42
42
  ## Boundaries
43
43
 
44
44
  - This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
45
+ - When external literature search is approved, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after the gate. Returned results stay candidates, and this role never performs a bibliography write.
45
46
  - Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
46
47
  - Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
47
48
  - Do not explore alternatives that author decisions explicitly deferred or rejected.
@@ -54,7 +54,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
54
54
  - `standard`: run a focused, reproducible search across the most relevant categories;
55
55
  - `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
56
56
  5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
57
- 6. Search authoritative scholarly sources when external research is approved and available. Deduplicate candidates by persistent identifier, then normalized title.
57
+ 6. Search authoritative scholarly sources only after disclosing and receiving approval for the external providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
58
58
  7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
59
59
  8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
60
60
  9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
@@ -22,7 +22,7 @@ Manuscript prose and supporting context, research, plan, review, summary, handof
22
22
  ## Procedure
23
23
 
24
24
  1. Resolve the research question and section scope against locked/deferred decisions; agree on depth and source constraints.
25
- 2. Search declared scholarly services, verify source identity and inspection depth, and separate source records from claim-level evidence.
25
+ 2. Search declared scholarly services only after the gate names the providers and bounded query set. When using the bundled dispatcher, `citation-search` may run with `--backend=cite-nexus` and an explicit `--providers` list after this gate. Returned results stay candidates, and this action performs no bibliography write. Verify source identity and inspection depth, and separate source records from claim-level evidence.
26
26
  3. Synthesize supported, conflicting, and missing evidence into a Markdown research artifact; link new records and disclose limitations.
27
27
 
28
28
  ## Bundled tool execution
@@ -2,7 +2,7 @@
2
2
  "schema": "wtfp.generated-adapter/v1",
3
3
  "generatorVersion": 5,
4
4
  "target": "portable-plugin",
5
- "sourceHash": "78f55a94fd2b6fc7e0fea1adc8ae8ca5a92e7c58ae19abf26dc725f85decbbbf",
5
+ "sourceHash": "2fec5e7f932658a17a6f8188ddcfaf4525c6c37a5d3b297334668d160bccd683",
6
6
  "files": [
7
7
  {
8
8
  "path": "actions/add-todo.json",
@@ -118,7 +118,7 @@
118
118
  },
119
119
  {
120
120
  "path": "actions/research-gap.json",
121
- "sha256": "61bb44bf5a5dbbaa5e296f69515b65c21a1ce15022f2bafcb4d22df82f0d690c"
121
+ "sha256": "80659531e18fb60dd46620c8b35aa27ce0f966c467f0d3073ae8c6519084153e"
122
122
  },
123
123
  {
124
124
  "path": "actions/resume-writing.json",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  {
180
180
  "path": "ai.iowarp.clio/agents/wtfp-research-synthesizer.md",
181
- "sha256": "0458f59e99dc04e36e6e8430ecd9d06a6a115af31bab087069f768e9d767034c"
181
+ "sha256": "18cfbac40fe49413797ed8bd12779df158eacb0155620dd34c966e061f2d5182"
182
182
  },
183
183
  {
184
184
  "path": "ai.iowarp.clio/agents/wtfp-section-planner.md",
@@ -254,7 +254,7 @@
254
254
  },
255
255
  {
256
256
  "path": "ai.iowarp.clio/prompts/wtfp/help.md",
257
- "sha256": "4ccbb32b87f085aafa7449c9808b4c6862dff54db37eac9d60a27bbc2d51e194"
257
+ "sha256": "dc549d5ea17cd14f945bc1a4cbc8bc95d67488bc61ea82e40dfa2f24bb839877"
258
258
  },
259
259
  {
260
260
  "path": "ai.iowarp.clio/prompts/wtfp/insert-section.md",
@@ -314,7 +314,7 @@
314
314
  },
315
315
  {
316
316
  "path": "ai.iowarp.clio/prompts/wtfp/research-gap.md",
317
- "sha256": "f59efde01a3a461c2fef4219774eb32795324960649980da5e390c99d57774f3"
317
+ "sha256": "9a08d66ac0f23ec846aa054ce50a76ebe1d5b19a922389a96b99c8cbe1e88665"
318
318
  },
319
319
  {
320
320
  "path": "ai.iowarp.clio/prompts/wtfp/resume-writing.md",
@@ -362,7 +362,7 @@
362
362
  },
363
363
  {
364
364
  "path": "plugin.json",
365
- "sha256": "3d409e5688c0eeda0edeb460494ca2943a7d1a70375eafe873df1bbb3528505d"
365
+ "sha256": "9ca54a9c1ac8c20bd741650ec5e8556db9168a55d7b150d8ab03e3c97b64c81f"
366
366
  },
367
367
  {
368
368
  "path": "project/README.md",
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "path": "roles/research-synthesizer.md",
489
- "sha256": "d04ba72d66f693202b9327aaef82dd47637f1d99349d190149ef82ec43c8be83"
489
+ "sha256": "011feaa1fdb967c267713f4fa4b0c45b27e66a62f71d1f24c4f44360442aef57"
490
490
  },
491
491
  {
492
492
  "path": "roles/section-planner.md",
@@ -566,7 +566,7 @@
566
566
  },
567
567
  {
568
568
  "path": "skills/wtfp-research-literature/references/actions.md",
569
- "sha256": "04768c3c0e0817ae3c3158c59c7075e838ad7c63b70d5a06a719ea0ef9f399b6"
569
+ "sha256": "83ad7126edc5f2012bc4bdbd3486a3eaf6b6453a0d575416b8ca4633c97fff24"
570
570
  },
571
571
  {
572
572
  "path": "skills/wtfp-research-literature/SKILL.md",
@@ -786,7 +786,7 @@
786
786
  },
787
787
  {
788
788
  "path": "workflows/research-gap.md",
789
- "sha256": "c98eb74ae970713affa435e79ba780703694cd1eca0c141bf840ebe67adc3983"
789
+ "sha256": "a1736edb7e739708a92e5ef11c2d7c7a87fe8e6e4d6586e8ce9b1db3ae5bb428"
790
790
  },
791
791
  {
792
792
  "path": "workflows/resume-writing.md",