Behind the work Source of truth
How I developed this site
Every prompt, decision, correction and number from the session logs.
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.
11 days
Sep 21 to Oct 1, 2026, with messages on 10 of those days. It started in Perplexity and moved to Claude.
1 session
One Claude Code conversation, worked in 24 sittings. It outgrew the AI's working memory 13 times and was summarized to continue.
123 messages
From me: 91 new requests and 32 sent while the AI was working, plus 7 images.
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).
2,514 actions
Tool actions by the AI, including 1,249 shell commands, 509 file reads and 427 browser actions.
2.31M tokens
Written by the AI (code, copy and reasoning). It also read about 679M tokens of context, 98% of them from cache.
52 releases
25 confirmed Vercel deploys, then 27 pushes to GitHub's main branch, which Vercel publishes automatically.
97 checks
Automated tests at launch on Sep 27, plus accessibility scans of 10 pages in light and dark themes on desktop and phone.
~34 hours
My time in the sessions: prompting, reviewing and testing. It excludes everything I did outside them.
~14 hours
The AI's working time: generating, running commands and checking its work.
Where my 123 messages went
| Area | Messages | What they did |
|---|---|---|
| Case studies | 27 | Brought the real problems, original prototypes, mental models, research articles and corrections for all three case studies, then renamed and tightened them. |
| VEMA, the AI twin | 22 | Defined the concept, voice, personality, fun mode and guardrails, then pruned and refined it. |
| Site content and polish | 28 | Set the foundation, the layout, the facts and the spacing, plus accessibility, content protection, the footer and the contact form. |
| Resume reel and brand | 15 | Wrote the motion brief, then directed timing, content, color, the orange-dot brand story and the pause button. |
| Deploys, GitHub and sign-ins | 20 | Approved releases, signed in to Vercel when the login expired, and moved the project to GitHub. |
| Client names | 4 | Set the aliases, and ruled that no real client name appears anywhere on the site. |
| This page and the design system | 7 | Asked 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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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).
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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!”
-
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 model | Role in this project |
|---|---|
| Perplexity | Where 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 Figma | Sep 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 5 | The AI model from Sep 21 to 24: 320 responses. |
| Claude Opus 5.5 | The AI model from Sep 24 to 27, and again on Oct 1: 1,066 responses. |
| Claude Haiku 4.5 | The 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-agents | Spun 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 Spark | The model behind Nova and its sub-agents. |
| GPT-5.6 | Prompt shaping, outside these sessions. |
| Figma and Figma Make | My 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 Word | The resume master; the portrait resume PDF is exported from Word. |
| HTML, CSS and JavaScript | The 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. |
| GitHub | A 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. |
| Vercel | Hosting, serverless functions and production deploys. Since the move to GitHub, each push to main publishes the site automatically. |
| Resend | Delivers the contact-form and magic-link emails. |
| Puppeteer, axe-core and pdf.js | Automated browser tests and accessibility audits at launch, and turning the decks into view-only slides. |
| Claude's in-app browser | The 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 Commons | The 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.