Use cases

What working with VIDA sounds like.

Each one is a real exchange shape: what you say, what VIDA says out loud, and what she puts on screen in an aside. The company, people and issues are made up; the behaviour is what VIDA does today.

Parallel tasks from your tracker

Issues become briefs, briefs become Claude Code tasks in worktrees of their own, and the tracker moves as the work does.

Three bugs, three tasks, one sentence

  1. you

    VIDA, pick up the three CSV export bugs in the Billing project.

  2. vida

    Starting three tasks now. Each has its own worktree, and the issues are in progress. The rest is on screen.

    LED-142 Export drops rows after a page break vida/led-142-export-pagesLED-147 Retry exhausts on 429 from the bank vida/led-147-retry-429LED-151 Currency column ignores locale vida/led-151-currency-localemodel: Claude Code default · 3 running · base: dev
  3. you

    How are those going?

  4. vida

    Two are done and waiting for review. The locale one is still writing tests.

under the hood linear__list_issues, start_task issue: "LED-142" (×3), list_tasks

A small model for a small job

  1. you

    Rename InvoiceRow to LineItem across the web app. Do that one on haiku.

  2. vida

    Started on haiku. Your standing dev model is unchanged.

    rename-invoicerow-7k2d on vida/rename-invoicerow model: haiku

under the hood start_task model: "haiku"

Work the backlog overnight

  1. you

    Work through the Billing backlog tonight. Five tasks at most, two at a time.

  2. vida

    Armed, and nothing has started yet. Seven issues are startable and four are held. Say go when the list looks right.

    next: LED-163 Empty state for the payouts table (small) LED-158 Paginate the audit log endpoint (small)held: LED-160 security: rotates API tokens LED-171 a decision: pick a PDF library LED-174 external: needs a sandbox account at the bank LED-166 too big: reads as a new component
  3. you

    Go.

  4. vida

    Going. It stops by itself after three landings so you can read them.

under the hood autopilot goal: … project: "Billing" budget: 5 parallel: 2, autopilot_next

Reviewing and landing

Finished work waits to be read. Landing it, queueing it, taking it back out and promoting it are all things you say.

Read it, then land it

  1. you

    Walk me through the retry change.

  2. vida

    It adds backoff with jitter for 429s and caps retries at five. Four files, all in the bank client. The review tab has it open.

    review: led-147 · src/bank/client.ts · change 1 of 6
  3. you

    Looks right. Land it.

  4. vida

    Landed on dev as one merge. LED-147 is done in Linear.

    merge 4e1c9a2 Merge vida/led-147-retry-429 (--no-ff) into dev

under the hood review_task, review_file, merge_task

Land the lot

  1. you

    Land it all.

  2. vida

    Queued four, in this order. Each one is rebased, built and tested in its own worktree before it merges.

    1 led-142 2 led-158 3 rename-invoicerow 4 led-151 (conflicted - a fix task will take it)

under the hood land_all

Take one back out

  1. you

    The page-break fix broke the totals row. Take it back out.

  2. vida

    This would revert the whole of led-142 in one commit: two files. Shall I?

    revert_landing led-142 preview: src/export/paginate.ts, src/export/paginate.test.ts
  3. you

    Yes.

  4. vida

    Reverted on dev. Main has not moved.

under the hood list_landings, revert_landing preview: true, revert_landing

Promote, on your word only

  1. you

    What would go to main?

  2. vida

    Six commits, all landed this week. Nothing has been promoted; say so and I will.

    main..dev: 6 commits · led-147 retry, led-163 payouts, rename-invoicerow, …
  3. you

    Promote it.

  4. vida

    Main is fast-forwarded to dev.

under the hood git__promote, git__promote confirmed: true

What's waiting on me

One question, one honest answer: what needs a person, what has been sitting, and what is fine.

"What's waiting on me?"

  1. you

    What's waiting on me?

  2. vida

    Three branches to review, and one plan to sign. The retry fix has waited longest, about five hours.

    AWAITING REVIEW - 3 finished, unmerged and not in the merge queue: >> "Retry exhausts on 429" (led-147) on vida/led-147-retry-429, 5 hours ago, 4 file(s) >> "Export drops rows" (led-142) on vida/led-142-export-pages, 2 hours ago, 2 file(s) "Empty payouts state" (led-163) on vida/led-163-payouts-empty, 6 minutes ago, 3 file(s)SIGN-OFF - plan invoice-export: current, no open discoveries

under the hood list_tasks, the HUD's "waiting on you" strip

Is anything stuck?

  1. you

    Is anything stuck?

  2. vida

    One thing. The locale branch will not rebase onto dev, because two files disagree. Everything else is fine.

    needs-rebase led-151 vida/led-151-currency-locale conflicts: src/export/format.ts, src/export/format.test.ts errors in my log, last 24h: 0

under the hood self_check

Back from lunch

  1. you

    Right, I'm back.

  2. vida

    Welcome back. Two tasks finished and one landed on dev while you were out. The list is at the top of the screen.

    while you were away (2h 40m) landed on dev led-163 Empty payouts state (self-landed: tests green, no sensitive paths) finished led-142, led-147 - waiting for review autopilot 2 of 5 used · waiting on led-158

under the hood vida__while_away

Repo health, filed to the tracker

A read-only sweep of every registered repository for lost work, leaked secrets and quietly broken delivery.

Health check, filed as issues

  1. you

    Run a health check on the Ledgerline repos and file anything serious.

  2. vida

    Done. Two high findings are filed in the Repo Health project. One looks like a live token in a test fixture.

    ledgerline-api high secrets.tokens test/fixtures/bank.json:12 sk_l… (40 chars) -> LED-180ledgerline-web high loss.unpushed branch feature/dark-mode, 9 commits, 23 days -> LED-181ledgerline-web low hygiene.readme no setup section (not filed)read only: no fetch, no hooks, no installs

under the hood scripts/repo-health.mjs --file-issues

See it before it files

  1. you

    What would the health check file, without filing it?

  2. vida

    It would close one issue whose check now passes, and open nothing new.

    close LED-176 loss.stale-remote ledgerline-api (fetched 2 days ago)

under the hood scripts/repo-health.mjs --dry-run

Signing and running a plan

Bigger changes go through a SynthKit plan: designed in rounds, signed by a person, run in dependency waves under a budget.

Start a plan from a sentence

  1. you

    Let's plan the invoice export rework for Ledgerline.

  2. vida

    Plan created, unsigned and empty. It is on the projects tab, ready for a design round.

    specs/invoice-export/plan.md committed on dev · synthkit plan check: unapproved

under the hood vida__create_plan

Sign it, price it, run it

  1. you

    Is the invoice export plan ready?

  2. vida

    Yes. It is current with no open discoveries, so it needs your signature. The Sign box is on its card; I cannot sign for you.

  3. you

    Signed. I've put forty dollars in and pressed Execute.

  4. vida

    The dry run priced it at about twenty-six dollars. Confirm on the card and it starts.

    invoice-export · 7 tasks in 3 waves · estimate $26.40 of $40.00 cap
  5. you

    How far has it got?

  6. vida

    Wave one has landed. Two of wave two are running, and nothing needs you.

under the hood plan card: Sign, Execute (SynthKit plan run --dry-run, then plan run)

Reminders and calendar

The ordinary half of the day, in the same conversation as the code.

A reminder with a deadline

  1. you

    Remind me to renew the staging certificate before the thirtieth.

  2. vida

    Noted, due by the thirtieth.

    reminder: renew the staging certificate · due by 30 Oct
  3. you

    Done the certificate.

  4. vida

    Cleared.

under the hood reminders__add due_by, reminders__clear

Find an hour

  1. you

    What's on tomorrow, and when could Tom and I do the sprint review?

  2. vida

    Three meetings, the first at half nine. You are both free from two until four.

    09:30 Standup11:00 Harbourside Dental onboarding call16:00 1:1 with Danafree together: 14:00-16:00
  3. you

    Book two till three.

  4. vida

    Booked: sprint review, two till three tomorrow.

under the hood whats_on, find_free_time, schedule (needs the calendar write grant)

Debugging from her own error log

VIDA keeps her own errors and parked failures, and reads them back when something goes wrong.

"Why did that fail?"

  1. you

    Why did the task status check fail just now?

  2. vida

    The status tool threw on a task record with no state yet. It has happened three times today, and it is logged as an issue.

    [issue] (i-k3n2) The task status tool threw instead of reporting the task in dev__task_status · seen 3 times, first 09:12, last 14:22 expected: the task's current state got: TypeError: Cannot read properties of undefined (reading 'state')
  3. you

    Start a task to fix it.

  4. vida

    Started, with the issue as the brief.

under the hood recent_errors, issues__list_issues, start_task

What did we decide?

  1. you

    What did we decide about the merge queue on Tuesday?

  2. vida

    To land the export fixes one at a time through the queue, not all at once. The exchange is on screen.

    Tue 14:05 you: "queue them, I don't want two migrations racing"

under the hood diagnostics__search_turns