{"ok":true,"site":{"host":"sensemaking-studio.motywang.workers.dev","url":"https://sensemaking-studio.motywang.workers.dev/","type":"live","desc":"A human-agent workspace for qualitative interview analysis.","tools":[{"name":"list_themes","kind":"answer","impl":"imperative","description":"Start here. List every theme in the open analysis with its definition, inclusion and exclusion criteria, evidence counts, and participant coverage. Use the returned IDs with the other tools.","title":"List research themes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"include_archived":{"type":"boolean","description":"Include themes archived by a merge or split."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_current_selection","kind":"answer","impl":"imperative","description":"Inspect the excerpts and themes currently selected by the researcher on the shared qualitative analysis canvas.","title":"Get current research selection","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_excerpts","kind":"answer","impl":"imperative","description":"Find interview excerpts by free text, theme, participant, or coding status. Use it to gather evidence before proposing an analytic change.","title":"Search interview excerpts","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free text matched against excerpt text and its transcript context."},"theme_id":{"type":"string","description":"Restrict to excerpts currently coded to this theme."},"participant_id":{"type":"string","description":"Restrict to one participant, for example P04."},"status":{"type":"string","enum":["unassigned","confirmed","candidate","boundary","rejected"],"description":"Restrict to one coding status."},"unassigned_only":{"type":"boolean","description":"Return only excerpts with no theme membership."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum excerpts to return."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_excerpt","kind":"act","impl":"imperative","description":"Inspect an interview excerpt with participant provenance, transcript context, current theme, validation state, and analytic history.","title":"Inspect research excerpt","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"excerpt_id":{"type":"string","description":"Stable excerpt identifier, for example E193."}},"required":["excerpt_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_theme","kind":"act","impl":"imperative","description":"Inspect a qualitative research theme including its definition, evidence states, participant coverage, memos, exclusions, and analytic history.","title":"Inspect research theme","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"theme_id":{"type":"string","description":"Stable semantic theme identifier."}},"required":["theme_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_boundary_cases","kind":"answer","impl":"imperative","description":"Rank excerpts that are relevant to two candidate themes and have a small score margin. Low-relevance Neither cases are excluded.","title":"Find semantic boundary cases","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"theme_a_id":{"type":"string","description":"First candidate theme ID."},"theme_b_id":{"type":"string","description":"Second candidate theme ID."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum candidates to return."}},"required":["theme_a_id","theme_b_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_review_queue","kind":"answer","impl":"imperative","description":"Read what currently awaits researcher adjudication for a theme pair, alongside the decisions the researcher has already made and how often those matched the agent ranking. There is deliberately no agent tool that decides a boundary case.","title":"Get the human review queue","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"theme_a_id":{"type":"string","description":"First candidate theme ID."},"theme_b_id":{"type":"string","description":"Second candidate theme ID."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum pending cases to return."}},"required":["theme_a_id","theme_b_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_analysis_history","kind":"answer","impl":"imperative","description":"Read the provenance log of the analysis: which decisions were made by the researcher, which by an agent, in what order, and with what stated rationale. Use it to avoid repeating or contradicting a human judgment.","title":"Get analytic history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"actor":{"type":"string","enum":["human","agent"],"description":"Restrict the log to one actor."},"excerpt_id":{"type":"string","description":"Restrict the log to one excerpt."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum events to return, newest first."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"propose_boundary_cases","kind":"act","impl":"imperative","description":"Add ranked Agent-proposed cases to human review. This never confirms theme membership or overwrites a human decision.","title":"Propose semantic boundary cases","inputSchema":{"type":"object","properties":{"theme_a_id":{"type":"string","description":"First candidate theme ID."},"theme_b_id":{"type":"string","description":"Second candidate theme ID."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum candidates to propose."}},"required":["theme_a_id","theme_b_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_researcher_attention","kind":"act","impl":"imperative","description":"Move the researcher's selection on the shared canvas to a specific excerpt or theme so a human can look at the evidence being discussed. This changes what is on screen; it never changes the analysis.","title":"Focus researcher attention","inputSchema":{"type":"object","properties":{"excerpt_id":{"type":"string","description":"Excerpt to select and reveal on the canvas."},"theme_id":{"type":"string","description":"Theme to select. Defaults to the excerpt's current theme."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_excerpt","kind":"act","impl":"imperative","description":"Change explicit theme membership for an excerpt through the same domain command used by researcher drag actions. Use null to remove it from its current theme for boundary review.","title":"Move research excerpt","inputSchema":{"type":"object","properties":{"excerpt_id":{"type":"string","description":"Stable excerpt identifier."},"destination_theme_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Destination theme ID, or null to remove the excerpt from a theme."},"rationale":{"type":"string","description":"Concise analytic reason for the change."},"trigger_event_id":{"type":"string","description":"Optional prior event that prompted this change."}},"required":["excerpt_id","destination_theme_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_theme","kind":"act","impl":"imperative","description":"Create a draft qualitative research theme with a semantic definition and optional inclusion or exclusion criteria. Agent-created themes remain proposals until human confirmation.","title":"Create research theme","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Short analytic theme name."},"description":{"type":"string","description":"What the theme means analytically."},"inclusion_criteria":{"type":"array","items":{"type":"string"}},"exclusion_criteria":{"type":"array","items":{"type":"string"}}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_analytic_memo","kind":"act","impl":"imperative","description":"Attach a traceable analytic memo to an excerpt, theme, or the overall analysis.","title":"Add analytic memo","inputSchema":{"type":"object","properties":{"target_type":{"type":"string","enum":["excerpt","theme","analysis"]},"target_id":{"type":"string"},"text":{"type":"string","description":"Memo grounded in the available research evidence."}},"required":["target_type","target_id","text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","apiSurface":"spec","toolCount":13}}