@longtable/provider-codex 0.1.43 → 0.1.45

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 (2) hide show
  1. package/dist/skills.js +28 -7
  2. package/package.json +4 -4
package/dist/skills.js CHANGED
@@ -94,7 +94,9 @@ function baseSkillSpecs(surface = "compact") {
94
94
  "- If a Researcher Checkpoint is needed, ask a concise question with meaningful options and wait for the researcher.",
95
95
  "- If a checkpoint allows `other`, make `other` visible instead of hiding it in state.",
96
96
  "- Treat provider-native question UI as transport; LongTable state records are the source of truth.",
97
- "- For `$longtable-interview`, use natural-language turns for the interview and reserve MCP option UI for the final research-facing First Research Shape checkpoint.",
97
+ "- For systematic review, meta-analysis, PDF collection, full-text extraction, institutionally licensed sources, or TDM work, ensure `longtable access setup` readiness exists or surface an ACCESS CHECKPOINT before continuing.",
98
+ "- Access setup records capability status only. The researcher handles VPN/proxy/library/SSO login directly; LongTable must not store passwords, API keys, tokens, PDFs, or full text in setup state.",
99
+ "- For `$longtable-interview`, use natural-language turns for the interview and reserve MCP option UI for the final research-facing Research Specification checkpoint, with First Research Shape kept as the shorter handle layer.",
98
100
  "- Do not let unrelated pending Researcher Checkpoints interrupt the interview. Mention them only as separate unresolved checkpoints, and treat them as blocking only when the researcher is confirming, saving, or recording a research decision.",
99
101
  "- When the `mcp__longtable_state__.elicit_question` tool is available, use it first for researcher checkpoints so Codex can show the MCP elicitation UI and LongTable can record the answer as `mcp_elicitation`.",
100
102
  "- Use `longtable question --print --provider codex --prompt \"...\"` only as a fallback when the MCP tool is unavailable, unsupported, declined, canceled, or blocked by the client.",
@@ -105,7 +107,7 @@ function baseSkillSpecs(surface = "compact") {
105
107
  },
106
108
  {
107
109
  name: "longtable-interview",
108
- description: "Use for `$longtable-interview`: create or continue a LongTable research-start interview inside Codex, then store a First Research Shape through MCP/state.",
110
+ description: "Use for `$longtable-interview`: create or continue a LongTable research-start interview inside Codex, then store a First Research Shape and Research Specification through MCP/state.",
109
111
  body: [
110
112
  "## Purpose",
111
113
  "",
@@ -115,7 +117,7 @@ function baseSkillSpecs(surface = "compact") {
115
117
  "",
116
118
  "- The user invokes `$longtable-interview`.",
117
119
  "- The user wants to start a LongTable research workspace from inside Codex.",
118
- "- A workspace exists but `CURRENT.md` or `.longtable/state.json` lacks a usable First Research Shape.",
120
+ "- A workspace exists but `CURRENT.md` or `.longtable/state.json` lacks a usable First Research Shape or Research Specification.",
119
121
  "",
120
122
  "## Core Flow",
121
123
  "",
@@ -127,8 +129,11 @@ function baseSkillSpecs(surface = "compact") {
127
129
  "6. Record each turn with MCP `append_interview_turn` when available.",
128
130
  "7. Continue until there is content-based readiness for a provisional `first_research_handle`; never stop merely because a fixed number of turns has passed.",
129
131
  "8. Store the First Research Shape with MCP `summarize_interview`.",
130
- "9. Use MCP `confirm_first_research_shape` for the final research-facing option UI checkpoint.",
131
- "10. If the researcher explicitly cancels the interview, use MCP `cancel_interview` when available. Do not cancel durable state for a casual topic change unless the researcher says to cancel the interview.",
132
+ "9. Store the fuller Research Specification with MCP `summarize_research_specification` when the interview has enough detail.",
133
+ "10. Show the Research Specification Preview explicitly before asking for confirmation.",
134
+ "11. Use MCP `confirm_research_specification` for the final research-facing option UI checkpoint.",
135
+ "12. Use MCP `confirm_first_research_shape` only when the researcher wants to stop at the shorter shape layer.",
136
+ "13. If the researcher explicitly cancels the interview, use MCP `cancel_interview` when available. Do not cancel durable state for a casual topic change unless the researcher says to cancel the interview.",
132
137
  "",
133
138
  "## Opening Questions",
134
139
  "",
@@ -201,13 +206,29 @@ function baseSkillSpecs(surface = "compact") {
201
206
  "- `nextAction`: one concrete next research move",
202
207
  "- `confidence`: low, medium, or high",
203
208
  "",
204
- "The final structured options belong only at this confirmation point. Show the options in the researcher's current language when possible, usually: save/confirm, ask one more question, revise, or keep open. If MCP elicitation is unavailable, ask the same options in plain text and keep the state update explicit.",
209
+ "The First Research Shape is the short handle layer. It is useful for early resume context, but it is not the full research specification.",
210
+ "",
211
+ "## Research Specification",
212
+ "",
213
+ "Before ending a substantive interview, convert the First Research Shape into a fuller Research Specification when the conversation provides enough material:",
214
+ "",
215
+ "- `title`: working specification title",
216
+ "- `researchDirection`: question, purpose, scope boundary, inclusion/exclusion criteria",
217
+ "- `constructOntology`: core constructs, distinctions, and terms that should not be collapsed",
218
+ "- `theoryAndFraming`: theory anchors, alternatives, and overreach risks",
219
+ "- `measurementCoding`: variables/constructs, evidence types, coding rules, and open standards",
220
+ "- `methodAnalysis`: design, analysis options, data sufficiency criteria, and unsettled choices",
221
+ "- `evidenceAccess`: required sources, Corpus and Access Plan, full-text/PDF route, TDM or institutional-access requirements, and evidence standards",
222
+ "- `epistemicAlignment`: researcher knowledge, project-state priority, AI inference limits, and the conflict-resolution rule",
223
+ "- `protectedDecisions`, `openQuestions`, `nextActions`, and `confidence`",
224
+ "",
225
+ "Show a clear `Research Specification Preview` in the researcher's current language before confirmation. Then call `confirm_research_specification`, whose structured options should usually be: save/confirm, ask one more question, revise a section, or keep open. If MCP elicitation is unavailable, ask the same options in plain text and keep the state update explicit.",
205
226
  "",
206
227
  "If a confirmed First Research Shape already exists, do not reopen the interview automatically. Summarize the existing shape and ask whether to continue from it, revise it, or explicitly start a new interview.",
207
228
  "",
208
229
  "## Fallback",
209
230
  "",
210
- "If MCP tools are unavailable, continue the natural-language interview in Codex, but state that durable LongTable state could not be written. Do not pretend a checkpoint or First Research Shape was recorded."
231
+ "If MCP tools are unavailable, continue the natural-language interview in Codex, but state that durable LongTable state could not be written. Do not pretend a checkpoint, First Research Shape, or Research Specification was recorded."
211
232
  ]
212
233
  }
213
234
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longtable/provider-codex",
3
- "version": "0.1.43",
3
+ "version": "0.1.45",
4
4
  "private": false,
5
5
  "description": "Codex adapter surface for LongTable",
6
6
  "type": "module",
@@ -15,9 +15,9 @@
15
15
  "typecheck": "tsc -p tsconfig.json --noEmit"
16
16
  },
17
17
  "dependencies": {
18
- "@longtable/checkpoints": "0.1.43",
19
- "@longtable/core": "0.1.43",
20
- "@longtable/setup": "0.1.43"
18
+ "@longtable/checkpoints": "0.1.45",
19
+ "@longtable/core": "0.1.45",
20
+ "@longtable/setup": "0.1.45"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^22.10.1",