> ## Documentation Index
> Fetch the complete documentation index at: https://smithers.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# trellis

> Experimental prompt-first workflow where Sol or Fable grows a bounded delegation graph from settled evidence.

`trellis` is the repository's executable Dynamic Delegation v2 workflow. It is
an experimental local workflow, not yet part of the default
`bunx smithers-orchestrator init`
pack. It maps Sol/Fable authors, a Terra validator, and a Luna implementer into
the [`<Trellis>`](/components/trellis) component and declares the real
`Smithers Trellis` custom UI.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
bunx smithers-orchestrator workflow run trellis \
  --prompt "Implement the feature, review it independently, and prove it works" \
  --max-concurrency 4
```

The explicit flag is required even at the default value: Trellis verifies that
its component cap and the persisted run cap are identical. To use another
value, pass it both as workflow input and as the run option:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
bunx smithers-orchestrator workflow run trellis \
  --input '{"prompt":"Research and implement the change","maxConcurrency":2}' \
  --max-concurrency 2
```

## Inputs

| Input                     | Type              | Default                                          |       |
| ------------------------- | ----------------- | ------------------------------------------------ | ----- |
| `prompt`                  | string            | `Build the requested result and prove it works.` |       |
| `role`                    | \`sol             | fable\`                                          | `sol` |
| `work`                    | Trellis work kind | `synthesize`                                     |       |
| `maxConcurrency`          | integer `1..16`   | `4`                                              |       |
| `maxAuthorGenerations`    | integer `1..12`   | `4`                                              |       |
| `maxAuthorDepth`          | integer `1..8`    | `4`                                              |       |
| `maxTotalAuthorTurns`     | integer `1..256`  | `32`                                             |       |
| `criticalExecutionPolicy` | object            | omitted; direct Sol/Fable execution disabled     |       |

The optional policy contains `allowedCategories`, normalized workspace-relative
`allowedPathPrefixes`, and `maxChangedLines` (`1..500`). It is a trusted
per-execution admission ceiling; Phase A does not claim measured diff or
filesystem-sandbox enforcement. For example:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
bunx smithers-orchestrator workflow run trellis \
  --input '{"prompt":"Fix the protocol core and prove replay","criticalExecutionPolicy":{"allowedCategories":["protocol_core"],"allowedPathPrefixes":["packages/engine/src"],"maxChangedLines":40}}' \
  --max-concurrency 4
```

## UI

Open the workflow UI to launch and inspect runs:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
bunx smithers-orchestrator ui --workflow trellis
```

The launcher submits the same selected concurrency as workflow input and run
policy. The live surface shows the canonical final outcome, author fuel,
accepted or rejected validation generations, the real execution tree, exact
node outputs, and durable events. It discovers the semantic final node from
trusted Trellis metadata rather than parsing hashed physical IDs.

The controls are labeled as defaults for the **next launch**; they are not
presented as configuration recovered from whichever historical run is selected.
Each new run instead persists its pinned root concurrency, total author-turn
cap, generation/depth limits, and per-invocation allocated/remaining author
fuel in trusted Trellis task metadata. The selected-run strip reads those
fields from the selected run, including runs launched outside the UI. A
root-local remaining value is one immutable allocation, not a mutable global
fuel counter; older runs without these fields are labeled as not persisted.
The capability strip deliberately reports Phase A gaps: questions are
unavailable, hierarchical token/USD budgets are not enforced, and tool or
filesystem authority depends on the configured agent adapter and sandbox.
Prompt restrictions alone are advisory. Rejected IR is visible but never
described as executed. The current UI launcher omits a critical-execution
policy, so its runs force implementation down to Terra/Luna; policy-enabled
runs can still be launched through workflow input and inspected in the UI.

## Agent mapping

* Sol: synthesis, orchestration, refinement, and exceptional critical work.
* Fable: alternate root or nested author.
* Terra: bounded planning, validation, synthesis, and substantial worker goals.
* Luna: concrete research, POC, execution, review, or preview goals.

Sol/Fable may recursively author subworkflows. Terra/Luna can only complete or
block their assigned goal. Every child result passes assignment-aware
settlement before it reaches an author continuation.
