Slice overview
Helm is built as 11 vertical slices. Each slice ships a complete user-facing feature: schema + endpoints + UI + tests + docs. We pick one slice, ship it, pick the next.
The slices
| # | Slice | Status | Depends on |
|---|---|---|---|
| 1 | Identity & Audit | Built (gating + chain-verify cron remaining) | — |
| 2 | Customers | Built | 1 |
| 3 | Inventory & Tax | Schema + ETL + read-only UI | 1 |
| 4 | Service Tickets | Built | 1, 2, 3 |
| 5 | Transactions & Payments | Schema + ETL; UI pending | 1, 2, 3, 4 |
| 6 | Purchase Orders | Schema + ETL; UI pending | 1, 3 |
| 7 | Rentals | Schema only | 1, 2 |
| 8 | Trade-In & Consignment | Schema only | 1, 2, 3 |
| 9 | Online Orders | Schema only | 1, 2, 3, 5 |
| 10 | Marketing | Schema only | 1, 2 |
| 11 | AI Conversation Memory | Schema only | 1, all data |
Why this order
Slice 1 first because it's foundational. Auth, audit, and permissions thread through everything else. The audit-everywhere wiring needs to land before mutations start happening at scale.
Slice 2 next because customers are the central FK; almost every other slice references them. Built first lets every subsequent slice assume customers exist.
Slice 4 (Service Tickets) before slice 5 (Transactions) is the surprise. Service tickets are the core of a bike shop's day — more cognitive load on operators, more business value, more migration data to validate. Building tickets first proves the patterns. Cashout-from-ticket then becomes the first transaction path.
Slice 3 (Inventory) is concurrent with slice 4 in practice — service tickets need inventory access for parts lines. The schema is in place; the UI for direct inventory management lags.
Slices 5-10 are roughly independent and can be ordered by business value. Sales (slice 5) is the natural next priority post-tickets. Rentals/Trades/Orders/Marketing follow.
Slice 11 (AI) last because it benefits from existing data — the AI Support bubble's grounding is over what shops actually have, not what they will eventually have.
What "shipped" means per slice
A slice is "shipped" when:
- Schema migrations for all involved tables are in
migrations/*.sql - Backend endpoints are written, tested, deployed; all CRUD + lifecycle transitions covered
- Frontend screens are built; replace any mockup-only stand-ins
- Tests cover the core flows (unit + integration)
- Documentation in this bible — entity pages, lifecycle if applicable, slice page (this section)
- Migration scripts (when applicable) for inbound AIM data are in
migrate_aim.py - The shop is using it in production for the relevant operations
The last bullet is the real bar. "Specced and coded but not used" is not shipped.
Cross-slice concerns
Some concerns thread through every slice and need attention at slice 1:
- Audit-everywhere — every mutation writes audit. The helper lives in slice 1; every subsequent slice uses it.
- Idempotency keys — every external write. Adapter pattern enforces it.
- In-situ editing affordances — every slice's UI follows the helm-editable chassis.
- Permissions — every endpoint is gated by screen-permissions middleware.
- Observability — every endpoint emits structured logs.
- PII handling — every PII field in every slice respects the privacy principle.
These are not "later slices to build." They're invariants enforced from the first slice forward.
Re-ordering and re-prioritization
The slice order is a default, not a contract. Mid-sequence we may re-order based on shop needs. For example, if Swicked is sitting on $20K of trade-in inventory unrecorded, slice 8 (Trade-In) might leapfrog slice 5 (Sales) for them specifically. The branch model (deployment topology) allows per-shop feature ordering when needed.
Slices 12 and beyond
Slices 12–25 are documented in the roadmap at docs/overview/roadmap.md. Individual slice pages will be created when each slice is specified per the slice-development pattern. Until then the roadmap is the canonical home for "what's planned" — including the architectural pins (ADR-0024: Serial numbers as first-class entities) that must land before specific slices build.
See also
- Roadmap — v1+ features beyond the 11 slices
- ADR-0008: Slice-by-slice build
- ADR-0023: Feature roadmap
- Current state
- Slice development pattern