Documentation

Working live

What the inspector itself offers while your agent works — live, keyboard-first, and with one clear editing boundary.

Getting around: four items, one model

The upper sidebar has exactly four items: Jobs · Methodologies · Formats · Personas (Activity, settings & docs live in the bottom-left user menu). One mental model runs the whole app: job → phases → rows; click = slide-over. The job is the home — everything a study produces or uses (open questions, references, councils, reports, prototypes, sessions, surveys, hypotheses, decisions, notes, assets) is a row in its phase. Formats is the cross-job browser over those same primitives. It is grouped as a work map: Frame (open questions, hypotheses), Material (references, assets, prototypes), Ask (councils, surveys), Test (sessions), Capture (notes), and Conclude (reports, decisions). Formats refine a primitive without creating new things: red-team and head-to-head are council formats, website/external prototype/A-B are reference formats, and prototype forms include apps, flows, dashboards, cards, comparisons, models, journeys and freeform canvases for rooms, maps, boards and simulations. Naming rule: References are source links or snapshots placed in the room; an external prototype stays a reference when Sonaloop only points at it. Prototypes are testable project objects Sonaloop can run, render or pair with sessions. A/B variants are stimuli; the actual test result lives in a council or session. Assets are real files; Sessions are usage traces. Assets — input files received (evidence, attached via MCP) and documents the software generated (deliverables) — show up everywhere as file cards: type badge or image thumbnail, filename with extension, size · date, exactly one download/open icon; they have their own detail pages with provenance (source, direction, superseded versions). Inside a job, incoming files stay visible as an Assets group in the outline; all assets are also available in the Formats browser under Assets. Clicking a row opens the full detail page as a slide-over (Notion-style): the list stays visible behind it, and the URL stays the list URL plus ?d=<detail path> — reloading or sharing it reproduces exactly this view (list + open panel). The ⤢ control expands to the full page (the canonical detail URL, which still renders full-page when loaded directly), and Esc/back restores the list and its URL. A project's run state shows as a chip in the project header (linking to the run journal). Hover relations in the project outline follow the plan DAG: a generated prototype or model shows its inputs from prior evidence, even when a methodology frame sits between them.

Example projects

Finished demo studies ship with Sonaloop — including an onboarding showcase, a B2B positioning study and a B2C pricing study (with a willingness-to-pay ladder and a head-to-head). On an empty database the home page shows a “Load example” button for each; your agent can load them via load_example, or sonaloop load-example from the CLI. Loading is idempotent (re-loading never duplicates), and remove_example removes only the example's data — never yours.

Live activity

Every inspector page is live: when your agent records something (a council, a persona, a report) a small toast appears with a link — and the page you're on reloads itself when it's affected. The Activity feed (g a) lists everything recent in order. You watch the study come together — no manual refreshing.

Runs

A status dot in the top bar shows whether studies are running right now — it turns amber when a project is stalled (the silent failure mode should be loud). In the project header every project carries its own run chip (state · last activity). Both link to the run journal (g r) — a deliberately plain telemetry page listing every project run with its last activity; it isn't a nav item.

Keyboard & palette

? opens the shortcut cheat sheet. ⌘K / Ctrl+K opens the command palette: your recently visited records, navigation (with Formats as one expandable entry) and actions — and, as you type, a search across everything (personas, councils, reports, sessions, hypotheses, decisions, surveys …), grouped by kind with project and date. Navigate with chords: g h home, g p personas, g c councils, g s reports, g a activity, g r runs, g d docs. In lists and the project outline j/k move focus, Enter opens the row as a slide-over (the full detail page, real URL), o opens it straight as a full page, and Esc closes the panel. On detail pages [/] step to the sibling record. Everything is disabled while you type in a field.

Product tour

The optional tour never auto-starts. When you choose “Take the tour”, it loads the showcase example project if needed, then walks real primitives in project context: open question, reference, council, survey, report, prototype, session, hypothesis, decision, notes, assets, and Formats. Esc ends it any time.

What you can edit

The inspector is a reading surface with one clear boundary: inspect and edit, never create. New projects, notes or sections come exclusively from your agent (MCP/CLI) — the UI deliberately offers no button for them. Edit and delete live in the “…” menu every page header carries (in the side panel too): Edit opens a dialog right over the page — project title, goal and icon; note and section metadata plus persona metadata (name, role, segment, industry). Project icons can be chosen there from the existing catalogue; clicking the header icon opens the same dialog directly at the icon picker. Custom SVGs are generated/set by your agent through MCP/CLI. Delete opens a confirm dialog (projects and personas ask you to type the name). Generated text — councils, reports, prototypes — stays untouchable; memories, SOULs and evidence entirely so.

Filtering, Linear-style

The job outline and Formats carry a filter bar: “Filter” opens the facet menu (kind, phase, persona, status, trace — in Formats job, status, plus direction on Assets) with honest per-value counts. Within a facet values OR, across facets they AND. Active filters become chips with ×; the state lives in the URL (?kind=council,decision&phase=…) — shareable, linkable, reload-proof. When a filter matches nothing, the page says so and offers “clear”.

Language

The chrome is bilingual (German/English) — the switcher lives in the settings popover, bottom left. The UI language is independent of the content language: generated content follows the language you write to your agent in, and the switcher never touches it.

Feedback

Feedback lives in the bottom-left user menu: a short message, optionally your email — the current page and app version are sent along visibly (nothing is collected silently). Submissions are read at /feedback or via sonaloop feedback; the form also links a prefilled GitHub issue as the public channel.

open

Feedback

Sent along, transparently: Page · Version 0.2.0

Or open a GitHub issue ↗