@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.
- package/README.md +28 -32
- package/SKILL.md +24 -20
- package/dist/api.js +46 -8
- package/dist/constants.js +1 -1
- package/dist/recipes.js +19 -19
- package/dist/server.js +57 -35
- package/dist/vibecheck.js +1 -0
- package/package.json +1 -1
- package/recipes/chattermill-research-reflection.md +37 -58
- package/recipes/dovetail-research-reflection.md +16 -31
- package/recipes/great-question-research-reflection.md +80 -69
- package/recipes/maze-research-reflection.md +29 -47
- package/recipes/prolific-research-reflection.md +135 -170
- package/recipes/questionpro-research-reflection.md +19 -23
- package/recipes/spotify-listening-reflection.md +32 -97
- package/recipes/sprig-research-reflection.md +45 -49
- package/recipes/studio-somacheck-context.md +35 -68
- package/recipes/typeform-research-reflection.md +13 -24
- package/recipes/user-interviews-research-reflection.md +57 -46
|
@@ -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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
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
|
|
106
|
-
|
|
107
|
-
|
|
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.
|
|
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-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
63
|
-
|
|
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
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
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
|
|
194
|
-
|
|
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
|
|
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
|
-
- **
|
|
218
|
-
|
|
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
|
-
- [ ]
|
|
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
|
|
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)
|