---
id: w5/m1/t001
title: Copy beancount-dashboard into dashboard/
worker: worker5
status: done
estimate: 20m
depends_on: []
---

## Objective

Bring a clean copy of the `beancount-dashboard` app into this repo as a new top-level `dashboard/` directory, excluding build artifacts, dependencies, and editor cruft — a raw copy, no edits yet.

## Context

- Source: `/Volumes/nvme4tbfish/projects/web-beancount/beancount-dashboard` (no `.git` of its own — plain copy, no submodule/subtree concerns).
- Stack: TanStack Start + Router, Apollo Client (GraphQL), Radix/shadcn UI, Tailwind v4, Vite, Vitest.
- Exclude when copying: `node_modules/` (620M), `dist/` (95M), `coverage/` (16M), `.tanstack/`, `.DS_Store`, `.output/`, `*.tsbuildinfo`, `src/routeTree.gen.ts` (generated) — same set as its own `.gitignore` plus local caches.
- Destination is a new top-level dir sibling to `operator/`, `infra/`, `deploy/` — not inside any of them (per this repo's CLAUDE.md repo map and this session's earlier architecture discussion).

## Steps

1. `rsync -a --exclude node_modules --exclude dist --exclude coverage --exclude .tanstack --exclude .DS_Store --exclude .output --exclude '*.tsbuildinfo' --exclude src/routeTree.gen.ts /Volumes/nvme4tbfish/projects/web-beancount/beancount-dashboard/ dashboard/`
2. Confirm `dashboard/package.json`, `dashboard/src/`, `dashboard/docs/` etc. landed; confirm excluded dirs did not.
3. Do not `yarn install` yet (later task) — this task is copy-only.

## Files

- `dashboard/` (new top-level directory)

## Acceptance criteria

- [ ] `dashboard/` exists at repo root with source files present, no `node_modules`/`dist`/`coverage` copied over.
- [ ] `git status` shows `dashboard/` as new untracked files (nothing staged/committed yet).

## Out of scope

- Any content edits, rebranding, or dependency install — later tasks.
