Plan an epic across repos
Status: ShippedLedgerline’s Checkout v2 epic spans two repos. The cart and refund UI live in Repository ledgerline/web , and the money model, tax lines and refund endpoint live in Repository ledgerline/api . This guide plans that epic so every story lands in the right repo, while the left nav still shows one plan.
Before you start
Both repos are on your team’s list, and you’ve attached a local clone of each (Manage repos… in the repo selector). See Multi-repo.
1. Create the epic and list its repos
Make a folder with a main doc, and list the repos the epic spans:
---type: epictitle: Checkout v2status: in-progressrepos: [ledgerline/web, ledgerline/api]---# Checkout v2
## PurposeRebuild checkout on one money model so the cart, the invoice, and refunds agreeto the cent across `web` and `api`.You can also set the list in the app: Configure epic repos opens Configure repos, where you add team repos to the epic.
2. Write one story per repo
A story names exactly one source_repo. Split each piece of work at the repo boundary:
| Story | Repo | Depends on |
|---|---|---|
| LL-201 Money type in bigint cents | ledgerline/api | none |
| LL-204 Cart API returns tax lines | ledgerline/api | LL-201 |
| LL-231 Cart summary tax breakdown | ledgerline/web | LL-204 |
| LL-214 Refund endpoint idempotency keys | ledgerline/api | LL-209 |
| LL-233 Refund button in order history | ledgerline/web | LL-214, LL-231 |
Some of these links cross repos: LL-231 in web waits on LL-204 in api. depends_on uses bare story ids from one team-wide index, so these links work like any other. See the note at the end of this guide about cross-repo links.
---type: storystory_id: LL-231title: Cart summary tax breakdownstatus: reviewsource_repo: ledgerline/webdepends_on: [LL-204]---3. Check the plan
Open checkout-v2 in the left nav. Every story from both repos is listed in one epic, and its progress counts all of them. Stories whose dependencies are done are marked ready, whichever repo the dependency is in.
To see one repo’s share of the epic, add a csquery block to the epic’s README that filters on source_repo:
```csqueryepic: checkout-v2tag: source_repo=ledgerline/webview: list```4. Open stories in their repos
Open LL-231’s workspace (right-click it in the left nav and choose Open story workspace). CodeSense creates the worktree in your web clone. Do the same for LL-214, and its worktree is created in your api clone. You don’t have to pick a clone or cd anywhere.
If one of the repos isn’t attached on your machine, you’ll see No local clone attached. Choose Attach local clone, and the open continues.
How we know this is accurate 7 sources
Checked against the app at 1b3d5a69d73473db077dfb44f4390b42cded6bd4.
Feature inventory
-
C-15 -
MR-3 -
MR-4
Code
-
src-tauri/src/commands/pipeline_scanner.rs -
src-tauri/src/commands/mcp_workspace.rs -
src/features/viewer/components/epic-repo-overlay.tsx -
src/features/viewer/components/no-local-clone-modal.tsx