Decision Log — my contributions beyond the AI
Format: Decision — why (the user need or insight it answers). Final prototype: 04-app/index.html (Alpenglow Combined). Ecosystem map and user flow: sections 2 and 3 of the case study (index.html). AI baseline: 01-ai-baseline/.
1. Context & users
Context (WEF Annual Meeting, Davos): about 3,000 senior leaders over five days. Official sessions run in the Congress Centre; meetings and events also happen in hotels along one long street, the Promenade. Walks are 3–16 minutes, every secured building has its own security check, badge levels control access, and each day is anchored by fixed meetings.
Primary user — time-poor executive delegate (CEO, minister): 60–90 minute gaps between one-to-one meetings. Wants the highest-value use of that time with no effort. Secondary user — first-time participant: overwhelmed by the programme, wants discovery and connections. I designed for the executive; the same planner, plain reasons and session pages that explain each session's rules help a newcomer too. A first-day guide to how Davos works is in Should.
Key user needs
Working list (2026-10-17). The final assignment document keeps only needs 1–9; 10–11 stay here for reference.
| # | Need | How the prototype answers it | Status |
|---|---|---|---|
| 1 | Find sessions relevant to my goals. Help me choose based on my interests and what I want to achieve at the event. | Planner and Explore match on registered interests and speakers I follow; the plan sheet asks "What do you want from it?" (learn about my topics, meet the right people, or both), and "Meet the right people" ranks sessions by who will be there and says so ("Daniel Ortiz will be there"); "Fits my afternoon" and "Near me" filters. | Built (two goals; finer goals such as "meet energy investors" later) |
| 2 | Build a realistic afternoon plan. Account for my available time, current location, session durations, travel and entry requirements. | Time window (now → until), starting point, "How far will you go?", walking time + live security queue per building, one time engine for every number. | Built (entry rules shown as protocol labels; invitations aren't checked) |
| 3 | Protect my important commitments. Keep confirmed networking meetings and sessions I mark as essential intact when suggesting changes. | Fixed meetings are locked ("Fixed · never moves"). Any session can be marked Must-go: the planner keeps it, adding a session that overlaps it is blocked, swipe-to-remove resists. | Built |
| 4 | Understand why a recommendation suits me. Explain its relevance and practical fit. | Plain reasons on every proposal and a "Why it's here" section on the session page (interests, speaker you follow, same building / minutes away). No % scores. | Built |
| 5 | Know whether I can actually attend. Make access requirements and availability clear. Adding a session to the plan should not imply a guaranteed seat. | Live seats bar and "X of Y left", "filling, arrive early", Full; protocol label (Public / Chatham House / Closed, invitation only); "Saving it doesn't hold a seat. Entry is first come at the door." | Built |
| 6 | Compare options and stay in control. Let me inspect details, replace recommendations and approve changes before they affect my plan. | Proposal before adding, where any session can be opened, swapped for its backup or taken out (with Undo); session page; ranked backups; every change opens a preview ("nothing changes until you confirm"); Undo on every change. | Built |
| 7 | Recover quickly when something changes. Adjust only the affected part of my afternoon. | Curveball fix in place, ranked by fit, with spare minutes before Mateo; running late; queue surge; offline. Nothing else moves. | Built |
| 8 | Know where to go and when to leave. Clear venue information and enough transition time. | Live "you are here" on Today (venue, plus room when in a session); leave times with buffers; route sheet with map, security point, room and floor directions, shuttle; venues map. | Built |
| 9 | Avoid an exhausting schedule. Leave room for breaks and informal conversations. | Pace (Light / Balanced / Packed) and a "Keep a 30-min break" switch (on by default): the planner only builds plans with at least 30 min free between items, and the proposal shows it ("38 min break at 17:00"). | Built |
| 10 | Know who's in the room before deciding to go. (Privacy: only attendees who chose to share are named; others are counted, e.g. "6 other energy leaders".) | "Who's in the room" on the session page, opt-in only. | Built |
| 11 | Understand a session's protocol at a glance (Public, Chatham House, Closed), so I know what I can share, stream or quote. | Protocol label on every card and on the session page with what it means. | Built |
Key assumptions
Merged 2026-10-17: the user's 12 assumptions, reworded where they contradicted the built app, plus the Davos context the features rely on.
- We are designing for an invited, in-person WEF delegate. This gives us a specific primary audience. We don't assume their credentials grant access to every session or independently organised event (Closed sessions show "Invitation only").
- The Davos Annual Meeting is our reference setting. The brief only says "World Economic Forum"; the Annual Meeting is its flagship event (2027: 18–22 January, Davos Congress Centre). The prototype is set on Wednesday 20 January 2027 and uses a small, clearly labelled sample agenda (people, sessions and companies are fictional), not the complete event.
- Interests and available time come prefilled from registration; the attendee confirms or edits them. A time-poor delegate shouldn't fill in a form from scratch. The plan sheet opens with everything already filled in, so she can plan in one tap: a small summary at the top ("12:50 → 17:30 · Around 🔒 Mateo 15:25 · 🔒 Dinner 17:45"), then every setting visible and prefilled, and a live count next to the button ("10 sessions fit · 3 will be picked"). She can say what she wants in her own words, typed or by voice ("AI policy, nothing far, starting in an hour"), and the sheet shows what it understood as tags so she can check it. An earlier version hid the settings behind an Adjust button to avoid the baseline's "too many questions" problem; I reverted that, because the settings are already answered from her profile and calendar, so she isn't asked anything, and one extra tap to see them was worse than a longer sheet. If nothing fits, the sheet says so and offers the two changes that help most ("Add AI · 2 fit", "Allow any distance · 1 fit").
- Location is automatic when allowed (GPS outdoors, beacons indoors), manual otherwise. Location permission is optional: the core flow works by picking a starting venue by hand.
- Fixed commitments are synced from the attendee's calendar (simulated in the prototype). The app never moves them.
- Basic session information is available: titles, topics, speakers, start and end times, venues, protocol and admission rules.
- Availability updates can reach the app for supported sessions (e.g. seat counts from badge scans at the door). We simulate them in the prototype; we haven't established that every Davos venue provides live capacity data.
- Travel and entry buffers can be estimated. Walking times come from public listings (Belvédère ~3 min from the Congress Centre, Morosani ~13 min, Seehof ~16 min); security queues are per-entrance estimates. Prototype values are labelled assumptions, not guaranteed walking or queue times.
- The affected session is saved, but its seat is not guaranteed. Entry is first come at the door. This explains how it can become full 20 minutes before it starts without implying that a confirmed reservation has disappeared.
- The networking meeting is a fixed commitment. The app never moves it, and never asks the other person to move it either. Everything else is planned around it.
- Our test scenario is one afternoon: three sessions, a 1:1 with Mateo at 15:25 and dinner at 17:45. This is a design choice, not a measured average of WEF attendance.
- A suitable replacement may not always exist. The app offers a break (skip and prep), a verified remote alternative (live stream or replay, Public sessions only), or says plainly that nothing fits.
- Chatham House sessions have an official note-taker (a rapporteur), and the Forum shares those notes with the app, without names. The 3-point brief in Missed sessions depends on this. We haven't confirmed that WEF provides it.
Davos context the features rely on
- Geography: one town, one street. Official sessions are in the Congress Centre; hotels along the Promenade host meetings and events. Many participants stay in Davos; others stay in Klosters (~20 km) and use Forum shuttles. A venue shuttle loops every ~8 minutes.
- Security is per building, not per session. You pass a check entering a secured building; moving between rooms inside it needs no new check.
- Phone use happens in short glances, on the move, often with gloves on → large targets, one action per card, status you can read in a second.
- Signal can be patchy → the plan, maps, routes and briefs must work offline.
- Protocol: only Public sessions are streamed and replayed. Chatham House briefs come from the official rapporteur's notes, summarised by AI and unattributed by design; these sessions are never recorded or streamed.
- Privacy: people appear in the app only if they chose to share their attendance.
MVP priorities
| Must (built in the prototype) | Should (designed next) | Later |
|---|---|---|
| Plan my afternoon (time window, interests, start location, distance, pace) | Plan the whole week in one go, the evening before (Calendar already plans one day at a time) | Indoor floor maps and crowd heat |
| Plain-language "why this" reasons (no fake % scores) | Search speakers by expertise ("AI policy") | AI introductions between people |
| Timeline anchored on fixed meetings, with leave times (walk + live security queue) | The other person's accept / decline flow for meeting requests | Group / delegation agendas |
| Exact conflict and tight-connection detection | Room or time changes re-plan automatically, with a preview | Organiser broadcast console |
| Live capacity alert with swap in place (curveball) | Lock-screen live activity while walking; watch complication | Chat assistant |
| Protocol label on every session | A first-day guide to how Davos works, for first-time participants | |
| "Who's in the room" (opt-in) | ||
| Itinerary editing: add, remove, swap, stream instead, undo | ||
| Route with security point, room directions and shuttle | ||
| Speakers, people and meeting requests; updates list |
2. Process decisions
- Generated the AI baseline from the plain brief prompt only (fresh agent, no context), so the baseline is an honest starting point and the critique reflects real AI weaknesses, not a weakened strawman. Prompt saved verbatim in
01-ai-baseline/PROMPT.md; output kept unedited; 41 evidence screenshots. - Built the prototype as working code rather than static screens. The brief asks for a functional prototype; real state changes (swaps, live capacity, recalculated walks, alerts during meetings, offline) prove the flow works.
- Explored visual directions on live phones before committing. Six directions of the same screen, cut to four, combined, compared as two full apps, then one final direction (see §7). Every discarded direction is kept in
_backup/so the reasoning can be shown. - Checked the real world before stating it. Davos dates, venue distances and how security works were checked against public sources; the data was corrected where it was wrong (§9).
3. Critique of the AI baseline
- Time logic breaks at the critical moment. At 13:55 Up next reads "In 5 min · Leave by 13:53" with an amber "Soon" pill — the leave-by has already passed and nothing tells the user they're late. (Code: "Soon" shows whenever leave-by is within 10 min, including when it's in the past; there is no "late" state.) —
07-late-leave-by,07b-late-leave-by-snow - Numbers contradict each other. At the same moment (12:40) free time reads 4h 15m on Home, a 5h 50m window on the Plan form and 1h 57m in the Plan result; My day counts "2h 30m free" starting before "Now". Home says 2 commitments, My day says 3 still to come. After a swap, the plan claims "4 new sessions" while still showing "5 in plan". One contradiction and an executive stops trusting the app. —
10a–10h,05b - The curveball isn't solved. The "session full" alert fires on a fixed 5-second timer after accepting a plan, not in relation to when the session starts. It offers a single alternative labelled only by match %, walk minutes and "Filling fast" — no "ends X, Y min to spare before your meeting", no ranking by fit, no "skip and prep for the meeting". The scenario isn't even staged: the bilateral is at 16:15, hours after the session, not immediately after. —
08-capacity-alert,08a - Conflicts are binary and imprecise. Adding a 14:30–15:15 session over a 14:00–15:00 one opens a red "Overlaps" label with no time range; the fit card says "Overlaps 14:00–15:00" — the whole saved slot, not the real 30-min overlap (14:30–15:00). Every overlap is treated as all-or-nothing. —
09-conflict-sheet,09b–09d - Fake AI confidence. Scores like 98% vs 37% sit on every card, implying precision. (Code: the % is computed from the session's ID number and start time, not real relevance.) A CEO can't act on "79%" — they need a reason. —
02-discover,05-plan-result - Built for browsing, not for a time-poor executive. A six-question form for someone with no time; 4–6 chips per card; red used for "few seats", "full", "conflict" and "room change" alike; four overlapping ways to edit (Edit, Adjust, •••, Re-plan rest of day), where "Re-plan rest of day" risks exactly what the brief forbids — rebuilding the itinerary. The private bilateral is styled like any other row. —
04-plan-form-full,11a–11e - Generic visual identity. Navy-and-sparkle SaaS look with nothing that feels like WEF, Davos or a trusted assistant. —
01-today
Evidence: 01-ai-baseline/screenshots/ (index in INDEX.md)
How the final answers each weakness
| # | Final prototype |
|---|---|
| 1 | Real "late" and "tight" states with the exact minutes ("You're 3 min behind"), "Leave now" instead of a past time, and options to recover. |
| 2 | One time engine: Today, Calendar, routes, fixes and free-time totals all read the same numbers. |
| 3 | Fires at T-20 relative to the session; fixes ranked by fit with exact spare minutes before Mateo; one tap to swap; undo. |
| 4 | Conflict sheet with the real overlap ("Overlaps … by 45 min, 16:15–17:00"), the exact leave time, or how many minutes of it you would actually catch. Calendar also shows a conflict she didn't cause. When the organisers move a session into a fixed meeting, its card says "Moved to 15:45 by the organisers" and "Overlaps Mateo by 10 min", with Swap it or Keep both (which says she'd arrive 16:11, 26 min late). |
| 5 | Plain reasons ("AI and Energy, two of your interests · In the building you'll already be in"). No percentages anywhere. |
| 6 | Summary-first plan sheet: plan in one tap, or say it in your own words (typed or voice), with every setting prefilled and visible, and a live "N fit · M will be picked" count that suggests what to loosen when nothing fits (end time picked by commitment, location from where you are with Change, breaks as one switch); one action line on Today; red only for real risk; fixed meetings marked with a lock and never removable. "Plan the rest of my afternoon" is not the baseline's "re-plan the day": it only replaces what is still ahead (fixed meetings, must-go sessions and anything already started stay), shows exactly what it adds and drops before you accept, has Undo, and is hidden while a session is at risk, so it is never the fix for a broken slot. |
| 7 | Alpenglow Combined: soft Davos light, liquid glass, winter Davos photography, a fixed type and spacing system (§7). |
4. Material improvements (brief items a / b / c)
a. Product / system decision — Fixed meetings are anchors, one time engine. The plan is built backwards from the meetings that can't move. One engine is the single source of truth: every leave time = walk + live security queue + a buffer (5 min before fixed meetings, 10 for sessions that are filling, 3 otherwise; if the previous item ends 15 min or less before you must leave, you leave when it ends). Nothing may end too close to a meeting to reach it. Fixes weaknesses 1–3 in one decision.
b. Original interaction — Swap in place. The AI baseline's capacity alert offered a single swap labelled with a match percentage, applied with no preview (weakness 3). Here, when a session breaks, its card expands from where you tapped into the fix: options to pick from, with one button at the bottom that says what happens: three other sessions, the best fit saying why ("Same topic (Future of Work) · 63 seats left · ends 15:10 in Mateo's building"), then watch or skip, with the reason one option is not suggested ("Trade in a Fragmented World isn't suggested. It runs until 15:30, so you'd have to leave at 15:18 for Mateo and miss the last 12 min."). Each option already shows its leave time, seats and minutes to spare before Mateo, so the button acts straight away: "Swapped to Reskilling at Scale. Leave 14:23. Nothing else moved.", with Undo in the toast. Only that slot changes. (An earlier version opened a second preview sheet on top of the options; on review it repeated the same facts and stacked two layers for a reversible change, so I removed it.) Backups are pre-computed for every session, so they are always waiting. In Calendar, every session card she can still change has a ••• menu with Swap session and Remove session (never on fixed meetings). Swap opens the options, and remove comes with Undo. I first tried an Edit button that revealed icons, then icons on every card. The menu keeps the cards calm and is a pattern people already know. I kept it behind Edit so a stray tap with gloves can't remove anything.
c. Visual detail — The whole look, rebuilt. The AI's first version looked like any navy SaaS conference app (weakness 7) and used red for everything (weakness 6). I replaced it with one visual system, Alpenglow (§7): soft Davos light, glass cards, winter Davos photography, and a fixed type and spacing scale. Opening a session turns its venue photo into the whole screen. The detail that carries it: colour means one thing only. The screen warms only when a decision is needed, red appears only for real risk, green only for "on time", so she can read her situation at a glance, on the move, with gloves on. After a fix, the greeting turns to "Sorted, Amara".
5. Original feature beyond the brief
Missed sessions — when you can't be in the room, what was said still reaches you, and the session's protocol decides how. The brief asks for recovery from a full session, not for any of this. The AI baseline already offered a plain livestream for a full session; what is new is that delivery follows the protocol:
- Chatham House → never streamed or recorded. You get an unattributed 3-point brief from the rapporteur's notes afterwards; "Missed this morning" on Today shows one from the 09:00 session.
- Closed → not streamed, recorded or summarised, and the app says so rather than offering it.
- Public → watch live from a lounge steps from your next meeting; a mini-player keeps the audio going while you walk. "Watch something instead" lists the session itself, any other Public session live in that slot ("watch until 15:15, then walk over to Mateo") and replays from earlier, each saying whether it matches your interests.
- "Stay with Mateo, send me the brief" → when a meeting runs over, staying is always offered, because a long meeting is often the point of Davos. If Mateo is going to the same session and she'd only be a few minutes late, "Walk over with Mateo" comes first.
The curveball uses the Public branch as one of its recovery options; the feature itself is the protocol-aware delivery of what you missed.
Supporting interaction: "Request a meeting" with anyone who shares their attendance, offering only 15-minute slots that fit both plans with no extra walking.
6. Curveball resolution (staged exactly as the brief describes)
- 14:30–15:15 The Jobs AI Will Create (Congress Centre, Sanada 2) → 1:1 with Mateo Rossi at 15:25 (Hotel Belvédère, Salon 2, 3 min walk).
- Capacity changes are live: the session's seats count down with the clock (31 at 12:50 → 9 at 13:50 → 2 at 14:05 → full at 14:10). At 13:50, with 9 seats left, one heads-up: "The Jobs AI Will Create is filling fast. Only 9 seats left. Head over as soon as you can. If it fills, Reskilling at Scale is ready." The head-over time moves to "as soon as your session ends".
- At 14:10 (T-20) the session hits capacity. A notification arrives: "The Jobs AI Will Create is now full. Pick something else for 14:30–15:15." The fix card says the same in one line; the earlier version also said "Mateo at 15:25 is safe" and repeated seat counts, which I cut on review as noise: the options themselves show the minutes to spare before Mateo.
- The fix: pick one option, then one button at the bottom. Go to another session instead: Reskilling at Scale (best fit: same topic, 63 seats left, ends 15:10 in Mateo's building) · AI at Work: The First 100 Days · The Four-Day Week, Two Years On. Or: Watch something instead. Skip it (prep for Mateo, Nordhaven brief ready) is a second button next to the main one.
- One tap → swapped, with the leave time in the toast → Undo. The rest of the itinerary never moves.
- If a seat comes free again (panel switch "A seat opens"): one notification, always "1 seat, first come, not held for you". If she hadn't picked a fix yet, her plan simply goes back to the session (head over now; the backup is named in case the seat is gone). If she had already swapped, Today shows "A seat opened… Tap to switch back", which opens the usual preview ("Switch back") → confirm → Undo. Only for the session she chose, and only while she can still get there before it starts.
7. Visual direction — Alpenglow Combined (final)
How we got here
- "Alpine calm" (cream, green, serif) — rejected: decorative rather than useful. Kept in
02-final/iterations/. - iOS native — rejected on review as "boring and SaaS": familiar, but it showed no design point of view.
- Six directions on live phones (Timetable, Alpenglow Glass, Venue, Bento, Briefing, Quiet Native), all with the same content, so only the design differs.
- Cut to four. I dropped Timetable and Quiet Native: too much text, no imagery, hard to scan.
- Venue rebuilt after I pointed out the blur was wrong against the reference: the photo is the whole background, with no solid fill, and a progressive blur rises as you scroll.
- Combined into Alpenglow. I took Venue's photo page for every session detail and Bento's two-up "Fits your gaps" tiles. I tried Briefing's one-sentence greeting and Bento's three-number stats row, then rejected both and returned to Alpenglow's own headline, chips and card, adding only the walk time to the card.
- Two full apps compared page by page (Alpenglow Combined vs Bento). I chose Alpenglow Combined; Bento is kept in
_backup/04-app-two-directions/.
The system
- Light only. No blue, no purple, no cream. Ink
#1B1B1B, warm greys, a soft alpenglow gradient (peach at the top, pine at the bottom), one rust for real risk, one pine green for "on time". - Type: Geist, small and fixed. 10 · 13 · 16.5 · 21 · 27 px, each step ×1.272 (√φ), so every second step is a golden step. Each size has one job: 27 the one number you act on, 21 the answer or screen title, 16.5 names of things, 13 everything you read, 10 labels you scan.
- Space and shape from the golden ratio. Fibonacci spacing 3 · 5 · 8 · 13 · 21 · 34 · 55 · 89; concentric radii 55 → 34 → 21 → 13 → 8; photo proportions 1.618 : 1. One rule overrides the scale: a card's corner is the corner of what's inside it plus the padding, so a card holding a 55px photo with 13px padding is 26 around a 13 photo (2026-10-18; 21 around 8 was concentric too, but the near-square photo looked unrelated to the round card).
- Liquid glass for cards, chips, sheets and the tab bar, with the session photo inside the glass card.
- Photography: real winter Davos (Wikimedia Commons, CC BY-SA, credited), slightly desaturated. No stock handshakes, no identifiable real people, no WEF branding.
- Motion with a reason, using spring physics:
- Cards grow from where you tapped, so you never lose your place; pull down to put them back.
- The page behind blurs back when a new one opens, to show depth.
- Swiped rows keep your flick's speed; fixed meetings resist and spring back.
- The route line draws itself from you to the venue.
- Notifications drop in from the top.
- Colour changes only when your day changes.
8. Iteration 2 — fixes from my review of the working prototype
(Made in the iOS version; all of them carry into the final.)
Timing integrity (one rule, used everywhere)
- Found: the walk row said "leave 15:20" while the meeting card said "arrive 15:20, 5 min to spare", which is impossible. Same for "head over 15:23" vs "arrive 15:17".
- Decision: the single departure rule in §4a. Copy fix: "2h 25m free before you leave for Mateo".
Today shows the whole day, and lets the attendee choose. Every item at a glance (fixed ones locked) and sessions that fit, each with a plain fit label and a + button. The user decides what to add; the app checks it fits.
Routes live on the connection, not in a Map tab. The question is always "how do I get to my next thing?": exit → walk → security point → room floor, with a shuttle alternative in snow or for long walks.
Urgency hierarchy. When something needs action it takes the top of Today and the calm line steps aside.
Never interrupt a fixed meeting, never hide anything. A security-queue alert at 15:40 during Mateo arrives straight away and says there's no need to leave early, because nothing changes before 15:55. An earlier version held the alert until the meeting ended; the user dropped that because the app can't be sure she's really in the room, and a hidden alert would fail her if she had skipped the meeting.
Running late as a choice. "Stay with Mateo, send me the brief" comes first.
Smaller fixes. The button names the action ("Swap to Reskilling at Scale", "Stream instead", "Skip it").
9. Iteration 3 — final direction and my review of it
Wider experience made clickable (the brief asks to map agenda, speakers, venues, networking and live updates):
- Speakers: a speakers list, profiles and Follow. Following feeds the plan's reasons and ranking.
- Networking: a People list (opt-in only), profiles, and Request a meeting in slots that fit both plans.
- Live updates: the bell opens an Updates list (full session, security queue, room change, speaker change, brief, requests).
- Agenda: Calendar shows the other days of the week with their fixed meetings and the sessions already chosen, and a "Plan my Thursday" button that adds the best on-topic sessions (with Undo). Explore can switch between today, Thursday and Friday.
- Everything is mapped in the case study's ecosystem overview (
index.html§2) as in the prototype / next / later.
Plan my afternoon sheet, after my review
- "Until Mateo / Until dinner" hid the actual time. Now an explicit window: From now → Until 17:30, with − / + and quick picks from the calendar. A line confirms "4h 40m · Mateo stays where it is".
- Location must be an input (the brief says "location"). Starting from is now a choice of venue, plus "How far will you go?" — this building, a short walk, or anywhere (shuttle if far).
- Six interests was arbitrary. All topics in the programme are shown, labelled "from your registration".
Session page. The description and what the protocol means now sit right under the title, so a first-time participant knows what the session is before adding it.
Route reachable from Today. The leave chip on Up next and the walk chip under the headline open the route.
Mateo is a 1:1 meeting, and is now labelled that way.
Real-world correction. Checking Davos against public sources showed our walking times and map were wrong (Seehof was 11 min; it's ~16, and Seehof and Morosani were on the wrong sides of town). Corrected to the real Promenade order; every number in the app recalculated from the engine.
10. Error and recovery states covered
Session full (curveball) · running late · tight connection (security surge) · alert during a meeting (says whether to leave early, nothing hidden) · poor signal / offline (plan, maps and briefs cached; "Updated 14:02"; changes sync when you’re back online) · heavy snow (walks +30%, "18 min (usually 14)", the shuttle leads when it's faster) · a session filling fast (one heads-up, backup named) · adding a session that overlaps (exact overlap, exact leave time) · a session that can't fit a fixed meeting or must-go (exact minutes she'd catch; save the replay and summary instead of a live stream) · a session that’s full but streamed · a seat opening again in the session that filled · the planner can’t finish (shows where it stopped, nothing changes, Try again) · not enough time (names the first session that would fit and offers to plan until then) · every change has Undo.
11. What came from me, and what came from the AI
From me (the AI did not propose these):
- Assumptions: glances on the move with gloves; venues share live security queues.
- User needs: who's in the room; protocol at a glance.
- Features: backups always waiting; "Missed sessions", delivery that follows the session's protocol (the Chatham House brief, nothing for Closed, streams and replays for Public; a plain livestream for a full session was already in the AI baseline).
- The critique: my weaknesses, sharpened and then verified against the baseline's screenshots and code.
- Improvements: commitments as anchors with one time engine; swap in place; the visual rebuild, where colour means one thing only.
- Iteration 2 review:
- timing contradictions
- routes with security and the shuttle
- urgency at the top
- holding alerts during meetings
- "Stay with Mateo"
- clear confirm labels
- the offline state
- Visual direction, as set out in my brief:
- light only; no blue, purple or cream
- small fixed type and the golden-ratio system
- liquid glass
- Apple-like physics motion, where every animation has a reason
- cards that expand in place
- swipe-to-delete
- blur on scroll
- real conference imagery
- Direction decisions:
- dropping Timetable and Quiet Native
- correcting the Venue blur against the reference
- combining Venue's detail and Bento's gap tiles into Alpenglow
- rejecting the Briefing sentence and the Bento stats row
- choosing Alpenglow Combined over Bento
- Iteration 3 review:
- an explicit time window instead of "until X"
- distance from the start location
- more topics
- the description under the title
- the route visible from Today
- a list of streams instead of one
- clarifying Mateo as a 1:1
- asking how Davos really works, which exposed the wrong walking times
From the AI (Claude Code): the plain baseline; the evidence screenshots; verifying my critique claims (some didn't reproduce and were corrected); turning my decisions into the time engine, screens and motion; proposing direction variants, layouts, copy and edge cases for me to accept or reject; the research behind the Davos corrections; automated testing of every flow.
12. AI tools used and how they contributed
Tools. Claude Code (model: Claude Opus 5.5) was the only AI tool. Visual references came from Pinterest, Mobbin, Dribbble and Cosmos. The photos in the prototype are from Wikimedia Commons (credited in the prototype), not AI-generated. The icons are Lucide (ISC licence, 04-app/LICENSE-lucide.txt). There is no Figma file: the prototype is built as working code, so every state can be clicked.
| Stage | What Claude Code did | What I did |
|---|---|---|
| Research | Looked up how Davos actually works: the 2027 dates, where the venues sit on the Promenade, walking times from public listings, how security entry works. Corrected the data where it was wrong. | Asked the questions, decided what to trust and what to state as an assumption. |
| AI baseline | Generated the first usable version from the plain brief, as a fresh agent with no context. Took 41 evidence screenshots of it. | Wrote the prompt, kept the output unedited (01-ai-baseline/). |
| Critique | Checked each of my claims against the baseline's code and screenshots. Claims that didn't reproduce were corrected or dropped. | Found the weaknesses and wrote the critique (§3). |
| Design direction | Built six directions as live phones with the same content, then two full apps to compare. Proposed layouts, copy and edge cases for me to accept or reject. | Collected references (Pinterest, Mobbin, Dribbble, Cosmos, screenshots of apps I like), set the visual brief, cut six directions to four, combined them, and chose Alpenglow Combined (§7). |
| Prototype | Turned my decisions into code: the time engine, the screens, the motion. | Made the product decisions (fixed meetings as anchors, swap in place, missed sessions, the plan sheet), reviewed every iteration and sent back fixes (§8–9). |
| Checks | Ran automated browser tests of every flow, and a requirement-by-requirement check of all deliverables against the brief. | Decided what to fix, what to cut and what to present. |
How I used it. Claude Code was my researcher, builder and checker. The framing of the problem, the critique, the product decisions and the visual direction were mine; §11 lists which ideas came from me and which from the AI. The most useful pattern was asking it to verify rather than create: checking my critique against the baseline, checking Davos facts, and checking the finished work against the brief. That caught mistakes on both sides before an assessor could.
13. Plan sheet, start time (2026-10-18)
I wanted the time at the top of the plan sheet to be something she can change, not a label. She may want to plan from an hour or two from now, not only from now. The card at the top is now two tappable fields, Start and Finish by. Tapping one opens its choices in the card (Now, In 1 hour, In 2 hours or another time; Before Mateo, Before dinner or another time). The separate "Ends at" section is gone, "Starting from" (a place) is now "Leaving from" so it doesn't read like a time, the fixed meetings are a plain line ("Plans around Mateo at 15:25 and dinner at 17:45. They never move.") instead of chips that looked tappable, and Pace says "2 sessions" instead of "up to 2". When nothing fits, the sheet now offers the earliest finish time that works ("Plan until 14:00 · 1 fit") and, after a later start, "Start now". She can also say it ("in an hour", "from 14:30", "after 3pm").
I also removed "Time to prep for Mateo" from the plan sheet's extras. It added a setting most people wouldn't use, and "Skip it and prep for Mateo" is still one of the curveball options. And in every sheet the grabber and the header (title and ×) now stay pinned while the content scrolls under them, the way iOS sheets behave, with a solid band and a hairline once the content has scrolled.
Ask Mateo to meet earlier, removed (2026-10-18). The curveball fix used to offer asking Mateo to move the meeting to 14:45. I removed it. The deck says fixed meetings never move, and with 20 minutes to go a reply from Mateo would rarely come in time. The other options (three sessions, watch, skip) already recover the slot without touching the meeting.
Alerts without a buzz, dropped (2026-10-18). I no longer present "arrives without a buzz during meetings" as a feature. Many people keep their phone on silent anyway, so it isn't a real difference. Alerts during a meeting still say whether she needs to leave early.