Reusable bricks
Atoms
One Service-shaped brick per file, addressed by atom:<slug>. Slugs are unique across drawers; templates compose them, optionally gated by intake answers. 56 atoms across 7 drawers, counted from data/ at build.
safety/5
CHARGER SAFETY PRE-FLIGHT
Pre-charge gate. Visual inspection, charger OEM/UL check, charge surface and suppression coverage, supervision contract, stop conditions briefing.
atom:charger-pre-flight
2 templates →
UNIVERSAL SAFETY
Universal safety doctrine — power, phase wires, hub-pull, brake fluid, contaminated pads. Composed at the head of every service runbook.
atom:universal-safety
14 templates →
BAY READINESS
Confirm the work area and tools are ready before the job starts: bench clear, vehicle secured, fire-safe location for battery work, correct tools staged, PPE on. Composed at the head of a full-service runbook.
atom:bay-readiness
14 templates →
PRE-SERVICE CHECK
Verify vehicle powers on and throttle engages, then document any damage not captured at intake. Every step is skippable with a recorded reason — the runtime captures the skip reason as evidence.
atom:pre-service-check
7 templates →
POWER DOWN + PHOTO
Universal first step for any service: confirm the vehicle is powered down and snap a photo of cable routing before disassembly.
atom:power-down-and-photo
13 templates →
post-service/2
POST-SERVICE CHARGER SAFE-STORAGE
Customer release briefing — final SoC, storage temp/location, NFPA 855 awareness, CPSC recall firmware check on Onewheel models.
atom:charger-storage
2 templates →
POST-SERVICE PRE-RIDE CHECK
Closing handoff verification — torque, spin, brake feel, throttle ramp, cable clearance, low-speed ride, customer re-torque instruction. Composed at the tail of every service runbook before the customer rides.
atom:pre-ride-check
14 templates →
consult/2
INTAKE CONSULTATION
Customer drop-off conversation: listen to the reported problem, ask clarifying questions, and set expectations on scope and likely outcome. Captured as the technician's record of what the customer said and what was agreed before work begins.
atom:intake-consult
14 templates →
FINDINGS HANDOFF
Delivery conversation: explain what was found and done in plain language, including any battery or drive-system findings. Captured as the technician's record of what was communicated to the customer at handoff.
atom:findings-handoff
14 templates →
tire-tube/10
TIRE DEFLATE
Fully deflate a tire by removing the valve core. Use before any tube/tire swap or sealant operation.
atom:tire-deflate
1 template →
TIRE INFLATE TO SPEC
Inflate to vehicle-appropriate PSI range and confirm final pressure. Vehicle-type drives the target window.
atom:tire-inflate-to-spec
3 templates →
WHEEL REMOVE
Get the wheel off the vehicle. Branches by vehicle-type — cable disconnects, axle out, wheel out.
atom:wheel-remove
2 templates →
WHEEL INSTALL
Put the wheel back on the vehicle. Branches by vehicle-type — wheel in, axle torqued, cables back, brakes refitted.
atom:wheel-install
2 templates →
TIRE-TUBE DISASSEMBLE
Tubed pneumatic — first half: deflate, break bead, pry, remove tube, inspect tire interior.
atom:tire-tube-disassemble
1 template →
TIRE-TUBE REASSEMBLE
Tubed pneumatic — second half: patch or replace the tube, work the bead on, seat, and inflate to spec.
atom:tire-tube-reassemble
1 template →
TIRE SWAP — TUBELESS
Tubeless pneumatic full swap: deflate, clean, lube, seat bead, inject sealant, rapid-inflate to pop both beads.
atom:tire-swap-tubeless
1 template →
TIRE SWAP — SOLID / AIRLESS
Solid / airless tire swap: pry off, heat if needed, walk new tire over rim, finish with rubber mallet.
atom:tire-swap-solid
1 template →
TIRE SWAP — URETHANE
E-skate street wheels: pull axle, slide wheel off, press new wheel + bearings, torque to slight resistance.
atom:tire-swap-urethane
1 template →
TIRE SEALANT INJECT
Top up tubeless sealant through the valve with the tire still on the vehicle. Position the valve, inject the per-vehicle volume, then redistribute.
atom:tire-sealant-inject
1 template →
hub/1
HUB CABLE REINSTALL
Universal hub-motor cable rules applied on reinstall of any hub wheel. Reseating the connector is the most common failure point.
atom:hub-cable-reinstall
2 templates →
brakes/16
CALIPER REMOVE
Get the caliper off the rotor or drum. Branches by brake-type — hydraulic, mechanical, drum, or regen-only (no friction caliper to remove).
atom:caliper-remove
4 templates →
CALIPER INSTALL
Mount the caliper back onto the rotor or drum and restore engagement. Branches by brake-type — hydraulic (pump lever to bite), mechanical (re-tension cable), drum (restore adjuster), or regen-only (verify ESC).
atom:caliper-install
4 templates →
PAD INSPECT
Measure friction-material thickness, check for contamination/glazing, decide keep-or-replace. Branches by brake-type — disc measures pad thickness; drum measures shoe lining; regen-only short-circuits (no friction pad).
atom:pad-inspect
5 templates →
PAD REPLACE — DISC
Swap disc brake pads. Internal branch makes room differently for hydraulic (spread pistons) vs mechanical (back off cable barrel). Atom short-circuits cleanly on drum and regen-only brake-types so it can be composed unconditionally in templates without rendering empty branches.
atom:pad-replace-disc
3 templates →
PAD REPLACE — DRUM
Drum brake shoe replacement. Different geometry than disc — paired shoes held by return springs against a pivot at one end and an adjuster at the other; the drum slides off the axle to expose them. Most common on cargo e-bikes and some e-scooters.
atom:pad-replace-drum
1 template →
PAD BED-IN
Bed in fresh disc pads so the friction layer transfers evenly to the rotor — required after any disc pad swap, before the customer rides. Twenty progressive stops, cool, repeat. Atom short-circuits cleanly on drum and regen-only brake-types so it can be composed unconditionally in templates without rendering empty branches.
atom:pad-bed-in
3 templates →
ROTOR INSPECT
Measure rotor thickness and lateral runout, check discoloration. Decide pass / true-in-place / replace. Applies to disc brakes only (drum drums get inspected inside pad-replace-drum).
atom:rotor-inspect
4 templates →
ROTOR TRUE
Straighten a warped disc rotor in-place using a truing fork. Iterative — make one bend correction, spin, recheck. Cap at 3 attempts; if not flat after 3, the rotor is past truing — replace.
atom:rotor-true
3 templates →
ROTOR REPLACE
Swap a disc rotor for a new one. Branches by rotor mount style — 6-bolt (six small T25 bolts in a circle on the hub flange) vs centerlock (one large lockring with cassette-tool fitting).
atom:rotor-replace
3 templates →
HYDRAULIC BLEED
Purge air and old fluid from a hydraulic disc brake. Branches by fluid type — DOT (SRAM, Hayes, Magura MT5 e-bikes) vs mineral (Shimano, Magura, TRP) — because mixing the two destroys seals. Tier-2 safety-critical: every fluid-naming step carries OEM-source sign-off requirements per docs/verification-standard.md.
atom:hydraulic-bleed
2 templates →
HYDRAULIC LINE REPLACE
Swap a damaged or weeping hydraulic brake hose. Includes integrated bleed at the end. Branches by fluid type for the same reason as hydraulic-bleed — DOT vs mineral can never share tools or fittings. Tier-2 safety-critical.
atom:hydraulic-line-replace
1 template →
BRAKE CABLE ADJUST
Restore cable tension so the lever bites at the correct travel point. For mechanical disc and drum brakes only. Mechanical-disc has barrel adjuster at lever and pinch bolt at caliper; drum has barrel + adjuster nut at the backing plate.
atom:brake-cable-adjust
1 template →
BRAKE CABLE REPLACE
Swap a frayed, kinked, or seized brake cable. For mechanical disc and drum brakes. Includes housing inspection — replace housing too if it's frayed at the ends, kinked, or the inner liner is gummy.
atom:brake-cable-replace
1 template →
CALIPER ALIGN
Centre a disc caliper on its rotor so the pads contact evenly and the wheel spins without rub. Internal branch on brake-type for the lever-hold step (hydraulic centres itself when the lever is pumped; mechanical needs the cable temporarily slacked then re-tensioned). Atom short-circuits cleanly on drum and regen-only brake-types so it can be composed unconditionally in templates without rendering empty branches.
atom:caliper-align
4 templates →
BRAKE LEVER INSPECT
Inspect lever pivot, blade, clamp, and (on e-vehicles) the brake-cutoff switch that kills throttle when the lever is pulled. Branches by brake-type — hydraulic levers also check reservoir fill, mechanical levers check cable seat and barrel adjuster.
atom:brake-lever-inspect
3 templates →
REGEN TUNE
Calibrate regenerative braking strength via the vendor app. Vehicle-dependent — Onewheel uses 'Float' app, EUC variants use 'EUC World' or the OEM tool, escooters typically a dial on the dashboard or a vendor app. Vehicle MUST be powered ON for this — regen is a motor-controller setting.
atom:regen-tune
1 template →
charger/20
CHARGER — IDENTIFY VEHICLE
Read frame badge, BMS sticker, or app. Branch to the matching vehicle fragment for model-specific connector pinouts, BMS quirks, OEM charger SKUs, recall context, and known failure patterns.
atom:charger-identify-vehicle
2 templates →
CHARGER — BASELINE READINGS
Establish known-good snapshot before symptom triage. AC input voltage, charger no-load DC output, pack voltage at port, ambient temp.
atom:charger-baseline
2 templates →
CHARGER — SWELLING OR ODOR (STOP-USE / DISPOSAL)
Pack shows swelling, smoke, odor, hissing, or popping. STOP-USE path — terminates in disposal, no field repair. Evacuate first, call 911, do NOT re-enter.
atom:charger-swelling-or-odor
1 template →
CHARGER — NO POWER
Charger dead OR vehicle won't initiate charging. Isolate locus along wall → charger → connector → BMS → cell.
atom:charger-no-power
1 template →
CHARGER — SLOW CHARGE
Charging but exceeds spec time. Locate bottleneck — charger output, BMS thermal-derate, voltage mismatch, port resistance, aged pack, or smart-BMS override.
atom:charger-slow-charge
1 template →
CHARGER — WON'T BALANCE
Charger terminates early, cells diverge, or pack delivers noticeably less than rated capacity. Locate cause — weak cell, BMS balancer, wrong-profile, or fresh top-balance soak needed.
atom:charger-wont-balance
1 template →
CHARGER — THERMAL SHUTDOWN
Charger or pack reaches dangerous temperature and cuts off. Safety-critical path — pack thermal events that hit 60°C+ escalate to swelling-or-odor.
atom:charger-thermal-shutdown
1 template →
CHARGER — LED FAULT
Charger LED shows fault color or pattern. Isolate charger-side vs battery-side via Future Motion's plug-in-wall-only test.
atom:charger-led-fault
1 template →
CHARGER — INTERMITTENT
Charging works sometimes, drops out unpredictably. Wiggle-test under load to localize.
atom:charger-intermittent
1 template →
CHARGER TYPE — STANDARD 2-PIN DC
Unregulated CC/CV bulk-only charger. Common on entry kick scooters and older low-current PEVs.
atom:charger-type-standard-2pin
1 template →
CHARGER TYPE — XLR 3-PIN
De facto mid-power PEV charger standard (200-400W, 36-72V class). Switching-mode supply, often fan-cooled at higher amperage. Pinout work lives in charger-connector-xlr.
atom:charger-type-xlr-3pin
1 template →
CHARGER TYPE — MULTI-STAGE FAST CHARGER
Cycle Satiator, Hypercharger, Sur-Ron 10A, eWheels GX16-5, Segway Xyber-class fast chargers. Programmable target voltage / end-current / multi-chemistry.
atom:charger-type-fast-charger-multi-stage
1 template →
CHARGER TYPE — OEM SMART CHARGER (BMS HANDSHAKE)
Bosch System 2, Sur-Ron CAN-aware, Onewheel GT/GTS Hypercharger, Segway 2024+. Authenticate with the BMS before delivering current. A 'dead' OEM smart charger that reads correct voltage but never sources current is almost always a failed handshake.
atom:charger-type-oem-smart-charger
1 template →
CONNECTOR — GX16 (3/4/5 PIN VARIANTS)
16mm screw-lock aviation-style connector. Onewheel post-XR, EUC, escooter standard.
atom:charger-connector-gx16
1 template →
CONNECTOR — PHYSICAL REPLACEMENT
Cut out a damaged charge connector and fit a new one to the OEM pinout. Connector-type branch picks crimp vs solder, heat-shrink, strain-relief, and the pre-pack continuity test. Pinout MUST be verified against OEM docs before connecting to the pack — reverse polarity bricks the BMS.
atom:charger-connector-replace
1 template →
CONNECTOR — XLR 3-PIN (PINOUT WORK)
Canonical XLR pinout verification atom. Bafang ebike standard; Onewheel XR (XR ONLY — GT/GTS use proprietary 3-pin, NOT XLR); Sur-Ron Light Bee X. NO universal pinout convention.
atom:charger-connector-xlr
1 template →
CONNECTOR — BARREL DC (5.5mm)
Coaxial DC connector — 5.5×2.1mm and 5.5×2.5mm pin sizes interchange-look but are electrically incompatible. Kids' scooters and entry escooters.
atom:charger-connector-barrel-dc
1 template →
CONNECTOR — XT60 / XT90 (DIY ESKATE / EMOTO)
AMASS polarized DIY connectors. XT90S anti-spark variant has built-in pre-charge resistor. Bent pins → REPLACE, do not straighten.
atom:charger-connector-xt60-xt90
1 template →
CONNECTOR — PROPRIETARY MAGNETIC / POGO / HIGO
Boosted Board magnetic, Bosch Rosenberger, Inmotion V11/V13 magnetic, Shimano STEPS Higo. OEM-only replacement parts; same-shell-different-pinout traps.
atom:charger-connector-proprietary-magnetic
1 template →
CHARGER — DISPOSITION
Close the job — return to service, replace parts, escalate, or condemn pack.
atom:charger-disposition
2 templates →
Countssafety 5 · post-service 2 · consult 2 · tire-tube 10 · hub 1 · brakes 16 · charger 20 = 56 atoms, counted from data/ at build. Drawer list is canonical at ATOM_DRAWERS in src/lib/loader.ts.