Autonomy modes (coming next)

Shows what changes when an area's owner gives agents more or less autonomy: who acts at each step, from Observe to Full.

Organism · draft · v1.0.0 · owner: Site system lead · contract 19 of 20 points (open: figma)

Do and don't

Do: Under Coming next

Rendered by autonomy-demo.ts

Open example: Autonomy modes (coming next) · Do: Under Coming next Use the full-page example to follow page links.

A plan is labelled as one.

Do: With the risk statement

Rendered by autonomy-demo.ts

Open example: Autonomy modes (coming next) · Do: With the risk statement Use the full-page example to follow page links.

Full stays off until the owner accepts the risk; the prepared controls use root-owned Japanese messages.

Don't: In the demos grid

Rendered by autonomy-demo.ts

Open example: Autonomy modes (coming next) · Don't: In the demos grid Use the full-page example to follow page links.

Plans never sit with running demos.

Don't: Without its honesty caption

Rendered by autonomy-demo.ts

Open example: Autonomy modes (coming next) · Don't: Without its honesty caption Use the full-page example to follow page links.

It would read as built.

Rules

RuleWhyCheck
Autonomy modes (coming next) is computed by Loom's code from a sample area and the autonomy rules in Loom's governance records, not drawn by hand.A showcase is proof only if the product's own code produced what it shows.Automated: scripts/site/interactives/check.ts (recomputes the showcase data and fails on drift)
Shown only under a Coming next heading, with the honesty caption.The capability is not built; the site describes only what runs today (owner, 26 Oct).Automated: markdown status gate (concept claims only under Coming next)

API

PropTypeRequiredDefaultWhat it does
instanceKeystringNoOptional deterministic scope for repeated root IDs and local ID references. Singleton omission preserves public anchors. Up to64 letters/digits/underscore/hyphen starting with a letter; repeated instances need distinct keys.
langen | jaNo"en"Prepared native control locale. Existing static explanatory and fallback copy remains English and is marked lang=en; native Japanese review remains open.

Contract details

The full contract: identity, anatomy, variants, states, tokens, layout, motion, accessibility, content, tests

Identity

AspectValue
Idautonomy-demo
LayerOrganisms
Categoryshowcase
OwnerSite system lead
Statusdraft
Version1.0.0
Sourceapps/showcase/site/system/organisms/autonomy-demo.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26Autonomy modes (coming next): computed by Loom's code from a sample area and the autonomy rules in Loom's governance records.

Use when

  • Only under Coming next, on its demo page. Why: Agents acting on their own under these modes is not built yet; the demo shows the plan with sample data.

Do not use when

  • In the demos grid or as proof. Why: It is a plan, so it never sits with the demos that show running code.

Anatomy

PartWhat it is
rootdiv.demo-autonomy
controlThe mode slider
flowThe steps with who acts
guardThe risk statement Full needs
captionComing next · sample data

Made of: showcase-frame, control, callout, caption.

Used in: pages directly.

Variants

VariantWhenWhy
fullOn its demo page and its section.The whole experience where the claim is made.

States

StateRendered or not applicable
defaultSuggest is selected; static sample modes remain readable without enhancement.
hoverNative controls retain their authored hover affordance.
focus-visibleNative slider, checkbox and buttons retain visible focus; revert returns focus to Run.
activeRun advances the authored illustrative flow; there is no autoplay or Pause control.
disabledFull Run is disabled until its risk checkbox is accepted.
loadingOriginal English sample modes remain readable while root-local preparation and chunk loading run.
emptyNot applicable: The illustrative plan is source-authored and has no empty data variant.
errorPreparation/initialization failure retains or restores static English sample modes; host records failure and remount may retry.
currentSlider aria-valuetext names the selected mode; current flow step and its actor are named in text.
visitedNot applicable: These controls do not use navigation history.
expandedNot applicable: No disclosure or expanded state is provided.

Tokens

PartToken
step.who--type-label
risk.rule--rule --madder-ink
--autonomy-demo-margin-top-space-2var(--space-2)
--autonomy-demo-gap-space-6var(--space-6)
--autonomy-demo-gap-space-4var(--space-4)
--autonomy-demo-font-type-labelvar(--type-label)
--autonomy-demo-color-ink-2var(--ink-2)
--autonomy-demo-accent-color-indigo-inkvar(--indigo-ink)
--autonomy-demo-gap-space-3var(--space-3)
--autonomy-demo-padding-space-2var(--space-2)
--autonomy-demo-border-top-linevar(--line)
--autonomy-demo-color-inkvar(--ink)
--autonomy-demo-border-top-color-indigo-inkvar(--indigo-ink)
--autonomy-demo-gap-space-5var(--space-5)
--autonomy-demo-padding-space-5var(--space-5)
--autonomy-demo-background-saffron-softvar(--saffron-soft)
--autonomy-demo-border-radius-radiusvar(--radius)
--autonomy-demo-font-size-fs-smallvar(--fs-small)
--autonomy-demo-margin-space-1var(--space-1)
--autonomy-demo-accent-color-saffron-inkvar(--saffron-ink)
--autonomy-demo-padding-top-space-7var(--space-7)
--autonomy-demo-top-space-8var(--space-8)
--autonomy-demo-border-top-line-strongvar(--line-strong)
--autonomy-demo-gap-space-2var(--space-2)
--autonomy-demo-font-size-fs-labelvar(--fs-label)
--autonomy-demo-transition-dur-slowvar(--dur-slow)
--autonomy-demo-background-surfacevar(--surface)
--autonomy-demo-border-line-strongvar(--line-strong)
--autonomy-demo-border-color-madder-inkvar(--madder-ink)
--autonomy-demo-color-madder-inkvar(--madder-ink)
--autonomy-demo-background-indigo-inkvar(--indigo-ink)
--autonomy-demo-border-color-indigo-inkvar(--indigo-ink)
--autonomy-demo-background-madder-inkvar(--madder-ink)
--autonomy-demo-box-shadow-indigo-softvar(--indigo-soft)
--autonomy-demo-top-space-5var(--space-5)
--autonomy-demo-margin-left-space-3var(--space-3)
--autonomy-demo-transition-dur-weavevar(--dur-weave)
--autonomy-demo-border-top-rule-hairvar(--rule-hair)
--autonomy-demo-border-top-indigo-inkvar(--indigo-ink)
--autonomy-demo-border-linevar(--line)
--autonomy-demo-background-cottonvar(--cotton)
--autonomy-demo-top-space-4var(--space-4)
--autonomy-demo-bottom-space-4var(--space-4)
--autonomy-demo-left-space-4var(--space-4)
--autonomy-demo-border-left-line-strongvar(--line-strong)
--autonomy-demo-padding-space-3var(--space-3)
--autonomy-demo-padding-space-7var(--space-7)
--autonomy-demo-font-type-strongvar(--type-strong)
--autonomy-demo-color-indigo-inkvar(--indigo-ink)
--autonomy-demo-gap-space-7var(--space-7)
--autonomy-demo-margin-top-space-10var(--space-10)
--autonomy-demo-margin-top-space-13var(--space-13)

Layout

AspectValue
breakpointsRequired review at 390, 768, 1024 and 1440 px; execution is not implied by this declaration; columns stack under 768 px and controls fill the row on phones.
wrappingText wraps; code panes scroll inside their own focusable region.
textExpansionJapanese strings come from the i18n tables and wrap; engine output stays English.

Spacing and rhythm

AspectValue
internalInside the Showcase frame's padding, controls and caption at its foot.
externalFull width of its section.
rhythmOne showcase per section, after the section's claim (D-SITE-008).

Motion

AspectValue
movesThe shuttle moves along the flow when a change is run.
triggerThe Run a change button.
duration--dur-weave per step
easing--ease-standard
interruptibleRunning again restarts.
reducedThe flow shows its final state at once.
whyIt shows who acts, step by step.

Runtime and reuse

  1. stylesheet: /css/site.css. Built Site tokens, core and registered element CSS; preserve modes, focus and responsive rules.

  2. stylesheet: /css/demos.css. Existing legacy demo styles where the rendered specimen uses them.

  3. font: /fonts/. Self-hosted files referenced by Site @font-face, with licences; Japanese locale overrides remain applicable.

  4. data: /i18n/ja.json. Required for a Japanese root; English interface fallbacks are authored in source. Root language changes require disposal and fresh preparation.

  5. Static fallback: Original build-time specimen remains readable before loading and after chunk/initialization failure; enhancement controls retain authored hidden state.

  6. Before DOM initialization the configured host awaits apps/showcase/site/demos/autonomy.ts#prepare for this root with a mount-owned AbortSignal. Preparation must throw on missing/invalid data; disposal/replacement aborts pending work, and a stale result cannot initialize or claim ready.

  7. Configured initializer: apps/showcase/site/demos/autonomy.ts#init. The host owns transactional static-markup restoration and runtime state.

  8. Consumer module (imports relative to the configured source root):
    import { createRuntimeHost } from "./src/workflows/runtime-host";
    import { SITE_RUNTIMES } from "./apps/showcase/site/runtime-registry";
    const definition = SITE_RUNTIMES.find(entry => entry.binding.id === "autonomy");
    if (!definition || definition.binding.lifecycle.kind !== "managed") throw new Error("Managed runtime binding unavailable");
    const host = createRuntimeHost([definition]);
    export function mountRuntime(container: ParentNode) { return host.mountAll(container); }
  9. After inserting the rendered markup, call mountRuntime(container) for the container holding [data-demo="autonomy"]. Retain the returned disposal function and call it before removing, replacing or remounting, including every Storybook args render. The configured host restores captured static markup/attributes on disposal or caught load/initialization failure; retry starts a fresh managed remount.

Accessibility passport

AspectValue
roleregion with a heading, or a figure
nameIts heading or caption
keyboardTab to the controls; Space plays or pauses; arrows move the steps; End shows the last step.
focusControls in reading order; focus never moves on its own.
screenReaderManual frame selection and pause announce their settled content. Explicit Play announces the final settled summary once; autoplay and system interruption/disposal stay silent. Legacy initializers outside the shared player remain explicitly unassessed.
contrastInk on surface 14:1; state dyes only as marks with words.
targetControls are 44 px.

Content

SlotLengthVoice
caption4 wordsComing next · sample data

Good: “Coming next · sample data”

Bad: “Live autonomy”

Japanese: Static explanatory/fallback copy remains English and is explicitly labelled. Prepared controls use root-owned EN/JA catalogue messages; native Japanese acceptance remains open.

Icons and illustrations

None: this element uses no icon or illustration of its own.

Decisions and exceptions

Usage

9 uses across the built pages (measured by npm run site:system).

Tests

AspectValue
unittests/unit/site-system.test.ts: renders every do and don't example through the registry and checks the classes it owns
visualNot yet: there are no screenshot baselines; the Library page is checked for sideways scroll at 1440 px by tests/site/system.spec.ts
a11ytests/site/system.spec.ts: axe (0 serious or critical) on the element's Library page in light and dark
parityscripts/site/system/check.ts: Library examples are rendered by the same render function the site imports

Figma

not-yet: The Loom Site Figma library is the last stage of the plan; this element is not mapped yet.

Open in Storybook

Start with a conversation about your system.

We read your system, show you what we found, and agree with your team what to fix first.