Guided Session Builder Help
Build guided wellness sessions with instructions, breathing cues, audio, and future video guidance.
Local/admin tool. Open the builder on the source server with ?admin=1 or from localhost.
Core concepts
| Term | Meaning |
|---|---|
| Guided Session | A complete wellness plan — title, metadata, and ordered steps. |
| Step | One editable part of the session (opening, practice, audio, closing, etc.). |
| Practice | A reusable exercise from the wellness library — e.g. Anulom Vilom, Bhramari, Kapalbhati, natural breathing, OM chanting, meditation, or yoga pose guidance. |
| Generated Segment | The final timed item the Experience Player plays. One breath-cycle step may expand into many cue segments during preview. |
Basic workflow
A. Create from scratch
- Click Create New Guided Session.
- Fill plan details (title, level, target duration, description, tags).
- Add steps (opening → main content → closing).
- Save Draft (stored in this browser).
- Player Preview to test in the Experience Player.
- Export JSON if you need a file copy.
B. Copy an existing plan
- Find a built-in or source plan (read-only list).
- Click Copy to Draft.
- Open the draft from My Draft Plans.
- Rename the title (must be unique).
- Edit plan fields and steps.
- Save Draft → Player Preview.
Step types
| segmentType | When to use |
|---|---|
opening | Welcome and prepare the user at the start. |
instruction | Spoken and/or on-screen guidance between practices. |
practice | Main breath work, meditation, pose, or chant — often with a practiceId. |
separator | Pause between practices; return to natural breathing. |
safety | Before Kapalbhati, breath retention, or other sensitive practices. |
closing / thank_you | End the session with gratitude or integration. |
audio_track | OM, shankh, bell, mantra, or recorded guide — audio only (see below). |
Instruction vs narration
| Field | Normal steps | audio_track steps |
|---|---|---|
| Screen instruction | What the user reads. | Text shown during audio — on screen while audio plays. |
| Spoken narration | What the user hears (TTS). | Optional spoken intro — use sparingly. |
- For normal instruction/practice steps, if spoken narration is blank, preview may use screen instruction for TTS.
- For
audio_tracksteps, blank spoken intro means no TTS — the audio file plays by itself. - Keep spoken narration short.
- Do not type long repeated inhale/exhale strings — use breath-cycle fields instead.
Breathing-cycle steps
Set cueMode = breath_cycle and use the Breathing Cycle Editor on practice steps.
cycleType options
both_nostrils— natural even breathingalternate_nostril— Anulom Vilom stylebox_breathing— equal inhale, hold, exhale, holdbhramari— humming bee breathkapalbhati_pulse— rapid abdominal pulsescustom— advanced manual timing
Rules
holdSec = 0→ no Hold cue is generated.both_nostrilsdoes not use left/right words.alternate_nostriluses left/right cues.- Kapalbhati is pulse/count based, not inhale–hold–exhale ratio based.
- Bhramari exhale cue should say “Exhale with a hum.”
- Beginner practices should avoid forced retention.
Expected cue examples
| Practice | Typical spoken cues |
|---|---|
| Natural breathing | Exhale → Inhale |
| Anulom Vilom | Exhale left → Inhale left → Exhale right → Inhale right |
| Bhramari | Inhale → Exhale with a hum → Rest now |
| Kapalbhati | Exhale 1 → Exhale 2 → 3 → 4 → … → Rest now |
| Box breathing | Inhale → Hold gently → Exhale → Hold gently |
Use Builder Cue Preview in the editor to verify timing before Player Preview.
Audio-track steps
Audio step fields
| Field | Purpose |
|---|---|
audioId | Preferred — reference to approved catalog entry. |
audioUrl | Direct URL — local/admin testing only. |
audioMode | e.g. play_once, loop_to_duration. |
durationSec | How long the step runs in the session. |
volume | Playback volume (0–1). |
loop | Repeat audio until step ends. |
displayText | Short on-screen label (e.g. ॐ). |
transcript | Full text, translation, or review notes. |
audioId from the approved audio catalog whenever possible. Direct audioUrl values are for local/admin testing only.
Audio files & catalog
Approved audio choices are defined in:
web/data/wellness/wellness_audio_library.json
- Plans should reference audioId, not raw file paths.
- Audio files currently live under Experience Player media folders (e.g.
web/apps/experience-player/media/wellness/). - A future shared location may be
web/assets/wellness/audio/.
Example audio step (draft JSON)
{
"segmentType": "audio_track",
"cueMode": "audio_track",
"audioId": "om_cycle_20s_opening",
"audioMode": "play_once",
"durationSec": 20,
"instruction": "Listen quietly to the OM chant.",
"displayText": "ॐ"
}
Current catalog entries (examples)
| audioId | Title | Length |
|---|---|---|
om_chanting_8s | OM Chanting Cue | 8s |
om_cycle_20s_opening | OM Cycle Opening Cue | 20s |
om_cycle_20s_closing | OM Cycle Closing Cue | 20s |
om_cycle_20s_practice | OM Cycle Practice Loop | 20s |
shankh_3s | Shankh Opening Cue | 3s |
Video / demo clips
Can we include video clips?
Yes.
Recommended current use
- Use video as a how-to or demo before the session starts.
- Do not embed complex video inside timed pranayama steps yet.
Future options
A. External video link — e.g. howToVideoUrl opens in a new tab.
B. Local video file — HTML5 video from a project media folder, e.g.:
web/assets/wellness/video/(proposed shared location)- or an approved media folder under Experience Player
Future video catalog (proposed)
web/data/wellness/wellness_video_library.json
{
"videoId": "anulom_vilom_demo",
"title": "Anulom Vilom — Hand Position Demo",
"practiceId": "anulom_vilom",
"category": "pranayama",
"durationSec": 45,
"fileUrl": "assets/wellness/video/anulom_vilom_demo.mp4",
"thumbnailUrl": "assets/wellness/images/anulom_vilom_demo.jpg",
"description": "Shows gentle nostril alternation without force.",
"status": "reviewed"
}
Video catalog and in-session video playback are not implemented in the builder yet.
Files involved
Builder
web/apps/guided-session-builder/index.htmlweb/apps/guided-session-builder/guided-session-builder.jsweb/apps/guided-session-builder/guided-session-builder.cssweb/apps/guided-session-builder/help.html
Wellness data
web/data/wellness/pranayama_practices.jsonweb/data/wellness/pranayama_timing_profiles.jsonweb/data/wellness/pranayama_session_plans.jsonweb/data/wellness/wellness_safety_rules.jsonweb/data/wellness/wellness_audio_library.json
Engines
web/shared/wellness/pranayama-engine.jsweb/shared/wellness/breathing-cycle-engine.jsweb/shared/wellness/pranayama-engine-catalog-bridge.js
Player
web/apps/experience-player/index.htmlweb/apps/experience-player/player.jsweb/apps/experience-player/data/plans/plan_catalog.jsonweb/apps/experience-player/data/plans/wellness_plans_runner.json
Media
web/apps/experience-player/media/wellness/(current audio)web/assets/wellness/audio/(future shared audio)web/assets/wellness/video/(future video)web/assets/wellness/images/(future thumbnails / mudras)
What is safe to edit
Safe in the builder (drafts)
- Plan title, subtitle, description
- Step order and duration
- Screen instruction and spoken narration
- Breathing timing fields
- Selected
audioId, display text, transcript
Use caution
cueMode,segmentTypepracticeId,timingProfileaudioMode, retention/hold fields- Kapalbhati pace and stroke count
Do not casually edit
- Built-in / source plans (copy to draft instead)
- Raw media file paths in production content
- Experience Player internals
- Engine source code
- Public catalogs without review
Quick checklist (before preview)
- Title is unique among drafts
- Opening step exists
- Closing / thank-you step exists
- Safety step included if needed (Kapalbhati, retention)
- Hold = 0 means no hold cue (verify in cue preview)
- Breath cues preview correctly
- Audio preview works (catalog or test URL)
- Total duration makes sense
- Player Preview runs end-to-end
Developer / local commands
Commands are for local/admin development. Run them from the terminal at the LifeLoveMe repo root. The browser shows copyable instructions only — it does not execute shell scripts.
- Start source server —
./scripts/lifeloveme.sh start source(port 8780) - Open builder —
/apps/guided-session-builder/index.html?admin=1on source server - Build guided wellness release —
python3 tools/release_builder/build_guided_wellness_release.py - Validate guided wellness release —
python3 tools/release_builder/validate_guided_wellness_release.py - Run pranayama engine tests —
python3 tools/release_builder/pranayama_engine_tests.py - Generate segment inventory —
python3 tools/release_builder/write_segment_inventory_reports.py - Build review workbook —
python3 tools/release_builder/build_segment_review_workbook.py
Full catalog with deployment notes and pre-deploy checklist: Developer Commands · Dev Command Center