Portfolio · Live Progress

What's New

Every update across 56 projects, newest first. Written from each project's decision log as the work happened, measured from the first recorded entry on 26 March 2026.

7 Months of development
273 Logged updates
56 Projects tracked
Jul Busiest month

Shipping volume by month

  1. Mar 26 3
  2. Apr 26 9
  3. May 26 25
  4. Jun 26 3
  5. Jul 26 113
  6. Aug 26 112
  7. Sept 26 8

8 entries withheld from publication. Counts are logged decision-log entries, not commits.

September 2026 8

  1. Mini Crossword joins the portfolio, argued from the grid shapes feature

    The game had been live on the hub since May and the book maker since August, with no page on wanessalabs.com.

    Wanessa Labs Website
  2. Three LinkedIn posts on the writing feed, sourced rather than inferred feature

    The /thoughts feed had not gained an entry since April.

    Wanessa Labs Website
  3. 1.2.1 released: the interface finally says what the app does feature

    The app was four features deep and the interface mentioned one. Both were in the README, which is not the same as discoverable.

    Clembot-dictate
  4. 1.3.0 released: a clean can be undone improved

    The clipboard has no undo, so cleaning was a one-way door: a tray balloon named what changed and then it and the original were both gone. Entry.kind now distinguishes dictation, question and clean; entries written earlier load as…

    Clembot-dictate
  5. 1.2.0 released: cleaning the clipboard, not just the output improved

    The checksum in the public README was taken from the uploaded asset rather than the local file, so the two cannot disagree.

    Clembot-dictate
  6. Phase 4 bank scaling (2,050 cards), stratified mock exams, and adaptive learning loops feature

    The bank scaled from 226 questions (303 of 345 reachable matrix cells) to 2,005 questions + 45 concept cards (2,050 total cards) across 9 certification tracks. Matrix coverage reached 100% (765/765 cells filled) with zero empty cells and…

    CertScroll
  7. Our own CSP was blocking our own theme script (complete) feature

    The session close recorded "Cloudflare Web Analytics is blocked by our own CSP" as the open question. Looking at it properly, the framing was wrong twice over.

    Recipe Flow
  8. The phone could not turn the page (complete, deployed ) feature

    Each one held on a laptop and quietly evaporated at 390px, which is where this app is used.

    Recipe Flow

August 2026 112

  1. The dishwasher packing puzzle, played inside a Reddit post launch

    A Devvit app running in the subreddit rather than on this site: the board is the post and the thread is the leaderboard. A daily seed generates the load, and the hub links out to it from its own Reddit Games section.

    Dishwasher Daily (Reddit) ↗
  2. A daily Poker Friday hand, played inside a Reddit post launch

    The second Devvit app in the subreddit, same shape as the dishwasher one. It runs where the conversation already is rather than asking anyone to leave for a game site.

    Poker Daily (Reddit) ↗
  3. Four makers on one shared print engine, live in production feature

    The games repo is Git-connected, so that merge was the deploy. Verified live on games.wanessalabs.com/creator by content.

    Puzzle Book Makers
  4. /projects becomes a progress surface: per-project timelines and a portfolio feed feature

    The portfolio showed 68 finished things and nothing about the work. The site's one progress surface, /30-in-90, counts status === 'shipped' and so reports 4 of 30 while 45 projects sit at status: production.

    Wanessa Labs Website
  5. Curated launches reach their own project pages, and a forward-looking roadmap section feature

    Two gaps left by the timeline work earlier the same day. The 20 curated game-hub launches rendered on the portfolio feed and nowhere else, so 19 project pages showed no timeline at all while the site already knew their launch date.

    Wanessa Labs Website
  6. The Reddit rail reaches the portfolio, and code blocks become readable feature

    Two games shipped as Reddit posts on the Devvit platform and the portfolio said nothing about either. Separately, every fenced code block on the site rendered as a near-black box with unreadable text, on a page whose stylesheet clearly…

    Wanessa Labs Website
  7. The third Reddit pilot, and a page that grades its own coach feature

    Fibbers Dice shipped as a Reddit post and had no page. The two pilots before it had set a template, and the risk with a template is that the third page repeats the second's claims rather than reading the third game's code.

    Wanessa Labs Website
  8. Timeline coverage 30 to 56 pages, and eleven project marks feature

    Two coverage gaps on the portfolio, closed the same afternoon. Neither was a missing feature: both components already worked and were simply reading empty inputs.

    Wanessa Labs Website
  9. Meet Lemon Coach launch

    Tap the lemon in the corner of any game to ask how it works or what a good strategy is. In the card and casino games it reads the live table too. No account, no tracking, and it never nags.

    Lemon Coach ↗
  10. Hop ten marbles across the star launch

    Race your ten marbles to the point straight across, hopping a chain as far as it will go. Two, three, four or six players, on one device or against bots. Nothing is ever captured, and the coach is free.

    Chinese Checkers (波子棋) ↗
  11. The guided tour, and the prose it replaced feature

    An eleven-step walkthrough that drives the real app across all four Collect sections, opening once on a first visit and re-runnable from a header button.

    Recipe Flow
  12. The Blackjack page, and what it revealed about the page hero feature

    Local build exit 0, 87 pages, 66 project pages. Live verification by content rather than status code: the page and all four assets return 200, the served asset byte counts match the commit exactly (128450 / 111277 / 105219 / 103657), zero…

    Wanessa Labs Website
  13. Learn blackjack with a coach that grades every hand launch

    Play a shoe against the dealer and ask the coach what basic strategy says, any time, for free. Coached mode gives every decision a verdict and a reason. Or drill the chart twenty hands at a time and watch your accuracy per category.

    Blackjack ↗
  14. fix round 6, the slide that could not grow fix

    Owner used the deployed site on a phone and reported that the scroll motion after answering was not working well, and asked for a button to advance.

    CertScroll
  15. Learn a craps table without losing money at one launch

    Five bets, a coach that works out the odds in front of you, and the etiquette that arrives when it matters. Every price is computed, including the twenty bets this game refuses to offer you.

    Pass Line ↗
  16. Discover stopped showing the same lists first feature

    dataService.fetchPublishedLists() orders by updated_at descending and DiscoverTab rendered that array directly. With 400+ published lists, the same handful sat at the top on every visit and most categories were never seen.

    Lists of 30 App
  17. Deployed: the Plan tab and Explore feature

    Three things this deploy got right that this vault has previously got wrong. It ran from the directory containing functions/, so the Worker shipped; running from the repo root instead ships a green site with a dead API, which caused an…

    Recipe Flow
  18. Explore: a swipe reader over publisher feeds (complete, NOT deployed) feature

    Suite 1,224 tests across 89 files, tsc --noEmit clean.

    Recipe Flow
  19. Import reaches the Library front door feature

    The owner asked for a button at the top of the library to import a recipe, noting that people will want to import from a website and then connect the recipe to a book.

    Recipe Flow
  20. /progress rebuilt as an instrument improved

    Owner asked for /progress before manual testing. It was the least designed surface in the app and the one the owner had named as mattering.

    CertScroll
  21. Phase 3, the citation spine and the matrix fill feature

    Owner verdict on 2026-08-22: the site is not usable. The diagnosis was that almost none of it was a product defect.

    CertScroll
  22. scope, and the cert axis that charged for compounding feature

    Owner question after the fill: what stops the questions already written from filling the missing cells? The answer was that nothing about the questions did.

    CertScroll
  23. The book that could not gain a recipe feature

    Reported as "there's no easy way to do this in the library or from the specific recipe after I have imported it".

    Recipe Flow
  24. The Plan tab: two columns, a derived shopping list, and a third amendment feature

    This is the third amendment to that section: the pantry one on 2026-08-09 turned into the fridge and the week plan, the sharing one on 2026-08-12 opened a narrow provenance-gated link for one book, and this one opens a DERIVED shopping…

    Recipe Flow
  25. Renaming a book you copied feature

    Asked for as "can you add a feature to rename the books I've copied", which names the exact set: forkRecipeBook stamps a copy "<source> (my copy)" and nothing in the app could ever change it. There was no rename path at all, for any book.

    Recipe Flow
  26. The release that reached first-time visitors and nobody else feature

    Reported as "I don't see it live on recipe.wanessalabs.com", and he was right. The deploy was real, Production, and verified.

    Recipe Flow
  27. The shelf splits in two feature

    Reported the same hour: the book created by binding is hard to see.

    Recipe Flow
  28. The shipped shelf gets the curator's name feature

    Asked for directly: the bottom shelf should be named Clemens’ Curated Cookbooks.

    Recipe Flow
  29. Books written as ideas, and a corpus that stops sampling feature

    The owner asked why "Clemens' Go-To Meals" did not hold the thirty dishes from his own Lists of 30 post. It never did, and nothing had ever been built to make it: the book held FIVE entries, all starter- ids from the Wikibooks corpus,…

    Recipe Flow
  30. The book finally holds the thirty, and an invariant that had been free feature

    Yesterday's work built the whole machine for writing a book as ideas and binding each one by search, and then did not use it. Clemens' Go-To Meals still held the same five starter recipes it was given on 2026-08-12, chosen by the…

    Recipe Flow
  31. 1.1.1 released: the interface pass, shipped feature

    Downloaded back over the public URL before the manifest moved: HTTP 200, correct length, MZ header, hash matching the release notes.

    Clembot-dictate
  32. UI pass: the palette belonged to someone else feature

    Reported as "clunky, doesn't feel professional". Three causes, in order of how much they were doing:

    Clembot-dictate
  33. The rest of the gauntlet's round 1, and five of six measured at last feature

    The 2026-08-18 gauntlet-loop pilot closed with a four item checklist for the owner. This session works the remaining three.

    Recipe Flow
  34. CI had never passed, and the reason was one test fixture fix

    CertScroll CI was red on all 6 runs since it was created. Not intermittently: it had never once been green.

    CertScroll
  35. Docs updated for 1.1.0, and three stale claims corrected fix

    Version drift fixed while in there. Three files still named Setup-1.0.0.exe and VERSION = "1.0.0" in their tables, one release after the fact.

    Clembot-dictate
  36. Public repository, curated rather than mirrored feature

    It is an export, not a remote. This tree stays the source of truth and its git history never leaves, because that history is ClemVault's.

    Clembot-dictate
  37. Release runbook, and the update check that never worked feature

    Two blockers found by probing rather than reading.

    Clembot-dictate
  38. Voice command mode (sidecar client) feature

    Dictation is unchanged and the dependency tree is untouched — no numpy upgrade, no models in the installer.

    Clembot-dictate
  39. Spend your coins inside the games launch

    Coins you earn by playing now buy a hint, a take back or a reveal, at the moment you want one. Thirteen of them across nine games, plus Dishwasher chapters that used to cost money. All optional, all priced on one page.

    Coin Economy ↗
  40. A polish loop that refuses to start without a brief improved

    Built as a prompt generator rather than a runner. The skill prints the prompt for a fan-out of paired worker and critic agents over one existing project, and never executes the run itself.

    Gauntlet Loop
  41. The Play On winner shows themselves before the scoreboard does improved

    Under Play On the first player to empty their hand has already won the round, but the round keeps running so the rest of the table can finish, and nothing on screen said so. A ring and a banner now name the winner the moment it happens, and clear once the round is scored.

    Last Card ↗
  42. The reduced-motion override that never won the cascade feature

    Found by a gauntlet-loop pilot run, not by the test suite. Identical specificity (0,1,0), same origin, both unlayered, and a media query adds no priority, so source order decided and the base value won.

    Recipe Flow
  43. CertScroll gets its own brand feature

    The direction is instrument, not document. The app measures something real about the reader and showed none of it on the front door.

    CertScroll
  44. light mode feature

    A second palette, not an inversion. The amber signal sits at 80% lightness because that is what reads on a near-black ground.

    CertScroll
  45. scenario arcs feature

    The first scenario is live. loan-model follows an inherited loan-approval model across six steps: pre-training bias metrics, target leakage in a derived feature, an overfitting gap, a canary release, drift with no code change, and a…

    CertScroll
  46. the answer key stops being option A, and Phase 2 machinery lands feature

    A live defect the whole gate missed. All 15 authored questions carried answer: 0, so a visitor scored 100% by tapping the top option without reading.

    CertScroll
  47. the progress page feature

    No new stored state. Every answer already recorded cardId, result, the option chosen and a timestamp in device-local IndexedDB, so /progress is a read-only view over data that already existed.

    CertScroll
  48. A manual light/dark toggle, and a latent bug it exposed fix

    The owner asked for a light/dark toggle "for the whole site".

    Recipe Flow
  49. The fridge gets steel, an open door, a simpler add flow, and favorites feature

    Three separate requests landed in one turn: make the fridge visual look more like an appliance, drop the "Amount" field because most people buy one portion, and replace the ingredient dropdown with search plus starred favorites. All three…

    Recipe Flow
  50. Play Hong Kong mahjong with a daily round and coins on the table launch

    Four sets and a pair, three faan minimum to win. A daily round moves the deal around all four seats, real hub coins change hands after every one, and you can declare your own kong or rob one back from an AI mid turn.

    Mahjong (麻雀) ↗
  51. 69 approved photographs, and the release that would have hidden them feature

    The owner reviewed the 85-card contact sheet and kept 69. Applied with npm run photos:apply, which validated every title against the bundle before writing a byte and resolved every file on Commons with its credit.

    Recipe Flow
  52. A deriver fix that reached nothing, and the row with several owners fix

    The duration fix earlier today was correct and invisible. loadStarterLibrary runs derive once and persists the graph, so a library that already existed kept every wrong number.

    Recipe Flow
  53. Crediting the photographer, before there is anything to credit feature

    Preparation for a decision not yet taken. The Commons probe found 85 candidate photographs matched by DISH NAME for recipes that have none of their own, and those cannot ship without attribution.

    Recipe Flow
  54. Pictures for the 42 that have one, and a drawn stand-in for the 258 that do not feature

    The library rendered 300 identical chef hats, which reads as a library that failed to load rather than one built from a text cookbook.

    Recipe Flow
  55. The curated-photo lane, and a second lane that turned out to be a dead end feature

    The 42 recipes whose own Wikibooks page carries a picture are done. This is the path for the other 258, and it is deliberately not the same path.

    Recipe Flow
  56. The deriver could not read a fraction, and had never been asked to feature

    The answer is the regex, and the investigation found two more bugs sitting beside it.

    Recipe Flow
  57. The starter library was unreachable to anyone who had saved a recipe feature

    Reported from a real browser: five recipes saved, no shelf books, and no way to get them. The shelf said "The shipped books arrive with the starter library.

    Recipe Flow
  58. Three more occasion books, and moving a ceiling without moving the shelf feature

    Thanksgiving, Christmas and Feed a Crowd. Five books to eight, which is one more than the six cloths the shelf had.

    Recipe Flow
  59. Astro scaffold, actual toolchain vs. plan's assumption feature

    The phase1a plan names "Astro 6 (static output)" as the tech stack. Running npm create astro@latest .

    CertScroll
  60. content schemas (scripts/schema.ts), two deliberate departures from spec section 7 docs

    Cert gains url, note, access, booking, warning. Phase 0 gathered all five against provider pages on 2026-08-12 and they are exactly what makes a cert page useful with zero cards.

    CertScroll
  61. Task 5 fix round 1, two owner rulings and two corrected stale claims fix

    Owner ruling 1 (Oracle domains): ship Task 5's five Oracle domains as-is, mark them domainsUnverified: true rather than delete or re-invent them, and make verifying them against Oracle's published 1Z0-1127-25 exam topics a hard gate on…

    CertScroll
  62. Task 5, cert data and resources. Per-cert domain provenance feature

    domains did not exist in Phase 0 and was authored fresh for Task 5. This table records where each cert's domains came from.

    CertScroll
  63. five books on the shelf, and the curation moves out of TypeScript feature

    Phase 2 of the recipe-books rework. Content, planting, and the finalize step.

    Recipe Flow
  64. occasion books, and a merge that reuses the scheduler rather than copying it feature

    The Library duplicates the feed, and it does so structurally. That is why a Book today is either a publisher or the single staging record, and why neither can express "what do I cook for this situation".

    Recipe Flow
  65. rule 6 opened, narrowly, and a gate that decides per recipe feature

    The amendment came before the code, and rule 6's text was not touched.

    Recipe Flow
  66. the Gantt was not lying about the plan, it was lying about the day feature

    A correction to the entry above, and two fixes.

    Recipe Flow
  67. the Library stops being a second copy of the feed feature

    Phase 3 of the recipe-books rework. The shelf, the book, the create flow, clone and remix, and the export that closes the curation loop.

    Recipe Flow
  68. the book becomes the library, and four feeds that never had a picture feature

    Three reported problems, one of which turned out to be three problems.

    Recipe Flow
  69. a hundred recipes, and the source that did not survive checking feature

    The owner asked to start with roughly a hundred recipes reliably loaded. Getting there by fetching is a hundred fetches, and rule 1 permits one per user action, so the answer was a bundle shipped with the app.

    Recipe Flow
  70. one list across every source, and the rule that stayed put feature

    Reported by the owner: "it's not easy to see all of the scrapes together. Is there an easier way to just scrape all of the recipes by a name?

    Recipe Flow
  71. the book was unusable on a phone, and a comment said otherwise feature

    Reported by the owner: on mobile a found book "does not show the left page so it always says this page has not been opened yet". It reproduces on production, and it is worse than the report.

    Recipe Flow
  72. the fridge and the week plan, and a plan that argued with itself feature

    A stated non-goal was retired on purpose, at the owner's request. prd section 6 banned "no pantry, no shopping, no aggregation across recipes".

    Recipe Flow
  73. the fridge becomes a fridge, and a test that never tested anything feature

    /fridge answered "what did I buy" with a column of form rows, each carrying two number inputs and a note about who owned the stretch number. That density is right for editing and wrong for recognition: someone opening the page to remember…

    Recipe Flow
  74. the fridge reaches production, from a tree that was not this one feature

    --commit-dirty was omitted deliberately, per the recorded gotcha where it silently sends a --branch=main deploy to Preview.

    Recipe Flow
  75. the starter set learns what a weeknight is feature

    The owner: "I would rather skew towards weeknight." The first hundred were drawn from Category:Recipes, which is everything, and arrived heavy with desserts, condiments and baking. The Cookbook classifies its own pages by course, so the…

    Recipe Flow
  76. Play Texas Hold'em with no signal in SlowPoker launch

    No-Limit Hold'em against bots, with no server and no internet. Check after every hand that the deck was not rigged, and watch a panel show each message the game would send, down to the byte. Bluetooth play is still being built.

    SlowPoker ↗
  77. The stale-production blocker was already fixed fix

    What was checked. Neither was true by the time it was read.

    CampPing
  78. Two ways to measure this site wrong fix

    Neither of these is a defect in the site. Both are ways a future session will read it wrongly, and both produced a confident wrong answer before being caught.

    Design Hub
  79. Fill fifteen boxes with five dice in Lemon Dice launch

    Roll three times a turn, keep the dice you want, then commit them to a box you cannot use twice. Pass one device around, or take on a bot set to Easy or Normal.

    Lemon Dice ↗
  80. looked at it in a browser, and found the feature had never worked feature

    Everything above this entry was verified by tests and by reading. Opening the app in Chrome against wrangler pages dev, before deploying, found two defects that 631 green tests could not see.

    Recipe Flow
  81. the seam connected, and it was two actions not one feature

    The previous entry recorded tagging as written down but not wired. Connecting it found that the gap was wider than the tag button: nothing in the app ever moved a found page from stub to fetched.

    Recipe Flow
  82. the shelf and the book, built but not yet reachable feature

    The library became a shelf. A found book is a publisher, cloth spine, leaning, read only, assembled from that publisher's own feed.

    Recipe Flow
  83. First borrowed design decision, and a CI deploy that never deployed feature

    A viewfinder frame, taken from a recorded reference. The marketing layout gained four 1px open corner brackets, applied from design-hub reference 21hrs-space#corner-bracket-hud-frame.

    CampPing
  84. Canvas UI borrow, Liquid as a catalogued specimen docs

    Copy-in source via the shadcn registry model, so there is no runtime dependency on the library and no npm package was added. 25,464 bytes raw, 6,444 gzipped as source.

    Design Hub
  85. The ledger stops being empty feature

    First borrow recorded. Verified resolving in both directions on the live site: /project/campping lists the reference and the outcome, and the reference page's "Applied in" table lists the surface and the applied sentence.

    Design Hub
  86. The type system was decorative, and Preflight was load-bearing feature

    An /impeccable critique + audit pass on the homepage, run on the newly upgraded skill (upstream v4.0.4). The mechanical detector returned clean before and after; everything below came from reading the source and then measuring the result…

    Design Hub
  87. the Gantt learns its container width feature

    The chart allocated a flat 4px per minute whatever box it was in. On the 18-minute biscuits in a 1118px viewport that drew a 72px chart, and rendered every one-minute step as a 4px sliver.

    Recipe Flow
  88. the payload measured, and two optimizations declined feature

    Two payload items had been carried as open for three sessions. Both were measured properly for the first time, and both turned out to be worth less than they read.

    Recipe Flow
  89. Two false claims removed from the public site, and a token that was never AA fix

    Three defects that all read as true. (1) --text-muted at oklch(58% 0.007 82) measured 3.99:1 on --bg and 3.59:1 on --surface-raised, failing WCAG AA on roughly 20 small-text elements.

    Wanessa Labs Website
  90. the seven own surfaces, and a stale branch caught by checking production fix

    Captured the seven live Wanessa Labs / Lists of 30 surfaces into the library: games.wanessalabs.com, books.listsof30.com, wanessalabs.com/projects/, app.listsof30.com, travel.listsof30.com, recipe.wanessalabs.com, kalimba.wanessalabs.com.…

    Design Hub
  91. Browse measured and working, deployed feature

    The blocker was the measurement, and the measurement was takeable. curl to publisher hosts is denied in this environment, which is what stalled phase 5 yesterday.

    Recipe Flow
  92. mobile pass, two-section nav, and two defects caught only in production feature

    Two sections declared once. Cook mode renders neither, because /r/:id shares no chrome with Collect and a tab bar over the recipe you are cooking from is the library chrome that route exists to escape.

    Recipe Flow
  93. a leak caught by asking what would actually go public feature

    Before shipping, checked what a deploy would contain rather than what the pages render. A deploy would therefore have published all four unconfirmed third-party screenshots at guessable URLs while the references themselves were correctly…

    Design Hub
  94. custom domain live, a soft 404, and the portfolio page feature

    design-hub.wanessalabs.com attached by Clemens. Verified over HTTPS: 200, two confirmed cards with images, the mark loaded, no dev banner.

    Design Hub
  95. D2 reversed, the gallery feature

    Requested directly, with land-book.com as the model.

    Design Hub
  96. deployed, and the first two references confirmed feature

    Live. Cloudflare Pages project design-hub (not design-wanessalabs, renamed to match the subdomain and the convention every other project here follows), Production on main, https://design-hub-3vy.pages.dev.

    Design Hub
  97. Phase 4 (partial), the skill that reads the corpus feature

    Branch feat/design-system-v2, worktree .claude/worktrees/design-system-v2.

    Design Hub
  98. session close feature

    vault-kanban reads the frontmatter, so the board would have shown this in Active Build indefinitely. Corrected to production / 2026-08-04.

    Design Hub
  99. the reference detail page, the projects ledger view, and a build-only bug fix

    Reference detail gained a Captures section. Not a dependency: sharp is already in the tree via Astro but it is a native module with an open CVE noted above, and pulling it into page rendering for two integers is a bad trade.

    Design Hub
  100. the ship gate, and what it caught on its first run feature

    launch-readiness had no design or accessibility stage at all. Seven sections covering secrets, transport, SEO, performance, analytics, legal and manual QA, and nothing about the interface.

    Design Hub
  101. Adaptive practice, a parent report, and Tiff feature

    Built in wanessalabs-games, on feat/kids-adaptive-progress, not committed. Nothing in this folder holds code; this is the record.

    Kids Game Hub
  102. The same outage fired again, and the git integration is now disconnected feature

    The entry above ended "Still armed." It fired roughly 24 hours later. Same signature: HTTP 200, #root with zero children, PAGEERROR: supabaseUrl is required.

    Lists of 30 App
  103. Redesign phases 1 to 4, and the first time anyone opened the app feature

    paper, --ink and --tab are canonical and overridden in all three theme blocks; the older names alias them.

    Recipe Flow
  104. Site-anatomy export feature

    Read-only export from prd/lineage/roadmap plus the project page source. Redacted for public use: no commit hashes, no deployment IDs, no hosting-project names.

    Clem's Travels
  105. Bluff your way through Fibbers Dice launch

    Bid on what the whole table is holding, then call anyone who pushes it too far. Play against Aaron, Vivian and Flavia, or pass the device around.

    Fibbers Dice ↗
  106. Call the bluff in Fibbers Poker launch

    Claim a hand that might not exist, or call someone who just did. Start with one card, take another every time you lose, and you are out above six.

    Fibbers Poker ↗
  107. Deploying the fixes exposed a 9-hour production outage I had caused fix

    Shipping the review fixes above revealed that app.listsof30.com had been serving a blank page for roughly nine hours, and that my own pushes did it.

    Lists of 30 App
  108. Mobile layout flip fixed, deployed, and the live redesign finally committed fix

    Bug: on a phone, scrolling swapped the mobile layout for the desktop side nav. Root cause: useDesktop() read window.innerWidth, which on mobile reports the visual viewport, not the layout viewport.

    Lists of 30 App
  109. Site-anatomy export feature

    Read-only export from prd/lineage/roadmap plus the project page source. Redacted for public use: no commit hashes, no deployment IDs, no hosting-project or backend-provider names.

    Lists of 30 App
  110. The redesign reviewed, and four findings fixed fix

    Suite went 127 → 133 tests, 17 files, all passing.

    Lists of 30 App
  111. Lineage opened retroactively docs

    This file was created after the site shipped, not alongside it. Every entry below this line is contemporaneous.

    Lists of 30: The Book Series Hub
  112. Site-anatomy export feature

    Read-only export: prd/lineage/roadmap plus the project page source. No vault content changed except this lineage entry and the creation of this file.

    Lists of 30: The Book Series Hub

July 2026 113

  1. Phase 2, capture pipeline and four seeded references feature

    Slop tells 3, 6, and 8 were checked against the seven brand token files before this session touched anything else, and one was wrong. Tell 8 ("more than two font families") had been marked vault.

    Design Hub
  2. Phase 3, the Astro site feature

    A real constraint catch before writing the token-rendering component. Rendering a captured site's actual typeface in its card would mean loading a third-party webfont at runtime from this deployed static page, which is exactly what the…

    Design Hub
  3. Append "Epic 56 Hours in NY" to the nyc card feature

    First run of the Option B content-ingestion path decided 2026-07-21: Clemens pasted the post URL, the entry was derived, appended, validated, and shown as a diff. Post is listsof30.com/p/epic-56-hours-in-ny, published 2021-12-07, added as…

    Clem's Travels
  4. Decisions D1 to D5 feature

    On D5, what was ruled out and why. Clemens asked for capture in the site's own UI rather than a Claude Code command.

    Design Hub
  5. Phase 0 audit docs

    design-hub/ did not exist. Greenfield, no path conflict.

    Design Hub
  6. Phase 1 data model feature

    Three additions to the specified schema.

    Design Hub
  7. The local-model lane shipped, under a different project feature

    The delegation lane this project existed to build landed inside token-thrift instead, on the day that skill was built. It pins one local model on the loopback Ollama port, states that nothing leaves the machine, names a hosted provider as…

    Local Clembot LLM
  8. Reopened for free play, with maths still gating the colours improved

    Every picture became playable at any time. The daily rotation that had gated all thirty was reversed at the owner's request, because the game's actual player wanted to paint whatever she liked rather than wait for the rotation to offer it.

    Palette Quest ↗
  9. Race ninety seconds down the mountain in Ski Rash launch

    Carry a weapon while you race, in a new run every day or free play whenever you like. Scores stay on your device.

    Ski Rash ↗
  10. Built (Phases 0, 1, 2 and 4) feature

    Token spend across ClemVault sessions had never been measured, only assumed. The available prior art all converges on one mechanism: intercept and compress command output.

    Token Thrift
  11. Correction: the custom domain was recorded under the wrong hostname fix

    That host has never resolved: a browser check on 2026-07-30 returned ERR_NAME_NOT_RESOLVED. The registered Cloudflare Pages custom domain on project tutorhub is tutorhub.wanessalabs.com, which returns 200 and serves the app.

    TutorHub
  12. Phase 4a: renderer dependencies, measured feature

    Added three@0.185.1, @react-three/fiber@9.6.1, @types/three@0.185.1.

    2x2 Cube Trainer
  13. Phase 4b: the geometry seam feature

    Three source files and two test files under geometry/. 13 geometry tests, full hub suite 1089 across 113 files, twice.

    2x2 Cube Trainer
  14. Phase 4c: design tokens and the colour pipeline feature

    69 cube-trainer tests, full hub suite 1104 across 115 files, twice.

    2x2 Cube Trainer
  15. Phase 4d: the visible scene feature

    74 cube-trainer tests, full hub suite 1109 across 116 files, twice.

    2x2 Cube Trainer
  16. Phase 4e: drag-to-turn, and a limitation worth naming feature

    97 cube-trainer tests, full hub suite 1121 across 117 files, twice.

    2x2 Cube Trainer
  17. Phase 4f: all six faces, without touching the engine feature

    96 cube-trainer tests, full hub suite 1126 across 117 files, twice.

    2x2 Cube Trainer
  18. Phase 5a: the solver reaches the player feature

    111 cube-trainer tests, full hub suite 1136 across 118 files, twice.

    2x2 Cube Trainer
  19. Phase 5b: timer, inspection, persistence. v1 play surface done feature

    124 cube-trainer tests, full hub suite 1149 across 119 files, twice.

    2x2 Cube Trainer
  20. Phase 6a: hints, scoring, stage detection feature

    134 cube-trainer tests, full hub suite 1159 across 120 files, twice.

    2x2 Cube Trainer
  21. Phase 6b: drill mode. v1 COMPLETE feature

    146 cube-trainer tests, full hub suite 1170 across 121 files, twice.

    2x2 Cube Trainer
  22. Phase 7: the geometry seam holds feature

    148 cube-trainer tests, full hub suite 1183 across 122 files, twice.

    2x2 Cube Trainer
  23. Phase 8: hub integration. The build config fought back feature

    Full hub suite 1183 across 122 files, twice.

    2x2 Cube Trainer
  24. Post-v1: the gesture model was wrong, and the owner found it fix

    Owner feedback after playing the deployed version: "sometimes I try to drag the cube to inspect the sides, but it accidentally turns the side."

    2x2 Cube Trainer
  25. first live import, and what it found feature

    The owner's first real import returned a 403. URL: allrecipes.com/recipe/21014/good-old-fashioned-pancakes/.

    Recipe Flow
  26. merged, portfolio deployed, and the first live verification feature

    The merge ran in a throwaway worktree on main. The shared tree is on another session's branch and carries 60+ uncommitted files, and this vault has a recorded incident of one session's broad git add sweeping another's staged work.

    Recipe Flow
  27. paste-source and discover feature

    27 tests added, 285 total green across three consecutive runs.

    Recipe Flow
  28. Phase 0, audit docs

    Structural template: kalimba-easy. Most recent root project and it ran this same diff-first phase-gated process, including a Phase 0 audit entry in its lineage.

    Recipe Flow
  29. Phase 1, POW scaffolding and specs docs

    Written in a dedicated git worktree. recipe-flow/ is an entirely new folder that touches nothing existing, so collision is impossible rather than merely unlikely.

    Recipe Flow
  30. Phase 2, domain model and two engines feature

    Pure logic. No UI, no network, no Date.now() in either engine.

    Recipe Flow
  31. Phase 3, view registry, three views, editor feature

    Built in one gate at the owner's instruction, after a proposal to split it into 3a to 3d was declined.

    Recipe Flow
  32. Phase 4, import feature

    Resumed after the session that started this phase was cut off mid-flight. The seven Phase 4 files existed on disk and had never been run.

    Recipe Flow
  33. Phase 5, library feature

    61 tests added, 255 total green, tsc --noEmit clean, build clean, npm audit reports 0 vulnerabilities. dexie@4.4.4 added, plus fake-indexeddb as a dev dependency.

    Recipe Flow
  34. Phase 6, deploy and wrap-up feature

    Deployed to Cloudflare Pages Production. Wrangler compiled the Worker, uploaded 3 static files, _headers, and the Functions bundle.

    Recipe Flow
  35. robots.txt caching, and a fail-open bug it exposed fix

    36 tests added, 321 total green across three runs.

    Recipe Flow
  36. the logo, and two sizes it cannot survive feature

    Owner supplied recipe flow logo.png: a chef-hat lemon over a recipe scroll and a Gantt chart, on an orange band. Added to the app header and to the portfolio page.

    Recipe Flow
  37. Projects map: rebuilt as a 3D force-directed graph improved

    The same label-overlap defect the 2026-05-19 entry below claims to have fixed. It came back, because that fix treated the symptom.

    Wanessa Labs Website
  38. Fit animal blocks into an 8×8 grid launch

    A new Critter Blocks puzzle every day, with three minutes on the clock and every piece shaped like an animal.

    Critter Blocks ↗
  39. Phase 0: audit docs

    Read-only audit of wanessalabs-games/ before any file was written.

    2x2 Cube Trainer
  40. Phase 1: POW docs and scaffold docs

    Deviation from the brief, flagged for the owner. The brief asked for empty engine/, solver/, geometry/, and ui/ directories.

    2x2 Cube Trainer
  41. Phase 2: headless engine and tests feature

    33 tests. M1 verified mechanically: nothing in engine/ imports anything outside engine/.

    2x2 Cube Trainer
  42. Phase 3: solver worker and scramble generator feature

    47 cube-trainer tests total, full hub suite 1076 across 111 files.

    2x2 Cube Trainer
  43. Drop four in a row against Evie launch

    A seven by six board, played pass and play on one device or against a bot who thinks a few moves ahead.

    Drop4 ↗
  44. Phase 5, bring your own tab feature

    The human asked for 30 more songs and for the truncated entries to be extended to full length. Both requests ran into the constraint already on the record: I cannot source real notation, and the truncated songs are truncated precisely…

    Kalimba Easy
  45. Tine labels on the diagram feature

    The request was to invert the graphic. The user plays with their thumbs and said the picture reads upside down.

    Kalimba Easy
  46. Delivered inside the main hub; the standalone app was cancelled feature

    Status moved idea to production. No code was ever written in this folder.

    Kids Game Hub
  47. Collect thirty pictures in Palette Quest launch

    Twenty five new hand-drawn pictures on top of the original five. Everything you finish is saved to an archive you can repaint from scratch.

    Palette Quest ↗
  48. Phase 2, core engine feature

    Pure TypeScript engine, zero React, zero UI dependencies.

    Kalimba Easy
  49. Phase 3 complete, 30 songs feature

    The human chose "push to 30 now, flags and all" over sourcing transcriptions properly or stopping at 13. Seventeen more encoded from memory with honest flags.

    Kalimba Easy
  50. Phase 3, batch 3 and a scaling problem feature

    Target raised to 30 songs. Batch 3 delivered 3, not 5, and the reason matters more than the count.

    Kalimba Easy
  51. Phase 3, catalog batch 1 feature

    Five songs encoded, the build gate written and proven, the source format changed. 5 of a planned 30 melodies.

    Kalimba Easy
  52. Phase 3, catalog batch 2 feature

    Three more of my own Phase 0 bases were wrong. Every one was caught by verifying rather than recalling, which is now three batches running at roughly one bad claim per two entries.

    Kalimba Easy
  53. Phase 4a, foundation and Browse feature

    Phase 4 split in two, because presenting the whole UI as one diff would have been roughly two thousand unreviewable lines. 4a is the app shell plus Browse, which is the screen that IS the product.

    Kalimba Easy
  54. Phase 4b, detail, player and ladder feature

    Song detail, SVG kalimba, player and practice ladder. Also closed the security blocker carried out of 4a.

    Kalimba Easy
  55. Phase 6, ship configuration feature

    Human decided the domain and asked to build through to a publishable state.

    Kalimba Easy
  56. Make a wish and watch it go wrong launch

    Every wish gets granted. Choose your words one clause at a time, then read the decree that finds the loophole you left open.

    The Monkey Paw ↗
  57. Fly a paper dart into an origami dogfight launch

    Shoot down shuriken, cranes and turrets on the way to a paper dragon with one weak point. A new level every day.

    Paper Squadron ↗
  58. Split thirteen cards into three rows in 13张 launch

    Chinese Poker, three cards up top and five in each row below. Beat three opponents row by row.

    13张 ↗
  59. Phase 0, audit docs

    New project proposed from a diff-first, phase-gated brief. Phase 0 was read-only by instruction.

    Kalimba Easy
  60. Phase 1, POW docs docs

    Phase 1 proceeded on the Phase 0 recommendations, which were not overruled. The nine open questions were resolved to their recommended defaults and the assumptions were stated before writing.

    Kalimba Easy
  61. Remove dead seelemons archive links, retire legacy-only feature

    seelemons.com is no longer active, so every source: seelemons post rendered a dead … ↗ (archive) link. 15 destinations kept their live listsof30 post.

    Clem's Travels
  62. Six new travel posts: previews + globe OG share card feature

    Ran pnpm fetch:previews --resume — resolved 5 new og:image thumbnails (sag-harbor, glenwood-springs, moab, mexico-city, monterey-bay); Phuket rides under the existing bangkok pin. 63/63 published destinations now have previews.

    Clem's Travels
  63. Work began on Last Card feature

    First commit touching this game in the hub repository. House-rules Uno: draw up to two cards and play what you find, call Last Card or get caught. The hub records no separate launch announcement for it.

    Last Card ↗
  64. Work began on 6×6 Sudoku feature

    First commit touching this game in the hub repository. A gentler daily Sudoku on a six by six grid, solvable by scanning alone, and the one the Kids tab carries instead of the full size puzzle. The hub records no separate launch announcement for it.

    6×6 Sudoku ↗
  65. Shed your hand first in Big Two launch

    The Cantonese climbing game against Alice, Louis and Angus, with a strategy coach for when a hand is not obvious.

    Big Two (鋤大D) ↗
  66. Decision: pnpm sync:map, reconcile-only geography sync feature

    pnpm sync:map closes that gap without touching curation.

    Clem's Travels
  67. Named the protocol: CampPing (full vault-wide rebrand) feature

    the protocol has a public name, CampPing, after its first use case: keeping a campsite coordinated when there is no cell signal. This closes the "no public name yet" open item that had stood since 2026-07-08.

    CampPing
  68. Push your luck with seventeen dice in Low Roller launch

    Set at least one die aside after every roll, then reroll the rest until all seventeen are banked. Lowest score wins. Solo, or pass the device around up to six players.

    Low Roller ↗
  69. Practise Texas Hold'em against up to five bots launch

    A coach shows your equity, your outs and the pot odds as you play. Play money only, and it all runs offline.

    Poker Friday ↗
  70. Launch-readiness pass (NO-GO to GO pending redeploy) feature

    The Privacy Policy carries the Google API Services User Data Policy Limited Use disclosures (scopes calendar.events + calendar.calendarlist.readonly, secure server-side token storage, no ads / no sale / no model training, revoke path)…

    TutorHub
  71. Canonical brand system codified in design/ feature

    Two decisions baked in: (1) --measure (slate-teal) is promoted from vestigial to a documented "measured-data" role for figures, chart series, and litepaper numbers; (2) the standing claims rule is written into Do/Don't — marketing never…

    CampPing
  72. Homepage animation: from scroll-story to a reusable canvas engine feature

    a request to make the site's UI/UX richer and more animated, "using all the animation tools possible," across the user's properties.

    CampPing
  73. Phase 3 shipped; decision: self-hosted link-preview cards feature

    Phase 3 (hero SVG map engine) built and approved. Reduced motion renders the whole map complete and still.

    Clem's Travels
  74. Phase 4 built: chapters, explore mode, preview cards feature

    Scenes 2-4 shipped. Continent chapters are a sticky world map with scrolling steps; entering a chapter animates the SVG viewBox to frame that continent (Motion), and off-continent arcs/markers dim.

    Clem's Travels
  75. Pivot: the 3D globe is the main page feature

    After comparing three globe styles (MapLibre, Globe.gl photo, Globe.gl passport), Clemens chose MapLibre (V1) and asked to make it the landing experience, weaving the posts off it, with the arc animation on the globe.

    Clem's Travels
  76. design/ folder added (canonical brand + tokens) feature

    No invented values. bespoke --radius-card (16px), the lucide status vocabulary, and the six signature components.

    TutorHub
  77. Entire remaining build (Phases 5-8) + Google OAuth fixes + multi-calendar fix

    Single session, every feature brainstorm → spec → plan → TDD → live-verify. All commits to main by explicit path (shared branch).

    TutorHub
  78. Added design/ as the canonical brand source of truth feature

    Pulling it into a design/ folder gives a single canonical reference for future UI work and keeps the front door in sync with the Claude Design library (preview cards live in designs/library/wanessalabs/). Documents the hard boundary with…

    Wanessa Labs Website
  79. Decision: anime.js v4 + Motion, not GSAP feature

    Considered GSAP-only (single library, ScrollTrigger included).

    Clem's Travels
  80. Decision: build-time arc precomputation, no geo library ships feature

    The world SVG is generated from Natural Earth 110m via the world-atlas package. Underlying data is public domain, package is ISC.

    Clem's Travels
  81. Decision: dual home anchors feature

    The index post says of Colorado: "I live here now!" Home changed.

    Clem's Travels
  82. Decision: journey.order is keyed on travel date, not publish date feature

    This is the most consequential decision in the project.

    Clem's Travels
  83. Decision: Miami / South Beach ships as a stub feature

    The index post links South Beach to listsof30. The only unclaimed slug in the export was travel-advice-clemens-guide-to-haggling, which reads as a general how-to rather than a Miami post.

    Clem's Travels
  84. Decision: three-source reconciliation, nothing scraped feature

    The dataset is built from three sources, all owned by Clemens, none scraped.

    Clem's Travels
  85. Decision: two deliberate divergences from wanessalabs-games feature

    Also considered and declined: TypeScript 7.0.2, the latest release. It is the Go-based rewrite and toolchain support is still settling.

    Clem's Travels
  86. Decision: validation failures block the build feature

    Zod covers types; three assertions cover invariants Zod cannot express:

    Clem's Travels
  87. Finding: entry count is 114, not the estimated 74 feature

    The Phase 1 roster table estimated 74 entries with per-continent counts. That estimate was wrong and was presented with false precision.

    Clem's Travels
  88. Finding: legacy-only collapsed from 11 to 3 feature

    Only Ohio, Valencia, and Sonoma are seelemons-only.

    Clem's Travels
  89. Finding: the posts.csv export is stale and its is_published column lies fix

    Two data-integrity issues, both worked around, both recorded.

    Clem's Travels
  90. Phase 0: audit docs

    Reference project for Cloudflare Pages conventions: wanessalabs-games/ (pnpm, Vite, wrangler.toml with pages_build_output_dir).

    Clem's Travels
  91. /17 — Site published to production; the /docs bundle found empty docs

    Shipped: the motion build deployed to Cloudflare Pages via a preview branch first (motion-preview.campping-site.pages.dev), then to production on the custom domain. Preview-first was not ceremony: the sandbox cannot drive a browser, so a…

    CampPing
  92. Motion layer on site/ (relay animation + scroll-scrubbed walkthrough) feature

    Ask: a scroll-scrubbed video landing experience, generated with Higgsfield via the scroll-world skill, "to show the value of consulting with a high tech AI native firm."

    CampPing
  93. Board reflects reality: status source fixed, blocked state added fix

    The board read stale. The cause was not out-of-date data but how state was derived — nearly every project was piled into Active Build regardless of its real state.

    Vault Kanban
  94. Current proof feature unverified

    Vault Kanban
  95. Dev loop fixed: --watch + one server, not two fix

    After the lane fix landed and the scanner CLI verified correct, the board still showed the old lanes. The data and the code were both right.

    Vault Kanban
  96. Legacy Express server deleted; three silent lifecycle bugs fixed first fix

    Endpoint-for-endpoint the Hono server was already a superset (all 8 legacy routes, plus /graph, /graph/note, /jobs/:id). But matching route names is not matching behavior, and the diff turned up three real bugs.

    Vault Kanban
  97. Network tab (Command Center uplink) restored + two real bugs found fix

    Regression, caught by the owner: parking the legacy Express server broke the [ NETWORK ] tab. Since both servers bind 5050, the tab worked only when the legacy server happened to win the startup race.

    Vault Kanban
  98. /14 — Public marketing site (draft) built at site/ feature

    The wiki research (2026-07-08) was written from the start so it could port to a public surface. This session built that surface: an Astro static site at campping/site/, covering a Home page, a Use Cases section (5 segments), and a…

    CampPing
  99. → 2026-07-14 — Bug: half the nodes were unclickable (two attempts) fix

    Small nodes swallowed the click. The node was visibly there; clicking it did nothing.

    Vault Kanban
  100. Bug: the scanner was inventing notes that nobody wrote fix

    Even after vault-wide resolution cut the graph from 198 to 106 nodes, some of the survivors were nonsense: wikilink, Idea Name, topics/.md — notes nobody ever wrote.

    Vault Kanban
  101. Graph scanner (TDD) + GET /api/graph feature

    Built in three TDD commits (parsing helpers → path resolution + clusters → buildGraph), each red-green before the next.

    Vault Kanban
  102. GraphView component + node detail panel feature

    GraphView.jsx: force-directed canvas, cluster-colored. Node radius scales with the *square

    Vault Kanban
  103. Graph view: spec before code docs

    The cluster wikis cross-link heavily with Obsidian [[wikilinks]], and there was no way to see that structure without walking it one file at a time in Obsidian. Decided to build the view inside Vault Kanban rather than lean on Obsidian's…

    Vault Kanban
  104. App-shell refinement (fifth round) + docs/portfolio catch-up docs

    Nav links highlight the current route (text-primary font-medium); below sm, the flat 4-link row collapses behind a hamburger toggle expanding into a vertical menu (including Sign out) instead of wrapping.

    TutorHub
  105. Live verification (Phases 1-4) feature

    Clemens created the Supabase project (wanessalabs account) and Google OAuth client; filled .env and .dev.vars.

    TutorHub
  106. Post-overhaul UI/UX refinement rounds (four commits, same session) feature

    Once the 16-task overhaul merged, continued iterating directly on main (small, well-scoped features, no separate branch/plan needed) — brainstormed each round conversationally with AskUserQuestion menus, then built with TDD where the…

    TutorHub
  107. UI/UX overhaul (design → plan → subagent-driven-development → merge) feature unverified

    TutorHub
  108. Litepaper path + go/no-go framework feature

    Built the execution path from "protocol exists" to "publish litepaper" to "go/no-go decision," grounded in two fresh research pages on what documentation and benchmarks must survive in this category.

    CampPing
  109. Wiki build-out (competitor profiles, fresh research) docs

    Built the full competitor wiki in wiki/ — one story-led page per player, each freshly web-researched (2025 through July 2026), written to brand constraints (zero em dashes, no cheerleading, sourced and dated) so pages can port to the…

    CampPing
  110. /08 — Business development session #1 (revenue models + gating) feature

    Protocol and reference app built. BD conversation worked through revenue models (area 1 of 8).

    CampPing
  111. Kickoff + Phase 1 scaffold feature

    Confirmed with Clemens: vault canon instead — Vite + React + TS strict + Tailwind v4, Hono on Cloudflare Pages Functions, Supabase, Vitest.

    TutorHub
  112. Phase 2 build (same session) feature

    Server (Hono on Pages Functions): /api/google/oauth/start + /callback (HMAC-signed state carries user id statelessly, 10-min TTL), /api/google/disconnect (revoke + delete + flag flip), /api/google/events (refresh-token → access-token →…

    TutorHub
  113. Phases 3 + 4 build (same session, continued on user go-ahead) feature

    Phase 3 (dashboard): stat cards + earnings-by-month bar / hours-by-week line (recharts). Chart chrome per the dataviz skill (validated series color #2a78d6, hairline grid, muted ink, tooltips, no legend for single series).

    TutorHub

June 2026 3

  1. The triage inbox got a home and rules feature

    The staging destination became a real place in the vault with its own rules, loaded only when a task touches it. That is what turned the heartbeat from a script that printed things into something with a durable output.

    News / RSS / Email Reader
  2. A staging surface for signal picked up between sessions feature

    A read-only discovery heartbeat was added that scans local sources and stages what it finds, proposing only and never editing the vault. It is not a memory write, and it was not built for this project.

    Memory with Events
  3. A discovery heartbeat, read-only by design feature

    What landed is a scheduled scan over designated local sources that stages what it finds and proposes it, never editing the vault itself. Findings go to a triage inbox rather than the vault inbox, and a human moves them.

    News / RSS / Email Reader

May 2026 25

  1. Work began on the homework launcher feature

    First commit touching the homework routes in the hub repository. A photo of a worksheet becomes links to the games that practise that skill. The hub records no separate launch announcement for it.

    Kids Educational Games ↗
  2. Work began on Anagram Daily feature

    First commit touching this game in the hub repository. Seven letters, one centre, and every hidden word to find before the day ends. The hub records no separate launch announcement for it.

    Anagram Daily ↗
  3. Work began on Snack Pop feature

    First commit touching this game in the hub repository. Match food emojis, build combos, and beat the daily puzzle. The hub records no separate launch announcement for it.

    Snack Pop ↗
  4. Projects mindmap: elastic layout overhaul feature

    Clusters with 7–8 projects had severe leaf overlap. Root cause was three bad constants: fixed LEAF_DIST = 82, max spread of 108°, and cluster positions too close to the SVG canvas edges.

    Wanessa Labs Website
  5. Phase 1 complete: a stable executable feature

    Everything here came from watching the thing fall over. A model that downloads on first run needed to say so rather than appear frozen, a denied microphone needed a dialog and a degraded mode rather than a crash, a key-repeat needed a…

    Clembot-dictate
  6. Phase 2 complete: distribution-ready feature

    The work that turns a program into something another person can install. A no-admin installer that upgrades in place, the AI key moved out of an environment variable and into the Windows credential store, an integrity check on the…

    Clembot-dictate
  7. The memory surfaces landed first feature

    Two skills arrived on the same day and they are what memory is actually made of today. One owns the topic files and the index that lists them, creating, updating and removing entries, and reads the handoff without writing it.

    Memory with Events
  8. All three pieces landed on one day feature

    The scan, the ranking and the human gate were built together, which is why this project is further along than its sibling scaffolds.

    Self-Improvement Module
  9. Open the games hub in any browser launch

    Everything went live in one place, no download and no account.

    Wanessa Labs Games ↗
  10. Project scaffolded feature

    Created from user's project mapping pass. Initial PRD seeded from one-paragraph description.

    Kids Game Hub
  11. POW artifacts scaffolded docs

    Status at scaffold date: GTM strategy defined, not yet executing. Milestone 1 (pre-launch seeding) not started.

    Lists of 30 App Marketing
  12. Scoped: run the harness on a local model feature

    The problem was cost and confidentiality in one. Long build sessions were spending real money per session, and some internal prompts carry business context that should never leave the machine.

    Local Clembot LLM
  13. Scoped: memory should be written by events, not by one command feature

    The complaint behind this project was that a whole session's learning depended on remembering to run one command at the end of it. If that command was skipped, or the session ended badly, the memory of it was gone.

    Memory with Events
  14. Scoped: one surface for everything arriving from outside feature

    Three inbound streams, feeds, mail and chat, were being read in three places, and anything worth keeping had to be retyped into the vault by hand. Most of it was not, which is the actual cost: signal arrived, was read, and left no trace.

    News / RSS / Email Reader
  15. Scoped: a weekly reader that says what to fix next fix

    The vault accumulates faster than anyone reviews it. The idea was a scheduled pass that reads the current build state, reads what has arrived from outside, and returns a ranked list of improvement candidates.

    Self-Improvement Module
  16. Proof-of-work artifacts scaffolded feature

    The decision log and the roadmap were created on this date, joining a product requirements document that already existed, which brought this folder up to the three artifacts every project at the vault root is expected to carry.

    Sudoku
  17. Project scaffolded feature

    Created from user's project mapping pass. Initial PRD seeded from one-paragraph description.

    Puzzle Book Makers
  18. About + Services pages shipped, RSS feed fixed fix

    Added two missing pages to close the "three missing sections" gap noted in the session brief.

    Wanessa Labs Website
  19. POW artifacts scaffolded docs

    Site was live and active but missing POW documentation.

    Wanessa Labs Website
  20. Work began on the 2048 port feature

    First commit touching this game in the hub repository. Slide tiles and combine them to reach 2048, easier said than done. The hub records no separate launch announcement for it.

    2048 ↗
  21. Play Dishwasher in your browser launch

    The original Wanessa Labs mobile game, rebuilt from scratch. Fit everything into the rack, dishwasher Tetris, across seven chapters.

    Dishwasher ↗
  22. First Capacitor candidate for an Android APK feature

    Decision (2026-05-06): Sudoku is the first game targeted for a Capacitor WebView APK.

    Sudoku
  23. Migration into the gaming hub feature

    Decision (2026-05-06): Sudoku is now a route in wanessalabs-games/ rather than a standalone deployed app.

    Sudoku
  24. Find the four groups hiding in sixteen words launch

    You get five guesses. A new puzzle lands every day.

    Linked ↗
  25. Play the first set of daily puzzles launch

    The hub opened with Sudoku, Anagram Daily, 2048, Snack Pop and Crossword, plus word and number practice for kids. One fresh puzzle a day, no ads.

    Wanessa Labs Games ↗

April 2026 9

  1. Marketing infra scaffolded as agents + skills feature

    Built the content production layer as isolated agents and composable skills inside .claude/. Designed for portability to a future marketing-os repo.

    Build in Public
  2. Sprint scaffolded feature

    The sprint is a meta-layer, not a product. It documents and promotes work across listsof30app/, dishwasher/, and any other active project.

    Build in Public
  3. → 2026-04-29 — Server layer (Hono on :5050) feature

    The periodic-JSON-file design did not survive contact. In practice the board was always one refresh behind the vault.

    Vault Kanban
  4. Project initialized feature

    Promoted straight from a spoken brief with no inbox file behind it, pressure-tested, and drafted into a PRD the same day. Two decisions made here survived the whole build: record-then-transcribe rather than streaming, and paste through…

    Clembot-dictate
  5. Proof of work generated feature

    The threading model was settled on paper before any of it was written: suppress the hotkey so the key itself never reaches the document, lock around the recording flag so a repeat cannot double-fire, and transcribe on its own thread so…

    Clembot-dictate
  6. Origin feature

    Pressure-tested and passed on two grounds: it is built for a specific first user, the owner's daughter, and the MVP scope was clear from the start. The hard problem identified up front was producing step-by-step art efficiently, either…

    Learn to Draw
  7. "Her Life" audience identified as primary target segment feature

    The Lists of 30 audience skews toward women 28-45 navigating life transitions (career, relationship, identity). The "Her Life" framing captures the emotional register of the highest-engagement content in the archive.

    Lists of 30 App Marketing
  8. Community seeding strategy: invite writers first, not users feature

    Seed the app catalog by inviting 10-20 known writers to submit founding lists before any public announcement.

    Lists of 30 App Marketing
  9. GTM project scoped separately from product and content feature

    The go-to-market work for the Lists of 30 App is its own project folder, separate from the app (listsof30app/) and the content engine (lists-of-30/).

    Lists of 30 App Marketing

March 2026 3

  1. Built because every free Sudoku app is unusable feature

    Build a personal Sudoku app rather than tolerating ad-supported alternatives.

    Sudoku
  2. KDP extension: same engine, physical product feature

    Use the puzzle generator to produce a printable Sudoku book for Amazon KDP.

    Sudoku
  3. Promotion + architecture feature

    Promoted from Inbox to an active project.

    Vault Kanban