Household journey and visual audit — September 11, 2026
The hands-on agent walkthrough and screenshot critique are complete. The next priorities are customization recovery, account access/task order, and accurate multi-child printing instructions. Browse batching comes later.
This is agent observation and expert critique, not a study of participating households. Physical printing and a real multi-child inbox receipt remain unobserved. Keep #145 open for those acceptance gaps and live customization recovery. #174's audit deliverables are reviewable in PR #176; implementation is tracked separately.
Evidence and provenance
- Branch
research/145-household-journey, based on main45e335b700069aa20f2cfa917634b7582ca503ff. Public captures usehttps://scribble-works.pages.devand its 39-game catalog. Synthetic accounts use an exact build of this checkout athttp://127.0.0.1:4415. This commit identifies the fixture, not an independently verified deployment revision for every remote service. - Read-only Gmail profile confirmed the requested founder mailbox; Cloudflare account GET and Figma identity checks succeeded. Credentials, authentication links, real child details and inbox screenshots are excluded from this PR and the shared gallery.
- Live public and review-portal sign-in succeeded through the mailbox. No daily delivery was forced, invitation sent, real household setting changed, or review decision recorded. Profile mutations used synthetic local fixtures.
- #144 is published and closed. The website catalog has 39 games; the deployed daily Worker's older 35-game catalog is separately gated through #169 after #150. September 11's observed email predates #150's rollout. Lifecycle nudges remain drafts (#148).
- Local archive:
~/rdco-vault/01-projects/printables-product/audits/2026-09-11-household-journey/. Openindex.htmlfor the filterable gallery andproposal.htmlfor the interactive account/navigation and Browse proposals.manifest.jsonindexes source/state, capture dimensions, paths and hashes;geometry.jsonrecords DOM measurements;emails/evidence.jsonrecords packaging results. Bulk artifacts stay outside Git under the repository's capture policy. - Capture widths: 1440 and 390; additional 320/768 checks on Browse/account. Chrome full-page captures replaced early in-app stitched images. Late-loading content and debounced search were checked before final evidence capture. Viewport-only interaction captures are labeled separately. These are responsive browsers, not physical devices.
Journey exercised
| Step | Result | Evidence and boundary |
|---|---|---|
| Sign in | Live request, email arrival, confirmation tap and account access succeeded. Empty email rejected. Used link produced expired-link recovery. | signin-*; tokens omitted. |
| Child profile | Read real account; exercised empty/one/two-child and Free/Plus states locally. Blank name rejected; synthetic Nova saved as age 5. | account-*, child-*; real profiles unchanged. |
| Select | 39 games. Ages 9–10 returned 14 eligible entries, including intentional stretch matches. Opening a game and returning with Back preserved filter and scroll. Empty search survived reload. | browse-*, filters-mobile; 14 is not the primary-band count. |
| Customize | One live synthetic Crack the Code request failed: “The pencil broke. The original still prints.” | customize-result-mobile; no successful result stored. #177 owns diagnosis. |
| Download/print | Original endpoint returned a valid one-page US Letter PDF, 157,546 bytes, visually inspected. Local six-game tray reached “Done — seven pages, headed for your printer.” Synthetic household produced two valid seven-page PDFs. | playset-download-mobile, emails/*.pdf. Download-event listener timed out before UI completion; PDF generation independently verified. No physical print claim. |
| Delivery | Located live controls; local save confirmed 7:00 am Eastern. | delivery-saved-mobile; live preferences untouched. |
| Scheduled email | Existing Sept 11 message in real Gmail Inbox; desktop rendering, plain text, HTML and attachment inspected. | Timestamp 10:30:50 UTC, before #150 rollout; one child only. Private screenshot excluded. |
| Feedback | Email has hello@scribbleworks.co; account/Privacy expose contact. Main site navigation/footer lack an explicitly named feedback destination. | Discoverability judgment; no feedback sent. |
| Review portal | Live sign-in, queue/source/search, exact proof, decision controls and help tooltip inspected. Filtered three Crack the Code versions. | review-*; no decisions changed. Published/pending reconciliation remains #142; pending count was accurate. |
Top three and scoped issues
- Customization completion and recovery — #177, now. A live primary task failed. Provide a useful recovery message and direct original-download action. Read-only metadata showed two unresolved reservations totaling 123,923 micros near the attempt and zero stored successes for the slug after the walkthrough began. This is correlation, not a proven cause or settled provider charge. Diagnose before another paid attempt.
- Visible account data and task order — #178 and #179, next. Synthetic 503s hide supported sections without retry. Healthy accounts put maintenance and artwork before children/delivery. Separate functional recovery from the reviewed layout implementation.
- Reliable multi-child print instructions — #181, next. Mixed-length sets are described using only the first child's page count; normalized nicknames collide in filenames. Aggregate payload qualification is separately scoped in #182.
#180 fixes another verified mismatch: Crack the Code says “same skill, same age” while recommending ages 3–4 and 5–6. relatedGames() places all skill matches before age matches; its heading promises an intersection it does not enforce.
Fresh screenshot critique
After interacting, the same agent made a fresh screenshot review. This is not an independent reviewer or human household study; no additional paid critic was invoked. Findings were checked against rendered state and source. A suspected PDF footer crop was rejected after full-page inspection; review counts were not misclassified as defective.
Rubric: primary task/action; information order; type, spacing and visual contrast; purposeful imagery; responsive composition; labels/keyboard/recovery; consistency between promise and result. High blocks or obscures a core task; medium adds confusion/effort; low is polish. Contrast comments are visual judgment, not a complete computed accessibility audit.
| Screen/template and captures | Critique and recommendation | Severity / evidence type |
|---|---|---|
Home, home-* |
Playful materials and six-slot metaphor work. The first screen asks for a brief before showing a completed example; blank slots cost mobile height. Show a compact “six games + a parent page” example and reduce the empty illustration on narrow screens. | Medium, expert |
Browse, browse-*, filters |
Actual page thumbnails, readable titles and clear Add controls work. The edge tray competes with mobile search. Page heights: 9,988px at 390, 5,393px at 1440, 13,958px at 768. Recheck tablet density and preserve contextual filter counts. | Medium, measured + expert |
Game/customization, game-*, customize-* |
Strong preview; original download sits below substantial mobile content. Put an original-PDF action near the title and in error recovery. Correct related-game promises. | High failure / medium hierarchy |
Planner/shopper, planner-*, shopper-* |
Same compact planner template with editable brief/chips. Standardize navigation wording on “Plan a playset”; preserve aliases. Ready-made selection and local assembly worked. | Low, consistency |
Account, account-two-* |
Narrow serial desktop stack. At 390, Kids begins about y=1,390 and Daily playset y=2,864; at 1440, about y=1,295 and y=2,637. Identity, sign-out and deletion dominate first view. Use child main column + delivery sidebar; mobile children, delivery, settings. | High effort; measurement + founder concern |
| Empty/one/Free accounts | Explanations help but repeat long household introductions. Empty should lead to Add a kid; Free should clearly distinguish available printing from disabled delivery. | Medium, expert |
| Account loading/error | Supported sections vanish with no retry. Keep section shells; distinguish loading, empty, unavailable and failed. | High, reproduced fixture |
Child/adult forms, child-*, adult-invite-mobile |
Name validation/focus work; birthday/privacy labels and one-use/14-day invite explanation help. Collapse repeated long privacy explanation. Some captures include the browser's 1Password affordance; it is not site UI. | Low/medium, observed + expert |
Navigation, navigation-signedin-mobile |
Search/destinations are clear, but planner pitch, Ray and age chips make a long drawer. Use Plan, Browse, My household, Help & feedback. Keep age discovery within Browse. Menu Escape closed and returned focus after settling. | Medium, founder concern validated |
FAQ, faq-* |
Useful printing instructions. Title/closing say five answers; source/rendered list has six. Use “Questions before you print” and a clear help/feedback next step. | Low copy bug / medium discovery |
Privacy, privacy-* |
Short introduction helps; narrow full page is about 10,639px. Add anchored contents and preserve readable line length. | Low/medium layout judgment, not legal advice |
Terms, terms-* |
Readable column/headings; no observed narrow horizontal overflow. Match Privacy navigation conventions. | Low, consistency |
Legacy packs, pack-* |
Both historical templates captured desktop/mobile. Distinguish historical package framing from today's six-game playsets; avoid promoting these in primary navigation. | Low/medium, expert |
Review queue/detail/help, review-* |
Exact proof and explicit decision controls support review. Multiple versions need reconciliation context, already tracked in #142. Preserve decision semantics. | Medium workflow, existing issue |
Sign-in confirmation/expired, signin-* |
Both work; sparse system-style confirmation differs from public brand. Strengthen hierarchy while preserving the safe confirmation tap. | Low, consistency |
Daily email, email-daily-* |
Clear subject, child sections, thumbnails and plain text. Two-child mobile preview is ~2,467px. Keep instruction compact; reduce duplicated strategy copy. Footer should link directly to delivery controls. | Medium, copy/task effort |
Sign-in/invite email, email-signin-*, email-invite-* |
Concise transactional content and obvious CTA. Reuse compact branding/button treatment; add no promotional lifecycle material. | Low, consistency |
Images blocked, email-daily-two-images-blocked-* |
Names, text, printing instructions and links remain usable; broken image boxes distract. Keep useful alt text and constrained dimensions. | Low/medium; browser simulation, not client certification |
Ray and the account proposal
The healthy two-child account visibly repeats the full guide in Kids and Adults, plus the small footer mark; empty portrait adds another guide. The menu adds the same guide for a planner pitch. Home/customization use him for contextual help. Hidden template images are excluded from visible counts. Email's small mark beside actionable guidance is useful.
The proposal keeps one contextual account note, removes repeated full-guide poses from maintenance cards/menu, and retains a small brand mark where appropriate. Portrait editing moves into expandable settings. No new artwork is required. proposal.html demonstrates desktop/mobile layout, settings, delivery disclosure, navigation and child shortcuts with synthetic data only. Controls disclose proposed behavior; they do not alter the product.
Multi-child packaging
scripts/audit-household-email.mjs uses current curation/package/email modules, synthetic profiles and public asset GETs. It never sends mail.
| Case | Result |
|---|---|
| Nora 3/en; Theo 6/en+es | Six games each, no sibling overlap for this input/date. Not a general freshness guarantee; #161 owns that. |
| Attachments | Nora 7 pages / 1,766,843 bytes; Theo 7 pages / 2,119,561 bytes. Base64 attachment content totals 5,181,876 bytes, excluding other message overhead. Parent pages visually checked with full frames/footer; page counts parsed. |
| Unsupported infant | Skipped with no_band; existing email lists only eligible children and does not explain omission. |
| Mixed lengths | Ada 3 and Ben 6, English only: six/five games, seven/six pages. Email incorrectly says seven pages of each. |
| Filename collision | Jo Lee and Jo-Lee both produce playset-jo-lee-2026-09-11.pdf. |
| Later-child failure | New regression: first child's six source PDFs succeed; second child's source fails. Zero provider calls/outbox rows, one claim and one failed outcome. Daily suite 177/177 passed. |
| Real one-child receipt | PDF 2,178,887 bytes; Gmail whole-message estimate 3,001,014 bytes. Desktop inbox inspected; private data excluded. |
| Gaps | Actual multi-child inbox/print, maximum-household payload acceptance and client-specific mobile rendering. #182 tracks aggregate sizing. No combined print-all attachment justified by household evidence yet. |
Browse decision — #175
Choose explicit Load More, initially 24 on mobile and 48 on desktop, after higher-priority fixes. Current 39 entries mean all appear on desktop and mobile adds a final 15. This is a site-specific proposal based on scan length, not an industry standard or validated conversion improvement. Recheck tablet density separately.
Current thumbnails are already lazy-loaded; ten were initially loaded in the mobile sample and the remainder deferred. Hiding cards alone proves no bandwidth/performance benefit. No controlled performance benchmark was completed. The interactive proposal compares all 39 current entries at 24/48 for scanning only.
Implementation acceptance: filter whole catalog before slicing; deterministic order; no duplicates; URL-defined loaded extent; filters/extent/scroll survive Back/reload; predictable keyboard focus and loading announcements; reachable footer; actual final-batch count. Test 0/1/24/25/48/49 entries, repeated clicks, filter changes, loading/error/retry. Coordinate crawlability with #147. No pagination implementation ships in this audit.
Verification and boundaries
- Exact checkout production build passed: 49 generated pages; CSP output for 88 pages. Daily tests passed 177/177 including the later-child regression. Full preflight and remote CI results are recorded in PR #176.
- Shared artifacts are public/synthetic. Private inbox/account captures are outside the shared archive; no authentication links retained in evidence.
- Not exercised: physical printer, actual multi-child scheduled receipt, Outlook/Apple Mail, native Gmail mobile, account deletion, invitation acceptance by another adult, real membership switching, successful live customization after the observed failure. Browser email previews are labeled.
- Review signed-out mobile plus signed-in queue/detail desktop/mobile are covered. Signed-out review desktop was not separately captured. Keyboard checks were targeted, not exhaustive assistive-technology certification.
- #177–#182 are implementation/qualification follow-ups. #144 stays closed; #150/#169 retain their existing release gates. No broad redesign, review decision or production deployment occurred.