Travel-Consultant Feature Compliance

Every feature the skill is meant to have, what good looks like, and whether the real output clears the bar.

Assessed artifact: Boyd + Antoine one-day Southgate guide · live guide · 2026-06-10

Hosted guides: Antoine Southgate · Boyd Solo Ghost Line · Covent Garden · West End

31PASS
1PARTIAL
0FAIL
19NOT EXERCISED
97%spec coverage
pass / 32 exercised

1. Traveller modes

Boyd + Antoine adult-son mode

PASS
What I wanted

Adult-son mode, Antoine is 25, never child pacing. SKILL.md principle 10: 'treating him as a child was the worst regression of the old skill.'

Bar we are happy with

Grown-up pacing and interests, loose tempo, pubs/food/history/roots, zero child-led structure (no '2-3 anchors max, rest/snacks/toilet breaks').

Real output

Adult tempo throughout: 'The pace is loose. The point is to notice things.' Pub lunch, real ales, Turkish dinner corridor, architecture. No child pacing anywhere.

Open the Antoine guide →

Other modes (solo, +Hava, family, adult+child, general)

PARTIAL
What I wanted

Distinct biases per mode: Boyd solo scenic/photo/hidden, +Hava couple rhythm, adult+child child-led ONLY when a real child confirmed, general mode no personal leakage.

Bar we are happy with

Each mode produces a visibly different plan shape; general mode shows zero Boyd/Hava/Antoine leakage.

Real output

Boyd solo guide ('The Ghost Line to Golden Hour') now live. DOM-verified: 21 images, 0 em-dashes, golden-hour engine (21:10 sunset, 20:15 golden hour, 22:08 civil twilight), solo language throughout ('Boyd, Solo', 'Made for one person', 'Nobody else's pace matters today'), green/forest palette (accent #8aa36b) visibly distinct from Antoine amber/gold (#c8a97a), hidden/unusual bias (Spriggan, abandoned platforms, Parkland Walk ghost railway), cheap food spine (Dunns sausage roll, roast pork bap), pubs as route rewards (The Flask, Southampton Arms). Plan shape is clearly solo-biased vs Antoine adult-son guide. Partial: +Hava and general-traveller modes still not exercised.

Open the Boyd solo guide →

2. Discovery

Accommodation / origin pre-plan gate

PASS
What I wanted

SKILL.md pre-plan gates: ask 'Where are you based / coming from?' and 'Where are you sleeping?' BEFORE building any itinerary. 'Do NOT skip these and then hand-wave routing.' Register §11 names this an explicit live failure.

Bar we are happy with

Origin and base either established up front, OR explicitly labelled 'assumed' / 'origin unknown, can't plan on-the-way stops' in the guide.

Real output

Styled 'Planning assumptions' box near top: base/origin ASSUMED Finsbury Park, with 'If you are sleeping somewhere else, in central London, near Antoine's place... tell me and I will re-route.' Tagged logistics.

Open the Antoine guide →

Card-led, mood-first discovery (anti questionnaire goblin)

NOT EXERCISED
What I wanted

Mood-first discovery, 2-3 vivid option cards before interrogation, 'questionnaire goblin' banned, one-clarifier rule when mode ambiguous.

Bar we are happy with

A real discovery turn: emotional job asked first, 2-3 starter cards offered before deep planning.

Real output

The artifact is a finished guide, not the discovery conversation that preceded it.

Explicit decision-variable model

PASS
What I wanted

BB verbal (session 20260602_011336, msg 38885): 'what are the variables that determine how this consultant knows which path to choose. there must be a bunch of variables.' The pipeline accepted this and flagged 'New Stage 6 artifact needed: a decision-model.md reference file' (traveller mode, mood, energy, novelty appetite, friction tolerance, food/photo/nature priority, budget, weather, daylight, transport, base, crowd tolerance, booking lead, hard-nos). Never built.

Bar we are happy with

A decision-model.md reference exists mapping the variables to plan-shape decisions, and the model demonstrably routes a plan (e.g. high heat + photo priority => golden-hour route).

Real output

2026-06-10: references/decision-model.md written: who/state/priorities/conditions/logistics variables mapped to plan-shape decisions, conflict rules (hard no-gos > logistics reality > mode defaults > priorities; collide => sequence, don't average), SKILL.md pointer added. Demonstrably routes the live guide: photo priority + June daylight => the Chasing the Light eat-early re-sequence; base unknown => labelled assumption + re-route offer; worked example in the file maps each variable to the live guide.

3. Taste Deck

Taste Deck profile builder

NOT EXERCISED
What I wanted

3 cards per round, 0-5 scoring, pick/mix, why/skip, profile-target selection, save-gate, 2-3 round stop heuristic.

Bar we are happy with

A run of rounds with scored cards, a clear target profile, and a save-gate before any vault write.

Real output

A day-guide does not run Taste Deck.

Image/thumbnail layer on Taste Deck cards

NOT EXERCISED
What I wanted

Register §3: cards are text-only, 'should show a representative image per card' (flagged missing Stage 5).

Bar we are happy with

Each Taste Deck card carries a representative image.

Real output

No Taste Deck in this artifact.

4. Personal profiles (vault)

Read vault profile at start of personal-mode work

NOT EXERCISED
What I wanted

Read 60-Resources/Travel-Profiles/ profile at start of Boyd/Hava/Antoine work; quote-file-why-approve save gate; post-trip feedback ritual.

Bar we are happy with

Evidence the relevant profile was read and used quietly, plus a save-gate on any update.

Real output

Profile read/write happens in the planning loop, not visible in a static guide. Profiles are also still stubs (register §4).

Heat/shade tolerance preference capture

NOT EXERCISED
What I wanted

Register §4 roadmap: heat/shade tolerance (27-29C+ trigger) defined in pipeline, belongs in Boyd.md, not yet captured.

Bar we are happy with

Boyd.md carries a heat/shade tolerance field used when routing in hot weather.

Real output

Not buildable from a UK day-guide; needs profile work.

5. Research

NotebookLM default for serious new destinations

NOT EXERCISED
What I wanted

NotebookLM by default for serious new-destination planning (synthesis), official sources for truth; 10-50 curated source set; light-ask carve-out.

Bar we are happy with

For an unfamiliar multi-day destination: a built source set and NotebookLM synthesis, verified separately against official sources.

Real output

London is a known deep-knowledge market and this is a light same-area ask, so NotebookLM correctly not triggered. Cannot judge the research engine from this artifact.

Cheap-subagent image search

NOT EXERCISED
What I wanted

Register §5 roadmap: 'use cheap subagent/model for image search', never wired.

Bar we are happy with

An image-search step that curates real, location-matched images via a cheap model.

Real output

Not wired; images in this guide are hotlinked stock, not curated by a search step.

Local-language forum / source scan

NOT EXERCISED
What I wanted

BB verbal (session 20260602_011336, msg 38885): 'it can read local forums in that language... whereas maybe all the English sites that mention a place is showing that it's open, if you go into the Thai forums for that... they're all saying everything's closed.' Read local-language forums/blogs/notices, translate, summarise, label confidence, verify against official sources. Register §5 names it but 'weakly enforced'; never had a compliance row.

Bar we are happy with

For a non-English destination, the guide surfaces at least one local-language source insight (closure, scam, better entrance, seasonal note) the English web missed, translated and confidence-labelled.

Real output

London is English-language; no local-language scan needed for this artifact. Needs a foreign-language destination guide to judge.

6. Storytelling & voice

Private-guide voice, anti-beige

PASS
What I wanted

Sell the experience before scheduling; private-guide tone; anti-beige, anti-Wikipedia, anti-top-10; opinionated, rank don't dump.

Bar we are happy with

Vivid, opinionated, emotionally-led prose that reads like a private guide, not an itinerary bot.

Real output

Strong throughout: 'This isn't sightseeing. This is a homecoming.' / 'It should not work. It works.' Opinionated, warm, no top-10 dump.

Open the Antoine guide →

Emotional promise (hero one-liner)

PASS
What I wanted

Contract §1 hero: one-sentence emotional promise. Principle 5: sell the experience before scheduling.

Bar we are happy with

A single emotional promise line in the hero that frames why the day matters.

Real output

Hero: 'A father from Australia, a son who grew up on these streets. This is his city. Let him show you.'

Open the Antoine guide →

7. Recommendation intelligence

Content depth / specificity (no hand-waves)

PASS
What I wanted

Register §7 'biggest live failure'. SKILL.md hard rule: every recommendation names a specific place with a reason. BANNED: 'find a table somewhere', 'grab lunch around here'.

Bar we are happy with

Every food/cafe/pub/shop is a named venue with a reason; zero 'somewhere around here' gestures.

Real output

Zero hand-waves (grep verified). 'Selale, Gokyuzu... lamb shish or a mixed grill.' Every rec names a place + reason.

Open the Antoine guide →

Full per-rec field set

PASS
What I wanted

Register §7 / contract lines 107-122: per rec = what / why-this-traveller / route position / best time / effort / crowd-queue risk / cost caveat / photo angle / backup-or-nearby-swap / source link.

Bar we are happy with

Each meaningful card carries effort, crowd/queue risk, cost caveat, photo angle and a nearby swap, not just address/hours/why.

Real output

Each stop card carries Why fits / Best time / Effort / Crowd-queue risk / Cost caveat / Source link / Photo tip / Nearby swap.

Open the Antoine guide →

Watch-out taxonomy + cited review snippets

PASS
What I wanted

Register §7: watch-out taxonomy (crowd/queue/weather/booking/value-trap/mobility/tourist-trap/timing); review quotes used sparingly + cited; rejected alternatives.

Bar we are happy with

Risks tagged from the taxonomy where relevant; any quoted review cited to its source.

Real output

Watch-out taxonomy used in cards ('Crowd / queue risk (crowd, timing): garden fills fast'). Cited snippet: Londonist reckons Selale's lamb shish 'might just be the best on the whole street'.

Open the Antoine guide →

Golden-hour / sunset photo-timing engine

PASS
What I wanted

BB verbal (session 20260602_011336, msg 38885): 'whenever that sun's going down or whenever the golden hour is, are going to be ideal photo opportunities... So also thinking about those things.' Plan routes to END at the viewpoint at golden hour; check sunrise/sunset/blue hour, direction, cloud risk, safe return after dark. Applies generally, not just Boyd. Currently only lives as a Boyd-solo mode-bias line, never a measured feature.

Bar we are happy with

Where a photo payoff exists, the guide gives actual golden-hour / sunset timing for the day and routes the stop to land in that window, not just a generic 'nice in afternoon light' note.

Real output

2026-06-10, judged vs live DOM: 'Chasing the Light' section gives real June 2026 Southgate times (sunset 21:19-21:24, golden hour from ~20:20, civil twilight ends ~22:05, source sunrise-sunset.org, verify link to timeanddate) and routes TO the light: eat-early-at-18:00 re-sequence putting you at the Arnos viaduct inside the 20:20-21:20 window, with park-locking caveat. Times also wired into Leg 3 card, evening time block, and Check Before You Go.

Open the Antoine guide →

8. Trip architecture & transport

Trip architecture mode (compare bases)

NOT EXERCISED
What I wanted

Register §8: compare bases/destinations before day-by-day; accommodation-anchored routing; transport-mode architecture; map-aware day cards (roadmap).

Bar we are happy with

For an open trip: 2-3 base/destination options compared with who-each-suits before any day plan.

Real output

Single base, single day. Architecture mode cannot show here.

On-the-way intelligence

PASS
What I wanted

Register §8 + SKILL.md: when origin is known, proactively surface one genuinely interesting stop between origin and the day's first anchor. BB's explicit complaint that this was not built.

Bar we are happy with

One real on-the-way stop tied to an established origin, OR an explicit note that origin is unknown so on-the-way can't be planned.

Real output

Faltering Fullback framed as on-the-way stop from the assumed base, with note it changes if origin changes ('as if you start the morning here').

Open the Antoine guide →

Time blocks (morning/lunch/afternoon/evening)

PASS
What I wanted

Register §8 + contract §5: itinerary as flexible time blocks (morning / lunch / afternoon / evening / optional-backup) with transport/walk notes.

Bar we are happy with

A detailed itinerary broken into labelled time blocks with transport notes, not loose prose.

Real output

Detailed Itinerary in flexible Morning/Lunch/Afternoon/Evening blocks ('Times are soft').

Open the Antoine guide →

Nav-app links, never fake navigation

PASS
What I wanted

Register §8: link out to nav apps, never fake navigation.

Bar we are happy with

Transport/route steps link out to a real nav app rather than stating fake directions.

Real output

Real google maps dir nav links per stop (Finsbury Park to Southgate, Broomfield, Gokyuzu, Conway Road, Arnos Park). No fake in-guide navigation.

Open the Antoine guide →

9. Local & area intelligence

Area intelligence (what's genuinely interesting around X)

PASS
What I wanted

Register §9 + SKILL.md: for any anchor surface local character, interesting nearby misses, history/oddity/food cluster, what changed recently. The Antoine guide 'had nothing on Southgate/Conway Rd beyond walk the street'.

Bar we are happy with

Every anchor area gets real what's-there-now / history / what-changed depth, at Southgate-Station level.

Real output

Real area intelligence: Arnos Park Victorian viaduct over Pymmes Brook, Broomfield walled garden C16-C18 listed walls, James I hunting-lodge history, Holden station depth.

Open the Antoine guide →

Southgate Station deep-knowledge (the bar)

PASS
What I wanted

London deep-knowledge defaults: confident, specific local knowledge. This is the depth standard the rest should hit.

Bar we are happy with

Named architect, date, listing grade, what to actually look at and why.

Real output

'designed by Charles Holden and built in 1933, a perfect cylindrical drum, Grade II* listed. Walk around the full drum. Look up at the canopy detail.'

Open the Antoine guide →

Roots / personal-geography mode

PASS
What I wanted

Register §9 + SKILL.md: when a place has personal meaning, surface what's still there vs changed, what's worth re-experiencing, pair familiar with surprising. 'Antoine born in Southgate, grew up Conway Rd' currently hand-waved.

Bar we are happy with

Concrete then-vs-now for the personal street: named landmarks of childhood, specific changes, a real reason to walk it.

Real output

Roots grounded in verifiable fact, not vibes: 'Southgate is an established North London suburb in N14 that grew up around the 1933 Piccadilly line extension, with Holden's station as its civic centrepiece.'

Open the Antoine guide →

Hidden-gem reflex

PASS
What I wanted

Register §7/§9: pair the obvious with an unusual alternative; judge by genuine-interest rubric (ruins, viaducts, weird collections over plaques/monuments).

Bar we are happy with

At least one genuine hidden-gem pairing surfaced over the obvious pick.

Real output

Broomfield walled kitchen garden and the Arnos Park Victorian railway viaduct are real hidden-gem picks: 'a park most people don't know about'.

Open the Antoine guide →

10. Output: HTML magazine guide

Hero (title / mode / context / emotional promise)

PASS
What I wanted

Contract §1: hero with guide title, traveller mode, trip/date context, one-sentence emotional promise.

Bar we are happy with

All four hero elements present and the promise lands.

Real output

Hero: 'Southgate, Coming Home', 'Boyd & Antoine, A Private Guide', 'June 2026', plus the emotional promise line.

Open the Antoine guide →

Quick read section

PASS
What I wanted

Contract §2: best version of the plan / who it suits / biggest watch-out / what to verify before going.

Bar we are happy with

A four-part quick-read block near the top.

Real output

Quick Read section present: best version / who it suits / biggest watch-out / what to verify.

Open the Antoine guide →

Taste / traveller-fit block

PASS
What I wanted

Contract §3: profile signals used / what is assumed vs confirmed / what remains unknown.

Bar we are happy with

An explicit fit block listing signals used and assumed-vs-confirmed-vs-unknown.

Real output

Traveller Fit section: signals used, assumed vs confirmed, 'Still unknown'.

Open the Antoine guide →

Day / route cards

PASS
What I wanted

Contract §4: cards with title / vibe / route logic / anchors / food-reward / photo-sunset angle / effort-crowd risk / backup.

Bar we are happy with

Proper route cards carrying vibe, route logic, anchors, photo angle, effort and backup, not a summary list.

Real output

Three route cards (Leg 1 The Warm-Up / Leg 2 His Southgate / Leg 3 The Reward) with vibe, route logic, anchors, food, photo, effort, backup.

Open the Antoine guide →

Detailed itinerary (time blocks)

PASS
What I wanted

Contract §5: morning/lunch/afternoon/evening as flexible blocks, transport/walk notes, official verification links.

Bar we are happy with

Labelled time blocks with transport notes and verify links.

Real output

Detailed Itinerary with flexible time blocks mapping all stops.

Open the Antoine guide →

Recommendation cards (full fields)

PASS
What I wanted

Contract §6 / lines 107-122: why fits / best time / cost caveat / crowd-queue risk / nearby swap / photo tip / source link.

Bar we are happy with

Cards carry the full field set including cost, crowd/queue, swap and photo tip.

Real output

Recommendation cards carry the full contract field set (effort, crowd/queue, cost caveat, source, photo tip, nearby swap).

Open the Antoine guide →

Today / Next / Check before you go

PASS
What I wanted

Contract §7: calm command-center, current next move, pre-booking actions, official links, weather/transport checks.

Bar we are happy with

A check block covering next move, pre-bookings, official links and weather/transport.

Real output

'Today / Next / Before You Leave' command-centre section present.

Open the Antoine guide →

Backups / salvage recipes

PASS
What I wanted

Contract §8: rain swap / tired-low-energy swap / crowd-queue escape / food rescue.

Bar we are happy with

A backups block with at least rain, tired, crowd and food rescue options.

Real output

'If The Day Wobbles' backups/salvage: rain (indoor escapes), tired (cut Conway Road, tube straight to Green Lanes), crowd, food rescue.

Open the Antoine guide →

Colour-coded card taxonomy

PASS
What I wanted

Contract lines 92-105: colour-coded tags (walk/nature/food/culture/hidden/photo/event/rest/backup/logistics) for scanability.

Bar we are happy with

Cards tagged and colour-coded by type so the guide is scannable by tag.

Real output

Colour-coded taxonomy pills on every stop (tag-logistics, tag-rest, tag-food, tag-culture, tag-photo, tag-walk, tag-hidden).

Open the Antoine guide →

Verify / source links

PASS
What I wanted

Contract lines 150-159 + principle 7: prices, hours, event times, ticket rules, closures, transport need official/current source links. 'Do not freeze stale prices as fact.'

Bar we are happy with

Every operational fact (hours, prices, transport times) carries a source/verify link.

Real output

22 source links incl official: falteringfullback.com, TfL journey planner, Wikipedia Southgate station, Enfield Council + GoParks Broomfield, Londonist/Eater Green Lanes, Met Office. Corrected the wrong pub hours (now 12:00 daily, was 'weekends 11am').

Open the Antoine guide →

Real images (relevance, not source)

PASS
What I wanted

Register §10 'single biggest miss' + contract image workflow. NOTE: Boyd is fine with hotlinks / any source for personal use, so image SOURCE is not a failure; only RELEVANCE/specificity is the gap.

Bar we are happy with

Images depict the actual named places with specific alts, not generic stock.

Real output

2026-06-10, judged vs live DOM: 18 images, all named-place specific (Fullback frontage x2, Holden drum x3, Conway/Minchenden streets x3, Broomfield walled garden + conservatory, Green Lanes street level, Arnos viaduct x2), every alt names the place. Browser-validated: 18/18 naturalWidth > 0, none broken. Source is Commons/official hotlinks, which Boyd accepts for personal use; relevance bar met.

Open the Antoine guide →

Per-day budget

PASS
What I wanted

Register §10: per-day budgets seen working before; cost estimates with verification.

Bar we are happy with

A per-day budget figure or band with cost lines per anchor.

Real output

'Money' budget box: tube ~£3-4 capped, pub lunch ~£15-20, Turkish dinner ~£20-30/head, day total roughly £50-70pp, marked 'approx, check current'.

Open the Antoine guide →

Mobile-first HTML build

PASS
What I wanted

Contract mobile CSS: max ~760px, rounded cards, tap-friendly links, high contrast, no wide tables.

Bar we are happy with

Renders clean and readable on a phone, narrow, high contrast.

Real output

2026-06-10: verified in a real browser at 320, 360 and 390px layout widths WITH the defensive overflow-x guard disabled: zero elements extend past the viewport, scrollWidth equals viewport at all three widths. The earlier wobble culprit no longer exists (gallery grid collapses to single column under 560px); guard retained as belt-and-braces only.

Open the Antoine guide →

Event cards

NOT EXERCISED
What I wanted

Register §10: event cards with thumbnails, official links, fit reasons, crowd/effort, ticket caveats.

Bar we are happy with

Where a time-bound event applies: an event card with official link and ticket caveat.

Real output

No time-bound event in this day; nothing to render an event card against.

Visual richness (multiple images per location)

PASS
What I wanted

BB verbal gold-standard, NOT previously in contract: the guide must feel like an enticing magazine, not a blog post. Multiple images per location (several per stop), roughly 10+ images minimum across the guide, real photos that connect to the specific content of each section. NO placeholders. Each location visually sold.

Bar we are happy with

Every major stop has 2+ relevant images woven into its content (not one token header shot). Total 10+ images. Images map to what the text describes. A reader is enticed by each location visually before reading a word.

Real output

2026-06-10, judged vs live DOM: 18 images total, woven as duo/trio galleries plus inline shots, not token headers. Per major stop: Finsbury Park/Fullback 3, Southgate station 3, Conway Road streets 3, Broomfield 3, Green Lanes 2, Arnos viaduct 2, plus hero and evening closer. Each location visually sold before its text; reads magazine, not blog.

Open the Antoine guide →

11. Known live failures

Cloudflare hosting + shareable URL

PASS
What I wanted

Register §12 (BB confirmed): real hosted guide with a shareable *.pages.dev URL.

Bar we are happy with

Guide live on a stable Cloudflare project with a working shareable URL.

Real output

Guide is live and loads on Cloudflare Pages; now also hosted under the stable travel-guides-boyd project via this dashboard.

Open the Antoine guide →

12. Interactive website (roadmap)

Draggable day cards

NOT EXERCISED
What I wanted

Register §12 roadmap: draggable day cards.

Bar we are happy with

Day cards can be reordered by drag in the hosted guide.

Real output

Roadmap, not built. Static HTML only.

Day-planner board

NOT EXERCISED
What I wanted

Register §12 roadmap: day-planner board view.

Bar we are happy with

A board view to arrange the day's anchors.

Real output

Roadmap, not built.

Route / map view

NOT EXERCISED
What I wanted

Register §12 roadmap: route / map view of the day.

Bar we are happy with

An interactive map showing route order and stops.

Real output

Roadmap, not built. Text-only routing.

Filters by tag

NOT EXERCISED
What I wanted

Register §12 roadmap: filter cards by tag.

Bar we are happy with

Tag filters that show/hide cards by type.

Real output

Roadmap, not built; depends on card taxonomy (10.9) shipping first.

Collapsible recommendation details

NOT EXERCISED
What I wanted

Register §12 roadmap: collapsible / expandable rec details.

Bar we are happy with

Rec cards expand/collapse to manage density.

Real output

Roadmap, not built.

Reshuffle options

NOT EXERCISED
What I wanted

Register §12 roadmap: reshuffle the plan options.

Bar we are happy with

A control that regenerates / reshuffles option ordering.

Real output

Roadmap, not built.

Profile feedback buttons (love/skip)

NOT EXERCISED
What I wanted

Register §12 roadmap: love/skip buttons that update the profile.

Bar we are happy with

In-guide feedback buttons that write back to the vault profile.

Real output

Roadmap, not built.

Voice-interviewer discovery mode

NOT EXERCISED
What I wanted

Register §12 roadmap: voice-interviewer discovery mode.

Bar we are happy with

A voice-driven discovery interview that builds a plan.

Real output

Roadmap, not built.

13. Guide lifecycle

Draft to feedback to re-check to post-trip

NOT EXERCISED
What I wanted

Register §13: draft, Boyd reacts, revise, re-check near departure, post-trip feedback. On-trip salvage / replanning mode.

Bar we are happy with

A guide that moves through the lifecycle with a near-departure re-check and a post-trip feedback capture.

Real output

Single draft snapshot; lifecycle and salvage mode play out over a trip, not in one static guide.

How to read status: pass clears the bar · partial present but weak · fail should be here, absent or hand-waved · not exercised needs a different test artifact.