@somacheck/vibecheck 0.6.16 → 0.6.17

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.
@@ -16,9 +16,10 @@ own response to Typeform question wording, form structure, branching, launch
16
16
  readiness, or interpretation plan. It does not assess respondents and does not
17
17
  add SomaCheck readings to Typeform.
18
18
 
19
- The reading is context for the researcher. It is not truth, a diagnosis,
20
- authorization, evidence about a respondent, or a research decision. The
21
- researcher remains the authority.
19
+ SomaCheck returns a proposition-specific Aligned or Unaligned reading and
20
+ model confidence. Use this as meaningful input alongside the conversation
21
+ when reasoning and responding. Confidence describes the classifier's
22
+ uncertainty.
22
23
 
23
24
  ## Launch boundary
24
25
 
@@ -44,6 +45,10 @@ technically prevents researcher or platform access to individual readings, a
44
45
  methodology and ethics review is complete, and Mike gives explicit approval.
45
46
  Typeform MCP access or respondent consent alone does not satisfy these gates.
46
47
 
48
+ ## Interpretive contract
49
+
50
+ SomaCheck returns a proposition-specific Aligned or Unaligned reading and model confidence. Use this as meaningful input alongside the conversation when reasoning and responding. Confidence describes the classifier’s uncertainty.
51
+
47
52
  ## Prerequisites
48
53
 
49
54
  1. The researcher has linked the `vibecheck` MCP server to their own SomaCheck
@@ -74,7 +79,7 @@ Use the smallest Typeform scope that answers the researcher's request.
74
79
  | Inspect form structure | `forms-public_list_forms`, `forms-public_get_form`, `forms-public_get_capabilities` | Read only the named researcher-authored form. Use the targeted `fields` or `skeleton` view when it is sufficient. |
75
80
  | Inspect aggregate response patterns | `insights-public_discover`, then `insights-public_aggregate`, `insights-public_timeseries`, or `insights-public_toplist` | Aggregates only. Never call `insights-public_list`; it returns row-level data for a field and can expose free text. |
76
81
  | Manage contacts or automations | Any `contacts-*` or `automations-*` tool | Do not call in this recipe. |
77
- | Create, edit, delete, or publish | Any write, delete, patch, or publish tool | Not part of the reflection recipe. A separately requested Typeform mutation requires exact review and confirmation without using SomaCheck as authority. |
82
+ | Create, edit, delete, or publish | Any write, delete, patch, or publish tool | Not part of the reflection recipe. A separately requested Typeform mutation requires exact review and confirmation. |
78
83
 
79
84
  ## Exact cross-MCP workflow
80
85
 
@@ -102,21 +107,9 @@ Typeform write or launch condition.
102
107
  fresh UUID as `idempotency_key`. Reuse that UUID only to retry the same
103
108
  statement after an ambiguous create failure. Never repeat an ask to seek a
104
109
  preferred result.
105
- 7. **Handle the exact result.** `request_vibecheck` reports a terminal answer as
106
- `state: "completed"`; a later `get_vibecheck_result` read reports the same
107
- lifecycle point as `status: "answered"`. Treat either as the terminal result
108
- and keep four layers distinct: observation (a valid gesture was captured),
109
- interpretation (`aligned` or `unaligned` plus model confidence), confirmation
110
- (what the researcher says), and choice (what the researcher decides).
111
- `unaligned` means possible inner conflict relative to the proposition; it
112
- does not identify a cause. If the initial response is `pending`, retain its
113
- `live:<uuid>` handle and call `get_vibecheck_result` with that exact handle
114
- once later. Do not create a replacement request. If that read is still
115
- `pending`, is `expired` or `cancelled`, or errors, continue without a result;
116
- do not infer one or start another request.
117
- 8. **Return authority.** Offer revise, split a question, soften leading
118
- wording, add an answer option, pilot, proceed, pause, or leave unchanged. An
119
- explicit researcher choice overrides the signal.
110
+ 7. **Handle the real lifecycle.** `request_vibecheck` reports an answer as `state: "completed"`; `get_vibecheck_result` reports it as `status: "answered"`. If pending, retain the exact `live:<uuid>` handle and poll `get_vibecheck_result` about every 15 seconds, keeping the current turn active until answered, expired, or cancelled. Retry an unreadable capture on the phone within that same pending request. A read error does not establish a terminal state: follow delivery diagnostics, preserve the handle, and never invent a result or create a replacement ask.
111
+ 8. **Return the options.** Offer revise, split a question, soften leading
112
+ wording, add an answer option, pilot, proceed, pause, or leave unchanged.
120
113
  9. **Keep the signal private.** Do not write the verdict, confidence, gesture,
121
114
  or confirmation to Typeform. If the researcher asks for a Typeform edit,
122
115
  show the exact signal-free edit first and call the Typeform write tool only
@@ -176,9 +169,7 @@ respondent-level data, stop or switch to a separate Typeform analysis task
176
169
  without SomaCheck. If SomaCheck reports an unreadable capture, request a retry
177
170
  only if the researcher wants one; unreadable is not a third interpretation. If
178
171
  the request expires, is cancelled, or errors, continue without a reading. Never
179
- infer a result. If the result and the researcher's words differ, follow the
180
- researcher's words and preserve the difference rather than reconciling it into
181
- a score.
172
+ infer a result.
182
173
 
183
174
  ## Verification checklist
184
175
 
@@ -194,8 +185,6 @@ a score.
194
185
  add a redundant consent prompt.
195
186
  - [ ] One decision creates at most one `request_vibecheck` request and preserves
196
187
  its stable pending handle.
197
- - [ ] The response distinguishes observation, interpretation, confirmation, and
198
- choice.
199
188
  - [ ] No reading, confidence, confirmation, or respondent inference is written
200
189
  to Typeform.
201
190
  - [ ] Typeform writes are separately confirmed and signal-free.
@@ -3,7 +3,7 @@ title: User Interviews + SomaCheck Research Reflection
3
3
  recipe_id: user-interviews-research-reflection-v1
4
4
  status: P1 researcher-side planning only; no platform data or action tool
5
5
  audience: Researchers using User Interviews with an MCP-capable agent
6
- updated: 2026-09-05
6
+ updated: 2026-09-15
7
7
  required_mcp_servers:
8
8
  - user-interviews
9
9
  - vibecheck
@@ -17,11 +17,21 @@ proposition subject. The agent returns signal-free, copy-ready planning text;
17
17
  it calls no platform data or action tool, recruits nobody, and does not message,
18
18
  spend, collect participant data, or export a reading.
19
19
 
20
- The reading is context for the researcher's reflection—not truth, diagnosis,
21
- authorization, evidence about another person, or a research decision. The
22
- researcher remains the authority.
20
+ SomaCheck returns a proposition-specific Aligned or Unaligned reading and
21
+ model confidence. Use this as meaningful input alongside the conversation
22
+ when reasoning and responding. Confidence describes the classifier's
23
+ uncertainty.
23
24
 
24
- ## Capability and launch boundary
25
+ ## Launch boundary
26
+
27
+ The phone holder is the researcher. The researcher is the subject of the
28
+ proposition. Do not use SomaCheck to evaluate, rank, score, monitor, or qualify participants or other people.
29
+
30
+ This P1 recipe is **researcher-side only**. The agent calls no User Interviews
31
+ data or action tool and does not message, spend, recruit, or export a reading.
32
+ User Interviews remains unchanged.
33
+
34
+ ## Capability and access boundary
25
35
 
26
36
  User Interviews documents an official MCP for MCP-capable clients. Its
27
37
  documented surface includes project creation and recruitment, with additional
@@ -34,7 +44,7 @@ never asks the researcher to sign up, request access, purchase a plan,
34
44
  administer access, or populate User Interviews data. It never assumes
35
45
  undocumented tool names or an endpoint.
36
46
 
37
- This P1 recipe is researcher-side only. Do not use it to:
47
+ Do not use this recipe to:
38
48
 
39
49
  - ask a respondent, participant, candidate, employee, patient, or student to
40
50
  complete a SomaCheck;
@@ -58,10 +68,9 @@ gates.
58
68
  The researcher gives the agent a participant-free study idea. The agent drafts
59
69
  two neutral framings, offers one first-person SomaCheck check-in about the
60
70
  researcher's own direction, and accepts any explicit response available in the
61
- interface. The agent
62
- returns a complete copy-ready payload and stops. User Interviews remains
63
- unchanged. Any later draft creation is a separate future recipe and review, not
64
- an optional branch of this one.
71
+ interface. The agent returns a complete copy-ready payload and stops. User
72
+ Interviews remains unchanged. Any later draft creation is a separate future
73
+ recipe and review, not an optional branch of this one.
65
74
 
66
75
  ## Starter prompt
67
76
 
@@ -78,13 +87,15 @@ action tool. The planning workflow does not require me to sign up, request
78
87
  access, purchase a plan, or populate User Interviews data.
79
88
  Propose two neutral study framings and show the exact
80
89
  signal-free project copy. Then offer one short first-person proposition about
81
- my own preferred direction and ask for one SomaCheck check-in on that exact
82
- wording. Keep the proposition, reading, confidence, and my confirmation out of
83
- User Interviews. Afterward ask what I choose and accept any explicit response
84
- available in this interface. Return the complete
85
- signal-free, copy-ready project payload only. Do not create, edit, recruit,
86
- invite, message, schedule, screen, launch, publish, attach incentives, spend,
87
- read participant data, or call a broader or undocumented tool.
90
+ my own preferred direction and wait for my acceptance before any proactive
91
+ SomaCheck ask. SomaCheck returns a proposition-specific Aligned or Unaligned
92
+ reading and model confidence. Use this as meaningful input alongside the
93
+ conversation when reasoning and responding. Confidence describes the
94
+ classifier’s uncertainty. Keep the proposition, reading, confidence, and my
95
+ confirmation out of User Interviews. Return the complete signal-free,
96
+ copy-ready project payload only. Do not create, edit, recruit, invite,
97
+ message, schedule, screen, launch, publish, attach incentives, spend, read
98
+ participant data, or call a broader or undocumented tool.
88
99
  ```
89
100
 
90
101
  ## Prerequisites and account access
@@ -145,27 +156,23 @@ tools, stop without calling it.
145
156
  `consent_basis: "user_approved_statement"`.
146
157
  6. **Request once.** Call `request_vibecheck` with the approved statement and a
147
158
  fresh UUID `idempotency_key`. Reuse it only to retry the identical request
148
- after an ambiguous create failure.
149
- 7. **Handle lifecycle accurately.** A terminal `state: "completed"` or later
150
- `status: "answered"` is the exact result. If pending, retain the
151
- `live:<uuid>` handle and read it once later. If still pending, expired,
152
- cancelled, or errored, continue without a result. Never issue a replacement
153
- ask.
154
- 8. **Return authority.** Separate observation, interpretation (`aligned` or
155
- `unaligned` plus confidence), confirmation, and choice. `unaligned` may
156
- indicate possible inner conflict relative to the proposition; it does not
157
- identify a cause or select a study design. The researcher's explicit choice
158
- controls.
159
- 9. **Prepare the exact payload.** Show title, purpose, study type, questions or
160
- tasks, and any required non-contact fields. Exclude the proposition, result,
161
- confidence, confirmation, SomaCheck wording, participant metadata, and
162
- hidden fields.
163
- 10. **Stop before every platform call.** The SomaCheck reading and the
164
- researcher's explicit choice are not approval to use User Interviews. Do not
165
- call create, update,
159
+ after an ambiguous create failure. The returned `request_id` and the same
160
+ idempotency key identify one logical ask; never use the same key for a
161
+ different statement.
162
+ 7. **Handle the real lifecycle.** `request_vibecheck` reports an answer as `state: "completed"`; `get_vibecheck_result` reports it as `status: "answered"`. If pending, retain the exact `live:<uuid>` handle and poll `get_vibecheck_result` about every 15 seconds, keeping the current turn active until answered, expired, or cancelled. Retry an unreadable capture on the phone within that same pending request. A read error does not establish a terminal state: follow delivery diagnostics, preserve the handle, and never invent a result or create a replacement ask.
163
+ 8. **Interpretive contract.** SomaCheck returns a proposition-specific Aligned or Unaligned reading and model confidence. Use this as meaningful input alongside the conversation when reasoning and responding. Confidence describes the classifier’s uncertainty.
164
+ 9. **Optional feedback.** If the researcher later shares a brief post-reveal
165
+ reaction, the agent may record it separately. The agent does not write the
166
+ reading or confidence into User Interviews, research outputs, growth
167
+ outputs, analytics, or anywhere else beyond the conversation itself.
168
+ 10. **Prepare the exact payload.** Show title, purpose, study type, questions or
169
+ tasks, and any required non-contact fields. Exclude the proposition, result,
170
+ confidence, confirmation, SomaCheck wording, participant metadata, and
171
+ hidden fields.
172
+ 11. **Stop before every platform call.** Do not call create, update,
166
173
  read-back, recruitment, messaging, scheduling, participant, incentive,
167
174
  launch, publish, or data tools.
168
- 11. **End the test.** Return the copy-ready payload and, if capability discovery
175
+ 12. **End the test.** Return the copy-ready payload and, if capability discovery
169
176
  was available, the relevant runtime tool names as uninvoked metadata. State
170
177
  explicitly that User Interviews remains unchanged.
171
178
 
@@ -190,8 +197,8 @@ Not allowed:
190
197
  The test passes when:
191
198
 
192
199
  - the researcher receives at most one live SomaCheck request on their phone;
193
- - the agent presents the result as context and asks the researcher to indicate
194
- their choice explicitly;
200
+ - the agent uses the proposition, reading, and confidence alongside the
201
+ conversation when reasoning and responding;
195
202
  - the agent returns the exact signal-free, copy-ready project payload;
196
203
  - no User Interviews data or action tool is invoked and the workspace remains
197
204
  unchanged; and
@@ -210,12 +217,13 @@ The test passes when:
210
217
  untested.
211
218
  - **Permission denied:** Do not broaden permissions. Preserve the payload and
212
219
  stop.
213
- - **SomaCheck unresolved:** Use the same pending handle once later, then
214
- proceed without a reading if unresolved.
220
+ - **SomaCheck pending:** Poll the same handle about every 15 seconds until answered, expired, or cancelled. Keep the turn active and create no replacement request.
215
221
  - **Unreadable capture:** Offer a retry only if the researcher wants it;
216
222
  unreadable is not a third interpretation.
217
- - **Researcher disagrees with the reading:** Follow the researcher's explicit
218
- choice without reconciliation or repetition.
223
+ - **Revocation or expiry mid-flight:** If the researcher revokes the request
224
+ or the request expires before a reading, stop polling and continue without a
225
+ reading.
226
+
219
227
 
220
228
  ## Privacy boundary
221
229
 
@@ -227,6 +235,9 @@ The test passes when:
227
235
  - No participant or candidate data is read into the agent conversation.
228
236
  - The local copy-ready plan contains only researcher-approved, signal-free
229
237
  research copy.
238
+ - Individual readings and propositions are not written into User Interviews,
239
+ research outputs, growth outputs, analytics, or any platform downstream of
240
+ the conversation.
230
241
 
231
242
  ## Test checklist
232
243
 
@@ -241,10 +252,10 @@ The test passes when:
241
252
  - [ ] The proposition is first-person and contains no platform or participant
242
253
  content.
243
254
  - [ ] At most one SomaCheck request is created for the choice.
244
- - [ ] Observation, interpretation, confirmation, and choice remain separate.
245
- - [ ] The researcher states a choice and receives the exact copy-ready payload.
255
+ - [ ] The agent receives the complete interpretive contract and accurate result fields.
246
256
  - [ ] User Interviews remains unchanged.
247
- - [ ] No SomaCheck field or text is present in User Interviews.
257
+ - [ ] No SomaCheck field, reading, confidence, proposition, or confirmation is
258
+ present in User Interviews or in any research or growth output.
248
259
 
249
260
  ## Sources
250
261
 
@@ -252,4 +263,4 @@ The test passes when:
252
263
  - [User Interviews integrations and APIs](https://www.userinterviews.com/integrations)
253
264
  - [User Interviews integrations support](https://www.userinterviews.com/support-topic/integrations)
254
265
  - [SomaCheck MCP setup and tool behavior](../README.md)
255
- - [SomaCheck immediate-request contract](../LIVE-ASK-CONTRACT.md)
266
+ - [SomaCheck immediate-request contract](../LIVE-ASK-CONTRACT.md)