Layer 5: Personality Modes โ
Layer 5 (Presentation) shapes how context is retrieved and presented. Rather than changing what's stored, Personality Modes change the temporal posture of every retrieval โ the same project data, viewed from four different angles.
Layer 5 is pure presentation
No database migration needed. Personality Modes are applied at retrieval time inside ContextService and formatted in ToolExecutionHandler. The data contract is the personality_mode parameter on load_context and search_context.
The Four Modes โ
| Mode | Answers | Retrieval | Tone |
|---|---|---|---|
historian | What happened and why? | By recency (default) | Factual, timestamp-heavy |
prophet | What should I focus on next? | By Layer 4 prediction score | Predictive, forward-looking |
archaeologist | What have I forgotten? | By dormancy (least-accessed first) | Exploratory, archival |
minimalist | Give me just the content. | By recency | Silent โ summaries only |
historian (default) โ
Focus: Decision history
Retrieval: Standard reverse-chronological (most recent first)
Output: Timestamp, memory tier, causality action + rationale, summary, tags
This is the default mode when no personality_mode is specified. It reconstructs what happened and why โ ideal for resuming work or producing an audit trail.
load_context({
project: "api-redesign",
limit: 3
// personality_mode defaults to "historian"
})Example output:
Found 3 context(s):
Historian Mode โ Decision history for `api-redesign`
**2025-10-17T16:00:00Z** ยท tier: ACTIVE
Action: decision โ Chose REST for initial release
Decision: Use REST API with versioning. Migrate to GraphQL only if needed.
Tags: rest, api, versioning, architecture, decision
**2025-10-17T14:30:00Z** ยท tier: ACTIVE
Research summary on API design patterns
Tags: research, api, graphql, rest, grpcprophet โ
Focus: Next session priorities
Retrieval: Ranked by Layer 4 prediction score (predictionScore DESC)
Output: Prediction score, propagation reasons, predicted next access, summary
Prophet mode reads Layer 4's per-project weights and surfaces what the system predicts you'll need next โ not what's most recent, but what's most likely to matter.
load_context({
project: "api-redesign",
limit: 5,
personality_mode: "prophet"
})Example output:
Found 5 context(s):
Prophet Mode โ Predicted priorities for `api-redesign`
**Prediction score: 0.87** (recent_access, high_frequency)
Decision: Use REST API with versioning.
Predicted next access: 2025-10-18T09:00:00Z
**Prediction score: 0.64** (causal_root)
Initial project kickoff โ API requirements
Predicted next access: 2025-10-18T10:30:00ZFallback behavior
If a project has no prediction scores yet (no update_predictions run), prophet falls back to recency order.
archaeologist โ
Focus: Dormant threads โ the forgotten and unvisited
Retrieval: Fetches 50 contexts, re-sorts by lastAccessed ASC (null first = never accessed)
Output: Timestamp, dormancy status, memory tier, summary, tags
Archaeologist ignores recency bias entirely. It surfaces contexts you haven't touched in the longest time โ useful for project archaeology, long-running work, or finding abandoned threads.
load_context({
project: "api-redesign",
limit: 5,
personality_mode: "archaeologist"
})Example output:
Found 5 context(s):
Archaeologist Mode โ Dormant threads for `api-redesign`
**2025-08-01T10:00:00Z** ยท never accessed ยท tier: EXPIRED
Early rate-limiting spike (deferred)
Tags: rate-limiting, spike, deferred
**2025-09-10T14:00:00Z** ยท last accessed 2025-09-11T08:00:00Z ยท tier: ARCHIVED
gRPC evaluation notes โ abandoned after REST decision
Tags: grpc, evaluation, abandonedWhen to use archaeologist
- Before a major refactor: "What did we evaluate but never ship?"
- Long-running projects: "What threads have we dropped?"
- Knowledge transfer: "What context exists that nobody's reading?"
minimalist โ
Focus: Raw context content
Retrieval: Standard reverse-chronological (same as historian)
Output: Summaries only, no headers, no metadata, no framing
Minimalist strips all presentation โ no mode header, no timestamps, no tiers, no tags. Just the summaries joined by blank lines. Ideal for programmatic use, passing raw context to another tool, or conserving tokens.
load_context({
project: "api-redesign",
limit: 3,
personality_mode: "minimalist"
})Example output:
Decision: Use REST API with versioning. Migrate to GraphQL only if needed later.
Research summary on API design patterns โ REST vs GraphQL vs gRPC evaluation.
Initial project kickoff notes.How Modes Work Together with Layers 1โ4 โ
Layer 5 reads data from all four underlying layers:
| Mode | Layer Data Used |
|---|---|
historian | Layer 1 (causality action + rationale), Layer 2 (memory tier) |
prophet | Layer 3 (prediction score, reasons, predicted access), Layer 4 (tuned weights) |
archaeologist | Layer 2 (lastAccessed, memory tier) |
minimalist | Core context only (summary) |
Implementation Reference โ
Config: src/config/personality-modes.ts
export const PERSONALITY_MODES = {
historian: { focus: 'decision_history', tone: 'factual', depth: 'causal_chain', verbosity: 'high' },
prophet: { focus: 'next_session', tone: 'predictive', depth: 'propagation', verbosity: 'medium' },
archaeologist: { focus: 'dormant_threads', tone: 'exploratory', depth: 'full_archive', verbosity: 'high' },
minimalist: { focus: 'raw_context', tone: 'silent', depth: 'surface', verbosity: 'none' },
} as const;Applied in:
ContextService.loadContext()โ mode-aware retrieval orderContextService.searchContext()โ mode-aware post-search rankingToolExecutionHandler.handleLoadContext()โ mode-aware formattingToolExecutionHandler.handleSearchContext()โ mode-aware formatting
Type contract: personality_mode is an optional enum on both LoadContextInput and SearchContextInput.
See Also โ
- load_context tool โ
personality_modeparameter reference - search_context tool โ
personality_modeparameter reference - Layer 4: Meta-Learning โ prediction scores that
prophetreads - Layer 2: Memory Manager โ dormancy data that
archaeologistreads
