2RE03-Design/memory-bank/progress.md

42 KiB
Raw Blame History

Progress - 2RE03 Portfolio Site

What works, what's left, current status, known issues, and decision evolution. Last updated: 2026-10-01.

What Works

  • Memory bank initialized in the standard multi-file form.
  • Source material surveyed and inventoried (see reference-materials.md).
  • Six linked pages built: index, case-studies, work, about, services, contact - plus 10 case study detail pages in case-studies/.
  • Bootstrap 5.3.3 + Inter/Space Grotesk vendored locally (css/, js/, fonts/).
  • 46 images in img/, optimised to WebP: 45 .webp plus printtiresad.png (project art, client-site screenshots, 10 case-study hero backgrounds, 8 homepage collage tiles). img/ is 3.2 MB, down from 20 MB.
  • Web3Forms contact form with required-field + email validation, accessible labels, and AJAX submit with a live status region.
  • Collins-style Case Studies feature: a typographic index with cursor-following hover previews (with a touch/no-JS thumbnail fallback) and per-project detail pages.
  • 6 real client websites added as case studies - Teach Each Other AI, Jensen's Red Barn, Mask Aid Project, 1 Woman's Art and Magic, Sam's Rules, and Victoria Fuller - each with a screenshot and a link to the live site. (Cool Crap From China lives in the portfolio gallery instead.)
  • work.html now has six galleries, including a new App Design category (Mehavior + the "(10+2) x 5" productivity timer app).
  • Verified locally: all pages/assets HTTP 200, HTML tags balance, js/main.js passes node --check, no links into refrence/.
  • Copy pass 1 (2026-09-22, uncommitted): the homepage closing CTA is now a four-question invitation ("Have something that needs making?"), services.html has a Workflow band telling the old workflow -> AI-assisted workflow -> finished result story (including the "without turning the result into generic AI slop" claim), and work.html closes with "Got a weird project? Give it to us."
  • Favicon (2026-09-22, uncommitted): img/favicon.svg (a green rounded tile with the digit 2 as outline paths, so it needs no client font), img/favicon.ico (48/32/16), and img/apple-touch-icon.png (180x180, square and opaque), all declared on the 16 pages with relative paths. Derived from the site's own wordmark font instanced at wght=700.
  • Open Graph / social image (2026-09-22, uncommitted): img/og-image.png (1200x630), a green dot-grid card with the wordmark, the hero line, the domain, and a washed strip of six real work tiles. All 16 pages declare the icons, a canonical URL, the full og:* set and twitter:card, all absolute against https://2re03.com/ (which serves .html URLs).
  • Captioned work galleries (2026-09-22, staged): every one of the 26 work.html figures is a <figure> with a .carousel__caption (piece name + what 2RE03 did, always visible). The user then corrected six of the captions and re-filed two pieces, and the section blurbs were re-voiced to match, so the current state is: the Urban Moto earplug article (writtenearplugs.webp) and the YLEM Journal cover (printylemcover.webp) sit in Words (4 items: Sam's Rules, YLEM Journal, Earplug feature, Napwell quick start guide), Print holds 3 items, all print ads (Loren Kincaid, Macchiarini Metalworks, K.C. Engineering), the App Design sub-lines read "Designed and coded" for (10 + 2) x 5 and "UX and UI" for Mehavior, and each gallery's closing paragraph now describes only what that gallery shows.

Current Status

Stage: Built, verified, committed, and published, and now through a first copy pass (2026-09-22): the homepage closing CTA, a new Workflow band on services.html, and the work.html hook, all out of the four Now briefs in memory-bank/todo.md. On top of that, the work galleries were captioned, those captions were re-worded to the scope the user confirmed, and the section blurbs were re-voiced to match, with the earplug article and the YLEM Journal cover re-filed from Print into Words. That whole batch was committed by the user as 8a7c3ea and uploaded by hand, and the live site was verified from the outside on 2026-09-22 (all four new assets 200 with the right MIME types, all 16 pages serving exactly one og:image, all 26 captions live, 61 asset paths with no 404s), so everything built to date is public. The current work is the sales-funnel redesign: planned in memory-bank/sales-funnel-plan.md with its shape decided (decision 34: one primary offer with a published price band plus a fixed-price diagnostic as the entry step). The offer facts landed on 2026-10-01: The 2RE03 Website Launch (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the Project Clarity Session ($250, credited in full within 30 days) as the entry step, plus the funnel specifics (scheduling link, team voice, no turn-downs, Umami) recorded as decisions 35 and 36. The blocker is therefore cleared, and memory-bank/offer-draft.md has been reconciled against the answers and is ready to draft into pages. The last proof question was settled as none yet (2026-10-01): no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the transformation outcome lines, adding nothing new client-attributable, which leaves deposits/milestones as the only open item before copy ships. services.html is the first funnel page built: the offer (funnel Blocks A and B) landed on 2026-10-01 and is waiting on the user's red pen, while index.html, contact.html, the case-study outcome lines and the measurement work are all untouched. Around it: user sign-off on the live copy, the case-study grid captions, a few caption names that were read off the artwork, and the Content/Polish items in memory-bank/todo.md.

What's Left To Build

The full, current backlog lives in memory-bank/todo.md; this section keeps only the headline items.

  • The sales funnel (memory-bank/sales-funnel-plan.md): the site has no offer anywhere, no price or scope signal, no qualification, proof that isn't outcome-shaped, and no measurable conversion path. Unblocked 2026-10-01: the offer facts are in and memory-bank/offer-draft.md is reconciled, so the copy is ready to draft into services.html, index.html, contact.html and the case studies, then build (in the staged order in the plan).
  • User review/refinement of copy + visual design.
  • Optional real assets: a real 2RE03 logo (the favicon and Open Graph image both landed on 2026-09-22).
  • More/real portfolio items, and captions for the case-study grids (the work.html galleries were captioned on 2026-09-22).

Known Issues / Risks

  • Copy is drafted in company voice and the first pass (2026-09-22: homepage CTA, services Workflow band, work-page hook) is not yet signed off by the user.
  • The favicon and the Open Graph image both exist (2026-09-22), and every page declares the icons plus the full og:*/twitter:* set against https://2re03.com/. Any real 2RE03 logo still does not exist.
  • Deployed and verified live on 2026-09-22 (commit 8a7c3ea): all four icon and social assets return 200 and all 16 pages declare exactly one og:image. Social scrapers may still serve a cached preview of the domain until their caches turn over, so a share preview is worth re-checking later.
  • No IKEHU video is present on this machine, so the possible motion/video section cannot be built until the file or a URL is supplied.
  • Case study hero backgrounds are generated JPEGs; Urban Moto's is low resolution (450px native at its widest).
  • Web3Forms posts to an external endpoint with a public access key in contact.html; live submissions depend on that key/account remaining active.
  • Galleries reuse the reference image set. The work.html galleries carry per-image captions and matching blurbs as of 2026-09-22, but several of those names were read off the artwork itself and still need confirming (Argent, Drinking About..., D.R.I.V.E., 50 Shades of 2048, '78 Williams, 3dabandoned, and the unnamed websinosalescopy "Sales page"). The case-study grids are not captioned at all yet: 9 pages hold a single figure.card-work beside the copy and Urban Moto holds a 3-up grid, and .card-work has no caption style.
  • No flyer, postcard, business card or letterhead artwork exists on this machine (repo and external backup both checked on 2026-09-22), so those formats are capability claims on the service cards and cannot appear in a gallery.
  • Some case studies use names drawn from the source image filenames with generic copy; others (the client sites, plus Urban Moto, Cart, and 1 Woman's Art and Magic) are based on the user's factual notes.

Evolution of Decisions

  • 2026-09-10 - Initialized a single-file memory bank draft.
  • 2026-09-10 - Replaced by the standard multi-file memory bank (this folder); content ported over.
  • Tone anchored on refrence/index.html; no individual attributions; refrence/ marked temporary.
  • 2026-09-10 - Locked the stack (static HTML + vendored Bootstrap), styling (Bootstrap + custom CSS), and brand (2RE03 only, no 2RE Factory), then built the v0 scaffold.
  • 2026-10-01 - Funnel offer answered and draft reconciled (decisions 35-36): one primary offer (The 2RE03 Website Launch) plus the Project Clarity Session entry step, a scheduling link as the secondary path, team voice, no turn-downs, and Umami analytics deferred until the user sets it up. The funnel's blocker is cleared and the copy is ready to draft and build.
  • 2026-10-01 - Published-proof clearances settled as none yet (offer-sheet item 5): no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the transformation outcome lines only, and deposits/milestones (item 9) becomes the only open item before copy ships.

Progress Log

  • 2026-09-10 - Initialized memory bank. Surveyed refrence/ (2 HTML files + 23 images), captured project brief, tone, content model, and open questions. No production files created.

  • 2026-09-10 - Built and verified the v0 static scaffold: five pages, vendored Bootstrap 5.3.3 + Inter/Space Grotesk fonts, css/style.css, js/main.js, and the Web3Forms contact form. All pages/assets return HTTP 200 locally.

  • 2026-09-10 - Rethemed the site to a green palette centered on #2ee666 (crimson/red tokens removed from production CSS/HTML).

  • 2026-09-10 - Deleted the superseded draft .clinerules/memory-bank-oops.md.

  • 2026-09-10 - Added the Case Studies feature (typographic index + 8 detail pages + hover previews), wired into the nav/footer and the homepage.

  • 2026-09-10 - Added 6 real client websites as case studies (5 new detail pages + linked the existing Sam's Rules study to its live site); captured screenshots into img/. Case-study list is now 13 entries.

  • 2026-09-10 - Corrections: renamed the "Kincaid" case study to Urban Moto (print design / art direction for a motorcycle magazine; 4 images: printtiresad, printkincaidad, printmacchiariniad, writtenearplugs) and removed the old page; recast 1 Woman's Art and Magic as a two-book art series for painter Joanna Signer plus the website to sell it.

  • 2026-09-10 - Trimmed the case-study list from 13 to 11: removed Cool Crap From China and Data Vis Art, replaced Coop with Cart (a 3D design proposal), and kept the work in the portfolio (Cool Crap added to the Web gallery; Data Vis Art moved to the Logos gallery).

  • 2026-09-10 - Corrected Mehavior: it was an app, not a website - logo, app interface/button design, and promotional material for an investor pitch. Category updated to "App Design & Identity".

  • 2026-09-10 - work.html: added an App Design category, moved Mehavior into it, and added the "(10+2) x 5" productivity timer app (screenshot from timer.2re.me). Section backgrounds re-alternated.

  • 2026-09-10 - work.html: moved Web Design to the top. Order is now Web Design, Logos, App Design, Print Design, 3D Modeling, Written Work (with the section-background alternation preserved).

  • 2026-09-10 - Renamed the "Written Work" category title to "Editorial" everywhere it appears (work page heading, the homepage/services cards, and the Sam's Rules category label "Editorial & Web").

  • 2026-09-10 - Rebuilt the Selected work (homepage) and all six Work galleries as Collins-style carousels: a native CSS scroll-snap track with rounded, object-fit: cover (cropped) cards, plus js/carousel.js for prev/next buttons, keyboard arrows, and mouse drag-to-scroll (touch swipes work natively).

  • 2026-09-10 - Expanded the Mask Aid Project case study: what we did is now video production, a crowdfunding campaign, copywriting (all the text), and translation from Chinese.

  • 2026-09-10 - work.html Web Design gallery: added snapshots of Jensen's Red Barn and Mask Aid Project. Also re-shot the "(10+2) x 5" timer image as a close-up (composed to fill a 4:3 frame).

  • 2026-09-10 - Homepage copy rewrite: dropped the avocado-hipster tagline for a professional, team-voiced hero; renamed the "What we do" headline to "Web Design Is Only the Beginning". Tone guidance updated in productContext.md.

  • 2026-09-10 - Renamed the "Editorial" category to "Words" (it also covers sales copy and technical writing). Updated work.html heading/caption, the homepage + services cards (now mention sales copy), and the Sam's Rules label ("Words & Web"). Supersedes the earlier "Written Work → Editorial" rename.

  • 2026-09-10 - Homepage: moved Selected work above What we do (and swapped their section backgrounds so the white/soft alternation still holds).

  • 2026-09-10 - Pruned + reordered case studies (now 10): removed Argent; renamed Victoria → Victoria Fuller and Cart → Upscale Food Cart (pages renamed to victoria-fuller.html / upscale-food-cart.html). New order: Mask Aid Project, 1 Woman's Art and Magic, Sam's Rules, Mehavior, Jensen's Red Barn, Upscale Food Cart, Silver Lining, Victoria Fuller, Urban Moto, Teach Each Other AI.

  • 2026-09-10 - Enriched five case studies from the user's notes: Sam's Rules (+ illustrations, downloadable companion content); Jensen's Red Barn (Grandma Dorothy's scrapbook brought online as a slideshow); Silver Lining (the mark helped bring clients to a high-end retreat); Victoria Fuller (a Playboy Bunny - the only one with rights to the Playboy logo); Urban Moto (guest articles; managed photography/editorial/ad submissions; designed custom ads for clients).

  • 2026-09-10 - Jensen's Red Barn: added "Social media setup", removed the "Contact section" bullet. Sam's Rules category changed from "Words & Web" to "Book Design & Web" (both lists + detail page).

  • 2026-09-10 - work.html: moved web50shadesof2048.png from Web Design into App Design (Web Design now 5 items, App Design 3).

  • 2026-09-10 - work.html App Design: replaced site-timer-app.jpg with 2plus5times3.jpg, cropped from 398×820 to a centred 4:3 (398×298) so it fills the card. (site-timer-app.jpg is now unused.)

  • 2026-09-10 - Added the web backend services to the offering: web hosting setup/management, site management & maintenance, and domain/URL sourcing. Covered in services.html (new paragraph + 3 "What's included" bullets) and the homepage Web Design card.

  • 2026-09-10 - Removed all em dashes from the site copy (they read as AI-generated): rewrote ~95 instances across the HTML plus CSS/JS comments and the contact-form success message, using commas, colons, and parentheses. Page titles now use " | ". Cleaned the memory bank too. (Vendored bootstrap.min.css left untouched.)

  • 2026-09-10 - Contact form: made Subject optional (dropped required and its asterisk; the label now reads "Subject (optional)"). Required fields are now Name, Email, and Message.

  • 2026-09-10 - Hero rework (dropped the portrait): the global .hero now uses the green gradient plus a faint dot grid (no photo), and the homepage adds a low-contrast work collage (.hero--collage) of eight thumbnails (img/collage-1..8.jpg, generated at 480x360, ~178KB total). blue_eyes_Torrey.png is now unreferenced in production (still used by refrence/index.html).

  • 2026-09-10 - Each case study hero now uses that project's own image as its background: .hero--image (green overlay, heavier on the left for legibility) with the image set per page via an inline --hero-image custom property. Hero backgrounds generated as optimised JPEGs (img/hero-<slug>.jpg, max 1600px); the transparent logos (Sam's Rules, Silver Lining, Victoria Fuller) were composited onto brand green.

  • 2026-09-10 - Case study hero tweaks: .hero--image gained a --hero-position variable. Mehavior shows the top of its image (the logo) via center top; Victoria Fuller sits at center 10% to show the cursive name near the top; Jensen's Red Barn switched to the wide red-barn-photo.jpg panorama; Urban Moto now uses the middle band of printtiresad.png.

  • 2026-09-10 - Case study images no longer letterbox: .card-work now lets the image define its own frame (width: 100%; height: auto, no fixed 4:3 box and no light-green panel), so there is no space above or below. Added .card-work--frame (4:3 + object-fit: cover) for Urban Moto's mixed-shape grid. Feature-image width/height attributes corrected to real dimensions to avoid layout shift.

  • 2026-09-10 - Repo cleanup before the first commit: removed the temporary refrence/ source folder (19.4 MB) and four superseded images no longer referenced by any page (blue_eyes_Torrey.png; red-barn-photo.jpg, which was the source for hero-jensens-red-barn.jpg; plus site-sams-rules.jpg and site-timer-app.jpg). All five were moved to /home/torrey/2RE03-unused-assets-backup/ rather than hard-deleted. Added a minimal .gitignore (OS/editor cruft only); css/, js/ and fonts/ had no orphans.

  • 2026-09-10 - Version control: git init on branch main, then the first commit (79 files, no refrence/). Remote origin is ssh://git@git.2re.top:22222/2re/2RE03-Design.git (Forgejo, SSH key id_ed25519).

  • 2026-09-10 - Added TODO.md at the repo root as the single human-facing backlog; the memory bank keeps only current priorities and points at it. The site was published by the user, and memory-bank/ + .clinerules/ were confirmed to stay tracked.

  • 2026-09-10 - Optimised every image to WebP: 45 files converted (long side capped at 1600px, -q 82, or -q 90 -alpha_q 100 when transparent) and 97 references repointed across 13 HTML files. img/ went 20 MB -> 3.2 MB. The one exception is printtiresad.png, kept as PNG because WebP made it bigger. Verified: 0 missing references, 0 unreferenced files, all 45 WebP files decode, all pages 200, and the before/after ratio-hint sets are byte-identical.

  • 2026-09-10 - User set a working agreement: no git commit or git push without explicit approval. Recorded in activeContext.md (Working Agreements at the top, plus the decisions log) and techContext.md (Tool Usage Patterns).

  • 2026-09-22 - User set a second working agreement: do not edit files outside the project folder (/home/torrey/Documents/Sites/2RE03). Recorded in activeContext.md (Working Agreements at the top, Recent Changes, and the decisions log), projectbrief.md (Ways of Working rule 8), techContext.md (Tool Usage Patterns), and here. No production files changed.

  • 2026-09-22 - Captions re-worded to the user's read-through, and two pieces re-filed into Words. The user checked the new work.html captions against the archive and corrected the scope on six of them, all of which were worded as though the piece were only a picture: Back That Ass Up is the identity for a political campaign art show (hence the US-flag mark; the sub-line now says "Political art show" and the alt names the campaign), Mehavior was UX and UI, and (10+2) x 5 was designed and coded end to end rather than merely drawn. The three ads - Loren Kincaid, Macchiarini Metalworks, K.C. Engineering - were normalised to "Print ad" (the last had read "Tire advert"), and Sam's Rules of Money became "Book editing and illustrations", which the old "Book cover" hid because the user edited the book and its illustrations. Two further pieces moved from Print to Words, applying the rule that a piece is filed under the category of its deliverable rather than of the paper it landed on: writtenearplugs.webp is captioned "Article, Urban Moto, February 2007" and printylemcover.webp "Editing and cover design", since the user edited the whole magazine including the cover. Print now holds 3 items, all print ads; Words holds 4, ordered book, magazine, article, guide. A grep confirmed nothing outside work.html referenced either moved file, so the two galleries were the only edits. Verified: 26 figures over 26 distinct images with one caption each and no duplicates, exactly two references to the moved files (both now in Words), tags balance and every reference resolves across all 16 pages, no em dashes, and - instead of eyeballing the arrows - the carousels were measured in a headless Chrome eval: Print design gallery is now scrollWidth == clientWidth (1116px) with both arrows disabled, exactly like the 3-item App design gallery, so shortening a gallery to 3 items leaves no dead control, while Words gallery overflows by 292px with only "next" enabled and Logo design gallery by 1360px. The Print and Words bands were also screenshot-checked at 1280px and 390px. Build intermediates lived in .tmp-captions/ inside the repo and were deleted. Uncommitted.

  • 2026-09-22 - User set a code and writing style requirement: soft wrap. No hard wrapping to a column limit in code or in memory-bank writing; lines break only at structural boundaries. Applied going forward only, with no reformat pass over existing files (explicit user instruction). Recorded in activeContext.md (Recent Changes, Important Patterns & Preferences, decisions log), projectbrief.md (Ways of Working rule 9), and techContext.md (new Code Style section).

  • 2026-09-22 - Backlog moved into the memory bank: TODO.md at the repo root became memory-bank/todo.md (lowercase filename), so the backlog now lives alongside the other memory-bank files. Every reference was repointed (activeContext.md Recent Changes / Next Steps / decisions log / Important Patterns, progress.md Current Status + What's Left To Build, techContext.md Deployment + Code Style), and the move was recorded in todo.md's own Done section. No site file referenced TODO.md, so the published site is unaffected. The move is uncommitted (working tree only).

  • 2026-09-22 - Copy pass 1 (the whole Now section of memory-bank/todo.md) implemented and verified, then recorded in todo.md (items moved to Done) and here. index.html: the closing CTA is "Have something that needs making?" plus the three client questions and "Tell us what you're trying to do. We'll figure out what needs to be made.", supported by a one-line .cta-questions li + li rule in css/style.css. services.html: new Workflow band between Process and the closing CTA, three cards (Old workflow / AI-assisted workflow / Finished result) with the middle card dark, carrying the AI-acceleration line. work.html: the closing band line is now "Got a weird project? Give it to us." The briefs' first-person voice was converted to the studio "we" and no em dashes were introduced. Checks run: tag balance on all touched pages (html.parser), em-dash scan, every relative href/src resolves to an existing file, HTTP 200 across all six root pages plus sampled case-study pages/assets, and headless-Chrome screenshots reviewed at 1280px and 390px for the two new sections. Verification screenshots were written to /tmp (outside the repo) and are not part of the project. Uncommitted; no commit or push.

  • 2026-09-22 - Favicon added (first item of the Assets batch). Generated img/favicon.svg, img/favicon.ico (48/32/16) and img/apple-touch-icon.png (180x180), all from the site's own wordmark font: fonts/SpaceGrotesk-latin.woff2 instanced at wght=700 with fontTools.varLib.instancer, glyph outlines through SVGPathPen, rasterized with rsvg-convert and ImageMagick. The mark is a #2ee666 rounded tile with the digit 2 in brand ink, chosen because the full wordmark and even 2RE stop reading at 16 px. Verified: the ink is centred on the tile within half a pixel, the digit occupies ~56% of the tile and stays legible when rasterized at 16 px, all 16 pages declare the three icons with the right relative prefix, tags balance, every reference resolves, and each asset serves HTTP 200 with the expected MIME type. All build intermediates were kept inside the repo in .tmp-favicon/ (never /tmp) and deleted afterwards, so no writes happened outside the project. Recipe recorded in techContext.md -> Icon & Social Assets. Uncommitted.

  • 2026-09-22 - Open Graph / social image added, live domain recorded. Built img/og-image.png (1200x630) with PIL to match the site's hero: the 120 degree green gradient, the 18px ink dot grid, the tracked DESIGN STUDIO eyebrow, the 2RE03 wordmark, the hero line, 2re03.com, and a 130px strip of six real work tiles under a green wash. Fonts came from the same sources as the favicon (Space Grotesk instanced at 700, Inter at 500 and 600), and the layout was tuned against measured ink bands rather than by eye. Then added rel="canonical", the full og:* set (with og:image:width/height/alt) and twitter:card to all 16 pages, reusing each page's own title and description. The user supplied the live URL, https://2re03.com/, and probing it showed the host serves .html URLs (/work 404s, /work.html 200s), which is why canonicals use the .html form with the bare root for the homepage. Verified: exactly one of each of the 11 tags per page, og:url matches each page's canonical, the declared 1200x630 matches the actual file, tags balance, no em dashes, all references resolve, and every page plus the four new assets return HTTP 200 locally. The live site still 404s on the new files because they have not been deployed. Build intermediates lived in .tmp-og/ inside the repo and were deleted. Uncommitted.

  • 2026-09-22 - Work captions, and the earplug move (the last two Content/Polish items in todo.md that needed no new assets). All 26 work.html gallery figures became <figure class="carousel__item"> blocks carrying a .carousel__caption (Name<span>Format</span>) under the .carousel__media frame, styled by two new rules in css/style.css: the name in semibold ink, the format on a muted second line, always visible rather than hover-only so it works on touch. js/carousel.js measures item width and position only, so the step and snap maths are untouched. The caption copy was written from the artwork itself after reviewing a labelled contact sheet of all 26 images (ImageMagick montage), which caught a swap in the source set: writtenearplugs.webp is the Urban Moto earplug feature (page 39, February 2007, headline "BIG EAR vs PLUGUP - Custom Fit EarPlugs", the written piece that gave the file its name) while writtenstructions.webp is the Napwell quick start guide. Per the backlog item, writtenearplugs.webp moved out of the Urban Moto case-study grid into the Print gallery (now 5 items), and that grid went from row-cols-sm-2 to row-cols-sm-3 so its three remaining ads sit in one clean row, with their generic alts made specific (K.C. Engineering, Loren Kincaid, Macchiarini). No caption carries an author byline. Verified: tags balance and every reference resolves across all 16 pages, exactly 26 figures over 26 distinct images with one caption each and no duplicates, headless-Chrome screenshots of the Logos, Print and Words galleries at 1280px and 390px plus the Urban Moto grid, and the local server returned 200 throughout. Build intermediates lived in .tmp-captions/ inside the repo and were deleted. Uncommitted.

  • 2026-09-22 - Brief re-read: the two flagged caption strings settled, and work.html now matches the brief character for character. The user re-sent the caption brief with work.html attached, which confirmed all seven items were already in place (political art show, UX and UI, designed and coded, three print ads, the earplug article and the YLEM Journal cover already re-filed into Words, Sam's Rules as editing plus illustrations) and settled the two strings that had been left open for them: the ads sub-line is written "Print Ad" with a capital A - the user's own rendering, kept verbatim, which makes it the page's only title-case sub-line - and the app is written (10 + 2) x 5 with spaces around the operator. Both were changed in place; nothing else moved, no gallery changed size, and no other page, script, or asset was touched. Re-verified after the edit: 26 figures over 26 distinct images with one caption each and no duplicates, tags balance and every reference resolves across all 16 pages, no em dashes, and the galleries were measured again in a headless Chrome eval rather than assumed - Print design gallery stays scrollWidth == clientWidth with both arrows disabled and Words gallery keeps its 292px overflow with only "next" enabled, which is what the CSS predicts: .carousel__item is flex: 0 0 auto; width: clamp(230px, 78vw, 340px), so caption copy cannot influence item width, the step, or the snap. Uncommitted.

  • 2026-09-22 - Section copy brought in line with the captions, and the last naming questions settled. The pass that closed the gap the caption revision opened. Four work.html blurbs were re-voiced so nothing contradicts the caption above it: the Words intro is now "Editorial, documentation, and sales copy: we write it, we edit it, and we lay it out." (the old line claimed only writing, while YLEM Journal and Sam's Rules are editing work), the App Design blurb says some pieces were "coded end to end" and the rest "built to look real long before they ship" (the old line implied everything stopped at looking real), the Print blurb leads with the ads the gallery actually shows and keeps flyers, postcards, business cards, letterhead and product design as capability rather than as a description of the images, and the Logos intro adds ", and the occasional title slide" so the Dat Art slide in that gallery reads as deliberate. The Dat Art caption became "Presentation for Motion Labs" with a matching alt, since the image is a title slide and not a mark, and "a pretzel stand" became "a food cart" in both work.html and services.html, matching what the render shows (the cart is labelled Gourmet Pasteles and Churros) and the Upscale Food Cart case study. Three questions were settled by the user in the same exchange: YLEM stays in both galleries, the 2plus5times3.webp file name stays as-is with the caption (10 + 2) x 5 treated as authoritative, and the Dat Art piece stays in Logos. Verified: all seven new strings render and all five replaced strings are gone from both files, 26 figures over 26 distinct images with one caption each, tags balance and every reference resolves across all 16 pages, no em dashes, galleries re-measured in headless Chrome (unchanged: Print and App Design overflow=0 with both arrows disabled, Words 292px with only "next" enabled) and screenshot-checked at 1280px and 390px for the Logos, Print and Words bands. The external asset backup was also inventoried, which established that no flyer, postcard, business card or letterhead artwork exists anywhere on this machine. The working tree was then staged with this batch's message pre-filled into .git/COMMIT_EDITMSG; nothing was committed or pushed by Cline.

  • 2026-09-22 - The batch was committed and deployed, and the live site was verified from the outside. The user committed the staged work as 8a7c3ea ("reworked some verbiage and added captions"), pushed it to origin/main, and uploaded the repo root by hand; the working tree is clean and HEAD matches origin/main. Verified live rather than assumed: img/favicon.svg 200 (image/svg+xml, 2.1 KB), img/favicon.ico 200 (15 KB), img/apple-touch-icon.png 200 (3 KB), img/og-image.png 200 (176 KB); all 16 pages return 200, each with exactly one og:image and two rel="icon" links; /work.html serves all 26 captions and the re-voiced blurbs ("The gallery shows the ads", "Presentation for Motion Labs", "(10 + 2) x 5", "and the occasional title slide", "coded end to end"), with zero occurrences of the replaced strings; /services.html serves the Workflow band and the food-cart copy; the homepage serves the new CTA. The new assets and Open Graph card are therefore public for the first time, which closes the Assets batch that had been repo-only since it landed. One caveat recorded: social scrapers may serve a cached preview of the domain until their caches turn over, so a share preview is worth re-checking later.

  • 2026-09-22 - The sales-funnel redesign was planned, and the offer shape was decided. The backlog item "redesign the site as a sales funnel rather than as a design piece" moved from a one-line idea to a plan. Ten leaks were diagnosed in the current site: no offer anywhere, no price or scope signal, no qualification, proof that is not outcome-shaped, a single conversion path, no risk reversal, homepage ordering that fights the sale, unpositioned breadth, a CTA that asks before it gives, and nothing measured. A stage structure (Land -> Recognise -> Believe -> Offer -> Risk reversal -> Convert -> Measure) and a page-by-page draft went into the new memory-bank/sales-funnel-plan.md. Cline recommended one primary offer with a published price band plus a fixed-price diagnostic as the entry step; the user accepted, recorded as decision 34, with packaged engagements and consultative selling deferred rather than rejected. The fill-in-the-blank copy for services.html, index.html and contact.html (four blocks plus a proof-stage table for the 10 case studies) went into the new memory-bank/offer-draft.md, where every gap is a visible [[slot]] and no slot may be filled with an invented fact. No production file was touched: the live site is unchanged and the plan is blocked on the user supplying the offer facts.

  • 2026-10-01 - The offer sheet was answered and the offer draft reconciled, which clears the funnel's blocker. All nine offer-sheet questions in memory-bank/sales-funnel-plan.md came back, plus the follow-up decisions: a scheduling link for the secondary path, team voice ("we") rather than a named individual, the reply-time promise kept, no industries or project types turned down, all pages kept consistent, and Umami analytics to be added later by the user. The settled offer is The 2RE03 Website Launch (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the Project Clarity Session ($250, 60 to 90 minutes, credited in full within 30 days) in front of a 30-minute Project Fit Call. memory-bank/offer-draft.md was reconciled against the answers: the slot table now reads answered, revision rounds moved 3 -> 2, the "Site Assessment" proposal became the Project Clarity Session, the price band and floor were filled in, and the ten [[TODO]] case-study prompts were replaced by the ten transformation outcome lines (honest, because no hard numbers exist). Two items stay open: individual client clearances for published proof, and whether deposits or milestones are stated. No production file was touched; the edits are sales-funnel-plan.md and offer-draft.md, both uncommitted.

  • 2026-10-01 - The last proof question was settled as none yet, so the proof stage can be built without inventing anything. Asked whether any client had agreed to be named, quoted, shown or given a logo, the user answered not yet. The permission rule stands (ask first), and no testimonial, client logo, metric or new identifiable detail goes on any page; the proof stage ships as the named case studies plus the transformation outcome lines only, and the client names the case studies already publish simply stay. A clearance can be added later if one arrives. This leaves deposits/milestones (offer-sheet item 9) as the only open question before the offer copy ships. No production file was touched; the edits are activeContext.md, offer-draft.md, progress.md, sales-funnel-plan.md and todo.md, all uncommitted.

  • 2026-10-01 - services.html was rebuilt around the offer, the first funnel page to ship. The "Web Design" section became The 2RE03 Website Launch (the promise, the six inclusions, three fact pills, what you supply, what you own, Start a project plus Not ready for a project?), and The Project Clarity Session now sits below it as a dark card ($250, 60 to 90 minutes, Book a Clarity Session, credited in full within 30 days). The old web-craft detail (hand-coding, WordPress, hosting, domain, maintenance) was folded into the offer's supporting paragraph instead of being deleted, the capability grid stayed as "Also on the bench", the Process, Workflow and closing CTA bands are untouched, and the page's meta and og:description now name the offer and the price band. New CSS in css/style.css: .pill, .pill--ink, .offer-terms, .eyebrow-cream. Verified the same way as the caption passes: tag balance clean, no em dashes in our files, all references resolve across the 16 pages, and full-page screenshots at 1280px and 390px. index.html, contact.html, the case-study outcome lines, thank-you.html, the scheduling link and the Umami snippet are all still to come, and services.html plus css/style.css are uncommitted and awaiting the user's red pen.

  • 2026-10-01 - The services.html red pen came back and both its edits landed; the same session turned contact.html's subject field into a topic dropdown that sets the email subject. The web-craft paragraph (hand-coding, WordPress, hosting, domain, maintenance) was cut from the offer block rather than kept folded in, so the offer column now runs eyebrow -> h2 -> promise -> three fact pills -> Start a project / Not ready for a project?; the meta and og:description rewrite stayed. In contact.html the free-text Subject (optional) input was replaced by a required <select name="subject"> labelled "What do you want to talk about?", with the options Book a Project Clarity Session, Start a website project, Logo or brand identity, Print design, 3D modeling, Writing, copy, or editing and Something else, a disabled Choose one placeholder, and an invalid-feedback line to match the other required fields. The selected option becomes the Web3Forms email subject line. No JavaScript changed: js/main.js posts new FormData(form) and Web3Forms reads the subject field as the subject line (docs, "Email Subject line"; the field must be name="subject" and may be user-filled rather than hidden). Noted for later: the topic is consumed as the subject, so putting it in the message body too would need a duplicate field, and the field is now required (small friction the user did not explicitly ask for; reverting is dropping required). Verified: tag balance clean on all 16 pages, every reference resolves, no em/en dashes or curly quotes in our files, and headless-Firefox screenshots of contact.html at 1280px and 390px plus services.html at 1280px. Uncommitted (services.html, contact.html, css/style.css); no commit or push.

  • 2026-10-01 - Five funnel answers closed the offer, dropped the scheduling link, and removed a promise the site could not keep. In one exchange the user settled: (1) deposits and milestones are both stated (offer-sheet item 9, the last open offer question), so contact.html's Block D is unblocked and only the deposit percentage and the milestone split are still needed for its payments line; (2) the secondary path is not a booking link - a written enquiry is enough - so the scheduling link is dropped from offer-draft.md, sales-funnel-plan.md and todo.md, and the contact form's Book a Project Clarity Session option is the booking path instead (services.html's Book a Clarity Session button already pointed at contact.html, so nothing needed rewiring); (3) Umami will be self-hosted, so the snippet and the Start a project conversion event stay pending rather than dropped; (4) the topic dropdown's options and phrasing are approved as built; and (5) no email address is published - "just make it contact us directly and use the form". Point 5 changed one production line: js/main.js's submit-failure fallback said "or email us directly", a promise the site could not keep, so it now reads "Something went wrong and your message did not send. Please try again in a moment." That is the only string changed, and js/main.js parses clean under gjs (SpiderMonkey): node turned out not to be installed on this machine, so the node --check wording in older entries no longer applies and gjs is the substitute (documented in techContext.md). Also this session, a reusable screenshot harness was built and tested at .shots/shoot.sh with .shots/trim.py: headless Firefox on a throwaway profile inside the repo (this machine's Firefox is a snap, which cannot use /tmp), one command for any page and width, writing a fold shot plus a full-page shot trimmed to its real height. The two traps it encodes: Firefox captures exactly the --window-size box and does not scroll, so a "full page" shot must be taken tall and trimmed, and --screenshot needs an absolute path (a relative one is written elsewhere, silently, with exit code 0). Fresh shots (a fresh local server on port 8199) confirm the pages render: services.html 1280x1200 fold / 1280x3610 full and 390x844 fold / 390x5792 full, contact.html 1280x1200 / 1280x1564 and 390x844 / 390x1958. Proof permissions, case-study name confirmations, images and outcome numbers remain deferred by the user to a later session. Uncommitted: services.html, contact.html, css/style.css, js/main.js and the memory bank; .shots/ is untracked scratch (now listed in .gitignore).