@longtable/provider-codex 0.1.50 → 0.1.52

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 +52 -6
  2. package/package.json +4 -4
package/dist/skills.js CHANGED
@@ -55,14 +55,16 @@ function baseSkillSpecs(surface = "compact") {
55
55
  "- `$longtable: deploy a research team to review this measurement plan, show the main disagreements, and ask me what decision should be recorded before you revise it.`",
56
56
  "- `$longtable: use editor, reviewer, methods, measurement, and voice perspectives to evaluate this manuscript section. Do not collapse disagreement too early.`",
57
57
  "- `$longtable-methods`, `$longtable-measure`, `$longtable-theory`, `$longtable-reviewer`, or `$longtable-voice` when the researcher explicitly wants that shortcut.",
58
- "- `$longtable-interview` to create or continue the first research-start interview.",
58
+ "- `$longtable-start` to create or continue the first research-start interview.",
59
+ "- `$longtable-interview` to run a structured follow-up interview after a Research Specification exists.",
59
60
  "",
60
61
  "## Routing Rules",
61
62
  "",
62
63
  "- `lt explore` keeps the problem open and asks clarifying or tension questions before recommending closure.",
63
64
  "- `lt review` starts with the strongest weakness, objection, or missing evidence.",
64
65
  "- `lt panel` creates a visible multi-role review with synthesis, role opinions, conflict summary, and a decision prompt.",
65
- "- `$longtable-interview` runs the provider-native LongTable start interview. It replaces the old CLI start questionnaire as the primary research-start surface.",
66
+ "- `$longtable-start` runs the provider-native LongTable start interview. It replaces the old CLI start questionnaire as the primary research-start surface.",
67
+ "- `$longtable-interview` is post-start. If `.longtable/state.json` or `CURRENT.md` lacks a usable Research Specification, route to `$longtable-start` before offering option-first follow-up choices.",
66
68
  "- Natural references to methods, measurement, theory, reviewer, editor, ethics, venue, or voice should foreground the matching LongTable role.",
67
69
  "- The compact visible shortcut set is methods, measure, theory, reviewer, and voice. Other roles remain available through this router when the request calls for them.",
68
70
  "- When research responsibility is about to shift, surface a Researcher Checkpoint before closure.",
@@ -96,7 +98,8 @@ function baseSkillSpecs(surface = "compact") {
96
98
  "- Treat provider-native question UI as transport; LongTable state records are the source of truth.",
97
99
  "- 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
100
  "- 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; First Research Shape is only a shorter handle/resume layer.",
101
+ "- For `$longtable-start`, use natural-language turns for the interview and reserve MCP option UI for the final research-facing Research Specification checkpoint; First Research Shape is only a shorter handle/resume layer.",
102
+ "- For `$longtable-interview`, use option-first follow-up choices only after a usable Research Specification exists. Always include an escape hatch such as Other, free text, or one open follow-up question.",
100
103
  "- 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.",
101
104
  "- 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`.",
102
105
  "- 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.",
@@ -106,8 +109,8 @@ function baseSkillSpecs(surface = "compact") {
106
109
  ]
107
110
  },
108
111
  {
109
- name: "longtable-interview",
110
- description: "Use for `$longtable-interview`: create or continue a LongTable research-start interview inside Codex, then store a Research Specification through MCP/state, with First Research Shape kept as an optional short handle layer.",
112
+ name: "longtable-start",
113
+ description: "Use for `$longtable-start`: create or continue a LongTable research-start interview inside Codex, then store a Research Specification through MCP/state, with First Research Shape kept as an optional short handle layer.",
111
114
  body: [
112
115
  "## Purpose",
113
116
  "",
@@ -115,7 +118,8 @@ function baseSkillSpecs(surface = "compact") {
115
118
  "",
116
119
  "## When To Use",
117
120
  "",
118
- "- The user invokes `$longtable-interview`.",
121
+ "- The user invokes `$longtable-start`.",
122
+ "- The user invokes `$longtable-interview` but the workspace has no usable Research Specification.",
119
123
  "- The user wants to start a LongTable research workspace from inside Codex.",
120
124
  "- A workspace exists but `CURRENT.md` or `.longtable/state.json` lacks a usable Research Specification, or has only a First Research Shape.",
121
125
  "",
@@ -230,6 +234,48 @@ function baseSkillSpecs(surface = "compact") {
230
234
  "",
231
235
  "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."
232
236
  ]
237
+ },
238
+ {
239
+ name: "longtable-interview",
240
+ description: "Use for `$longtable-interview`: run an option-first LongTable follow-up interview after a usable Research Specification exists; route to `$longtable-start` when no spec exists.",
241
+ body: [
242
+ "## Purpose",
243
+ "",
244
+ "Run a post-start LongTable interview inside Codex. This skill is for structured follow-up decisions after the research has a usable Research Specification.",
245
+ "",
246
+ "## Required Routing",
247
+ "",
248
+ "- First inspect `CURRENT.md` and `.longtable/state.json` when available.",
249
+ "- If no usable Research Specification exists, route to `$longtable-start` immediately.",
250
+ "- If only a First Research Shape exists, route to `$longtable-start` and continue into the next Research Specification question or preview.",
251
+ "- Do not run an option-only interview before the Research Specification exists.",
252
+ "",
253
+ "## When To Use",
254
+ "",
255
+ "- The user invokes `$longtable-interview` and a usable Research Specification exists.",
256
+ "- The user wants to revise, extend, or resolve a decision in an existing Research Specification.",
257
+ "- The user needs a bounded follow-up interview around a checkpoint, spec patch, evidence boundary, method choice, coding rule, or protected decision.",
258
+ "",
259
+ "## Core Flow",
260
+ "",
261
+ "1. Read the current Research Specification and identify the decision or section being interviewed.",
262
+ "2. Present a small option-first choice set tied to the current specification.",
263
+ "3. Include an escape hatch such as `Other`, free text, or `ask one open question first`.",
264
+ "4. If the answer changes the specification, propose or apply a Research Specification patch through MCP/state when available.",
265
+ "5. Record the resulting decision as a `DecisionRecord` or explicit open tension; never silently overwrite conflicting research commitments.",
266
+ "",
267
+ "## Option UI Policy",
268
+ "",
269
+ "- Use MCP/native structured elicitation when available.",
270
+ "- Use terminal selector only when the runtime has interactive TTY support.",
271
+ "- Use numbered/plain text fallback when structured UI is unavailable.",
272
+ "- Treat UI as transport. The durable product contract remains `QuestionRecord -> DecisionRecord`.",
273
+ "- Do not require tmux. If a future Codex popup transport is tmux-only, label it as optional and provide fallback.",
274
+ "",
275
+ "## Fallback",
276
+ "",
277
+ "If MCP tools are unavailable, continue in Codex with explicit options and state that durable LongTable state could not be written."
278
+ ]
233
279
  }
234
280
  ];
235
281
  const fullOnly = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longtable/provider-codex",
3
- "version": "0.1.50",
3
+ "version": "0.1.52",
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.50",
19
- "@longtable/core": "0.1.50",
20
- "@longtable/setup": "0.1.50"
18
+ "@longtable/checkpoints": "0.1.52",
19
+ "@longtable/core": "0.1.52",
20
+ "@longtable/setup": "0.1.52"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^22.10.1",