## 2\.&#32;Start from Main

### The exact syntax

**OMP slash command — enter in Main’s composer\,&#32;not a shell\:**

~~~text
/tan <work>
~~~

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

There are no&#32;`/tan`&#32;flags in the supplied implementation\.

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

### Fictional practice project

Imagine a disposable checkout containing these files\.

**`data/catalog.csv`&#32;— fictional fixture\:**

~~~csv
title,shelf,label
The Paper Moon,green,amber
A Map of Clouds,green,blue
The Quiet Atlas,silver,amber
~~~

**`docs/label-guide.md`&#32;— fictional fixture\:**

~~~text
Green-shelf books use amber labels.
Silver-shelf books use silver labels.
~~~

**`docs/visitor-faq.md`&#32;— fictional fixture\:**

~~~text
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\.&#32;For a live rehearsal\,&#32;have Main prepare these fixtures in a disposable practice directory—not by overwriting similarly named files in an existing project\.

### Worked scenario\:&#32;launch a bounded audit

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

**OMP slash command — Main only\:**

~~~text
/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\,&#32;such as the generated job ID shown after&#32;`Dispatched background tan`\.
- The tan appears in the runtime Hub under a generated&#32;`Tan-…`&#32;agent ID\.
- Main remains the underlying conversation\;&#32;launch does not automatically focus the tan\.
- If Main was already working\,&#32;its turn can continue alongside the tan\.

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

**Fictional acceptance check**

Against the unchanged fixtures\,&#32;a complete audit should identify\:

- **A Map of Clouds\:**&#32;blue → amber\.
- **The Quiet Atlas\:**&#32;amber → silver\.

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

If the tan finishes before you reach it\,&#32;use&#32;[Continue a finished tan](<https://present-sketch-tp94.here.now/chapters/tan-7-continue-a-finished-tan#tan-7-continue-a-finished-tan>)\.&#32;Finishing quickly is not a control failure\.

### Prerequisites and launch failures

| Observation | Meaning and recovery |
| --- | --- |
| `Usage: /tan <work>` | No nonblank work was supplied\.&#32;Return to Main and provide a concrete assignment\. |
| `No active model available for /tan.` | Main has no active model to pass to the clone\.&#32;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\.&#32;See the correction below\. |
| `/tan requires a persisted session.` | An in\-memory session is insufficient\.&#32;Use a normal persisted interactive session\. |
| Background\-job limit reached | Wait for an appropriate running job to finish\,&#32;or deliberately cancel an identified job\.&#32;Do not cancel an arbitrary row to make room\. |
| A filesystem\,&#32;session\,&#32;authentication\,&#32;or provider error | Determine whether dispatch happened before retrying\.&#32;A launch acknowledgment does not prove that the first model request succeeded\. |

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

> **Important recovery correction**
>
> Although the missing\-manager error says “enable async jobs\,” this&#32;`/tan`&#32;controller does not test&#32;`async.enabled`\.&#32;The shown SDK constructs the primary async manager independently of that toggle\.
>
> Therefore\,&#32;changing&#32;`async.enabled`&#32;is&#32;**not an established repair for a missing manager**\,&#32;nor is that toggle a proven&#32;`/tan`&#32;on\/off switch here\.&#32;Have Main diagnose the current host\/session setup and implementation version\.
>
> The SDK does read&#32;`async.maxJobs`&#32;when constructing the manager\.&#32;That is not evidence of live resizing of an existing manager\.

Keep a copy of an important launch request\.&#32;The slash\-command handler clears its text before starting\;&#32;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 launch | Boundary |
| --- | --- |
| Persisted conversation entries | The child reconstructs context from a journal copy\.&#32;Unfinished streaming text\,&#32;unsent drafts\,&#32;and pending user queues are not a synchronized continuation of Main\.&#32;Compaction can affect what history becomes active model context\. |
| Main’s current model and configured thinking selector | These are passed at launch\,&#32;including an&#32;`auto`&#32;thinking selector when configured\.&#32;Main’s later choices are not a live model mirror for the tan\. |
| Main’s current system\-prompt blocks | A snapshot is passed\,&#32;not a continuously synchronized prompt\. |
| Main’s enabled tool names | This includes enabled tools that are not top\-level\-visible\.&#32;The SDK rebuilds tools\;&#32;names alone do not guarantee identical availability or implementations\. |
| A settings snapshot | The subagent helper applies its own overrides\.&#32;Shared services and storage still exist\. |
| Model registry and authentication infrastructure | The tan is not a separate account or permission sandbox\. |
| Working directory and inherited workspace context | No isolated repository copy is created\. |
| Main’s initial&#32;`local://`&#32;mapping | It is captured for the initial background run\;&#32;later Main session changes do not retarget that captured mapping\. |

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

The initial tan is created headlessly\.&#32;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\,&#32;editor\,&#32;shell\/kernel state\,&#32;browser ownership\,&#32;or active provider request as one cloned runtime\.&#32;Initial extension discovery is disabled\,&#32;but that is&#32;**not**&#32;equivalent to “all custom capabilities are disabled”\:&#32;SDK custom\-tool discovery and supplied MCP proxy tools are separate paths\.

### Newly staged images are not forwarded by the launch command

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

Consequently\:

- An image already recorded in inherited conversation history may be part of the forked history\.
- An image newly staged beside&#32;`/tan …`&#32;is&#32;**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\,&#32;launch first\,&#32;focus the verified Tan ID\,&#32;then attach it to an ordinary chat message\.&#32;Alternatively\,&#32;provide an authorized\,&#32;accessible file and ask the tan to read it\.

Inspect the composer after launch\.&#32;Do not assume staged attachments were either sent or safely discarded\.

---
