### Manual kitty install steps Source: https://docs.ourlifeos.ai/Terminal__Helm Manual install steps: install kitty and a Nerd Font, copy the config set into ~/.config/kitty (overwrites existing), then launch kitty. Does not create the Helm.app wrapper or helm command. Helper scripts reference ~/.config/kitty by absolute path, so install there. ```bash # 1. Kitty + a Nerd Font. macOS: brew install --cask kitty font-hack-nerd-font # Linux: install kitty from your package manager or https://sw.kovidgoyal.net/kitty/ # and install any Nerd Font (https://www.nerdfonts.com) for the tab-bar icons. # 2. Copy the config set into place (this overwrites — back up ~/.config/kitty first) mkdir -p ~/.config/kitty cp -R ~/.claude/LIFEOS/DOCUMENTATION/Terminal/kitty/ ~/.config/kitty/ # 3. Launch kitty (or reload with shift+cmd+r inside it) ``` -------------------------------- ### Recovery and setup commands for LifeOS work tracking Source: https://docs.ourlifeos.ai/Work__WorkSystem Commands for recovery and setup: re-authenticate GitHub CLI, seed labels, restart Pulse, and install the work sweep launchd job. ```bash gh auth login ``` ```bash bun BootstrapLabels.ts ``` ```bash bash ~/.claude/LIFEOS/PULSE/manage.sh restart ``` ```bash bun ~/.claude/LIFEOS/TOOLS/InstallWorkSweep.ts ``` ```bash bun ~/.claude/LIFEOS/TOOLS/InstallWorkSweep.ts ``` ```bash bun ~/.claude/LIFEOS/TOOLS/InstallWorkSweep.ts ``` -------------------------------- ### Example 2: Publish Source: https://docs.ourlifeos.ai/Skills__SkillSystem Example workflow for publishing blog content, showing the user request and the steps taken. ```markdown User: "Publish the AI agents post" → Invokes Publish workflow → Runs build validation → Deploys to Cloudflare Pages ``` -------------------------------- ### Install UV package manager Source: https://docs.ourlifeos.ai/Tools__Tools Installs the UV package manager, a prerequisite for running the script. ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` -------------------------------- ### Run Helm install script Source: https://docs.ourlifeos.ai/Terminal__Helm Preferred one-command install. Installs kitty and a Nerd Font if missing, backs up an existing ~/.config/kitty directory with a timestamp, links Helm's config, builds a Helm.app wrapper, and adds helm to PATH. On Linux, expects kitty to be pre-installed. ```bash bash ~/.claude/LIFEOS/DOCUMENTATION/Terminal/install.sh ``` -------------------------------- ### Install Blog discovery Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Blog discovery service (com.lifeos.blogdiscovery). This is an opt-in service that runs daily/scheduled. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallBlogDiscovery.ts ``` -------------------------------- ### Example 1: Write new content Source: https://docs.ourlifeos.ai/Skills__SkillSystem Example workflow for writing new blog content, showing the user request and the steps taken. ```markdown User: "Write a post about AI agents for the blog" → Invokes Create workflow → Drafts content in scratchpad/ → Opens dev server preview at localhost:5173 ``` -------------------------------- ### Command Structure Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows a hierarchical command structure with subcommands and flags, using 'evals' as an example. ```bash # Good: Hierarchical, clear structure tool command subcommand --flag value # Examples: evals use-case create --name foo evals test-case add --use-case foo --file test.json evals run --use-case foo --model claude-3-5-sonnet ``` -------------------------------- ### Install Derived-file sync Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Derived-file sync service (com.lifeos.derivedsync). This is an opt-in service that runs on file-change. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallDerivedSync.ts ``` -------------------------------- ### Well-formed ISA example for adding --json flag Source: https://docs.ourlifeos.ai/ISA__ISAFormat A complete ISA file example that satisfies the format contract for a small CLI tool. It includes frontmatter, goal, claims, and test strategy. The example shows minimal frontmatter, sequential claim numbering, and empty sections omitted. ```markdown --- task: "add --json output flag to the CLI" slug: 20260723-140000_cli-json-flag phase: complete progress: 3/3 started: 2026-07-23T14:00:00Z updated: 2026-07-23T14:40:00Z --- ## Goal The CLI accepts a `--json` flag that prints one valid JSON object carrying the same data it prints as text, and the default text output is unchanged. ## Claims - [x] C1: `--json` prints output that parses as a single JSON object. - [x] C2: The JSON carries the same fields the text output shows. - [x] C3: Anti: running without `--json` produces byte-identical text to before. ## Test Strategy | claim | type | check | threshold | tool | anchors_to | | C1 | bash | `cli --json \| jq .` exits 0 | exit 0 | bash | literal | | C2 | bun-test | fields(json) == fields(text) | equal | bun test test/cli.test.ts -t "json parity" | literal | | C3 | bash | `cli` output diff vs saved baseline is empty | empty | bash | derived: text-parity | ``` -------------------------------- ### Install Pulse Menu Bar App Source: https://docs.ourlifeos.ai/Pulse__PulseSystem Builds and deploys the menu bar app to ~/Applications and installs the launchd plist. Run from the MenuBar directory. ```bash cd ~/.claude/LIFEOS/PULSE/MenuBar bash install.sh # Builds, deploys to ~/Applications, installs plist ``` -------------------------------- ### Build and install LifeOS Pulse menu bar app Source: https://docs.ourlifeos.ai/docs/Pulse__PulseSystem Commands to build and install the menu bar app. Run from the MenuBar directory: first execute install.sh to compile, deploy to ~/Applications, and install the plist; then use build.sh to recompile after code changes. ```bash cd ~/.claude/LIFEOS/PULSE/MenuBar bash install.sh # Builds, deploys to ~/Applications, installs plist ``` ```bash bash build.sh # Compiles PulseMenuBar.swift → LifeOS Pulse.app ``` -------------------------------- ### Always Use CLI - Good vs Bad Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows the recommended approach of using the CLI directly versus replicating its functionality manually. The good example uses `bash('evals run --use-case newsletter-summary')`, while the bad example attempts to manually load config and test cases. ```javascript // Good: Use the CLI await bash('evals run --use-case newsletter-summary'); // Bad: Replicate CLI functionality const config = await readYaml('use-cases/newsletter-summary/config.yaml'); const tests = await loadTestCases(config); for (const test of tests) { // ... manual implementation } ``` -------------------------------- ### Install and Configure Hermes Source: https://docs.ourlifeos.ai/docs/Hermes__HermesSidecar Commands to install Hermes, authenticate, and mount the LifeOS environment. ```bash # 1. Install Hermes (pinned, no Playwright — LifeOS uses Interceptor) curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o install.sh # review it, then: bash install.sh --non-interactive --skip-setup --skip-browser --commit # 2. Authenticate (its OWN session — never import a sibling agent's tokens) hermes auth add openai-codex --type oauth --no-browser # 3. Mount LifeOS bun LIFEOS/HERMES/Mount.ts # 4. Install the launcher (below) and start from it, never from bare `hermes` ``` -------------------------------- ### Install Usage aggregator Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Usage aggregator service (com.lifeos.usage-aggregator). This is an opt-in service that runs daily/scheduled. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallUsageAggregator.ts ``` -------------------------------- ### LifeOS Services CLI commands Source: https://docs.ourlifeos.ai/Services__BackgroundServices Commands to check status, install all or specific services, uninstall a service, and regenerate documentation. Install and uninstall require launchctl privileges; install without --yes is a dry preview. ```bash bun ~/.claude/LIFEOS/TOOLS/Services.ts status # what's running vs installed vs available bun ~/.claude/LIFEOS/TOOLS/Services.ts install --all --yes # stand up every service (macOS) bun ~/.claude/LIFEOS/TOOLS/Services.ts install --only worksweep,amberroute --yes bun ~/.claude/LIFEOS/TOOLS/Services.ts uninstall --only amberroute bun ~/.claude/LIFEOS/TOOLS/Services.ts doc # regenerate the table below ``` -------------------------------- ### Agent model selection examples Source: https://docs.ourlifeos.ai/Delegation__DelegationSystem Examples showing correct and incorrect usage of the Agent tool's model parameter. The first example is marked WRONG because it defaults to Opus, which is slow for simple checks. The subsequent examples show the RIGHT model for different task types: haiku for simple visual checks, sonnet for standard coding, and opus for complex architectural planning. ```javascript // WRONG - defaults to Opus, takes minutes Agent({ prompt: "Check if blue bar exists on website", subagent_type: "general-purpose" }) // RIGHT - Haiku for simple visual check Agent({ prompt: "Check if blue bar exists on website", subagent_type: "general-purpose", model: "haiku" }) // RIGHT - Sonnet for standard coding task Agent({ prompt: "Senior engineer, TDD. Implement the login form validation", subagent_type: "general-purpose", model: "sonnet" }) // RIGHT - Opus for complex architectural planning Agent({ prompt: "System design / distributed systems. Design the distributed caching strategy", subagent_type: "general-purpose", model: "opus" }) ``` -------------------------------- ### Conversational task management examples Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem Example user and DA interactions for listing and cancelling tasks. ```text User: "what reminders do I have?" DA: Lists active scheduled tasks User: "cancel the PR review reminder" DA: Finds matching task, sets status to cancelled ``` -------------------------------- ### Install Health sync Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Health sync service (com.lifeos.healthsync). This is an opt-in service that runs every hour. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallHealthSync.ts ``` -------------------------------- ### Skill Example 2: Another Use Case Source: https://docs.ourlifeos.ai/Skills__SkillSystem Template for another skill example showing a user request, the process, and the output. ```markdown User: "[Another typical request]" → [Process] → [Output] ``` -------------------------------- ### Minimal SKILL.md example Source: https://docs.ourlifeos.ai/Skills__SkillSystem Example of a minimal SKILL.md file for the Art skill. Includes YAML frontmatter, workflow routing table, quick reference, and pointers to detailed docs via SkillSearch. ```markdown --- name: Art description: Visual content system. USE WHEN art, header images, visualizations, diagrams. --- # Art Skill Complete visual content system using **charcoal architectural sketch** aesthetic. ## Workflow Routing | Trigger | Workflow | |---------|----------| | Blog header/editorial | `Workflows/Essay.md` | | Technical diagram | `Workflows/TechnicalDiagrams.md` | | Mermaid flowchart | `Workflows/Mermaid.md` | ## Quick Reference **Aesthetic:** Charcoal architectural sketch **Model:** nano-banana-pro **Output:** Always $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) first **Full Documentation:** - Aesthetic guide: `SkillSearch('art aesthetic')` → loads Aesthetic.md - Examples: `SkillSearch('art examples')` → loads Examples.md - Tools: `SkillSearch('art tools')` → loads Tools.md ``` -------------------------------- ### Install and Mount LifeOS with Hermes Source: https://docs.ourlifeos.ai/Hermes__HermesSidecar Install Hermes without Playwright, authenticate with a fresh device-code login, mount LifeOS via the idempotent Mount.ts script, then install and use the launcher. Requires reviewing the install script and pinning to a reviewed SHA. Never import another agent's tokens because OAuth refresh tokens are single-use. ```bash #!/usr/bin/env bash set -euo pipefail # 1. Install Hermes (pinned, no Playwright — LifeOS uses Interceptor) curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o install.sh # review it, then: bash install.sh --non-interactive --skip-setup --skip-browser --commit # 2. Authenticate (its OWN session — never import a sibling agent's tokens) hermes auth add openai-codex --type oauth --no-browser # 3. Mount LifeOS bun LIFEOS/HERMES/Mount.ts # 4. Install the launcher (below) and start from it, never from bare `hermes` ``` -------------------------------- ### Natural language parsing examples Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem Three examples showing how user requests are parsed into scheduled task objects. ```text User: "remind me at 9am Monday to review PRs" -> Parser extracts: description: "review PRs" schedule: { type: "once", at: "2026-04-07T09:00:00-07:00" } action: { type: "notify", message: "Time to review PRs", channel: "voice" } ``` ```text User: "every Friday at 3pm, check newsletter stats" -> Parser extracts: description: "check newsletter stats" schedule: { type: "recurring", cron: "0 15 * * 5" } action: { type: "prompt", prompt: "Check UL newsletter stats...", model: "haiku" } ``` ```text User: "in 2 hours, remind me to call the dentist" -> Parser extracts: description: "call the dentist" schedule: { type: "once", at: "" } action: { type: "notify", message: "Reminder: call the dentist", channel: "voice" } ``` -------------------------------- ### TruffleHog installation Source: https://docs.ourlifeos.ai/Tools__Tools Install TruffleHog via Homebrew. This is a standalone CLI tool that does not require an API key. ```bash brew install trufflehog ``` -------------------------------- ### PULSE.toml example configuration Source: https://docs.ourlifeos.ai/Pulse__PulseSystem Example PULSE.toml file showing module configuration sections ([voice], [imessage], [observability], [hooks]) and two [[job]] entries: a script-type job and a claude-type job. Use as a template for defining jobs and enabling modules. ```toml [voice] enabled = true voice_id = "" [imessage] enabled = false [observability] enabled = true [hooks] enabled = true [[job]] name = "calendar-reminder" schedule = "*/10 * * * *" type = "script" command = "bun run checks/calendar.ts" output = "voice" enabled = true [[job]] name = "morning-brief" schedule = "0 7 * * *" type = "claude" prompt = "Prepare a morning brief: today's calendar events..." model = "sonnet" output = "voice" enabled = true ``` -------------------------------- ### Skill Example 1: Common Use Case Source: https://docs.ourlifeos.ai/Skills__SkillSystem Template for a typical skill example showing a user request, the invoked workflow, the skill's action, and the user's result. ```markdown User: "[Typical user request]" → Invokes WorkflowOne workflow → [What skill does] → [What user gets back] ``` -------------------------------- ### Install Work sweep Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Work sweep service (com.lifeos.worksweep). This is an opt-in service that runs every hour. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallWorkSweep.ts ``` -------------------------------- ### Install Commitment sweep Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Commitment sweep service (com.lifeos.commitmentsweep). This is an opt-in service that runs daily/scheduled. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallCommitmentSweep.ts ``` -------------------------------- ### Verify install with test_guard.py and Mount.ts --check Source: https://docs.ourlifeos.ai/Hermes__HermesSidecar Run both checks to verify the install. Trust these results, not the config file. The first script tests deny and allow cases, the second checks identity or config drift. ```shell python3 LIFEOS/HERMES/plugin/test_guard.py # deny + allow cases bun LIFEOS/HERMES/Mount.ts --check # identity/config drift ``` -------------------------------- ### Install Pulse menu-bar app Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Pulse menu-bar app service (com.lifeos.pulse-menubar). This is a core service that runs at load. ```bash bash ~/.claude/LIFEOS/PULSE/MenuBar/install.sh ``` -------------------------------- ### Install Inbox sweep Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Inbox sweep service (com.lifeos.inboxsweep). This is an opt-in service that runs every 5 minutes. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallInboxSweep.ts ``` -------------------------------- ### Install Atlas asset-graph sync Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Atlas asset-graph sync service (com.lifeos.atlas). This is an opt-in service that runs every 15 minutes. The plist is manual at ~/Library/LaunchAgents/com.lifeos.atlas.plist. ```bash manual plist — ~/Library/LaunchAgents/com.lifeos.atlas.plist (see LIFEOS/DOCUMENTATION/Atlas/AtlasSystem.md) ``` -------------------------------- ### Install Pulse dashboard server Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Pulse dashboard server service (com.lifeos.pulse). This is a core service that runs at load. ```bash bash ~/.claude/LIFEOS/PULSE/manage.sh install ``` -------------------------------- ### Install Pulse deriver Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Pulse deriver service (com.lifeos.deriver). This is a core service that runs daily/scheduled. ```bash bash ~/.claude/LIFEOS/PULSE/manage-deriver.sh install ``` -------------------------------- ### Install a specific service with Services.ts Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the 'worksweep' service using the Services.ts tool. The --only flag specifies the service, and --yes skips the confirmation prompt. This command is part of the privileged operations that modify launchctl. ```bash bun ~/.claude/LIFEOS/TOOLS/Services.ts install --only worksweep --yes ``` -------------------------------- ### Install Bunker Monitor via bun Source: https://docs.ourlifeos.ai/Services__BackgroundServices Command to install the Bunker app monitor service, which runs every 5 minutes to re-run ISA Test Strategy probes and email on green→red/red→green transitions. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallBunkerMonitor.ts ``` -------------------------------- ### Install Conveyor inbox watcher Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Conveyor inbox watcher service (com.lifeos.conveyor-watcher). This is an opt-in service that runs at load. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallConveyorWatcher.ts ``` -------------------------------- ### Install Conduit sensory capture Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Conduit sensory capture service (com.lifeos.conduit). This is a core service that runs every 2 minutes. ```bash bun ~/.claude/LIFEOS/PULSE/Conduit/InstallConduit.ts ``` -------------------------------- ### Install Conduit insight builder Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Conduit insight builder service (com.lifeos.conduit.insight). This is a core service that runs every hour. ```bash bun ~/.claude/LIFEOS/PULSE/Conduit/InstallConduitInsight.ts ``` -------------------------------- ### EXTEND.yaml manifest example Source: https://docs.ourlifeos.ai/Skills__SkillSystem Every customization directory requires an EXTEND.yaml manifest. This example shows the required fields: skill name, files to extend, merge strategy, enabled flag, and description. ```yaml # EXTEND.yaml - Extension manifest --- skill: SkillName # Must match skill name exactly extends: - PREFERENCES.md # Files to load - OtherConfig.md merge_strategy: override # append | override | deep_merge enabled: true # Toggle customizations on/off description: "What this customization adds" ``` -------------------------------- ### state.json example Source: https://docs.ourlifeos.ai/Pulse__PulseSystem Example of the Pulse state file located at ~/.claude/Pulse/state/state.json. Written atomically after each job execution. Contains version, startedAt timestamp, and per-job fields: lastRun (Unix ms), lastResult (ok/error), consecutiveFailures counter. ```json { "version": 1, "startedAt": 1743451200000, "jobs": { "email-triage": { "lastRun": 1743451500000, "lastResult": "ok", "consecutiveFailures": 0 }, "healthcheck": { "lastRun": 1743451500000, "lastResult": "error", "consecutiveFailures": 2 } } } ``` -------------------------------- ### Agent Prompt Examples for Fast, Standard, and Deep Timing Source: https://docs.ourlifeos.ai/Delegation__DelegationSystem Three Agent() calls demonstrating the required ## Scope section for each timing tier: fast (haiku, under 500 words), standard (sonnet, under 1500 words), and deep (opus, no limit). Each example shows the prompt structure and model selection. ```javascript // FAST — simple check, haiku model, minimal output Agent({ prompt: `Check if the auth middleware exports are correct. ## Scope Timing: FAST — direct answer only. - Under 500 words - Answer the question, report the result, done`, subagent_type: "Explore", model: "haiku" }) // STANDARD — typical implementation work Agent({ prompt: `Senior engineer, TDD. Implement input validation for the login form. ## Scope Timing: STANDARD — focused implementation. - Under 1500 words - Stay on task, deliver the work, verify it works`, subagent_type: "general-purpose", model: "sonnet" }) // DEEP — comprehensive analysis Agent({ prompt: `Offensive-security operator mindset: map the attack surface, find the seam, prove it, document it. Authorized testing only. Perform a thorough security review of all auth flows. ## Scope Timing: DEEP — comprehensive analysis. - No word limit - Explore alternatives, consider edge cases - Thorough verification and documentation`, subagent_type: "general-purpose", model: "opus" }) ``` -------------------------------- ### User extension examples: new .md files at USER/ root Source: https://docs.ourlifeos.ai/LifeOs__LifeOsSchema Examples of user extension files that can be added at the USER/ root. Each file must have valid frontmatter; Pulse's fs.watch detects it, the indexer parses it, and the dashboard renders a new tile. No code changes are required in Pulse, Daemon, or Interview. ```markdown USER/Podcasts.md # new taste file USER/Gratitude.md # new mind file USER/Travel.md # new shape file with category: travel (novel category — auto-grouped) USER/BoardGames.md # new taste file ``` -------------------------------- ### Validation Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows validation flags --dry-run and --explain to preview execution. ```bash # Validate before executing evals run --use-case foo --dry-run # Show what would happen evals run --use-case foo --explain ``` -------------------------------- ### GET /api/wiki Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves the system doc index. ```APIDOC ## GET /api/wiki ### Description System doc index. ### Method GET ### Endpoint /api/wiki ### Response #### Success Response (200) - System doc index #### Response Example { "docs": [] } ``` -------------------------------- ### Example: Well-Configured Tool (bun Generate.ts) Source: https://docs.ourlifeos.ai/Skills__SkillSystem Shows minimal and full invocations of a CLI tool using bun. The full configuration demonstrates resource selection, output configuration, post-processing flags, and output path. Comments in the code explain each flag category. ```bash # Minimal invocation (sensible defaults) bun Generate.ts --prompt "..." --output /tmp/image.png # Full configuration bun Generate.ts \ --model nano-banana-pro \ # Resource selection --prompt "..." \ --size 2K \ # Output configuration --aspect-ratio 16:9 \ --thumbnail \ # Post-processing --remove-bg \ --output /tmp/header.png ``` -------------------------------- ### GET /api/security/attack-surface Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves deployed-estate scan snapshot. Returns 404 when no scanner is configured on the install. ```APIDOC ## GET /api/security/attack-surface ### Description Deployed-estate scan snapshot (404 when no scanner is configured on the install). ### Method GET ### Endpoint /api/security/attack-surface ### Response #### Success Response (200) - Attack surface snapshot #### Response Example { "snapshot": {} } #### Error Response (404) - No scanner configured ``` -------------------------------- ### Install Conduit via launchd Source: https://docs.ourlifeos.ai/Conduit__ConduitSystem Commands to install, check status, and uninstall the Conduit launchd agent. The install command polls every 120 seconds. ```bash bun LIFEOS/PULSE/Conduit/InstallConduit.ts # install + load (polls every 120s) bun LIFEOS/PULSE/Conduit/InstallConduit.ts --status # launchd state bun LIFEOS/PULSE/Conduit/InstallConduit.ts --uninstall # unload + remove ``` -------------------------------- ### Example diary entry Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem Example JSON object for a diary entry. ```json { "date": "2026-04-03", "interaction_count": 8, "topics": ["LifeOS architecture", "newsletter draft", "feed system debugging"], "mood": "positive", "avg_rating": 8.2, "notable_moments": [ "Designed the DA subsystem together - the principal was excited about heartbeat", "Fixed a tricky feed worker bug that had been open for 3 days" ], "learning": "The principal prefers architecture diagrams in ASCII over Mermaid" } ``` -------------------------------- ### Output Formats Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Demonstrates human-readable default output, JSON for scripting, and specific fields for parsing. ```bash # Human-readable by default evals list use-cases # JSON for scripting evals list use-cases --json # Specific fields for parsing evals query runs --fields id,score,model ``` -------------------------------- ### Cloud Action Execution Source: https://docs.ourlifeos.ai/Arbol__ArbolSystem Example curl command to trigger an action in the cloud. ```bash curl -X POST https://arbol-a-your-action.YOUR-SUBDOMAIN.workers.dev/ \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"content": "Your text here"}' ``` -------------------------------- ### Opinions YAML example Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem Example YAML file for DA opinions with confidence-weighted beliefs. ```yaml # DA Opinions -- evolve over time # Confidence: 0.0 (wild guess) to 1.0 (proven repeatedly) # Source: observation | inference | stated (principal told me) opinions: - topic: "Architecture documentation format" belief: "The principal prefers ASCII diagrams over Mermaid" confidence: 0.85 source: observation evidence_count: 7 first_observed: "2026-01-20" last_confirmed: "2026-04-03" - topic: "Response length preference" belief: "Short for simple tasks, deep when warranted" confidence: 0.92 source: stated evidence_count: 12 first_observed: "2025-12-01" last_confirmed: "2026-04-01" - topic: "Late night productivity" belief: "The principal does their best deep work after 10 PM" confidence: 0.70 source: observation evidence_count: 15 first_observed: "2026-01-05" last_confirmed: "2026-03-28" ``` -------------------------------- ### Configuration Flags Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows various configuration flags for execution mode, output control, resource selection, and post-processing. ```bash # Execution mode flags tool run --fast # Quick mode (less thorough, faster) tool run --thorough # Comprehensive mode (slower, more complete) tool run --dry-run # Show what would happen without executing # Output control flags tool run --format json # Machine-readable output tool run --format markdown # Human-readable output tool run --quiet # Minimal output tool run --verbose # Detailed logging # Resource selection flags tool run --model haiku # Use fast/cheap model tool run --model opus # Use powerful/expensive model # Post-processing flags tool generate --thumbnail # Generate additional thumbnail version tool generate --remove-bg # Remove background after generation tool process --no-cache # Bypass cache, force fresh execution ``` -------------------------------- ### Skill directory structure with context files Source: https://docs.ourlifeos.ai/Skills__SkillSystem Shows the recommended directory layout for a skill using the Dynamic Loading Pattern. Context files (Aesthetic.md, Examples.md, etc.) live directly in the skill root alongside SKILL.md, with Workflows/ and Tools/ subdirectories. ```text skills/SkillName/ ├── SKILL.md # Minimal routing - loads on invocation ├── Aesthetic.md # Context file - SOP for aesthetic handling ├── Examples.md # Context file - SOP for examples ├── ApiReference.md # Context file - SOP for API usage ├── Tools.md # Context file - SOP for tool usage ├── Workflows/ # Workflow execution files │ ├── Create.md │ └── Update.md └── Tools/ # Actual CLI tools └── Generate.ts ``` -------------------------------- ### Arbol CLI Quick Start Commands Source: https://docs.ourlifeos.ai/Tools__Cli Commands to run actions with inline JSON, pipe JSON, list actions/pipelines, and show action details. Requires navigating to the Actions directory first. ```bash cd ~/.claude/LIFEOS/ARBOL/Actions # Run an action with inline JSON bun lifeos.ts action A_EXAMPLE_SUMMARIZE --input '{"content": "Your text here"}' # Pipe JSON into an action echo '{"content": "Your text"}' | bun lifeos.ts action A_EXAMPLE_SUMMARIZE # List all available actions bun lifeos.ts actions # List all available pipelines bun lifeos.ts pipelines # Show action details bun lifeos.ts info A_EXAMPLE_SUMMARIZE ``` -------------------------------- ### Newsletter Parser CLI Migration Example Source: https://docs.ourlifeos.ai/docs/Tools__CliFirstArchitecture Shows the before/after of migrating ad-hoc prompting to CLI-First architecture. Step 1 builds the CLI with parser commands; Step 2 updates prompting so the AI executes CLI commands instead of ad-hoc code. ```bash # Before: Ad-hoc prompting reads/parses/stores content # After: CLI-First architecture # Step 1: Build CLI parser parse --url https://example.com --output content.json parser store --file content.json --collection newsletters parser query --collection newsletters --tag ai --limit 10 # Step 2: Update prompting to use CLI # Instead of ad-hoc code, AI executes CLI commands ``` -------------------------------- ### CLI Tool Invocation Examples Source: https://docs.ourlifeos.ai/docs/Skills__SkillSystem Shows minimal and full configuration invocations for a well-configured CLI tool. The minimal call relies on sensible defaults, while the full call demonstrates resource, output, and post-processing flags. ```bash bun Generate.ts --prompt "..." --output /tmp/image.png ``` ```bash bun Generate.ts \ --model nano-banana-pro \ # Resource selection --prompt "..." \ --size 2K \ # Output configuration --aspect-ratio 16:9 \ --thumbnail \ # Post-processing --remove-bg \ --output /tmp/header.png ``` -------------------------------- ### Install Codex update Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Codex update service (com.lifeos.codexupdate). This is an opt-in service that runs daily/scheduled. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallCodexUpdate.ts ``` -------------------------------- ### DA Module Startup Flow Diagram Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem ASCII diagram showing the startup sequence for the DA module, including loading modules, checking registry, and registering cron jobs. ```text Pulse boots | v loadModules(config) | +-- if config.da?.enabled: | | | v | import("./modules/da") | | | v | daModule.startDA(config.da) | | | v | Load DA registry (_registry.yaml) | | | +-- Registry exists? | | | | | yes → Load primary DA identity | | | | | no → Log warning, start in degraded mode | | "No DA identity found. Run: bun LIFEOS/TOOLS/DAInterview.ts" | | | v | Register DA cron jobs with Pulse heartbeat loop: | +-- heartbeat check (da-heartbeat) | +-- scheduled task evaluator (da-tasks) | +-- diary writer (da-diary) | +-- growth engine (da-growth) | | | v | DA module running | v Continue Pulse startup (HTTP server, other modules, cron loop) ``` -------------------------------- ### Example: 3 custom research agents, each a different inline brief Source: https://docs.ourlifeos.ai/Agents__AgentSystem Shows how to launch three custom research agents with distinct inline briefs, batched in one message for parallelism. ```javascript // Example: 3 custom research agents, each a different inline brief Agent({ subagent_type: "general-purpose", prompt: "You are an enthusiastic, exploratory researcher. …" }) Agent({ subagent_type: "general-purpose", prompt: "You are a skeptical, systematic researcher. …" }) Agent({ subagent_type: "general-purpose", prompt: "You are an analytical, synthesizing researcher. …" }) ``` -------------------------------- ### Install Conveyor stage engine Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Conveyor stage engine service (com.lifeos.conveyor-runner). This is an opt-in service that runs at load. ```bash bun ~/.claude/LIFEOS/TOOLS/InstallConveyorRunner.ts ``` -------------------------------- ### Correct directory structure with context files in skill root Source: https://docs.ourlifeos.ai/Skills__SkillSystem Shows the correct directory structure where context files (Aesthetic.md, Examples.md) are placed directly in the skill root, not in a subdirectory. ```text skills/SkillName/ ├── SKILL.md ├── Aesthetic.md ✅ Context file in skill root └── Examples.md ✅ Context file in skill root ``` -------------------------------- ### Action Manifest (action.json) Source: https://docs.ourlifeos.ai/Arbol__ArbolSystem Example manifest file defining the action's metadata, schema, and requirements. ```json { "name": "A_LABEL_AND_RATE", "description": "Label and rate content using Fabric's label_and_rate pattern.", "input": { "content": { "type": "string", "required": true }, "title": { "type": "string" } }, "output": { "one_sentence_summary": { "type": "string" }, "labels": { "type": "array" }, "rating": { "type": "string" }, "quality_score": { "type": "integer" } }, "requires": ["llm", "readFile"] } ``` -------------------------------- ### Progressive Disclosure Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows simple command for common cases and advanced options for complex scenarios. ```bash # Simple for common cases evals run --use-case newsletter-summary # Advanced options available evals run --use-case newsletter-summary \ --model claude-3-5-sonnet \ --prompt v2.0.0 \ --test-case 001 \ --verbose \ --output results.json ``` -------------------------------- ### Step 3: Prompting Integration for Evals System Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows how a user prompt triggers a sequence of CLI commands and the resulting user-visible output. ```text User: "Run evals for newsletter summary with Claude and GPT-4, then compare them" AI executes: 1. evals run --use-case newsletter-summary --model claude-3-5-sonnet 2. evals run --use-case newsletter-summary --model gpt-4o 3. evals compare models --use-case newsletter-summary 4. Summarize results in structured format User sees: - Run summaries (tests passed, scores) - Model comparison (which performed better) - Detailed results if requested ``` -------------------------------- ### Deployment procedure: build and restart Pulse Source: https://docs.ourlifeos.ai/Pulse__PulseSystem After building the Observatory dashboard, Pulse must be restarted using launchctl stop/start. Do NOT use kill -9 because launchd KeepAlive respawns the process with stale code. ```bash cd ~/.claude/LIFEOS/Observability && bun run build launchctl stop com.lifeos.pulse && launchctl start com.lifeos.pulse ``` -------------------------------- ### Loading context files via SkillSearch Source: https://docs.ourlifeos.ai/Skills__SkillSystem Shows how to load additional context files from workflow files or SKILL.md using SkillSearch calls. ```text # In workflow files or SKILL.md SkillSearch('art aesthetic') # Loads Aesthetic.md from skill root SkillSearch('art examples') # Loads Examples.md from skill root SkillSearch('art tools') # Loads Tools.md from skill root ``` -------------------------------- ### Context file referencing workflows and tools Source: https://docs.ourlifeos.ai/Skills__SkillSystem Example of a context file (Aesthetic.md) that references workflows and tools. ```text # Aesthetic.md (context file) Use the Essay workflow for blog headers: `Workflows/Essay.md` Generate images with: `bun Tools/Generate.ts` ``` -------------------------------- ### Install Hermes sidecar gateway Source: https://docs.ourlifeos.ai/Services__BackgroundServices Installs the Hermes sidecar gateway service (ai.hermes.gateway). This is an opt-in service that runs at load. Health probe: bun LIFEOS/HERMES/Health.ts. ```bash bun ~/.claude/LIFEOS/HERMES/Mount.ts ``` -------------------------------- ### Flow Registry JSON Example Source: https://docs.ourlifeos.ai/Arbol__ArbolSystem Example JSON structure for registering a flow in the flow registry. Includes id, name, source, pipeline, destination, and schedule fields. ```json { "flows": [ { "id": "flow-your-source-pipeline", "name": "Your Flow Name", "source": { "type": "rss", "url": "https://example.com/feed" }, "pipeline": "P_YOUR_PIPELINE", "destination": { "type": "email", "address": "your-email@example.com" }, "schedule": { "intervalMinutes": 30, "enabled": true } } ] } ``` -------------------------------- ### Reading a context file directly Source: https://docs.ourlifeos.ai/Skills__SkillSystem Shows how to read a specific context file directly using the Read command. ```text # Read specific context file Read ~/.claude/skills/Art/Aesthetic.md ``` -------------------------------- ### Migration Steps for Primary DA Source: https://docs.ourlifeos.ai/Pulse__DaSubsystem Provides the step-by-step migration process for the primary DA, including creating directories, running the migration script, updating configuration, and deprecating old files. ```markdown Current State: LIFEOS/USER/DIGITAL_ASSISTANT/DA_IDENTITY.md (flat markdown) LIFEOS/USER/DA_WRITING_STYLE.md (separate file) LIFEOS_CONFIG.toml → DA section (voice, personality) Step 1: Create directory structure mkdir -p LIFEOS/USER/DA/your-da Step 2: Run migration script bun LIFEOS/TOOLS/MigrateDAIdentity.ts → Reads DA_IDENTITY.md, DA_WRITING_STYLE.md, LIFEOS_CONFIG.toml → Writes your-da/DA_IDENTITY.yaml (structured) → Writes _registry.yaml (your-da as primary) → Generates your-da/DA_IDENTITY.md (for backward compat) → Creates empty your-da/growth.jsonl, your-da/opinions.yaml, your-da/diary.jsonl Step 3: Update LIFEOS_CONFIG.toml DA section becomes pointer: DA: REGISTRY: LIFEOS/USER/DA/_registry.yaml PRIMARY: your-da Step 4: Update ConfigRenderer → Reads DA identity from registry path → Template variables still resolve Step 5: Verify → CLAUDE.md generates correctly → iMessage module uses correct identity → Voice uses correct voice_id → No visible behavioral change Step 6: Deprecate old files → DA_IDENTITY.md gets header: "# DEPRECATED — See LIFEOS/USER/DA/your-da/DA_IDENTITY.yaml" → DA_WRITING_STYLE.md gets header: "# DEPRECATED — Folded into DA_IDENTITY.yaml" → Both files kept for 30 days, then deleted Step 7: Enable DA module → Add [da] section to PULSE.toml → Restart Pulse → Heartbeat starts running ``` -------------------------------- ### Agent Session Mapping Example: agent-sessions.json Source: https://docs.ourlifeos.ai/Hooks__HookSystem Example content of the agent-sessions.json file that maps session IDs to agent names. This file is used by the agent detection pattern to store and retrieve the agent for each session. ```json { "session-id-abc123": "engineer", "session-id-def456": "researcher" } ``` -------------------------------- ### Check learnings directories Source: https://docs.ourlifeos.ai/Memory__MemorySystem List contents of the learning system, algorithm, and synthesis directories. ```shell ls ~/.claude/LIFEOS/MEMORY/LEARNING/SYSTEM/ ls ~/.claude/LIFEOS/MEMORY/LEARNING/ALGORITHM/ ls ~/.claude/LIFEOS/MEMORY/LEARNING/SYNTHESIS/ ``` -------------------------------- ### Error Handling Example Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Shows a clear error message with available use cases and exit codes. ```bash # Clear error messages $ evals run --use-case nonexistent Error: Use case 'nonexistent' not found Available use cases: - newsletter-summary - code-review Run 'evals use-case create' to create a new use case. # Exit codes 0 = success 1 = user error (wrong args, missing file) 2 = system error (database error, network error) ``` -------------------------------- ### GET /voice Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves voice status. ```APIDOC ## GET /voice ### Description Voice status. ### Method GET ### Endpoint /voice ### Response #### Success Response (200) - Voice status #### Response Example { "status": "..." } ``` -------------------------------- ### Step 2: CLI Design for Evals System Source: https://docs.ourlifeos.ai/Tools__CliFirstArchitecture Provides the CLI commands for managing use cases, test cases, golden outputs, prompts, running evaluations, querying results, and comparing runs. ```bash # Use case management evals use-case create --name --description evals use-case list evals use-case show --name evals use-case delete --name # Test case management evals test-case add --use-case --id --input evals test-case list --use-case evals test-case show --use-case --id # Golden output management evals golden add --use-case --test-id --file evals golden update --use-case --test-id --file # Prompt management evals prompt create --use-case --version --file evals prompt list --use-case evals prompt show --use-case --version # Run evaluations evals run --use-case [--model ] [--prompt ] evals run --use-case --all-models evals run --use-case --all-prompts # Query results evals query runs --use-case [--limit N] evals query runs --model [--score-min X] evals query runs --since # Compare evals compare runs --run-a --run-b evals compare models --use-case --prompt evals compare prompts --use-case --model ``` -------------------------------- ### GET /assistant/opinions Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves current DA opinions. ```APIDOC ## GET /assistant/opinions ### Description Current DA opinions. ### Method GET ### Endpoint /assistant/opinions ### Response #### Success Response (200) - DA opinions #### Response Example { "opinions": [] } ``` -------------------------------- ### GET /assistant/diary Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves recent diary entries. ```APIDOC ## GET /assistant/diary ### Description Recent diary entries. ### Method GET ### Endpoint /assistant/diary ### Response #### Success Response (200) - Recent diary entries #### Response Example { "entries": [] } ``` -------------------------------- ### GET /assistant/avatar Source: https://docs.ourlifeos.ai/Observability__ObservabilitySystem Retrieves the DA avatar image. ```APIDOC ## GET /assistant/avatar ### Description DA avatar image. ### Method GET ### Endpoint /assistant/avatar ### Response #### Success Response (200) - Avatar image data #### Response Example { "image": "..." } ```