@longtable/provider-codex 0.1.42 → 0.1.44

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 +38 -7
  2. package/package.json +4 -4
package/dist/skills.js CHANGED
@@ -67,6 +67,9 @@ function baseSkillSpecs(surface = "compact") {
67
67
  "- 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
68
  "- When research responsibility is about to shift, surface a Researcher Checkpoint before closure.",
69
69
  "- When changing LongTable product language, README positioning, or checkpoint policy, surface a Meta-Decision Checkpoint first.",
70
+ "- Stop before acting when the request would change the research question/scope, theory frame, measurement/coding standard, method design, or analysis strategy.",
71
+ "- For low-risk reversible work, proceed with explicit assumptions instead of interrupting.",
72
+ "- For LongTable product, hook, setup, release, or documentation work, do not create research-state QuestionRecords.",
70
73
  "",
71
74
  "## Panel And Team Behavior",
72
75
  "",
@@ -74,6 +77,15 @@ function baseSkillSpecs(surface = "compact") {
74
77
  "- Use provider-native subagents only when the current Codex runtime makes them available and the user's request clearly calls for multi-agent work.",
75
78
  "- If native subagents are unavailable, use LongTable's sequential panel fallback and make the fallback explicit in the technical record.",
76
79
  "- Do not expose hidden reasoning, tool logs, or private chain-of-thought. Expose a structured deliberation record instead.",
80
+ "- A structured deliberation record must include: roles consulted, each role's main claim or objection, the disagreement map, the decision options, the recommended option when defensible, and the exact researcher-facing question.",
81
+ "- If the panel converges, explain what changed the disagreement; if it does not converge, preserve the unresolved conflict instead of collapsing it into one confident synthesis.",
82
+ "",
83
+ "## Question Ordering",
84
+ "",
85
+ "- Ask and stop when missing context would decide a high-risk research commitment.",
86
+ "- Continue with stated assumptions when the missing context is low-risk, reversible, or purely presentational.",
87
+ "- Rank questions by importance and risk; prefer one grouped high-leverage question over a long questionnaire.",
88
+ "- When human knowledge, AI inference, and project state conflict, make the conflict visible and ask for human clarity before treating the direction as settled.",
77
89
  "",
78
90
  "## Project State",
79
91
  "",
@@ -82,7 +94,7 @@ function baseSkillSpecs(surface = "compact") {
82
94
  "- If a Researcher Checkpoint is needed, ask a concise question with meaningful options and wait for the researcher.",
83
95
  "- If a checkpoint allows `other`, make `other` visible instead of hiding it in state.",
84
96
  "- Treat provider-native question UI as transport; LongTable state records are the source of truth.",
85
- "- 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 `$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.",
86
98
  "- 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.",
87
99
  "- 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`.",
88
100
  "- 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.",
@@ -93,7 +105,7 @@ function baseSkillSpecs(surface = "compact") {
93
105
  },
94
106
  {
95
107
  name: "longtable-interview",
96
- description: "Use for `$longtable-interview`: create or continue a LongTable research-start interview inside Codex, then store a First Research Shape through MCP/state.",
108
+ 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.",
97
109
  body: [
98
110
  "## Purpose",
99
111
  "",
@@ -103,7 +115,7 @@ function baseSkillSpecs(surface = "compact") {
103
115
  "",
104
116
  "- The user invokes `$longtable-interview`.",
105
117
  "- The user wants to start a LongTable research workspace from inside Codex.",
106
- "- A workspace exists but `CURRENT.md` or `.longtable/state.json` lacks a usable First Research Shape.",
118
+ "- A workspace exists but `CURRENT.md` or `.longtable/state.json` lacks a usable First Research Shape or Research Specification.",
107
119
  "",
108
120
  "## Core Flow",
109
121
  "",
@@ -115,8 +127,11 @@ function baseSkillSpecs(surface = "compact") {
115
127
  "6. Record each turn with MCP `append_interview_turn` when available.",
116
128
  "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.",
117
129
  "8. Store the First Research Shape with MCP `summarize_interview`.",
118
- "9. Use MCP `confirm_first_research_shape` for the final research-facing option UI checkpoint.",
119
- "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.",
130
+ "9. Store the fuller Research Specification with MCP `summarize_research_specification` when the interview has enough detail.",
131
+ "10. Show the Research Specification Preview explicitly before asking for confirmation.",
132
+ "11. Use MCP `confirm_research_specification` for the final research-facing option UI checkpoint.",
133
+ "12. Use MCP `confirm_first_research_shape` only when the researcher wants to stop at the shorter shape layer.",
134
+ "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.",
120
135
  "",
121
136
  "## Opening Questions",
122
137
  "",
@@ -189,13 +204,29 @@ function baseSkillSpecs(surface = "compact") {
189
204
  "- `nextAction`: one concrete next research move",
190
205
  "- `confidence`: low, medium, or high",
191
206
  "",
192
- "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.",
207
+ "The First Research Shape is the short handle layer. It is useful for early resume context, but it is not the full research specification.",
208
+ "",
209
+ "## Research Specification",
210
+ "",
211
+ "Before ending a substantive interview, convert the First Research Shape into a fuller Research Specification when the conversation provides enough material:",
212
+ "",
213
+ "- `title`: working specification title",
214
+ "- `researchDirection`: question, purpose, scope boundary, inclusion/exclusion criteria",
215
+ "- `constructOntology`: core constructs, distinctions, and terms that should not be collapsed",
216
+ "- `theoryAndFraming`: theory anchors, alternatives, and overreach risks",
217
+ "- `measurementCoding`: variables/constructs, evidence types, coding rules, and open standards",
218
+ "- `methodAnalysis`: design, analysis options, data sufficiency criteria, and unsettled choices",
219
+ "- `evidenceAccess`: required sources, access requirements, and evidence standards",
220
+ "- `epistemicAlignment`: researcher knowledge, project-state priority, AI inference limits, and the conflict-resolution rule",
221
+ "- `protectedDecisions`, `openQuestions`, `nextActions`, and `confidence`",
222
+ "",
223
+ "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.",
193
224
  "",
194
225
  "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.",
195
226
  "",
196
227
  "## Fallback",
197
228
  "",
198
- "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."
229
+ "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."
199
230
  ]
200
231
  }
201
232
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longtable/provider-codex",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
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.42",
19
- "@longtable/core": "0.1.42",
20
- "@longtable/setup": "0.1.42"
18
+ "@longtable/checkpoints": "0.1.44",
19
+ "@longtable/core": "0.1.44",
20
+ "@longtable/setup": "0.1.44"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^22.10.1",