QUBE Survey Workbench

Use QUBE Survey Workbench in Visual Studio Code to write and test QubeScript locally. Save new questionnaires as .qube. Existing Odin questionnaires use .odin and a separate parser and runtime.

Local editing and interview testing are free and require no QubeSurvey sign-in. The MCP-enabled beta Workbench described here is supplied separately. The public Odin extension download, version 0.7.12, does not contain this MCP setup. The locally qualified Workbench 0.8.5 and Survey MCP 0.1.5 are not yet published. Ask the person who invited you to the beta for the complete Workbench VSIX or portable MCP archive. They can also arrange hosted Account and editor-seat access. Installing the local package does not require a subscription. A public self-service download and trial are still being prepared.

Install and run a first interview

  1. Use VS Code 1.102 or later. Open Extensions, its … menu, then Install from VSIX…. Select the beta VSIX supplied to you.
  2. Open a folder for your questionnaire. Create feedback.qube using the QubeScript quickstart.
  3. Open the Problems panel. Resolve the reported errors; inspect warnings before deciding that they are acceptable for your questionnaire.
  4. With the script active, run QUBE: Run Interview from the Command Palette. The local interview opens beside the source.
  5. Test with invented answers. Check a normal completion, every branch, required and skipped answers, exclusive choices and a correction using Back. Compare the result with what you expected before changing the script.

Keep the source file as your editable questionnaire. A browser upload creates an immutable version; it does not turn the browser into a source editor.

Find and change the source

Both languages provide syntax highlighting, an outline, folding, a questionnaire navigator and parser diagnostics. Completion, hover, Go to Definition, Find References and Rename help you work with declared questions and other entities. QubeScript also exposes its option domains, structs, repeats and routes.

Use Rename for an existing declared identifier rather than changing only one use of it. Review the resulting source changes and rerun the affected paths. An error-free parser result establishes supported syntax and semantic checks; it does not establish questionnaire design quality or complete behavioral tests.

The language reference describes QubeScript syntax. The examples provide fictional studies to inspect and run.

Work with your AI assistant

  1. Open a trusted workspace and run QUBE: Show AI Setup.
  2. Run MCP: List Servers, select QUBE Survey, and start it when prompted. VS Code controls server startup and tool permissions.
  3. Select the QUBE Survey tools in your MCP-capable chat. Ask the assistant to retrieve qube.workflow.get and qss.guide.get, edit your source, and run qss.check on the complete changed script.
  4. Review the source diff and run the interview yourself against explicit expected answers and outcomes. Upload only the version you have reviewed.

Use your own configured assistant and model. The assistant’s authentication, source sharing and model charges follow that client’s settings. The bundled MCP checks supplied source locally; it does not supply a model or read the Workbench’s hosted sign-in token in the default local setup. The candidate Fieldwork bridge below keeps that token in the editor host. See Survey MCP for the capability inventory, other clients and optional private capabilities.

The VS Code provider uses the extension host’s Node runtime. It needs no separate Node installation or repository checkout. It is withheld in untrusted workspaces. Set qube.ai.mcp.enabled to false in User Settings to disable it.

Allow scoped Fieldwork reads in the candidate

The local candidate adds Fieldwork reads to the same MCP. It is not in the public Odin extension 0.7.12; Workbench 0.8.5 remains unpublished. Use a supplied candidate that includes this feature. It does not enable hosted quotas in the deployed beta or add write tools.

  1. Keep the configured destination at exactly https://test.qubesurvey.com and open a trusted workspace. Custom endpoints and base paths remain local-only for this MCP integration.
  2. Run QUBE: Allow MCP Fieldwork Reads. Read the confirmation about sharing authorized progress, quota conditions/counts and setup history with your assistant, then choose Allow reads.
  3. The command enables qube.ai.mcp.fieldwork.enabled in User Settings and uses the existing browser device authorization if a connection is needed. Cancelling or failing sign-in does not grant consent.
  4. Refresh the QUBE Survey tools in your assistant. Call fieldwork.accounts.list with {} and explicitly choose a returned Account ID for fieldwork.runs.list; choose a returned Run UUID for fieldwork.runs.get, fieldwork.quotas.get or fieldwork.quota_setup.get. See Survey MCP for the exact result and permission boundaries.

An Account ID is a bare UUID or billing_<UUID>. Copy it exactly, including its prefix and letter case. Run IDs remain UUIDs. Account discovery returns only IDs and names, which may be identical; it selects nothing or grants Run access. More than 100 Accounts returns an unavailable result.

The application setting defaults to false. It limits whether consent can be used; changing it to true alone grants nothing. Consent belongs to this window and current connection. Another window needs its own confirmation. The editor keeps the ordinary session bearer in SecretStorage and host memory; the MCP child receives a revocable loopback capability instead of that bearer. Current permissions still apply: scoped View Run progress access does not grant quota or setup reads, which require current paid owner/editor access.

Use QUBE: Disable MCP Fieldwork Reads to revoke the bridge while keeping local script tools. Disconnect, a changed destination or credential, and window reload also invalidate access. Run Allow again for the intended connection. Data already returned to the assistant cannot be recalled; Disable does not claim server-wide sign-out. Discovery never prompts or silently signs in.

The tools inspect current authorized state. Use the reviewed Fieldwork UI to configure, recover or change a Run. Hosted MCP OAuth and qualification of other assistant clients/platforms remain separate.

Upload a reviewed version

Run QUBE: Open in QUBE Survey (online). Authorize through the browser when prompted, then choose a Script where you have editing access. Creating a new Script requires an explicit eligible Account choice followed by a name. The selected Account owns the Script; see People, access and billing.

The command uploads the current editor source as a new immutable version and opens it for hosted testing. It supports .qube and .odin. The configured destination defaults to https://test.qubesurvey.com; change qube.qubeSurvey.baseUrl only for an intended authorized environment. Hosted authorization is stored in VS Code’s SecretStorage. Use QUBE: Disconnect from QUBE Survey to remove the local connection.

Testing a version does not create a live Run response. Continue with Fieldwork to prepare an activity and test its access and exports.

Existing Odin questionnaires

Odin has additional commands for fixing/unfixing data positions, renumbering questions, extracting translation text and appending language sections. Use QUBE: Reproduce Ticket (online) for an authorized Odin ticket’s exact reported source and journey. QUBE: Mark Ticket Fixed with Current Script (online) uploads a proposed Odin fix for human verification; it does not approve it.

These tools do not establish full NIPO runtime compatibility. In particular, navigation to an Odin *MERGE file does not establish merged runtime execution. Test the specific supported behavior you need and verify delivery assumptions in the intended NIPO environment. QSS and Odin retain separate semantics.

If something is unavailable

  • No interview command: make the .qube or .odin editor active and check its language selection. Run QUBE: Show Extension Status for installation status.
  • No MCP server: use QUBE: Show AI Setup; check workspace trust, the MCP setting and whether the supplied package includes its server files.
  • No eligible Account or upload permission: ask the owner to check account access, plan, editor seat and Script role. Local editing remains available.
  • A runtime failure: retain the source and the smallest failing answer path. Use Testing and Tickets to report expected behavior.