Atlas / Skills / leoyeai / Personality Engine

Personality EngineSAFE

skills/leoyeai/personality-engine

🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
1 documented
License
MIT
Stars
2,160
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Six-system behavior engine that makes any OpenClaw agent feel alive — opinions, silence, timing, memory, engagement adaptation, and ambient pings.

Install

clawhub install personality-engine

Quick Start

from personality_engine.engine import PersonalityEngine

engine = PersonalityEngine(user_id="[email protected]")

# Pass triggers through the engine
should_send, msg = await engine.process_trigger(
trigger_type="cross_platform",
raw_message="Divergence: Kalshi 52%, Poly 48%",
market_data={"spread": 4.0},
urgency_context={},
)

if should_send:
send_message(msg.content)

The 6 Systems

Domain-Agnostic

Default configuration is tuned for prediction market trading, but every system adapts to any domain: personal assistants, DevOps monitors, sales CRM, content management. Swap voice pools, thresholds, and micro-initiation conditions.

Full Documentation

See SKILL.md for complete documentation including per-system architecture, customization guide, integration steps, and domain adaptation table.

Part of the OpenClaw Prediction Market Trading Stack

clawhub install kalshalyst kalshi-command-center polymarket-command-center prediction-market-arbiter xpulse portfolio-drift-monitor market-morning-brief personality-engine

Author: KingMadeLLC

Read from source at commit 4f3b4a2a472eOBSERVED · 2026-10-08
02

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
openclawmentioned
03

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: Personality Engine
description: "Six-system behavior engine that makes any OpenClaw agent feel alive. Editorial voice injects opinions. Selective silence knows when NOT to talk. Variable timing scores urgency with time-of-day awareness. Micro-initiations send ambient pings. Context buffer enables back-references to earlier messages. Response tracker adapts to engagement patterns. Domain-agnostic — works with trading agents, personal assistants, DevOps monitors, or any proactive agent. Part of the OpenClaw Prediction Market Trading Stack with default trading configuration."
---

# Personality Engine — 6-System Behavior Framework

**Goal**: Make any AI agent feel *alive* — opinions, awareness, judgment, memory, timing sense, and engagement sensitivity. Works with trading agents, notification systems, personal assistants, or any proactive agent. Not just data delivery.

## Architecture Overview

```
Trigger fires → engine.py orchestrator
              ↓
         selective_silence (should we stay silent?)
              ↓
         urgency_compute (how urgent is this 0.0-1.0?)
              ↓
         engagement_modifier (adjust for user response patterns)
              ↓
         variable_timing (schedule delivery based on urgency + time of day)
              ↓
         context_buffer (add back-references to earlier messages today)
              ↓
         editorial_voice (inject personality / opinions)
              ↓
         dedup (avoid repeats within rolling window)
              ↓
         send → iMessage (or other transport)
```

Plus two ambient systems:
- **micro_initiations**: Unprompted pings when conditions are met (quiet market, good streak, absence detected)
- **response_tracker**: Monitors engagement; adjusts urgency + suggests tuning

---

## System 1: Editorial Voice — Opinion Injection

**What**: Each trigger type gets a personality — opinions that vary based on market state, portfolio P&L, signal confidence.

**Per-trigger voice pools**:

### cross_platform (Kalshi vs Polymarket divergence)
- **Bullish divergence (>5%)**: "Big divergence. One of these markets is wrong."
- **Mild divergence (2-5%)**: "Mild divergence. Nothing screaming yet."
- **Stale divergence (6+ hours old)**: "Divergence is stale — markets may have already repriced."

### portfolio (user's holdings performance)
- **+15% or better**: "Good day. Portfolio's running."
- **+5% to +15%**: "Solid gains. Steady hand."
- **-5% to +5%**: "Flat day. Markets are grinding."
- **-5% to -15%**: "Rough patch. Check your stops."
- **-15% or worse**: "Heavy day. Buckle up for volatility."

### x_signals (social signal scanner)
- **Confidence ≥0.85 + matched position**: "Strong signal. This feels real."
- **Confidence 0.70-0.85**: "New signal on [topic]. Worth watching."
- **Confidence <0.70**: "Noise signal. Low confidence."

### edge (Kalshi edge detection)
- **Edge >3%**: "Fat edge. Worth a deep look."
- **Edge 1-3%**: "Mild edge. Keeping it on radar."
- **Edge <1%**: "Thin edge. Not worth the friction."

### morning (daily brief)
- **Monday**: "New week. Here's the lay of the land."
- **Friday**: "Friday rundown. What matters before the close."
- **Other**: "Daily digest."

### conflicts (overlapping triggers same hour)
- **2+ conflicts**: "Tomorrow's a mess. Multiple overlaps."
- **Lighter**: "Heads up — couple things hitting together."

**Customization point**: Add trigger types by extending the `VOICE_POOLS` dict in `editorial_voice.py`. Each entry maps `(trigger_name, market_state)` → list of opinion strings.

---

## System 2: Selective Silence — Knowing When NOT to Talk

**What**: Not every trigger fire deserves a message. Silent skips are explicit: "Skipped the brief — nothing worth your attention."

**Content quality checks per trigger**:

- **morning_is_boring**: If market vol <0.5%, no divergences, no edges → skip
- **divergence_is_stale**: If last message on this topic was <3 hours ago AND spread hasn't moved >0.5% → skip
- **signals_are_noise**: If all signals have confidence <0.65 AND no position matches → skip
- **edge_is_weak**: If all edges <1% → skip
- **portfolio_is_flat**: If daily P&L is -2% to +2% AND no major position changes → skip

**Silence cadence**:
- Max 1 silence message per day per user
- Only for *expected* triggers (morning, portfolio check, etc.)
- Never silence micro-initiations (those *are* the value)
- When silent, send explicit message: `"Skipped the brief — nothing worth your attention."`

**Customization point**: Adjust thresholds in `selective_silence.py`:
```python
SILENCE_THRESHOLDS = {
    'vol_floor': 0.5,           # % vol threshold for morning silence
    'divergence_age_limit': 3,  # hours
    'signal_confidence_floor': 0.65,
    'edge_floor': 1.0,          # %
    'portfolio_flat_range': 2.0 # % P&L range
}
```

---

## System 3: Variable Timing — Urgency Scoring + Time-of-Day Awareness

**What**: Schedule message delivery based on urgency (0.0-1.0) and time of day. A mild divergence at 6 AM gets sent immediately (threshold 0.9 before 7 AM). Same divergence at 10 PM gets held (threshold 0.35).

**Per-trigger urgency base**:
- **cross_platform**: (spread / 10%) * 0.6, capped at 1.0
  - 5% spread = 0.3 urgency
  - 10% spread = 0.6 urgency
  - 15%+ spread = 1.0 urgency
- **portfolio**: (abs(daily_pnl) / 10%) * 0.7, capped at 1.0
  - ±5% P&L = 0.35 urgency
  - ±15% P&L = 1.0 urgency
- **x_signals**: (confidence * 0.8) + (position_match ? 0.2 : 0), capped at 1.0
  - Confidence 0.85 + matched = 0.88 urgency
  - Confidence 0.70 + no match = 0.56 urgency
- **edge**: (edge_size / 5%) * 0.8, capped at 1.0
  - 2% edge = 0.32 urgency
  - 5% edge = 0.8 urgency
- **meeting**: (1.0 - minutes_away / 120) capped at 1.0
  - 30 min away = 0.75 urgency
  - 5 min away = 0.96 urgency

**Time-of-day delivery thresholds**:
- **Before 7 AM**: threshold 0.90 (almost everything gets sent)
- **7 AM - 9 AM**: threshold 0.75 (morning crunch — moderate bar)
- **9 AM - 10 PM**: threshold 0.45
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (3)

MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
skills/compdf-conversion-cli/scripts/license.xml:9
<key>k5Ey9KFlkqpj+SDkUw+5ED9lTA3En/qUi0zdrydUCH3kMWTE3Eh65NXnFCaxlY2omY2JHnlEoK7Li7oOEvM7eG5VPdcO/sFlMfoCRdnLYdepJ+uLzYwOWR8W4yQVve/clxVFTVRL4DFleKInGdpAxIbHZT2yi4ADAMENls1N1XSLojRuqXePXDeAT/4Mv4TTx0s
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
scripts/engine.py:259
msg_hash = hashlib.md5(message.encode()).hexdigest()
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
scripts/engine.py:280
msg_hash = hashlib.md5(message.encode()).hexdigest()

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 4f3b4a2a472efull audit observations/trust-audit/skill/leoyeai__personality-engine.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-084f3b4a2a472eSAFEB89first audit
06

Questions

What does the Personality Engine skill do?

🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai

Is Personality Engine safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can Personality Engine access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

Which assistants does Personality Engine work with?

Its documentation mentions openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (4f3b4a2a472e), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement