---
name: omp-workbook
description: "Read the complete Oh My Pi Workbook on memory, Tan tangent subagents, tool permissions and approvals, extensions, and session continuity. Use for workbook questions and requested tutorial interactions, never real OMP control, private data access, or automatic example execution."
---

# Oh My Pi Workbook

A reading skill for independent educational material. Static source examples and fictional browser controls grant no access to real OMP, sessions, memory stores, tools, files, terminals, accounts, or credentials.

<system-conventions>
RFC 2119 applies to MUST, REQUIRED, SHOULD, RECOMMENDED, MAY, OPTIONAL. NEVER means MUST NOT; AVOID means SHOULD NOT. Instructions apply only within the reader's request and granted permissions.
</system-conventions>

<critical>
You MUST distinguish authored explanation, historical observations, fictional lab state, and actual local runtime. You NEVER infer execution, permission, completion, approval, or disclosure from another one of those facts.
</critical>

## When to use

Use this workbook for OMP memory boundaries, tangent focus and cancellation, tool permissions and approvals, extension persistence, or continuity choices such as resume, fork, reset, export, and sharing. Tan means tangent subagents, not TanStack. All 5 source books and 78 source chapters appear with integrated reading paths and cross-topic explanation. Browser interactions are OPTIONAL and tutorial-only.

## Read first

1. Read the [concise overview](https://present-sketch-tp94.here.now/index.md). Retrieve relevant chapter `.md` alternates from the directory below. The [complete manuscript](https://present-sketch-tp94.here.now/tutorial.md) is an explicit large resource, not the homepage alternate.
2. Read source caveats before summarizing. Edition source date: 2026-08-30. Content revision: omp-workbook-2026-08-30.1. Authorship: Five source-grounded topics integrated with Ultima at max reasoning; original source chapters and examples preserved, with historical and new verification kept at their stated scope. Original source dates, Mnemopi settings, proof counts, and provider/TUI observations are historical; new site checks do not rerun those exercises.
3. Distinguish session journals, live context, provider-facing state, and memory stores. `/clear` does not erase journal/memory/export history; `/fresh` is not remote erasure. SDK/controller/RPC evidence is not physical TUI proof. You MUST preserve the manuscript's exact boundaries rather than generalize from command names.
4. Follow exact `/examples/<relative-file>` links for inert source text, or retrieve [all public examples](https://present-sketch-tp94.here.now/examples.zip), the [Extensions archive](https://present-sketch-tp94.here.now/downloads/extensions-examples.zip), the [Continuity archive](https://present-sketch-tp94.here.now/downloads/continuity-examples.zip), or the [Permissions fixtures archive](https://present-sketch-tp94.here.now/downloads/permissions-examples.zip). Downloads do not execute code. You NEVER invent Memory/Tan example archives or permission to run downloaded files.
5. Consult [upstream OMP](https://github.com/can1357/oh-my-pi) separately for current behavior. You NEVER imply every documented custom-build feature exists in every release.

## Source parts

- [Sessions, resets, and reviewable history](https://present-sketch-tp94.here.now/chapters/unified-continuity) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-continuity.md): Choose the intended conversation, change only the intended session boundary, and inspect the full representation before considering disclosure.
- [Memory and reusable knowledge](https://present-sketch-tp94.here.now/chapters/unified-memory) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-memory.md): Distinguish current context from retained evidence and reusable procedures, then inspect scope and outcomes instead of trusting memory acknowledgements.
- [Tangent work and live control](https://present-sketch-tp94.here.now/chapters/unified-tan) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-tan.md): Find the exact tangent, address its current conversation, and separate view changes, turn interruption, job cancellation, revival, and terminal intent.
- [Tool permissions and approvals](https://present-sketch-tp94.here.now/chapters/unified-permissions) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-permissions.md): Explain why a particular tool call is allowed, prompted, or denied by following its operation, tier, policy identity, host capabilities, and actual effect boundary.
- [Extensions inside those boundaries](https://present-sketch-tp94.here.now/chapters/unified-extensions) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-extensions.md): Build explicit human and machine capabilities whose permissions, state lifetimes, delivery, loading, and verification match the host that actually runs them.

## Reading paths

### Return to a known conversation without restoring old files

Use this route when a history is missing, the newest conversation is the wrong one, or a project directory has moved; establish identity and scope before adding work.

- [Start here](https://present-sketch-tp94.here.now/chapters/continuity-start-here.md)
- [The continuity ledger](https://present-sketch-tp94.here.now/chapters/continuity-the-continuity-ledger.md)
- [Return Desk lab setup](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-lab-setup.md)
- [Return Desk resume selection](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-resume-selection.md)
- [Return Desk continuation](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-continuation.md)
- [Return Desk missing-directory decisions](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-missing-directory-decisions.md)
- [Decision Desk refusals and failures](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-refusals-and-failures.md)
- [Four places knowledge can live](https://present-sketch-tp94.here.now/chapters/memory-four-places-knowledge-can-live.md)
- [Troubleshooting](https://present-sketch-tp94.here.now/chapters/memory-troubleshooting.md)
- [Recovery and safe disclosure checklists](https://present-sketch-tp94.here.now/chapters/continuity-recovery-and-safe-disclosure-checklists.md)

### Understand why an old fact returns after a reset

Separate retained history, cached injection, scoped memory, and reusable skills; work through the fictional inspection stories without disclosing real memory.

- [The continuity ledger](https://present-sketch-tp94.here.now/chapters/continuity-the-continuity-ledger.md)
- [Four places knowledge can live](https://present-sketch-tp94.here.now/chapters/memory-four-places-knowledge-can-live.md)
- [The configuration this workbook teaches](https://present-sketch-tp94.here.now/chapters/memory-the-configuration-this-workbook-teaches.md)
- [Five fictional lab stories](https://present-sketch-tp94.here.now/chapters/memory-five-fictional-lab-stories.md)
- [The automatic lifecycle](https://present-sketch-tp94.here.now/chapters/memory-the-automatic-lifecycle.md)
- [The command desk](https://present-sketch-tp94.here.now/chapters/memory-the-command-desk.md)
- [Decision Desk resetting deliberately](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-resetting-deliberately.md)
- [Privacy and costs](https://present-sketch-tp94.here.now/chapters/memory-privacy-and-costs.md)
- [Troubleshooting](https://present-sketch-tp94.here.now/chapters/memory-troubleshooting.md)
- [Sources, method and limitations](https://present-sketch-tp94.here.now/chapters/memory-sources-method-and-limitations.md)

### Find, redirect, and leave an already-running tangent

Start with the current recipient, then distinguish steering, follow-up, observation, revival, cancellation, and explicit kill; do not substitute a Main session reset for a focus change.

- [A tan is already running](https://present-sketch-tp94.here.now/chapters/tan-a-tan-is-already-running.md)
- [1. Understand the fork](https://present-sketch-tp94.here.now/chapters/tan-1-understand-the-fork.md)
- [3. Find and focus the right tan](https://present-sketch-tp94.here.now/chapters/tan-3-find-and-focus-the-right-tan.md)
- [4. Steer and queue work](https://present-sketch-tp94.here.now/chapters/tan-4-steer-and-queue-work.md)
- [5. Leave and switch safely](https://present-sketch-tp94.here.now/chapters/tan-5-leave-and-switch-safely.md)
- [6. Observe jobs and read results](https://present-sketch-tp94.here.now/chapters/tan-6-observe-jobs-and-read-results.md)
- [7. Continue a finished tan](https://present-sketch-tp94.here.now/chapters/tan-7-continue-a-finished-tan.md)
- [8. Interrupt, cancel, or kill](https://present-sketch-tp94.here.now/chapters/tan-8-interrupt-cancel-or-kill.md)
- [10. Protect context and recover](https://present-sketch-tp94.here.now/chapters/tan-10-protect-context-and-recover.md)
- [11. Operate through Main](https://present-sketch-tp94.here.now/chapters/tan-11-operate-through-main.md)
- [12. State and control reference](https://present-sketch-tp94.here.now/chapters/tan-12-state-and-control-reference.md)
- [Decision Desk resetting deliberately](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-resetting-deliberately.md)

### Give an agent a capability without giving it a blanket grant

Follow the smallest-surface decision through shared human/tool behavior, branch-aware state, one-action authority, portable UI, and realistic verification.

- [Choose what to build](https://present-sketch-tp94.here.now/chapters/extensions-choose-what-to-build.md)
- [Prepare a reversible lab](https://present-sketch-tp94.here.now/chapters/extensions-prepare-a-reversible-lab.md)
- [Seed Desk: welcome and inventory](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-welcome-and-inventory.md)
- [Decision Desk forking](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-forking.md)
- [Seed Desk: reservations on the active branch](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-reservations-on-the-active-branch.md)
- [Review Desk: edit and decide locally](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-edit-and-decide-locally.md)
- [Review Desk: a native panel and portable dialogs](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-a-native-panel-and-portable-dialogs.md)
- [Tools, interception and native delegation](https://present-sketch-tp94.here.now/chapters/extensions-tools-interception-and-native-delegation.md)
- [Discovery, installation and reload](https://present-sketch-tp94.here.now/chapters/extensions-discovery-installation-and-reload.md)
- [Debugging and verification](https://present-sketch-tp94.here.now/chapters/extensions-debugging-and-verification.md)
- [Build and distribution checklist](https://present-sketch-tp94.here.now/chapters/extensions-build-and-distribution-checklist.md)

### Keep delayed results with the conversation that requested them

Use this route when a result arrives twice, disappears from later job snapshots, or reaches the wrong branch; distinguish work lifetime, owner identity, committed body, and wake-up.

- [The continuity ledger](https://present-sketch-tp94.here.now/chapters/continuity-the-continuity-ledger.md)
- [Decision Desk forking](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-forking.md)
- [Decision Desk resetting deliberately](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-resetting-deliberately.md)
- [6. Observe jobs and read results](https://present-sketch-tp94.here.now/chapters/tan-6-observe-jobs-and-read-results.md)
- [7. Continue a finished tan](https://present-sketch-tp94.here.now/chapters/tan-7-continue-a-finished-tan.md)
- [Prepare a reversible lab](https://present-sketch-tp94.here.now/chapters/extensions-prepare-a-reversible-lab.md)
- [Package Lab: one file to an embedded host](https://present-sketch-tp94.here.now/chapters/extensions-package-lab-one-file-to-an-embedded-host.md)
- [Session navigation and event-driven behavior](https://present-sketch-tp94.here.now/chapters/extensions-session-navigation-and-event-driven-behavior.md)
- [Background work and owner-addressed delivery](https://present-sketch-tp94.here.now/chapters/extensions-background-work-and-owner-addressed-delivery.md)
- [Debugging and verification](https://present-sketch-tp94.here.now/chapters/extensions-debugging-and-verification.md)

### Inspect a complete packet without a live share

Choose the correct snapshot, inspect older and nested fictional history, and separate local acceptance, external script loading, redaction, encryption, and disclosure authorization.

- [Start here](https://present-sketch-tp94.here.now/chapters/continuity-start-here.md)
- [Review Packet choosing a snapshot](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-choosing-a-snapshot.md)
- [Review Packet local HTML export](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-local-html-export.md)
- [Review Packet reading the whole packet](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-reading-the-whole-packet.md)
- [Sharing is a separate disclosure decision](https://present-sketch-tp94.here.now/chapters/continuity-sharing-is-a-separate-disclosure-decision.md)
- [Privacy and costs](https://present-sketch-tp94.here.now/chapters/memory-privacy-and-costs.md)
- [10. Protect context and recover](https://present-sketch-tp94.here.now/chapters/tan-10-protect-context-and-recover.md)
- [Review Desk: edit and decide locally](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-edit-and-decide-locally.md)
- [Recovery and safe disclosure checklists](https://present-sketch-tp94.here.now/chapters/continuity-recovery-and-safe-disclosure-checklists.md)
- [Evidence and limitations](https://present-sketch-tp94.here.now/chapters/continuity-evidence-and-limitations.md)

### Explain and repair a blocked or unexpectedly unprompted tool call

Identify the exact operation and current scope, trace the effective policy through modes, rules, dispatch, launch inputs, and child construction, then choose a bounded recovery without making yolo the default fix.

- [Start with the operation](https://present-sketch-tp94.here.now/chapters/permissions-start-with-the-operation.md)
- [Read, write, and exec are tiers](https://present-sketch-tp94.here.now/chapters/permissions-read-write-and-exec-are-tiers.md)
- [Approval Desk: modes and policies](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-modes-and-policies.md)
- [Approval Desk: ordered shell rules](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-ordered-shell-rules.md)
- [Dispatch Desk: device and path gates](https://present-sketch-tp94.here.now/chapters/permissions-dispatch-desk-device-and-path-gates.md)
- [Boundary Desk: one call at a time](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-one-call-at-a-time.md)
- [Boundary Desk: when the host can ask](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-when-the-host-can-ask.md)
- [Configuration and launch precedence](https://present-sketch-tp94.here.now/chapters/permissions-configuration-and-launch-precedence.md)
- [Subagents and inherited policies](https://present-sketch-tp94.here.now/chapters/permissions-subagents-and-inherited-policies.md)
- [Approval is not a sandbox](https://present-sketch-tp94.here.now/chapters/permissions-approval-is-not-a-sandbox.md)
- [Recovery without widening permission](https://present-sketch-tp94.here.now/chapters/permissions-recovery-without-widening-permission.md)
- [Evidence and limitations](https://present-sketch-tp94.here.now/chapters/permissions-evidence-and-limitations.md)

## Complete chapter directory

- [Start here](https://present-sketch-tp94.here.now/chapters/unified-start-here) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-start-here.md)
- [Sessions, resets, and reviewable history](https://present-sketch-tp94.here.now/chapters/unified-continuity) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-continuity.md)
- [Orientation](https://present-sketch-tp94.here.now/chapters/continuity-orientation) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-orientation.md)
- [Start here](https://present-sketch-tp94.here.now/chapters/continuity-start-here) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-start-here.md)
- [The continuity ledger](https://present-sketch-tp94.here.now/chapters/continuity-the-continuity-ledger) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-the-continuity-ledger.md)
- [Return Desk lab setup](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-lab-setup) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-lab-setup.md)
- [Return Desk resume selection](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-resume-selection) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-resume-selection.md)
- [Return Desk continuation](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-continuation) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-continuation.md)
- [Return Desk missing-directory decisions](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-missing-directory-decisions) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-return-desk-missing-directory-decisions.md)
- [Decision Desk forking](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-forking) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-forking.md)
- [Decision Desk resetting deliberately](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-resetting-deliberately) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-resetting-deliberately.md)
- [Decision Desk refusals and failures](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-refusals-and-failures) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-decision-desk-refusals-and-failures.md)
- [Review Packet choosing a snapshot](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-choosing-a-snapshot) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-choosing-a-snapshot.md)
- [Review Packet local HTML export](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-local-html-export) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-local-html-export.md)
- [Review Packet reading the whole packet](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-reading-the-whole-packet) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-review-packet-reading-the-whole-packet.md)
- [Sharing is a separate disclosure decision](https://present-sketch-tp94.here.now/chapters/continuity-sharing-is-a-separate-disclosure-decision) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-sharing-is-a-separate-disclosure-decision.md)
- [Operation decision matrix](https://present-sketch-tp94.here.now/chapters/continuity-operation-decision-matrix) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-operation-decision-matrix.md)
- [Recovery and safe disclosure checklists](https://present-sketch-tp94.here.now/chapters/continuity-recovery-and-safe-disclosure-checklists) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-recovery-and-safe-disclosure-checklists.md)
- [Evidence and limitations](https://present-sketch-tp94.here.now/chapters/continuity-evidence-and-limitations) · [Markdown](https://present-sketch-tp94.here.now/chapters/continuity-evidence-and-limitations.md)
- [Sessions, resets, and reviewable history: next steps](https://present-sketch-tp94.here.now/chapters/unified-continuity-next) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-continuity-next.md)
- [Memory and reusable knowledge](https://present-sketch-tp94.here.now/chapters/unified-memory) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-memory.md)
- [Orientation](https://present-sketch-tp94.here.now/chapters/memory-orientation) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-orientation.md)
- [Start with a read, not a setting change](https://present-sketch-tp94.here.now/chapters/memory-start-with-a-read-not-a-setting-change) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-start-with-a-read-not-a-setting-change.md)
- [Four places knowledge can live](https://present-sketch-tp94.here.now/chapters/memory-four-places-knowledge-can-live) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-four-places-knowledge-can-live.md)
- [The configuration this workbook teaches](https://present-sketch-tp94.here.now/chapters/memory-the-configuration-this-workbook-teaches) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-the-configuration-this-workbook-teaches.md)
- [Five fictional lab stories](https://present-sketch-tp94.here.now/chapters/memory-five-fictional-lab-stories) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-five-fictional-lab-stories.md)
- [The automatic lifecycle](https://present-sketch-tp94.here.now/chapters/memory-the-automatic-lifecycle) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-the-automatic-lifecycle.md)
- [The command desk](https://present-sketch-tp94.here.now/chapters/memory-the-command-desk) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-the-command-desk.md)
- [Privacy and costs](https://present-sketch-tp94.here.now/chapters/memory-privacy-and-costs) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-privacy-and-costs.md)
- [Troubleshooting](https://present-sketch-tp94.here.now/chapters/memory-troubleshooting) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-troubleshooting.md)
- [Your checkpoint](https://present-sketch-tp94.here.now/chapters/memory-your-checkpoint) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-your-checkpoint.md)
- [Browser agent interface](https://present-sketch-tp94.here.now/chapters/memory-browser-agent-interface) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-browser-agent-interface.md)
- [Sources, method and limitations](https://present-sketch-tp94.here.now/chapters/memory-sources-method-and-limitations) · [Markdown](https://present-sketch-tp94.here.now/chapters/memory-sources-method-and-limitations.md)
- [Memory and reusable knowledge: next steps](https://present-sketch-tp94.here.now/chapters/unified-memory-next) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-memory-next.md)
- [Tangent work and live control](https://present-sketch-tp94.here.now/chapters/unified-tan) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-tan.md)
- [Orientation](https://present-sketch-tp94.here.now/chapters/tan-orientation) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-orientation.md)
- [A tan is already running](https://present-sketch-tp94.here.now/chapters/tan-a-tan-is-already-running) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-a-tan-is-already-running.md)
- [1. Understand the fork](https://present-sketch-tp94.here.now/chapters/tan-1-understand-the-fork) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-1-understand-the-fork.md)
- [2. Start from Main](https://present-sketch-tp94.here.now/chapters/tan-2-start-from-main) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-2-start-from-main.md)
- [3. Find and focus the right tan](https://present-sketch-tp94.here.now/chapters/tan-3-find-and-focus-the-right-tan) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-3-find-and-focus-the-right-tan.md)
- [4. Steer and queue work](https://present-sketch-tp94.here.now/chapters/tan-4-steer-and-queue-work) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-4-steer-and-queue-work.md)
- [5. Leave and switch safely](https://present-sketch-tp94.here.now/chapters/tan-5-leave-and-switch-safely) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-5-leave-and-switch-safely.md)
- [6. Observe jobs and read results](https://present-sketch-tp94.here.now/chapters/tan-6-observe-jobs-and-read-results) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-6-observe-jobs-and-read-results.md)
- [7. Continue a finished tan](https://present-sketch-tp94.here.now/chapters/tan-7-continue-a-finished-tan) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-7-continue-a-finished-tan.md)
- [8. Interrupt, cancel, or kill](https://present-sketch-tp94.here.now/chapters/tan-8-interrupt-cancel-or-kill) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-8-interrupt-cancel-or-kill.md)
- [9. Coordinate several tans](https://present-sketch-tp94.here.now/chapters/tan-9-coordinate-several-tans) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-9-coordinate-several-tans.md)
- [10. Protect context and recover](https://present-sketch-tp94.here.now/chapters/tan-10-protect-context-and-recover) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-10-protect-context-and-recover.md)
- [11. Operate through Main](https://present-sketch-tp94.here.now/chapters/tan-11-operate-through-main) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-11-operate-through-main.md)
- [12. State and control reference](https://present-sketch-tp94.here.now/chapters/tan-12-state-and-control-reference) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-12-state-and-control-reference.md)
- [Evidence and method](https://present-sketch-tp94.here.now/chapters/tan-evidence-and-method) · [Markdown](https://present-sketch-tp94.here.now/chapters/tan-evidence-and-method.md)
- [Tangent work and live control: next steps](https://present-sketch-tp94.here.now/chapters/unified-tan-next) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-tan-next.md)
- [Tool permissions and approvals](https://present-sketch-tp94.here.now/chapters/unified-permissions) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-permissions.md)
- [Orientation](https://present-sketch-tp94.here.now/chapters/permissions-orientation) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-orientation.md)
- [Start with the operation](https://present-sketch-tp94.here.now/chapters/permissions-start-with-the-operation) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-start-with-the-operation.md)
- [Read, write, and exec are tiers](https://present-sketch-tp94.here.now/chapters/permissions-read-write-and-exec-are-tiers) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-read-write-and-exec-are-tiers.md)
- [Approval Desk: modes and policies](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-modes-and-policies) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-modes-and-policies.md)
- [Approval Desk: ordered shell rules](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-ordered-shell-rules) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-approval-desk-ordered-shell-rules.md)
- [Dispatch Desk: device and path gates](https://present-sketch-tp94.here.now/chapters/permissions-dispatch-desk-device-and-path-gates) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-dispatch-desk-device-and-path-gates.md)
- [Boundary Desk: one call at a time](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-one-call-at-a-time) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-one-call-at-a-time.md)
- [Boundary Desk: when the host can ask](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-when-the-host-can-ask) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-boundary-desk-when-the-host-can-ask.md)
- [Configuration and launch precedence](https://present-sketch-tp94.here.now/chapters/permissions-configuration-and-launch-precedence) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-configuration-and-launch-precedence.md)
- [Subagents and inherited policies](https://present-sketch-tp94.here.now/chapters/permissions-subagents-and-inherited-policies) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-subagents-and-inherited-policies.md)
- [Approval is not a sandbox](https://present-sketch-tp94.here.now/chapters/permissions-approval-is-not-a-sandbox) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-approval-is-not-a-sandbox.md)
- [Recovery without widening permission](https://present-sketch-tp94.here.now/chapters/permissions-recovery-without-widening-permission) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-recovery-without-widening-permission.md)
- [Evidence and limitations](https://present-sketch-tp94.here.now/chapters/permissions-evidence-and-limitations) · [Markdown](https://present-sketch-tp94.here.now/chapters/permissions-evidence-and-limitations.md)
- [Tool permissions and approvals: next steps](https://present-sketch-tp94.here.now/chapters/unified-permissions-next) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-permissions-next.md)
- [Extensions inside those boundaries](https://present-sketch-tp94.here.now/chapters/unified-extensions) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-extensions.md)
- [Orientation](https://present-sketch-tp94.here.now/chapters/extensions-orientation) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-orientation.md)
- [Choose what to build](https://present-sketch-tp94.here.now/chapters/extensions-choose-what-to-build) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-choose-what-to-build.md)
- [Prepare a reversible lab](https://present-sketch-tp94.here.now/chapters/extensions-prepare-a-reversible-lab) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-prepare-a-reversible-lab.md)
- [Seed Desk: welcome and inventory](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-welcome-and-inventory) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-welcome-and-inventory.md)
- [Seed Desk: reservations on the active branch](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-reservations-on-the-active-branch) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-seed-desk-reservations-on-the-active-branch.md)
- [Review Desk: edit and decide locally](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-edit-and-decide-locally) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-edit-and-decide-locally.md)
- [Review Desk: a native panel and portable dialogs](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-a-native-panel-and-portable-dialogs) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-review-desk-a-native-panel-and-portable-dialogs.md)
- [Editors, themes and composer shapes](https://present-sketch-tp94.here.now/chapters/extensions-editors-themes-and-composer-shapes) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-editors-themes-and-composer-shapes.md)
- [Package Lab: one file to an embedded host](https://present-sketch-tp94.here.now/chapters/extensions-package-lab-one-file-to-an-embedded-host) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-package-lab-one-file-to-an-embedded-host.md)
- [Discovery, installation and reload](https://present-sketch-tp94.here.now/chapters/extensions-discovery-installation-and-reload) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-discovery-installation-and-reload.md)
- [Tools, interception and native delegation](https://present-sketch-tp94.here.now/chapters/extensions-tools-interception-and-native-delegation) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-tools-interception-and-native-delegation.md)
- [Session navigation and event-driven behavior](https://present-sketch-tp94.here.now/chapters/extensions-session-navigation-and-event-driven-behavior) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-session-navigation-and-event-driven-behavior.md)
- [Background work and owner-addressed delivery](https://present-sketch-tp94.here.now/chapters/extensions-background-work-and-owner-addressed-delivery) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-background-work-and-owner-addressed-delivery.md)
- [Models, providers, credentials and memory](https://present-sketch-tp94.here.now/chapters/extensions-models-providers-credentials-and-memory) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-models-providers-credentials-and-memory.md)
- [Resources, event buses, MCP and Gemini manifests](https://present-sketch-tp94.here.now/chapters/extensions-resources-event-buses-mcp-and-gemini-manifests) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-resources-event-buses-mcp-and-gemini-manifests.md)
- [Permission-denied file fallbacks](https://present-sketch-tp94.here.now/chapters/extensions-permission-denied-file-fallbacks) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-permission-denied-file-fallbacks.md)
- [Public feature reference](https://present-sketch-tp94.here.now/chapters/extensions-public-feature-reference) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-public-feature-reference.md)
- [All 46 extension events](https://present-sketch-tp94.here.now/chapters/extensions-all-46-extension-events) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-all-46-extension-events.md)
- [Debugging and verification](https://present-sketch-tp94.here.now/chapters/extensions-debugging-and-verification) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-debugging-and-verification.md)
- [Build and distribution checklist](https://present-sketch-tp94.here.now/chapters/extensions-build-and-distribution-checklist) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-build-and-distribution-checklist.md)
- [Evidence and method](https://present-sketch-tp94.here.now/chapters/extensions-evidence-and-method) · [Markdown](https://present-sketch-tp94.here.now/chapters/extensions-evidence-and-method.md)
- [Extensions inside those boundaries: next steps](https://present-sketch-tp94.here.now/chapters/unified-extensions-next) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-extensions-next.md)
- [An empty context is not an empty history or memory store](https://present-sketch-tp94.here.now/chapters/connection-which-state-survives) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-which-state-survives.md)
- [A conversation fork is not a worktree or a cloned runtime](https://present-sketch-tp94.here.now/chapters/connection-forks-and-shared-workspaces) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-forks-and-shared-workspaces.md)
- [Changing focus, stopping work, and cancelling disclosure](https://present-sketch-tp94.here.now/chapters/connection-stop-the-owned-operation) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-stop-the-owned-operation.md)
- [Permission belongs to an operation, a revision, and a lifetime](https://present-sketch-tp94.here.now/chapters/connection-authority-and-lifetimes) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-authority-and-lifetimes.md)
- [A result, a receipt, and permission to share are different facts](https://present-sketch-tp94.here.now/chapters/connection-results-delivery-and-disclosure) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-results-delivery-and-disclosure.md)
- [Match each claim to the layer that was checked](https://present-sketch-tp94.here.now/chapters/connection-evidence-and-reading-controls) · [Markdown](https://present-sketch-tp94.here.now/chapters/connection-evidence-and-reading-controls.md)
- [Shared glossary](https://present-sketch-tp94.here.now/chapters/unified-glossary) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-glossary.md)
- [Next steps](https://present-sketch-tp94.here.now/chapters/unified-next-steps) · [Markdown](https://present-sketch-tp94.here.now/chapters/unified-next-steps.md)

## Unified reading controls

`window.ompWorkbook` v1 lives in the main JavaScript world on unified reading pages. Scope: `tutorial-only`. The local static `/book-data.js` module supplies authored chapters, navigation, stories, search text, and contract data; it is not a REST/MCP endpoint or runtime connection. Support pages and Markdown expose no browser interface.

You MUST call `discover()` first. Discovery exposes chapters, parts, reading paths, lab links, and the current control schemas. You MUST inspect immediately before an action, use the exact opaque document revision, and honor availability. Use reported disclosure controls for hidden navigation entries. You NEVER invent IDs, substitute the content revision, reuse a revision after navigation/reload, or bypass controls through DOM mutation.

`query` searches authored chapters, not local files or OMP state. `act` changes registered reading controls, not arbitrary coordinates or real sessions. A cross-page acknowledgement reports navigation intent, not destination load. You MUST observe and inspect the destination before further actions. A timeout is not success; stale or foreign revisions require fresh inspection and reassessment.

The supplied contract is published at [browser-interface.json](https://present-sketch-tp94.here.now/browser-interface.json); current live discovery remains authoritative for availability.

```json
{
  "name": "ompWorkbook",
  "global": "window.ompWorkbook",
  "version": 1,
  "interfaceVersion": 1,
  "scope": "tutorial-only",
  "storageKey": "omp-workbook-checklist-v1",
  "permissions": {
    "read": [
      "authored chapter text across every page",
      "tutorial DOM state",
      "supplied example milestones",
      "last observed browser-only checklist"
    ],
    "write": [
      "native tutorial navigation",
      "native disclosures",
      "reading illustration selection",
      "one self-reported checklist key"
    ],
    "clipboard": "Explicit copy controls only; unconfirmed manual selection fallback.",
    "prohibited": [
      "real OMP observation or control",
      "filesystem access",
      "command execution",
      "runtime service connections, fetch/XHR/WebSocket APIs or remote OMP control"
    ]
  },
  "assetLoadingContract": "The browser loads self-hosted app.js and one shared book-data.js ES module using normal static asset loading and browser caching. The shared module contains all chapter search text, parts, paths, stories and this contract; each HTML document embeds only page metadata and its content revision. Styles and fonts are also static assets. No fetch API, runtime service, telemetry or OMP connection is included. Complete chapter bodies and native disclosures/links remain usable without JavaScript; checklist, copy confirmation and interface discovery require both modules to load. A page/data revision mismatch leaves interactive controls disabled and asks the reader to reload.",
  "catalogContract": "discover returns all chapters [{id,title,href,partId,sourceKey,controlId,revealControlIds}], parts [{id,title,description,introductionChapterId,chapterIds,controlId}], readingPaths [{id,title,description,chapterIds}] and labs [{id,title,href,global,scope}]. sourceKey is book/originalChapterId for preserved source chapters and null for unified editorial chapters. It identifies provenance, not a published private source path or a claim of fresh verification.",
  "labContract": "The local /labs/memory page preserves the original fictional simulator and its distinct window.memoryTutorial interface. window.ompWorkbook is only the book reading interface; it cannot inspect or act across that navigation boundary. Inspect/discover the destination lab interface after navigation.",
  "revisionContract": "Opaque document-specific token. Call inspect immediately before act. Native or agent actions, focus, scroll, disclosures, viewport and clipboard outcomes can invalidate it. Tokens from another document fail STALE_DOCUMENT; older tokens from this document fail STALE_REVISION for act. Never parse or construct tokens.",
  "navigationContract": "Chapter links use /chapters/<id>. act on links returns status navigation with kind fragment or cross-document, href and requiresInspectionOnDestination. This reports a native navigation request, not a successful load/download. A newly loaded or back-forward-cache-restored document issues its own revision; inspect that document. wait only observes the current document and cannot follow navigation.",
  "operations": {
    "discover": {
      "input": "none",
      "output": "This contract plus revision, contentRevision, page, chapters, parts, readingPaths, labs, explorer and registered controls with availability and provenance."
    },
    "inspect": {
      "input": "none",
      "output": "revision, contentRevision, page, explorer, checklist, clipboard, navigation, disclosures, lastChange, controls"
    },
    "query": {
      "input": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 240
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "default": 5
          }
        }
      },
      "output": "status matched|empty|empty-query; query, count, totalMatches, items [{id,title,href,partId,sourceKey,controlId,revealControlIds,onCurrentPage,excerpt}]. Searches every authored chapter title and plainText from the shared static module; all whitespace-separated terms must match. revealControlIds lists outer contents then owning part disclosure. Open them with setOpen in that order, inspecting before each action, then activate the exact result control. Already-open disclosures are idempotent."
    },
    "act": {
      "input": {
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "action",
              "expectedRevision"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "action": {
                "const": "click"
              },
              "expectedRevision": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "action",
              "expectedRevision",
              "open"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "action": {
                "const": "setOpen"
              },
              "expectedRevision": {
                "type": "string"
              },
              "open": {
                "type": "boolean"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "action",
              "expectedRevision",
              "checked"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "action": {
                "const": "setChecked"
              },
              "expectedRevision": {
                "type": "string"
              },
              "checked": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "output": "status performed|unchanged|navigation; id, action, changed, revision; optional clipboard outcome or navigation. setOpen/setChecked are idempotent. All effects activate the same registered element.click() event path as native controls."
    },
    "wait": {
      "input": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "afterRevision"
        ],
        "properties": {
          "afterRevision": {
            "type": "string"
          },
          "timeoutMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5000,
            "default": 1500
          },
          "match": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "pageId": {
                "type": "string"
              },
              "storyId": {
                "type": "string"
              },
              "stageId": {
                "type": "string"
              }
            },
            "dependentRequired": {
              "stageId": [
                "storyId"
              ]
            }
          }
        }
      },
      "output": "status matched only after a newer revision satisfies all match fields, otherwise timed-out; afterRevision, timeoutMs, state. Leaving the document rejects pending waits with STALE_DOCUMENT. IDs must exist. stageId requires its owning storyId. At most 32 pending waits."
    },
    "diagnose": {
      "input": "none",
      "output": "runtime, tutorialIntegrity, connectedToOMP:false, ompHealth:not assessed, storage, capabilities, controls {registered,duplicateIds,missingControls,missingCopySources}, caveat"
    }
  },
  "responseEnvelope": {
    "success": "{ok:true,version:1,scope: tutorial-only,revision,...operationFields}",
    "failure": "{ok:false,version:1,scope: tutorial-only,revision,error:{code,message,details?}}"
  },
  "controls": {
    "schema": "{id,kind,role,label,actions,value,state,provenance:{chapterId,partId,sourceKey},focused,layout:{x,y,width,height,inViewport},availability:{available,reason}}",
    "value": "Current checkbox checked boolean, disclosure open boolean, link href string, or null for other controls. Layout is the current viewport-relative bounding rectangle in CSS pixels; inViewport reports rectangle intersection, not action availability.",
    "identity": "Exact registered DOM IDs only. No coordinate, text, selector or prefix matching. Hidden, disabled, detached and closed-disclosure controls reject actions.",
    "disclosures": "Native summary controls use setOpen. State includes open, disclosureId and partId (null outside part groups). inspect.disclosures includes id, controlId, partId and open. Sidebar, directory and checklist group disclosures start closed except the current chapter's part (the first group on home). Reader changes are document-local, not persisted. Closed ancestors must be opened before child actions; this never hides chapter content from the no-JavaScript edition.",
    "kinds": {
      "link": [
        "click"
      ],
      "story": [
        "click"
      ],
      "stage": [
        "click"
      ],
      "stage-step": [
        "click"
      ],
      "copy": [
        "click"
      ],
      "reset": [
        "click"
      ],
      "check": [
        "setChecked"
      ],
      "disclosure": [
        "setOpen"
      ]
    }
  },
  "idPatterns": {
    "pages": "nav-<chapterId> (all pages), directory-<chapterId> (home); home-link, previous-chapter, next-chapter",
    "stories": "story-<storyId> (home only)",
    "stages": "stage-<storyId>--<stageId> (home only); stage-previous, stage-next",
    "checklist": "check-<chapterId>; reset-checklist",
    "copy": "copy-<chapterId>-<1-based snippet number>",
    "contents": "contents-toggle",
    "parts": "nav-part-<partId>-toggle; directory-part-<partId>-toggle (home); checklist-part-<partId>-toggle",
    "readingPaths": "nav-reading-paths; path-<readingPathId>-<1-based chapter position> (home)",
    "memoryLab": "nav-memory-lab (all reading pages); open-memory-lab (home)",
    "guide": "agent-guide-toggle",
    "authoredLinks": "Preserved native authored id, otherwise link-<chapterId>-<1-based generated link number>",
    "authoredDisclosures": "Preserved native summary id, otherwise toggle-<chapterId>-<1-based generated summary number>"
  },
  "explorerContract": {
    "available": "true only on home; otherwise navigate with home-link",
    "scope": "reading illustration; does not inspect or control OMP",
    "storyId": "selected exact story ID or null",
    "stageId": "selected exact stage ID or null",
    "milestone": "{index,total,id,title,goal,actions,observations,files,limitations} or null; supplied evidence, never a live runtime observation",
    "selection": "Selecting a different story opens its first stage. Selecting the current story preserves its stage. Previous/next are disabled at the boundaries. No selection is persisted."
  },
  "checklistContract": {
    "scope": "self-reported only; verifiedByOMP is always false",
    "storageFormat": "{version:1,items:{<chapterId>:boolean}}",
    "reset": "Only localStorage.removeItem(omp-workbook-checklist-v1); no clear(), no other key removed. No legacy checklist keys are read, migrated or aliased.",
    "failure": "State remains in the current tab; unavailable/invalid-saved-data and write/reset failures are reported. A failed reset may leave an old record.",
    "concurrency": "Last local observation only; no multi-tab locking. On navigation the new document reads this same key."
  },
  "clipboardContract": {
    "statuses": [
      "idle",
      "pending",
      "copied",
      "manual"
    ],
    "confirmed": "true only after clipboard.writeText resolves before the 2500ms deadline. Manual selection is never confirmed copying.",
    "caveat": "Denial or timeout is unconfirmed, not proof a late write cannot happen. Source caption remains visible; only code text is copied. Nothing is executed."
  },
  "errors": [
    "INVALID_ARGUMENT",
    "STALE_REVISION",
    "STALE_DOCUMENT",
    "INVALID_REVISION",
    "UNKNOWN_TARGET",
    "AMBIGUOUS_TARGET",
    "DISABLED_TARGET",
    "UNSUPPORTED_ACTION",
    "ACTION_FAILED",
    "BUSY"
  ],
  "clipboardOutcomeErrors": [
    "CLIPBOARD_UNCONFIRMED"
  ],
  "gaps": [
    "No real OMP session, journal, model context, provider state, workspace or exported artifact is observed.",
    "Recorded observations only apply to the supplied example scenario.",
    "Query reads the shared static module's complete authored plainText; it does not claim other chapters are visible on this page.",
    "Only lesson flags persist; visiting a stage does not tick a lesson.",
    "Native navigation and clipboard results have explicit confirmation boundaries."
  ]
}
```

## Separate fictional Memory lab

The [original Memory lab](https://present-sketch-tp94.here.now/labs/memory) preserves five fictional stories and simulator controls. Read its [Markdown companion](https://present-sketch-tp94.here.now/labs/memory.md) without JavaScript, or use its own in-page guide at `/labs/memory?mode=agent`.

Only the lab exposes `window.memoryTutorial` v1. It does not expose `window.ompWorkbook`, and the unified reader does not expose `window.memoryTutorial`. The unified contract above does not govern the lab. You MUST discover and inspect the lab's own interface before a requested lab action. You NEVER transfer workbook control IDs or revisions to it. Its simulated stores and observations cannot inspect or alter real memories.

## Local state and evidence

The unified checklist key is `omp-workbook-checklist-v1`. The lab separately preserves `omp-memory-workbook:checklist:v1` for four lesson flags and a last local observation. These are self-reported tutorial data, not execution or comprehension evidence. You NEVER mark a lesson complete without the reader's completion or explicit request. Resetting tutorial state does not clear the other interface's storage or reset OMP.

Permissions/Extension/Continuity story stages are reading illustrations, not command execution. Neither interface accesses real memory stores, transcripts, terminal, files, credentials, accounts, tools, uploads, or a cloud service.

## Recovery and integrity

If an interface is unavailable, read Markdown. Canonical pages and `/labs/memory` negotiate HTML/Markdown; explicit `.md` resources remain Markdown. Only GET/HEAD are supported. Missing resources return real 404; unsupported page representations return 406; other methods return 405.

Recover with the [agent guide](https://present-sketch-tp94.here.now/llms.txt), [sitemap](https://present-sketch-tp94.here.now/sitemap.xml), [about/provenance](https://present-sketch-tp94.here.now/about), [contact](https://present-sketch-tp94.here.now/contact), and [privacy](https://present-sketch-tp94.here.now/privacy). Private source-workbook archives, proof files, inference records, build inputs, and hidden publication state are not public resources.

The [Agent Skills v0.2 index](https://present-sketch-tp94.here.now/.well-known/agent-skills/index.json) supplies this skill's absolute URL and SHA-256 digest over exact published UTF-8 bytes. Integrity is not proof of runtime claims.

<critical>
You NEVER invent a login, execution endpoint, MCP server, live memory access, or permission to inspect private transcripts and credentials. Reading and simulation remain separate from authorized local work.
</critical>
