What arrives in your repository

Shows the pull request Loom opens: its files, checks and permissions, so the reader sees that every change is reviewable and Loom never merges.

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

Do and don't

Do: The pull request

Rendered by repo-change.ts

Open example: What arrives in your repository · Do: The pull request Use the full-page example to follow page links.

Every file and check is visible.

Do: Japanese

Rendered by repo-change.ts

Open example: What arrives in your repository · Do: Japanese Use the full-page example to follow page links.

Translated interface.

Don't: Claimed as a client run

Rendered by repo-change.ts

Open example: What arrives in your repository · Don't: Claimed as a client run Use the full-page example to follow page links.

It is a sample repository.

Don't: Without the never list

Rendered by repo-change.ts

Open example: What arrives in your repository · Don't: Without the never list Use the full-page example to follow page links.

What Loom never does is part of the proof.

Rules

RuleWhyCheck
What arrives in your repository is computed by Loom's code from a pull request Loom's own commands write on a sample repository at build time, 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)
The showcase states that Loom never approves or merges.Control stays with the team; the site must say so where the change is shown.Automated: scripts/site/interactives/check.ts (checkRepoChange)

API

PropTypeRequiredDefaultWhat it does
langen | jaNo"en"Interface language.

Contract details

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

Identity

AspectValue
Idrepo-change
LayerOrganisms
Categoryshowcase
OwnerSite system lead
Statusbeta
Version1.0.0
Sourceapps/showcase/site/system/organisms/repo-change.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26What arrives in your repository: computed by Loom's code from a pull request Loom's own commands write on a sample repository at build time.

Use when

  • Where the page says Loom writes only through reviewable changes. Why: The real pull request is the proof.

Do not use when

  • To suggest Loom ran on a client repository. Why: It ran on a sample repository; the caption says so.

Anatomy

PartWhat it is
rootdiv.ix-rc
prThe pull request head and state
filesChanged files
checksCheck results with state words
permsWhat the App may and may never do
captionSample repository, Loom's own commands

Made of: showcase-frame, finding, table, 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
defaultBuild-time sample pull request, checks, permissions and closed native file disclosures are complete without scripting.
hoverNative summary/link affordances remain available.
focus-visibleFile summaries, code pre regions and the permissions table wrapper take native focus with the Site ring.
activeEnter/Space on a summary toggles its native details; no timed playback or Pause control exists.
disabledNot applicable: Native file disclosures are available; there is no disabled-file API.
loadingNot applicable: Sample repository output is read at build time; no optional runtime/data preparation is required for these disclosures.
emptyNot applicable: The fixed sample record supplies files/checks; there is no caller empty-data variant.
errorNot applicable: Missing/stale/invalid sample data is a build/check failure. This read-only renderer has no client request/retry error view.
currentNot applicable: Files are independent details disclosures, not a single current tab/frame.
visitedNot applicable: No visited state on this root; any contained native links retain their own browser history.
expandedEach native details[open] reveals its file preview; the remaining-files disclosure reveals its list. Multiple files may be open.

Tokens

PartToken
check.success--teal-ink word
check.failure--madder-ink word
never.rule--rule --ink
--repo-change-ix-ok-teal-inkvar(--teal-ink)
--repo-change-ix-wait-saffron-inkvar(--saffron-ink)
--repo-change-ix-broken-madder-inkvar(--madder-ink)
--repo-change-ix-action-indigo-inkvar(--indigo-ink)
--repo-change-ix-ink-inkvar(--ink)
--repo-change-ix-ink-2-ink-2var(--ink-2)
--repo-change-ix-line-linevar(--line)
--repo-change-ix-surface-surfacevar(--surface)
--repo-change-ix-ground-cottonvar(--cotton)
--repo-change-padding-space-6var(--space-6)
--repo-change-padding-space-8var(--space-8)
--repo-change-margin-space-8var(--space-8)
--repo-change-margin-space-5var(--space-5)
--repo-change-font-type-labelvar(--type-label)
--repo-change-padding-space-2var(--space-2)
--repo-change-padding-space-4var(--space-4)
--repo-change-padding-bottom-space-5var(--space-5)
--repo-change-margin-bottom-space-6var(--space-6)
--repo-change-font-type-strongvar(--type-strong)
--repo-change-margin-space-2var(--space-2)
--repo-change-padding-space-3var(--space-3)
--repo-change-margin-right-space-3var(--space-3)
--repo-change-font-size-fs-smallvar(--fs-small)
--repo-change-gap-space-7var(--space-7)
--repo-change-gap-space-9var(--space-9)
--repo-change-margin-space-4var(--space-4)
--repo-change-gap-space-5var(--space-5)
--repo-change-outline-focusvar(--focus)
--repo-change-padding-space-5var(--space-5)
--repo-change-margin-top-space-4var(--space-4)
--repo-change-padding-left-space-7var(--space-7)
--repo-change-gap-space-1var(--space-1)
--repo-change-margin-space-7var(--space-7)
--repo-change-border-top-rule-hairvar(--rule-hair)
--repo-change-margin-space-6var(--space-6)
--repo-change-margin-space-3var(--space-3)
--repo-change-gap-space-2var(--space-2)

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
NoneA pull request is read, not played.

Runtime and reuse

  1. Render-only element; mount any registered child enhancements separately. Preserve required Site CSS, fonts, responsive and locale rules from nativeElement.

Accessibility passport

AspectValue
roleRead-only sample content with native details/summary, focusable code and a labelled permissions table region.
nameIts heading or caption
keyboardTab to a file summary; Enter/Space toggles it; focusable code/table regions scroll with native keyboard operation.
focusOpening a file keeps focus on its summary; code/table regions follow in reading order.
screenReaderNative disclosure expanded state, actual check words and explicit no-merge/sample provenance; no frame announcements.
contrastInk on surface 14:1; state dyes only as marks with words.
targetControls are 44 px.

Content

SlotLengthVoice
caption2 sentencesWritten by Loom's own commands on a sample repository

Good: “Generated by Loom's own commands on a sample repository when this page was built.”

Bad: “Loom fixes your repo automatically.”

Japanese: i18n.ts ix.rc.*.

Icons and illustrations

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

Decisions and exceptions

Usage

220 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.