LifeOS Response Format Modes Explained: MINIMAL, NATIVE, and ALGORITHM

LifeOS uses three response-format modes—MINIMAL, NATIVE, and ALGORITHM—to control verbosity and structure, ranging from ultra-concise answers to full seven-phase algorithmic plans.

The LifeOS personal operating system formats every AI-generated response according to one of three distinct response-format modes that dictate how much scaffolding, procedural detail, and structural overhead the output contains. These modes are hardcoded into the system prompt templates and enforced by post-processing utilities in the LifeOS codebase.

What Are the Three LifeOS Response Format Modes?

LifeOS defines its response behavior through templates stored in [LIFEOS_SYSTEM_PROMPT.md](https://github.com/danielmiessler/LifeOS/blob/main/LifeOS/install/LIFEOS/LIFEOS_SYSTEM_PROMPT.md) and validated by the regex in [strip-mode-scaffolding.ts](https://github.com/danielmiessler/LifeOS/blob/main/LifeOS/install/LIFEOS/PULSE/lib/strip-mode-scaffolding.ts). Each mode serves a specific interaction pattern.

MINIMAL Mode

MINIMAL produces the most constrained output. The system prompt template for this mode strips away virtually all structure—no headers, no phase labels, no TASK/CONTENT separation. The model returns only the essential answer.

LifeOS triggers MINIMAL for:

  • Ultra-short prompts (three characters or fewer)
  • Positive acknowledgments ("yes", "done", "ok")
  • Any interaction where the classifier determines elaboration adds friction

The MINIMAL template in LIFEOS_SYSTEM_PROMPT.md enforces this by providing a bare frame:


# MINIMAL

{{answer}}

After generation, strip-mode-scaffolding.ts removes any stray "MINIMAL" label lines using the pattern /^[ \t]*(MINIMAL|NATIVE|ALGORITHM)[ \t]*$/gm.

NATIVE Mode

NATIVE is the default workhorse format. It provides balanced structure without excessive verbosity: a brief header, a clearly marked TASK section, and a CONTENT block containing the substantive answer.

The NATIVE template appears in LIFEOS_SYSTEM_PROMPT.md as:


# NATIVE

TASK: {{task}}
CONTENT:
{{answer}}

This mode activates for ordinary conversational queries that don't qualify for MINIMAL brevity or ALGORITHM depth. It maintains LifeOS's "concise-by-default" principle while ensuring context remains parseable by downstream components.

ALGORITHM Mode

ALGORITHM implements the full LifeOS methodology through a seven-phase loop: OBSERVE → THINK → PLAN → BUILD → EXECUTE → VERIFY → LEARN. Each phase receives explicit PHASE headings, detailed TASK descriptions, and optional EVIDENCE or VERIFICATION sections.

The ALGORITHM template in LIFEOS_SYSTEM_PROMPT.md contains:


# ALGORITHM

## PHASE: OBSERVE

TASK: {{observe_task}}
EVIDENCE: {{evidence}}

## PHASE: THINK

...

[continues through all seven phases]

LifeOS selects ALGORITHM when:

  • The prompt contains "hard-ALGORITHM" triggers ("master plan", "audit the doctrine", "full analysis")
  • The classifier predicts multi-step workflow requirements
  • Explicit mode override is requested

How LifeOS Applies Response Format Modes

Mode Selection Pipeline

Historically, the TheRouter.hook.ts classifier analyzed incoming prompts and emitted a MODE: token. Though retired on 2026-07-11, this established the mode-selection contract that persists in the current architecture:

  1. Prompt classification — Input is analyzed for length, intent signals, and trigger phrases
  2. Template injection — The corresponding section from LIFEOS_SYSTEM_PROMPT.md is prepended to the model context
  3. Generation — The model produces output within the template constraints
  4. Scaffolding cleanupstrip-mode-scaffolding.ts sanitizes any mode labels that leaked into the visible output

Post-Processing with strip-mode-scaffolding.ts

The utility at [LifeOS/install/LIFEOS/PULSE/lib/strip-mode-scaffolding.ts](https://github.com/danielmiessler/LifeOS/blob/main/LifeOS/install/LIFEOS/PULSE/lib/strip-mode-scaffolding.ts) ensures clean presentation:

// From strip-mode-scaffolding.ts
const MODE_LABEL_REGEX = /^[ \t]*(MINIMAL|NATIVE|ALGORITHM)[ \t]*$/gm;

export function stripModeLabels(rawOutput: string): string {
  return rawOutput.replace(MODE_LABEL_REGEX, '').trim();
}

This regex catches mode labels that appear as standalone lines, removing artifacts like:


MINIMAL

The answer is 42.

Down into:


The answer is 42.

Code Examples: Working with LifeOS Response Modes

Detecting Mode from Generated Output

import { stripModeLabels } from "./PULSE/lib/strip-mode-scaffolding.ts";

function processLifeOSOutput(rawOutput: string): { mode: string | null; content: string } {
  // Extract mode label if present
  const modeMatch = rawOutput.match(/^[ \t]*(MINIMAL|NATIVE|ALGORITHM)[ \t]*$/m);
  const mode = modeMatch ? modeMatch[1] : null;
  
  // Clean the output
  const content = stripModeLabels(rawOutput);
  
  return { mode, content };
}

Mode-Aware Rendering in UI Components

// From PULSE/modules/tab-freshness.ts pattern
interface LifeOSResponse {
  mode: 'MINIMAL' | 'NATIVE' | 'ALGORITHM';
  task?: string;
  content: string;
  phases?: AlgorithmPhase[];  // Present only in ALGORITHM mode
}

function renderResponse(response: LifeOSResponse): string {
  switch (response.mode) {
    case 'MINIMAL':
      return `<span class="minimal">${response.content}</span>`;
    case 'NATIVE':
      return `
        <div class="native">
          <h4>${response.task}</h4>
          <p>${response.content}</p>
        </div>
      `;
    case 'ALGORITHM':
      return renderPhaseAccordion(response.phases!);
  }
}

Where Response Format Modes Are Defined and Enforced

File Role in Mode System
[LIFEOS_SYSTEM_PROMPT.md](https://github.com/danielmiessler/LifeOS/blob/main/LIFEOS/install/LIFEOS/LIFEOS_SYSTEM_PROMPT.md) Contains the three template definitions (MINIMAL, NATIVE, ALGORITHM) injected into model context
[strip-mode-scaffolding.ts](https://github.com/danielmiessler/LifeOS/blob/main/LifeOS/install/LIFEOS/PULSE/lib/strip-mode-scaffolding.ts) Post-processes output with regex `/^[ \t]*(MINIMAL
[RouterSystem.md](https://github.com/danielmiessler/LifeOS/blob/main/LifeOS/install/LIFEOS/DOCUMENTATION/Router/RouterSystem.md) Historical documentation of mode selection logic and MODE: token emission
TheRouter.hook.ts Retired classifier that originally determined mode from prompt analysis
PULSE/modules/tab-freshness.ts UI layer that consumes mode metadata for response rendering

Summary

  • MINIMAL delivers atomic answers with zero structural overhead, triggered by short prompts or acknowledgments
  • NATIVE provides the standard TASK/CONTENT structure for typical interactions, balancing clarity with concision
  • ALGORITHM unfolds the full seven-phase methodology for complex, multi-step problem solving
  • All three modes are template-driven from LIFEOS_SYSTEM_PROMPT.md and sanitized by strip-mode-scaffolding.ts
  • The mode system originated with TheRouter classification (now retired) but persists as a core output contract

Frequently Asked Questions

How does LifeOS decide which response format mode to use?

LifeOS applies heuristic rules and prompt analysis to select modes. MINIMAL triggers on very short inputs or simple acknowledgments. ALGORITHM activates on explicit trigger phrases like "master plan" or "audit." Everything else defaults to NATIVE. This logic was historically handled by TheRouter.hook.ts before its retirement in July 2026.

Can users override the automatic mode selection?

The source code does not expose a direct user-facing override mechanism. However, including explicit ALGORITHM trigger phrases in your prompt effectively forces that mode. For MINIMAL behavior, keep inputs under four characters or use acknowledgment language.

What happens if the model emits a mode label in its response?

The stripModeLabels() function in strip-mode-scaffolding.ts removes these artifacts using the regex /^[ \t]*(MINIMAL|NATIVE|ALGORITHM)[ \t]*$/gm. This ensures users never see raw mode tokens in final output, maintaining clean presentation regardless of model compliance with the template structure.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →