Behind the work  Source of truth

How I developed this site

The team behind this site Lifecycle flow: Venu brings ideas, vibe-codes design and code with Claude Code, deploys via GitHub and Vercel, then Nova the AI collaborator and its sub-agents audit the live site, and Venu decides. Every fix runs an audit, report, approve, implement, deploy, re-verify loop. The team One human. A crew of machines. How this portfolio gets imagined, built, and kept honest — every day. 01 · Ideas Venu — the human Intent, taste, direction. Every pixel starts here. 02 · Design & code — vibe coding Venu + Claude Code He brings the design direction; Claude turns it into code, same session. 03 · Deploy GitHub → Vercel Every push goes live on venu-portfolio-ai. 04 · Audit Nova (Muse) — my AI collaborator The one I talk to. Remembers every decision, runs the audits, and coordinates the sub-agents below. Repo reader Reads the codebase Browser checker Tests the live site Researcher Researches the fix 05 · Decide Venu reviews the scorecard Approves the fix — nothing ships without his word. fix → push → re-verify Audit Report Approve Implement Deploy Re-verify Claude Sonnet 5, Opus 5.5, Haiku 4.5 · the build GPT-5.6 · prompt shaping Muse Spark · Nova + agents Also in the stack — Resend delivers the contact-form and magic-link emails. “Fifteen years ago I’d have needed a team of five for this. Today the team is me — plus the machines that never sleep.”

At a glance

The project in numbers

Every figure comes from the Claude Code session logs or the finished project files. Verified means counted from those records. Estimate means calculated from timestamps with the method explained below.

Verified

11 days

Sep 21 to Oct 1, 2026, with messages on 10 of those days. It started in Perplexity and moved to Claude.

Verified

1 session

One Claude Code conversation, worked in 24 sittings. It outgrew the AI's working memory 13 times and was summarized to continue.

Verified

123 messages

From me: 91 new requests and 32 sent while the AI was working, plus 7 images.

Verified

2,113 responses

From the AI: 320 by Claude Sonnet 5 (Sep 21 to 24), 1,066 by Claude Opus 5.5 (Sep 24 to 27, and Oct 1) and 727 by Claude Haiku 4.5 (Sep 28 to Oct 1).

Verified

2,514 actions

Tool actions by the AI, including 1,249 shell commands, 509 file reads and 427 browser actions.

Verified

2.31M tokens

Written by the AI (code, copy and reasoning). It also read about 679M tokens of context, 98% of them from cache.

Verified

52 releases

25 confirmed Vercel deploys, then 27 pushes to GitHub's main branch, which Vercel publishes automatically.

Verified

97 checks

Automated tests at launch on Sep 27, plus accessibility scans of 10 pages in light and dark themes on desktop and phone.

Estimate

~34 hours

My time in the sessions: prompting, reviewing and testing. It excludes everything I did outside them.

Estimate

~14 hours

The AI's working time: generating, running commands and checking its work.

Where my 123 messages went

AreaMessagesWhat they did
Case studies27Brought the real problems, original prototypes, mental models, research articles and corrections for all three case studies, then renamed and tightened them.
VEMA, the AI twin22Defined the concept, voice, personality, fun mode and guardrails, then pruned and refined it.
Site content and polish28Set the foundation, the layout, the facts and the spacing, plus accessibility, content protection, the footer and the contact form.
Resume reel and brand15Wrote the motion brief, then directed timing, content, color, the orange-dot brand story and the pause button.
Deploys, GitHub and sign-ins20Approved releases, signed in to Vercel when the login expired, and moved the project to GitHub.
Client names4Set the aliases, and ruled that no real client name appears anywhere on the site.
This page and the design system7Asked for this record, with a firm rule against invented numbers, and for a design system.

The message counts are verified. Each message was assigned to one area by hand, from the record. Commands I typed into the terminal aren't counted as messages.

Who brought what

The human and the AI, honestly divided

What I brought

  • Intent. What the site is for, the roles I'm targeting (Senior and Lead Product Designer, Product Design Lead, Design Manager, and AI/UX leadership), and what should stay off the web.
  • Experience and domain knowledge. 20+ years of design, the real problems behind each case study, and my original prototypes built in Figma Make.
  • Product thinking. The "Suggest > Ask > Act" mental model, escape routes when AI gets it wrong, the 7-day repeat-request rule, and "less admin work, more AI work".
  • References. A Perplexity reference to start from, two articles (AI workflows vs agents, and the questions every case study should answer) and visual references.
  • Taste and visual direction. The 10% gray background, simplicity over volume, dark reel frames, and the orange dot that travels from my name to the play button.
  • Judgment and editing. Accepting, rejecting, trimming and correcting throughout, and testing on my own laptop and phone.
  • Inspection. Nova, my AI collaborator in Muse, audited what Claude built, and I approved each fix from its scorecard.
  • Accountability. Approving every release, deciding what is confidential (including the client aliases), and owning every claim on the site.

What the AI (Claude) brought

  • Interpretation. Turning short, fast messages, often typed mid-flow, into working specifications.
  • Exploration and execution. HTML, CSS and JavaScript, serverless functions, prototypes, motion graphics, synthesized music and sound, slide decks and the VEMA assistant.
  • Structure and writing. Page architecture, copy drafted in my voice for me to edit, and 49 design answers written from research.
  • Quality. Automated tests, accessibility audits, contrast checks and screenshots across devices after nearly every change.
  • Catching problems. A stale browser cache, failing color contrast, company names in screenshots, real client names in code a browser downloads, and claims that couldn't be verified.
  • Speed. 2,514 actions in about 14 hours of working time, so ideas could be tried the same evening.

The record, step by step

Twenty-three moments, like commits in a repository

Each one follows the same path: Prompt → Interpretation → Exploration → Human decision → Revision → Outcome. I typed the prompts on the fly; here they are rewritten for clarity and structure, with the meaning unchanged. The originals are preserved in the session logs. The numbers (#1 to #132) mark my messages in the order of the record.

  1. #1–2 Sep 21

    A site from a Perplexity reference and two resumes

    Build my portfolio website end to end, using the two attached resumes and the reference I created in Perplexity.

    • Make every page clickable and fully responsive.
    • Let visitors view and download my latest resume.
    • Default to a light theme with a dark-mode toggle. Instead of pure white, use a 10% gray background to reduce eye strain.

    I'll connect my own domain once the site is ready.

    Interpretation
    A static, responsive portfolio built from my two Word resumes and the reference I had started in Perplexity. Light theme by default on a 10% gray, with a dark toggle and resume downloads.
    Exploration
    Claude built the home page, a first case study with a clickable prototype and the theme system, then tested them for console errors, overflow and broken links.
    Human decision
    Keep the design simple, with room for three case studies, each with a short recruiter version and a deep dive. I also cut the accordions and the Education box.
    Revision
    Three case study slots, each with a short version and a deep dive. The AI left slots 2 and 3 as “Coming soon” instead of inventing projects.
    Outcome
    First release the same night, after I approved the Vercel sign-in. The first sign-in code had expired.
  2. #3 Sep 21

    Judgment over volume

    Here are two more documents for case study 1: a project brief and a full case study.

    • Decide where each one fits, and whether recruiters would want to download it, so the story connects end to end.
    • Don't add them just because I asked. Judge whether they help, and avoid overwhelming readers.
    • If you do add them, place them in the deep dive.
    Interpretation
    I shared three documents for case study 1 and asked for an editorial decision, not an upload.
    Exploration
    The AI weighed each document by its reader: recruiters forward one-pagers, hiring managers save full case studies.
    Human decision
    I accepted the recommendation: publish the summary and the case study, and keep the project brief private (the AI called it “a private planning doc addressed to you”).
    Revision
    The AI regenerated both PDFs from the site pages because the originals had out-of-date links.
    Outcome
    Two downloads. The private document stayed private, and three short ideas from it went into the deep dive.
  3. #7–10 Sep 23

    White label first, then my original prototype

    Build case study 2 as a white-label case study.

    • Don't use any real names, photos or the company name from the screenshots I shared.
    Interpretation
    Case study 2, a seat-governance tool I designed, had to be rebuilt with no company identity at all.
    Exploration
    The AI couldn't load my Figma Make prototype (the editor stalled), so it designed its own white-label concept and named it “Atlas”.
    Human decision
    Drop the name “Atlas” and use my original prototype as the basis. Keep the features I liked from the AI's version, but don't overcomplicate the app.
    Revision
    The AI rebuilt my original flows without the logo, company name, real prices or organization stats, and kept three of its own features that I picked.
    Outcome
    Enterprise Tool Governance (my later rename): 14 screens and a clickable prototype, with a scan confirming no company names.
  4. #13–14 Sep 24

    Suggest > Ask > Act

    Add agentic AI to the Enterprise Tool Governance case study, using the mental model Suggest > Ask > Act.

    • Design the fallback routes: what happens if an AI approval goes wrong, and how users or admins can bypass the AI and still finish the task.
    • Make the agent act intelligently: if the same person asks for more AI credits within 7 days, it should put the approval on hold or respond accordingly.
    Interpretation
    An AI agent that decides seat requests, bounded by my mental model, with ways out and a memory of repeat requests.
    Exploration
    The AI built a simulated, rules-based agent: confidence limits, hand-off to a person, bypass routes, the 7-day rule, and nine “Test the agent” scenarios.
    Human decision
    My mental model and the 7-day rule became the spine of the case study.
    Revision
    The agent's reasoning and chosen path show on screen, and every number is labeled illustrative.
    Outcome
    41 automated prototype checks passing. This became the site's example of agentic AI.
  5. #15 Sep 24

    Stand out, without overclaiming

    Make every case study stand out, without overclaiming.

    • Add an “Outcomes, business impact & learnings” section to each case study.
    • Rename “Recruiter summary” to “Quick peek”, or suggest a better name.
    • Remove my location, add a creative title, and merge my two resumes into one Senior UX Design Leader version.

    My portfolio should stand out and win the job.

    Interpretation
    Add outcomes and impact to concept projects without presenting anything as a measured result.
    Exploration
    The AI labeled impact “Designed, not measured” and “Modeled, not measured”, and drafted learnings (“match autonomy to reversibility”, “design the exit before the entry”) for me to rewrite in my own voice.
    Human decision
    “Quick peek” replaced “Recruiter summary”. I went from two resumes to one, Senior UX Design Leader, and removed my location.
    Revision
    The rename carried through every page, file name and button.
    Outcome
    Every case study says clearly what is real and what is modeled.
  6. #18–19 Sep 24

    Case study 3, and a note about confidentiality

    Build case study 3 from my AI Insurance Quote prototype.

    • The idea builds on Gartner's view of how consumers will buy auto, home and business insurance: a price without five pages of forms first.
    Interpretation
    An AI-first insurance quote that starts from one sentence, built from my original prototype.
    Exploration
    The AI rebuilt the prototype white-label, removed the logo and every claim it couldn't verify, and swapped in sample carriers and prices.
    Human decision
    I wrote what the confidentiality note had to say: the real work is under NDA, and these case studies mirror real problems. Later I asked for it to be shorter.
    Revision
    A short note in my voice at the top of the case studies.
    Outcome
    AI Insurance Quote, with a prototype visitors can get a quote from themselves.
  7. #20–21 Sep 25

    The process belongs in a deck, not on the page

    Create a design process deck for each case study.

    • Cover discovery, research materials, screenshots, ideas, user flows, journey maps and personas, so reviewers can see how I approached each problem.
    • Don't put all of this on the web: the pages should show only the problem, impact, product and experience.
    • Use landscape slides, like a presentation. Keep my resume as a portrait PDF.
    Interpretation
    Keep the web pages focused, and move the depth into presentation decks.
    Exploration
    The AI wrote and produced three design process decks of 18, 21 and 23 slides: research, personas, journey maps, flows, principles and validation plans.
    Human decision
    Landscape for the case study decks, portrait for the resume.
    Revision
    The web pages were cut back to problem, impact, product and experience.
    Outcome
    Each case study now has a quick peek, a case study and a design process deck. Two days later I made them view only (see #69).
  8. #22 Sep 25

    Systems, accuracy and a secure way to share

    Put the site on a solid system, correct the facts and add a secure way to share confidential work.

    • Use a 12-column grid: responsive, mobile friendly and minimal, with columns always evenly distributed.
    • Update the facts everywhere: 10+ designers, and “25+ apps designed and led”.
    • Run an accessibility audit and fix every issue.
    • Add a short contact form (name, email, phone, message; name and email required) with spam protection.
    • Add a password-protected Projects area: visitors request access and receive a one-time password by email that expires after 3 hours.
    Interpretation
    I corrected facts (10+ designers, and how the 25+ apps are described), and asked for structure, accessibility and a secure way to share confidential work.
    Exploration
    The AI moved the layout to a 12-column grid, ran an accessibility audit, added a contact form with bot protection, and designed a Projects area that emails a one-time password and opens a 3-hour session.
    Human decision
    I defined the flow, and asked for a better word than “5 countries”. The AI suggested “three continents”.
    Revision
    Every group of columns shares the grid and the same spacing.
    Outcome
    0 accessibility violations. The contact form and Projects area are built as serverless functions and switch on once their keys are added.
  9. #25–26 Sep 25

    The bug that wasn't in the code

    Fix the spacing between boxes across the whole site.

    • Boxes such as The problem and The approach, and Outcomes and Business impact, are touching each other.
    • Give every group of boxes the same spacing everywhere, including the three “How I work with AI” boxes.
    Interpretation
    A visual problem I could see but the AI couldn't reproduce.
    Exploration
    The AI checked its own build and the live site: every group had a 16–24px gap. The cause was my local preview server showing an old copy of the stylesheet.
    Human decision
    One spacing rule for the whole website.
    Revision
    A single 24px gap everywhere, and version stamps that make browsers load the newest styles.
    Outcome
    My eye caught a real inconsistency (the gaps did vary), and the AI's testing found the root cause.
  10. #32–33 Sep 25

    Workflow or agent? I brought the research

    Clearly distinguish AI workflows from agentic AI, using this article.

    • Tell me which case study fits which model, and adapt each experience to match.
    • Make every case study answer seven questions: the problem, why it mattered, the research, the constraints, the decisions, engineering's influence, and what changed after launch.
    • These are proof-of-concept demos, so don't overthink or overcomplicate them.
    Interpretation
    Classify the three case studies against a published framework, and answer the seven questions from a second article on every case study.
    Exploration
    The AI read both articles and mapped them. Claims Adjuster Copilot is an AI workflow: fixed steps, and a person approves every payout. Enterprise Tool Governance and AI Insurance Quote are agentic AI.
    Human decision
    I changed the Claims chip to “AI Workflow” and set the roles I'm targeting.
    Revision
    A workflow-versus-agent comparison table, and “the case in seven answers” on each case study.
    Outcome
    The portfolio reads as AI product design, not just UX with AI added.
  11. #34–53 Sep 25 and 26

    VEMA: me as a bot

    Build an AI assistant for my portfolio called VEMA: Virtual Engine for Multimodal Assistance.

    • VEMA is a virtual version of me: recruiters and hiring managers can interview it about my experience, skills and roles, and it answers on my behalf.
    • Use your full capabilities in design and engineering to build it.
    Interpretation
    An interview-ready AI twin that answers only from my resume and portfolio, says clearly that it's an AI, and hands off to the real me.
    Exploration
    The AI built quick answers from one knowledge file (these work with no AI key), a Claude-powered mode, voice in and out, and a fun mode.
    Human decision
    A footer line, “Talk to the real Venu Mathukumalli”. The panel blended into the page and had too many outlines, so it was restyled. I suggested a light glow and the idle rainbow. The fun ideas were mine too: an aeroplane, baseball, a dance and a dark overlay. Then I pruned: chess, magic, fireworks, coffee or tea and the rocket went, and later baseball and cricket.
    Revision
    The AI declined to add a copyrighted song (Naatu Naatu). It wrote an original track instead, with a way to add a licensed clip.
    Outcome
    VEMA on every page, with four fun effects and calm versions for visitors who prefer reduced motion.
  12. #38, 45, 51, 52, 61 Sep 25 and 26

    The voice took five rounds

    Make VEMA's voice work, and sound human.

    • The voice sounds robotic; make it sound like a real person.
    • Read-aloud isn't working on localhost.
    • The female and male voices still don't read the answers.
    • I still can't hear VEMA on desktop or mobile, although it worked on localhost earlier.
    Interpretation
    My reports were the ground truth. The AI's fixes worked in its test browser but not in mine.
    Exploration
    Tracing speech in a real Chrome window found the causes: Chrome silently drops speech that starts right after a cancel, a “priming” workaround jammed the speech queue, and phones only allow audio that starts from a tap.
    Human decision
    I kept testing on my own laptop and phone until it worked. Later I chose a male voice only.
    Revision
    A rebuilt speech pipeline (speak inside the tap, retry on a device voice, clear hints), plus support for neural voices.
    Outcome
    The honest status: device voices vary, and the human-sounding voice needs a text-to-speech key that isn't set up yet.
  13. #54–59 Sep 26

    Start with a bang: the resume reel

    Act as a world-class motion designer and create a 15-second resume reel.

    • Make it dynamic and confident: open with a striking hook in the first second.
    • Move through distinct techniques (typography, shape play, camera moves, color shifts), cut to the rhythm of music.
    • Land on a clean, memorable final frame.
    • Place it as a hero as wide as the content, with rounded corners. At the end it fades, the content moves up, and a small play button lets visitors replay it.
    Interpretation
    My own brief: a motion-graphics hero as wide as the content, with rounded corners, that fades away and leaves a play button behind.
    Exploration
    The AI built a 15-second, 8-scene reel in code, in orange and white on dark ink.
    Human decision
    The text moved too fast to read, so extend it to 30 seconds. Don't show countries. Use a portrait version on phones. Remove the sky-blue background from one frame. Add a wall of brand logos. Turn the reel into the play button.
    Revision
    15 → 30 → 38 → 39 seconds. Light original music that starts muted, a portrait cut for phones, and the case study apps in the spotlight.
    Outcome
    The reel ends by shrinking into the orange play button.
  14. #60 Sep 26

    One dot, one story

    Make a rounded orange dot the core brand element.

    • It starts as the logo beside my name, moves into the reel and ends as the play button.
    • The VEMA icon stands on its own, in darker orange gradients.
    • Bring orange into the UI where it helps, such as the calls to action, and adjust the shades so orange and white pass accessibility contrast.
    Interpretation
    A brand system built from a single element.
    Exploration
    The AI found the reel orange (#FF5A1F) failed contrast: 2.5:1 on the gray page and 3.1:1 behind white text. It proposed two shades: #E8501A for graphics (3:1) and #C2410C for buttons with white text (5.2:1).
    Human decision
    The dot story, the dark-orange VEMA icon, and permission to bring orange into the buttons.
    Revision
    In review, the first cut sent the dot straight through the letters of “VENU”. The fix: the dot takes its place first, and the word slams in to meet it.
    Outcome
    The header dot flies into the reel, becomes the full stop, floods the last frame and lands as the play button.
  15. #61–70 Sep 26

    Guardrails, trust and control

    Give visitors more from VEMA, and give me more control over my content.

    • Let VEMA answer any question the way Claude would, with guardrails against inappropriate or offensive content, while answering everything about my resume and portfolio.
    • Generate follow-up questions from the conversation, and add “Ask me a design question”.
    • After six questions about me or my work, show “You're hired!”, as if the interview has ended.
    • Restrict copying, and make the case study decks view only.
    Interpretation
    VEMA as a broader assistant and a design knowledge hub, with clear limits, and more control over my own content.
    Exploration
    The AI added a Claude-powered general mode with guardrails and 49 researched design answers. Suggested questions now follow the conversation, and a “You're hired!” moment arrives after six interview questions.
    Human decision
    Restrict copying, make the case study decks view only, add my photo, and fit the reel above the fold on my 13-inch laptop.
    Revision
    The AI said plainly that copy protection only stops casual copying, since screenshots still work. It then showed the decks as slide images and kept the PDF files off the live site.
    Outcome
    My content is harder to lift, and a visitor never has to hunt for the play controls.
  16. #71 Sep 27

    This page

    Document how we built this site together, as a transparent source of truth.

    • Show my prompts, the decisions, the corrections and the iterations.
    • Don't claim a token count or total hours unless those numbers can be recovered or reasonably calculated. Invented statistics would undermine the trust this page is meant to create.
    Interpretation
    A source of truth, not a story about AI magic.
    Exploration
    The AI parsed the session logs on my Mac: messages, responses, models, tokens, tool actions, deploys and timestamps.
    Human decision
    Show the process, the failures and the judgment, and label every estimate.
    Revision
    Confidential materials, file names and client-identifying details are left out on purpose.
    Outcome
    The page you are reading.
  17. #74–77 Sep 27 and 28

    A design system, and a stop I agreed with

    Refine this page, and document the system behind the site.

    • Include everything in the record: my original screenshots, content and meeting notes. I'll decide later whether it stays public.
    • Move the “How I developed this site” link under the copyright; it takes too much space.
    • Rewrite my prompts in the record clearly and professionally. I typed them on the fly.
    • Create a design system for the site: a UI library, brand colors and theming, with a 60 / 30 / 10 color rule (background, sky blue, orange).
    • Animate the dot beside my name: slow, very subtle, and on a loop.
    Interpretation
    A fuller private record, a cleaner public one, and a reference for the visual system.
    Exploration
    The AI started a private, local-only copy with the original files. Claude Code's permission system blocked it twice as a sensitive action, because it pulled confidential employer material into a new document. The AI stopped instead of finding a way around it.
    Human decision
    I set the 60 / 30 / 10 color rule and the brief for the dot. Whether a fuller record would ever be public stayed my call.
    Revision
    Every prompt in the record was rewritten as a goal plus requirements, with the meaning unchanged. A Design System page joined this one in the footer.
    Outcome
    My longer rewrite of this page's brief (#76) hit the weekly usage limit. The retry the next night (#77) failed because the conversation had grown too long, so the work moved on.
  18. #78–88, 102–104 Sep 28 and 29

    From one laptop to GitHub

    Put this project in a new private GitHub repository.

    • Package the code so I can also host it elsewhere or run it locally.
    • Then pull the latest changes from the main branch and redeploy to Vercel.
    Interpretation
    Version history and one source of truth, instead of a folder on my laptop.
    Exploration
    The GitHub command-line tool wasn't installed, so I created the repository on GitHub and signed in from the terminal. It took eight terminal attempts.
    Human decision
    I chose GitHub over the downloadable package (#103).
    Revision
    The AI also packaged the site as downloadable archives with a deployment guide.
    Outcome
    The first commit landed on Sep 28. Two days later I asked for a beta branch for the link I had already shared with companies (#112). Now every push to main updates the live site.
  19. #89–101 Sep 28 and 29

    Less, again

    Simplify the site.

    • Narrow the content to 10 columns; keep the header and footer at 12.
    • Remove the resume section, the dance question and the Projects link.
    • Rename Figma Seat Governance to Enterprise Tool Governance, and remove the word “Figma” from the case study. I'll explain the tool in person.
    • Add thumbnails to the case studies, then make them compact: a small image on the left, the text on the right.
    • Make my headshot smaller.
    Interpretation
    A tighter, quieter home page that leaves more for the conversation.
    Exploration
    Claude Haiku 4.5 made these changes. The links were renamed before the files, which broke the Enterprise Tool Governance case study until I reported it (#101).
    Human decision
    Remove the divider lines between sections instead of fighting the gap under the header, and let visitors copy text again while images stay protected (#100).
    Revision
    The headshot went through five rounds of resizing before landing at 200 × 200 px (#111).
    Outcome
    Content in 10 columns, three compact case study cards with thumbnails, and a renamed case study.
  20. #111, 114, 125–131 Sep 30 and Oct 1

    No real client names, anywhere

    Remove real client names from the site.

    • Replace real company and client names with aliases: “Northstar”, “Insurance Company” and “Community Housing Services”.
    • Keep real company names only in my Experience section.
    • That includes what visitors see after signing in: no real client names before or after login.
    • Don't change my resume. I'm applying for jobs with it.
    Interpretation
    One naming rule for the whole site, with two deliberate exceptions: the Experience section and the resume.
    Exploration
    The first pass also changed my Experience section, which I reversed (#114). Later sweeps searched every page, script, data file, PDF and file name.
    Human decision
    Aliases everywhere, including the sign-in-only area. Real names only on my resume.
    Revision
    The AI found real names where a visitor never reads but a browser still downloads: VEMA's matching keywords and the internal IDs in the sign-in data. It also removed a client's logo from the reel.
    Outcome
    One naming rule, checked across the whole site, with the resume left exactly as I wrote it.
  21. #112–114, 120–124 Sep 30 and Oct 1

    The reel, restored, with a pause button

    Refine the intro reel.

    • Bring back the original sequence, from the hook to the finale, and add a Pause/Play button.
    • Add one more logo so the brand wall has four per row, and hold that frame three seconds longer.
    • When the reel ends, show the play button in the top-right corner.
    • When someone shares my link, show the home page as the preview image, not a case study screen.
    Interpretation
    A reel visitors can stop, and a play button that always lands where they expect it.
    Exploration
    My request to “reverse the content” was read as “play it backwards” (#112), so I asked for the original order back (#113).
    Human decision
    One Pause/Play toggle instead of two buttons, and a play button aligned to the content's right edge (#121–122).
    Revision
    Nova traced the missing play button to code that picked the wrong button (#120), and found that resume never ran and paused scenes kept moving (#123). I noticed the play button covering VEMA's panel (#124).
    Outcome
    A 42-second reel with a working pause, a play button on the grid, and the home page as the preview when the link is shared.
  22. #107–109, 130–131 Sep 30 and Oct 1

    VEMA, simpler and clearer

    Make VEMA simpler to use.

    • Close the bot, and the airplane and motorcycle effects, with a click anywhere outside them.
    • Tighten the header: put the sound, new chat and close buttons on the VEMA line.
    • Read every resume and portfolio answer aloud in the male voice, but not the design questions.
    • The pilot's greeting says “Hi recruiters”. Speak to everyone who visits.
    Interpretation
    Fewer clicks, less chrome, and a voice that matches the interview.
    Exploration
    Clicking outside worked for the effects, but the bot sometimes needed two clicks to open again.
    Human decision
    Keep click-anywhere for the effects, and remove it from the bot (#109).
    Revision
    The header's intro went from three lines to two. Only “Tell me about yourself” had spoken on its own; now every resume and portfolio answer does.
    Outcome
    The captain now says “Welcome aboard, everyone!”
  23. #120–129 Oct 1

    Claude builds, Nova audits

    Fix these five regressions from the last round.

    • The Design System link in every footer is broken: its tag is missing a “>”.
    • A sentence on the Projects page reads “including the a”.
    • The three “Deep dive” links need names that say which case study they open.
    • Empty footer markup is still on four pages.
    • The reel still loads a client's logo.
    Interpretation
    A second pair of eyes on every round: Claude builds, Nova checks, and I decide.
    Exploration
    These came from one bulk find-and-replace by Claude Haiku 4.5 (#125). The same edit also broke VEMA on every page by putting curly quotes into its code, and reported a cleanup it hadn't done.
    Human decision
    I added Nova, my AI collaborator in Muse, as the auditor, and passed its findings to Claude, round by round.
    Revision
    Claude Opus 5.5 caught the VEMA break with a syntax check and the broken markup with a tag scan, so two of Nova's five findings were already fixed when the report arrived. It also tested Nova's exact pause fix, found two glitches, and changed it (#123). Nova later found that Escape no longer closed VEMA on the live site (#129).
    Outcome
    Three layers of quality checks: the AI's own tests, Nova's inspection, and my testing on my laptop and phone.

Where direction changed

Redirections, pushback and mistakes

The work improved at the points where one of us changed the other's mind, and where mistakes were caught.

I redirected the AI

  • Its “Atlas” concept → my original prototype (#9)
  • Two resumes → one: Senior UX Design Leader (#15)
  • “Recruiter summary” → “Quick peek” (#15)
  • Ten fun ideas → pruned to four (#46–52)
  • A 15-second reel “too fast to read” → 30 seconds (#56)
  • A sky-blue frame → dark backgrounds (#59)
  • Female voice with a toggle → male voice only (#66)
  • Downloadable case study PDFs → view only (#69)
  • Figma Seat Governance → Enterprise Tool Governance, with no “Figma” in the case study (#90, #96)
  • A bot that closes on any outside click → back to its close button (#109)
  • A reel played backwards → the original order, with a pause button (#113)
  • Aliases in my Experience section too → real names there, aliases everywhere else (#114)
  • “Hi recruiters” → “Welcome aboard, everyone” (#131)

The AI pushed back or flagged

  • Kept a private project brief off the site (#3)
  • Left placeholders instead of inventing case studies (#2)
  • Labeled impact “not measured” (#15)
  • Removed company logos and unverifiable claims from the prototypes (#10, #19)
  • Declined a copyrighted song (#45)
  • Replaced an orange that failed contrast (#60)
  • Said that copy protection can't stop screenshots (#67)
  • Refused to publish any number it couldn't verify (#71)
  • Stopped instead of copying confidential employer files when the permission system blocked it (#74)
  • Tested Nova's pause fix and changed the parts that caused glitches (#123)
  • Found real client names in code a browser downloads, not just on the page (#129)
  • Kept tools that ran outside these sessions out of the numbers (#132)

AI mistakes, and how they were caught

  • The voice worked in its test browser but not mine: four rounds (#45–52)
  • The brand dot crossed through the letters of “VENU”: caught reviewing frames
  • Autoplay counted as a button press and stole keyboard focus from VEMA: caught by an automated test
  • An edit meant for one element distorted another: caught in review
  • The photo layout broke at 1,100px wide: caught by a layout test
  • A temporary folder was wiped, taking the test scripts with it: rebuilt inside the project
  • Links renamed before their files broke a case study: caught by me (#101)
  • Pause/Play: resume never ran and scenes kept moving: caught by Nova (#123)
  • The play button sat above VEMA's panel: caught by me (#124)
  • A bulk find-and-replace broke VEMA and the footer link on every page, and reported a cleanup it hadn't done: caught by a syntax check, a tag scan and Nova (#125–127)
  • Escape stopped closing VEMA because focus was outside the panel: caught by Nova on the live site (#129)

Tools and models

What was actually used

Only tools and models that appear in the records, or that I used myself, are listed.

Tool or modelRole in this project
PerplexityWhere I started. I built the first reference there and handed it to Claude in my first message. That work isn't in the Claude logs, so it isn't counted here.
Claude (Claude Design canvas) and FigmaSep 18 to 20, before the website: designing the Claims Adjuster Copilot screens, in a separate session (7 of my messages, 100 AI responses).
Claude Code (desktop app)The workspace where the whole site was built, tested and deployed (app versions 2.1.275 to 2.1.284).
Claude Sonnet 5The AI model from Sep 21 to 24: 320 responses.
Claude Opus 5.5The AI model from Sep 24 to 27, and again on Oct 1: 1,066 responses.
Claude Haiku 4.5The AI model from Sep 28 to Oct 1: 727 responses.
Nova (Muse)My AI collaborator. Nova is my virtual computer in Muse: it remembers our decisions, watches each deploy and audits the live site, and its findings come back to me as a scorecard. It runs outside Claude Code, so its work isn't in these numbers.
Nova's sub-agentsSpun up per task: a repo reader, a browser checker and a researcher. They run in Muse, outside these sessions, so they aren't in these numbers.
Muse SparkThe model behind Nova and its sub-agents.
GPT-5.6Prompt shaping, outside these sessions.
Figma and Figma MakeMy original prototypes for Enterprise Tool Governance (first called Figma Seat Governance) and AI Insurance Quote, used as the source for the white-label rebuilds.
Microsoft WordThe resume master; the portrait resume PDF is exported from Word.
HTML, CSS and JavaScriptThe site itself, with no framework. It uses web animations, the Web Audio API for the music and sound effects, and the Web Speech API for voice.
GitHubA private repository since Sep 28: the version history, with a main branch for the live site and a beta branch for changes I want to review first.
VercelHosting, serverless functions and production deploys. Since the move to GitHub, each push to main publishes the site automatically.
ResendDelivers the contact-form and magic-link emails.
Puppeteer, axe-core and pdf.jsAutomated browser tests and accessibility audits at launch, and turning the decks into view-only slides.
Claude's in-app browserThe AI's own checks after each change: clicking through pages, timing animations and pressing keys, at desktop and phone sizes (427 browser actions).
Quality checks (QA)Three layers: the AI's own tests and browser checks, Nova's inspection, and my testing on my laptop and phone.
Fontshare, Simple Icons and Wikimedia CommonsThe Cabinet Grotesk and Satoshi fonts, and the monochrome brand logos in the reel.
Claude API (for VEMA)VEMA's live AI mode is built but switches on only when an API key is added. Until then, VEMA answers from its built-in knowledge.

How the numbers were measured

Method and limits

Sources

  • Session logs. Claude Code keeps a record of each conversation on my Mac. The website session holds everything from my first message on Sep 21 to this update on Oct 1.
  • Messages. My messages are new requests plus messages I sent while the AI was working, with duplicates and system notices removed. Nine commands I typed into the terminal keep their place in the numbering but aren't counted as messages.
  • Tokens. Taken from the usage data returned with each AI response, counting each response once. Context tokens are mostly cache reads: the AI re-reading the same conversation cheaply at every step. Summary calls made when the conversation outgrew memory may not be included.
  • Releases. Before GitHub, counted from the deploy commands in the logs (shell and terminal) and their confirmed results; a few terminal runs have no captured result, so that count is a minimum. Since Sep 28, successful pushes to the main branch count too, because Vercel publishes each one.
  • Project files. The site today: 12 pages and 3 prototypes, about 14,700 lines of HTML, CSS and JavaScript, and 9 serverless functions in 5 areas (configuration, contact, VEMA, VEMA's voice and project access).

Estimates

  • My time (~34 hours). The total length of 24 working sittings, where a sitting ends after 90 minutes of silence. It covers prompting, reviewing and testing during the sessions.
  • AI working time (~14 hours). The sum of intervals that end in an AI response or a finished tool action and are shorter than 10 minutes.

Not counted

  • My 20+ years of experience, which no log can measure.
  • The Perplexity work, my original Figma Make prototypes and my resume writing.
  • Thinking time between messages, and testing on my own devices outside the sessions.
  • Nova's audits and its sub-agents in Muse, and prompt shaping in GPT-5.6, which happen outside these sessions.
  • Earlier Claude sessions in July and August 2026, where I explored turning Figma and Claude Design files into code.

Left out on purpose: confidential materials I shared privately, file names, and anything that could identify a client, including real client names.

AI did not replace the designer. AI amplified the designer.