[2026-08-23] update | About page rebuilt on the service-family hero grammar with content harvested from four sources | Updated: digital-home/frontend-v2 (src/about.njk rebuilt; components.css ab-hero/ab-chain/ab-callout__text added to the dark-hero family + callout lists), wiki/log.md — UNCOMMITTED
Built by hand (Fable), on Glen's brief: match the hero to the service pages and make the content the best possible fit, not a reformat. Sources harvested: the OLD LIVE ABOUT (digital-home/frontend/src/about.html — "I used to be the bottleneck.", "You cannot buy advice from the judge.", the four-role chain with bodies, eleven-plus-years proof line, the What-you-can-expect method list, the outside-experience referral promise, "Bring the real situation."), the x.ai archive about (missing-seat framing), the localhost:8765 prototype (a THIRD site variant, Onest-based: the Trace name meaning "establish the route, follow the evidence, keep every decision traceable", the built-Trace-to-be-the-person quote, notified/approved-body detail, EN 17092 / EN 13594 / EN 1621 specialism block, manufacturer-and-declarant + no-honest-adviser boundary), and wiki/identity/origin-story.md (facts verified; the £90k→£300k lab-growth figure stays internal). The page now runs: ab-hero dark service-family hero ("[ About ]" crumb, H1 "I used to be the bottleneck.", first-person lede ending on the one-technical-lead line, byline meta "Glen Mascall · Founder, Trace Technical Compliance Ltd", one CTA) → 01 The chain (the About spine device kept, stations enriched with harvested bodies + Trace endpoint note, eleven-plus-years proof line, name-meaning callout) → 02 The gap ("You cannot buy advice from the judge.", dependent-hire pattern, primary-ink resolve "Trace sits in that gap and nowhere else…") → 03 The specialism (EN standards lede "known from the lab bench, not just the standard's PDF", SELECTED WORK ACROSS middot line from origin-story canon, referral boundary line) → 04 Working rules (No guessing / Scope before work / Independent decisions stay independent + manufacturer-and-declarant / Honest close-out as hairline dl rows; independence callout; "no honest adviser can" close) → 05 The founder (figure + glitch kept, slow-process systems line, bring-the-real-situation invitation, "Every position… is mine." note) → close "Bring the real situation." DROPPED, flagged for Glen: the three-beliefs panel (Responsibility never transfers / Being on the market is not being right / Documentation is not proof) and the old hero "Not theory from the outside." ab- prefixes added to every dark-hero :is() list per the Second Opinion rule. Build + check-links pass; full-page dark + light captured and reviewed; founder figure verified rendering on scroll (blank in stitched captures by design of the one-shot glitch).
[2026-08-23] update | Three training session sub-pages rebuilt on the new standard; URLs moved under /services/training/ with 301s | Updated: digital-home/frontend-v2 (src/services/team-training/* → src/services/training/{foundation,document-workshop,motorcycle}.njk rebuilt; nav.njk + training.njk links; _redirects; components.css ts-* block removed + tts-open in the first-chapter list), wiki/log.md — UNCOMMITTED
Built by hand (Fable), continuing the per-page passes. Two rounds: a first reformat-only round was rightly rejected by Glen as "bare and recycled" — the content had not been harvested. Round two mined three sources per page: the OLD LIVE PAGES (digital-home/frontend/src/ppe-foundation.html, ppe-document-workshop.html, motorcycle-deep-dive.html — live site is canon for public messaging), the x.ai-site archive prototypes (Archive/Trace Operations/99 Archive/x.ai site/src/services/team-training/* — session-sheet facts and five-item agendas), and wiki/offers/services.md. The three pages had been the last on the 2026-08-17 grammar: bone-panel ph-hero (never-resurrect), two-tone hero H1s, standalone .ai-moment boxes with "Brand system" wording, no prices, no chapter rail. Each now runs the Training-family form, four chapters, unique content: tt-hero dark dot-field hero (mono crumbs, single-tone H1, lede, meta line "Session 0N of 03 · format", one CTA) → 01 Who it's for (h2 + intro, price corner £750 / £1,750 / £1,500 + "Fixed", mined argument) → 02 The agenda (five numbered hairline rows each, harvested detail: Foundation terms/route/failure points with a covers-the-route-not-the-documentation scope line; Workshop connected set / live scenarios / factory evidence read for credibility / update process vs full re-review / storage for readability; Motorcycle standards deep-dive / zone-by-zone / levels-before-spend + failure handling / test request forms in the room / reused-report evidence, with a motorcycle-only scope line routing certification-process ground to the Workshop) → 03 How it runs / Why it matters (Foundation "One session, not a manual to read alone."; Workshop "Why first-time acceptance matters." — bodies-cannot-advise argument; Motorcycle "Built as scenarios, not a briefing." — classification→certification-review stages, everyone makes the call, anonymised casework) → 04 The outcome (lede + Before / You leave with / Afterwards rows; Foundation + Workshop close on next-session cross-links) → close (existing CTA titles kept). Voice moments (shared tt-callout__text): Foundation "Organised around what is yours to own, and what genuinely is not."; Workshop ch01 "A documentation set nobody in the building can explain is not documentation. It is a liability with a cover page." + ch04 file-inside-out line; Motorcycle ch01 "A test house is not a compliance advisor…" + ch04 test-plan-before-money line. AI boxes deleted wholesale — zero AI mentions; the boundary line lives on the Training parent only. URLs moved to /services/training/{foundation,document-workshop,motorcycle}/ (completing the rename); _redirects gains the three old sub-paths AND the three old-site URLs (/ppe-foundation/, /ppe-document-workshop/, /motorcycle-deep-dive/); nav flyout + parent links updated. Dead ts-* CSS removed; tts-open replaces ts-who in the first-chapter border-trim list; hero reuses the tt- prefix so the dark-family lists needed no additions. Build + check-links pass; banned-term scan caught and fixed one "paperwork" imported from archive copy; all three captured full-page dark (round two), Foundation light + Motorcycle 390px (round one, layout unchanged) — reviewed. Impeccable ignores persisted for three pre-existing sanctioned values (dark-frame CTA #D8E35B/#CAD74D, statement-scale 1.5rem). Flag: scripts/check-layout-diversity.mjs still lists pre-rename slugs and would crash if run.
[2026-08-23] update | Training per-page pass (priced session rows, judgement chapter, teacher chapter); SITEWIDE statement scale for chapter quotes/callouts | Updated: digital-home/frontend-v2 (src/services/training.njk, components.css), DESIGN.md (callout scale + Onest type entry), wiki/offers/services.md (Training why-it-exists + who-teaches-it), wiki/log.md — UNCOMMITTED
Glen live-directing, agent built + Fable gated with several hand rounds. Training now runs hero → 01 The sessions → 02 Why it exists → 03 How a session runs → 04 Who teaches it → 05 FAQ → close. (1) 01: the three session cards replaced by cp-way-row priced hairline rows — title (plain, no arrow: Glen killed title arrows), format sub-line ("Half day, remote" / "Full day, in person" twice; "where possible" and moto's "on your own products" both cut on his order), "See the full scope" text link UNDER the details linking each session page, selling paragraph, THE SESSION COVERS label + one-line-each list (his call: label like CM's TRACE CARRIES; lines shortened to fit one line), price corner £750/£1,750/£1,500 "Fixed"; fine print: pathway £3,500 saves £500 + interim-fees note (canon requires the interim flag on-site; Glen may strike). (2) NEW 02 from Glen's supplied prose, MINED not pasted (his correction: "when I give you paragraphs it's usually to let you extract callouts or quotes from"): h2 "One person holds the judgement.", lede "Everyone else forwards the email…", the aim extracted as a statement callout, one supporting line. (3) 03 renumbered, rail "How a session runs", stage bodies + Q&A note consolidated to --text-section-size (Glen: too many font sizes; census showed 14/15px mixing, now one tier; FAQ answers matched to CM's section-size too). (4) OLD "Behind the session" DELETED with its "Brand system" paragraph (page now AI-free); NEW 04 "Taught from the side of the table." — credentials as an EXPERIENCE ACROSS hairline list (test-house testing / test-team leadership / documentation assessment / certificate issuance / commercial delivery), one first-person line (seminars, industry-leading brands, names private), boundary line as the statement callout ("It replaces the guesswork in between."). (5) FAQ 05, "Questions before you book a session." SITEWIDE: the shared .pg-ch__body quote/callout rules in components.css lifted from lede-size/secondary to statement scale (display face, clamp 1.5–1.875rem, primary ink, 44rem) per Glen's "the text for them shouldn't be the small text" — supersedes the same-day smaller-and-muted call; DESIGN.md updated (also its stale Inter entry corrected to Onest sitewide). Canon: Training why-it-exists + who-teaches-it mined into services.md from Glen's prose. Font census run (Playwright computed styles): one face (Onest) + Geist Mono fallback on crumbs; footer 345.6px ghost wordmark is the intentional device. Build + link check pass; all sections captured both themes and reviewed.
[2026-08-23] create | Second Opinion service page BUILT and wired sitewide; canon widened to pre-submission self-built files | Updated: digital-home/frontend-v2 (NEW src/services/second-opinion.njk; nav.njk + home/services.njk Soon rows now live links; services.njk six→seven + stage-01 entry; diagnose.njk count strings), wiki/offers/services.md, wiki/offers/offer-architecture.md, wiki/index.md, wiki/log.md — UNCOMMITTED
Glen's brief: Second Opinion also serves teams writing their OWN documentation who want it vetted pre-submission at a lower cost than Trace building the file; Glen reads with his assessor's eye (factory-submitted docs, tech files, labelling); the written review surfaces issues and gaps before a test house or certification team sees the file; no first-time-pass guarantee; the review draws on knowledge of individual bodies' and test houses' usual findings — publicly framed as experience/records, NEVER as a system (the internal matrix stays internal; recorded in services.md's new AI/Systems vision note). Canon updated in both offer articles (who-it's-for widened, pre-check framing, guarantee boundary); index rows refreshed. Page built by agent, Fable-gated (H1 measure fixed by hand so it reads one line): hero "Find out if the file holds up." on the dark dot-field anatomy; 01 The check — "What gets checked." with £395/"Fixed fee" price corner, four hairline rows (technical file / factory or supplier documents / labelling and markings / test reports and declarations) each with an assessor-reading gloss, credit fine line (£395 credits against Range Review within 60 days); 02 The verdict — "What comes back." (verdict / gap list / order rows), founder quote "I read the file the way an assessor reads it, because that was my job. Most findings I raise are ones I have seen a body raise before." and callout "A finding costs least before submission. The same finding from the certification body costs a review round."; 03 FAQ "Questions before you send the file." (guarantee No, whose docs, clean-verdict, what-next with credit); closer "Send the file before they see it." Build 44 files, check-links pass, banned-term and AI-mention scans clean, all sections captured both themes and reviewed. Glen's review round, applied by hand: the page's so- classes added to EVERY .page--service-dark-hero :is() list in components.css (the builder's copied hero CSS missed that the dark full-bleed ground, 2.75-4.5rem title scale, and FAQ upgrades all come from those lists — the hero had rendered light-surface and small, "completely different from other services"); H1 forced two-line "Find out if
the file holds up."; the callout under the founder quote DELETED (quote-over-callout stacking not allowed — NEW RULE); the £395-credits-against-Range-Review line removed from the fine print AND the FAQ (credit mechanic stays canon-internal, not published on the page). LESSON for future service pages: a new hero prefix must be added to the components.css dark-hero lists, or the page falls out of the family.
[2026-08-23] update | Issue Response per-page pass: severity-priced levels, timeline output, boundaries chapter, system section DELETED | Updated: digital-home/frontend-v2 (src/services/issue-response.njk), wiki/log.md — UNCOMMITTED
Glen live-directing; agent built, Fable gated (one missed instruction fixed by hand, 02 rebuilt twice on Glen's renders). The page now runs hero → 01 The levels → 02 The output → 03 Boundaries → 04 FAQ → close. (1) 01 rebuilt from the flat six-issue list into three severity groups with canon figures: Contained £495 / response in 2 working days, Urgent £795 / 1 working day, Critical £1,250 / 4 hours; issues shortened to bare lines, ONE column (Glen reversed his own two-column ask); h2 "What counts as an issue." with Glen's defined-problem line plus the written-intake and triage-first canon facts; certification-body callout kept. ISSUE-TO-LEVEL MAPPING IS PROPOSED, NOT CANON — awaiting Glen's check (Contained: supplier evidence / changed construction; Urgent: failed test, launch blocked, marketplace challenge; Critical: authority challenge, recall). (2) 02: four bullet-list cards summarised into a four-step MINI TIMELINE (dot markers on a thin connector; Glen rejected both the card grid and the full-width process legs, which read oddly with uneven copy); titles The issue / Your evidence / The position / Next actions; new lede intro (third-person Glen); Glen's "Replying quickly can make the issue wider." callout + email-thread paragraph close the chapter. (3) OLD 03 "The system" DELETED wholesale — the page carries zero AI mentions. (4) NEW 03 Boundaries, Glen's verbatim copy trimmed: No legal advice / No control over independent bodies / No guaranteed resolution / The recall decision is not ours; h2 "Where the line sits." (5) FAQ now 04, "Questions before you send it." STILL UNPUBLISHED, Glen's call: L3 emergency booking route, L1/L2-billed-outside-retainer rule. Build + banned-term scan clean; all four sections captured both themes and reviewed.
[2026-08-23] update | Range Review per-page pass: use-cases + pricing chapters NEW (with mini calculator), table/heading type reduced, FAQ retitled | Updated: digital-home/frontend-v2 (src/services/range-review.njk, src/_includes/rr-register.njk, NEW src/_includes/rr-usecases.njk + rr-pricing.njk, components.css callout list), wiki/log.md — UNCOMMITTED
Glen live-directing, agents built + coordinator critiqued and hand-finished after his render review. The page now runs hero → 01 register → 02 checks → 03 use cases → 04 pricing → 05 FAQ → close. (1) Register table font one step down to 0.8125rem. (2) Section 02: the six cover titles reduced to label tier (1.0625rem/500); rail renamed "The checks" so it stops duplicating the heading; the intro's "Brand system" mention removed under the no-AI-on-service-pages posture (checks stated plainly, "Every flag is reviewed by Glen" kept). (3) NEW 03 "Use cases" (rr-usecases.njk): h2 "Nobody did anything wrong.", the client-voice callout "We cannot say which report belongs to which product any more." opening the chapter in primary ink (Glen flagged it adrift at the section foot; moved up), then four hairline rows mined from Glen's supplied prose: owner leaves / product changes quietly / someone asks for the connection (closing on his "If Trading Standards knocked tomorrow, could you produce it?") / range consolidation. (4) NEW 04 "Pricing" (rr-pricing.njk): hand-back as a 2x2 term+gloss grid (Glen rejected the bare hairline list as thin), two cp-way-row priced rows Range setup £500 Fixed / Each product £150 Per product, plus a JS-revealed mini calculator (Glen's ask): products count → live total, £500+£150n, clamped 1–500, no-JS fallback keeps the £2,000 worked example in the fine print while JS hides it to avoid duplication; double rule above the calculator fixed (row group's hairline kept, calculator's dropped). (5) FAQ renumbered 05, rail "Common questions", h2 "Questions before the review." per the FAQ-ties-to-service rule. Prices from offer-architecture.md (Portfolio Review £500 setup + £150/product, 10 products = £2,000). Build + banned-term scan clean; both themes captured via Playwright and reviewed; dark input verified #141419 by computed style.
[2026-08-19] update | Launch night: 2026-08-19 waves COMMITTED (513cd25); Technical Ownership rebuilt from scratch on Glen's locked rulebook; specimen week visual KILLED | Updated: digital-home/frontend-v2 (src/services/technical-ownership.njk rebuilt, src/_includes/to-week.njk DELETED), wiki/log.md
Glen locked a binding research-backed rulebook for all service pages (halo hero+card, max 4 ideas per section, six allowed patterns only, systems language in FAQ Q4 only, statement pieces killed if they need an illustrative disclaimer, fixed seven-slot page spine) and ordered Technical Ownership rebuilt first, from scratch, not reformatted. Built by hand (Fable), Opus as adversarial reviewer. The page now runs: split summary-card hero with the card BORDER-ONLY (fill dropped, --hairline-highlight border, one shared ground, no grey-on-grey break; hero ground unified to --ground in both themes) -> Problem-Resolve "There is no ready-made hire for this job." (two short paragraphs + resolving line, replacing the three stacked titled points) -> the three depth cards unchanged (levels note removed; its facts moved to the boundary) -> NEW "How it runs" three equal columns (your own tools / one visible loop / everything in writing) -> boundary block re-added per the new spine ("A retainer, defined." + three statements from the settled cues) -> FAQ reordered so "Who decides, the system or Glen?" is Q4/last -> closer unchanged. The Monday-to-Friday week visual (to-week.njk) was DELETED under the new forbidden list (specimen calendar carrying an "illustrative tasks" disclaimer); its real facts survive in the card, the How-it-runs columns and FAQ Q4; the in-body AI policy/Methods links dropped (footer carries AI Policy sitewide; systems language now FAQ Q4 only). Build + link check pass, banned-term scan clean, full-page + section Playwright captures reviewed. Earlier the same evening the whole day's uncommitted work went in as 513cd25 on Glen's word.
[2026-08-19] update | Split summary-card hero ADOPTED as the live Range Review hero; prototypes retired; --hairline-highlight token minted | Updated: digital-home/frontend-v2 (src/services/range-review.njk merged hero, src/services/range-review-plain.njk CTA, tokens.css + DESIGN.md new token, src/preview/* DELETED), DESIGN.md pattern entry, backlog.md, wiki/log.md — UNCOMMITTED
Glen: "okay happy to use hero split page as the main range review page, remember the dot pattern on here etc. for other services" and "put thats the whole point on a second line". Applied by hand: the split summary-card hero merged into the live Range Review page (statement column + dot field left, carbon mono spec card with white keys right, register following with no rule); both preview pages deleted; the ring's rgba(255,255,255,0.2) literal replaced by a proper --hairline-highlight token (dark 0.2 white, light = strong hairline) in tokens.css and DESIGN.md; the closer title now breaks "Send us your messy files, / that's the whole point." on both Range Review pages. Earlier same review round, also by hand: card foot removed, keys white/values quiet (inverted), whole card one mono voice, lede rewritten plain-reader ("Documents are matched to products before anything is judged...", applied to live + prototypes), "Questions people ask." FAQ heading all white sitewide, stale next-cycle sections removed from both prototypes. DESIGN.md gains the full adopted-pattern entry (dot-grid scope now includes heroes); backlog carries the five-page sweep task; memory records the pattern and its hard-won rejections. Build + link check pass; merged hero and two-line closer Playwright-verified.
[2026-08-19] update | NEW RULE: hero headings single-tone white; sitewide sweep applied | Updated: digital-home/frontend-v2 (17 files: all ph-hero pages, service-hero consumers, 404, range-review-plain, rr-hero-artifact preview, service-hero.njk + components.css dead-rule removal), DESIGN.md, wiki/log.md — UNCOMMITTED
Glen: "heros are to have one tone (white) in the heading not two tone unless i tell you to explicitly do it." Recorded in DESIGN.md (the two-tone device entry is now SECTION HEADINGS ONLY) and in assistant memory. Swept: every hero H1's quiet span removed with wording unchanged across 17 files; hero-scoped .quiet CSS deleted (service-hero's --hero-fg-quiet title rule, ph-hero's quiet colour + entrance-animation quiet rules, 404 and range-review-plain locals); service-hero's interface comment updated so future pages are not instructed to re-add the device; the artifact prototype keeps its clause break via a br instead of the block quiet span. Section h2 two-tones (44 across the built site) deliberately untouched. Built-site grep proves one remaining hero quiet span: the split-hero prototype, whose owning agent has the fix queued with Glen's card revisions (heavier summarisation, sub-0.875rem type, white value column, dot field, x.com emphasised-card highlight ring).
[2026-08-19] update | Hand-back section rework REJECTED and section deleted; hero prototypes in review | Updated: digital-home/frontend-v2 (src/services/range-review.njk section deleted, src/preview/rr-hero-split.njk + rr-hero-artifact.njk NEW), backlog.md, wiki/log.md — UNCOMMITTED
Glen rejected the rebuilt "The next cycle, already scheduled." section (split head + drawn Product→Certificate→Reports→Next-action chain): "Just no flow to it, my eyes have no idea where to look on it", preferring deletion to the design. Section deleted from Range Review; page now runs covers → FAQ → close. DESIGN LESSON recorded: a split layout plus an inline schematic gave that section three competing anchors (headline, lead-in, chain) with no reading order; the chain device itself was not rejected, the composition was. Facts orphaned by the deletion are in backlog.md. Separately: two hero-integration prototypes exist for Glen's side-by-side judgment at /preview/rr-hero-split/ (foundation as carbon card, first prose then, on his "REJECTED - like a menu almost" ruling, rebuilt as a mono-keyed service summary card: Scope/Input/Method/Output/Verdicts/Hand-back) and /preview/rr-hero-artifact/ (hero at two-thirds scale, register panel pulled 84px into the band, dot-grid field behind the copy). Neither is applied to the live page.
[2026-08-19] update | Dark secondary to Linear grey, exclusive FAQ accordion, covers copy halved | Updated: digital-home/frontend-v2 (src/assets/css/tokens.css, src/_includes/service-faq.njk, src/services/range-review.njk), DESIGN.md, wiki/log.md — UNCOMMITTED
Glen's evening review round, via agents. (1) Dark --text-secondary #C6CAD2 → #8A8F98 (Linear's secondary grey): 6.1:1 ground / 5.7:1 surface / 5.8:1 card, AA everywhere; light theme unchanged; DESIGN.md frontmatter and prose synced (a stale card #1C1C22 prose mention corrected to #111213 in passing). (2) FAQ accordions now exclusive: every details carries name="svc-faq", so opening one closes the rest; reverses the same-day independent-open choice and the file comment records it; browsers without name support degrade to independent open. (3) The six "What the review surfaces" card bodies shortened to roughly half through the editorial pass (mechanisms intact, six distinct openings, the twelve-month worked example cut as illustration not mechanism); intro tightened keeping both facts. Also flagged and pending Glen: how to integrate the Range Review hero with the first section - options assessment delivered (kill the seam + THE FOUNDATION eyebrow now; foundation-into-hero split and artifact-into-hero as switchable prototypes), awaiting his pick.
[2026-08-19] update | Afternoon wave (agents team): register table to the x.com pricing format, FAQ split accordions, one-button closer sitewide, 1rem body pass, Range Review eyebrows and seam | Updated: digital-home/frontend-v2 (src/_includes/rr-register.njk + service-faq.njk + page-cta.njk + home/ai.njk, src/services/range-review.njk, 14 pages' dead CTA set lines), wiki/log.md — UNCOMMITTED
Glen's stream of review changes, split across agents. (1) The Range Review register now uses the developer.x.com/#pricing table format, measured from the live reference: hairline panel at 8px radius, surface-lifted header band (sentence case, weight 500, primary ink — the uppercase-muted head era ends), hairline row and column dividers, 1rem/1.5rem cells, 14px data over 12px muted labels; the open-on-the-ground 2026-08-18 treatment is superseded and the foot note lost its rule. (2) service-faq.njk rebuilt as the Linear split: heading + lede left, native details/summary accordions right, hairline dividers between rows only (recorded as the sanctioned exception to the no-separators rule), plus-to-minus stroke indicator, interpolate-size height animation behind @supports, reduced-motion clean; interface unchanged for both call sites. (3) page-cta.njk renders ONE button only, default label "Book a call with Glen"; the secondary interface is dead and all 13 pages' secondary set lines plus 4 redundant primary-label lines were swept. Flag for Glen: the Services index closer headline "Not sure which service applies?" used to be answered by its Diagnose secondary. (4) Body-text step down to 1rem: home AI lede, Range Review foundation body, covers intro, register intro (all were lede size). (5) Range Review: mono bracket eyebrows "The output" (register) and "The details" (What the review surfaces), and the section break between those two sections removed via the border-top: 0 opt-out. Build + link check pass; Playwright visual verification run per capture.
[2026-08-19] update | Home AI section restructured to the Linear split head; pull quote and boundary line removed | Updated: digital-home/frontend-v2/src/_includes/home/ai.njk, wiki/log.md — UNCOMMITTED
Glen (with Linear reference screenshot): quote out, lede right, links mono. Applied: the founder pull quote ("We need to be fast...") removed from the AI section (the shared .pull-quote pattern stays; Certification Project still uses it); the lede "The Brand system is built around the patterns, judgement and experience of Glen's career." moved into a right-hand column opposite the headline, set in --text-primary (#F7F8F8 dark); beneath it a mono link row (Geist Mono, label size, --text-muted, horizontal arrows) linking "AI policy" and "Methods", replacing the old ai__foot text-link pair; "Glen owns every position the system helps produce." removed with the foot, whose internal hairline also dies under the new no-separators-inside-sections rule. Mechanism diagram untouched. Build passes; Playwright-verified against the reference.
[2026-08-19] update | Follow-up tweaks from Glen's review: no separators inside sections (new rule), field-notes band quieted, head link removed, CTA seam cleaned, button padding 0.9rem | Updated: digital-home/frontend-v2 (src/_includes/home/field-notes.njk, src/_includes/page-cta.njk, src/assets/css/components.css), DESIGN.md, wiki/log.md — UNCOMMITTED
Glen's live review of the morning wave. NEW DESIGN RULE recorded in DESIGN.md Do/Don't: no hairline separators INSIDE a section unless absolutely critical; the sitewide .section faint top rule is the only section separator. Applied: the field-notes closing band lost its own border-top, dropped to small type spanning the row, moved closer to the cards, and its "Field notes" link is now grey weight-400 at the same size as the sentence; the head's "Read the field notes" link removed (the band link is the sole hub link, reversing the 2026-08-17 head-link placement); the shared page-cta closer lost its section-break rule (border-top: 0, the footer hairline is the closing seam) and gained a tad more bottom padding; .btn padding set to 0.9rem sitewide (superseding the Linear 10px 16px spec). DESIGN.md frontmatter synced for yesterday's 8px button radius and #111213 dark card too. Build passes; verified with Playwright screenshots.
[2026-08-19] update | Home + global wave (agents team): new hero copy, dry-tone founder/About, field-notes band + dates, slightly rounded buttons, darker card, footer count removed | Updated: digital-home/frontend-v2 (src/index.njk, src/_includes/home/hero.njk + founder.njk + field-notes.njk, src/_includes/founder-figure.njk, src/about.njk, src/_includes/footer.njk, src/assets/css/tokens.css), wiki/log.md — UNCOMMITTED
Glen's change list, executed by three parallel agents and integrated. Home hero: eyebrow "[ PPE COMPLIANCE, THE MODERN WAY ]", h1 "We coordinate testing and certification for PPE brands." (single sentence, glitch ghosts intact), sub "Motorcycle apparel is the specialism. Sitting between you, the test house, and the certification body, on your side of the table." Home closer: one button only ("Book a call with Glen") under "Better me, on a quiet Tuesday, than a distributor on a deadline." Home founder: heading all-white "Hi. I am Glen. I used to be the person your team chased for results.", both paragraphs rewritten first-person dry (canon: origin-story.md, voice-guide.md, editorial pass run); figure caption trimmed to "Fig. 01 · Glen Mascall". About page: bio passages moved to the same dry first-person register (seven passages; legally careful boundary sentences preserved verbatim). Field notes section: minis 04–06 deleted; intro line moved into a new Linear-style hairline band ("The decisions that cost time and money the first time…" left, "Field notes →" horizontal-arrow link right); publish dates added to notes 01–03, resolved from fieldNotes data by slug. Global: --radius-button 999px → 8px (pill era over; unused --radius-pill token deleted), dark --card #1C1C22 → #111213 (muted-on-card contrast recomputed 7.2:1), footer "Field notes published: N" line removed. Verified: npm run check passes, DOM/computed-style sweep, and real Playwright screenshots of home + about (browser pane would not composite again; headless Chrome/Playwright used instead). Note: the new h1 uses "We" for the business by Glen's explicit wording, overriding voice-guide rule 5's person register for that line. Two of Glen's instructions arrived truncated and are in backlog.
[2026-08-18] update | Mono bracket eyebrows on the home sections; full day's design wave committed on Glen's word | Updated: digital-home/frontend-v2 (src/_includes/home/services.njk + founder.njk + ai.njk + field-notes.njk, components.css .section-eyebrow), wiki/log.md
Glen: "what about home sections too" then "commit". Each home section h2 now carries the shared eyebrow above it — [ SERVICES ], [ FOUNDER ], [ AI ], [ FIELD NOTES ] — via a .section-eyebrow spacing variant; the services header (flex row with the right-hand Diagnose link) gives the eyebrow its own full row so it aligns with the headline. Alignment computed-verified on all four. The no-commit hold is lifted for this wave: everything since c03040c goes in one commit.
[2026-08-18] update | Mono bracket eyebrow added to the closer sections | Updated: digital-home/frontend-v2/src/_includes/page-cta.njk, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "apply the new eyebrow format to the closer sections too." page-cta.njk gains an optional cta_eyebrow parameter rendered as the shared .eyebrow-mono device above the title, defaulting to "Next step" — so all 14 closers read "[ NEXT STEP ]" / heading / button pair with no page edits. The default wording is a first pass for Glen to confirm or vary per page via the parameter. Build + gates pass; verified on Issue Support.
[2026-08-18] update | All page-hero eyebrows converted to the mono bracket format | Updated: digital-home/frontend-v2 (src/assets/css/components.css .ph-hero__label + .eyebrow-mono brackets-in-class, src/_includes/service-hero.njk crumbs, src/_includes/home/hero.njk), wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "change all service hero eyebrows to the new format." The brackets now belong to the class (::before/::after), so page markup stays plain text and every eyebrow converts in one place. .ph-hero__label restyled to the mono device — this carries the six service pages and three session pages Glen named, and by the same shared class the About/Booking/Methods/Services/Field-notes/Diagnose hero labels too (one eyebrow device sitewide rather than two styles on the same element). The svc-hero breadcrumb (Certification Project, Range Review) sits in the eyebrow slot and takes the same format: "[ SERVICES / CERTIFICATION PROJECT ]" with the current page brighter. Home's literal brackets removed in favour of the class-supplied pair. Legal-page labels (ck-hero etc.) untouched. Build + gates pass; verified on Route Finder, Certification Project and Home.
[2026-08-18] update | Home hero: light beam removed same-day; h1 all white | Updated: digital-home/frontend-v2/src/_includes/home/hero.njk, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "remove the gradient, h1 to be all white." The developer.x.com light-beam treatment (added earlier today) is deleted — the hero is flat canvas again. The h1's two-tone dimming is dropped: both lines pure white, keeping the forced two-line split. The hero has now settled as: full-screen flat near-black, mono bracket eyebrow, two white lines, 15px sub, pill pair, no pattern, no beam.
[2026-08-18] update | Home hero: full screen, reduced two-line two-tone h1, 15px sub | Updated: digital-home/frontend-v2/src/_includes/home/hero.njk, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "hero needs to be full screen, heading h1 - reducing and fill text out so its two lines / sub text - .9375rem." The hero band now fills the viewport under the sticky nav (min-height calc(100svh - 4.25rem); computed-verified nav 69px + hero 562px = 631px vs 630px viewport). The h1 is reduced to clamp(2rem, 3.5vw, 2.875rem) and filled out to exactly two lines with the canon bookend pair in the two-tone device: bright "PPE compliance, done properly." over quiet "So the product enters the market, and stays there." (each sentence forced to its own line; the glitch ghosts carry the same markup). The sub is fixed at 0.9375rem/1.6. Verified two lines at desktop width.
[2026-08-18] update | Home hero rebuilt to the developer.x.com treatment: light beam, mono eyebrow, low-anchored wide text, stages strip removed | Updated: digital-home/frontend-v2 (src/_includes/home/hero.njk, src/assets/css/components.css .eyebrow-mono NEW), DESIGN.md, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen (from the X developer-hero screenshot): "any way of putting this light effect on my hero, remove the bottom 4 facts part, add the new eyebrow, put the text lower down the page... more width on the text too." Applied: (1) the light beam as two blurred CSS radial-gradient layers rotated 36deg sweeping from top-right — no image, no animation; (2) the four-stage pathway strip removed from the hero base (the canon four stages remain on the Home service cards' stage labels); (3) the mono bracket eyebrow ships as a shared .eyebrow-mono class (Geist Mono stack, 12px, +0.1em, uppercase, documented in DESIGN.md typography with impeccable ignores recorded) with hero text "[ Trace Technical ]" — FIRST-PASS WORDING, Glen to confirm; (4) hero text block anchored low (margin-top auto against the band's bottom padding); (5) headline 15ch cap removed — "PPE compliance, done properly." now runs one line at desktop — and the sub widened 44ch → 62ch. Build + gates pass; browser-verified.
[2026-08-18] update | Section rhythm matched to developer.x.com: flat 6rem padding + faint full-bleed break rules | Updated: digital-home/frontend-v2 (src/assets/css/tokens.css --section-y + --hairline-faint NEW, components.css .section border-top, src/diagnose.njk + src/field-notes.njk opt-outs), DESIGN.md, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "match that website section padding and then mark section breaks with theirs." Measured from developer.x.com: every section runs a flat 96px top/bottom and rules itself off with a faint full-bleed top border (#151619 on black ≈ 5% white). Applied: --section-y 6rem flat (superseding the clamp era), new --hairline-faint token (dark rgba(255,255,255,0.05), light #EFEDE8), border-top on .section. The diagnose tool panel and the featured field note opt out (they continue their heroes). The closer band keeps its docked asymmetric bottom. DESIGN.md spacing + tokens + prose updated (its stale 9.5rem clamp corrected). Build + gates pass; computed-verified on home (all five sections 96/96 with the rule, closer 96/76).
[2026-08-18] update | Home hero particle wave killed | Updated: digital-home/frontend-v2/src/_includes/home/hero.njk, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "kill the pattern in the home hero." The faded particle wave (the "neuro thing" — canvas element, its CSS incl. the reduced-motion guard, and the full sine-sheet animation script) is removed; the hero is clean type on the seamless canvas. The headline glitch effect and the light theme's ink panel are untouched. Build + gates pass; browser-verified.
[2026-08-18] update | Buttons to full pills; dark heroes merge with the page ground; no-commit rule in force | Updated: digital-home/frontend-v2 (src/assets/css/tokens.css --radius-button 999px, src/_includes/home/hero.njk, src/_includes/service-hero.njk), DESIGN.md, wiki/log.md — UNCOMMITTED by Glen's instruction
Glen: "Dont commit until you are told to. The buttons are not round enough. Hero also needs to be the same colour as bg." Buttons are now full pills (--radius-button 999px) matching Linear's marketing CTAs — this reverses the Ramp-pack "never fully rounded pill shapes" rule; DESIGN.md's Rectangles-not-pills bullet is flipped to Pills-not-rectangles with the reversal recorded. In dark, every hero now sits on the page ground: the home hero drops its warm-ink panel, svc-hero--paper drops the surface band, svc-hero--ink drops the lifted card panel and its bottom hairline (all dark-scoped; the light theme keeps its designed ink/paper devices — verified certification-project still inverts in light). Note: only certification-project and range-review use svc-hero; the other service pages run the transparent ph-hero and were already seamless. Standing rule saved to memory: no git commits until Glen says so. Build + gates pass; browser-verified both themes; working tree deliberately left dirty.
[2026-08-18] update | Buttons and closer matched to Glen's Linear design-system reference: acid-lime accent, 6px/10x16/14px-510 geometry, closer band on the page canvas | Updated: digital-home/frontend-v2 (src/assets/css/tokens.css, components.css, src/_includes/page-cta.njk, base.njk theme-color), DESIGN.md, wiki/log.md
Glen supplied a local Linear design-system reference (OneDrive Grok/Website/linear-design-system) and ruled: match the button padding, rounding, font size and colour, and give the CTA band the same background as the reference's. Applied: the action accent moves from Trace Yellow #DEF25C to acid lime #E4F222 with #08090A text (new --brand-lime tokens; Trace Yellow stays defined for logo/wordmark contexts); .btn geometry is 10px 16px padding, 6px radius (--radius-button 8->6px), Inter 14px weight 510, -0.011em tracking; the ghost secondary takes --text-secondary text over the hairline-strong border per the reference's ghost spec (paired-CTA deviation: it keeps the primary's geometry rather than the reference's smaller 13px/400, so the pair stands level). The closer band drops its --surface fill and top hairline and sits on the page ground, dark ground retuned #0A0A0C -> #08090A (the reference canvas exactly, also on-pill/on-accent/theme-color); the footer's top hairline is the closing seam again, matching how the reference page ends. DESIGN.md updated throughout (accent, radius, button spec block, dark ground, Do/Don't); impeccable hook ignore recorded for the 14px button size with Glen's ruling as the reason. Build + gates pass; computed styles verified against the reference spec value-for-value in the browser.
[2026-08-18] update | Dark palette rebuilt neutral near-black (Linear/Framer research); shared footer-docked closer replaces every page's floating CTA stack | Updated: digital-home/frontend-v2 (src/assets/css/tokens.css dark block, src/_includes/base.njk theme-color, src/_includes/page-cta.njk NEW, src/_includes/home/final-cta.njk DELETED, src/assets/css/components.css, src/index.njk, services.njk, methods.njk, about.njk, all 10 service pages), DESIGN.md, wiki/log.md
Two Glen rulings executed by dispatched agents with an in-session sign-off pass. (1) Dark is the standard theme and its palette was never designed for that — it was mixed from the warm brand ink and read brown, with a near-invisible surface step. A research agent pulled computed values off linear.app and framer.com (Linear: #08090A near-black, separation carried by rgba-white hairlines, ~5-7pt solid steps; Framer: pure #000, zero borders, one coarse #121212 step); the rebuilt ramp is neutral near-black — ground #0A0A0C, surface #141419, card #1C1C22, hairlines now translucent white rgba(255,255,255,0.08/0.14), text #F7F8F8/#C6CAD2/#9CA1AA — all AA-verified on all three surfaces, Trace Yellow and the whole light theme untouched, DESIGN.md dark block added (and its stale light-first-default bullet corrected). (2) Per Glen the page closers were "a massive stack of mixture of font sizes and weights"; the new shared page-cta.njk is a clean heading with buttons only — full-bleed on --surface, top hairline, bottom padding tighter than top, footer's own hairline suppressed, yellow primary to /booking/ plus a quiet btn--ghost secondary per page. All 14 pages converted; every closer lede, leads paragraph, reassure line and the home bookend sentence dropped (list relayed to Glen for review). Two agent calls overruled at sign-off: the Services closer's secondary is the diagnose flow (the old close led with /diagnose/ and the headline asks the question it answers), and range-review-plain's "Who does the work." paragraph was reinstated as a content section (it is page content, not CTA furniture) with the band title reused from the main Range Review close. Build, slop scan and layout-diversity gate pass; browser-verified in both themes.
[2026-08-18] update | Dark confirmed as the frontend-v2 default; stale light choices unpinned (localStorage key theme → theme-v2); Cookie Policy now discloses the theme preference | Updated: digital-home/frontend-v2 (src/_includes/base.njk, src/_includes/footer.njk, src/assets/css/tokens.css, src/cookies.njk), wiki/log.md
Glen: "I prefer the dark version. I want it to be the default." Dark has been the boot default since the 2026-08-17 dark-first ruling — the reason he was still seeing light is that the pre-dark-first build followed the OS and the footer toggle stores choices, so review browsers carried a stale "light" under the old "theme" localStorage key, which the boot script honours. Fix: the key is renamed "theme-v2" so pre-dark-first values are ignored (the site is not live; only reviewer browsers held them). The tokens.css header now states dark-first instead of the misleading "light on :root (default)". Side-catch: the Cookie Policy disclosed only cookie-notice — a theme-v2 row is added to the storage table, the copy pluralised, and Last updated bumped to 18 August. Browser-verified: fresh visitor lands dark (#151310 ground), a stored old "light" no longer pins light, the toggle still flips and persists both directions across pages.
[2026-08-18] create | Diagnose backend rebuilt and committed in trace-backend (7662ea8) | Updated: trace-backend (supabase/migrations/104_diagnose.sql NEW, src/app/api/diagnose/route.ts NEW, src/types/database.ts), brand-wiki/backlog.md, wiki/log.md
An agent rebuilt the lost backend from the surviving spec and it is committed in trace-backend the same session (the lesson from losing it). All five guardrails are server-side: data-not-instructions binding with forced-schema output and the six-service whitelist (injection flag → out_of_scope); per-IP limits 5/hour + 12/day over keyed SHA-256 IP hashes in the new diagnose_requests table, failing soft when the table is absent; honest fixed-copy no_match/out_of_scope; a safety fast-track (regex pre-check answers urgent without a model call, and the model can flag urgent too); server-enforced 30..2,000 chars plus a pasted-document heuristic. Capture-key auth matches the capture endpoint; prices are excluded by prompt and a currency post-filter that degrades any slip to no_match; logging stores hashed IP and length only, never the visitor's text. Verified with tsc/eslint, a stubbed Supabase for every failure path, and live Claude calls reproducing the original's verified outcomes. The rebuild's admitted guesses, for Glen's review: model claude-sonnet-4-6 via the repo's CRM_AI_MODEL path; DIAGNOSE_IP_SALT (falling back to the service-role key) as hash keying; pasted-doc rejection as a 400 error rather than an outcome; the safety keyword list and heuristic thresholds; extra rate_limited/rejected values in the log column; no CORS handler since only the Pages proxy calls it. Still outstanding: push trace-backend, apply 104 via the SQL Editor, run the OpenNext production build, set Pages secrets at go-live.
[2026-08-18] update | Diagnose backend confirmed unrecoverable; rebuild from surviving spec started | Updated: brand-wiki/backlog.md, wiki/log.md
The recovery sweep concluded: the 2026-08-17 route.ts and 104_diagnose.sql are gone — the builder session was purged at 22:24 that evening, NTFS timestamps prove the files never landed in the trace-backend tree, the deployed Worker predates the work (11/08), and GitHub, transcripts, scratchpads, worktrees and the Recycle Bin are all empty. What survives is the complete spec: the frontend proxy and /diagnose/ page carry the exact request/response contract verbatim, backlog.md carries the five-guardrail semantics, and the recovery agent saved a provenance-tracked fragments dossier plus a draft migration to the session scratchpad. A rebuild agent is now recreating both files in trace-backend (write + local verification only; commit/push/apply held for Glen). Process lesson recorded in the backlog: backend work gets committed in its own repo the same session it is built.
[2026-08-18] update | AI providers stay unnamed in the AI Policy (Glen's decision) | Updated: digital-home/frontend-v2/src/ai-policy.njk, brand-wiki/backlog.md, wiki/log.md
Glen: "no naming AI providers, can strike this off." The last open TODO in ai-policy.njk is resolved as settled-by-omission: the policy states the boundaries and commitments, and the Privacy notice discloses recipients as a category ("AI infrastructure providers acting for Trace under contract") without naming vendors. The source comment now records the decision instead of a pending question; the audit follow-up list in backlog.md is updated.
[2026-08-18] update | AI Policy page rewritten with Glen's final copy | Updated: digital-home/frontend-v2/src/ai-policy.njk, wiki/log.md
Glen supplied the final AI Policy copy in full; an agent applied it verbatim into the existing legal-page anatomy. Gone: the "What the systems are" section and the Methods cross-link paragraph (not in his copy), plus the retention/training and review-cadence TODOs (settled by the "standing commitment" training line, the deferral of retention to the Privacy notice, and the review section's own wording). Kept as a source comment: one TODO noting the copy still does not name where diagnosis inputs are processed or which AI providers are involved. The Questions placeholder resolved to the mailto plus the site-standard Book a call route, matching the Privacy page's contact pattern. Build verified.
[2026-08-18] lint | Production audit run on frontend-v2 by three parallel agents: 68/100, five High findings; workbook report generated | Updated: digital-home/frontend-v2/audit-report.md + audit-report.pdf (new), wiki/log.md
The production-audit skill (installed today from Glen's Downloads into ~/.claude/skills/) ran its 32-check rubric via three agents (security / performance+SEO+accessibility / reliability+ops+compliance). Pre-deploy audit against the repo; the eight live-URL checks (headers, TLS, Web Vitals, caching, error+uptime monitoring, staging, Lighthouse) are deferred to deploy day. Failed: rate limiting (S-06 High), oversized unreferenced images (P-02 High), no backup story incl. 30 unpushed commits (R-04 High), runtime-resilience gaps (R-05 High), AI-diagnose flow undisclosed in the privacy notice (C-02 High), missing OG/canonical meta (SEO-01 Med), one AA contrast miss (A-02 Med), no structured data (SEO-02 Low), no sitemap/robots (SEO-03 Low), unpushed work (O-02 Low). Passed 13 incl. secrets hygiene, clean npm audit, injection handling, CORS posture, cookie compliance and asset licensing. Two side-catches: eleventy.config.js published the Functions source into _site, and /cookies/ claimed Turnstile runs when no widget exists. A 19-page workbook PDF + markdown sit in digital-home/frontend-v2/.
[2026-08-18] update | Audit remediation wave: every in-repo finding fixed (Cloudflare-side items excluded per Glen); layout-fingerprint gate reactivated | Updated: digital-home/frontend-v2 (functions/_shared.js + api/contact.js + api/subscribe.js + api/diagnose.js rate limits + Turnstile hardening, functions/README.md env manifest, eleventy.config.js passthrough removed, src/_includes/base.njk skip link + canonical/OG/twitter meta + home JSON-LD, src/field-note.njk Article JSON-LD, src/robots.txt.njk + src/sitemap.xml.njk NEW, src/_data/site.js url, src/assets/css/tokens.css muted token, src/privacy.njk diagnose disclosure, src/diagnose.njk policy links, src/cookies.njk Turnstile wording, src/services/* data-section markers, scripts/check-layout-diversity.mjs, 3 unreferenced images DELETED), brand-wiki/backlog.md, wiki/log.md
Per Glen: "the other changes will need to be put in... except connecting the site to cloudflare." Applied: per-IP rate limits on all three endpoints (contact and subscribe 5 per 10 min, diagnose 8 per hour; hashed IPs; KV-backed when a RATE_LIMIT_KV binding exists, per-isolate in-memory floor otherwise); the Turnstile siteverify call wrapped with a 5s timeout and logged fail-open so a Cloudflare hiccup can never 500 a visitor; the Functions-source passthrough removed from the build; the 1.6MB unreferenced founder PNG and two more dead images deleted (the served 66KB webp is untouched); light-theme --text-muted darkened #77746C to #6E6B63 (4.7:1 on surface, AA everywhere it appears); a skip-to-content link added as the first tab stop; canonical + Open Graph + Twitter meta sitewide (no share-image asset yet; TODO(Glen) in base.njk); robots.txt and sitemap.xml now build; ProfessionalService JSON-LD on Home and Article JSON-LD on note pages; the diagnosis flow disclosed in the privacy notice (collection list, its own lawful-basis row, an AI-providers sharing item, and a paragraph naming the flow) with Privacy/AI Policy links beside the diagnose input; /cookies/ rewritten to claim only the always-on server-side check, with Turnstile in where-enabled terms; the six service pages re-instrumented with data-section markers so check-layout-diversity's similarity gate runs again (active, passing; shared components share names, page devices keep their own). functions/README.md is now the single env manifest including the build-time Supabase vars and the optional KV binding. Both checks green; diagnose and AI Policy pages verified in the browser.
[2026-08-18] update | Deploy decision (Glen): no new Pages project — frontend-v2 migrates over the existing Cloudflare Pages project at go-live | Updated: brand-wiki/backlog.md, wiki/log.md
Glen's ruling on the audit's deploy chores: the go-live step is repointing the existing Pages project (root directory to digital-home/frontend-v2, output _site), not creating a parallel project. Most env vars carry over from the old site's project; the deltas at go-live are BACKEND_URL, the optional RATE_LIMIT_KV binding, Turnstile widget+secret together, the _headers file, WAF rate rules and the deferred-check re-run. Until Glen says push it live, nothing touches the live project.
[2026-08-18] update | Diagnose backend found MISSING from trace-backend: /api/diagnose route and migration 104 exist in no commit, stash or file | Updated: brand-wiki/backlog.md, wiki/log.md
Starting Glen's "Supabase part" (apply migration 104) surfaced that the 2026-08-17 diagnose backend work was never persisted: trace-backend's last commit predates it, and src/app/api/diagnose/route.ts plus supabase/migrations/104_diagnose.sql are nowhere on disk, in git history, stashes or worktrees. Only the frontend half survives (functions/api/diagnose.js proxy and the /diagnose/ page). Verified empirically against production Supabase: no diagnose tables exist (probed via PostgREST), so 104 was also never applied; migration 011's RLS posture is confirmed good (anon reads published rows only). A recovery agent is reconstructing the two files from session transcripts; an apply plan (SQL Editor route, same as migrations 001-103) is staged in the session scratchpad. Until recreated, the wired frontend triage has no backend to talk to.
[2026-08-17] update | Services index hero CTA settled: Book a call primary, "Diagnose my service" secondary | Updated: digital-home/frontend-v2/src/services.njk, brand-wiki/backlog.md, wiki/log.md
The last open polish-phase flag closed by Glen: the Services index hero keeps the yellow Book a call primary and its secondary text-link is now "Diagnose my service" to /diagnose/ (Glen corrected the one-word "Diagnose" to the fuller label), replacing the Stages anchor. The close section keeps its Diagnose button, so the page opens and closes on the same offer. Verified in the browser; checks unaffected (link target already existed).
[2026-08-17] update | First-section agent panel ruled per page; TO schematic added; session eyebrows resolved to a base-column meta line; hub cards top-aligned and de-squashed | Updated: digital-home/frontend-v2 (route-finder, certification-project, technical-ownership, team-training, issue-support (no change), 3 session pages, components.css ts-who recut + .ph-hero__meta + .ph-hero__format removed), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
Glen's direction executed: agents of varying tiers (Fable, 2x Opus, 3x Sonnet), each running the impeccable lens on one page, decided the right first-section treatment per page rather than stamping Range Review's columns everywhere. Verdicts: Issue Support KEEP (the issues ledger is already the page's distinct device); Certification Project full-measure headline + the two paragraphs staggered left-then-right (a hand-off); Route Finder question at the margin, hairline, reasoning inset, "Route Finder settles the order first, in writing." returning as its own answer line; Technical Ownership stepped statement with "Technical Ownership is the working middle." promoted to a hairline-topped resolve line; Team Training hub lede-styled problem + the answer inset in a surface panel (rhyming forward to the session cards); session trio (one decision, CSS-only) stacked headline + hairline + twin reading columns, with ts-outcome left split so the pages do not repeat internally. Flagged honestly: RF and TO converged on sibling statement/step-in/resolve shapes — Glen to say if one should diverge. Also this wave, on Glen's live flags: Technical Ownership hero schematic added on his correction that the service IS a sequence ("they assign me, i complete etc.": You assign it / Trace completes it / Recorded and visible); hub session cards de-squashed (three-segment format line cut to one routing cue: Starting from zero / Your documentation / Your products) and top-aligned (foot-pinned body replaced by a fixed offset so names sit level); session-page eyebrows resolved by an Opus+impeccable agent after Glen's second flag ("still doing too much work"): eyebrow returns to the bare session name, duration/format/audience become a quiet .ph-hero__meta middot line between lede and actions in the base column, "Delivered by Glen" cut from the hero as duplicating each page's own prose; the orphaned .ph-hero__format rules swept from components.css and DESIGN.md's stale eyebrow bullet rewritten with both rejected forms recorded. Ink close panels formally scrapped by Glen. All changed surfaces verified in the browser (dark, light, 375px); both checks green.
[2026-08-17] update | Prototype trio approved and swept: AI-moment boxes on all nine AI blocks, route schematics on five heroes, founder quotes on all six service pages | Updated: digital-home/frontend-v2 (components.css .ai-moment/.ph-route/.quote-beat promoted, _includes/ai-mark.njk NEW, all 6 service pages + 3 session pages), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
Glen approved all three Certification Project prototypes; the sweep followed the same hour. AI moment: every service and session page's AI block now sits in the outline box opened by the Brand-system node mark (shared .ai-moment + ai-mark.njk include; Home's AI section keeps its own diagram). Route schematics: Route Finder (intake / five working days / the route in writing), Range Review (scope agreed / product by product / a verdict for each), Issue Support (its four control steps) and the Team Training hub (intake / session / action summary) joined Certification Project; Technical Ownership deliberately carries none (depth levels are not a sequence) and session pages stay schematic-free. Pull-quotes: the remaining five approved quotes placed, one per service page as a .quote-beat after each page's opening argument; "grey" normalised to house spelling on Issue Support. All three patterns promoted from the prototype's page-local CSS to components.css. Verified in the browser (Route Finder, Issue Support, Foundation, Certification Project; dark, light and mobile spot-checks); both checks green. Ink close panels question answered for Glen: the idea is dropped as redundant under dark-first.
[2026-08-17] update | Polish wave 3, Glen live-directing: figures removed, cards kept over ledger, dot-grid swept, pull-quotes live, fix batch applied, cert-project prototype staged | Updated: digital-home/frontend-v2 (components.css .pull-quote + .ai-links tidy + .fig-cap removed, home/{hero,services,ai,field-notes,final-cta}.njk, services.njk toolkit lede, services/certification-project.njk prototype trio, services/range-review.njk situation recut, 3 session pages eyebrow meta, ai-policy.njk button fix, all fig-cap captions deleted, services-ledger + preview page deleted), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
Rapid-fire wave with Glen reviewing live. Reversals: the Fig. catalogue came out hours after going in ("remove the figures"; founder Fig. 01 stays, never-resurrect recorded); the Home ledger retired ("I like the cards" + recommendation that cards are easier for the client). Approvals applied: dot-grid full top field on all six Home cards; founder pull-quote pattern built and placed on Home AI and Certification Project; unique verb-led card stage labels replacing the tripled "Regain control"; "essential toolkit for fast-moving PPE brands" (Glen's line) into the Services index lede. Fix batch: hero pathway border off, hero CTA "Book a call with Glen", AI-policy button style bleed fixed, session meta moved into hero eyebrows, Home close de-stacked, section-head links moved right of their headlines (field notes + services), AI-block link pair tidied sitewide, card text heights reserved so names sit level. Staged for judgement on Certification Project: hero route schematic (his hero-graphic idea), the quote beat, and the AI-moment outline box carrying the Brand-system node mark (his "brain icon" ask, answered in the site's own mark language); plus Range Review's de-duplicated first section (his "duplicated/lazy" flag). Mid-wave incident: deleting the ledger preview page wedged Eleventy's watcher (deleted template stayed cached, every rebuild wrote 0 files); server restart cleared it and all changes re-verified after. Everything verified in the real browser in dark, light and 375px mobile; both checks green.
[2026-08-17] update | Polish wave 2: Fig. catalogue sitewide, Methods chapter rails, headline-period audit clean; ledger and dot-grid prototypes staged for Glen | Updated: digital-home/frontend-v2 (components.css .fig-cap, methods.njk chapters, home/ai.njk, home/services.njk dot demo, home/services-ledger.njk NEW, home-ledger-preview.njk NEW, all 6 service pages + 3 session pages fig captions), brand-wiki/backlog.md, wiki/log.md
The finishing-brief remainder, built in one wave. Fig. numbering sitewide: one catalogue extending the founder figure's Fig. 01 — Fig. 02 the Home AI diagram ("The work, the system, the decision"), Fig. 03-08 each service page's signature device (deliverables grid, route movements, verdict strip, issue ledger, operating depths, session cards), Fig. 09-11 the three session agendas, Fig. 12 the Methods comparison. One shared .fig-cap class in components.css matching the founder caption's grammar (0.75rem, muted, middot). Methods as the standout page: the three content sections became chapters with sticky rail labels — oversized ghost numeral (hairline-strong, display face) + quiet chapter name, pinned while the chapter scrolls (Methods-only pattern, inline above content on mobile). Headline-period pass ran as an audit over every built page: all marketing h1/h2 headlines already carry terminal punctuation; the only bare headings are legal-set section labels and h3 data labels, correct as document/data register — zero copy changes needed. Staged for Glen, not live: the oversized numbered service ledger built at /preview/home-ledger/ (home/services-ledger.njk; Home's cards untouched, page unlinked and excluded from collections) and the full Ramp-style dot-grid field demoed on the Route Finder card only (service-card--dotgrid, dots one step stronger than the corner detail so there is something to judge). All verified in the real browser in dark, light and 375px mobile; npm run check and check:slop green. Glen's new mid-session question (a graphic under service-page hero headings) answered with a recommendation to prototype a hairline schematic on Certification Project first; nothing built yet.
[2026-08-17] update | Final hero form landed: dark-first site, compact no-card inner heroes, Strand-informed Home (note strip, pathway base, new CTA pair) | Updated: digital-home/frontend-v2 (base.njk theme boot + theme-color, components.css ph-hero recut compact/no-bg + grid areas, home/hero.njk final form, booking.njk calendar box removed), DESIGN.md, wiki/log.md
The same evening's third and settling iteration, all Glen live-directed against strand.framer.website. (1) DARK is now the first-visit default ("the site looks better in the dark version"), light behind the remembered toggle. (2) The bone-panel hero card came off every inner page hours after it went on ("a majority it just doesnt suit"): ph-hero recut as a compact no-background header - tiny label, heading left, small lede + actions right, straight into the page (an auto-placement bug that threw titles into the right column was caught by eye on the Field Notes hub and fixed with explicit grid areas). Booking's calendar box also removed; the embed sits on the ground. (3) Home hero final form: "New" chip + live latest-field-note strip up top; headline merged to the descriptive "PPE compliance, done properly." (Glen rejected "Your side of the table." as headline; it survives in the subheading) with the one-shot glitch; yellow "Book a 30-min call" + soft-white "Find your service" sub-button; and the canon four-stage pathway (1 Know the route / 2 Move the product / 3 Regain control / 4 Build capability, with one-line notes) anchoring the hero base over the particle wave. Checks green. DESIGN.md records dark-first, the compact hero, the Home form, and both never-resurrect entries (ledger AND bone-panel hero card).
[2026-08-17] update | Ledger heroes rejected same-day; panel-hero grammar built, chosen and rolled out sitewide (ink Home full-bleed + particle wave, bone panels inner) | Updated: digital-home/frontend-v2 (components.css ph-hero rewritten, home/hero.njk rewritten twice, methods.njk, about.njk, services.njk, all 6 service pages, 3 sessions, field-notes.njk, diagnose.njk, booking.njk; hero-lab.njk built through v3 then DELETED), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
Hours after the ledger rollout below, Glen rejected it in the round ("the big lines, the eyebrow isnt landing, the typography, the second button says too much, loses impact"). Hero-lab v2 offered three impact directions; Glen killed the stamped-word concept, then /impeccable produced the committed panel-hero thesis in v3: contained panels carrying the colour-block weight of his references in the system's own materials. Glen's calls, in sequence: ink Home + bone services; no drifting grid ("i dont like the grid"); no card on Home and no Trace Technical label (full-bleed ink, a sanctioned exception to the band ban); a faded particle wave on the dark hero (his explicit override of the earlier dot-field rejection; built as a dependency-free vanilla canvas sine sheet, offscreen-paused, reduced-motion-absent); and the top-pinned layout regrouped after his "why such a big gap" (content centred in ~74svh). Two agents converted all 12 inner heroes to the bone panel (labels anchored in-panel, one-word secondaries: Stages, Deliverables, Process, Verdicts, Issues, Levels, Sessions, Why; diagnose/booking as compact panels flowing into their tools). Ledger CSS, ticks and scan removed wholesale; grep confirms zero remnants; hero-lab deleted after serving three rounds of decisions. DESIGN.md hero canon rewritten around the panel grammar with the ledger recorded as never-resurrect. All checks green. The earlier entry below records the ledger wave as built; it lived for about four hours. | Updated: digital-home/frontend-v2 (base.njk, tokens.css, components.css, nav.njk, footer.njk, home/{hero,founder,final-cta,services,field-notes}.njk, methods.njk, about.njk, services.njk, all 6 service pages, 3 training session pages, field-notes.njk, field-note.njk, diagnose.njk, booking.njk, legal set, hero-lab.njk (temp)), DESIGN.md, brand-wiki/backlog.md, drafts/founder-pull-quote-candidates.md (new), wiki/log.md
The big wave, Glen-directed throughout. Heroes: hero-lab comparison page built (five architectures + font switcher); Glen chose Option 4 (ledger) + Switzer display/Inter body, with Home deliberately different: full-height, the site's biggest type, and a Home-only one-shot text glitch on the ink lead (Glen: "text glitch only on the home page would be good"). Shared ph-hero anatomy rolled across all 13 inner heroes by two agents (diagnose/booking judged: eyebrow+title only, no forced ruled row over their tools); secondary hero links shortened to 2-4 words sitewide; hairline eyebrows (label + trailing rule) sanctioned as the one heading-label exception; ambient hero life added (breathing registration ticks, travelling scan segment). Mono eyebrows considered and rejected as the current AI-site tell. System: sections ease in/out on scroll (reveal system with per-section opt-out), form fields go green on real completion (:user-valid + --success, diagnose minlength fix), button/link press grammar unified, three polish agents swept every page with screenshot verification. Chrome: nav carries no yellow (dark Book a call; Field notes a plain link, "Our" dropped, Glen's call to stop competing with hero CTAs); footer gained the ghost Trace wordmark rising behind the content (Glen: "faded behind the start of the footer") and the live field-note count; Home's close bookends the hero sentence. Fonts/theme: Switzer via Fontshare (self-host TODO at deploy); light is the first-visit default, only the stored toggle choice switches. Finishing brief produced from six reference sites (Ramp, Vercel AI, Airtable, Linear, x.ai extraction, ClickHouse) + Glen's screenshot motifs; top-10 adoption list delivered; stat strip and testimonial deck CUT on Glen's honesty call (no defensible numbers, no client testimonials; proof-stack canon confirmed already honest). Founder pull-quote candidates mined verbatim from the 2026-08-11 interviews into drafts/founder-pull-quote-candidates.md, pending Glen approval. All checks green. Remaining from the brief: Fig numbering sitewide, ink close panels, headline-period pass, Home service ledger, Methods sticky labels, dot-grid demo card.
[2026-08-17] update | Field-notes wave: 180-day cookie expiry, backend fetch wiring, plainer note-page styling | Updated: digital-home/frontend-v2/src/_includes/cookie-notice.njk, src/cookies.njk, src/_data/fieldNotes.js, src/_data/fieldNotesStatic.js (new), src/field-note.njk, brand-wiki/backlog.md, wiki/log.md
Three items Glen ordered in one message, two delegated to parallel agents. (1) Cookie-notice expiry settled at 180 days matching the old site: dismissal now stored as an epoch timestamp, notice reshows after 180 days; Cookies page duration copy corrected; verified in the browser including the expired-timestamp path. (2) Field-notes backend wiring: fieldNotes.js rebuilt as a build-time Supabase fetch identical in mechanism to the old site's articles.js (same env vars so the future Pages project reuses them, published-articles filter, 15s timeout), mapping rows to the exact template shape with topic and service-bridge derivation from semantic_tags/associated_offers; the six launch notes now live in fieldNotesStatic.js as the fail-soft fallback, and both failure paths (no env vars, unreachable host) were proven to build green. (3) Note-page restyle to Glen's reference screenshots: the titled callout asides and "The rule" asides went from bone rounded panels to flat left-ruled blocks (2px --text-primary rule, 1.25rem pad, no fill, no radius), note tables dropped to --text-small-size, and the end-of-note "All field notes" button became a quiet "← Back to field notes" text link with a left-arrow SVG matching the sitewide glyph grammar (the one sanctioned left-arrow, mirroring the angle-arrow). Everything verified visually in light, dark and 375px mobile on two note pages by the agent and re-verified independently in the coordinator session. npm run check and the banned-phrase scan pass.
[2026-08-17] update | Founder-photo treatment settled and built: cutout on a baseline with a glitch entrance, shared by Home and About | Updated: digital-home/frontend-v2/src/_includes/founder-figure.njk (new), src/_includes/home/founder.njk, src/about.njk, src/assets/img/glen-mascall-cutout.webp (new), brand-wiki/backlog.md, wiki/log.md
The queued founder-photo creative treatment resolved through three rounds in one session. First a technical-file job-ladder figure (hairline callouts labelling the four chain positions) was built on /about/ per Glen's opening direction, then rejected on his correction: he meant the Home photo, and "the job ladder isnt going to work" (About reverted to plain). The impeccable skill then ran an options round; Glen picked two to see built (registration plate, cutout on a baseline) and chose the cutout live, adding "bigger bonus if you can animate it to glitch when getting to that section." Final treatment, extracted to one shared component (founder-figure.njk) used by Home's founder block and About's founder section: the background-free cutout (1.6MB PNG compressed to a 65KB 900px webp with ffmpeg) standing on a --hairline-strong baseline, head overlapping the top of the bone panel, small "Fig. 01 · Glen Mascall, founder, Trace" caption beneath, and a 0.72s glitch burst on first scroll into view — two clip-path slice ghosts plus base-image jitter at steps(1), IntersectionObserver-triggered once per page, cleaned up on animationend, skipped under prefers-reduced-motion. Verified live: observer fires on scroll-in and the class cycle completes on both pages; screenshots at desktop light, desktop dark and 375px mobile all pass (a zero-size browser-pane viewport caused a run of false screenshot failures mid-session). npm run check and check:slop pass. Backlog updated; the AI-glitch static-asset question is closed by the animated glitch.
[2026-08-17] create | Diagnosis triage wired live with all five guardrails; approved Home plan applied in full; nav reworked (wordmark, links right); Contact page cut; Field Notes yellow approved; polish phase queued | Updated: trace-backend (new /api/diagnose route + migration 104 + types), digital-home/frontend-v2 (functions/api/diagnose.js new, src/diagnose.njk wired with working feedback, src/index.njk + home/{hero,services,founder,ai,final-cta}.njk per HOME-REVIEW.md, nav.njk), DESIGN.md, HANDOVER.md, backlog.md, wiki/log.md
Glen's evening green-light wave. Diagnosis: trace-backend gained POST /api/diagnose, a single-pass schema-constrained Claude triage whose system prompt is distilled from which-service-do-i-need.md (no prices, designed-to framing, boundaries stated); the five spec guardrails are all server-side (injection binding + whitelist + fixed non-match copy; per-IP rate limits over a new diagnose_requests table; no-match/out-of-scope outcomes; injury/immediate-risk fast-track past the model to the human block; 30..2,000 char bounds + pasted-document heuristic). The site proxies same-origin via functions/api/diagnose.js and /diagnose/ now renders real first views, with working feedback added on Glen's live flag (pulsing input border, sliding activity bar, cycling status lines, honest, no fake percentages). Verified end to end locally through wrangler pages dev + the real backend + real model calls: 401/400 paths, safety fast-track, injection attempt → out_of_scope, procurement → out_of_scope, and two live matches (Certification Project for the stalled-jacket example, Range Review for an inherited-range case) with canon-faithful reasoning. Not yet live: migration 104 needs running in Supabase (fail-soft until then), trace-backend needs pushing, and the Pages project needs BACKEND_URL/CAPTURE_KEY at deploy. Home: the signed-off HOME-REVIEW.md plan applied in full by an Opus build agent (hero lede, AI section halved into ai.njk with .ai-links, hero primary → Diagnose, founder block new with the plain photo, services H2, new "Bring the actual product." close, glyph consolidation, brand-brain fragment/classes renamed ai). Nav: links right + a bolder "Trace" wordmark next to the icon (Glen's two live tweaks). Decisions logged: no Contact page (everything routes to /booking/); the Field Notes hub's yellow featured note approved (DESIGN.md updated); a post-core-build polish phase queued in backlog (jazz the heroes, colour/personality in places, Methods as a standout page, founder-photo creative treatment options).
[2026-08-17] create | Field Notes hub + six note pages, full legal set (Privacy/Cookies/Terms/AI Policy), 404 and sitewide cookie notice — every planned frontend-v2 page now exists | Updated: digital-home/frontend-v2/src/{field-notes,field-note,privacy,cookies,terms,ai-policy,404}.njk (new), src/_data/fieldNotes.js (new), src/_includes/{cookie-notice.njk (new), base.njk, home/field-notes.njk}, scripts/{check-layout-diversity.mjs, check-links.mjs (new)}, HANDOVER.md, brand-wiki/backlog.md, wiki/log.md
Field Notes built per the settled Warp.dev architecture: hub at /field-notes/ (quiet hero, the latest note on a Trace Yellow accent block extending the sanctioned Home exception — this IS the spec's deferred "yellow hero" decision, now built for Glen to judge; search + four topic-filter chips as progressive enhancement; hairline-divided tabular list; no-JS shows the full list), and six note pages at /field-notes/<slug>/ generated by Eleventy pagination over a new src/_data/fieldNotes.js (static for now; the old site's Supabase fetch can replace it at the same interface later). The six published note bodies were ported from the old site's launch set and, on Glen's mid-session instruction, reworked to the current voice guide: quieter consequence language, scare quotes removed, "Signature framework" asides relabelled "The rule", banned-word and link fixes, structure and substance kept (What happened / Why nobody caught it / table / The rule / what-to-do checklist, service bridge, disclaimer). Home's six field-note rows now deep-link to their notes. Delegated in parallel on Glen's instruction: a Sonnet agent ported Privacy/Cookies/Terms from the old site's approved copy (entity/ICO facts kept; new-site reality updated: Turnstile, Cal.com on /booking/ only, theme localStorage, no analytics) plus the 404 ("This page does not exist. At least it is honest about it.") and a minimal bottom-left cookie notice (disclosure, not a consent gate — nothing to block; localStorage-dismissed, wired sitewide via base.njk); an Opus agent researched and wrote /ai-policy/ around "Systems accelerate expert judgement. They do not replace it.", covering the Brand system's scope, what AI never does, the diagnosis tool's boundaries, client-data commitments and accountability, with three TODO(Glen) source comments for facts that only exist once the triage backend is live. Two of Glen's live review flags fixed the same hour: legal-page hero/body columns now share one left edge (the body article is the container), and the AI Policy was restyled from its own design to the legal set's shared anatomy (Legal label, flat H1, same heading scale, plain lists, quiet rule callout). Tooling: check-layout-diversity fixed for the /services/ paths, its banned-phrase scan made recursive over every built page, and an honest inactive-gate warning added (no data-section markers survived the rebuild); new check-links.mjs verifies every internal link resolves — both pass on the full build. Verified in the browser throughout: hub light + dark, filter/search behaviour, a full note page end to end, all four legal pages aligned, 404, cookie notice show/dismiss. Flagged separately: About page's two banned "lab" usages (spun off as its own task).
Fixes the "flagged, not fixed" finding from today's service-page review below: the THESIS/OWN-WORLD/STORY/FIRST VIEWPORT/FORM/FINISH build brief in base.njk — containing "Brand Brain", the Ramp/ElevenLabs/Linear/Vercel/Framer reference list and internal process language — shipped as an HTML comment in the rendered source of every page. Converted <!-- --> to `` so Nunjucks strips it at build time while the provenance stays in source. Verified: npm run build passes and no built page in _site/ contains any of the brief's text. Still open (flagged as a follow-up task): CSS comments naming the reference competitors remain in served tokens.css, components.css and inline page styles.
[2026-08-17] create | Five pages built (About, Services index, Diagnosis, Booking, plus Methods earlier); forms wired to the backend; Home reviewed with a signed-off redesign plan; field notes redesigned with a yellow featured note | Updated: digital-home/frontend-v2/src/{about,services,diagnose,booking}.njk (new), src/_includes/{footer,home/field-notes}.njk, functions/* (ported), HANDOVER.md, HOME-REVIEW.md (new), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
The build wave Glen ordered (About, Services index, diagnosis tool), then booking prioritised "to get a call booked", then field notes. About (Opus agent, spec's five sections): roles as a scannable list, beliefs as a full-width hairline-row panel (redesigned twice on Glen's live feedback: filled the dead space, then dropped claim size a tier below the section heading), founder photo used plain. Services index (Opus agent): grouped 1-1-3-1 stage panels, deliberately unlike Home's grid. Diagnosis (Fable): the spec settled Glen's input-vs-page question as both — /diagnose/ IS the page whose core is the "Ask the Brand system" single-pass input; ships with the 30-char gate, 2,000-char cap, confidentiality + boundary disclaimers, human-escalation block, and an honest not-taking-submissions notice since no brain exists; the five backend guardrails are a blocking backlog entry (Glen reconfirmed "the input will need guardrails"). Booking: Cal.com 30-min inline embed (glen-mascall-trace/30min, webhook already verified into trace-backend) with loading/error states and a fallback "Prefer to write first?" enquiry form ("Now the boring bit" removed on Glen's instruction); functions/ ported verbatim from the old frontend so /api/contact and /api/subscribe exist at deploy; footer newsletter wired to /api/subscribe with consent wording synced. Home review ran the adversarial pipeline (Sonnet + impeccable → Opus critic → Fable): 6 of 8 findings confirmed, the critic found Home's AI section duplicates /methods/ verbatim in three places and that every Book a call CTA 404'd (fixed same day by building /booking/); the full signed-off plan (hero lede rewrite, AI-section halving, CTA ladder, founder block, section order) is preserved in digital-home/frontend-v2/HOME-REVIEW.md pending Glen. Field notes redesigned on Glen's ask (bored by the list): editorial spread — featured note as a Trace Yellow accent block (sanctioned non-CTA accent exception, recorded in DESIGN.md), two white cards, quiet three-up teaser row, arrow-diag glyphs. Also settled by Glen this wave: no fixed TAT for Issue Support (third won't-fix, logged), the Team Training nav flyout, and the About/Services/Diagnosis-shape decisions above. All pages verified rendering in the browser; the session was checkpointed for a context clear.
[2026-08-17] update | Review fix wave applied across all nine service pages; Team Training flyout added to the nav; duplicated page CSS consolidated | Updated: digital-home/frontend-v2/src/services/* (all 9), src/_includes/nav.njk, src/assets/css/components.css, brand-wiki/backlog.md, wiki/log.md
The confirmed non-hero findings from the day's adversarial review are now applied (About/Services-index/diagnosis builds postponed on Glen's instruction; the diagnosis tool's shape — inline "Ask the Brand system" input vs a full page — is logged as an open decision in backlog.md). Copy: Route Finder states the intake, the five-day clock start and that test-house/certification-body fees are separate; Certification Project scopes the numbered process as "The full route, in order" with a documentation-only entry line and trims the "coordinate" tic; Range Review aligns keep→Retain with its verdict strip, adds the scope-agreed-first line, and drops the cold "Portfolio Review" mention; Issue Support's recall item names Trace's day-one action and its position/control/response word-circling is varied; Technical Ownership's three levels each open with who they are for, the Model section is distilled to the liability statement (test houses and certification bodies named), and two "X. Not Y." headlines became positive statements. Training cluster de-duplicated: per-page outcome and AI-block headlines, Foundation's AI paragraph rewritten independently of the hub, the action-summary deliverable sentence made identical on all three session pages, and the hub's before/during/after section replaced by routing (card top-lines "Starting from zero / Your documentation / Your products"), plus the hub's missing close leads footnote and h3 semantics on card names. Nav: the Services dropdown's Team Training row now carries a right chevron and a side flyout listing the three session pages (Glen's direction mid-session), hover + focus-within, reduced-motion safe. CSS: the byte-identical ~220-line ts-* block promoted to components.css (motorcycle keeps a 44ch lede override) and the diagonal-arrow treatment consolidated to one .arrow-diag rule across 26 SVGs in 10 files; production build verified clean. All changes verified rendering in the browser. Deliberately NOT ruled on yet: an Issue Support response-time commitment (awaiting Glen).
[2026-08-17] create | /methods/ page built; all nine service-page AI blocks now lead with a "How Trace works" link to it | Updated: digital-home/frontend-v2/src/methods.njk (new), digital-home/frontend-v2/src/services/* (AI-block link pair on all 9), digital-home/frontend-v2/src/assets/css/components.css (.ai-links), brand-wiki/backlog.md, wiki/log.md
Built on Glen's direction that the AI blocks should "gee up" the Methods page rather than sit as a blob plus a policy link. /methods/ follows the approved architecture spec's four confirmed sections: compounding-claim hero ("PPE compliance that gets better every time you use it."), the founder-approved old-way/Trace-way comparison (copy verbatim from the parked dark-build section, reskinned from the killed full-bleed band to a quiet column + raised panel), the Brand-system three-step (Built from experience / Strengthened by interaction / Bounded by design) as definition rows in designed-to framing with "the Brand system" naming, a what-does-not-change section carrying the responsibility/liability boundaries, and a centered close. Every service-page AI block's link row is now the pair "How Trace works" → /methods/ (leading) + "Read our AI policy" → /ai-policy/, laid out by a single .ai-links class promoted to components.css rather than nine cloned rules. Naming settled by Glen: nav label stays "Methods"; the link text and H1 do the clarifying. Verified in the browser: full page render, two-tone hero, panels, and the link pair on Route Finder.
[2026-08-17] update | Glen's decisions on three service-page review findings; two-tone headline spec amended to match the built site | Updated: DESIGN.md, wiki/log.md
Glen ruled on the review's open decisions the same day. (1) Two-tone headline device: spec amended, not the site. DESIGN.md now accepts both built forms — one sentence split at a natural clause, or two short sentences (statement + quiet counter/completion) — never split mid-verb-phrase, and flat headings remain the norm alongside the device. The ~20 two-sentence headlines across the site are canon-compliant as built. (2) Range Review states no turnaround. A duration would be "how long is a piece of string" — it depends on range size. The review finding is closed as won't-fix; do not re-raise or invent a figure. (3) Technical Ownership states no commitment terms (no monthly/rolling/notice-period lines) — Glen is not going to that level of granular detail on the public page. Closed as won't-fix.
[2026-08-17] lint | Adversarial multi-agent review of all nine frontend-v2 service pages; all nine heroes rewritten and applied | Updated: digital-home/frontend-v2/src/services/* (heroes on all 9 pages), Skills/service-page-review/SKILL.md (new, reusable pipeline), brand-wiki/backlog.md, wiki/log.md
Glen commissioned a tiered review (Haiku scanner → seven Sonnet page reviewers with impeccable critiques → three Opus critics re-verifying every finding against source → Fable sign-off with browser verification), with the standing rules that one agent always critiques another and only Opus/Fable signs off — the pipeline is saved as Skills/service-page-review/SKILL.md for reuse on future pages. Heroes were the confirmed weak point (ledes 24-50 words, run-ons, format-line restatement): all nine H1s/ledes are rewritten to instant-scannable intros, applied and verified rendering. Report delivered to Glen (session scratchpad, service-page-review-report.md) covering the confirmed findings: the four-page verbatim heading/paragraph duplication across the training cluster, the cloned numbered-step device (cp-step/ts-step) against the no-cloning rule, Route Finder's missing fees-are-separate and intake/clock-start lines, Issue Support asserting "priority" six ways without a response window, Technical Ownership's Model section distil-not-delete (its liability line is the page's only one), the hub's before/during/after to be replaced with routing content, and the sitewide two-tone spec-vs-build contradiction left as one decision for Glen. Adversarial layer proved out: critics overturned two flagship reviewer findings against canon ("Keep, fix, or remove" is the canon positioning line), rejected three proposed heroes (one would have misdescribed Motorcycle training as a testing service), and refuted the scanner's loudest count. Flagged, not fixed: base.njk ships the internal build brief (containing "Brand Brain" and competitor references) as an HTML comment on every page; wiki/website/website-redesign-direction.md still describes the superseded dark build (dark backgrounds, morph hero, "Ask the Trace Brand Brain") and needs correcting to the light rebuild before anything else is written from it. Glen's same-day direction, logged to backlog: build /methods/ and point the repeated AI block there for substance (AI policy stays as the formal reference).
[2026-08-17] reorganize | frontend-v2 rebuilt from scratch as a light-first Ramp-calibre site; dark-theme build discarded; ten pages live in dev; DESIGN.md rewritten to the new system | Updated: digital-home/frontend-v2/* (full rebuild), DESIGN.md, brand-wiki/backlog.md, wiki/log.md
Glen redirected the redesign mid-day: the dark-theme frontend-v2 build (and its pages) was declared redundant and deleted, replaced by a light-first template at the craft bar of Ramp.com (primary, incl. a Glen-supplied extracted Ramp token pack), ElevenLabs, Linear, Vercel and Framer, built via the Impeccable skill with Opus build agents and iterated live against ~25 rounds of Glen's feedback. Now built and verified in dev: home (hero, six problem-led service cards, consolidated "Brand system" AI section, field notes, close), all six service pages (Route Finder, Certification Project, Range Review, Issue Support, Technical Ownership, Team Training) and three training session pages (Foundation, Document Workshop, Motorcycle) — each service page carrying its own signature device rather than a shared layout. Key settled calls from the day: light ground with dark mode as a token-swap attribute (footer toggle); rectangles never pills; weight-500 single-weight type (Inter Tight/Inter); two-tone headline device sitewide; no full-bleed tonal bands (contained panels only); "Brand Brain" softened to "the Brand system" in public copy; the standard per-page AI block ends in a "Read our AI policy" link; "where this leads" links merged into the final CTA as a quiet footnote; no prices reconfirmed twice; no em dashes. Rejected on review (do not resurrect): interactive dot-field hero, route-line hero device, hero metadata strip, full-bleed statement bands, flat hairline service rows, bento services grid. Root DESIGN.md rewritten from the built world (the dark-system version it replaced described a site that no longer exists); handover written to digital-home/frontend-v2/HANDOVER.md; open items (missing pages incl. /ai-policy/, newsletter wiring, /diagnose/ dependency on an unbuilt brain, deploy target) appended to backlog.md.
[2026-08-17] update | visual-identity.md's supporting-neutral colours synced to DESIGN.md's recalculated dark-theme values; Trace Ink / Trace Ink 2 role split resolved | Updated: wiki/identity/visual-identity.md, wiki/log.md
Task 0.2 deliberately left Quiet Surface, Deep Surface, Body Grey, Muted Grey, Hairline and Strong Hairline untouched, since the spec marked them unresolved at the time. Task 1.1 (DESIGN.md) has since recalculated all six with real WCAG contrast checks against both Ink tones — a Task 2.2 review pass flagged that visual-identity.md still carried the stale light-theme values (tuned for the old white Paper ground) and would mislead a reader who consulted this article directly instead of DESIGN.md. Synced the table to DESIGN.md's values: Quiet Surface #242220, Deep Surface #2E2A27, Body Grey #9C9892 (6.1:1 / 6.3:1 against Ink / Ink 2), Muted Grey #8F8B85 (5.2:1 / 5.3:1), Hairline #3A3632, Strong Hairline #57524C. Also corrected Trace Ink's role description, which still read as the old system's text-color usage ("primary text, dark controls") — on the redesign, Ink and Ink 2 are page grounds, not text colours (DESIGN.md's own Colors > Neutral — text section states this explicitly). Closed the Trace Ink vs. Trace Ink 2 open item the same pass, since the actual frontend-v2 build (Task 2.2) had already made the real choice in code without it being recorded anywhere: Ink is the page/nav ground, Ink 2 is the footer ground and general ground-to-ground step. Recorded here rather than left implicit, so a later page task doesn't assign Ink 2 a conflicting role.
[2026-08-17] update | No gradients anywhere in the redesign, reversing the "abstract gradient/blob graphics" imagery direction from 2026-08-16 | Updated: wiki/website/website-redesign-direction.md, wiki/identity/visual-identity.md, docs/superpowers/plans/2026-08-17-website-redesign-implementation.md, wiki/log.md
Mid-build on Task 0.2 (visual-identity.md), the task reviewer flagged that the article's new founder-photo exception sentence implicitly cast abstract gradients as the redesign's photography substitute, conflicting with the article's own unscoped "do not introduce: abstract gradient backgrounds" rule. Asked Glen directly rather than guessing which side of that conflict to resolve: "Yes, no gradients allowed" — full reversal of the 2026-08-16 direction (website-redesign-direction.md's Visual Direction section previously described x.ai-style "soft gradient/blob graphics on solid colour grounds" as the sitewide imagery substitute; that line is now corrected to a flat no-gradients rule). Confirmed replacement, also Glen's direct choice: solid grounds only — no decorative fill of any kind, dark backgrounds/hairlines/typography/whitespace carry every section. The hero's interactive brain/motorcycle-jacket morph graphic is unaffected (functional and cursor-reactive, not decorative fill, already confirmed separately). Corrected in website-redesign-direction.md's Visual Direction section and Build Isolation section (the latter also still had a stale Impeccable/design-cycle mandate left over from the 2026-08-17 reorganize that this pass cleaned up in the same edit), the implementation plan's Global Constraints, and visual-identity.md's Imagery section (fixed across two follow-up commits on Task 0.2 as the correction landed mid-review).
[2026-08-17] update | visual-identity.md updated for the redesign's dark-theme palette, motion, imagery and marks rules | Updated: wiki/identity/visual-identity.md, wiki/log.md
Trace Yellow (#DEF25C) and Trace Ink (#1C1917) replace their old values in the Colour palette table; a new Trace Ink 2 (#191516) is added with its specific role left for a later pass, matching the spec's own open item. Paper is removed and Home Hero is retired — both were light-site concepts that don't apply now the redesign is dark-theme site-wide, reversing the article's old "website is light-only" statement (which continues to describe the old website, unchanged and frozen). The Motion section now reads as broadly permitted (signature hero loop morphing between a brain and a motorcycle jacket, reactive micro-interactions on every clickable element) rather than restrained-and-functional. The Imagery section now records the one named photography exception: Glen's founder-credibility photo, given an AI-glitch treatment. The Marks section notes the redesign's icon-only nav-mark default, explicitly flagged as pending Glen's final call during design rather than locked. Left untouched, per the spec's own Section 7 open items: the supporting-neutral colours (Quiet Surface, Deep Surface, Body Grey, Muted Grey, Hairline, Strong Hairline) still need recalculating for the dark theme, and Trace Yellow's tightened usage rule (core/focus CTAs only, not the nav CTA) is not yet reflected — both deferred to a later pass.
[2026-08-17] update | Website redesign architecture spec approved, with the Impeccable-removal and AI-policy amendments folded in; implementation plan gained a strict anti-AI-slop/layout-diversity gate | Updated: docs/superpowers/specs/2026-08-16-website-redesign-architecture-design.md, docs/superpowers/plans/2026-08-17-website-redesign-implementation.md, wiki/log.md
Glen approved the architecture spec and the implementation plan built from it. Rather than re-litigating Section 7's open items one by one before approving, they stay handled the way the plan already treats them: several genuinely open ones (About "the roles" list-vs-prose, Field Notes yellow hero, Home/About founder-photo duplication) are explicit build-time calls inside the relevant task, recorded in that task's commit message when made — not blocking decisions made now. Spec status line updated accordingly.
Also added, per Glen: every page needs a strict, automated anti-AI-slop check, specifically to stop page layouts from being cloned/repeated across the six service pages that are supposed to share a content template but not a layout. Added Task 2.3 to the plan — scripts/check-layout-diversity.mjs, two hard gates run via npm run check:slop: a zero-tolerance banned-AI-phrase scan across every built page, and a layout-fingerprint similarity check (ordered data-section sequence, Jaccard similarity, 60% threshold) across the six service pages specifically. Every page-building task's commit step now depends on this passing; a full-site sweep (Task 6.0) catches collisions between pages that were never directly compared at build time (each page was only checked against whatever existed before it).
[2026-08-17] reorganize | Reversed Impeccable/design-cycle as the redesign's required process; PRODUCT.md no longer maintained; added an AI-usage-policy requirement | Updated: CLAUDE.md, wiki/website/website-redesign-direction.md, docs/superpowers/plans/2026-08-17-website-redesign-implementation.md
Glen: "Impeccable is not part of this flow" and "I think product md is also to be ignored" — reverses the 2026-08-16 decision to make Impeccable's init → document → per-surface workflow and /design-cycle the required process for every redesign page. PRODUCT.md (an Impeccable artifact) is no longer treated as canon or kept in sync with the spec; the architecture spec and the wiki are the source of truth instead. DESIGN.md stays in use as a hand-maintained design-tokens reference — updated directly to match the spec's Section 2 rather than regenerated via /impeccable document. Verification for redesign pages going forward is manual: build, preview in the browser, check against the spec and CLAUDE.md's rules — no design tool in the loop.
Also new: the redesign needs a public AI usage policy (Diagnosis/"Ask the Trace Brand Brain" puts an AI-generated result in front of visitors), added alongside Privacy/Cookies/Terms in the legal/system pages. Both changes applied to wiki/website/website-redesign-direction.md's Design Process section, CLAUDE.md's Website Redesign section, and the in-flight implementation plan at docs/superpowers/plans/2026-08-17-website-redesign-implementation.md.
[2026-08-16] update | Settled Impeccable's context workflow (init → document → per-surface) as the required process for every redesign page, including new pages | Updated: CLAUDE.md, wiki/website/website-redesign-direction.md, .claude/skills/design-cycle/SKILL.md
Glen pointed to https://impeccable.style/docs/context/ as the process to use for website design and new pages going forward. Captured it as a new Design Process section in website-redesign-direction.md: /impeccable init once (PRODUCT.md, informed by positioning.md and this article rather than invented fresh), /impeccable document right after (DESIGN.md + design.json, reviewed against the no-photography/no-old-website-cloning rules), then per-surface .impeccable/surfaces/*.md files generated by the work itself as each page is built — never pre-authored. Every Trace public page is Persuade mode. Commands scope to one surface at a time. Maintenance follows Impeccable's own decision tree (re-run init only on audience/positioning/platform change, document only on palette/component/rule change, doctor when staleness is unclear). This resolves the previous "confirm with Glen before running init/document" open item in CLAUDE.md — it's now a settled, required first step, not a case-by-case ask. The /design-cycle skill's Phase 0 was rewritten to match this exactly; this context step runs before design-cycle's build/critique loop, not instead of it.
[2026-08-16] create | Built the /design-cycle skill for the website redesign — a lighter, Impeccable-only alternative to a full multi-critic design loop | Created: .claude/skills/design-cycle/SKILL.md | Updated: CLAUDE.md, wiki/website/website-redesign-direction.md
Glen asked whether a "Design Loop" method (a public Notion guide adapting Matt Shumer's Gauntlet Loop — builder + three fresh-context critics per piece, binary pass/fail, no fixed round count) was worth adapting for the redesign. Recommended yes for a single hero asset given the token cost, but Glen asked for something lighter for the standard page-build rhythm: a design cycle per section, then the whole page after, built around Impeccable's own commands rather than a separate critic-agent framework. Built /design-cycle: Phase 0 one-time setup (PRODUCT.md/DESIGN.md, sourced from positioning.md and website-redesign-direction.md), Phase 1 per-section cycle (build → /impeccable critique → route findings to the narrowest fix command — layout/typeset/bolder/quieter/clarify/distill/animate/polish — → re-check), Phase 2 page cycle after all sections are assembled (critique the whole page → audit → distill only if needed → polish). Hard stops baked in regardless of what critique catches: no photography anywhere, no old-website layout reuse, no prices. CLAUDE.md's Website Redesign section now points to this as the default sequencing tool.
[2026-08-16] lint | Contradiction sweep of the whole wiki after today's canon changes, via agent | Updated: wiki/strategy/content-strategy.md, wiki/audience/ppe-buyer-and-enforcement-context.md, wiki/website/publishing-guide.md, wiki/identity/visual-identity.md, wiki/website/website-copy.md, brandbrain.md
Dispatched an agent to check the whole wiki (not just today's directly-edited files) for leftover contradictions against the day's changes: the retired dark-arts copywriting rule, the new Systems/AI framing, the narrowed Range Review/Certification Project public packaging, and the old-website/redesign split. Found and fixed: content-strategy.md's Proven Hook Library still carried a "Pain agitation" bucket of agitation-led example copy and a "Transformation" bucket with an invented "30 days" stat, both removed, plus a dangling reference to voice-guide's now-deleted Public Copywriting Process Rule (also fixed in ppe-buyer-and-enforcement-context.md). brandbrain.md — the condensed whole-wiki export — had drifted furthest: it still stated the full dark-arts rule verbatim, still listed all four Certification Project scopes as equally public, still listed Range Review's two tiers as an upfront choice, and its "Website Direction" section still told agents to treat the current live site as the reference for future landing pages. All corrected in place, plus a new differentiator line for trained systems. publishing-guide.md's agent-facing page-creation prompt was scoped explicitly to old-website work (it wasn't wrong, just silent on the redesign existing). visual-identity.md and website-copy.md got the same "describes the old website" framing website.md already had. No contradictions found in wiki/offers/, wiki/frameworks/systems-and-ai-stance.md, or wiki/voice/voice-guide.md itself — those were already internally consistent.
[2026-08-16] reorganize | Musk/X-style tone is now the live voice guide for the whole business; dark-arts public-copywriting rule retired; current site renamed "old website" pending a full redesign; build-isolation, no-photography, and Impeccable-mandatory rules set for the redesign | Created: raw/elon-musk-x-style-tone-voice-design-guide-2026-08-16.md, wiki/website/website-redesign-direction.md | Updated: CLAUDE.md, wiki/voice/voice-guide.md, wiki/website/website.md, wiki/index.md
Glen supplied a Musk/X-style (Tesla/SpaceX/xAI) tone and voice guide. First framed as direction for a planned website redesign; Glen then confirmed it further: "the tone from elon will be new voice guide live for the business" — so it now governs everywhere (client communication, service descriptions, every public page), not just the redesign. Flagged a conflict before making this change: the existing voice-guide.md mandated every public page run through the dark-arts copywriting skill (pain agitation, consequence framing) before shipping. Glen's answer: "Overwrite the dark rule. This new one comes first and is most important right now whilst we launch." That rule is now fully retired from canon — removed from voice-guide.md, which gained a new Core Direction section (restraint, product/mission primacy over persuasive rhetoric, short declarative language, grounded ambition, respect for the reader, personality layered in after content is secured) and now states there is no persuasion-licensed register anywhere, public or private.
Separately, the website redesign itself: the current live site (digital-home/frontend/) is now referred to as "the old website" throughout. The redesign has not started. Hard rules ahead of it: nothing from redesign work is ever pushed/committed/overwritten onto the live site; no layout is cloned or ported from the old website; Impeccable is mandatory for every website design task in the redesign; no photography anywhere on the redesigned site — smart, AI-friendly abstract graphics instead (x.ai's news-card style referenced by Glen: soft gradient/blob graphics on solid colour grounds, no photography, no literal illustration). Captured in the new wiki/website/website-redesign-direction.md, with wiki/website/website.md flagged at the top as describing the old website only. CLAUDE.md's Website Copy Rules now scope explicitly to the old website, with a new Website Redesign section covering the isolation rules.
[2026-08-16] reorganize | Reverted the 15 Aug Grok-authored "pure-canon" wave; Claude is now the only tool permitted to edit brand-wiki/ | Updated: CLAUDE.md, wiki/identity/positioning.md, wiki/identity/values.md, wiki/index.md, wiki/log.md, wiki/offers/offer-architecture.md, wiki/offers/services.md, wiki/offers/which-service-do-i-need.md, wiki/strategy/growth-thesis.md, brandbrain.md
Glen let Grok edit the wiki on 2026-08-15 and it overwrote large parts of canon (CLAUDE.md philosophy/anti-AI rules, offer-architecture packaging, which-service routing, a "website is legacy" rule) in a way Glen did not want. Reverted cleanly on master (commit c60decc, via a revert-pure-canon-15aug branch) back to the pre-wave state, keeping the earlier-same-day systems/SOP/Cold-Start work intact. Going forward, only Claude Code edits this repo.
[2026-08-16] ingest | Trained-systems/AI reframe captured across canon; Range Review and Certification Project public packaging narrowed; which-service-do-i-need detailed to package level | Created: raw/founder-brain-dump-ai-systems-reframe-2026-08-16.md, wiki/frameworks/systems-and-ai-stance.md, drafts/ai-compliance-os/ (7 files) | Updated: wiki/offers/services.md, wiki/voice/voice-guide.md, wiki/identity/values.md, wiki/identity/positioning.md, wiki/offers/offer-architecture.md, wiki/offers/which-service-do-i-need.md, wiki/frameworks/delivery-methodology.md, wiki/index.md, backlog.md
Glen's direction: Trace's AI use is framed as trained systems (six purpose-built "brains," see systems/brains/), never generic AI — the test is whether a reader could mistake it for throwing client files at a generalist AI tool. Core rule: "Systems accelerate expert judgement. They do not replace it." Captured this as a new framework article (systems-and-ai-stance.md) with a per-service value/boundary table, added an "AI / Systems" line to each of the six services in services.md, added a Systems/AI language rule to voice-guide.md, a new operational value (#9, Systems Accelerate Never Replace) to values.md, and a differentiator to positioning.md.
Same session, Glen also tightened public packaging: Range Review is now sold as one public model (Portfolio Review, £150/product) with Deep Product Review (£350/product) offered only after the Portfolio Review completes, for flagged products — not a two-tier upfront choice. Certification Project now publicly pushes only Full Certification Project and Documentation-only; Testing-only and Certification-only coordination remain real internal delivery scopes offered case by case, not public entry points. which-service-do-i-need.md was rewritten down to individual-package detail for both, and its stale Team Training session names (pre-2026-08-12 rename) were corrected to match services.md.
Also filed seven Grok-authored AI-Compliance-OS planning documents (an implementation report + one spec per brain) to drafts/ai-compliance-os/ — reference material for a future build, not canon. A consolidated build SOP is still to be written (see backlog.md).
[2026-08-14] create | Named and defined "Modern Compliance" (the delivery framework made visible: direct client-tool channel, consolidated digital intake, live shared task list), captured a first-hand insider story, and drafted a six-service website page-flow brief | Created: wiki/frameworks/modern-compliance.md, raw/founder-note-port-shipment-hold-2026-08-14.md, drafts/modern-compliance-website-page-flows.md | Updated: wiki/proof/proof-stack.md (port-shipment insider example), wiki/audience/objections.md ("I'll deal with the notified body directly"), wiki/frameworks/delivery-methodology.md, wiki/identity/positioning.md, wiki/offers/services.md (cross-links), backlog.md (ops build list, two open decisions)
Brainstormed with Glen: Modern Compliance is not new capability, it's the existing Delivery Methodology made visible and immediate instead of happening behind email threads. Applies across all six services at different depth (fixed-fee Route Finder gets visible five days; Technical Ownership gets the fullest expression). Client picks their own tool (Teams/Slack/WhatsApp Business/Notion) at induction rather than Trace imposing a portal. An ops build list (Notion intake form + client template first, then Teams/Slack "spin up a client" checklists, WhatsApp Business API as phase 2) is captured in backlog.md as not-yet-built.
The website work is a draft brief only (drafts/modern-compliance-website-page-flows.md), not live copy: each of the six service pages gets its own narrative device (a week-in-the-life for Technical Ownership, a two-track self-managed-vs-Trace comparison for Certification Project, real Trading-Standards-grounded triggers for Range Review, a before/after per session for Team Training). Two open decisions logged and not resolved: the hero visualisation (static UI graphic vs. generated video, which would need the site's existing no-AI-imagery rule amended first) and reconciling against an unpushed Team Training version Glen has on another machine.
Also captured and mined a new first-hand story: Glen's own experience inside a notified body, where a port-held shipment's documentation dispute dragged on for a month because the certification body's scheme manager was defensive of a certificate already issued rather than engaged with resolving it. Saved verbatim to raw/, mined into proof-stack.md (insider proof) and objections.md (new "I'll deal with the notified body directly" objection), anonymised for use as Issue Support's page opening.
[2026-08-13] update | VAT registration received: 525 4640 96 | Updated: wiki/identity/company-details.md
Trace Technical Compliance Ltd. is now VAT registered. Updated company-details.md with the VAT registration number and removed the pending note.
[2026-08-12] create | Built dedicated landing pages for all three Team Training sessions, rebuilt the Team Training hub, and added sitewide sub-nav | Created: digital-home/frontend/src/{motorcycle-deep-dive,ppe-document-workshop,ppe-foundation}.html, assets/motorcycle-deep-dive.css | Updated: digital-home/frontend/src/team-training.html, assets/{style,services-owner-training}.css, all 27 site pages (nav sub-drop), wiki/offers/{services,offer-architecture}.md
Built Motorcycle PPE Training as a full sales-page-style landing page first (open-loop-sales-page skill structure), then PPE Document Workshop and PPE Foundation Training in the same service-page system (grey tt-hero, not the dark image hero trialled and then dropped per Glen's call to keep all three consistent with the other six service pages). Iterated heavily on Motorcycle's copy against Glen's live corrections: reframed the opening from "one person defends it" to "usually nobody has the knowledge," cut invented specifics I had wrongly extrapolated per garment type (gloves/trousers failure points I never had real input on) back to structural claims only, and moved every certification-process hurdle (dud factory documentation, test-house submission delays, notified-body review findings) off the motorcycle page onto PPE Document Workshop, since none of it was actually motorcycle-specific. Workshop was corrected mid-build from "one real documentation set" to the full set (technical file, DoC, IFU, marking, storage/readability, minor-modification/notified-body update process), using detail Glen gave directly, and reframed around first-time submission acceptance and building "submission experts," not a slide-deck lecture.
Standardised naming sitewide to PPE Foundation Training / PPE Document Workshop / Motorcycle PPE Training (previously PPE Foundation / PPE Document Workshop / Motorcycle Deep Dive, itself renamed from Motorcycle Advanced) — applied to every H1, browser title, meta description, nav label and CRM form tag; URL slugs left unchanged to avoid broken links. Rebuilt Team Training's session picker as three fully-clickable cards (verified via bounding-rect that the whole card, not just the text, is the link target) linking to each dedicated page, replacing the old two-panel-plus-featured-panel layout and the now-redundant generic Before/During/After section. Added a "Team Training" sub-nav (the three sessions, indented) to the Services dropdown across all 27 site pages via scripted substitution, since the site has no shared header partial — verified on both desktop hover and mobile tap-to-expand. Fixed the "Could this be you?" field-note link on all three new pages: it was pointing at the generic /insights hub because the specific article did not exist when this was last checked, but it has since gone live (more-people-is-not-more-judgement), so all three now link directly to it in a new tab, matching the pattern on the other six service pages. Synced wiki/offers/services.md and offer-architecture.md with the new names, format ("individual or group, with Glen," never "one-to-one"), confirmed durations/locations (Foundation: half day remote; Workshop and Motorcycle: full day in person), and Workshop's fuller real scope.
[2026-08-12] create | Built and approved Field Notes #2-#6, completing the series for every live article at tracetechnical.co.uk/insights/ | Created: brand-wiki/social-media/field-notes/field-note-0{2-6}-*.png (+ .html sources) | Updated: content-register.md
Numbered in publish-date order after #1 (Testing is a snapshot): #2 Compliance/Technical Ownership, #3 A certificate is not evidence/Range Review, #4 More people on the product/Team Training, #5 A certification project moves/Certification Project, #6 When a product is challenged/Issue Support. Built using the rotating toolkit (ground, device, layout vary; only the yellow tag is fixed): #2 quiet surface + keyline, #3 Trace yellow ground (loudest, no extra device), #4 paper white + highlighter, #5 hero black + no device, #6 quiet surface + keyline. Initially rendered #2, #4 and #5 in sentence case to test the toolkit's range; Glen confirmed uppercase reads better across the board, so all six were finalised uppercase and canon updated (see next entry). All six approved, status "approved" in content-register.md pending posting.
[2026-08-12] update | Set uppercase as the default hook case (not just an equal option) after Glen confirmed it reads best across Field Notes #1-#6 | Updated: wiki/identity/social-visual-system.md, Skills/social-posts.md
Sentence case remains available for a line that specifically needs it, but canon now directs to uppercase first rather than treating the two as a coin flip per post.
[2026-08-12] update | Loosened Field Note posts from a fixed template to a rotating toolkit: ground, hook case, highlighter and layout all now vary per post | Updated: wiki/identity/social-visual-system.md, Skills/social-posts.md
After approving Field Note #1, Glen flagged that the treatment (hero black, uppercase highlighter) shouldn't become the default stamped out every time. Canon amended: the yellow Field Note # tag is now the only fixed constant. Ground rotates across all four brand grounds instead of defaulting to hero black; hook case (upper or sentence) is chosen per post, not fixed to uppercase; the highlighter is one optional device among nine, not a mandatory Field Note feature; layout can reflow within the grid rather than repeating Field Note #1's composition. The "two yellows" (tag + highlighter) exception to one-signal-per-slide still applies whenever the highlighter is used alongside the tag.
[2026-08-12] update | Amended the Social Visual System's hook typography after Glen rejected Inter (and Inter Tight) as reading "old" on rendered social images | Updated: wiki/identity/social-visual-system.md, Skills/social-posts.md
Rendered Field Note #1 in plain Inter, then Inter Tight; Glen called both dated on-image. Tested Manrope and Onest (sentence case and uppercase) against the same slide; Manrope uppercase at display scale, with the highlighter device restored on the operative word, was approved. Canon amended: hooks now use Manrope 800 uppercase (not Inter Tight), 80-100px, and Field Note posts carry a documented exception to "one signal per slide" (tag + highlighter both yellow) since the hook needs to win the whole feed. Inter still carries all body and metadata roles; this is a hook-only change.
[2026-08-12] create | Built and approved Field Note #1 LinkedIn social image, promoting the live "Testing is a snapshot, not a status." field note, per the amended Social Visual System | Created: brand-wiki/social-media/field-notes/field-note-01-testing-is-a-snapshot.png (+ .html source) | Updated: content-register.md, CLAUDE.md
First image in the new brand-wiki/social-media/ home (field-notes/ and guides/ subfolders added to CLAUDE.md's directory structure for storing rendered social assets going forward). Hero black ground, Manrope uppercase hook with yellow highlighter on "snapshot," yellow Field Note tag, Guiding Progress watermark, wordmark and source anchored. Rendered via headless Chrome from a local HTML source with fonts embedded as base64 (no network dependency, no font-load race). Approved by Glen, status "approved" in content-register.md pending actual posting to LinkedIn.
[2026-08-12] update | Reversed the Route Finder price exception: no prices anywhere on the public site | Updated: CLAUDE.md, wiki/offers/offer-architecture.md, digital-home/frontend/src/route-finder.html
Glen reversed the previous "one named exception" rule (Route Finder's public £395) while reviewing the competitor Product Safety Collective comparison: "no one puts prices on site, i dont want people getting a headstart on mine." Removed the live £395 figure from route-finder.html's hero copy ("a fixed fee agreed up front" replaces "a £395 fixed fee"), corrected the Publishing Rule in offer-architecture.md and its CLAUDE.md pointer to state no prices, no exceptions, and marked the old exception as superseded with the reasoning. £395 remains the confirmed internal price in offer-architecture.md, just no longer published.
[2026-08-12] update | Corrected "one-to-one with Glen" training format wording to "individual or group, with Glen"; captured session durations/locations | Updated: wiki/offers/offer-architecture.md
While mocking up a format-line addition to the Team Training page, Glen flagged that "one-to-one" implied solo-participant only, when the real differentiator is that he personally delivers it (not an associate) regardless of headcount — could be one person or a whole team. Confirmed via follow-up: PPE Foundation, PPE Document Workshop and Motorcycle Advanced can all be individual or group. Also captured previously undocumented facts: PPE Foundation is a half day delivered remote; PPE Document Workshop is a full day in person; Motorcycle Advanced is one day in person. offer-architecture.md's Team Training table updated with Format/Duration/Location columns. Not yet applied to the live team-training.html page — mockup pending Glen's sign-off.
[2026-08-12] update | Added Product Safety Collective as a generalist competitor after Glen flagged them | Updated: wiki/market/competitive-landscape.md
Glen noted Product Safety Collective (productsafetycollective.com) connected with him at launch and also covers PPE, among many other categories. Fetched their homepage, training page, and consumer-brands compliance page: they're a generalist compliance consultancy ("product safety made simple") with tiered Lite/Core/Premium packages and, notably, a paid open-enrollment training-course business for compliance professionals (from £60+VAT/person) — an angle Trace doesn't currently offer. Assessed their site against tracetechnical.co.uk: theirs is competent but generic/templated; Trace's is more distinctive and better branded, and their broad multi-category scope reinforces rather than undermines Trace's specialist-depth positioning against generalists. Filed under Generalist Competitors in competitive-landscape.md.
[2026-08-12] create | Runbook for the two open handover tasks + helper scripts; found a backend/handover contradiction on FAQ generation | Created: brand-wiki/runbooks/finish-open-tasks.md, trace-backend/scripts/{approve-topic,write-now,get-latest-faq}.mjs
Wrote a runbook for the two items HANDOVER.md left open (FAQ generator end-to-end; Operator dashboard walkthrough) and three helper scripts to drive Task 3. While verifying the mechanics, corrected two handover inaccuracies: the worker API requires HMAC request signing (API_SIGNATURE_REQUIRED=true), not a bare key; and there is no /agent route (the web operator surface is /crm + /crm/settings, the "Operator Upgrade" is the MCP bridge). Material finding: the handover claims write-article "generates a 2-question FAQ into content_objects.faq" at trace-backend commit a0c1ffa, but a0c1ffa does not exist in the repo or origin/main — HEAD 9000b63 has NO FAQ generation (its prompt says "no FAQ"). The faq column and the 6 published notes' FAQs were hand-inserted via SQL; the frontend (articles.js) reads DB faq else a hand-authored ARTICLE_FAQS[slug] map, so a newly written note renders with no FAQ. Task 3 therefore needs the generator built + deployed first (option A) or redefined to test only the write→draft→publish loop (option B). Runbook carries the full discrepancy note.
[2026-08-11] update | Trust/"grassing" pass: reframed two Field Note openings into Glen's prior-role vantage | Updated: content_objects (3 rows), digital-home/frontend/.local-backups/preview-articles.mjs
Removed any read of a Field Note writing about a current or trusting client. The two notes that put Glen in the story were reframed so the brand is never his client, using his real career vantage: certification-speed opens "For years I sat on the certification side of these projects" (certification-assessor side) instead of "projects I am asked to look at"; testing-is-a-snapshot opens "I saw this one from the test house side, years before Trace", which recasts the later "so I could check them" line as his old test-house role. first-decision was nudged to "I have watched enough of these over the years" (career experience). The three genuinely third-person composite notes (more-people-is-not-more-judgement, a-certificate-is-not-evidence, compliance-that-lives-in-one-head) carry no first person and were deliberately left unchanged. Applied to the live content_objects rows via the Supabase SQL editor and mirrored in the dev fixture; redeployed and verified all three live on tracetechnical.co.uk.
[2026-08-11] update | Seeded 4 Tara/SATRA-derived Field Note topics into the planned content calendar | Updated: content_calendar (4 rows), backlog.md
Seeded four of the insider-interview (Tara/SATRA) content ideas as status=planned rows in content_calendar, filling out the thin pillar 4 and the how-it-works pillar: "What good looks like: the technical file that never comes back with questions" (More hands, not more safety), "The submission-quality split: why most technical files arrive needing work" (More hands, not more safety), "Structural inconsistency: why two certification bodies can read the same file differently" (How the system actually works), and "The consulting boundary: a certification body cannot fix your file for you" (How the system actually works). Each row carries the hard rule that SATRA and Tara are never named, and the submission-quality split carries the caution to present experience-based proportions, not a hard published statistic (voice guide bans figures that read as invented). These are Field Notes mined from Tara's insights in Glen's first-person voice, not an attributed interview, so the open interview-series-format decision does not gate them. "Who builds a shared NB reference" is held for after the planned Sean (CCQS) interview. Backlog annotated so they are not re-queued. content_calendar now holds 21 planned topics.
[2026-08-11] update | Prod now builds Field Notes from Supabase (Pages vars live); task-4 voice edits applied to the live rows; 4 new planned topics seeded | Updated: content_objects (3 rows), content_calendar (4 rows), digital-home/frontend/.local-backups/preview-articles.mjs
Closed the Cloudflare Pages Supabase build-vars gap. SUPABASE_URL and SUPABASE_ANON_KEY were confirmed present as plain-text (not Secret) variables on the brand-wiki Pages Production environment; the earlier "not set" build simply predated the save. Retried the deployment and the build log now reads "[articles] 6 published Field Note(s) fetched." rather than serving the local fixture, so production reads Supabase directly: new CRM-published articles will appear on the next build, and the auto-generated FAQ now has a live render path. The preview fixture reverts to its intended role as the local dev fallback (drift question resolved: keep it, no action needed).
Applied the task-4 field-note voice edits directly to the live content_objects rows via the Supabase SQL editor, and mirrored them in the dev fixture: two first-person opening lifts (first-decision-is-whether-to-keep-selling "I have seen enough of these..."; certification-speed-of-the-slowest-answer "Almost every stalled certification project I am asked to look at...") and the signature phrase "organised evidence" folded into the a-certificate-is-not-evidence Range Review bridge. Redeployed and verified all three live on tracetechnical.co.uk.
Seeded four new status=planned Field Note topics into content_calendar after deduping against the six published notes and the thirteen already-planned: "The product page changed first, the evidence did not" (Avoidable mistakes, Range Review), "A minor change is not an impact assessment" (Avoidable mistakes, Technical Ownership; kept distinct from testing-is-a-snapshot as a change-control-ownership angle), "Start the range audit with one drawer, not the whole spreadsheet" (From live to covered, Range Review; the method behind a-certificate's one-product trace), "Training did not fail, it was never connected to a live product decision" (More hands, not more safety, Team Training; deepens the thin pillar 4). Two proposed topics were already planned (a test house tests exactly what you send it; the colour and variant trap) and two overlapped published notes, so were not added.
[2026-08-11] update | Stopgap: mirrored the Supabase Field Note voice swaps into the prod preview fixture | Updated: digital-home/frontend/.local-backups/preview-articles.mjs
The brand-wiki Pages project still has no SUPABASE_URL / SUPABASE_ANON_KEY build vars, so production Field Notes render from the committed preview fixture rather than Supabase, and the two voice touch-ups already live in the published Supabase rows were not showing on prod. Mirrored them in the fixture so prod is correct while on the fixture: certification-speed-of-the-slowest-answer "sitting on the file" to "sitting on the submission", and the testing-is-a-snapshot Route Finder bridge folded in the signature phrase "clear, costed route". Committed to master (2583d5e) and pushed; Cloudflare Pages rebuilds. Superseded once the Pages build vars are set and prod reads Supabase directly (the real fix, dashboard-only). The remaining generic-"file" occurrences in the fixture are legitimate domain usage (the certification body's working file, "on file", "test report on file") and were deliberately left unchanged.
[2026-08-11] update | Field Notes moved into Supabase with FAQs and voice fixes; frontend redesign and publishing guide synced | Updated: publishing-guide.md, content_objects (6 Field Notes), digital-home/frontend
Published the six existing Field Notes (previously local preview-fixture only, never in the database) into content_objects as status=published rows, each carrying its FAQ in the new content_objects.faq jsonb column and the voice-drift touch-ups applied (generic "file" to "submission"/"documentation"; "clear, costed route" folded into the testing-is-a-snapshot Route Finder bridge). Added the faq column by migration and taught the write-article generator to produce a two-question FAQ per article; the frontend reads content_objects.faq with a fallback to the hand-authored map. Shipped the reading-page redesign (to-do callout unified onto the editorial left ink keyline, 62ch measure, guide callout/close matched, guide titles de-punctuated), the homepage refresh (frosted latest-note hero card, hero copy reframed to coordination not performing testing/certification, Field Notes moved above a rebuilt founder credential block), the About dark close band flipped to grey, the Technical Ownership comparison corrected to the full Oversight deliverables, and site-wide polish. Documented the FAQ system, the faq field and the corrected keyline to-do treatment in the publishing guide; Field Notes now end with the FAQ, so the in-body service bridge and disclaimer are suppressed on them while Guides keep the bridge.
[2026-08-11] export | Content strategy kickoff: corpus consolidated, 13 planned Field Note topics seeded into the backend calendar
Seeded the backend brand_context table from output/brand-context-seed.sql (via a reusable script in trace-backend/scripts/), then consolidated it to exactly the 12 curated, public-safe rows, removing ~16 stale full-article dumps, one of which leaked private client names (Triumph, Ruroc and others) into public content generation. Audited to zero non-public flags. Removed the leftover "Pipeline test note" draft from content_objects. Seeded an initial curated content calendar of 13 Field Note topics (status planned, for CRM approval) mapped to the four pillars and the founder-interview ideas. Repointed the Team Training page's dead field-note teaser (it pointed to an unwritten /insights/more-people-is-not-more-judgement) to the /insights hub; staged in the working tree, not deployed. The content engine is now fuelled: approve topics in the CRM to have the writer turn them into Field Notes. Keep publish_mode "safe" so articles arrive as drafts for review.
[2026-08-11] export | Generated brand_context seed SQL (content corpus) from the wiki | Created: output/brand-context-seed.sql
Derived a public-safe content corpus from the updated wiki as runnable upsert SQL for the backend's Supabase brand_context table (keys: author, voice_guide, banned_words, positioning, core_messages, icp, objections, offers, proof, competitors, content_pillars, cta_links). This is what the Field Note writer reads. Deliberately excludes all internal-only material (the PVA/Sven reputational notes, the non-technical-consultant anecdote, the Tara/SATRA source, private client brand names such as Triumph and Ruroc/EngineHawk, and the founder's personal candour), because the corpus feeds public content generation. To seed: run in the Supabase SQL editor. Upserts by key, so it is safe to regenerate and re-run after future wiki updates. CTA links use the canonical www host.
[2026-08-11] ingest | Founder self-interview part 2 mined; challenges, the hidden-layer save, trust and "it's actually easy" | Updated: identity/origin-story.md, proof/proof-stack.md, voice/voice-guide.md, market/competitive-landscape.md, backlog.md, drafts/founder-interview-guide.md, wiki/index.md, wiki/log.md | Source: raw/founder-interview-glen-2026-08-11-part2.md
Ingested the second tranche (saved verbatim to raw), which answered the outstanding interview sections. origin-story gained a "Founder Drivers and Challenges" section (left a secure salaried job, perfectionism and the website lesson that became the cut-the-waffle brand idea, the LinkedIn/self-consciousness shift, building the digital home, pushing past the comfort zone toward video), candid parts flagged internal. proof-stack gained the hidden-secondary-layer save (a late outer-shell zone-one abrasion failure, ~£20k and six months at stake, solved with a hidden internal layer, anonymised) and a "what clients thank Glen for" note under Testimonials (saved money, direction, made an overwhelming process easy; trust as the retention driver). voice-guide gained founder lines: trust is the moat, cut the waffle, independent-by-design fixed fees, "it's actually really easy when you know what you're doing", and the two things nobody tells you (test houses are not a neutral government service; assessor inconsistency is human). competitive-landscape gained an internal-only note on the non-technical-consultant wave (Sialkot operators and a copy-paste ex-salesperson consultancy that folded), sharpening trust-plus-technical-depth as the moat. Six new content ideas logged to backlog. The founder self-interview guide is now effectively complete.
[2026-08-11] ingest | Founder self-interview (first tranche) mined into canon; real voice, pains, stories and competitor intel | Updated: identity/origin-story.md, audience/primary-icp.md, audience/objections.md, identity/values.md, voice/voice-guide.md, proof/proof-stack.md, market/competitive-landscape.md, offers/services.md, wiki/index.md, backlog.md, wiki/log.md | Source: raw/founder-interview-glen-2026-08-11.md
Ingested Glen's first self-interview (9,086 words, saved verbatim to raw). This is the highest-value corpus input to date because it replaces AI-synthesised material with the founder's real voice, stories and observed language. Changes: origin-story gained the first-hand career arc (motorcycle lab tech as EN 13595 gave way to EN 17092, PPE technologist, test-team leader growing the area ~£90k to ~£300k and building a motorcycle lab, certification assessor, senior BD) and the "buffer in the middle" motivation. primary-icp's synthesised pain block was superseded by real founder-observed pain patterns and what "too expensive" actually means. objections gained real language (the real "too expensive", free-from-notified-body, AI-can-do-it) and explicit client disqualifiers (price hagglers, don't-care brands, cold mid-project rescues), confidence raised to high. values added fair-value-or-no-engagement and finish-before-testing. voice-guide added first-hand founder lines and analogies (the buffer, the champion document, certificate-as-flex, "ignorance isn't a defence"). proof-stack added an anonymisable inception example (helmet-brand sub-brand, 10-15 products), a planning benchmark (Triumph, anonymised), a fuller first-hand Lane Hunters account, and the inherited-range-on-the-factory's-word pattern. services gained first-hand Certification Project mechanics (direct factory contact under NDA, Trace's own high-spec sample submission form, flexible certification-body selection, thorough handover). competitive-landscape gained the founder's general-consultancy critique plus internal-only first-hand intel on PVA and Sven (both knowledgeable but slow), sharpening speed/responsiveness as the live wedge against the specialists. All brand-identifying detail kept anonymisable or internal-only; PVA/Sven reputational notes marked never-publish.
[2026-08-11] ingest | Tara/SATRA interview fully mined; independent notified-body validation added to Proof Stack | Updated: proof/proof-stack.md, wiki/index.md, backlog.md, wiki/log.md
Completed the mining of raw/interview-tara-satra-2026-08-09.md. Its notified-body inconsistency detail, submission-quality bands and repeat-offender patterns were already in competitive-landscape, primary-icp, icp-pain-points and content-pillars; the remaining gap was proof. Added an "Independent Market Validation (Notified-Body Insider)" section to proof-stack: an inside-the-process source corroborates the repeat-struggle pattern (~8 in 10 repeat customers), the approximate submission-quality bands (~10-15% minor / ~two-thirds significant-but-fixable / ~a third unusable), the scarce-specialist root cause ("More hands, not more safety" from the certifier's side), and the consulting boundary (notified bodies legally cannot fill gaps). Tara and SATRA remain never-name-in-public. Moved the raw source out of backlog's "waiting to be mined"; recorded the planned Sean (CCQS) and founder self-interview sources. Staged a founder self-interview question guide at drafts/founder-interview-guide.md.
[2026-08-11] update | Backend content pipeline aligned to Field Note format; blog hero images off; Field Note social variant added | Updated: trace-backend/src/app/api/write-article/route.ts (separate repo, pushed to main), wiki/identity/social-visual-system.md, Skills/social-posts.md, output/social-visual-system.html, wiki/log.md
Closed the real rogue risk in the trace-backend AI content pipeline. It publishes into the Field Notes channel (content_type=article, rendered by the frontend insights.njk) but was generating generic long-form SEO articles (1,500-2,500 words, FAQ section, hook/problem/CTA structure, generic markup) that would fail the publishing-guide reading-page QA. Rewrote the write-article route to produce Field Notes to spec: publishing-guide structure, 700-1,300 words, no FAQ, CRM markup contract classes (reading-intro, reading-callout, margin-note, reading-next, reading-disclaimer), the deck subtitle, British English, hardcoded voice/terminology backstop (no em dash; apparel/test house/documentation) and boundary rules (never imply Trace issues certificates, no invented clients or stats). Blog hero images switched off by brand rule (no image heroes); generation only runs if HERO_IMAGES_ENABLED=true, and then in an on-brand minimal style. Built clean and pushed to trace-backend main (deploys via Cloudflare). Added the Field Note social post variant (single standout post: yellow numbered Field Note tag, Hero Black default, Trace Yellow and Paper White alternates) to the social visual system canon, the social-posts skill and the guidelines page.
[2026-08-11] update | Wired the Social Visual System into agent-facing surfaces | Updated: brandbrain.md (Visual Identity), wiki/log.md | Created: Skills/social-posts.md
Made the social system discoverable to post-generating agents, not just to sessions in this repo. Added a compact social-posts block to brandbrain.md so claude.ai Project agents see it, and created the social-posts skill (triggers on post/carousel/slide requests) that packages the grounds, laws, devices, contrast rules, carousel architecture and guardrails and points at the canon. Still outstanding: the trace-backend AI content pipeline (separate repo) needs its own pointer to this system; output/brand-context.md will pick up the canon on next export regeneration.
[2026-08-11] create | Social Visual System: image-free social-post guidelines built and filed as canon | Updated: index.md, log.md | Created: wiki/identity/social-visual-system.md, output/social-visual-system.html
Defined the system for image-free social posts, built from existing brand tokens so nothing new is invented: four grounds (paper white, quiet surface, hero black, Trace Yellow), one-signal law, an Inter/Inter Tight type scale, nine typographic devices (highlighter, keyline, correction, label, number, watermark, pointer, 45-degree cut, ground-flip rhythm), carousel architecture and accessibility/voice guardrails (ink-only on yellow, no em dashes, apparel/test house terminology). Rendered as a self-contained guidelines page at output/social-visual-system.html (Inter embedded as a data URI) and published as a private artifact. Photographic/AI imagery on social remains a separate unsettled question, deliberately excluded from this system.
[2026-08-11] update | Post-launch mobile and reading-page polish; service deliverables separated into panels | Updated: digital-home/frontend, website/website.md, index.md, log.md
Applied the first post-launch browsing pass across the public site. Mobile navigation now keeps current states legible, closes the other dropdown when Services or Insights opens, and presents Book a call as a normal menu row. Homepage hero actions stack, mobile section spacing is more deliberate, the About block returns to the white editorial ground, CTA introductions are shorter, and hero bottoms have safer clearance. The About hero now has a larger heading and tighter text/portrait composition. Field Note and Guide headers use Back labels and stronger title spacing; Field Note category/date share a dedicated mobile row. Range Review's clipped heading, first-row border and evidence examples were corrected; Diagnosis lost the collection reassurance line; the cookie notice is now a compact bottom-right prompt. Route Finder and Issue Support now show their four deliverables as separate 2x2 panels (one-column on mobile). Verified with the Eleventy/link check, responsive browser inspection and the Impeccable detector; the service-title gradient mask was removed after the detector confirmed it as the relevant visual risk.
[2026-08-10] update | Trace Technical wordmark system produced; Guiding Progress mark restored as the sole symbol; TR monogram retired | Updated: identity/brand-assets.md, identity/visual-identity.md, website/website.md, brandbrain.md, DESIGN-HANDOVER.md, website favicon and social preview | Created: outlined wordmark and trailing-mark signature lockups, favicon export set
Glen chose to keep the existing Guiding Progress mark rather than introduce a newly generated T monogram. A production Trace Technical wordmark now matches the live navigation (Trace heavier, Technical regular), with black and white outlined SVG masters and transparent PNG exports. The signature lockup places the Guiding Progress mark at the end of the wordmark: its geometry reads as direction and resolved next action, while the wordmark-only version stays the quiet default. The white mark on a black tile is now the website favicon in SVG and ICO forms, and the TR monogram has been removed from the current asset set. The social preview now uses the white Guiding Progress mark and the shortened name TRACE TECHNICAL. Website navigation remains live text rather than an image for accessibility and responsive control. Canon, index summaries and the asset README were updated together; the completed logo task was removed from backlog.
[2026-08-11] update | apex→www redirect live via Pages middleware (verified); AI-crawler managed block still active | Updated: digital-home/frontend/functions/_middleware.js (new), digital-home/frontend/src/root/_redirects, operations/infrastructure.md, output/launch-readiness-2026-08-11.md, log.md
The _redirects apex→www host rule never fired (Cloudflare Pages matches only on the path, not the hostname), so the redirect was moved to digital-home/frontend/functions/_middleware.js, which sees the hostname (www and /api/* pass through via next()); the dead _redirects line was removed. Deployed and verified live: tracetechnical.co.uk → 301 → www.tracetechnical.co.uk, and /llms.txt returns 200. The Cloudflare managed robots.txt AI-crawler block is still present in production, so allowing AI crawlers still needs the AI Crawl Control → Manage robots.txt toggle (distinct from Security → Bots "Block AI bots").
[2026-08-11] update | llms.txt added; homepage manifesto-band backlog item resolved (cut); team-training edits discarded | Updated: digital-home/frontend/src/root/llms.txt (new), backlog.md, log.md
Added llms.txt at digital-home/frontend/src/root/llms.txt: a curated site map for AI and LLM readers (proposition, the six services, four Guides, Field Notes and key pages, on www canonical URLs), boundaries preserved and no prices. Deploys to /llms.txt on the next push. Checked the live homepage: the three-core-messages "manifesto band" is not in the current build (hero → "Exposed is quiet" narrative → six service cells → Glen credibility → Field Notes → contact), so it was cut in the rebuild; removed that open decision from backlog.md and folded the fact into the homepage sign-off item. Discarded uncommitted team-training edits (team-training.html reverted, team-training-sales.css deleted) at Glen's request; a separate uncommitted diagnosis.html change (Codex, in flight) was left untouched.
[2026-08-11] update | Ops fixes: apex→www canonical 301 added; AI-crawler "allow" decision recorded | Updated: digital-home/frontend/src/root/_redirects, operations/infrastructure.md, output/launch-readiness-2026-08-11.md, log.md
Actioned the two go-live issues. Canonical host: confirmed the site canonicalises to www.tracetechnical.co.uk throughout (site.url in eleventy.config.js, injected canonical/og:url/JSON-LD, and all 22 sitemap URLs), so the www Sitemap: line was already correct; the real problem was the apex serving 200 with no redirect. Added an apex→www 301 to digital-home/frontend/src/root/_redirects (Cloudflare Pages honours the full-URL splat form); it takes effect on the next deploy/push. AI crawlers: decision recorded to allow them for AI-search visibility. The block is Cloudflare's Managed robots.txt (the repo robots.txt is already Allow: /), so it is a dashboard action, not a repo change. infrastructure.md and the launch-readiness checklist updated to match.
[2026-08-11] update | Ops-readiness pass: live signals verified, infrastructure reconciled, go-live checklist produced | Updated: operations/infrastructure.md, log.md | Created: output/launch-readiness-2026-08-11.md
Verified live production signals directly (browser fetch). Site up; sitemap.xml (22 URLs) and robots.txt (200, Allow: /) live; six Field Notes and four Guides rendering from Supabase, which proves the Cloudflare Pages build variables are set. Infrastructure had them listed as "not yet set" so it was corrected: Pages vars moved to What's live, and a new "To review before full go-live" section added. Findings flagged for decision: (1) crm_safe_mode is still ON, the real gate for outbound email (leads/deals capture regardless); (2) Cloudflare's Managed robots.txt disallows the major AI crawlers (ClaudeBot, GPTBot, Google-Extended, CCBot, Bytespider, Amazonbot, Applebot-Extended, meta-externalagent) and signals ai-train=no, trading away AI-search visibility; (3) llms.txt is absent (404); (4) the robots Sitemap: line uses the www host while the site serves the apex. Wrote a scannable go-live checklist to output/launch-readiness-2026-08-11.md (live/verified, decide-before-open, still-to-wire, verify).
[2026-08-10] update | Launch Field Notes verified live on the finalised design; register updated; earlier rework flag withdrawn | Updated: content-register.md, log.md
Checked the live site (/insights/ hub and the Issue Support note). All five launch Field Notes are published (2026-07-30 to 2026-08-09) alongside "Testing is a snapshot, not a status". The finalised reading-page CSS is live and renders the notes' existing markup exactly to the Publishing Guide spec, confirmed via computed styles: .reading-callout is a thick left-Ink border with no fill or yellow; .note-verdict renders as an ordinary section (the legacy-compatibility path in the CRM markup contract, no yellow); the close is open with no panel; yellow appears only on the top-right "Field Note" badge; h1 ~30.7px and h2 ~18.9px sit inside the finalised ranges. Correction: the previous entry's note that the drafts "need reworking to the finalised system before publishing" is withdrawn. No rework is needed and none is pending, and there is nothing for Codex to do on the Field Notes. Register statuses moved from approved to live with published dates. Optional future polish only: new notes need not carry a literal "Signature framework" label, since the framework now reads as an ordinary section.
[2026-08-10] update | Publishing guide rewritten to the finalised reading-page system; website.md reading-pages aligned | Updated: website/publishing-guide.md, website/website.md
Rewrote Publishing Guide to the reading-page system finalised 2026-08-10 (the live Field Note and Guide templates are the authority). Added a shared reading-page standard (grey ground, one 920px white sheet, header order, single-deck rule, sentence-case labels), an approved content-treatments section (editorial callout as a thick left-Ink border, margin note, signature framework as an ordinary section, semantic lists, the to-do/checklist unit), an ending rule (no stacked consequence/CTA/subscription/disclaimer boxes; one service bridge, one arrow-free button), shared length guidance (Guides 700-1,600, Field Notes 700-1,300, orientation not targets), the shared subscription-footer rule, a CRM markup contract for Field Note body HTML, and a replacement reading-page QA checklist. Replaced the Guide and Field Note design patterns and structures accordingly and retired the obsolete rules (full yellow short-answer callout, yellow Field Note consequence/decision panel, visually contained ending, special signature-framework treatment). Recall Watch unchanged. Aligned Website's Reading pages and Field Notes sections to match (editorial callout = Ink left border, signature framework = ordinary section, no yellow verdict panel). Open follow-ups: the CSS/templates are being brought to match shortly, and the launch Field Note drafts in drafts/field-notes-launch-set.md still use the old yellow-verdict and eyebrow markup, so they need reworking to the finalised system before publishing.
[2026-08-10] ingest | Tara (SATRA) interview spread into canon: notified-body inconsistency, submission-failure modes, repeat-struggle profiles | Updated: market/competitive-landscape.md, audience/icp-pain-points.md, audience/primary-icp.md, strategy/content-pillars.md, index.md, backlog.md
Ingested the first-hand raw/interview-tara-satra-2026-08-09.md (Tara, a SATRA certification team leader) into the canon articles where it earns a place. Confidentiality: Tara and SATRA are named only in each article's Sources line and must never appear in public output; body prose attributes the material to "a certification team leader at a UK notified body" so nothing identifiable can propagate through the brandbrain or generated content. Competitive Landscape gains a "Notified-Body Inconsistency (First-Hand)" section: structural inter-body and inter-assessor variation, the cost of switching (weeks of rework, 30/50/up-to-100% re-review surcharges), the consulting boundary, and the "reference for use" fix, framed as evidence for the independent-guide position. Icp Pain Points gains a first-hand "How Submissions Actually Arrive" section: the ~15/65/30 quality split (with a not-a-precise-partition caveat), the failure modes, and what "doing it right" looks like. Primary Icp gains an independent certifier corroboration of the compliance-manager cycle and the repeat-struggle profiles (small/seasonal, non-core, and overloaded-one-person big companies). Content Pillars pillar 4 ("More hands, not more safety") gains a first-hand corroboration. Five article ideas and the series naming decision remain in backlog.md; proof-stack deliberately not touched (the interview is market intelligence, not Trace proof, and adding insider access would strain the no-influence boundary).
[2026-08-10] lint | Canon purge: articles cleaned to present-tense truth; planning-only interview series moved to backlog; brandbrain refreshed | Updated: identity/visual-identity.md, voice/voice-guide.md, strategy/content-strategy.md, brandbrain.md, index.md, backlog.md | Removed: strategy/field-notes-interview-series.md
Applied the Canon Law to the existing articles. Visual Identity corrected to match the shipped site and Website: Inter (not Plus Jakarta Sans, now retired), pure-white #FFFFFF paper (was #FBFBFD), surface #F4F4F5. Voice Guide de-metaed: removed the dated evolution framing ("Scope note (2026-08-01)", "Resolved 2026-08-01", "(locked 2026-08-04)", "no longer a blanket ban", "confirmed as a standing requirement") and restated each rule in the present tense. The rules themselves are unchanged. field-notes-interview-series.md removed from canon — it was entirely planning (an open naming question and "not yet written" article ideas); its five article ideas, the naming/format decision and the Tara raw-source pointer now live in backlog.md, and content-strategy.md no longer depends on it. brandbrain.md refreshed: Visual Identity palette and typography brought to Inter and white, the public-copywriting rule de-dated, "laboratory" corrected to "test-house". index.md now lists 32 articles.
[2026-08-10] update | website.md rewritten to the shipped v2 design system; Website Copy Map created; wiki frontend made self-explaining | Updated: website/website.md, index.md, frontend/site/_data/categories.json, frontend/site/_includes/layout.njk, frontend/site/css/style.css | Created: website/website-copy.md
Second tidy pass, reflecting the real site. Website fully rewritten from the old (stale) spec to the shipped v2 "soft modern" system, read from style.css and DESIGN-HANDOVER.md rather than memory: Inter (not Plus Jakarta Sans — those 8 woff2 files are retired/unreferenced), pure-white --paper ground (not the old #fbfbfd), the real token table, soft rounded panels, the graphite gradient hero, the six-stylesheet architecture, and present-tense per-page design specs. The old "Open website changes" changelog was removed from canon (robots.txt fix and folder rename are done; the "No filler" panel, homepage rework and Field-Notes-daily-publishing tension are open items that belong in backlog.md; operational wiring lives in Infrastructure). Created Website Copy, the single canon map of every public page (purpose, live URL, source file, draft location) so there is one link to send instead of hand-assembling copy links. Wiki frontend made user-friendly: added the missing operations category to categories.json (so Infrastructure stops being an orphan invisible in the sidebar), and rebuilt the portal to explain itself — a "five homes" orientation panel and a one-line description under every category heading. Verified with an Eleventy build (37 pages, clean). index.md updated (33 articles).
[2026-08-10] reorganize | Wiki operating model established: five homes + canon law + auto-routing + content register | Updated: CLAUDE.md, README.md, brandbrain.md, publishing-guide.md, infrastructure.md, website.md, log.md | Created: backlog.md, content-register.md, drafts/ | Moved: wiki/website/copy-drafts → drafts/
Restructured the brand-wiki around five homes so every artifact has one obvious place, and so agents route automatically. Canon (wiki/) is now defined as settled, present-tense truth only, governed by a written Canon Law in CLAUDE.md: no history, no meta-commentary ("as discussed", "Glen is thinking about"), no open questions or hedges inside an article. History lives in log.md, ideas and unresolved decisions in the new backlog.md, sources in raw/, work-in-progress in the new top-level drafts/ (the old wiki/website/copy-drafts/ moved here via git mv, out of canon). Added content-register.md, a ledger of every content piece created (seeded with the six Field Notes and four Guides) that agents check before ideation to avoid duplicates and append to on creation. CLAUDE.md gained a Where Things Live routing table (raw input → raw/, settled fact → wiki/, WIP copy → drafts/, idea/open decision → backlog.md, change → log.md, new content → content-register.md), an expanded First-Read Protocol, and matching Principles. Seeded backlog.md with the open items previously buried in canon/log: the Field Note interview-series naming collision, the homepage manifesto-band uncertainty, homepage sign-off, and the un-mined Tara interview. Also completed the earlier fix: every stale digital-home/digital-home-frontend/ reference in the live docs corrected to digital-home/frontend/ (historical log/output entries and frozen Skills templates left as-is). Committed separately: .gitignore now excludes .wrangler/ and the eleventy-serve logs (commit 00c0fa5).
[2026-08-10] create | Two launch Guides drafted to replace the guides.html hub dummies: reading a test report, and PPE responsibility | Created: wiki/website/copy-drafts/guides-launch-set.md
Two hand-built Guide pages drafted to round out the Guides hub alongside the existing PPE Glossary and "Is my product PPE?": "What a test report actually tells you (and what it doesn't)" (bridges to Range Review) and "Who is responsible for a piece of PPE once it's on the market?" (bridges to Technical Ownership). Both match the production guide-is-my-product-ppe.html markup exactly (long-read guide-article, meta/eyebrow, reading-deck, reading-callout short answer, sections, reading-next, reading-disclaimer) with page metadata and the replacement hub note-entry blocks. They replace the two <!-- DUMMY --> placeholders in guides.html ("What a test report actually tells you", "Choosing between certification routes"); the routes-choice topic was deliberately not written because a plain guide on picking a route overlaps Route Finder's paid job and drifts toward product-specific advice. Grounded in Standards Coverage, Ppe Responsibility Map, Ppe Evidence Red Flag Library, Ppe Claims And Product Information Risk; plain-English second person, boundaries preserved (no certificate issuing, no controlled decision, no guarantee); British English; banned words checked; no prices. Status DRAFT pending approval; internal copy-drafts to stay clear of the frontend Codex is editing.
[2026-08-10] create | Launch Field Notes drafted: one per service (Certification, Range Review, Issue Support, Technical Ownership, Team Training) to sit alongside the existing Route Finder note | Created: wiki/website/copy-drafts/field-notes-launch-set.md
Five Field Notes drafted for launch so every service has one, matching the existing "Testing is a snapshot, not a status" (Route Finder). Each is a complete content_objects row (slug/title/subtitle/excerpt/body/semantic_tags/published_at) in the exact body-HTML shape the backend and articles.js render, ready for Codex to insert as draft then publish. Built to the Field Note structure in Publishing Guide and the locked public voice in Voice Guide: self-select situation line kept factual, dark-copy consequence/loss framing on the body only, one signature-framework verdict and one practical action per note, one service bridge each. Grounded in documented failure modes from Services and the PPE frameworks, written as composite illustrative patterns with no named clients, products, or invented statistics; British English; no prices; banned words (em dash, gear, paperwork, lab, general "file", protective products) checked. Pillars: how-the-system-works (Certification), from-live-to-covered (Range Review + Technical Ownership), avoidable-mistakes (Issue Support), more-hands-not-more-safety (Team Training). Status DRAFT pending Glen's approval; nothing published. File lives in copy-drafts (internal, unapproved reference) to stay clear of the frontend files Codex is currently editing.
[2026-08-10] update | Reading pages re-languaged: white sheet on grey ground, single text colour, one panel construction, yellow verdict moment | Updated: log, digital-home/frontend/DESIGN-HANDOVER.md
Fourth pass of launch day, from Glen's annotated screenshots of the Field Note and Guide templates, and it took three rounds under his live feedback to land. His asks: smaller headings and fonts, fewer unearned gaps, a close that doesn't stack two identical grey panels, consistent eyebrow casing, "All field notes" to match "All Guides", and — the ask the first two rounds misread — a GREY page with a WHITE reading area, not a white page. Round one consolidated the CSS (style.css carried three generations of reading-page rules — the generic .long-read rules shared with Recall Watch, mid-file blocks still holding ink rules and a 2.55rem guide h2, and a bottom override block — so which value won was a specificity accident; they are now one "Reading pages" block) and cut the type scale. Round two tightened further and tried a typographic verdict. Glen rejected both on sight: still white-on-white, callouts "like someone done it on paint", the narrower verdict paragraph "looks stupid", and the opening alternated grey deck / black intro / grey body. Final design: grey --surface ground with the article as one white sheet (920px, radius 20, generous padding; full-bleed at mobile); running text a single colour with headings and bold the only ink and .reading-intro demoted to an ordinary paragraph; h1 36.8px max, h2 ~19-22px, rhythm carried by heading margins so <section> markup and CRM markdown space identically; one panel construction at radius 12 — grey for callouts and margin notes, --signal-soft yellow only for the verdict/signature framework at full column width; the close is text plus button with no panel. Eyebrows one style, sentence case. Meta links "All field notes" / "All guides"; articles.js fallback label "Field note"; stray note-body class removed from article.njk. Verified server-side and via computed styles across a sectioned note, a markdown dummy note and both guides; Recall Watch untouched. Not yet signed off — Glen reviewing.
[2026-08-10] update | Services index brought onto v2, reading pages unified, sitewide font-fallback bug fixed; homepage rebuild rejected | Updated: log, digital-home/frontend/DESIGN-HANDOVER.md
Third pass of launch day. Services index was the last page still on the rejected ink-rule system (two 1px solid var(--ink) rules plus hairline rows). It now loads service-detail-uniform.css and shares the six detail pages' hero, the router became a genuine <table> inside a soft panel with var(--line) hairlines only (matching the approved Range Review ledger), the "three forks people confuse" section was deleted because it repeated the router's job, the diagnosis tool is linked twice, and the page ends in a close form instead of falling into a bespoke footer. A latent bug surfaced here: .services-hero-grid already existed in style.css as a two-column grid from the retired hero, so a new hero using that class name was silently rendered into its narrow left column and read as off-centre; the four dead rules are deleted.
Field Note and Guide templates were audited and unified. Glen's direction was explicit that reading pages must stay clean white pages and must not look like service pages, so no surface band and no gradient title were added; the header is the meta line, the title and the deck. Both templates now measure identically. Every ink rule was removed (under the header on both bodies, top and bottom on callouts and the verdict block, and above the next-step block), the / meta separator was removed, the meta line came up to the accepted 11.5px, emphasis blocks became soft panels at radius 16, and the stray "All Field Notes" ruled bar was deleted in markup and CSS.
Sitewide font bug found and fixed: "Plus Jakarta Sans" was listed as a fallback in seven font stacks in style.css with no @font-face declaration anywhere. Inter's webfont is font-style: normal only, so any italic text fell through to a locally-installed copy of the old brand font on machines that have it. All seven now use var(--font). The eight Jakarta .woff2 files are now unreferenced and still ship.
Homepage rebuild rejected. It was rebuilt around a dark full-viewport hero using a generated leather-jacket photograph at low opacity, with the beliefs re-rendered as large type and a Field Notes section and close form added. Glen rejected the result: "you're just spamming the same blocks and it looks template." The failure is recorded in DESIGN-HANDOVER.md rather than the fix, because he is redoing the page himself: every block defaulted to the same soft grey rounded rectangle varying only by column count, and adjacency was only checked after it was flagged. The rule written down for whoever picks it up is that a block's shape must be earned by its content and no two adjacent blocks may share both a column count and a surface treatment. src/index.html is now src/index.njk (front matter permalink: "/index.html") so the page can loop the articles data, the same conversion insights.html needed.
[2026-08-10] update | Second same-day re-language: ink-rule system rejected, "soft modern" v2 shipped sitewide; homepage rebuilt from scratch | Updated: log, digital-home/frontend/DESIGN-HANDOVER.md
Glen rejected the stripped ink-rule/route-node system hours after it shipped ("old fashioned... borders and lines everywhere... no way I would send a link to a prospective client") and a full v2 language replaced it the same day, calibrated on Range Review then rolled sitewide: pure white ground (paper token now #ffffff), soft rounded grey panels instead of ruled lists, Apple-scale graphite-gradient hero titles with the service name as the h1 and the sales headline as a standfirst, content depictions where structure earns them (Range Review's illustrative decision-ledger table with tag pills, Certification's five-party panel with Trace as the white cell, Technical Ownership's restored tier comparison table, Team Training's session panels with a yellow-tinted Motorcycle Deep Dive), whole-card "Could this be you?" field-note links, Tesla-slim forms, and the text wordmark "Trace Technical". About rebuilt twice, ending as stacked centred blocks (career panel with the assessor cell highlighted, the restored "You cannot buy advice from the judge" narrative, a single specialism statement, 2x2 expectations, proof line and diagnosis link added). Homepage rebuilt from scratch after Glen caught the first attempt recycling rejected content: full-screen gradient strapline hero with a drawn route-stroke arriving at a yellow station and the pathway word strip, then Exposed-is-quiet narrative (first site use of the One Word problem), six lifecycle-mapped service cells (from ppe-product-lifecycle-map), the three core messages as a dark manifesto band (first site use), and the founder block. OPEN: Glen unsure on the manifesto band's design; homepage sign-off pending; final impeccable sweep pending; booking/404/legal pages untouched by v2. Standing rules recorded in session memory: no line ornament, no eyebrows, no floating labels, choices always state who-it-is-for and what-you-receive, notes sit under panels, and never recycle rejected content when asked to rebuild.
[2026-08-10] update | Launch-day sales-page rebuild across the site; copy-drafts restored to the wiki | Updated: log; Restored: website/copy-drafts (19 files)
Glen rejected the first restyle-only pass on Issue Support ("fancy diagrams and steps, but not a functioning, clear sales page") and redirected the whole remaining redesign: every service page rebuilt as a direct-response sales chain (problem -> agitation -> offer -> authority/boundary -> close) sourced from wiki/offers/services.md, the copy-drafts, and Skills/dark-psychology-copywriter-v2.md, inside the stripped Apple x Tesla system from DESIGN-HANDOVER.md. Standing rules confirmed during the session: no text after a hero CTA button; layouts moulded per page, never copy-pasted; any in-page choice (training sessions, ownership levels, review depths, cert scopes) must state who it's for, what it is and what you get, no guessing games; clarity before everything.
Rebuilt: issue-support (first-response strip cut after feedback; five-move chain with the shared deliverable sheet), route-finder (impartiality-trap agitation added, five-working-day promise stated, risk-reversal close), certification-project (stall narrative with the approved "cryptic report" visitor sentence, handoff route line with yellow Trace node, weekly-status sheet, scope chooser reworded to "pick the sentence"), range-review (evidence-map mock, factors dl, table blueprint, depth cards and verb spectrum all deleted; visitor-sentence agitation, decision-ledger sheet, two-depth chooser), technical-ownership (queue card and Included/Not-included matrix replaced by a three-level chooser; rhythm list restyled), team-training (workbench card and dark bands removed; three sessions with wiki-corrected names PPE Workshop / Motorcycle Deep Dive in one chooser; before/during/after promise; platform claims dropped per wiki "not yet delivered"), services index (yellow hero and moments list stripped; sentence router + forks on ruled rows), homepage (structure kept; orientation kicker "For brands placing PPE on the market" added to the dark hero; choice cards -> ruled route-node groups; founder boundary unboxed), diagnosis (mark-caps eyebrows, rounded shadow card and pill options stripped; flow verified end to end). favicon.ico (1.8KB, 16/32/48 PNG-in-ICO from the TR monogram) added to src/root. Impeccable detect run consult-only: Inter flag and 11.5-11.8px meta labels are settled system decisions; sheet dd line-length capped at 64ch in response.
brand-wiki/wiki/website/copy-drafts/ (deleted in the "Replace legacy sites" commit) restored from git history at 07f1050 on Glen's request; there was never an issue-support draft, and draft prices/scarcity/insider claims remain unapproved reference only.
[2026-08-09] update | Post-standup cleanup: robots.txt opened for launch, no-prices rule moved into the wiki, new Infrastructure & Operations article | Created: operations/infrastructure.md | Updated: offers/offer-architecture.md, CLAUDE.md, index.md
Worked through the post-standup handover report (brand-wiki/output/next-steps-2026-08-09.md) with Glen ahead of tomorrow's launch.
robots.txt fixed and site opened for launch. digital-home/digital-home-frontend/src/root/robots.txt was still Disallow: / from the holding-page era, blocking every crawler including AI ones. Glen decided to launch open: changed to Allow: / with a Sitemap: reference to /sitemap.xml.
No-published-prices rule moved from CLAUDE.md into the wiki. The rule previously existed only as a clause inside CLAUDE.md's Website Copy Rules ("...or infer claims, prices..."). Added a dedicated "Publishing Rule: No Prices on the Public Site" section to Offer Architecture stating the rule explicitly and confirming (by grepping the built site, 2026-08-09) that no £ figure appears anywhere in production markup. CLAUDE.md now just points to that section rather than carrying the substance itself.
New Infrastructure & Operations article created — the gap the handover report called "the biggest gap": the wiki documented brand and copy but recorded no operational facts, and a folder rename had nearly broken the production build because of it. Infrastructure now holds the two-repo split (this monorepo vs. the separate trace-backend repo), Cloudflare Pages project name (brand-wiki, confusingly — it's the frontend deploy) and its build config, the Supabase project ref and region, where every class of secret lives, what's verified live vs. still-to-wire, the newsletter send process, and the two known upstream BraveBrand-starter bugs (USD-only money rendering, Next 16 Turbopack breaking OpenNext) so a future rebuild doesn't reintroduce either.
Checked and found already correct, no change needed: src/insights.njk's two conditional branches (empty-state sentence and notes-grid/notes-empty swap) were already properly implemented; the .subscribe-note wording in insights.njk already matches CONSENT_WORDING in functions/api/subscribe.js verbatim; website.md's "Open website changes" section was already current.
Deferred to Glen directly (outside this session's tool access): deleting the 6 test leads and the pipeline-test-note draft from the live CRM — that's UI-only, no filesystem access from here.
Follow-up same day: corrected Publishing Guide's Field Note "Eleventy implementation" section, found stale while explaining the idea-to-published workflow to Glen. It still described hand-building an HTML page per note; Field Notes have actually been backend-driven since the standup (rows in content_objects, fetched by src/_data/articles.js at build time, rendered by insights.njk's loop). Replaced with the real flow: draft as a content_objects row → approve → flip to published in the CRM → trigger a rebuild (deploy hook not yet wired). Guides and Recall Watch are unaffected — confirmed those remain hand-built pages.
[2026-08-06] update | About restarted from scratch after two rejected reskins | Updated: log
Glen rejected two passes that preserved the old About structure; the page is now genuinely new. Five sections, all white: hero (first-person hook "I spent 11+ years deciding whether PPE evidence held up. Now I make sure yours does.", framed portrait, Book a call and Connect on LinkedIn pills side by side), the career as four numbered steps (ran the tests, led the test team, assessed the documentation, founded Trace), the founding moment built around the centred display line "You cannot buy advice from the judge" with the impartiality story in two paragraphs, three what-it-means-for-you value lines (assessor's questions early, one lead across the chain, honest boundaries with the motorcycle-apparel specialism named), and the standard close-band form panel replacing the old lime cta-close. The origin spread, compliance-manager cycle box, beliefs band, credential rows, the resurrected process section and the cta-close band are all deleted, with 58 dead CSS rules removed. All copy is new, first person, from approved wiki facts only. Lesson recorded: "redesign" and "restart from scratch" mean discard the structure, not reskin it.
[2026-08-06] update | About redesigned from the wiki; article breadcrumbs removed; Field Notes masthead aligned | Updated: log
About got the real redesign Glen asked for, built from the wiki rather than reskinned: seamless hero with Book a call and the framed greyscale portrait (yellow offset block, same treatment as the home hero, replacing the masked cutout built for the old dark band); origin story with the pull quote and the compliance-manager cycle as a lime-ruled paper panel; the three locked core messages; the assessor's-side credential rows; a new "How I work" section carrying the engagement shape that ends on the proper handover ("You inherit a record, not a mystery", relocated from the stripped services page as intended); lime ticks on every section heading; all sections white with the lime cta-close as the CTA exception. The article's breadcrumbs were removed outright (markup and CSS), and the Field Notes masthead came down from 78px to the sitewide heading scale. All audits green: 19 pages, links clean, five stylesheets fully used.
[2026-08-06] update | Homepage swapped live; FAQ page deleted; About, Contact, Field Notes and the article aligned | Updated: log
The light build is now the homepage: home-light.njk became index.njk at "/", the old dark homepage and home.css were deleted, and the hero portrait was narrowed again on Glen's call. The FAQ page was deleted outright on Glen's call; Field Notes moved from the Resources sub-nav to the main nav and the Resources group was dissolved (nav is now Solutions / Field Notes / About / Contact; the training page keeps its own on-page FAQ). The sub-nav service notes ("We find the route" etc.) were rewritten without business-"we". About: the "Built inside Notified Bodies" insider claims were reframed to the approved assessor's-side wording, LinkedIn line went first person, arrows removed; the lime cta-close band stays as the sanctioned CTA exception. Contact: the page now shares the close band's single-panel construction; the form lost its competing "Start the conversation" heading and 72px h1 (Glen: "two halves slapped together"), gained white fields, green valid-field feedback and the lime pill submit. FAQ-scale masthead reduced sitewide and FAQ category labels adopted the dot-eyebrow construction before the page was removed. The live article (Testing is a snapshot) went light: white header with dot-eyebrow tag, first person ("so I could check them"), breadcrumb arrows to slashes, CTA arrows removed, dead footer CSS deleted; the ink signature-framework panel stays as its centrepiece element. All remaining dark themeColors flipped white. Verified: 19 pages build, links resolve, all five stylesheets fully used, sitewide sweeps clean.
[2026-08-06] update | Services page stripped to a pure router; full-site banned-terms sweep now clean | Updated: log
The services page was first rebuilt as a decision page with six offer cards and a process section, then stripped right back on Glen's feedback (the cards confused even him): now two sections only, a plain hero ("Six routes. Start with the situation.") and six rows, service name large, the visitor's sentence in italic under it, one line of what it is, whole row a link. Proof strip, process section and CTA band all removed; the service pages sell, this page routes. Glen's handover-process content (scope in writing, work you can see, decisions stay yours, a proper handover not a document drop) was written and then removed with the section; it is recorded here because it is approved framing worth reusing on a future page. Sitewide sweep finished the job: About, Contact, FAQ, book-a-call, website-terms, resources, the article disclaimer and the old homepage were cleared of "Tell Glen" phrasing, em dashes and "laboratory"; the whole built site (21 pages) now scans clean of banned terms. The em dash inside services.json (shared home/services data) was also fixed. The insider claim "Built inside notified bodies" is gone from the site.
[2026-08-06] update | Issue Support, Range Review and Technical Ownership complete the six-service pass; offer cards introduced | Updated: log
Issue Support: seamless hero whose callout carries the form action instead of a call ("Do not wait until you can explain it perfectly", send-the-facts anchor), the redundant urgent strip removed, first person for triage and correspondence, "laboratory" corrected to "test house". No copy draft exists for this service; passed against the live copy and voice rules only. Range Review: visitor's-own-sentence quote (the voice guide's recorded example "We cannot say which report belongs to which product any more"), first-person form, and the two reviews rebuilt as offer cards adapted from Glen's own card mock (audience row, numbered label, statement, checklist with lime square markers, Start here action; no prices and no full-lime card per standing rules; footer notes then removed on Glen's call). Verdict recorded on extending the card pattern: right for Range Review's two offers; the Technical Ownership matrix stays a table (three-way inclusion comparison); Team Training keeps its spread plus outcomes (cards would duplicate). Technical Ownership: seamless hero and callout, first-person form heading, em dash removed; content was already voice-correct. All six service pages now share the language: white sections, seamless hero, callout with one action, lime tick headings, dot eyebrows, first person, no em dashes, no banned words, verified by build, link check and CSS audit.
[2026-08-06] update | Certification Project rebuilt; all-white sections locked as a standing rule | Updated: log
Certification Project got the same pass: seamless hero with the "One owner for the whole route" callout, the visitor's-own-sentence quote opening the stall section ("The test house sends back a cryptic report and stops replying..."), first person for the doing and Trace for the contractual boundary, laboratory corrected to test house, "Build the file" corrected to "Build the documentation" per the banned-words list, "which means" benefit tails on the deliverables, and the dark "How the project moves" band flipped white. Draft insider-process claims and industry disparagement not used. Glen then locked "all sections white" as a bookmarked standing rule (recorded in session memory): every section ground white on every page, element panels (cards, the close band's paper panel, form fields) are the only non-white surfaces, no separator lines. Applied sitewide: content-section/audience-band/note-signup grounds, About beliefs band, and the three dark Technical Ownership bands all flipped with full text-colour corrections. Technical Ownership, Issue Support and Range Review still owe their full content passes.
[2026-08-06] update | Route Finder rebuilt on the new page language; nav dropdowns and paper sections flipped | Updated: log
Route Finder got the same full-freedom pass as Team Training, against the voice guide, banned-words list, route-finder copy drafts and the dark-psychology skill. Seamless hero (shared svc-hero-flow treatment) with the "Discuss it with Glen" callout carrying "A written route, in five working days. Fixed fee, scope agreed before work starts." New section: the impartiality gap (test houses are assessors, not advisors), the draft's strongest factual material, framed per voice rule 4 with founder claims limited to the approved founder-section wording. First person throughout; "Laboratories/laboratory" corrected to "test house"; em dashes removed; benefit lines added to the three deliverables ("Which means..."); draft price (£495), monthly slot scarcity and invented cost figures deliberately not used. Sitewide in the same pass: nav dropdown panels restyled white/rounded for the white header, and copy-section "paper" sections now render white (all sections white apart from the close band's panel, Glen's rule).
[2026-08-06] update | Sitewide light conversion of tracetechnical.co.uk locked in session with Glen | Updated: log
Glen directed the final visual pass live: white header sitewide with the typeset "Trace Technical" wordmark replacing the SVG lockup; all heroes flat white (no gradients or grain), service/about/services-index hero text flipped to ink; close band and founder sections white; no separator lines between sections (whitespace and padding separate, hairlines only inside content); eyebrows sitewide restyled to the home pattern (lime dot + spaced caps, no capsule); lime tick mark above section headings as the recurring signature. Home-light hero finalised: portrait near the seam with Connect badge, diagnosis as a popup on the photo with close button, "Motorcycle apparel experts" as the hero eyebrow (Glen's wording), founder section runs without a portrait. Mobile menu became a full-screen ink overlay with links spread down the screen and the lime CTA pill at the thumb. Team Training page restructured to pains → courses → outcomes → FAQ → CTA, seamless hero, all copy reused verbatim from the approved live page. Close-band form unboxed and modernised with green valid-field feedback; Book a call and next-service link are same-size pills. Team Training then got the full copy pass Glen requested, against the voice guide, banned-words list, the team-training copy drafts and the dark-psychology skill: hero callout ("Discuss it with Glen") carries the page's one CTA; third-person Glen references converted to first person per the locked I/Trace/we rule; "programmes" unified to "sessions"; a quiet consequence close added under the pains list (no invented figures, per voice rule 3); a benefits line added over the outcomes; draft material on scarcity ("4 teams per quarter"), guarantees and invented costs deliberately NOT used, per the drafts-are-not-approved-facts rule. Home page eyebrow line ("Motorcycle apparel experts", Glen's wording) remains the one line not skill-passed. Pre-existing em dashes on the other five service pages still need a copy pass.
[2026-08-04] update | Reconciled website copy drafts and recorded copy controls | Updated: website/copy-drafts (17 drafts), website/copy-drafts/website-copy-drafts, index, log, CLAUDE.md, brandbrain.md
Approved editorial pass: changed Technical Partner to Technical Ownership in copy, applied required terminology and UK English, removed em dashes, converted dollar examples to pounds, replaced invented testimonials with an approval placeholder, removed artificial scarcity/waitlist language, and changed guarantees and absolute claims to firm but qualified wording. Notified Body references now describe relevant experience rather than an insider claim. CLAUDE.md and randbrain.md now require the dark-psychology skill and copy-drafts reference for new public website pages; drafts remain reference material, not approved source copy.
Wiki Log
Chronological record of all wiki activity. Append-only.
[2026-08-04] update | Locked the public-page voice as Glen in first person, and the I/Trace/we rule | Updated: voice/voice-guide, index, log
Glen supplied the tone direction for the website rebuild: Glen talking, not a company writing. Eight rules recorded with his own examples, covering the visitor's-sentence opener, honest uninflated consequences, the refusal to invent figures, boundaries stated as credibility rather than disclaimer, first person with story-carried credibility, dryness confined to the margins, lowering the effort of making contact, and never asking readers to self-qualify.
Person rule resolved in the same pass: "I" for anything Glen personally does, "Trace" for the entity in contractual and legal contexts, "we" only where it means the client and Glen together on a job, and never "we" meaning the business. The footer strapline is the one sanctioned exception. This supersedes the third-person service-page copy currently live, which was written before the direction existed.
[2026-08-04] update | Locked current terminology, founder background, and website-copy rules | Updated: origin-story, positioning, primary-icp, ppe-buyer-and-enforcement-context, offer-architecture, services, which-service-do-i-need, voice-guide, website/copy-drafts/website-copy-drafts, index, brandbrain; Created: voice/banned-words
Confirmed: Technical Ownership is the current service name; Trace's primary audience is motorcycle protective apparel brands; PPE products replaces protective products; generic file wording becomes documentation; and Trace Yellow remains the final brand accent. The website-copy drafts remain internal reference material. Every new public website page must use the dark-psychology copywriting skill and use those drafts for copy and composition, without treating draft claims, pricing, testimonials, urgency, or tiers as approved.
[2026-07-30] create | Wiki initialized | Created: all scaffold articles
Initial scaffold created with starter articles across all categories: identity (origin-story, positioning, values), audience (primary-icp, objections), offers (offer-architecture), voice (voice-guide), proof (proof-stack), market (competitive-landscape), strategy (content-strategy, growth-thesis). All articles at low confidence with zero sources.
[2026-07-30] ingest | Company details, services summary, competitor analysis, founder background, PPE standards coverage | Updated: origin-story, positioning, primary-icp, objections, offer-architecture, competitive-landscape, proof-stack, voice-guide, growth-thesis | Created: company-details, standards-coverage
Three source files ingested:
company-details.md— legal name, company number, contact details, VAT status, ICO registrationtrace-summary-services-icp-competitors-background.md— full service/pricing breakdown, ideal client profiles, 8 named competitors with pricing and differentiation analysis, Glen Mascall's backgroundppe-standards-coverage.md— PPE Regulation 2016/425, 10 product standard categories, reference standards
This ingest touched 11 of 13 articles. Two articles remained unpopulated: values, content-strategy.
[2026-07-30] ingest | Live Service SOP Summaries | Updated: values, voice-guide | Created: delivery-methodology
Source file ingested:
live-service-sop-summaries.md— full operating procedures for all five services, shared delivery controls, stop conditions, close-out standards
Extracted: operational values (no guessing/TBC convention, written scope before work, client owns the decision, written approval for costs, honest close-out, reduce scope not price), delivery methodology (shared 9-step pattern, service-specific routes, stop conditions), voice patterns (TBC usage, "separately scoped" language, boundary-setting patterns). Job system references excluded per user instruction.
Content strategy remains the only unpopulated article.
[2026-07-30] create | Core Messages locked | Created: core-messages | Updated: index
Ran the Core Messages skill, distilled from the four pillar points under the Exposed/Covered lens. Locked three: (1) responsibility for getting it right never transfers to the test house, certifier, factory or a new hire, (2) being on the market is not the same as being right, (3) documentation is not proof until someone actually checks it. Sits at brand level alongside One Word and above the pillars.
[2026-07-30] create | Thought Leadership: four content pillars locked | Created: content-pillars, signature-frameworks | Updated: index
Ran the Thought Leadership skill under the Exposed/Covered lens. Built four pillars, each a complete Story/Point/Framework/Action unit: "How the System Actually Works" (test-house responsibility, framework: Your Technical File Is a Passport), "Avoidable Mistakes" (mid-route construction changes voiding tests, framework: Testing Is a Snapshot, Not a Status), "From Live to Covered" (ranges selling for years with no real due diligence, framework: One Cabinet, Every Drawer Labelled), and "More Hands, Not More Safety" (headcount vs. technical match, framework: The Wrong Toolbox). Two prior content pillars from content-strategy ("technology and modern ways of working" and the original "compliance-manager cycle" framing) were dropped/renamed per founder direction. All stories are real, sourced directly from the founder in session, not fabricated. Framework visual prompts kept in signature-frameworks as content assets, not folded into brandbrain.md.
[2026-07-30] update | Added "gear" to banned phrases | Updated: voice-guide
Founder feedback during One Word skill session: "gear" is banned, use "apparel" instead (e.g. "motorcycle apparel", not "motorcycle gear").
[2026-07-30] update | Added "paperwork" and "lab" to banned phrases | Updated: voice-guide
Further founder feedback during One Word skill session: use "documentation" not "paperwork", and "test house" not "lab".
[2026-07-30] update | Swapped a positioning differentiator | Updated: positioning
Founder disliked "Direct delivery — work is done by the specialist, not delegated to junior staff" in the What Makes Us Different list. Replaced with "Trains the team, not just the file", pointing at Team Training building internal product/quality/compliance capability rather than just outsourcing the work.
[2026-07-30] update | One Word Problem and Solution landed | Updated: positioning
Ran the One Word skill. Founder chose "Exposed" as the one-word problem (top 3 causes: patchy or missing per-product documentation on ranges already on the market, product teams with no background in testing/certification requirements, and the exposure a single consumer incident creates with nothing to show if questioned) and "Covered" as the one-word solution. Written into the positioning article as the lens for downstream lessons and skills.
[2026-07-30] ingest | Founder interview — founding motivation | Updated: origin-story, primary-icp
Source: founder-interview-2026-07-30.md — Glen's founding motivation, the compliance-manager cycle problem, conflict-of-interest barrier from testing/certification career, goals (faster to market, less stressful, embrace technology). Origin story now at high confidence. ICP updated with the market problem pattern.
[2026-07-30] ingest | Founder interview — content strategy | Updated: content-strategy
Source: founder-interview-2026-07-30.md (updated) — content channels (LinkedIn, website), editorial angle (insider knowledge from the testing/certification side), core provocation ("have we been doing it wrong this whole time?"), content pillars derived. All 14 wiki articles now populated. No unpopulated articles remain.
[2026-07-30] ingest | BraveBrand Intelligence playbook, prompt pack, market intelligence | Updated: primary-icp, objections, content-strategy, competitive-landscape
Source: bravebrand-playbook-2026-07-30.md — AI-generated audience research from BraveBrand Intelligence. Corrections applied: "hardware" → PPE, "ISO" → EN/Standards, $ → £. Synthesised quotes flagged as AI-generated, not real client language.
Extracted: transformation journey and 5 severity-ranked pain points added to ICP. Language map (pain phrases, desire phrases, search phrases, emotional triggers) added. Failed solutions added to objections (lab-direct, DIY research, generalist hires). New objection patterns: "I'll just ask the lab" and "we'll handle it internally". 31 proven content hooks added to content strategy (pain agitation, contrarian, curiosity, identity, transformation categories). Congregation points added (LinkedIn, r/ProductManagement, Hardware Massive, The Hardware Academy). Intertek and TÜV SÜD testing body complaints added to competitive landscape.
AI brand system prompt pack and market intelligence report contained overlapping data — deduplicated during ingest. Brand positioning angles ("Regulatory Navigator", "Compliance Architect", etc.) noted but not adopted as Trace identity — existing positioning from founder sources is more authentic.
[2026-07-30] ingest | Founder interview — proof points, speaking, brand experience, Lane Hunters recall | Updated: proof-stack
Source: founder-interview-proof-points-2026-07-30.md — speaking at motorcycle PPE seminars/webinars, bespoke training for Triumph Motorcycles, Norton Motorcycles, The Merlin Partnership. Inception-to-market track record across established brands, sub-brand launches (Ruroc/Enginehawk) and startups (Wh05Dat). Lane Hunters government recall as cautionary proof point. Proof stack moved from medium to high confidence. Some brand names cannot be disclosed publicly yet.
[2026-07-30] update | Terminology fix: "protective-product" removed | Updated: positioning, primary-icp, proof-stack, origin-story, offer-architecture
User instruction: the term "protective-product" (as a compound label, e.g. "protective-product businesses/brands") is disliked. Removed or replaced with "PPE" across all wiki articles where it appeared as a category label. Plain non-compound usage ("a protective product", "protective products") was left alone where it read naturally. raw/ source files were not touched (immutable).
[2026-07-30] ingest | Call notes — Denim Masters (sourcing agent, referral signal, US market signal) | Updated: growth-thesis, primary-icp, competitive-landscape, proof-stack | Created: call-denim-masters-2026-07-30.md (raw)
Source: call-denim-masters-2026-07-30.md — informal catch-up call with an old contact who owns Denim Masters, a sourcing agent used by many motorcycle apparel brands. He described Trace's service as "invaluable" and could see himself directing his own sourcing clients to pay Trace directly for testing, documentation and certification once product is prototyped. He also plans to try to expand into the US, citing growing demand from US motorcycle apparel brands to advertise CE certification.
Extracted: a potential new growth channel — referral/introducer partnerships via sourcing agents (added to growth-thesis as low-confidence, single-source, no commercial terms agreed) — plus a corresponding emerging buyer segment in primary-icp ("Referral-Sourced Clients": price-only, pre-sold by the introducer, trust barrier bypassed). An informal, private, unpermissioned endorsement was added to proof-stack (explicitly flagged as not for public use). An unverified US market signal (US brands wanting to advertise CE certification) was added to competitive-landscape.
All additions marked low confidence and flagged with open questions (commercial terms, whether this is repeatable, whether a flat-fee package is needed for this channel) — see the health-check questions raised in this session for follow-up.
[2026-08-01] ingest | Services & Offers Notion workspace — service architecture, pricing, PPE scope | Updated: offer-architecture, positioning | Created: (none)
Source: Services & Offers Notion hub and six service detail pages — Route Finder, Certification Project, Range Review, Technical Partner, Team Training, Issue Support — plus Proposed Services (Compliance Control, parked).
Major updates applied:
Offer Architecture:
- Services now grouped by customer journey stage (Find route → Move product forward → Regain control → Build capability) instead of linear ladder
- "Testing & Certification" renamed to "Certification Project" with new scoped pricing model (Full/Documentation-only/Testing-only/Certification-only coordination)
- "Retainers" renamed to "Technical Partner" with three levels (Advisory/Oversight/Operations) and product-volume-based pricing
- New service: Issue Support — emergency technical support priced by issue type (£450–£950)
- Range Review pricing changed from tiered by portfolio size to per-product model (£150 base, £350 for deeper review, minimum 10 products)
- Team Training restructured: three named sessions (PPE Foundation £750, PPE Document Workshop £1,750, Motorcycle Advanced £1,500) with pathway discount (£3,500 for all three), plus interactive app-based platform (design/build in progress)
- Route Finder pricing remains £495 (working reference, open questions noted)
Positioning:
- "PPE compliance consultancy overall" replaces specialist-only framing
- Motorcycle protective apparel explicitly positioned as master specialism (not exclusive limit)
- Explicit PPE category scope added: master specialism (motorcycle apparel/equipment), selected categories (hand, hi-vis, eye, head, hearing, sports), and excluded categories (respiratory, fall-arrest, industrial footwear)
- "Services matched to customer journey" added as a key differentiator
- New working rule: customer situation first, then proportionate service
Parked concepts: Compliance Control (app-based range/evidence operating system with client-owned SharePoint integration) noted as proposed future service, not in public offering.
All pricing confirmed in Notion working notes; some items (Route Finder scope, training platform build/delivery effort) marked as open questions. Offer progression pathway clarified: Route Finder for startups, Range Review for established businesses, then Certification Project/Issue Support/Technical Partner/Team Training as needed.
[2026-08-01] update | Trace PPE Pathway core message added | Updated: positioning, offer-architecture, brandbrain.md | Updated: index
Source: Services & Offers Notion hub (updated 2026-08-01 14:57).
The Trace PPE Pathway core message added:
- "Know the route. Move the product. Regain control. Build capability."
- Identified as core brand slogan/message and umbrella line for service architecture
- Ties together the four service groups by customer journey stage
- Added to positioning.md (new "Trace PPE Pathway" section), offer-architecture.md (restructured service philosophy section), and brandbrain.md (new pathway section)
- Parallels the Exposed/Covered one-word positioning as a brand-level messaging framework
[2026-07-30] update | US market signal corroborated | Updated: competitive-landscape, growth-thesis | Created: founder-note-us-market-2026-07-30.md (raw)
Source: founder-note-us-market-2026-07-30.md — Glen's direct answer to a wiki health-check question. Confirmed the US CE-certification demand is not just Denim Masters' impression: other big brands, including Merlin and Bobhead, have also tried to breach the US market. Added the structural insight that US-based brands cannot organise UK/EU testing and certification themselves, making this a genuine capability gap rather than just a demand signal. Competitive-landscape US section upgraded from low to medium confidence (single source → two independent sources) and renamed from "US Market Signal (Emerging, Unverified)" to "US Market Opportunity". Growth-thesis referral/channel section updated with the same corroboration and Glen's stated go-to-market motion (direct outreach + referral network).
Open question carried forward: whether the Merlin/Bobhead US attempts were Trace engagements (would become a proof-stack track-record claim) or observed independently (stays market colour only) — not yet clarified.
[2026-07-30] update | Merlin/Bobhead clarification + CCQS network signal | Updated: competitive-landscape, growth-thesis, proof-stack | Created: founder-note-merlin-bobhead-clarification-2026-07-30.md (raw)
Source: founder-note-merlin-bobhead-clarification-2026-07-30.md — Glen confirmed the Merlin/Bobhead US attempts were not Trace engagements; he learned of them through prior company experience and a contact at CCQS, a notified body. Closes the open question from the previous entry: this stays as market intelligence in competitive-landscape, not a proof-stack track-record claim. Added the CCQS relationship itself to proof-stack as an "Industry Network" authority signal, worded to avoid implying influence over certification decisions, consistent with Values.
[2026-08-01] ingest | Logo assets added to repo | Created: brand-assets.md | Updated: index
Source: trace_flat_assets_aligned/logo-assets (31 files across icon_only, icon_background, lockup categories).
Brand Assets article created documenting:
- Guiding Progress mark — the four-waypoint logo representing the Trace PPE Pathway
- Colour palette: Trace Yellow (#F1F252), Black, White
- Asset structure: organized by type (icon, background, lockup) → variant (Compact, Expanded) → format (PNG, SVG)
- Icon Only: standalone mark, three colours, for favicon/app icon/standalone uses
- Icon with Background: Compact (small/tight spaces) and Expanded (hero/tiles) variants
- Lockup: icon + "trace" wordmark, three colour combinations, two PNG sizes, SVG with outlined letterforms (no font dependency)
- Usage rules: minimum sizes, colour rules, spacing, do/don't guidance
31 logo asset files added to brand-wiki/assets/logo-assets/ in repo (12 PNGs for icon_background, 6 PNGs + 3 SVGs for icon_only, 6 PNGs + 3 SVGs for lockup). All assets available in both PNG and SVG formats at production-ready sizes.
[2026-08-01] reorganize | Website assets folder created | Updated: website/README.md
Source: brand-images/ and brand-mockups/ folders added at repo root by the user. Consolidated both into a new website/ folder (website/images/ — 14 product-photography assets; website/mockups/ — 4 AI-generated design-system/homepage/social mockups) since both are website assets rather than logo files or wiki content. Added website/README.md explaining the split and flagging that mockups are reference-only, not to be cloned or shipped directly.
[2026-08-01] ingest | Service deep dives and PPE Buyer & Enforcement Context added | Created: offers/services.md, offers/offer-playbooks.md, audience/ppe-buyer-and-enforcement-context.md, identity/visual-identity.md, strategy/website-main.md | Updated: strategy/growth-thesis.md, strategy/content-strategy.md, market/competitive-landscape.md, offers/offer-architecture.md, audience/objections.md, audience/primary-icp.md, identity/brand-assets.md
Source: Services & Offers Notion hub — six service "Deep Dive — Working Specification" pages (Route Finder, Certification Project, Range Review, Issue Support, Technical Partner, Team Training) and the new PPE Buyer & Enforcement Context page (all fetched 2026-08-01); brand-wiki/offer-playbooks/ folder (per-service brand-playbook JSON, market-intelligence, and prompt-pack files); brand-wiki/website/mockups/ and brand-wiki/website/images/ for visual identity and website direction.
Services — Deep Dives (new article): carries the "why it exists / who it's really for / why the gap isn't filled / risk of not using it / best next service" narrative layer under Offer Architecture for all six services. Positioned explicitly as the working-specification layer, cross-linked both ways.
PPE Buyer & Enforcement Context (new article): who Trace sells to (PPE brands placing product on the market, not PPE buyers/employers); the real exposure (products/evidence/claims that can't withstand scrutiny, not just "somebody might complain"); who can create exposure (OPSS, Trading Standards, HSE, marketplaces/retailers, test houses/certification bodies, BSIF — explicitly not an enforcement authority — customers/public); public recall/safety-report visibility; commercial consequences; and the explicit positioning rule against fear-based selling. Cross-linked from objections.md and primary-icp.md.
Offer Playbooks (new article): documents brand-wiki/offer-playbooks/ as core service reference material, not marketing campaigns — required reading alongside services.md and offer-architecture.md. Includes a terminology audit run against current canonical names and Voice Guide rules:
- Stale service names found in 2026-07-31-dated files only: "Campaign: Retainers" (→ Technical Partner) and "Campaign: PPE Compliance Pathway" (→ Team Training) — the
services-overviewprompt pack (updated 2026-08-01) already has correct current naming and explicitly bans "campaign" framing - Banned-word instances: internal persona nicknames "The Lab Liaison" and "The Gear Architect" in route-finder-brand-playbook JSON (low risk, not client-facing)
- Two American-spelling instances inside AI-prompt template body text ("color and material language", "organizing principle") inconsistent with the same file's own UK-English rule
- Imagery rule restricts all generated visuals to "motorcycle-related only" across every prompt pack, even though services also cover hand/hi-vis/eye/head/hearing/sports PPE categories — flagged as a deliberate-looking but unconfirmed scope decision, not an error, worth revisiting as non-motorcycle work grows
Visual Identity (new article): brand personality (technical, controlled, quietly confident), colour palette with role/meaning per colour (not just hex values), typography (Satoshi/Inter, Manrope ExtraBold wordmark), three approved imagery treatments (monochrome, yellow duotone, dark duotone), applied social/carousel/hero patterns. Explicit caveat that brand-wiki/website/mockups/ are reference only. Cross-linked with brand-assets.md (logo file spec) which this article complements rather than duplicates.
[2026-08-01] reorganize | Loose top-level folders consolidated into brand-wiki/ | Updated: offer-playbooks/README.md, offers/offer-playbooks.md, identity/brand-assets.md, identity/visual-identity.md, strategy/website-main.md, website/README.md, brandbrain.md
Per CLAUDE.md's documented directory structure, only Skills/, brand-wiki-frontend/, and brand-wiki/ are legitimate top-level siblings (plus brandbrain.md, CLAUDE.md, .gitignore). offer-playbooks/, assets/, and website/ had accumulated at the repo root outside that structure. Moved all three inside brand-wiki/ (now brand-wiki/offer-playbooks/, brand-wiki/assets/, brand-wiki/website/) and corrected every path reference across the wiki articles, README files, and brandbrain.md written or touched earlier in this same session.
Website — Main Site Direction (new article): homepage and service-page structure inferred from the homepage-hero mockup; includes a naming-correction table since the mockup uses placeholder labels ("Certification Projects", "Retained Support", "Critical Issue Support") that don't match canonical service names.
Growth Thesis (updated): replaced stale "Testing & Certification"/"Retainer" service names throughout with current names; added Issue Support as a third, urgency-driven entry point alongside Route Finder and Range Review; added PPE Buyer & Enforcement Context as the underlying reason Issue Support and Range Review convert.
Content Strategy (updated): added three distinct content-to-offer bridges (Route Finder, Range Review, Issue Support) instead of one, with an explicit instruction to reference enforcement/visibility context factually rather than through fear-based framing.
Competitive Landscape (updated): added Satra Technology and SGS to the Testing Bodies section, and Centric Software/Bamboo Rose as adjacent PLM-software alternatives — all sourced from per-offer market-intelligence reports not previously cross-referenced into this article. Flagged with the same synthesized/AI-generated confidence caveat used elsewhere in the wiki.
Offer Architecture (updated): cross-linked to the new services.md and ppe-buyer-and-enforcement-context.md articles.
[2026-08-01] ingest | Strategic Reference hub (8 pages) ingested | Created: offers/which-service-do-i-need.md, frameworks/ppe-responsibility-map.md, frameworks/ppe-evidence-red-flag-library.md, frameworks/ppe-enforcement-and-recall-playbook.md, frameworks/ppe-product-lifecycle-map.md, frameworks/ppe-claims-and-product-information-risk.md | Updated: proof/proof-stack.md, frameworks/standards-coverage.md, market/competitive-landscape.md, voice/voice-guide.md, strategy/website-main.md, offers/services.md, offers/offer-architecture.md, audience/ppe-buyer-and-enforcement-context.md
Source: Notion "Strategic Reference" page (parent: Services & Offers hub) and its 8 child pages, all fetched 2026-08-01 — a previously uningested set of "working authority notes" distinct from the service pages: they explain the world around the problem/risk/decision rather than what Trace sells.
Which Service Do I Need? (new article): the primary customer-routing decision system — situation-first funnel logic ("where is the product or range stuck right now?") mapping six customer situations to the six services, each with signals, price, and CTA; a customer-to-service table; 14 funnel qualification questions; explicit disqualifiers (e.g. wanting a guaranteed pass, wanting invented/backdated evidence); and the funnel sequence/internal routing rule. Flagged one minor cross-source inconsistency: this page states Range Review's Portfolio Review has no fixed minimum, while the Range Review deep-dive (in Services) states a 10-product/£1,500 minimum — noted for Glen to confirm which is current. Also captured named motorcycle standards (EN 17092, EN 13594, EN 13634, EN 1621 parts) used to scope Team Training's Motorcycle Advanced session, now added to standards-coverage.md.
PPE Responsibility Map (new article): who owns what across brand owner/manufacturer, authorised representative, importer, distributor/retailer/marketplace, test house, certification body, and authorities (HSE, Trading Standards, OPSS, BSIF) — plus Trace's own role and a 7-question "responsibility test" for any product.
PPE Evidence Red Flag Library (new article): warning signs across product identity, test evidence, certificates/declarations, marking/information, change control, and commercial red flags — each category ending with the likely next Trace service, making it useful for both delivery checklists and sales qualification.
PPE Enforcement and Recall Playbook (new article): practical first-response steps (name the product, pause claims/shipments if justified, preserve evidence, never edit/backdate evidence), triage questions, containment options, and authority references — the operational counterpart to Issue Support.
PPE Product Lifecycle Map (new article): an 11-stage lifecycle (idea and intended use → design → evidence planning → testing → certification route → technical file → placing on market → post-market monitoring → product change → renewal/retirement → corrective action/recall) with each stage mapped to the Trace service(s) that apply — the clearest existing illustration of why the six services connect end-to-end.
PPE Claims and Product Information Risk (new article): the claims ladder (descriptive → feature → performance → comparative → route claim) and common claim failures. Added a named, concrete red flag per direct user instruction: brands describing a product as "certified" or using language like "CE rated armor" to imply full conformity assessment when only a component was tested, or the claim exceeds the assessed scope — flagged as both a client-facing risk pattern Range Review/Issue Support catch, and a discipline Trace's own copy must never blur.
Proof Stack (updated): added the "Competence and Experience Record" internal guardrail — master vs. selected competence, what Trace must not claim (not a certification/notified/approved body, regulator, test house, or legal practice), and the proof register categories to maintain going forward.
Competitive Landscape (updated): added the standing "Market and Enforcement Watch" monitoring list — what to monitor, primary sources, per-signal triage fields, monthly/quarterly cadence, and the authority principle (verified law/regulation/official guidance over commentary).
Voice Guide (updated): added a "Public Copywriting Process Rule" — per explicit user instruction, any public/external copy must be run through Skills/dark-psychology-copywriter-v2.md before finishing. Flagged as an open tension: that skill's full framework (manufactured scarcity, fear-based pain agitation, urgency tactics) conflicts with this same voice guide's no-hype/no-urgency rule and the "do not sell through fear" rule in ppe-buyer-and-enforcement-context.md. Recorded as a case-by-case call for future public-copy work, not resolved in either direction. Also saved as a persistent feedback memory outside the wiki (feedback_public_copywriting_dark_arts_skill.md) since it governs future-session behaviour, not just wiki content.
Website — Main Site Direction (updated): added a "Clarity Rule — Don't Overwhelm" section per explicit user instruction — many visitors are new to PPE entirely, so the site must minimise icon-reliance (icons always paired with a plain-language line), avoid jargon on first contact, and prefer the which-service-do-i-need.md situational-question structure over a raw six-service list.
Cross-linked the new articles into services.md, offer-architecture.md, ppe-buyer-and-enforcement-context.md, and website-main.md.
[2026-08-01] reorganize | website-main.md moved to new website category; mockup layout direction removed | Updated: website/website-main.md, brandbrain.md, CLAUDE.md
Per direct user correction: the website-main.md article had misread the design mockups as layout/design inspiration. Removed the "Homepage Structure," "Service Page Template," and "Naming Corrections" sections entirely — the mockups in brand-wiki/website/mockups/ are visual-identity tone reference only (Visual Identity) and must never inform actual site layout, navigation, or page structure. Also created a new website wiki category (added to CLAUDE.md's category list and directory structure) and moved website-main.md from wiki/strategy/ to wiki/website/, since the user plans to add landing pages and sales pages here as they're created. brandbrain.md's Website Direction section updated to match.
[2026-08-01] update | offer-playbooks folders renamed and terminology fully resolved | Updated: all 5 service folders in offer-playbooks/ (route-finder, range-review, certification-project, technical-partner, team-training), offer-playbooks/README.md, services-overview/services-overview-ai-prompts.md, offers/offer-playbooks.md
Per direct user instruction ("these names are old and the docs themselves too" / thorough check requested), resolved every remaining stale-naming and accuracy issue flagged in the earlier terminology audit, rather than leaving them as flagged drift:
- Renamed folders and files to canonical names:
testing-certification/→certification-project/,retainer-support/→technical-partner/(internal files renamed to match the new folder slug). - "Campaign:" / "Campaign Voice" labels replaced with "Service:" / "Service Voice" across all five prompt-pack files — per explicit user instruction, Trace's six services are not campaigns.
- Stale service names fixed throughout brand-playbook JSON and market-intelligence files (not just prompt-packs): "Testing and Certification" → Certification Project, "Trace Retained Support" → Technical Partner, "PPE Compliance Pathway" (as a service label) → Team Training — carefully distinguished from the legitimate brand-level Trace PPE Pathway slogan, which was left untouched.
- Team Training pricing corrected — brand-playbook JSON and market-intelligence.md both carried a stale, superseded 4-tier structure ("PPE Compliance Foundations £750 / PPE Product Compliance in Practice £1,500 / PPE Technical Documentation Workshop £2,500 / Connected Team Training pathway £5,000"). Replaced with the current structure (PPE Foundation £750, PPE Document Workshop £1,750, Motorcycle Advanced £1,500, complete pathway £3,500), stated as plain fact rather than flagged as a correction, per user instruction.
- Competitive Landscape sections removed from all 5 market-intelligence files — per direct user instruction ("the competitive landscape for all services are wrong and can be removed, or directed to our competitor info in the wiki"), each file's synthesized, service-by-service competitor section was replaced with a pointer to the maintained Competitive Landscape wiki article.
- Brainstormed program-name options simplified to the real service name — per user instruction ("whatever fits, either the service name... would make more sense"), each brand-playbook JSON's invented sub-brand/program-name ideas (e.g. "The Compliance Champion Academy," "The Audit-Ready Blueprint") were replaced with the actual service name (Team Training, Range Review, etc.) — Trace doesn't run services under invented sub-brand names.
- Banned-word persona nicknames fixed: "The Lab Liaison" → "The Test House Liaison", "The Gear Architect" → "The Apparel Architect" (route-finder brand-playbook).
- American spelling fixed in isolated instances found across files (realized→realised, Paralyzed→Paralysed, Decentralizer→Decentraliser, Harmonization→Harmonisation).
- Broken internal links fixed in services-overview-ai-prompts.md — its per-service links pointed to old capitalised/spaced folder names that never actually matched the real folder structure.
- All 5 brand-playbook JSON files validated as still-parseable JSON after edits.
- Not fixed, flagged for a future pass: each brand-playbook JSON retains a structured
competitiveLandscapeobject (distinct from the removed prose sections) with the same synthesized data — left as internal research data rather than rendered content; may still want stripping/redirecting later.
Updated Offer Playbooks to describe the completed cleanup instead of the prior audit findings.
[2026-08-01] update | No-fear-selling rule removed; dark-arts copy delivered for homepage routing section | Created: website/homepage-routing-section-copy.md | Updated: audience/ppe-buyer-and-enforcement-context.md, voice/voice-guide.md, strategy/content-strategy.md, brandbrain.md
Source: user reviewed a live screenshot of the site's homepage six-card routing section (matching Which Service Do I Need's structure) and gave two direct instructions: (1) remove the "do not sell through fear" positioning rule, (2) apply dark-arts copywriting to the six cards' body text, keeping the quoted problem-statement headlines as-is ("the problem parts are okay").
Positioning rule removed: the "do not sell through fear or imply every PPE brand is about to be prosecuted or recalled" rule is gone from Ppe Buyer And Enforcement Context, Voice Guide, Content Strategy, and brandbrain.md. Pain agitation and consequence/loss framing are now explicitly approved for public body copy under Voice Guide's Public Copywriting Process Rule. Two guardrails remain, distinct from the removed rule: (1) situational problem-headlines stay factual, only supporting body copy gets the persuasion treatment; (2) every consequence used in copy must be real and documented (recall, delisting, stalled launch, etc. — sourced from Ppe Buyer And Enforcement Context), never invented or exaggerated.
Homepage Routing Section — Copy (new article, website category): finalized, shippable dark-arts body-copy lines for all six routing cards (Route Finder, Certification Project, Issue Support, Range Review, Technical Partner, Team Training) — the actual copy, not direction, since this maps to a real live site section. Cross-linked into Which Service Do I Need and website-main.
Updated the persistent cross-session memory (feedback_public_copywriting_dark_arts_skill.md) to record the resolution — this is no longer an open tension to flag each time, it's a settled rule with two specific guardrails.
[2026-08-02] update | Removed fixed Typography/Imagery/Applied-Patterns constraints from Visual Identity | Updated: identity/visual-identity.md, brandbrain.md, index.md
Per direct user instruction — the locked-in typography (Satoshi/Inter), the three approved image treatments (monochrome/yellow duotone/dark duotone), and the mockup-derived applied layout patterns (social post/carousel/hero patterns) were removed from Visual Identity as too restrictive for upcoming website design work. Replaced with an explicit "open for the website work" note: no fixed fonts, image treatment, or layout pattern going forward — the single carried-over hard constraint is that the site must never read as a generic SaaS website. The logo wordmark's fixed Manrope ExtraBold spec was kept (that part isn't a design-freedom question, it's the production logo file). Colour palette, brand personality, and logo-in-context sections were left untouched — not part of the user's request. Mirrored the same change into brandbrain.md's condensed Visual Identity section.
Not resolved in this pass: the user was invited to either leave this fully open or give creative direction; no direction was given yet, so this remains a genuinely blank slate pending the user's answer.
[2026-08-02] ingest | Website copy drafts brought into repo | Created: website/copy-drafts/README.md, website/copy-drafts/{route-finder,certification-project,range-review,technical-partner,team-training,all-services}/*.md (18 files)
User supplied 18 AI-generated website copy files from C:\Users\gmasc\OneDrive - tracetechnical co uk\Documents\website-copy (external to the repo) with instructions to organize into a sensible folder structure and rename anything that didn't make sense — explicitly component material meant to be pulled from, not shipped whole per page. Copied (originals left in place at the source path) into wiki/website/copy-drafts/, one subfolder per canonical service plus all-services/, with three consistently-named files each: landing-page-copy.md, sales-page-copy.md, services-tier-copy.md (all-services/ uses homepage-copy.md + services-page-copy.md instead, since those genuinely are the whole-site pages). Renamed away from the source's inconsistent naming (team-training-homepage-copy.md and route-finder-copy.md etc. were the same content type — a full landing-page pass — just named differently).
Not reconciled with brand rules — flagged in the new README instead of silently fixed: the copy carries pricing throughout (conflicts with the no-pricing-on-public-pages rule), uses the banned word "gear," is in US spelling throughout, and each services-tier-copy.md invents a three-tier pricing ladder per service that doesn't match the real one-fixed-fee-per-service offer architecture. Editing copy content wasn't requested this pass.
[2026-08-02] create | Website design direction captured from user creative brief + reference images | Created: website/website-design-direction.md | Updated: website/website-main.md, identity/visual-identity.md, index.md
User supplied 15 reference images (MadeByShape agency site, Supervity AI decks, Amperive EV landing, a "System Performance" proof template, Flex fintech illustration set, nu.image) plus a detailed creative brief, in direct follow-up to the same-day removal of the old fixed Typography/Imagery/Applied-Patterns constraints from Visual Identity. Created a new article, website-design-direction, to hold this — distinct from website-main (content/messaging only) and Visual Identity (underlying brand system).
Captured, with mid-conversation corrections folded in as they happened rather than left as a first-draft contradiction:
- Never-generic-SaaS / Awwwards-calibre bar, the "60-year-old mother" clarity test, no content-trap CTA repetition
- Green explored as a replacement for/addition to Trace Yellow — not decided (every strong reference leans lime/acid green over yellow)
- Mixed type weight and contrast pairing rather than one weight throughout
- No repeating left/right image-text section structure down the page — flagged by the user as a defining generic-template tell
- Buttons: bespoke and brand-unique — explicitly not pill-shaped, after the user's own first instinct (MadeByShape's pill CTAs) was corrected on reflection; kept the underlying "click-appeal" quality bar, dropped the literal shape
- Responsive priority: 14" laptop first, then desktop, mobile deliberately deprioritised
- Imagery: max one photo of Glen (About page), close-up-only apparel shots (motorcycle/hi-vis only for now, never implying Trace manufactures/sells PPE), no images at all on article pages
- Illustration: character-style line art (Flex reference) chosen over technical/schematic line art, primarily for articles
- IA: "problems we solve" not "services," LinkedIn integration as designed follow/connect components (not buried text links) plus every article cross-posted to LinkedIn from the site as canonical source
- Build plan: real site will eventually live in this repo and deploy to Cloudflare, but only after a wireframe pass the user is doing separately — nothing here is a go-ahead to start building
- Noted for forward reference (not yet actioned): user is separately planning a complex service-matching questionnaire funnel for the site, to cross-link with Which Service Do I Need once specced
Updated website-main to point to the new article, and bumped its Last Updated date since the "layout/design is out of scope for this article" line now has a real cross-reference instead of being simply unaddressed.
[2026-08-02] update | Brand accent colour changed yellow to green | Updated: identity/visual-identity.md, identity/brand-assets.md, website/website-design-direction.md, brandbrain.md, index.md
Per direct user decision, resolving the "green vs yellow" open question from the same-day website-design-direction brief. Trace Yellow (#F1F252) is retired as the primary accent; Trace Green #C4F136 (a first documented value from the reference set, explicitly provisional) takes its place across Visual Identity, website-design-direction, and brandbrain.md. The 10-15% accent-usage discipline and the "black + accent = PPE/hi-vis colour coding" rationale both carry over unchanged, just re-argued for green instead of yellow.
Logo not yet updated — flagged, not fixed. The user is redesigning the logo around the new green separately; the production files in brand-wiki/assets/logo-assets/ still physically use yellow (filenames like trace-guiding-progress-mark-yellow.svg, yellow lockup/tile variants). Added an explicit "stale until logo redesign lands" note at the top of Brand Assets rather than editing or renaming any of the actual asset files, which are outside what this pass is responsible for.
[2026-08-02] update | Recovered edits dropped by an OneDrive sync conflict | Updated: offer-playbooks/README.md, log.md (this note)
While staging today's changes for commit, found brand-wiki/offer-playbooks/README-TraceLaptop.md and brand-wiki/wiki/log-TraceLaptop.md sitting untracked — initially assumed (and told the user) these were conflict copies from another device. They were not: they were OneDrive conflict copies of this session's own earlier edits, split off during the OneDrive sync client outage/restart earlier in the day (see the "OneDrive sync issue" note from that pass). The live working copies of offer-playbooks/README.md and wiki/log.md had silently reverted to their pre-edit state at some point after the edits were made and before this check.
Recovered: re-applied the services-overview/ row edit to offer-playbooks/README.md (brand-playbook JSON + prompts, not prompts-only). The dropped log entry's content had already been substantively captured by this file's current entries, with one exception — a note that wiki/offers/offer-playbooks.md was not updated earlier due to the same OneDrive outage (still true: that file has not been touched today). Recording that here since the original note was lost. The two -TraceLaptop conflict-copy files have been deleted now that their content is confirmed merged back in.
[2026-08-02] update | Removed all mockups/ references and deleted the folder | Updated: identity/visual-identity.md, website/website-main.md, website/README.md, index.md, brandbrain.md | Deleted: website/mockups/ (4 files)
Per direct user instruction ("dont want any trace of them"). Deleted brand-wiki/website/mockups/ (the four AI-generated design-system/homepage mockup PNGs) and scrubbed every reference to it: the "Note on sources" paragraph and Sources line in Visual Identity, the mockup-caveat paragraphs in website-main, the mockups bullet in brand-wiki/website/README.md (also fixed a stale link path to website-main while in there), and the mockup mentions in brandbrain.md's Visual Identity and Website Direction sections. Left generic uses of the word "mockup" alone where it's just design vocabulary, not a reference to the deleted folder (e.g. AI prompt-pack files, "no stock hero-with-laptop-mockup layout" in website-design-direction).
[2026-08-02] update | Fixed website copy drafts invisible on the live wiki site | Updated: index.md, website/website-main.md | Renamed: website/copy-drafts/README.md -> website/copy-drafts/website-copy-drafts.md
User reported the copy-drafts content added earlier today wasn't visible anywhere on the wiki site or mentioned in the article body. Root cause: the frontend (brand-wiki-frontend/.eleventy.js) only lists a page in the sidebar/homepage/category listing if it can parse a **Category:** bold-line from the file — the collection folder's README.md had no such line (or any of the Article Format metadata), so it and the whole set were effectively invisible even though the raw pages did build. README.md as a filename was also a problem on its own: with no metadata, the frontend falls back to a fileSlug-derived title, and "readme" would have rendered as the page title "Readme."
Fixed by renaming the article to website-copy-drafts.md (matches the website-copy-drafts wikilink convention used elsewhere) and adding a proper Category/Sources/Confidence/Last Updated header, plus a real linked file table (direct site URLs) replacing the old plain folder-tree code block. Added an explicit cross-reference from website-main to website-copy-drafts, since the user flagged that page specifically as where this should be discoverable. Verified with a local Eleventy build (npx @11ty/eleventy in brand-wiki-frontend/) rather than assuming — confirmed the new page appears in the homepage Website category list, the sidebar, and that the wikilink resolves, before pushing.
[2026-08-03] update | Accent colour finalized to yellow; full palette documented | Updated: identity/visual-identity.md, identity/brand-assets.md, index.md, brandbrain.md | Deleted: website/website-main.md, website/website-design-direction.md, website/homepage-routing-section-copy.md
Per direct user decision: Trace Yellow is final as the brand accent colour — the earlier yellow→green exploration is settled, not revisited. Visual Identity rewritten with the full production palette (lime yellow #F1F252, near black #17171E, secondary black #22222A, white #FFFFFF, warm off-white #F4F3EE, secondary warm grey #ECEBE4, body text grey #4D4D55, muted grey #5D5D65, border grey #DEDDD4, dark border #45454E), replacing the prior green/provisional palette. Brand Assets's "logo redesign pending" stale-flag note removed — the production logo files (which use yellow) are current again, not stale. brandbrain.md's Visual Identity section updated to match.
Deleted (user requested a pre-upload cleanup sweep): website-main.md and website-design-direction.md (both to be redone once tomorrow's new site is in place) and homepage-routing-section-copy.md (shipped copy tied to the old site). Cross-references to all three removed from Which Service Do I Need, website-copy-drafts, website/README.md, and brandbrain.md's Website Direction section (now a placeholder pending the new site).
[2026-08-09] create | Stood up the Digital Home backend and wired the site's forms into its CRM | Updated: CLAUDE.md, digital-home/frontend/functions/, digital-home/frontend/src/assets/site.js | New repo: glenmascall/trace-backend
Ran the BraveBrand digital-home-standup skill (v2026.07) against the existing Trace site. The skill is written for exactly this case — "a live funnel and no Digital Home" — so the Next.js frontend starter was deliberately never stood up; the approved Eleventy site plays the frontend role. The 11 frontend-starter migrations were still applied, because the base schema (including leads) lives in that half.
Where things now live. The backend is its own top-level repo at C:\Users\gmasc\dev\trace-backend (private, glenmascall/trace-backend), deployed as the Cloudflare Worker trace-backend, on a dedicated London-region Supabase project trace-digital-home. It is outside this monorepo on the skill's placement rule — its own git history, deploy target, secrets and scheduled GitHub Action, none of which should tangle with the wiki. CLAUDE.md's directory map previously reserved digital-home/backend/ for this; that entry is now corrected to point outward.
What was closed. The site's nine to-glen forms and the diagnosis result had only ever opened a pre-filled mailto. An enquiry therefore existed only if the visitor's mail client opened and they pressed send — otherwise nothing was recorded anywhere. That was the actual hole, and it is now dual-written: the mailto still runs, and the same-origin /api/contact Function files the lead into the CRM with the capture key held as a Pages secret, never in browser JavaScript.
Verified, not assumed. Cal.com bookings proven with a genuinely signed BOOKING_CREATED delivery (200, lead + appointment created) and a deliberately bad signature (401). Capture proven with the exact body the Function builds (200, correct field mapping, tags routing on service) and with a wrong key (401). The email engine's GitHub Action ran green.
Three latent faults found and fixed, worth remembering:
- Next 16 now defaults
next buildto Turbopack, which OpenNext cannot run on Cloudflare — the build and deploy both succeed, then every page 500s. Pinned--webpack. - The upgrade payload renders all money in USD regardless of configured currency, because every
fmtMoneycall site omits the argument. Affects every non-USD install of that skill; worth reporting upstream. - The site's
_gotchahoneypot has always been checked server-side but never existed in any form's markup — dead code. Now injected bysite.js. Deliberately not namedwebsite, which is the capture endpoint's own honeypot: filling that returnsok:truewith no lead and discards the submission silently (confirmed by test).
Brand wiki → Digital Home. brand_context was seeded from this wiki rather than by the interview the skill would otherwise run — 17 rows, ~71k chars, covering voice, banned words, positioning and the One Word, origin story, values, primary ICP, pain points, objections, proof stack, services, offer architecture and signature frameworks. Long articles are split into numbered rows because the loader slices each row at 6000 chars. The AI composer now drafts from the wiki instead of a blank slate.
Still open. The form wiring is committed on branch digital-home-standup but not merged, so it is not yet live. Before merging, the Pages project's root directory must change from digital-home/digital-home-frontend to digital-home/frontend or the production build fails. Also outstanding: Resend webhook secret and domain-verification confirmation, no DMARC record on the domain, the offers table empty (so drafted CTAs fall back to /contact), and funnel analytics activated but not yet wired into the site. crm_safe_mode is ON — every send is simulated until switched off by hand.
[2026-08-09] ingest | Tara (SATRA) interview — first of the planned Field Notes interview series | Created: interview-tara-satra-2026-08-09.md (raw), field-notes-interview-series.md | Updated: content-strategy.md, index.md
Glen interviewed Tara, a certification team leader at SATRA, as the first source in a planned two-part interview series (second source: Sean at CCQS, potentially named — see Proof Stack's existing CCQS network contact). Tara must stay unnamed in any published output — flagged at the top of the raw file and in the new wiki article.
Extracted: a quotable submission-quality breakdown (~10-15% minor issues, ~65% significant-but-fixable, ~30% unusable on first submission), why manufacturers get technical files wrong (self-directed testing without certification guidance, copied templates, no continuity between resubmissions, expecting free consulting the certifier legally can't give), who repeat-offends (small/seasonal retailers, occasional PPE dabblers, and bigger companies who overload one non-specialist rather than hiring the right specialist — reinforces the existing "More hands, not more safety" content pillar), what good looks like, and notified-body inconsistency as a structural industry problem (different bodies and even different assessors within one body apply different requirements; switching bodies costs weeks of rework and 30-100% re-review surcharges; Tara's proposed fix is a shared cross-body "reference for use" document plus stricter enforcement of the existing no-consulting rule).
Flagged, not resolved: Glen's working name for this series, "Field notes from the inside," collides with the site's existing structurally-locked Field Note page format in Publishing Guide (situation/assumption/break/consequence/decision-rule/action, written in Glen's own voice about a real Trace situation) — this interview series is a Q&A-style attributed/anonymous source piece, a different shape. Needs a Glen decision before anything from this series is published under either name: fold it in as source material Glen writes Field Notes from, or give the series its own distinct name and format.
Also flagged, not merged: Competitive Landscape already lists Satra Technology as a testing body from unverified AI-synthesized market intelligence. Tara's first-hand account doesn't map cleanly onto that competitive framing (it's about internal certification-team friction and industry-wide NB inconsistency, not a Trace-vs-Satra comparison) and wasn't merged in, given her anonymity requirement — left as an open cross-reference in the new article instead.
Five article-idea threads logged for future writing in the new article, including one direct bridge question already teed up to ask Sean when that interview happens.
[2026-08-09] update | Added an "Open website changes" section to website.md ahead of tomorrow's launch | Updated: website/website.md, index.md
Field Notes now render from the Digital Home backend rather than from files, which introduced two things that would trip up anyone editing the site from memory — so they are recorded in the article that governs website changes rather than left in a chat log.
src/insights.html no longer exists; it is src/insights.njk. The extension changed because the page loops over data and eleventy.config.js sets htmlTemplateEngine: false. Two parts of that page are now conditional (the "short drafts have been removed" sentence, and the empty state versus the notes grid), so a redesign must handle both branches or the page will look correct today and wrong the day something publishes.
Also recorded: robots.txt still blocks the whole site and is a launch blocker held as an open decision, not a silent fix; the two plain-text Pages build variables and the deploy hook still to wire; why prices stay off both the site and the offers table; and the Pages build path, including that the root-directory setting broke when the frontend folder was renamed today.
Kept the reasoning behind the "No filler" panel even though Glen is removing it in the pre-launch design pass — the underlying tension between a no-filler promise and an automated daily publishing pipeline outlives the panel itself, and the recommendation stands: draft with the pipeline, publish by hand.
[2026-08-10] update | Contact forms now complete through the Digital Home backend | Updated: digital-home/frontend/src/, digital-home/frontend/functions/, digital-home/frontend/README.md, digital-home/frontend/HANDOVER.md, website/website.md, index.md
Per Glen’s direct decision, removed the remaining prepared-email handoff from every Trace enquiry form. The shared form handler now waits for the same-origin /api/contact Function, which records the enquiry in the Digital Home CRM and can independently send Glen a Resend notification. Visitors remain on the page and receive an explicit sending, success or recoverable failure state; clicking submit no longer opens their email client.
All ten .to-glen forms now declare /api/contact as their action, the obsolete email-client success copy has been removed, and the privacy wording now accurately states that enquiry details are submitted to Trace and may be stored in its CRM. The capture key remains server-side. The production build and all 29-page local link, asset and anchor checks pass.
[2026-08-18] update | Glen's copy pass, batch 1: service-page hero CTAs simplified; Home founder block rewritten | Updated: digital-home/frontend-v2/src/services/.njk, src/services/team-training/.njk, src/_includes/home/founder.njk
Service-page hero secondary removed (Glen's instruction: "on all services pages, the secondary button in the hero to be removed. It should only be book a call with Glen"). All nine service and session pages (Route Finder, Certification Project, Range Review, Issue Support, Technical Ownership, Team Training hub, and the three session pages) now carry a single hero action: "Book a call with Glen", matching the Home hero's label since polish wave 3. The section-anchor text-links that sat beside it (Process, Verdicts, Levels, Deliverables, Issues, Sessions) are gone. The per-page link classes they used (cp-link, rr-arrow, ts-link and the rest) are retained because the AI-block link pairs further down each page still use them; nothing was orphaned. .ph-hero__actions needed no CSS change: it is a wrapping flex row with a gap, so a single child sits correctly, and the sub-30rem rule that makes the button full-width still applies.
The /services/ index was deliberately NOT included. Its secondary is "Diagnose my service", a routing decision Glen settled on 2026-08-17, not a generic section anchor like the other nine. Held for a separate ruling rather than reversed silently (open in backlog.md).
Home founder block rewritten. Glen's criticism of the existing copy: it "reads very 'what i do at work', a bit child like and not at adults". Root cause was that paragraph one compressed his four roles into a single run-on CV sentence, while /about/ already tells that career properly as a structured four-item chain, so Home was reciting a resume instead of arguing why the vantage matters to the reader. Two drafting agents at different tiers produced options against the voice guide, banned-words canon, origin story and ICP articles; the shipped paragraph asserts the consequence rather than listing the jobs: "Whether a product moves or stalls is decided by people he used to be: the technician running the test, the assessor reading the documentation. Most of what stops a launch is visible long before anyone submits anything."
The headline was corrected for factual precision on Glen's note that he has held more PPE roles than four overall (including B2C PPE sales) but that they are not relevant here: "Four positions in the PPE chain before this one" is now "Four positions in the PPE compliance chain before Trace." Paragraph two was left untouched on Glen's instruction ("second paragraph in about section is fine, just the rest"); it states the independence boundary as credibility, which the voice guide endorses.
Booking form: an example placeholder on "The situation". Glen asked for a short example that also makes clear a brain dump is welcome. The textarea now carries "Samples went in six weeks ago and nobody can tell us where they are. Rough notes are fine, it does not need tidying up." The example sentence is the visitor-own-words opening the voice guide already models; the second half covers the permission without contradicting the section lede above it ("two or three sentences is plenty" is about length, this is about polish). A ::placeholder rule was added to .bk-form__input because the booking form had no placeholder styling of its own. It first used --text-muted, which Glen rejected on sight: that token is 5.1:1 by design (the audit raised it to AA) and the example therefore read as text the visitor had already entered. A dedicated --text-placeholder token now exists in tokens.css for both themes (#9A968D light, #6B675F dark, both about 2.9:1 on --card), deliberately below body-copy contrast so an example cannot be mistaken for content. This is a considered exception rather than a regression: every field using it carries a visible label, so no information depends on reading the placeholder. Recorded in DESIGN.md, which also had its text-muted value corrected from a stale #77746C to the shipped #6E6B63.
"Technical file" checked, not changed. Glen flagged the term as possibly banned. It is conditionally banned: Banned Words permits it only when it refers to the formal technical record for a product, which was the sense in use. The phrase left the page anyway with the rewritten paragraph.
npm run check and npm run check:slop both pass (links resolve; no banned phrases; service-page layouts still sufficiently distinct).
[2026-08-18] update | Glen's copy pass, batch 2: About hero and chain section; placeholder token applied to the newsletter field | Updated: digital-home/frontend-v2/src/about.njk, src/_includes/footer.njk
About hero secondary removed. The "Why" anchor link is gone and the single action is now "Book a call with Glen", matching Home and the nine service pages. The id="why" section it pointed at is unchanged and still reachable by scroll.
"Every position in the chain" rewritten whole. Glen's criticism: "way too granular. People do not need to know I was in client meetings, it is not a flex. Needs rewriting as a whole to be more vague. It should be one claim per role." The section was a compressed CV: each of the four roles carried a comma-strung list of accomplishments (standard numbers, a facility built, a job title, client meetings). Each role now carries exactly one sentence, and the sentence states what the role lets Glen see rather than what he achieved in it, which is the part a PPE brand reading the page can use.
The H2 changed from "Every position in the chain." to "Four positions before Trace." The old headline was a completeness claim, and Glen had already corrected the equivalent line on Home on the grounds that he has held other PPE roles (including B2C sales) that are not relevant here. The page's meta description carried the same "every position in the PPE chain" claim and was aligned for the same reason. The lede was kept (it is the only line saying why the section matters) with "PPE compliance" trimmed from its opening, since the H2 no longer needs it repeated. The fourth role label "Managed the commercial consequence." became "Handled the commercial side.": duller and truer, since he coordinated the work rather than owning the consequence.
Drafted by an Opus agent against the voice guide, banned-words canon and origin story; two options were produced and the reader-value option shipped over the flatter CV-compression option. That draft opened all four claims with "He knows", which Glen rejected on sight as repetition (the drafting agent had flagged the anaphora as a risk and it was shipped anyway). The four claims now take four different sentence shapes and none names the knowing: "A test result is never an abstraction to him." / "How a test house reaches its decisions is not a mystery." / "A weak technical file shows itself faster than brands expect." / "He has watched projects stall between a brand, a test house and a certification body."
Newsletter placeholder moved to --text-placeholder (Glen: "font colour also needs reducing in the subscription placeholder box too"), so both placeholder fields on the site now share the one token.
npm run check and npm run check:slop pass.
[2026-08-18] update | About chain section redesigned via impeccable: bare list becomes the page's signature station rail | Updated: digital-home/frontend-v2/src/about.njk, DESIGN.md
Glen stopped the copy sweep to call the "Four positions before Trace." section "seriously weak in design" and asked for /impeccable. Noted at the time: CLAUDE.md records Impeccable as not part of the redesign process (settled 2026-08-17); Glen's explicit request was treated as his override for this section. Routed as bolder (a refinement inside the committed world) rather than new-work, since the visual world is settled and only this section was named.
The defect. The section had no device at all: an unstyled ul of inline spans where the role and the claim were both --text-lede-size and differed only by colour, so there was no hierarchy, no structure and nothing carrying the meaning. It was the one section on the page that opted out of every strong move the system owns, which is the standard reason a section reads flat.
The fix. The four positions are a real sequence arriving at one endpoint, and the site already owns a grammar for that (the hero route schematic: hairline rules, outline dots, a filled dot for the end state). Rather than clone .ph-route, which would break the one-signature-device-per-page rule, the same vocabulary was rebuilt vertically and at content scale as About's own device: a hairline spine with a 9px outline dot per position, the role in the display face at title size, the claim beneath at body size in --text-secondary, and a fifth filled --text-primary node labelled "Trace." as the arrival. The dots carry a --ground fill and sit above the spine, so the rail needs no per-item length arithmetic. The list was also changed from ul to ol, since the progression is chronological.
One word of new copy: the terminal node reads "Trace." That is a visual restatement of the section heading rather than a new claim, but it is an addition and is flagged to Glen.
No motion was added: the founder figure's glitch is this page's sanctioned motion moment and DESIGN.md bars competing entrances around it.
Verified: built output measured at desktop and 375px (spine and all five dots share one x, no horizontal overflow, claims wrap to 2 to 3 lines on mobile), both themes resolve correctly from tokens (light: white dot fill on --hairline-strong border, ink terminal node; dark: the same roles inverted), type hierarchy now steps 19px display over 16px body where it was 19px flat, and the claim colour holds 7.6:1 on the dark ground. The impeccable detector returns clean on the file. npm run check and npm run check:slop pass. Not visually confirmed: the browser pane will not composite in this session, so screenshots are unavailable and no one has looked at the rendered section.
Recorded in DESIGN.md as an About-only pattern, with the old label-plus-sentence list marked never-resurrect.
[2026-08-18] update | Route Finder "Budget is about to move" section: copy tightened and body weight raised | Updated: digital-home/frontend-v2/src/services/route-finder.njk
Glen's instruction: tighten the two body paragraphs by removing throat-clearing, and give the body more visual weight so it does not float weakly between the two strong statements around it. Glen's own six-step editorial pass (the "elon loop": delete first, first-principles claim check, peer test, specificity, corporate-residue scan, final pressure test) was applied to the copy.
Copy. Paragraph one dropped from 31 words to 27: "Most teams reach this point knowing" lost its throat-clearing ("reach this point"), "the correct order of testing" lost the redundant "correct", "which evidence is needed" tightened to "the evidence it needs", and "where the material risks sit" to "where the material risk sits". Paragraph two dropped from 26 to 25 and became more active: "end up tested" to "get tested", "late for the season they were built for" to "miss the season they were built for". Both claims are unchanged; only the words carrying no unique meaning were removed.
Weight. The diagnosis was that the block sat at 1rem in --text-secondary between a 40px display headline and a --text-primary answer line, so it read as filler between two statements rather than as the argument. It now carries --text-lede-size (19px) with a 60ch cap, measured at 67 characters on desktop, which is inside the 65 to 75 character band the craft floor sets and which the old 56ch cap sat below. Colour deliberately stays --text-secondary: the answer line is the same 19px but in primary ink at a 34ch measure and returning to the left margin, so it still reads as the resolution rather than more of the same. Paragraph gap went from 1rem to 1.125rem for the larger size.
Verified: measured at desktop (headline 40px ink, body 19px secondary at 67ch/697px, answer 19px ink at 407px) and at 375px (no overflow, both paragraphs five lines, body and answer both at the 335px container width). The impeccable detector returns clean on the file; npm run check and npm run check:slop pass. Not visually confirmed: the browser pane still will not composite, so no screenshot was taken.
[2026-08-18] update | Route Finder pull-quote replaced; second situation paragraph reverted to Glen's wording | Updated: digital-home/frontend-v2/src/services/route-finder.njk, brand-wiki/drafts/founder-pull-quote-candidates.md
Pull-quote replaced. "You cannot rely on the test house to give you this information. It needs to be independent." became "A test house has no obligation to correct a wrong submission. The advice has to be independent." Glen dictated the substance ("Test houses have no obligation to correct wrong submissions. Advice should be independent") and asked for it in that direction rather than word for word, so it was set to spoken cadence to match the pull-quote pattern. The new line names the mechanism, which the retired line did not: independence now reads as a consequence of the test house having no duty to correct anything, rather than as an assertion on its own.
Provenance recorded rather than left implicit. DESIGN.md requires pull-quotes to be shortlist-approved verbatim founder speech and never paraphrase; this line is Glen-authored during the copy pass rather than drawn from an interview transcript, so drafts/founder-pull-quote-candidates.md now carries it as the live Route Finder quote with that source noted, and the superseded candidate is marked retired from the page but kept in the shortlist.
Second situation paragraph reverted to Glen's preferred wording: "Committing budget in that position is how products end up tested against the wrong standard, submitted with gaps, or miss the season they were built for." This keeps the "miss the season" change from earlier today and restores "end up tested" over the "get tested" tightening, which Glen did not want.
npm run check and npm run check:slop pass.
[2026-08-18] update | Route Finder situation section left-aligned; step-in indent removed | Updated: digital-home/frontend-v2/src/services/route-finder.njk, DESIGN.md
Glen: "align them left so it sits under the title." The two situation paragraphs were indented into a right-hand column on viewports above 56rem while the headline and answer held the left margin. That desktop grid is removed, so the headline, both paragraphs and the answer line now share one left edge and the section reads as a single left-aligned stack with widths stepping down (measured at 1902px: all three at 418px left; widths 1056, 719 and 407; body measure about 69 characters, still inside the 65 to 75 band; no horizontal overflow).
This retires the "statement / step-in / resolve-line" silhouette that was built for this page on 2026-08-17, so DESIGN.md's page-specific silhouette list was updated rather than left describing a shape that no longer ships. It also resolves the open flag from polish wave 3, which asked whether Route Finder and Technical Ownership should diverge given both had converged on sibling step-in shapes: Technical Ownership keeps the step-in, Route Finder no longer has one.
Impeccable detector clean; npm run check and npm run check:slop pass. Not visually confirmed (the browser pane will not composite in this session).
[2026-08-18] update | Route Finder "Five working days" section run through Glen's editorial loop | Updated: digital-home/frontend-v2/src/services/route-finder.njk, brand-wiki/backlog.md
Glen: "apply elon loop to Five working days. section." His six-step pass was applied to the section intro and all seven deliverable bodies.
Intro dropped from 44 words to 33, in two passes. The first pass was too timid and Glen challenged it; a second cut followed. "a short product intake" lost "short" (a reassurance hedge doing no work), and "the product, its materials and claims" lost "the product," which the phrase "product intake" already carries. On the second pass "Everything below" lost "below" (spatial throat-clearing pointing at a grid the reader can already see) and "the day that intake is agreed" became "the day it is agreed", since "that intake" is a clumsy back-reference where a pronoun does the same work. Three things were deliberately kept: "specific to your product" is a real differentiator (Services records that competitors give general PPE-requirements briefings without mapping the route to the actual product), "whatever evidence you already hold" lowers the effort of engaging per the voice guide, and the sentence stating that the five days start at intake agreement is an honest mechanism most consultancies leave vague.
The seven bodies lost filler and abstraction: "Where the product actually stands today" lost "actually"; "The product family and variants as they will be treated by the route" became "The family and variants, and how the route will treat them"; "documentation work" lost "work"; "where third-party costs will arise" became "arise"; "what already counts as usable evidence" lost "usable", which "counts as" already implies; "The things that could move the route, named before they do" became "What could move the route, named before it does"; and "The one decision the review points to, so the team can act on it" lost its motivational tail, since the sentence carries the point without it.
The seven titles were deliberately NOT touched, and this is the notable judgement in the pass. They are canon, quoted verbatim from the Route Finder deliverable line in Offer Architecture. Two of them ("Product understanding", "Cost and dependency view") are exactly the abstract-noun shape step 4 of the loop exists to kill, but renaming them on the public page alone would put the site out of step with the offer definition and the playbooks. Logged in backlog.md as an offer-canon decision for Glen rather than actioned as a page edit.
Impeccable detector clean; npm run check and npm run check:slop pass.
[2026-08-18] update | Sitewide voice audit + editorial pass run by 13 parallel agents | Updated: 20 files across digital-home/frontend-v2/src/, brand-wiki/wiki/voice/editorial-pass.md (new)
Glen's instruction: assign agents to check every page for banned words and voice-guide breaches, then run his editorial loop per page to remove filler. He supplied a revised, PPE-specific version of the loop.
The pass is now canon. Written to wiki/voice/editorial-pass.md (new article) so all agents read one identical standard instead of thirteen paraphrases of it, and so it outlives this session. It records both observed failure modes: timidity (removing only the obvious filler) and anaphora (rewriting list items to a shared opening).
Fan-out. Thirteen agents, one scope each, editing their own files so there were no write conflicts. Opus on the ten argumentative pages (Home, About, Methods, Services index, the six service pages), Sonnet on the session trio, the utility pages and the shared furniture. Three zones were made report-only rather than agent-editable, because they repeat across pages and thirteen independent rewrites would have made them diverge: each page's hero, the standard AI block, and the closing CTA.
One violation was fixed centrally. "Read our AI policy" appeared on ten pages; four agents independently flagged "our" as the business-voice possessive the I/Trace/we rule bans. Now "Read the AI policy" everywhere. No instance of "our" remains in visible copy sitewide.
What the agents changed is recorded per page in the working tree diff rather than repeated here. The recurring finds were: capability abstraction standing in for mechanism ("builds capability", "the working middle", "need consistent attention", "priority technical support"), throat-clearing openers and back-references, self-praise inside boundary statements, and repeated list-item constructions.
A build failure seen mid-sweep was transient, not a regression. npm run check runs clean then a full build while eleventy --serve is also writing, so the link checker briefly read a half-copied assets folder and reported the stylesheets missing from one field-note page. Clean on re-run. Worth knowing before someone debugs it: do not trust a single failing check while the dev server is running.
Verified after the sweep: npm run check and npm run check:slop pass, the impeccable detector returns clean across all of src/, and a banned-phrase grep finds no residue terms. Not visually confirmed: the browser pane will not composite in this session.
Open decisions raised by the agents are in backlog.md under the 2026-08-18 sweep entry; none were actioned unilaterally.
[2026-08-18] update | Open decisions from the agent sweep actioned on Glen's instruction | Updated: services.njk, three session pages, home/final-cta.njk, technical-ownership.njk, range-review.njk, issue-support.njk, systems-and-ai-stance.md, offer-architecture.md
Glen: "make the changes." Applied the recommendations from the sweep report. One item was deliberately held (see below).
Self-qualification (voice-guide rule 8). Scope turned out smaller than the sweep suggested: only Route Finder (already fixed) and the three session pages carry a who-it-is-for block, and the session ones are prose rather than a menu. The Services hero was the real breach, since rule 8 names that page specifically: "Where you start depends on the position you are already in" handed the routing job to the visitor and is now "You do not need to work out which one applies." Glen's "essential toolkit" phrase is kept. The three session who-paragraphs lost their self-qualifying constructions ("anyone who needs...", "teams ... who need to understand ...") and now simply state who the session is for.
Home closing bookend. "We coordinate the work so your PPE enters the market safely and stays there" broke the I/Trace/we rule and had also stopped bookending anything, because the hero changed to "PPE compliance, done properly." without the close following. Now "PPE compliance, done properly. So the product enters the market, and stays there." The in-file comment explaining the bookend was corrected too, since it asserted the line matched the hero verbatim.
Technical Ownership: "response times" reverted to "response expectations." The sweep agent had strengthened it, but a written response-time commitment could not be verified in canon for the Advisory level, and asserting one publicly is a contractual claim. "There is no Trace portal to log into" was kept: Modern Compliance supports it and it is the sharpest mechanism on that section.
Three canon facts added that the pages were missing. Range Review now states the product-identity boundary (where the documentation cannot prove two records are the same product, it is marked uncertain and referred back, not assumed from a name) and the five-year rule (test evidence older than five years is flagged for replacement before a new certification application, unless the certification body accepts it). Issue Support's boundary paragraph now also states that Trace does not decide whether a recall is legally required, which is canon in Ppe Enforcement And Recall Playbook and was the strongest boundary line missing from that page.
A banned term was introduced and caught in the same pass. The first draft of the Range Review identity line used "paperwork", which Banned Words prohibits in favour of "documentation". Caught by the post-edit grep, not by review. Worth noting that the scan is what caught it: writing new copy is exactly when banned terms re-enter.
Two canon articles corrected rather than the site. The earlier recommendation to "fix the wiki" was reframed on closer reading: the wiki's six brains are not wrong, they are internal architecture, and the site's single "the Brand system" is Glen's settled public name. What was missing was the rule connecting them, so Systems And Ai Stance now carries a "Public naming: one system, not six brains" section stating that the brains are never named individually in public copy and that the site deliberately says less than the article. Similarly, Offer Architecture now records the six public card labels as the card-level expansion of the four canon pathway stages, with the mapping table, rather than treating Home's labels as a divergence: three services share "Regain control" and identical labels on adjacent cards read as duplication, which is why Glen approved the six on 2026-08-17.
HELD, not actioned: the person register. Whether the site moves from third-person Trace/Glen to first-person "I" is the one decision with no safe default. It is every page or none, it changes the character of the whole site, and it was flagged by three agents independently. Glen's "make the changes" was read as covering the recommendations, and no recommendation was offered on this one. It stays open in backlog.md.
The two new Certification Project claims ("The documents are issued in your name, not Trace's" and "A test house owes you a test report. A certification body owes you a decision.") remain live on the page as the agent left them; they need a sign-off read rather than an edit, so no action was taken.
Verified: npm run check and npm run check:slop pass, the impeccable detector returns clean across all of src/, and a banned-term and person scan finds no residue outside a Nunjucks comment. Not visually confirmed: the browser pane will not composite in this session.
[2026-08-18] update | About founder paragraph reworked: the leaving-a-job origin line removed | Updated: digital-home/frontend-v2/src/about.njk
Glen: "do not say i left a job for this." The paragraph read "Glen left a secure salaried role to build this, on the view that brands hitting these problems deserve someone independent of the test house and the certifier. Anything in the route that runs slower than it needs to gets rebuilt rather than tolerated."
Two problems beyond the instruction. The personal-sacrifice framing is self-mythologising and sits against the restrained Core Direction, and the independence claim in the same sentence was already made in full by the "Independence is the point" section directly above it, so the paragraph was repeating the page's own argument.
The surviving content was the operating stance, which is real and unstated elsewhere, so the paragraph was rebuilt around it: "Anything in the route slower than it needs to be gets rebuilt rather than tolerated. That is where the systems came from: the repeatable parts get handled once, so the time goes on the decisions that need judgement."
That keeps the section doing its job (it sits under "The person doing the work", between what Glen covers and the note that every position is his) and connects the trained-systems stance to a cause without naming the Brand system, which is Methods' job on this site.
npm run check, npm run check:slop and the impeccable detector all pass.
[2026-08-18] update | About hero lede reworked: the four-role recital removed | Updated: digital-home/frontend-v2/src/about.njk
The lede read "Trace is run by Glen Mascall. He has tested PPE, led the test team, assessed the documentation for certification and carried the commercial consequence of all three." Three faults. It was the same compressed-CV recital Glen rejected on the Home founder block earlier today, and it sat directly above the chain rail that now lists all four positions properly, so the page enumerated the career twice in the first screen. It also carried "carried the commercial consequence", which was retired lower down the same page as overclaiming (he coordinated the work rather than owning the consequence).
Now: "Trace is run by Glen Mascall. He has been the person testing the product, and the person deciding whether a submission was good enough." It names two positions as roles held rather than as CV entries, earns the H1 ("Not theory from the outside.") directly, and leaves the chain section below to give the full four without repeating itself. The independence argument was deliberately not used here, since the "Independence is the point" section develops it later and the hero's job is the experience claim.
npm run check, npm run check:slop and the impeccable detector pass.
[2026-08-18] ingest + update | Glen's certification-AI brain dump ingested; Certification Project page reworked to match | New: raw/founder-brain-dump-certification-ai-documentation-2026-08-18.md | Updated: certification-project.njk, systems-and-ai-stance.md, drafts/founder-pull-quote-candidates.md
Glen judged the Certification Project AI section "not entirely accurate" and supplied a brain dump explaining what the systems actually do. Saved verbatim to raw/ first, per the immutability rule, then mined into canon and into the page.
What the brain dump establishes. The Evidence & Documentation brain does not fill in a stock technical file; it generates the documentation set for the specific certification body, product and route, because the requirement genuinely differs by recipient. Two bodies want different documents and structure; two assessors inside one body can want different things; some bodies accept test reports only from their own organisation, which has to be checked before testing is booked. Files look conventional, but layout, structure and contents are shaped to the recipient. Every assessor comment is taken back in, so the next set accounts for it and comment volume on comparable submissions falls over time. Glen signs the technical file and the signature means he has checked it. Follow-up with test houses and certification bodies runs on scheduled check-ins, and the weekly written status is drawn from live project data rather than composed by hand. Systems And Ai Stance now carries all of this as a new section.
One point was deliberately held back from public copy. Glen noted that a delivered technical file is the client's to keep, edit and reuse, but that their copy does not keep improving the way Trace's system does. It is true and it is a real asymmetry, but on a public page it reads as lock-in rather than as capability, so it was recorded in canon and flagged rather than published.
Page changes. The AI section was rewritten around the above, keeping the standard block anatomy and taking a second paragraph, since one could not carry it. New headline: "Built for the body reading it. Signed by the person responsible." The four movements were generalised on Glen's instruction: movement 01 no longer itemises what has to line up, movement 02 no longer lists protector references and material names (it now says a complete information set goes to the test house first time, built from knowing what they usually have to ask for, keeping testing and documentation in step), and movement 03 was reframed so assessor comments feed the system rather than merely being recorded. "The documents are issued in your name, not Trace's" was removed from movement 04 on Glen's instruction; it had been added by the sweep agent earlier today and was awaiting sign-off. The Documentation-only cue became "Technical file, DoC, IFU, labels."
Pull-quote extended by Glen to "Certification bodies owe you nothing. They do not have to explain a finding in any detail, and often they will not." Provenance recorded in the candidates file alongside the original short form.
Layout: the "So the coordination falls to you" paragraph stepped into the right column on desktop and now holds the left column under the paragraph above it, matching the same call Glen made on Route Finder earlier today.
npm run check, npm run check:slop and the impeccable detector pass; no em dashes in the file.
[2026-08-18] update | Certification Project: AI footnote cut and reduced, founder quote moved into the argument section | Updated: digital-home/frontend-v2/src/services/certification-project.njk, DESIGN.md
Glen, working from a screenshot of the live page.
Footnote shortened and the systems-boundary sentence removed on his instruction. "Systems accelerate expert judgement. They do not issue documents, decide outcomes or speak for Trace. Independent testing and certification decisions stay with the test house and certification body, and their fees are separate, approved in writing, at cost." is now "Systems accelerate expert judgement. Testing and certification decisions stay with the test house and certification body. Their fees are separate, approved in writing, at cost." 44 words to 25. The note and its two links also drop a type step, from --text-small-size to --text-label-size (14px to 13px).
That sizing is PAGE-SCOPED, deliberately. .ai-links is a shared component used by all ten AI blocks, so the smaller size was scoped to this page's aside rather than applied globally. The other nine now differ by one type step until Glen says to sweep them. Flagged rather than swept, because a shared component that differs on one page is worse than either consistent state.
Layout: the quote joined the argument. Glen asked whether the two sections could fit together better, suggesting the quote move higher and right. The void was self-inflicted: moving the second paragraph to the left column earlier in the session emptied the right half of cp-why, leaving the standalone quote-beat marooned below a half-empty section. The quote now sits in cp-why's right column. The headline spans both columns on row one; the argument and the quote share row two, so the quote starts level with the first paragraph without any magic offsets. The standalone quote-beat section was removed from this page.
This is the one exception to the sitewide standalone-quote-beat pattern and is recorded as such in DESIGN.md. The .pull-quote grammar itself is untouched.
Verified in the built page: headline spans 645px across both columns; body and quote both start at y=869 (level), at x=418 and x=1019; section height 630px with no empty half; note renders at 13px and both links at 13px; the standalone quote-beat is gone; no horizontal overflow at desktop or 375px, where the layout stacks and the quote sits 40px under the body. npm run check, npm run check:slop and the impeccable detector all pass. Still not visually confirmed: the browser pane will not composite, so these are measurements, not a look.
[2026-08-18] update | Certification Project AI section: claim softened and run through the editorial loop | Updated: digital-home/frontend-v2/src/services/certification-project.njk
Glen's correction to the opening claim: the original asserted that two certification bodies "do not want the same documentation", which overstates it. It now reads "Two certifications may not use identical documentation, and nor may two assessors inside the same body." The claim is that the requirement can differ, not that it always does, which is what the brain dump actually supports.
The editorial pass then ran over both paragraphs. Cuts: "in front of it" after "the specific body, product and route" (spatial filler); "before anything is booked" became "before testing is booked" (the concrete referent); "Some will only accept" became "Some bodies accept ... only" (says who, and puts the limit on the object); "instead of it being decided by" became "rather than settled by"; "written out by hand" lost "out". "Glen signs the technical file, and the signature means he has checked it" was split into two declaratives, so the signature sentence lands on its own rather than trailing a conjunction.
Both claims survive unchanged in substance: documentation is generated per recipient rather than templated, and Glen's signature is a statement that he checked it.
npm run check, npm run check:slop and the impeccable detector pass.
[2026-08-18] update | Certification Project ways-in cues set as middot data lines | Updated: digital-home/frontend-v2/src/services/certification-project.njk, DESIGN.md
Glen asked whether the words in the two ways-in cue lines could be separated by a symbol. No new pattern was invented: the site already has a middot data line, settled 2026-08-17 for the session hero meta ("Half day · Remote · Individual or group"), so the cues now use the same grammar, with each item capitalised and the terminal full stop dropped.
"Defined scope, responsibility map, weekly written status." is now "Defined scope · Responsibility map · Weekly written status", and "Technical file, DoC, IFU, labels." is now "Technical file · DoC · IFU · Labels". No CSS was needed; the existing pattern is literal entities in a plain paragraph.
Not swept, on purpose. A survey of every other cue on the site found none that should change. The three Technical Ownership level cues ("Decision support. No full range ownership.") are sentences carrying a boundary, and the six Home service-card cues are routing statements ("Where most established ranges start."). Middot-ifying a sentence would turn a statement into a spec list and lose the boundary. DESIGN.md now records the distinction: list-shaped cues take the middot line, sentence-shaped cues stay sentences.
npm run check, npm run check:slop and the impeccable detector pass.
[2026-08-18] update | Route Finder hero lede run through the editorial loop | Updated: digital-home/frontend-v2/src/services/route-finder.njk
34 words to 30. Two cuts, both step 1.
"delivered in five working days" lost "delivered", which carried nothing the preposition did not already carry. "You get the current position, the risks and the next decision, in writing" lost "You get": it is the only transactional opener on the page, it reads as a sales bullet rather than a peer stating a fact, and the sentence is stronger as the bare noun phrase. Now: "A fixed-fee review that maps the testing, certification and documentation route for your PPE product in five working days. The current position, the risks and the next decision, in writing."
Everything else was kept and checked rather than trimmed. "Fixed-fee" is a pricing model, not a price, so it does not breach the no-prices rule and it is a named differentiator in Positioning. "For your PPE product" is the specificity that separates Route Finder from the generic PPE-requirements briefings Services records competitors giving, so it earns its place. "The risks" stays as the hero-level summary of what the deliverables grid calls material risks and assumptions.
Noted, not changed: the hero says "five working days" and the section below is headlined "Five working days. One clear route." The repetition is deliberate reinforcement and the hero is the stronger position for the fact, so it stays in both. The frontmatter description already carries its own wording and needed no sync.
npm run check, npm run check:slop and the impeccable detector pass.
[2026-08-18] ingest | Six AI-usage notes ingested; services and AI-stance canon substantially expanded | New: raw/ai-usage-notes-2026-08-18/ (6 files + provenance) | Updated: wiki/offers/services.md, wiki/frameworks/systems-and-ai-stance.md
Glen supplied a finalised set of AI-usage notes, one per service, each structured as Inputs / System work / Glen's work / Output / Boundary / Learning / Timing / Coverage. Saved verbatim with a provenance note, then mined by two agents working on separate canon articles so they could not conflict.
The headline finding: canon was understating what the services deliver, and the public pages were written from that canon. Route Finder was recorded as a route opinion when it also produces sample requirements, a risk matrix, an evidence review of uploaded documents, historical lead-time estimates and a pre-populated test-house-specific submission package. Range Review was recorded as a current-state review when it also does orphan-product detection, expiry interlinking with downstream retest cost, claim verification against public and marketing statements, a standards-gap overlay, multi-market CE/UKCA consistency checks, DoC public-accessibility checks, a renewal schedule with a six-month submission window, and an optional living digital inventory hand-back. Technical Ownership had no "What it entails" section at all and is in fact a register, certificate calendar with configurable alerts, re-use register, documentation-health overview, vigilance digest, change log and pre-populated renewal hand-off. Team Training's two bookable post-session Q&A hours at no extra charge were recorded nowhere. Certification Project was missing its strongest differentiator: per-body generation and the accumulating comment-cycle learning.
Services and Systems And Ai Stance now carry all of it. The stance article gained Cross-Service Principles, a Learning and Confidentiality section with an explicit retained/never-retained split, and a per-service operating model.
One conflict was ruled on by Glen mid-ingest and is now closed. The interactive training platform: the sources said it runs every delivery with no static version, while canon had recorded it as not yet delivered. Glen: "interactive must be in there. no training will be sold without it being ready." Both articles now state the platform is the delivery model and that Trace does not sell Team Training without it ready. The Team Training hub page had "Interactive" stripped from it earlier the same day by the sweep agent, acting correctly on the old canon; it is restored.
Conflicts left open and filed rather than resolved: whether Advisory-level Technical Ownership gets the register and calendar (the sources say every retainer, the levels say the calendar starts at Oversight); whether Glen reviews each automated status update before it reaches a certification body in Trace's name; the Range Review action vocabulary (keep/fix/pause/remove versus retain/fix/consolidate/pause/remove across three articles); Route Finder's scope boundary now sitting closer to Certification Project than Offer Architecture implies; and the two free Q&A hours, which is a commercial scope term needing Glen's confirmation before it enters offers canon.
Public-copy hazards recorded, none published. All figures. The value comparisons the sources use freely ("replaces months of permanent-staff effort", "days or weeks completed in an hour", "progressive reduction in comment cycles") which are the exact shape Glen removed from Technical Ownership earlier today. The learning model's retention of individual-assessor behaviour patterns, which stated publicly reads as profiling the people who assess client files and is also the most commercially valuable asset described. And Range Review's marketing-claim drift baseline, which publicly can read as monitoring the client rather than serving them.
[2026-08-18] create | Range Review rebuilt as the service-page restructure prototype | New: _includes/rr-register.njk, _includes/facts-row.njk, _includes/responsibility-boundary.njk | Updated: src/services/range-review.njk
Glen's brief: the six service pages "all feel a bit samey". Keep a shared header, hero, facts row, responsibility boundary and booking close; reduce each page to four or five substantial chapters; make one real service artifact the visual centre; remove the founder pull quote from most pages; use AI differently where it materially changes the service instead of repeating a generic panel. Range Review was rebuilt first as the prototype, with Glen's sign-off pending before any sweep.
The diagnosis was measured, not guessed. Every service page ran the same seven-slot skeleton: hero, argument, founder quote, one to three own sections, AI panel, centred close. Five of six were identical in slots one to three and in the last two. The sameness was therefore FRONT-LOADED: the pages were indistinguishable exactly where a visitor forms an impression, and differentiated only after the scroll. The layout-diversity gate passed throughout because it measures the middle sections, which is precisely the part that already differed.
Built by three agents on separate files so nothing collided, then assembled by hand: the register artifact (Opus with the impeccable craft floor), the full page copy against canon and the editorial pass (Opus), and the two new shared components (Sonnet). The hero and the assembly were done in-thread.
New structure: hero, facts row, four chapters (the foundation, the register, what it surfaces, after the review), responsibility boundary, close. Removed: the situation section, the standalone founder quote, the abstract five-verdict strip, and the AI panel.
The artifact is the page. The register section is 1,789px of a 6,431px page, and it argues by being looked at. The orphan product is row 01 and its certificate slot is drawn as a dashed void reading "None linked", the only dashed element on the page, so absence renders as absence. Every row shows two evidence records and then a derived consequence hanging off a drawn elbow, so the conclusion reads as calculated rather than asserted. Every Next action date is exactly six months before that row's certificate expiry, and a footnote states the rule, so the arithmetic is checkable down the column. Severity is carried by order, rule, panel step and type tone only; the accent appears nowhere in it. The specimen is labelled in both a visible document head and a screen-reader caption as generic types and illustrative dates, not a client range.
The AI panel was dissolved, not moved. On this service the analysis IS what the system does, so the systems content now opens "What the review surfaces" as a single line, and the six analysis layers follow. Glen's "use AI differently where it materially changes the service" resolves, on the new canon, to all five services, since every source states there is no non-system version. The fix is therefore never a generic box.
Two new shared components with documented Nunjucks interfaces so the other five pages inherit rather than getting hand-built copies: facts-row.njk (a facts list of label/value pairs) and responsibility-boundary.njk (heading, optional intro, statements). The boundary is set at title weight in primary ink with no muted text and no panel fill, because canon treats a boundary as credibility rather than disclaimer. It replaces Issue Support's paragraph-based version sitewide.
One design ruling made in-thread: the boundary component shipped with a 6px filled square bullet and the agent asked for a ruling. Dropped. On this site a small mark already means "a step in a sequence" (the hero route schematic, the About chain rail), and a boundary is not a sequence, so the square would either borrow that meaning wrongly or add a second unsanctioned glyph. Statements sit on hairlines alone.
The editorial pass then ran over the assembled page, which caught duplication invisible in the parts: the register's two footnotes restated the whole of Chapter 4. The living-index footnote was cut (Chapter 4 owns that claim) and the six-month rule was kept on the artifact, where it makes the column verifiable, and cut from Chapter 4's prose. Also cut: "then" in the hero lede, a circular sentence in the foundation ("that step comes first because everything after it depends on it"), "to match commercial reality", "to your business", and a Deep Product Review panel whose body and cue said the same thing.
Two canon breaches caught before they shipped. The copy agent wrote "The Range Review system", which is the internal per-service brain name and breaks the public naming rule recorded in canon earlier the same day; it is now "the Brand system". And "notified body" was corrected to "certification body" to match the rest of the site.
Verified: npm run check, npm run check:slop and the impeccable detector all pass across the page and all three new components. No accent anywhere in the register, zero box-shadows on the page, exactly one dashed element (the orphan void), both themes resolve correctly from tokens (register on --card #211F1B over #151310 ground in dark, white on white in light), no horizontal overflow at desktop or 375px. Two false alarms were checked and dismissed rather than "fixed": a table row wider than the mobile viewport sits inside the visually-hidden thead and is clipped, and an apparently white dark-mode register was a measurement error, since removing data-theme falls back to the light :root rather than to dark. One real defect was found and fixed: cutting a footnote left an empty paragraph element behind.
Not visually confirmed. The browser pane will not composite in this session, so everything above is measurement. Glen reviews the rendered page before the other five are swept.
[2026-08-18] update | Service hero rebuilt full-bleed with a switchable ground; facts row removed from Range Review | New: _includes/service-hero.njk | Updated: src/services/range-review.njk, DESIGN.md
Glen on the facts-row band under the compact hero: "this bar doesnt work for me, it looks cheap." Then, after it was absorbed into the hero as a vertical rail: "You've added the tacky stuff to the hero instead."
Two separate faults, and the second was the real one. The band failed because a full-bleed strip delimited by hairlines is section grammar on this site, so the eye filed it as a section and the hero lost its ending. But moving it into the hero did not fix it, because the facts themselves were the problem: they restated the hero lede. The lede already says the review comes back with one of five verdicts, a position in the priority order and the evidence behind both, which carries per-product, five verdicts and prioritised register. "Unit of work: Per product" and "Signed by: Glen" were categories invented to fill a row. Step 1 of Glen's own editorial pass settles it: the lede still works without them, so they were never needed.
The general rule, now in DESIGN.md: a facts row earns its place only where a service has hard parameters its lede does not already carry. Route Finder has them (five working days, fixed fee); the session pages have them (half day, remote, individual or group). Range Review has none. The component stays on disk for the pages that can feed it. This corrects Glen's own brief item "keep a shared facts row": it should be available shared, not present everywhere.
The hero is now one shared component (service-hero.njk) used by all six service pages: breadcrumb, two-tone headline, lede, the single yellow CTA, nothing else. Ground switches in one line: paper (full-bleed --surface, currently set), ink (--brand-ink in light as an inversion, lifted --card in dark), or none. Built as three variants deliberately so Glen compares rather than being handed one choice.
This reverses two DESIGN.md entries on Glen's instruction, recorded rather than left silently contradicted. Full-bleed is no longer Home-only, and the compact ph-hero plus separate facts band is superseded on service pages. The no-band-stripes rule is unchanged and still governs mid-page: a hero ground is not a band stripe, which is why paper needs no exemption. Still dead and not resurrected: the contained bone-panel hero card (Glen killed it 2026-08-17; a full-bleed ground is a different thing, a floating panel is not), and the ledger grammar.
Ink handles its own inversion properly: its foregrounds are mixed from the hero's own ground rather than inherited page tokens, and --focus-ring is re-pointed to the hero foreground so keyboard focus survives on the crumb link and the CTA.
Verified: contrast against each hero's own ground clears AA in every combination (lede 6.08:1 to 10.47:1; quiet headline half and breadcrumb 4.71:1 to 6.56:1; solid title 14.95:1 to 17.49:1). No horizontal overflow at 375px in either theme; the headline clamps 34px to 60px without overflowing. npm run check, npm run check:slop and the impeccable detector pass.
Open for Glen: which ground ships. The building agent's own reservation is that paper is a subtle lift off the page ground in dark theme rather than a colour event, while ink reads as a real arrival in both themes. Not visually confirmed by the assistant; the browser pane still will not composite.
[2026-08-19] update | Service-page sweep: five pages rebuilt on the adopted split summary-card hero, Glen live-directing | Updated: src/services/route-finder.njk, certification-project.njk, issue-support.njk, technical-ownership.njk, team-training.njk, range-review.njk | New: _includes/cp-docset.njk, _includes/to-week.njk | Changed: _includes/responsibility-boundary.njk, scripts/screenshot.mjs, DESIGN.md
Five parallel build agents (one page each), coordinator as harsh critic with full-page rendered screenshots before anything reached Glen. Glen live-directed throughout and supplied the summary-card content VERBATIM for Route Finder, Certification Project, Issue Support and Team Training - those cards are his words and are not to be paraphrased. Technical Ownership's card follows his named-owner spec.
Per page: Route Finder - route-map artifact built then KILLED on Glen's order ("remove the map section entirely"); the page carries on the hero card + deliverables grid; "The next decision" deliverable sits on an accent panel (lime ground, ink text) on Glen's order - a new sanctioned non-CTA accent use, recorded in DESIGN.md. Certification Project - documentation-set manifest artifact (tree geometry, not a register clone); Glen removed two manifest note lines ("Issued in your name, not Trace's", "Cross-referenced to the product record...") and the card's Documents row; the assessor-knowledge line was softened to the canon-safe two-assessors form (assessor-profiling hazard). Issue Support - written position/action-plan artifact; boundary carried via the shared include. Team Training - interactive-scenario artifact; two free Q&A hours stayed unpublished (open decision). Technical Ownership - FAILED TWICE by Glen and rebuilt three times: first as a calendar product page (rejected: "a human ownership service that uses a register as one of its tools", the calendar "is not the product"), then still calendar-obsessed with two stacked question-silhouettes (rejected). Final form per Glen: hiring-reality argument ("no ready-made hire for this job"), the three depth levels as the commercial heart placed FIRST, then a Monday-to-Friday additive week visual showing Glen assigned/completing tasks with each level adding to the week, boundary as a full-measure block so it cannot rhyme with the FAQ. Deleted on the way: to-calendar.njk, to-taskview.njk, rf-route-map.njk.
Shared component change: responsibility-boundary.njk dropped its ruled rows (2026-08-19 no-separators rule; the ruled split also read as a second FAQ when adjacent to one). Statements keep title weight and primary ink, separated by space alone.
Range Review (Glen's morning feedback): covers intro replaced with his exact bridge line ("These are the checks the Brand system runs across the whole range at once. Every flag is reviewed by Glen before it reaches you."); his items 2-5 confirmed no-change.
Verification tooling: scripts/screenshot.mjs gained a "full" selector mode - the section-reveal observer eases sections OUT when offscreen, which was blanking everything below the fold in full-page captures. The mode forces .rv visible and shoots fullPage. Every page above was verified by LOOKING at full-page dark renders.
Still on old grammar: the three team-training session pages (.ai-moment boxes intact) - lower priority per the brief, backlog carries the item. range-review-plain.njk uses "paperwork" repeatedly (pre-existing) - flagged for Glen.
[2026-08-23] update | Service ladder brought current from MASTER-BUSINESS-PLAN.md (Trace Launch project): two services added, three renamed, four repriced or restructured, publishing rule reversed | Updated: wiki/offers/services.md, wiki/offers/offer-architecture.md, wiki/offers/which-service-do-i-need.md, wiki/offers/offer-playbooks.md, wiki/index.md
Glen asked for the brand-wiki's service content to be brought up to date so it can drive the current website build, after finding the wiki out of sync with MASTER-BUSINESS-PLAN.md in the separate Trace Launch project. Per the Temporal Weighting rule, the newer source (the master plan, dated 2026-08-23) wins on every conflict below.
Two services added, not previously in the wiki: Free Triage (£0, 15-minute qualification call) and Second Opinion (£395, independent review of a technical file or supplier evidence pack the client didn't produce, credits into Range Review within 60 days). Both are new entries at the top of the pathway ("Get started"), written fresh from the master plan's own description since no wiki or raw source covers either — flagged, not treated as settled founder narrative the way the other six services are.
Three services renamed (old wiki name → current master-plan name, applied throughout offers/): Certification Project → Certification Management; Issue Support → Issue Response; Technical Ownership → Embedded Support. offer-playbooks/ folder and file names on disk were not renamed this pass — only wiki/offers/offer-playbooks.md's table, which now notes the mismatch. Team Training was tightened to Training to match the master plan; this one is minor and worth Glen's quick confirmation it's not just a master-plan shorthand.
Repriced or restructured, not just renamed:
- Route Finder: £395 → £495.
- Range Review: was £150/product with a 10-product minimum (£1,500) → now £500 setup + £150/product, no minimum.
- Certification Management: repeat-client pricing was a flat £1,000-subsequent-product figure → now a 10%-off-list discount (£1,350 on the £1,500 anchor scope). The same 10% was applied to the Documentation-only/Testing-only/Certification-only sub-scopes to keep the internal pricing table consistent, since the master plan only states the discount for the anchor scope — this extrapolation needs Glen's confirmation, not yet a settled fact.
- Issue Response: was priced by issue type (Testing £450, Certification £650, Marketplace £750, Supplier-document £450, Product-change £650, Recall £950) → now priced by severity tier after triage (L1 Contained £495/2 days, L2 Urgent £795/1 day, L3 Critical £1,250/4 hours). The issue-type language is kept as descriptive examples under each tier, not as separate prices. Also new: all issues arrive in writing, no phone route.
- Embedded Support: was three named public tiers (Advisory £750/mo, Oversight £1,500/mo, Operations from £2,500/mo) → now two layers, Watch (£295/mo fixed entry rung) and configured retainers (published "from £750/mo", quoted bespoke through an internal configurator, never a public calculator). Flagged for Glen: whether the old Operations mechanic (one included new-product documentation set, +£500/mo per additional standard product) still applies inside the new configurator, or needs restating.
Publishing rule reversed. offer-architecture.md previously stated "No prices on the public site. No exceptions," reversed from an even earlier state where Route Finder's price was published (confirmed 2026-08-09, reversed 2026-08-12 on Glen's explicit instruction not to give competitors a pricing headstart). MASTER-BUSINESS-PLAN.md states the opposite as current fact: "Every price is public. There is no 'contact us for pricing' anywhere in the model." Treated the master plan as canon per the Temporal Weighting rule and rewrote the Publishing Rule section in offer-architecture.md accordingly. This is flagged as the single biggest reversal in this update — a previously deliberate, explicitly-reasoned decision running the other way. CLAUDE.md's Website Copy Rules still state the old no-prices rule for the old website only (digital-home/frontend/) and were left untouched, since that instruction is explicitly scoped there, not to the model this article describes.
Not touched this pass, still using old names/prices if referenced: wiki/strategy/growth-thesis.md, wiki/strategy/content-strategy.md, wiki/frameworks/delivery-methodology.md, wiki/frameworks/modern-compliance.md, wiki/frameworks/systems-and-ai-stance.md, wiki/identity/positioning.md, and the offer-playbooks/ folder contents themselves (JSON/market-intelligence/prompt-pack files, dated 2026-07-31 to 2026-08-02). These reference the service names in passing rather than stating pricing as their main subject; flagged in backlog.md for a follow-up sweep rather than rewritten speculatively here.
[2026-08-23] update | Old-name sweep completed across every remaining canon article | Updated: wiki/frameworks/systems-and-ai-stance.md, wiki/frameworks/ppe-product-lifecycle-map.md, wiki/strategy/growth-thesis.md, wiki/identity/positioning.md, wiki/frameworks/ppe-evidence-red-flag-library.md, wiki/frameworks/delivery-methodology.md, wiki/frameworks/modern-compliance.md, wiki/strategy/content-strategy.md, wiki/market/competitive-landscape.md, wiki/proof/proof-stack.md, wiki/frameworks/standards-coverage.md, wiki/frameworks/ppe-responsibility-map.md, wiki/frameworks/ppe-enforcement-and-recall-playbook.md, wiki/frameworks/ppe-claims-and-product-information-risk.md, wiki/audience/ppe-buyer-and-enforcement-context.md, wiki/audience/objections.md, backlog.md
Glen asked to finish the job started earlier the same day — every remaining canon article that still referenced Certification Project, Issue Support, Technical Ownership, or Team Training was found and corrected to the current names (Certification Management, Issue Response, Embedded Support, Training). Also renamed the Embedded Support / Intelligence brain itself (was "Technical Ownership / Intelligence brain" in Services and Systems And Ai Stance) for consistency with every other brain being named after its current service — resolves the open backlog item questioning this.
Deliberately not touched, and why: wiki/website/website.md and wiki/website/website-copy.md map the old, still-live site's actual URLs and files (e.g. /certification-project, certification-project.html) — those names are still literally true of the live site until it's rebuilt, so rewriting the map would make it wrong, not right. wiki/log.md itself is history and is never rewritten retroactively. The offer-playbooks/ folder's data files and on-disk folder names remain unrenamed, as already flagged in Offer Playbooks and backlog.md — internal AI-prompt reference material, not business-model canon or public copy.
Full detail on what changed and what's still open (the four questions from the earlier entry today still stand) is in backlog.md.
Also fixed: wiki/index.md still said Modern Compliance "applies across all six services" after the article itself had been updated to eight — caught on review. Bumped source-counts and dates across every row for an article touched today (Positioning, Objections, PPE Buyer & Enforcement Context, Proof Stack, Competitive Landscape, Content Strategy, Growth Thesis, Standards Coverage, Delivery Methodology, PPE Responsibility Map, PPE Evidence Red Flag Library, PPE Enforcement and Recall Playbook, PPE Product Lifecycle Map, PPE Claims and Product Information Risk, Systems and AI Stance) so the index doesn't silently drift from the articles again.
[2026-08-23] update | Content model, voice and public presentation policies brought current from MASTER-BUSINESS-PLAN.md §9–11; internal systems/AI posture/market posture (§5–7) deliberately deferred | Updated: wiki/strategy/content-strategy.md, wiki/strategy/content-pillars.md, wiki/frameworks/signature-frameworks.md, wiki/voice/voice-guide.md, wiki/voice/banned-words.md, wiki/website/website-redesign-direction.md, wiki/identity/positioning.md, wiki/offers/which-service-do-i-need.md, wiki/audience/ppe-buyer-and-enforcement-context.md, wiki/offers/offer-architecture.md, wiki/index.md, backlog.md
Glen confirmed positioning, scope, services and the public-pricing rule (all §1–4 area facts) are already current from the earlier waves today, and asked to also sync content model (§9), voice (§10), and public presentation policies (§11) — but explicitly said internal systems ("Trace Core", §5), AI posture (§6), and market posture (§7) are not necessary this round, with one named exception: the Embedded Support overage guardrails, which were already written into offer-architecture.md and services.md in the first wave today.
Content model (§9): Named the Evidence Chain as the master framework organising all explainer/case-study content in content-strategy.md. Added the first-wave channels (email list, standards explainer library, anonymised case studies, a checklist/scorecard that routes the reader to one named service with its price and a booking link) and the three content rules (every piece ends in a priced-service CTA; warning-heavy content balanced by positive; anonymisation absolute). Named "Field Notes" as the internal name for the article stream.
Content pillars collapsed four to three, to match the master plan's final framework names ("Selling without proof" · "One product, one evidence trail" · "More staff doesn't mean more compliance"). Old pillars 1 ("How the System Actually Works") and 2 ("Avoidable Mistakes") shared verbatim-identical story text in the wiki already — a pre-existing duplication bug — and their points (test-house responsibility, avoidable-mistake timing) are two halves of the same idea, so they were merged into "One product, one evidence trail," keeping both named teaching frameworks ("Your Technical File Is a Passport" and "Testing Is a Snapshot, Not a Status") under the merged pillar. Old pillar 3 ("From Live to Covered") renamed to "Selling without proof"; old pillar 4 ("More Hands, Not More Safety") renamed to "More staff doesn't mean more compliance." This merge is inference from the story-duplication and thematic overlap, not something Glen confirmed directly — flagged in backlog.md.
Voice (§10): Added the master plan's own tone statement (honest, straight to the point, plain, engineer-direct, hint of Glen's warmth; no rhymes, no aphorisms, no balanced-clause slogans; if a line sounds quotable it's probably wrong) to voice-guide.md's Core Direction, alongside the existing Musk/X-style direction rather than replacing it — they don't conflict, and the fuller existing material stays useful. Added the master plan's extended banned-word list (seamless, peace of mind, end-to-end, trusted partner, hassle-free, solutions, leverage, cutting-edge) to both voice-guide.md and banned-words.md. Word-level rules (apparel not gear, documentation not paperwork, test house not lab, PPE products, technical file only for the formal record, no em dashes) were already correct in both files — no change needed there.
Public presentation policies (§11), per Glen's instruction to skip the Signed Hero line and the road-helmets item: Added a new Public Presentation Policies section to website-redesign-direction.md covering the single conversion action (book a call), the price-appears-once placement rule (on the service's own page and at the diagnosis tool's recommendation moment, never in footers/navigation/cards/comparison tables — added as a cross-reference from offer-architecture.md's Publishing Rule too), no phone number anywhere (a short form sits under the booking calendar instead), and the never-public list minus road helmets: negative scope statements, Trace Brain (or any brain name), Tara/succession content, the configurator's internals, and hearing protection as an offer.
Hearing protection removed from public-facing copy, per the never-public rule just above. It was listed as a public "selected PPE category" in positioning.md (both the Core Positioning Statement and the Public-facing scope line), which-service-do-i-need.md's Who Trace Helps, and ppe-buyer-and-enforcement-context.md's primary-audience line — all fixed, each now notes the real internal capability still exists but is never named as a public offer. Deliberately left unchanged: origin-story.md, primary-icp.md, proof-stack.md's competence-record sections, and standards-coverage.md's reference table — these are internal founder-background and competence-record material, not public-offer copy, so the "never public as an offer" rule doesn't obviously reach them. Flagged in backlog.md in case Glen wants a harder line across those too.
Deliberately not touched, per Glen's instruction: wiki/frameworks/systems-and-ai-stance.md's six-brains framework, the "Internal systems" facts, the AI posture facts, and the market posture facts. This is the single largest pending reconciliation in the wiki and is flagged as its own item in backlog.md — not attempted today.
[2026-08-23] update | Reversed: internal systems (Trace Core) and AI posture brought into the wiki after all | Updated: wiki/frameworks/systems-and-ai-stance.md, wiki/offers/services.md, wiki/voice/voice-guide.md, wiki/index.md, backlog.md
Glen corrected the previous entry: Trace Core and AI posture (master plan §5–6) should be in the wiki after all — only market posture (§7) stays out this round.
The core tension: the wiki's existing systems material (systems-and-ai-stance.md, and the "AI / Systems" note under each service in services.md) describes six named, sophisticated AI "brains" — gap analysis, automated documentation generation, learning loops — in the present tense, as if built and running on every engagement. The master plan's actual §5 states the real v1 build is Trace Core: a deterministic product-and-evidence register, no AI in it at all. These two cannot both be "what's true now."
Resolution: current-state facts now lead every affected article, and the six-brain material is kept but explicitly relabelled as future vision rather than deleted:
systems-and-ai-stance.md— new opening sections state the current facts as settled canon: Trace Core (deterministic register, no AI in v1, "Trace Brain" and "the Brand system" both dead names), the retainer configurator, the Cloudflare backend, and the AI posture rules (quiet capability never a headline; an internal working rule that's never published; a signed three-paragraph public AI policy page linked from footer/About/relevant services, never the homepage; the three core promises). Everything below that point is now under a clearly labelled "The Systems Vision (not yet built)" heading — the six-brain detail, the per-service operating model, all of it stays as a design reference but can no longer be read as current fact. The "Public naming" section was rewritten around Trace Core (naming history: Trace Brain → the Brand system → Trace Core) instead of "the Brand system."services.md— one top-of-article caveat added, and all six per-service "AI / Systems:" labels now read "AI / Systems (vision — not built):" so nobody reading a single service section misses the framing.voice-guide.md's Systems/AI Language Rule — rewritten to lead with "AI is a quiet capability, never a headline" and Trace Core's no-AI-in-v1 status; the old "described as trained systems (Route Finder brain, Evidence & Documentation brain...)" framing is now explicitly future-only, not a rule for public copy today.
Judgement call, flagged for Glen: the six-brain material stayed inside the canon articles (relabelled vision) rather than moving to backlog.md's home for unsettled ideas, since it's substantial prior design work worth keeping visible and the Canon Law's "not yet settled → backlog.md" rule reads more naturally for open questions than for a fully-formed future-build design reference. Said explicitly in backlog.md in case Glen wants it moved instead.
Market posture (master plan §7 — the £375 low-cost-competitor read, conflict-of-interest as a founding asset) remains unsynced; not part of this reversal.
[2026-08-23] update | Session 4: home tidy + hero diagnosis widget (frontend-v2). Hero gained the ported decision-tree diagnosis widget (prices stripped, beginner one-line labels, no arrows, focal result panel); home services table cut to two columns and made the single service directory; /services/ page deleted and 301'd to /#services with all internal links repointed; banned words fixed in public copy ("paperwork", "files", "built the file"). Spec: docs/superpowers/specs/2026-08-23-home-tidy-diagnosis-widget-design.md. Full detail: frontend-v2/HANDOVER.md session 4. | Updated: (no wiki articles; site + spec + handover only)
[2026-08-24] update | Embedded Support rebuilt as a task menu; Watch tier removed; Range Review's Deep Product Review tier retired | Updated: wiki/offers/offer-architecture.md, wiki/offers/services.md, wiki/log.md, wiki/backlog.md
Brainstormed with Glen from first principles: nobody, including Glen, could say what "Watch" or "monitoring" actually meant, so the whole Embedded Support model was rebuilt from a plain-language description of what Glen actually does for a retainer client. The £295/month Watch tier is gone. Embedded Support is now a fixed task menu, each task priced individually and summed against a £750/month floor: Technical Q&A (free, unlimited, quick questions only), Second Opinion (this IS the existing £395 Second Opinion service, now also available inside a retainer), New documentation (Glen builds a documentation set from his own templates, the client submits it), Organisation (Glen runs testing/certification submissions directly with test houses, certification bodies and factories, including matters already in progress when the client joins — this absorbed what was going to be a separate "take over a live case" task, since Glen confirmed it's the same thing if Organisation is already on), Forward planning (a half-day session with Glen, bookable once every 3 months while active, chosen over a fixed annual quota because a client could leave after one month), and Range Review (the client nominates products monthly, £150/product). Second Opinion, New documentation, and Organisation are all sized behind the scenes from one client-known fact — how many products the business handles a year — rather than asking the client to predict monthly volume, which Glen flagged as the core flaw in the original "documents/month" framing. The task menu is meant to power a PUBLIC calculator that DOES show a real £ price — this reverses two previously locked rules ("no public prices" and "never a public calculator, internal configurator only") specifically for this feature; the site-wide "no prices" rule is otherwise unchanged.
Two corrections surfaced and were fixed in the same pass, confirmed by Glen as facts rather than open questions: Range Review's £500 setup fee and its separate "Deep Product Review" (£350/product) tier are retired — Range Review is now one flat £150-per-product price, no setup, no minimum. The live frontend-v2 Range Review page still runs the old £500-setup calculator and FAQ copy referencing Deep Product Review; that code fix is still outstanding (see backlog.md).
Still open, not settled, in backlog.md: the actual flat monthly £ price for Second Opinion, New documentation, Organisation, and Forward planning when included in a retainer — only the mechanism (flat fee, sized from products-per-year) is decided, not the numbers. Also open: the internal products-per-year-to-£ conversion formula itself.
Update, same day: both resolved. Band pricing set (Small 1–10 products/yr, Medium 11–30, Large 31+) for Second Opinion (£150/£275/£450), New documentation (£500/£850/£1,300), Organisation (£150/£300/£500), and Forward planning (£150/£200/£250), all per month. New documentation was raised twice on Glen's call before landing here — he judged the first two drafts too low for building a full documentation set from scratch. Full table in offer-architecture.md.
Update, same day, positioning correction: the "core sales comparison, the true cost of hiring" paragraph (added 2026-08-23 from the master business plan, comparing a configured retainer against employing a full-time compliance person at ~£4,700–£5,000/month) is REMOVED from Embedded Support's canon in both offer-architecture.md and services.md. Glen, explicitly: "I am not interested in being half the price of a hire. My experience isn't a 'half price hire'." His value proposition is his judgement and experience, not a cost discount against headcount. Do not reintroduce hire-cost comparisons as a pricing anchor or sales argument for Embedded Support.
Update, same day, New documentation pricing fix: the flat monthly band pricing for New documentation (£500/£850/£1,300) is dropped. Glen flagged it didn't make sense against the real anchor: a standalone Documentation-only set already costs £950 for a new client (£855 repeat-client rate) under Certification Management. New documentation now works like Range Review, direct per-set rather than a hidden flat fee, but keeps a banded per-set rate rather than one flat rate: Small £855/set, Medium £700/set, Large £600/set (Glen's numbers). Range Review remains the only task with no band variation at all, £150/product regardless of size.
[2026-08-26] update | About page's "Selected experience" swapped: head protection out, hearing protection in | Updated: wiki/identity/positioning.md, wiki/website/website-redesign-direction.md, wiki/log.md
Glen's direct instruction: on the live About page's public "Selected experience" line, replace "head protection" with "hearing protection" (also reworded "high-visibility PPE" to "high-visibility garments" to match the page's plain-language style). This reverses the 2026-08-23 never-public rule for hearing protection specifically for this line — hearing protection is now a public "selected experience" category, and head protection moves to internal-only, not currently named as a public category. positioning.md's Core Positioning Statement, Selected PPE categories list, and Public-facing scope line all updated to match; website-redesign-direction.md's Never Public list corrected to drop hearing protection and note the reversal. Per the site-wins rule (CLAUDE.md), the live page was already changed first; this entry brings canon into line with it.
Deliberately left unchanged: origin-story.md, primary-icp.md, proof-stack.md, standards-coverage.md, which-service-do-i-need.md, and ppe-buyer-and-enforcement-context.md — these carry founder-background/competence-record material or other public-offer copy not touched by this instruction, and still list head protection. Flagged here in case Glen wants the swap carried through those too.
[2026-08-27] update | Motorcycle PPE Training page agenda corrected for technical accuracy, four rows not five | Updated: raw/founder-note-motorcycle-training-curriculum-2026-08-27.md (NEW), wiki/offers/services.md (Motorcycle Training bullet), digital-home/frontend/src/services/training/motorcycle.njk, wiki/log.md — UNCOMMITTED
Glen's direct correction, given live in chat against the published page: the five-row agenda misrepresented what the session actually teaches. "Choosing the applicable standards" undersold the real skill — motorcycle PPE has exactly one governing standard per product type (garments EN 17092, gloves EN 13594, protectors the EN 1621 series), so the work is knowing what's inside that one standard: why each test exists, which ones get missed, which class or level applies and when. "Reading the product zone by zone" was flagged as technically wrong; replaced with reading a real product against its own bill of materials to map every material/seam/component to its required test, plus (Glen's follow-up) common design flaws on a technical motorcycle garment, typical fixes and construction considerations — previously absent from the page entirely. "Deciding the order of testing" and "Building a test request as an exercise" merged into one row ("handling testing" is one activity in practice, per Glen): preparing a real test request, deciding the order that avoids delay and cost, and a new failure-handling point — a failed result is not automatically fatal, and the session works a checklist to establish whether it's a genuine failure or whether another route avoids an unnecessary garment change. "Checking whether the evidence matches" left unchanged. Net: five rows to four; the top-of-file comment updated to record why (the five-row shape stays default for foundation.njk/document-workshop.njk). Also strengthened, per Glen ("ensure that is emphasized as its important"): the agenda's method paragraph now leads with "Every scenario is real" and states plainly that nothing is invented or theoretical, before naming the four viewpoints (brand, factory, test house, certification body) participants work each scenario from — this was already a boundary rule in services.md's Training section, just under-emphasised on this specific page. Raw source saved verbatim before mining, per the ingest workflow. standards-coverage.md left as reference-only (no product-type-to-standard mapping added there); flag for Glen if he wants the "one standard per type" framing added as its own canon fact rather than living only inside the Motorcycle Training bullet.
Update, same day, further curriculum detail: Glen added three more corrections against the same page, folded into the same raw source file as Messages 3-6 rather than a new file. (1) The evidence row was renamed "Reading and cross-referencing the evidence" and rewritten: it now covers interpreting a test report the way an assessor does (what it proves, not just that it exists), cross-referencing it against the product, materials and other supporting reports, before the existing compare-with-factory-evidence content; services.md's Motorcycle bullet updated to match ("reframed 2026-08-27 as reading and cross-referencing rather than just matching"). (2) The test-request row's cost language changed from "avoids delay and unnecessary cost" to "keeps testing cost-effective, not just fast", matching Glen's own phrase; same swap made in services.md. (3) Both the agenda intro and the outcome section's "Before" row now name that the session works through "the pitfalls and issues that keep coming back for your team specifically", not just generic recurring questions — this personalisation was already general Training canon (services.md's "How a client-specific session runs" paragraph, client-supplied recurring-issues list) but had not surfaced on the motorcycle page's own copy; no canon change needed there, only the page text. (4) The evidence row gained a closing point, per Glen: knowing when a factory's reassurance is not enough on its own and needs pushing back on, rather than being accepted, echoing the founder line in voice-guide.md ("You cannot rely on a test house to spot it for you") applied here to factories instead; services.md updated with the same addition. (5) Glen pushed back again: row 1 still read as mechanical-tests-only and was missing one of the most commonly missed judgement calls in the industry — what a previous test result can genuinely be reused for across variants or a product change, versus what actually forces a retest. Row 1's gloss widened from "why each test" to "why each requirement... not only the mechanical tests" and gained the reuse-versus-retest sentence; services.md's Motorcycle bullet updated to match. Five rounds of direct correction on one page in one sitting — the lesson for future training-page builds is to ask Glen for the full list of commonly-missed items up front rather than drafting from the general Training canon and iterating gap by gap.
[2026-08-27] update | PPE Document Workshop page brought up to canon parity, undersold outcome fixed | Updated: raw/founder-note-document-workshop-underselling-2026-08-27.md (NEW), digital-home/frontend/src/services/training/document-workshop.njk, wiki/log.md — UNCOMMITTED
Glen's correction ("its underselling us a bit, read the wiki") was initially misfiled by Claude against the motorcycle page mid-conversation; Glen caught it ("doucment workshop that is") and the raw note was moved to its own file rather than left inside the motorcycle one. Unlike the motorcycle rounds above, this was not a canon gap: wiki/offers/services.md's Document Workshop bullet already stated the live-fix-not-just-review model ("updating the set as each one resolves, so it becomes a real, championed, brand-owned record"), the factory-evidence-credibility read, and the "team of submission experts... can challenge a certification comment that is not warranted, because they know their own file inside out" outcome — the live page just was not surfacing any of it. Fixed on the page only, no services.md change needed: hero lede now says the team "fixes each gap live" and "leaves able to challenge a certification body itself" (previously just "traces" and "decides what must change"); the agenda method paragraph gained the "every exercise is real... what went wrong and what was done right" framing already used on the motorcycle page; row 2 renamed "Fixing the pitfalls that keep coming back" (was "Contradictions and gaps") and rewritten around root cause and a fix that actually closes them, not a one-file patch; row 3 renamed "What the factory supplies, and when to challenge a certification body" (was "What the factory is actually supplying") and extended from factory-evidence defensibility to the same judgement applied to a certification body's comment; the outcome h2 changed from "The team can maintain the next set" to "The team becomes its own documentation expert", pulling Glen's own founder-interview line into the visible copy; "You leave with" changed from "worked through live" to "fixed live where it can be". Lesson for future training-page work: check whether a page is underselling BEFORE assuming a canon gap — read services.md's existing bullet first, since the fix may be pulling already-true copy through, not inventing anything new.