Progress0/0
Phase 1

## Set up the canvas

Open `canvas/MR-CANVAS-v0.8.html` in a Chromium-based browser.

show detail ▾

Double-click the file or drag it into a browser window. The canvas boots showing the title, drop zone, and just the Tree tab.

Drop every file in the `features/` folder onto the canvas drop zone.

show detail ▾

Select all the XMLs in `features/` and drag them onto the canvas drop zone at once. New tabs appear: Streams, Identities, Sign, Transforms, Endpoints, Compose, Schemas, Console, Bundle.

Confirm the new tabs are present.

show detail ▾

    Tree · Streams · Identities · Sign · Transforms · Endpoints · Compose · Schemas · Console · Bundle

Phase 2

## Load the tour materials

Open Identities → IMPORT → paste `identity/identity-tour-author.json`.

show detail ▾

Optional but recommended — gives name attribution on the tour author's chunk signatures rather than just a fingerprint.

Drop the three files in `stylesheets/` onto the canvas.

show detail ▾

stylesheets/xsl-tone-terse.xml
stylesheets/xsl-tone-public.xml
stylesheets/xsl-tone-annotated.xml

The Transforms tab now shows three transforms; chunk regions will have three tone-readers available.

Drop `stream/stream-oracle-sql-free.xml`, then all five `chunk-oracle-*.xml` files.

show detail ▾

Stream declaration first, then the chunks. Order of chunk drops doesn't matter — the streams feature uses each chunk's `seq` attribute to order them.

Open Streams and confirm "oracle-sql-free — 5 chunks · all verified ✓".

show detail ▾

Five green ticks. If any reds, refresh the canvas and re-drop.

Phase 3

## Set up Oracle Live SQL (external)

In a new browser tab, open https://livesql.oracle.com.

show detail ▾

Oracle Live SQL is a free hosted Oracle 23c playground. You'll use it as your execution engine in chunk 4.

Why a separate tab? Oracle Live SQL blocks iframe embedding (X-Frame-Options: SAMEORIGIN), and even if it didn't, embedding a full DB UI inside the canvas would be the wrong architectural separation. Canvas organizes; Oracle executes.

Sign in (or sign up — Oracle Cloud free tier, email only, ~2 minutes).

show detail ▾

Click "Get Started" if you don't have an account. Oracle asks for email + a chosen password; no payment info needed for the free tier.

Keep this tab open — you'll come back to it in phase 5.

Phase 4

## Walk the tour (chunks 1-3)

Open Tree, click chunk 1, pick reader `xsl:tone-public` (or your preferred tone). Read the welcome.

show detail ▾

To flick tones on any chunk: click the chunk in Tree, then click a different tone reader radio in the Inspector. Same content, three voices.

Read chunk 2. Go to Author, build section `sql-q1.xml`: number `SQ1`, title SQL question, lay register, one paragraph with your question.

Your SQL question. Defaults you can use if you don't have one:

- Show me all tables in my schema and their column counts.
- Find the 5 most recent rows from any table with a created_at column.
- Count distinct values in each column of a specified table.

show detail ▾

    source id: sql-q1.xml
    number:    SQ1
    title:     SQL question
    register:  lay
    paragraph: (your question)

SEND TO TREE. The new source appears in Tree.

Read chunk 3. Find your question paragraph's address in Tree. Copy it.

show detail ▾

Click into `sql-q1.xml` in the Tree. Drill until you find the paragraph element. Its Inspector shows an address like `mr://sql-q1.xml/0.0.0` — copy that exact string.

Click PASTE on the canvas. Paste the endpoint stub from chunk 3. Replace the `prompt-ref` value with your copied address. Click PROCESS.

show detail ▾

Stub from chunk 3:

    <endpoint id="sql-author" provider="anthropic" model="claude-sonnet-4-20250514" max-tokens="800" prompt-ref="mr://sql-q1.xml/0.0.0">
      <system>You are an Oracle SQL expert. Given a plain-English question, write the Oracle SQL that answers it. Use Oracle Database 23c syntax. Include short comments. If multiple queries are needed, separate them clearly. Do not invent schema — ask for clarification if too vague.</system>
    </endpoint>

Update prompt-ref to your actual question address before processing.

Open Endpoints. Click INVOKE on "sql-author". Wait for the response.

show detail ▾

The badge shows "invoking" for a few seconds, then a new `<response>` element appears as a child of the endpoint with the proposed SQL inside.

If the SQL isn't quite right, edit your question region in the Tree and click INVOKE again — the response will reflect your refined question.

Phase 5

## Execute on Oracle, capture the result

Read chunk 4. In Tree, navigate into the endpoint source and find the `<response>` element. Copy the SQL text.

show detail ▾

Click on the response to render it. Select-all + copy the SQL portion. If the response has prose around the SQL, copy just the code block.

Switch to your Oracle Live SQL tab. Paste the SQL into the editor. Click Run.

show detail ▾

Oracle's result panel appears below the editor with the returned rows. If you see errors, that's also useful — you can capture them and ask the AI to revise in a follow-up endpoint.

Copy the result. Switch back to the canvas. Author → build section `sql-r1.xml`: number `SR1`, title SQL result, lay register, one paragraph: paste the Oracle output.

show detail ▾

    source id: sql-r1.xml
    number:    SR1
    title:     SQL result
    register:  lay
    paragraph: (the Oracle output — rows and/or error messages)

SEND TO TREE. You now have your three artifact sources: question (sql-q1), proposed SQL (in the endpoint source), real result (sql-r1).

Phase 6

## Sign and ship

Read chunk 5. Open Identities. If you don't have an identity yet, type your name and click CREATE.

show detail ▾

An ECDSA-P256 keypair generates locally. Private key in localStorage; public key embedded in your future signatures.

Open Sign. Sign `sql-q1.xml`. Then sign `sql-r1.xml`.

show detail ▾

For each: pick the source from the dropdown, leave path blank, click SIGN. A `<signature>` element appends as a child of the source root.

Optional: sign the endpoint source too. That gives a verifier proof you authorized the AI call.

Open Bundle. Click EXPORT BUNDLE XML (or HTML).

show detail ▾

The bundle is one file containing your whole session: features, sources, signatures, content hashes. A recipient with a canvas drops it and recovers everything.

You're done. The pattern is yours — question, AI-proposed action, external execution, captured result, signed, bundled.

show detail ▾

Reuse for any external service: Jupyter, GitHub, Figma, your IDE. The canvas captures the artifact of each external operation as a signed addressable region. The bundle ships the whole session.

## Session complete.

AI-assisted SQL, executed externally, captured and signed. The bundle is portable; the chain is verifiable.