Guides
Comparison results: app-shell
All nine app-shell builds from the 2026-10-15 cohort follow unchanged: three arms, three runs each. These checks grade the resulting apps, not operational safety, complete accessibility or physical-device VoiceOver behavior. Read the overview's protocol notes and limits before comparing scores.
Every run and check
app-shell, shadcn/ui, run 1: 100/100
- app-shell
- Arm: shadcn
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn/app-shell/1/score/screenshots.
app-shell, shadcn/ui, run 2: 100/100
- app-shell
- Arm: shadcn
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn/app-shell/2/score/screenshots.
app-shell, shadcn/ui, run 3: 100/100
- app-shell
- Arm: shadcn
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn/app-shell/3/score/screenshots.
app-shell, shadcn/ui with its skill, run 1: 100/100
- app-shell
- Arm: shadcn-skill
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn-skill/app-shell/1/score/screenshots.
app-shell, shadcn/ui with its skill, run 2: 100/100
- app-shell
- Arm: shadcn-skill
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn-skill/app-shell/2/score/screenshots.
app-shell, shadcn/ui with its skill, run 3: 100/100
- app-shell
- Arm: shadcn-skill
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors. axe-core's best-practice findings, which cost nothing: region in initial.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/shadcn-skill/app-shell/3/score/screenshots.
app-shell, Ouro HX, run 1: 100/100
- app-shell
- Arm: ouro
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/ouro/app-shell/1/score/screenshots.
app-shell, Ouro HX, run 2: 100/100
- app-shell
- Arm: ouro
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/ouro/app-shell/2/score/screenshots.
app-shell, Ouro HX, run 3: 100/100
- app-shell
- Arm: ouro
- Score: 100
- Typecheck: 20/20
- Lint: 10/10
- Axe: 20/20
- 50/50
Every check passed.
Problems the app had before the agent ran, which cost nothing: 0 type errors, 0 lint errors.
- At 1280px a navigation landmark labelled "Main" lists the five pages, and the one main landmark has the page as its level 1 heading
- Acceptance items: 1
- Viewport: desktop
- pass
- Following a link shows its page, marks the link current, and survives a reload
- Acceptance items: 2
- Viewport: desktop
- pass
- At 390px the column is folded behind Open navigation, and choosing a page closes it
- Acceptance items: 3
- Viewport: phone
- pass
- Escape closes the navigation on a phone and focus returns to Open navigation
- Acceptance items: 3
- Viewport: phone
- pass
- The column shows the user's name and email, and Sign out calls signOut()
- Acceptance items: 4
- Viewport: desktop
- pass
- "Skip to content" is the first Tab stop and moves focus to the main area
- Acceptance items: 5
- Viewport: desktop
- pass
- At 390px wide the page does not scroll sideways
- Acceptance items: 6
- Viewport: phone
- pass
- 390px light
- Result: pass
- 390px dark
- Result: pass
- 1280px light
- Result: pass
- 1280px dark
- Result: pass
Screenshots, as evidence only: 6 in scripts/agent-usability/runs/2026-10-15/ouro/app-shell/3/score/screenshots.