Skip to content

Agent window demo in the challenge schema - #114

Merged
wab merged 2 commits into
mainfrom
claude/challenge-ai-demo-fbf6f8
Oct 22, 2026
Merged

wab merged 2 commits into
mainfrom
claude/challenge-ai-demo-fbf6f8

Conversation

@wab

@wab wab commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

What

Optional aiBridge.demo (agent window) in scripts/schemas/challenge.schema.js, per spec #91, section "aiBridge.demo".

  • Frame: channel ≤ 28, agent ≤ 24, time 24-hour HH:MM, opening {kind: question | statement, text ≤ 70}, footer ≤ 60, optional note ≤ 90.
  • elements: 1 to 4, discriminated on type:
    • kpis: items, exactly 3 of {value ≤ 10, label ≤ 16}
    • figure: {value ≤ 12, caption ≤ 48}
    • progress: percent and optional target, integers 0 to 100
    • status: {label ≤ 24, value ≤ 32, state: ok | alert}
    • buttons: labels, 1 to 2, each ≤ 20
  • Every object is strict, like the rest of the schema.
  • An unquoted time such as 14:32 is read by YAML as the base 60 number 872. The error then says to quote the time.

Fixtures

The five mockup windows (ocobo-revops/prototype, enjeux-*.html) are in their golden fixtures, text verbatim. Revenue AI keeps none and still passes. Each window has four elements, and a test asserts it.

Tests (seam 1)

scripts/__tests__/challenge.schema.test.js covers:

  • each element type, an unknown type, a missing type and a fifth element
  • each cap at its limit and one past it
  • malformed times (not trimmed, see the schema comment) and the unquoted YAML time
  • both opening.kind values
  • progress bounds, status states and button counts
  • unknown keys inside the demo
  • missing fields and unknown keys in the frame, the opening and every element type
  • the file without a demo

Review notes

  • Bold lead lost, accepted. The Customer Experience mockup opens with a bold lead: "Risque de départ détecté. Score de santé : 72 → 54." The schema stores the opening as plain text, so the bold is lost. This loss is accepted. An optional opening.lead field is out of scope here.
  • note stays optional (assumption A3, fictional accounts). No mockup carries one yet.
  • French/English consistency is deferred. Matching time and element type sequence between languages belongs to French and English consistency of challenge files #99.
  • Expected conflict with the partner PR (Partner block in the challenge schema #97). It edits the same schema, test tables and fixtures. Both sides only add rows, so the rebase conflict is mechanical.

Closes #96

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

🔍 Preview: https://website-5x2mhgyh3-ocobo-22231b32.vercel.app

Built from website main with content from this PR's branch.

wab added 2 commits October 22, 2026 15:24
Optional aiBridge.demo: a frame (channel, agent, time, opening, footer,
note) and 1 to 4 elements discriminated on type (kpis, figure, progress,
status, buttons), with the caps from spec #91. The five mockup windows
join their golden fixtures; Revenue AI keeps none.

Closes #96
Each element type now has a missing-field and an unknown-key test, and
the opening has missing kind and text tests. The KPI count and KPI
unknown-key tests use their own element instead of the fixture order.
A comment explains why the time is not trimmed.
@wab
wab force-pushed the claude/challenge-ai-demo-fbf6f8 branch from da3bc88 to f496783 Compare October 22, 2026 13:24
@wab
wab merged commit b34a449 into main Oct 22, 2026
3 checks passed
@wab
wab deleted the claude/challenge-ai-demo-fbf6f8 branch October 22, 2026 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Agent window demo in the challenge schema

1 participant