OMP Workbook

Read the source. Follow the evidence.

2. Start from Main

The exact syntax

OMP slash command — enter in Main’s composer, not a shell:

2. Start from Main · source excerpt 1; read surrounding instructions
/tan <work>

Replace <work> with the task. The command takes the remaining, trimmed text as the work item. Multi-word text needs no special quoting.

There are no /tan flags in the supplied implementation.

Main can already be streaming when you launch a tan. The launch path does not require aborting Main’s current turn.

Fictional practice project

Imagine a disposable checkout containing these files.

data/catalog.csv — fictional fixture:

2. Start from Main · source excerpt 2; read surrounding instructions
title,shelf,label
The Paper Moon,green,amber
A Map of Clouds,green,blue
The Quiet Atlas,silver,amber

docs/label-guide.md — fictional fixture:

2. Start from Main · source excerpt 3; read surrounding instructions
Green-shelf books use amber labels.
Silver-shelf books use silver labels.

docs/visitor-faq.md — fictional fixture:

2. Start from Main · source excerpt 4; read surrounding instructions
Visitors may browse the green and silver shelves.
Ask a librarian if a shelf label is unclear.

You can work through the examples without creating anything. For a live rehearsal, have Main prepare these fixtures in a disposable practice directory—not by overwriting similarly named files in an existing project.

Worked scenario: launch a bounded audit

First confirm that you are in Main and that the fictional files are available.

OMP slash command — Main only:

2. Start from Main · source excerpt 5; read surrounding instructions
/tan Audit the fictional Lantern Library label rules. Read data/catalog.csv and docs/label-guide.md. Report mismatched labels with their expected labels. Do not edit any file, run project-wide repairs, or change Main's work.

Expected observations

  • A dispatch status identifies a background job, such as the generated job ID shown after Dispatched background tan.
  • The tan appears in the runtime Hub under a generated Tan-… agent ID.
  • Main remains the underlying conversation; launch does not automatically focus the tan.
  • If Main was already working, its turn can continue alongside the tan.

The compact dispatch breadcrumb may show only a shortened work preview. While Main is streaming, the controller queues that breadcrumb for later context rather than steering it into Main’s current response.

Fictional acceptance check

Against the unchanged fixtures, a complete audit should identify:

  • A Map of Clouds: blue → amber.
  • The Quiet Atlas: amber → silver.

That is a correctness check for the assignment—not a promised model response.

If the tan finishes before you reach it, use Continue a finished tan. Finishing quickly is not a control failure.

Prerequisites and launch failures

ObservationMeaning and recovery
Usage: /tan <work>No nonblank work was supplied. Return to Main and provide a concrete assignment.
No active model available for /tan.Main has no active model to pass to the clone. Resolve model availability in Main before launching again.
Background jobs are disabled; enable async jobs to use /tan.The actual check is that this session has an async job manager. See the correction below.
/tan requires a persisted session.An in-memory session is insufficient. Use a normal persisted interactive session.
Background-job limit reachedWait for an appropriate running job to finish, or deliberately cancel an identified job. Do not cancel an arbitrary row to make room.
A filesystem, session, authentication, or provider errorDetermine whether dispatch happened before retrying. A launch acknowledgment does not prove that the first model request succeeded.

A persisted session need not already contain an assistant answer: the controller calls ensureOnDisk() and flushes it before forking. An in-memory session, however, has no persisted parent path to fork.

Important recovery correction

Although the missing-manager error says “enable async jobs,” this /tan controller does not test async.enabled. The shown SDK constructs the primary async manager independently of that toggle.

Therefore, changing async.enabled is not an established repair for a missing manager, nor is that toggle a proven /tan on/off switch here. Have Main diagnose the current host/session setup and implementation version.

The SDK does read async.maxJobs when constructing the manager. That is not evidence of live resizing of an existing manager.

Keep a copy of an important launch request. The slash-command handler clears its text before starting; the focused-chat restoration behavior described later is not a blanket guarantee for failed slash-command launches.

What is inherited—and what is not synchronized

At initial launchBoundary
Persisted conversation entriesThe child reconstructs context from a journal copy. Unfinished streaming text, unsent drafts, and pending user queues are not a synchronized continuation of Main. Compaction can affect what history becomes active model context.
Main’s current model and configured thinking selectorThese are passed at launch, including an auto thinking selector when configured. Main’s later choices are not a live model mirror for the tan.
Main’s current system-prompt blocksA snapshot is passed, not a continuously synchronized prompt.
Main’s enabled tool namesThis includes enabled tools that are not top-level-visible. The SDK rebuilds tools; names alone do not guarantee identical availability or implementations.
A settings snapshotThe subagent helper applies its own overrides. Shared services and storage still exist.
Model registry and authentication infrastructureThe tan is not a separate account or permission sandbox.
Working directory and inherited workspace contextNo isolated repository copy is created.
Main’s initial local:// mappingIt is captured for the initial background run; later Main session changes do not retarget that captured mapping.

Permission caveat: the subagent settings helper sets the default approval mode to yolo for unattended execution and disables the advisor by default. Explicit per-tool approval policies are still inherited. Do not assume Main’s interactive approval behavior is reproduced unchanged.

The initial tan is created headlessly. Focusing it later does not recreate it as a new Main session with all interactive-only facilities.

It also does not inherit Main’s live extension instances, editor, shell/kernel state, browser ownership, or active provider request as one cloned runtime. Initial extension discovery is disabled, but that is not equivalent to “all custom capabilities are disabled”: SDK custom-tool discovery and supplied MCP proxy tools are separate paths.

Newly staged images are not forwarded by the launch command

The current /tan slash handler forwards work text only. TanCommandController.start() does not accept an image argument, and its initial clone.prompt() supplies no images.

Consequently:

  • An image already recorded in inherited conversation history may be part of the forked history.
  • An image newly staged beside /tan … is not forwarded as a new attachment by this launch path.
  • A textual image marker in the work request is not evidence that its image bytes arrived.

For a new image, launch first, focus the verified Tan ID, then attach it to an ordinary chat message. Alternatively, provide an authorized, accessible file and ask the tan to read it.

Inspect the composer after launch. Do not assume staged attachments were either sent or safely discarded.


Tangent work and live control · Source chapter: tan/2-start-from-main. Original evidence remains scoped to its recorded snapshot.

Read this chapter as Markdown

Your lesson ticks

A self-reported reading checklist, not proof of real OMP behavior. Only these ticks are saved in this browser. Reading a milestone does not resume, fork, reset or export a session.

Chapters I have worked through
Start here 1
Sessions, resets, and reviewable history 19
Memory and reusable knowledge 14
Tangent work and live control 17
Tool permissions and approvals 15
Extensions inside those boundaries 23
Connections and next steps 8
0 of 97 checked

Checklist saving needs JavaScript and available browser storage.