Product · Deltas

Epic + tasks + PRs +
PRD + signals · one object.

A delta owns the whole change — the motivating signal, the PRD, the design, the approval, the typed code slices, the PRs, the deploy, the post-ship metric. Six phases. Six gates. One number: #7.

trunk.dev/norrland/norrland-shop/main/deltas
All open deltas
7 Release notes →
Sort: Last activity
Status: any Priority: any Author: any Team: any Type: any
ID Team Title Priority Progress Size
#7
Cart
Epic Add You may also like empty state to /cart
6 slices · 2 PRs · conflict with #5
High
In Progress
2/6 slices merged
L
#6
Checkout
Epic Rename Checkout → Place order
Copy + token change · all slices green
Medium
Review
5/5 slices · ready to merge
S
#5
Shop
Epic Refactor StoreHeader → semantic <header>
Conflict with #7 — both touch StoreHeader
High
Blocked
1 conflict · needs resolve
M
#3
Account
Experiment Skip login for returning customers
Journey change · adds cookie-based fast-path
Medium
In Progress
2/3 slices merged
M
#2
Shop
Bug Fix /product 500 on out-of-stock
Repairs broken node from Journey graph
Urgent
In Progress
hotfix · 1 PR open
S
#1
Shop
Epic Draft /wishlist screen
Missing screen · implied by product-detail flow
Low
Draft
not yet scoped
XL
Peek #7 Epic Add You may also like empty state to /cart ·
N
Nora
branch 7-add-recs-empty-state
✓1 · Analyze
✓2 · Document
3Design
4Approve
5Code
6Deploy
Slices · 6 typed sub-tasks · one PR each
✓
7.1 Frontend Layout · RecommendedItemsCard.EmptyState
C
#3421 merged
◐
7.2 Frontend Illustration + final copy
N
#3428 PR open
◐
7.3 Backend Analytics · cart.recs_empty_shown
M
api#912 CI
✓
7.4 CI/CD Visual regression · /cart empty states
C
#3419 merged
◯
7.5 Misc Localise headline + sub-copy · sv, no, fi blocked by 7.2
▪
7.6 Backlog Personalised picks from prior order history deferred
Six phases

Not a review chain. Six review chains, one per phase.

Each phase has an owner, an artifact, and a gate. Sign what your role sees — not what someone stitched into a giant single-review approval.

1
Analyze

Pin the motivating signal.

Gate PM
2
Document

Write the PRD on the delta.

Gate PM · TL
3
Design

Styles · Components · Pages · Journey.

Gate Des · PM
4
Approve

Cost + team split before Code.

Gate EM
5
Code

Typed slices become real PRs.

Gate TL
6
Deploy

Preview → staging → prod.

Gate On-call
Typed slices

One slice. One PR. One reviewer.

Under Code, every delta breaks into typed slices — Frontend, Backend, CI/CD, Misc, Backlog. Each slice raises one Pull Request against your repo. CI runs. Review happens. Nothing merges without its gate.

  • ✓Slice types are configurable — add Docs, Localise, whatever you need.
  • ✓Route to humans by role. Assignment follows the phase gate.
  • ✓Real PRs on GitHub / GitLab / Bitbucket. No vendor blob.
acme-team/norrland-shop · PR #3421
Merged
Layout · RecommendedItemsCard.EmptyState
Adds the empty variant to RecommendedItemsCard. Slot on /cart renders it when recs return nothing.
+ 142additions − 8deletions · 2 files · CI ✓
delta #7·slice 1 of 6
2h ago
Release notes · auto-derived

Shipped deltas write your changelog.

Every closed delta has a summary, an owner, and a validating signal. Trunk stitches them into a release-notes view — one entry per delta, grouped by week. No handmade changelog files. Publish to a public page or keep it internal.

  • ✓Grouped by week · filtered by delta type
  • ✓Links back to the delta, the PR, the signal
  • ✓Publish public or keep internal — same source
Release notes week of Jul 20
#6Checkout → Place order+3.1% conv
Rename primary CTA across /cart. Sam · Jul 22.
#4Brand hue · violet → indigo148 elements
Token-only change. Fans out via --color-brand. Nora · Jul 21.
#3Skip login for returning customersA/B running
Cookie-based fast-path on /account. Chen · Jul 20.
Publish this week to
Primitive-level 3-way diff
Base
<div class="hdr">
#7
+ EmptyState slot
#5
<header> semantic
Conflict resolution

Merges are visual. Because designs are.

When two branches touch the same primitive, Trunk shows a 3-way visual diff — base, yours, theirs — with an auto-merged result you can tune. Same idea as Git, at the design layer.

Deltas are the spine.

Everything else in Trunk hangs off a delta. Signals wire to it. Documentation anchors to it. Flags belong to it. Journey redraws for it.