Live Sandbox Demo (Hourly Reset) • Back the v1.0 Public Release Sprint on Ko-fi
Medical & Clinical Disclaimer
Kinetic Current is a personal behavioral pacing tool, not a medical or mental healthcare provider. The calculations, battery levels, and telemetry provided in this app are for personal reference and informational purposes only. They are not intended to diagnose, treat, prevent, or cure any physical, mental, neurological, or psychiatric condition. Always consult a qualified healthcare provider regarding medical concerns, and never disregard clinical guidance based on data from this software. Full disclaimer →
KINETIC CURRENT ← HUD COACH DIGEST → IMPORT
Reference · Operating Protocol

Kinetic Current
Operational Field Manual

Use this manual to turn subjective capacity, executive function, sensory load, and recovery into consistent telemetry.

I · System Overview MISSION PROFILE

The Kinetic Current helps you track focus, physical capacity, social bandwidth, sensory load, and recovery over time (0–9 Energy Units, or EU). Check-ins make it easier to notice what supports or drains your day; the readings are self-tracking estimates, not medical assessments.

II · Core Telemetry Taxonomy INPUT MODEL

01 // ENERGY CAPACITY (0–9 EU)

Your operational bandwidth. The form automatically persists the latest recorded EU value so you only adjust the delta between check-ins.

0–3 EUCRITICAL / RED ZONESevere depletion, brain fog, high vulnerability to shutdowns. 0 = zero reserves, shutdown imminent; requires immediate deposit.
4–6 EUMAINTENANCE / AMBER ZONEFunctional for low-friction tasks, routines, and maintenance.
7–9 EUPEAK / CYAN ZONEFull bandwidth available for deep analytical work, complex builds, and creative architecture.

02 // FUNCTIONAL STATES

Captures how your nervous system and executive function are behaving.

Executing

Forward progress: active typing, moving, or focused building.

Examples: writing code, designing user interfaces, recording field video, running errands.

Coasting / Neutral

Low-intensity routine: casual browsing or steady data input.

Examples: commuting on a quiet train, routine data entry, eating a meal, casual reading.

Paralyzed / Locked

Executive paralysis or cognitive stall; you know the task but can't initialize or switch despite conscious intent.

Examples: staring at an open IDE unable to type the first line, task-switching paralysis, scrolling indefinitely to avoid starting.

Overwhelmed / Strained

Active sympathetic arousal: clenching, client text anxiety, sensory overwhelm.

Examples: responding to an influx of urgent client pings, navigating noisy transit hubs, sudden deadline pressure.

Resetting / Resting

Deliberate sensory break and downtime aimed at restoring bandwidth.

Examples: 15 minutes of zero-stimulus quiet in a dark room, lying flat to reset posture, a slow unhurried walk, post-meal recharge.

03 // PRIMARY LOAD BUCKETS

Identifies where the energy draw or demand is localized.

Mental / Tech

Code, operating systems, data, writing, and design: heavy cognitive load and deep focus.

Debugging backend routes, OS setups, spreadsheets and databases, drafting long-form essays, planning multi-step deployments.

Body & Chores

Meals, hydration, hygiene, domestic routines, and physical spaces.

Sorting invoices, running laundry, shower prep, tidying the room, keeping water topped up.

Physical / Kinetic

Somatic, cardiovascular, or muscular output.

Delivery runs, e-bike commuting through dense traffic, hauling gear rigs, long walks, workouts.

Social / Communication

Client pings, emails, meetings, calls, and masking.

Client discovery calls, handling complex negotiations, networking, extended group social events.

Sensory Load

Overwhelming ambient environments: noise, glare, temperature spikes, crowd density. Each check-in logs a stress gear (Low / Med / High) that weights the Sensory // Buffer math: 0.25 / 0.75 / 1.5 EU per unmitigated trigger — ambient hum at Low never flattens the gauge.

High decibel street traffic, flickering fluorescent lights, visual noise in crowded rooms.

04 // ENERGY FLOW

[-] Drain Any activity consuming spoons or cognitive units.

[+] Deposit Any deliberate restorative input adding EU back into system reserves.

05 // ACTIVATION / TASK FRICTION (1–5 SCALE)

Quantifies initiation resistance: how difficult it feels to cross the threshold into starting a task, independently of physical fatigue. The pacing model here is conceptually grounded in Carmen’s Neurodivergent Adult Survival Manual: externalize scaffolding instead of treating executive demand as a willpower test.

  1. 1 // Effortless Zero startup resistance (e.g., launching a favorite media player, casual check-in).
  2. 2 // Light Inertia Dissolves in under a minute (e.g., wiping the desk, answering a short ping).
  3. 3 // Moderate Drag Requires intentional focus to break initial friction (e.g., beginning a documentation draft, starting a code file).
  4. 4 // Heavy Drag Pushing against internal resistance (e.g., parsing a messy client brief, administrative clutter, tax paperwork).
  5. 5 // The Wall Severe startup paralysis; imminent risk of Freeze (e.g., attempting high-stakes work while depleted).

SURVIVAL-PACING SCAFFOLD: Floor Mode is a low-demand survival protocol when the latest EU is ≤3 or the user enables it: it pauses idle decay and check-in cadence nagging and surfaces only Resting, Hydrating, Low-Effort Meal, and Lying Down activity prompts. Body-Double supports initiation; a friction 4–5 check-in carrying that tag costs 0.25 rather than 0.5 EU. At low capacity with heavy friction, the predictive banner recommends a tiny entry action instead of the macro-task. These are practical adaptations of Carmen’s described framework, not a clinical assessment or a claim that the app can determine a user’s needs.

SENSORY ACCOMMODATION IS BIOLOGICAL SUPPORT, NOT A REWARD: sensory gear and unmasking describe real conditions and coping choices; shields (+ANC, +Shades, +Dark, +Music, +White Noise, +DND) are valid accommodations, not something to earn. Low / Med / High gear weights the Sensory // Buffer math per unmitigated trigger — Low 0.25, Med 0.75, High 1.5 EU. A defense clamps each trigger cost to max(0, gear − 0.5 EU) — Low to 0, Med to 0.25, High to 1.0 EU; shields dampen, never deposit.

ENGINE MECHANICS & FORMULAS LEDGER LOGIC

The engine is bookkeeping, not oracle: identical inputs over an identical window always produce identical numbers. Four ledgers are updated by addition and subtraction from your check-ins — nothing is guessed, nothing is scored by a model, and every constant below is user-calibratable in the HUD's engine drawer. Ranges: all ledgers read 0.0–9.0 EU.

THE FOUR LEDGERS // one tank, four readings

Every check-in records one number — how full the tank is (0–9 EU). The engine derives four ledger readings from the recent window, each answering a different question:

Focus // Executive Function

Working memory, task initiation, and attention. Anchored on the Mental-domain average, dented by heavy starts, avoidance/context-switch/low-dopamine drains, and compounding strain.

Physical // Somatic Capacity

Muscular endurance, posture, and fuel. Anchored on the Physical/Maintenance average, supported by restorative deposits, and reduced by pain and post-focus fatigue / flow debt.

Social // Communication Bandwidth

Interpersonal processing and masking. Anchored on the Social-domain average, reduced by open-loop strain.

Sensory // Environmental Buffer

Resilience against environmental load. Anchored on the latest reading, reduced by unshielded triggers, shielded-trigger residue, and screen time.

Shared baselines: each ledger's anchor is the recent-window average of check-ins in its domain (falling back to the overall average when a domain has no logs, so an unlogged domain is estimated rather than zeroed), plus the latest tank reading. Idle decay (below) subtracts from Focus and Somatic; overnight recovery adds a small credit to Somatic. Consecutive dysregulation drains clamp both Focus and Social by −2.0 EU, while a single dysregulation drain has its own −1.0 EU Focus toll.

1 // IDLE DECAY // the slow leak

Energy is not frozen in amber between check-ins. Past a grace period of no logs, Focus and Somatic drift down with fatigue and hunger-lag. In Floor Mode, this idle baseline decay is paused; the ledger treats the gap as intentional somatic conservation rather than neglect:

Decay = min(2.0 EU, max(0, hours since last log − 4.0h) × 0.15 EU/h) Example: last log 7h ago → 3 idle hours × 0.15 = −0.45 EU. Sleep-shaped gaps (shutdown → morning, or any gap crossing midnight that runs 4–12h) are exempt — the night resolves as a small Overnight recovery credit (+0.5 EU, Somatic) instead of decay. Gaps past 12h are a real telemetry gap, not sleep.

2 // SENSORY LOAD & SHIELD CLAMPING // the invariant

Each check-in logs a stress gear and any trigger tags. Triggers on a record with a shield are mitigated; triggers on a record without one are not:

unshielded trigger = gear cost (Low 0.25 · Med 0.75 · High 1.50 EU) shielded trigger  = max(0, gear cost − 0.5 EU)  (Low → 0 · Med → 0.25 · High → 1.0) The invariant rule: this has a hard floor at 0 — shields dampen incoming drain to zero at best and never recharge the Buffer; no defense tag can add a single EU, with or without stressors present. Example: #noise + #crowd at Med gear with +ANC → each trigger costs max(0, 0.75 − 0.5) = 0.25, total −0.5 EU (an unshielded pair would cost −1.5). The Buffer regenerates only through deposits and restorative states.

3 // STATIC SCREEN / OCULAR DRAG // the screen toll

An open Mental-domain session (no newer check-in logged, not a deposit) taxes the Buffer through static focal distance and glare — orthogonal to tagged triggers. Drag engages once the open session passes its grace and ramps smoothly:

Drag = min(2.0 EU, max(0, open-session hours − 1.5h) × 0.15 EU/h) Example: a coding session open 4h → 2.5h past grace × 0.15 = −0.375 EU. Log anything (even “coffee”) to close the block and stop the meter. Set the rate to 0 in the engine drawer to disable entirely — dark-room readers feel none of this; marathon coders set it higher. Sleep-shaped gaps never read as screen time.

4 // SOMATIC TOLLS & METABOLIC LIFTS

Pain tag:     −0.5 EU per Pain-tagged log (cap 2.0 EU per window) → Somatic Food/Water deposit: +0.5 EU each (restorative lift) → Somatic Stimming/Unmasking deposit: +0.5 EU each → Focus  ·  Body-Double deposit: +0.5 EU → Focus Regeneration gate: every positive line above requires an active recovery state — the log marked [+], a Recovery state, or a nap/shutdown signature. A body-double work session supports the start; it does not mint energy. No tag, shield, or streak ever adds EU by itself.

5 // EXECUTIVE & SOCIAL DRAG

Drain logs tagged Avoidance / Context-Switch / Low-Dopamine cost −0.5 EU each off Focus; a Dysregulation drain costs −1.0 EU off Focus. High-friction logs normally cost −0.5 EU each, reduced to −0.25 when the same check-in carries Body-Double. Two consecutive dysregulation drains trigger a −2.0 EU strain clamp on both Focus and Social, as do two or more consecutive strain-bearing entries (Tension / Async-Wait / Overdraft / Dysregulation), until a loop closes or a recovery deposit lands.

MICRO-STEPS & CO-REGULATION: when capacity is low and friction high, do not treat the macro-task as the next unit of action. Pick one tiny entry (open the file, touch the gear, enter the room) or add a body double. A Body-Double-tagged deposit may still receive the existing calibrated recovery lift; a work log gets friction relief, not free EU.

6 // POST-FOCUS FATIGUE / FLOW DEBT

A flow-tagged block running at friction 1 (75–360 min) registers real progress while the body quietly pays posture, hydration, and eyes. The engine books a delayed physical toll of −0.5 EU per unrefueled flow block (cap 2.0 EU), and the Digest tracks recovery after the session:

Block ends → checkpoint ≈ 35 min later → deposit within 60 min = recovered · within 150 min = late · none = missed A hyperfocus drain running past 3h without Food/Water arms the Late-Night Strain / Overdraft watch — the next check-in warns before another deep push. Refuel inside the block (+Food / +Water on the flow record) and no toll is booked at all. This is a recovery signal, not a medical assessment.

DETERMINISM & CALIBRATION // why you can trust the numbers

Every constant above lives in one config (engine-config.js → NCEngine): archetype presets set the shape, a sensitivity slider scales costs ×s and tolerances ÷s, and the advanced drawer exposes every number for exact tuning. The engine re-renders the moment a value changes; your data never leaves your PocketBase. ↑ back to taxonomy

WEEKLY DIGEST // READING THE PATTERNS OPEN DIGEST →

The Weekly Digest distills the last 7 or 14 days into a scorecard, three headline signals, and four pattern panels. This is where weekly patterns surface; the HUD is where they start.

Scorecard // 0–100

Four pillars averaged (only the ones with data): Friction Control (average gear, heavy-start share, freezes), Sensory Defense (gear-weighted sensory charge versus shield coverage), Recovery Rate (deposit share, measured refill, and the sample-weighted week EU), Logging Consistency (days logged of 7). Pillars without data stay neutral instead of dragging the score down.

70+ green, 45–69 amber, below 45 red. Each pillar carries a hint line telling you the next practical action.

Friction Patterns

Distribution across the 1–5 scale, each gear with the average EU logged while in it. The headline compares heavy starts (4–5) against light starts (1–3): a gap means high drag is landing on your depleted hours, not just your busy ones.

Logs without a friction pick are excluded, so tag friction to keep this panel honest.

Sensory Gears

Low / Medium / High counts at their 0.25 / 0.75 / 1.50 EU-per-trigger rates, total window charge, and a per-trigger mitigation table that renders every active # trigger dynamically (no hardcoded roster — new triggers appear automatically). A trigger “shielded” means the same record carried a defense tag.

The Trigger // Shield Pairing block shows which defenses actually rode alongside each trigger (#noise ↔ +ANC / +Music, #glare ↔ +Shades). Below 50% shielded on your top trigger = deploy defenses earlier, not after.

Deposit Efficiency

Average EU change immediately after deposit logs, split Morning / Afternoon / Evening, plus the top restorers by activity name. Uses the same definition as the correlation scan, so both views always agree.

A negative daypart means deposits are logged before the rest has landed — wait longer between the reset and the check-in.

Correlation Scan

Four cross-references over the window: RESTORE (what refills EU by activity), DRAIN (activity context during low-EU events), TAG SIGNAL (each context tag’s shift in low-EU odds — avoidance, hyperfocus, Ctx-Switch, Clutter, Body-Double, Low-Dopamine included), and SHIELD SIGNAL (low-EU odds reduction per defense, all six shields).

The Avoidance Loop // Precursor Scan line answers one question: how often an avoidance-tagged log is followed by a friction 4–5 or a freeze — the “detour → wall” shape. High share = the detour isn’t a break, it’s an ambush.

Day-by-Day Calendar

Per-day average EU, log count, flag chips (F4-5 heavy starts, FREEZE, HIGH GEAR, +N deposits), and a cadence badge: [UNDER-SAMPLED // LOW CONFIDENCE] (<5 logs, amber), [NOMINAL CADENCE] (5–8, cyan), [HIGH DENSITY] (≥9, magenta). The header shows the sample-weighted week EU — day averages weighted by log count (cap 8/day) so a 1-log Thursday can’t skew the week.

Blank days are telemetry gaps — they weaken every other panel. Aim for at least one check-in per day, even a 10-second Coasting log.

Cadence & Baselines

The HUD’s CADENCE // 24H card classifies the last 24 hours by sampling rhythm: nominal 5–8 logs with ~1.8–2.8h intervals (cyan), under-sampled <5 logs or a >3.5h gap (amber), over-clustered ≥9 logs or <1.2h intervals (magenta — task turbulence or avoidance looping). Batteries also time-decay: past a 4-hour no-check-in grace, somatic and cognitive baselines decay 0.15 EU/h (cap 2 EU) to model fatigue and hunger-lag instead of assuming energy froze — and a gentle ⏱ NO CHECK-IN reminder appears on the HUD at that same 4h mark.

Sleep & waking exclusions: an overnight block between a shutdown check-in (“Shut down”, “Bed time”, late-night Recovery) and a waking check-in (“Waking up”, “Morning Routine”) is a valid recovery interval — cadence skips it, the 4h decay exempts it, and somatic resolves the night as a small Overnight recovery deposit instead of fatigue drift. Untagged gaps that cross midnight (4–12h) get the same treatment; anything past 12h is a real telemetry gap. An over-clustered day isn’t bad telemetry — it usually means a turbulent day worth reading.

Health Telemetry Bridge (Health Connect)

An optional Android companion app (Kinetic Pulse, sideloaded from a private repo) reads sleep, steps, heart rate and HRV from Health Connect on your phone and posts one row per day into the health_snapshots PocketBase collection. The digest's HEALTH // TELEMETRY section shows measured sleep vs your manually logged spans (drift = a forgotten “Shut down” / “Waking up” boundary log), a 7-day steps bar row, resting-HR / HRV readings flagged on High-gear or heavy-start days (⚑), and a RECOVERY TREND block — sparklines of resting HR and HRV across every synced day (not just 7), so the direction of your recovery gains meaning as weeks of data accumulate. The SLEEP // RECOVERY correlation prefers the measured span whenever the bridge recorded the night; manual logs remain the fallback. Each wake date contributes at most one night — a block that merely ends at a “Shut down” log is wind-down time, not sleep, so late-night gaps never double-count a night. The HUD top bar shows the latest snapshot as [HC date].

Data stays on your phone until the nightly sync; only the per-day summary leaves it, straight into your own PocketBase. No health data is stored anywhere else. Full protocol in the HEALTH // TELEMETRY section below.

Week Read

Up to three ranked signals across all domains — heavy-start dominance, freeze counts with their precursor tags (e.g. “preceded by: High Friction (3×), Avoidance (2×), #noise (2×)” from the record immediately before each freeze), unshielded trigger ratios, deposit performance, thin-data warnings. If nothing qualifies, the week was quiet and evenly loaded.

The readout is deliberately opinionated: it only speaks when a pattern is strong enough to act on.
HEALTH // TELEMETRY // HEALTH CONNECT BRIDGE BIOMETRIC TELEMETRY

The optional Android companion app (Kinetic Pulse, sideloaded from the private repo) syncs daily objective biometrics — sleep stages, total sleep duration, steps, active minutes, resting heart rate, and HRV (rMSSD) — directly into the health_snapshots collection in PocketBase.

Sleep Recovery & Correlation

Measured sleep duration from Health Connect takes precedence over manual timestamps in the SLEEP // RECOVERY correlation engine, protecting against forgotten check-ins. Manual Shut down and Waking up logs remain the active fallback.

Each wake date still contributes at most one night — wind-down spans never double-count.

Sleep Drift Detection

If the bridge duration and your manual sleep span differ by more than 1 hour, the digest flags a Sleep Drift notice to isolate missed boundary logs.

Drift = a forgotten “Shut down” / “Waking up” — the measured span is still used, but the manual half of the record is suspect.

Stress Overlays (⚑ Flags)

Days flagged with High sensory stress or heavy task friction (Friction ≥ 4) are marked with a ⚑ symbol across step counts and resting vitals, to cross-reference physical workload with subjective strain.

Lets you see whether a heavy day was objectively taxing or just felt that way.

Web Import (No App)

The IMPORT page accepts a Health Connect / Google Takeout JSON export, Apple Health export.xml (drag it straight out of export.zip), or a plain JSON array of health_snapshots-shaped records. Parsing is 100% local in the browser — every day is previewed before anything is posted, then uploaded through the same per-date guard the bridge uses (existing dates are skipped, so re-importing can never double a day). To let an old export overwrite stale data instead of skipping it, enable REPLACE MODE (owner login required) — the existing snapshots for the imported dates are deleted first, then re-imported from the file. Apple Health reports HRV as SDNN (not rMSSD); imported values are stored into hrv_rmssd with source: apple_health so they stay distinguishable.

The bridge app remains the only automatic path — the import page is the manual, any-device fallback.

Long-Horizon Recovery Trend

Persistent sparklines track resting heart rate and HRV rMSSD across all synced dates. A multi-day downward trend in HRV or an elevated resting HR acts as an early warning for systemic somatic fatigue before an executive freeze occurs.

Grows one point per synced day — check weekly, not daily, until it has weeks behind it.

Top-Bar Sync Indicator

Displays [HC Mmm DD] on the HUD header when a current snapshot is loaded, or [HC —] when operating in manual-only fallback mode.

The HUD and digest stay fully functional without the bridge — this indicator simply tells you which mode you’re in.

Data Isolation

All biometric processing occurs locally on your device; only the aggregate daily snapshot is posted to your private PocketBase instance.

No health data is stored anywhere else.
DECISION FILTER // ZERO-HESITATION RULES SORT LOGIC

When you can't decide which bucket a check-in belongs to, run it through these filters in order and log the first match.

Mental / Tech?

Does it involve code, an operating system, data entry, or logic?

If yes → Mental / Tech.

Body & Chores?

Does it involve eating, drinking, showering, or cleaning the room?

If yes → Body & Chores.

Social / Communication?

Does it involve reading or replying to another human?

If yes → Social / Communication.

[+] Deposit?

Did it tangibly add Energy Units back into your tank?

If yes → mark it a deposit.

[-] Drain?

Did it cost attention, spoons, or bandwidth?

If yes → mark it a drain.
LOG MODES // EMERGENCY · QUICK · GUIDED ONE FORM · THREE SPEEDS

The check-in panel is three mode buttons — ⚡ EMERGENCY / CRASH, ⏱ QUICK / BUSY, and 🎯 GUIDED LOG. Tapping one opens a centered check-in window over a dimmed, blurred page: one question at a time, animated as each screen arrives, with BACK / NEXT pinned to the bottom (no numbers, no dots, no close button — TRANSMIT finishes the flow; Esc or a tap on the dimmed backdrop dismisses). All three synthesize the identical PocketBase payload — same schema, same friction-tag convention, same offline queue — only how much you're asked differs. Your button choice is remembered across visits (emergency itself is transient: it hands the highlight back to your last mode when dismissed).

⚡ Emergency — 3 taps + optional line

Tap 1: Brain Locked (Executive Freeze · EU 2 · friction 5 · avoidance) · Sensory / Loud (Stress/Anxiety · EU 3 · gear High · #noise) · Starving / Lag (Maintenance · EU 3 · #hunger-lag) · Pure Fatigue (Recovery · EU 2). Tap 2: shield — +Food, +ANC, +Dark, or None / just crashing. Tap 3: one optional line (Enter transmits) → TRANSMIT.

A preview line shows the exact record before anything transmits. Shields land in the same fields the manual form uses. Offline quick-logs queue with their tap-time timestamp intact.

⏱ Quick — 5-second check-in

Two toggles and a chip: Reserves zone (Low 1–3 → EU 2, Mid 4–6 → EU 5, High 7–9 → EU 8), Direction ([-] Draining → Action, [+] Refueling → Recovery deposit), and an Activity chip built from your five most frequent recent activity names — or type one. Sends with automated defaults (friction 2, Low gear) and no tag questions.

Typed activities map to the right bucket automatically (Eating → Maintenance, Commuting → Physical, calls/meetings → Social, side quests → Mental). Everything else defaults to Mental / Tech.

🎯 Guided — the full cockpit, one question at a time

The complete check-in split into six focused screens — 1 Reserves (0–9 slider) · 2 Activity · 3 State & bucket · 4 Flow & friction · 5 Sensory & tags · 6 Note & transmit — driven by a bottom BACK / NEXT bar. Every screen animates in softly (fade-and-rise, no snap); the last step's NEXT becomes TRANSMIT. Sensory and context chips are always visible on their screens — no collapsible drawers inside the flow.

Every entry starts at Reserves. Editing an existing entry always opens the guided cockpit so every field stays reachable, and the nav reads UPDATE on the last step.

One engine underneath

All branches submit through the same createRecord path: the predictive capacity banner still guards emergency sends, offline sends queue into [⇅ N PENDING] (tooltip shows count + oldest age), and flushed entries appear in the stream with their true tap-time timestamp. A successful send closes the window instantly and refreshes the stream behind it; a failed send keeps it open with the error.

Guided edits and cancels restore the exact pre-edit form — a partial guided pass can never transmit a half-updated record.
COACH // AUTONOMOUS LOCAL COACHING ENGINE RULE ENGINE · NO CLOUD

The COACH page is a deterministic coaching engine that runs entirely in your browser — no cloud LLM, no third-party API, and no data leaves your own PocketBase instance. It applies the rules documented in this manual to your telemetry and speaks in prioritized cards: ⛔ ALERT (act now), ⚠ WATCH (a pattern forming), ℹ NOTE (context). Every card cites the numbers behind its advice in a BECAUSE // line, so coaching is always explainable — and it reuses the same engines as the HUD and Digest (battery, cadence, sleep correlation, shield ROI), so it can never disagree with the dashboard.

REVIEW WINDOWS // DAY · WEEK · MONTH

DAY // Last 24h

Right-now coaching: sampling cadence and idle gaps, the current multi-battery levels with their leading drain factor, the quality of your last check-in (low EU, heavy friction, unshielded high gear, avoidance), today's flow balance, and the previous night's logged sleep span.

One log can already coach — two or more unlock the pattern rules.

WEEK // Last 7 days

Pattern coaching: sleep duration vs next-morning EU (the same correlation as SLEEP // RECOVERY), avoidance → heavy-start/freeze loop rate, high-gear days and unmitigated trigger load, defense ROI (which shield measurably lowered low-EU odds), heavy-start share and its EU cost, the week's EU direction, freeze count with its leading precursor, cadence standard, and Health Connect HRV drift.

Top 7 cards shown, ranked alert → watch → note.

MONTH // Last 30 days

Trend coaching: HRV and resting-HR direction across every synced day (systemic recovery debt), month-half EU trend, freeze rate with precursors, tag signals at real sample sizes (n ≥ 3), your highest-verified restorer (n ≥ 3), month-long sleep averages, and avoidance as a monthly pattern.

Longer windows earn their thresholds — a one-week blip never triggers a month card.

HUD STRIP // LAST INPUT COACHING

The HUD's COACH // LAST INPUT strip reads your most recent check-in and replies with a single card: a fuel warning when you bottom out (citing the week's best restorer), a shield recommendation under unshielded high gear (citing measured ROI), a bound for avoidance detours, a body-double nudge after a heavy start, a fuel alert after a hyperfocus run with no Food/Water, and a rest-block notice while an overnight gap reads as sleep. It re-renders instantly after every check-in, edit, or delete.

Privacy: all rules, thresholds, and phrasings ship as static code in coach.js. The engine runs on your device against data it already fetched from your own PocketBase — no external API calls exist in the pipeline.

SERVER-SIDE CRON // COACHING WHILE THE APP IS CLOSED

The same WEEK rule engine also runs inside your own PocketBase via a pb_hooks cron (coach.cron.pb.js, deployed in the pb_hooks/ folder next to the server binary — note the mandatory .pb.js extension, which PocketBase requires before it will auto-load any hook file). Once or twice a day it evaluates the identical signals the browser coach uses — sleep correlation, avoidance loop rate, high-gear days, shield ROI, friction share, cadence, EU trend, freezes, deposit efficiency, and HRV drift — and stores the single highest-priority card as one record in the coach_briefs collection, keyed by date (unique). Coaching therefore happens even when no tab is open: the brief for each day exists server-side, ready to be read by any client.

Also runs a health_snapshots dedupe: an older bridge build could double-post a day. The cron groups snapshots by date, keeps the most complete record, and deletes the rest — so the digest, SLEEP // RECOVERY, and the [HC date] indicator always see exactly one row per day, even if an old APK is ever reinstalled. Same ES5-safe rule engine, same privacy guarantee: no external API calls, everything runs against your own PocketBase.

Schedule: registered programmatically — a one-shot boot cron (energy-coach-boot) fires on the first minute boundary after server start, writes the day's brief, and removes itself; the daily cron (energy-coach-daily) runs at 0 7 * * * (07:00 UTC), and the evening cron (energy-coach-evening) re-runs the same engine at 0 23 * * * (23:00 UTC ≈ 7 PM US Eastern) so the brief reflects the full day's telemetry right before sleep. Both appear automatically under Dashboard → Settings → Crons once the hooks load (v0.23+ does not allow adding app cron jobs from the UI). Trigger the daily row's run-now button to verify. Note: the first brief lands about a minute after a restart — the JSVM database bindings are not usable during app bootstrap, so the boot run is deferred to runtime on purpose.

III · Context Chips & Behavioral Triggers TAG REFERENCE

Use tags to record the conditions surrounding a check-in. They make the stats page useful for identifying drains, shields, and repeatable recovery conditions.

Tag categoryIdentifier / chipPractical example & definition
Sensory triggers#noiseSirens, open-office chatter, mechanical hum, construction.
#visualOverhead fluorescent glare, screen flicker, intense sun.
#crowdDense pedestrian corridors, crowded subway cars, queues.
#tempHigh heat, stuffy rooms, rapid temperature swings.
#glareLighting texture: harsh fluorescent overheads, screen reflections, or uneven lighting that causes subtle ocular strain and headaches before you notice the fatigue. Defense pair: +Shades / +Dark.
#tactilePhysical friction: irritating clothing textures, sweat/humidity sticking to skin, dirty or sticky desk surfaces, or unwashed hands/hair creating persistent micro-distractions. Defense pair: showering, changing clothes, surface decluttering.
#vibrationMechanical feedback: continuous physical hums — subway track rumble, bike handlebar road vibration during deliveries, vibrating desk fan or hard drive rig.
#smellAir quality & odors: stale room air, chemical cleaning odors, heavy food smells, or laundry detergent scents that overload working memory during deep focus. Defense pair: opening a window, stepping outside, air purifier.
#hunger-lagInteroceptive delay: delayed awareness of physical discomfort — waiting too long to eat or ignoring muscle tension until it triggers a crash. Defense pair: scheduled check-ins, +Food, +Water.
Sensory defenses+ANCActive noise-canceling headphones engaged, with or without audio.
+ShadesDark glasses or blue-light filters deployed to cut glare.
+DarkDimmed lighting, dark-mode interfaces, curtains drawn.
+MusicFamiliar audio used to mask unpredictable environmental noise and stabilize attention.
+White NoiseSteady masking sound that reduces distracting variation and intermittent noise.
+DNDNotifications and interruptions suppressed to protect attention and communication bandwidth.
Metabolic factorsFood / WaterSatiety check-ins, balanced meals, hydration resets.
Caffeine / MedsTracking intake windows and subsequent crash or wear-off periods.
GlucoseHigh-glycemic spikes or rapid reactive crashes and brain fog.
Context markersTensionAutonomic somatic signals: jaw clenching, shallow breathing.
Async-WaitCognitive drag from open communication loops or waiting on pings.
AvoidanceProductive detours or postponing a primary task; context flag for cross-referencing with friction, not a battery penalty.
HyperfocusDeep, immersive tunnel vision — losing track of time or somatic cues (e.g., forgetting to eat during OS installs or coding). Explains sudden crashes after prolonged high-output sessions.
Context-SwitchRapid disruptions or jarring transitions between unrelated tasks (interrupted mid-flow by urgent client texts, routine changes). Isolates why focus evaporates even when physical EU is high.
ClutterPhysical desk mess or digital chaos that actively induces low-grade cognitive drag or decision paralysis. Separates internal mental fatigue from purely environmental friction.
Body-DoubleWorking alongside someone (or ambient media/streams) that stabilizes attention and lowers activation inertia. Identifies external setups that consistently reduce task friction.
Low-DopamineTechnically simple but painfully dry tasks (copy-paste data entry, spreadsheets) where the barrier is raw boredom rather than difficulty. Highlights why low-complexity maintenance work can cause executive freezes.
Stimming / UnmaskingSelf-regulation and reduced masking effort; only logged deposits contribute to the Focus battery's recovery lift.
[!] Overdraft / Late-Night StrainStaying active past your usual limit and borrowing from tomorrow's energy.
IV · End-to-End Walkthrough FIELD EXAMPLES
SCENARIO A // HIGH-LOAD DEEP WORK WITH DEFENSES

Context: Debugging code in a bustling café while using noise-canceling headphones.

Telemetry: 7 EU | Executing | Mental / Tech | [-] Drain | Friction 2

Tags: #noise, +ANC, Caffeine

Result: The dashboard logs high-output cognitive drain while recording that +ANC mitigated sensory overhead.

SCENARIO B // EXECUTIVE FREEZE ONSET

Context: Staring at an ambiguous client email for 30 minutes, feeling locked up with a clenched jaw.

Telemetry: 3 EU | Freeze | Social | [-] Drain | Friction 5

Tags: Tension, Async-Wait

Result: The Predictive Banner triggers immediately, flagging low capacity (≤ 3 EU) under high activation friction and advising an immediate recharge deposit before attempting complex work.

SCENARIO C // RESTORATIVE RECHARGE DEPOSIT

Context: Taking a 20-minute walk with sunglasses, eating a balanced lunch, and hydrating.

Telemetry: 6 EU | Resetting / Resting | Body & Chores | [+] Deposit | Friction 1

Tags: +Shades, Food, Water

Result: Increases the Avg Deposit Lift metric by recording the +3.0 EU gain, quantifying how effectively somatic resets refill your tank.

SCENARIO D // LATE-NIGHT OVERDRAFT

Context: Pushing a design or video render session past 1:00 AM on adrenaline.

Telemetry: 4 EU | Executing | Mental / Tech | [-] Drain | Friction 2

Tags: [!] Overdraft, Caffeine

Result: Renders as a purple node on the 7-day SVG waveform. The morning check-in can be compared against your rolling baseline to measure the next-day debt penalty.

SCENARIO E // AUTOMATED RECOVERY RECONCILIATION & BIOMETRIC BASELINE

Context: Waking up after an unlogged bedtime where Health Connect recorded 7.4 hours of sleep (including 1.8h deep sleep) with an HRV of 58 ms.

Telemetry: 7 EU | Baseline (Coasting / Neutral) | Body & Chores (Maintenance) | [+] Deposit | Friction 1 (Effortless)

Tags: Food, Water

Result: The engine consumes the Health Connect sleep span, prevents idle baseline decay from penalizing the overnight gap, and establishes an objective recovery baseline on the Weekly Digest without double-counting late-night wind-down spans.