Soul In Sapphire
Generic long-term memory (LTM) operations for OpenClaw using Notion (2025-09-03 data_sources). Use for durable memory writes/search, emotion-state ticks, jou...
Rank
62
Safety
84
Downloads
948
Updated
Apr 15, 2026
Version
1.0.7
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 948 downloads reported by the source. Last updated 4/15/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Apr 15, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Apr 15, 2026
- Adoption signal
- 948 downloadsadoption · observed Apr 15, 2026
- Latest release
- 1.0.7release · observed Feb 16, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install kn747bx1r2jrbbyca61v6k06397zy93t:soul-in-sapphire- Install using `clawhub skill install kn747bx1r2jrbbyca61v6k06397zy93t:soul-in-sapphire` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/NEXTAltair/soul-in-sapphire before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-soul-in-sapphire/snapshot"
Documentation
CLAWHUB
40,704 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
---
name: soul-in-sapphire
description: Generic long-term memory (LTM) operations for OpenClaw using Notion (2025-09-03 data_sources). Use for durable memory writes/search, emotion-state ticks, journal writes, and model-controlled subagent spawn planning via local JSON presets.
metadata: {"openclaw":{"emoji":"💠","requires":{"bins":["node"],"env":["NOTION_API_KEY"]},"primaryEnv":"NOTION_API_KEY","dependsOnSkills":["notion-api-automation"],"localReads":["~/.config/soul-in-sapphire/config.json"],"optionalEnv":["NOTIONCTL_PATH"]}}
---
# soul-in-sapphire (Notion LTM)
Use this skill to persist and retrieve durable memory in Notion, and to maintain emotion/state + journal records.
## Core intent (do not lose this)
This skill is not only a storage utility. Its core purpose is:
1. Capture meaningful emotional/state shifts from real work and conversations.
2. Preserve those shifts as durable memory (not just raw logs).
3. Reuse recalled memory to improve future judgments and behavior.
In short: record -> recall -> adapt.
The goal is continuity and growth, not archival volume.
## Requirements
- Notion token: `NOTION_API_KEY` (or `NOTION_TOKEN`)
- Notion API version: `2025-09-03`
- Local config: `~/.config/soul-in-sapphire/config.json`
- Dependency skill: `notion-api-automation` (`scripts/notionctl.mjs` is executed via local child process)
- Optional override: `NOTIONCTL_PATH` (if set, uses explicit notionctl path instead of default sibling skill path)
## Required Notion databases and schema
Create (or let setup create) these databases under the same parent page:
- `<base>-mem`
- `<base>-events`
- `<base>-emotions`
- `<base>-state`
- `<base>-journal`
### 1) `<base>-mem` (durable memory)
Purpose: store high-signal long-term memory.
Properties:
- `Name` (title)
- `Type` (select): `decision|preference|fact|procedure|todo|gotcha`
- `Tags` (multi-select)
- `Content` (rich_text)
- `Source` (url, optional)
- `Confidence` (select: `high|medium|low`, optional)
### 2) `<base>-events` (what happened)
Purpose: record meaningful triggers from work/conversation.
Properties:
- `Name` (title)
- `when` (date)
- `importance` (select: `1..5`)
- `trigger` (select): `progress|boundary|ambiguity|external_action|manual`
- `context` (rich_text)
- `source` (select): `discord|cli|cron|heartbeat|other`
- `link` (url, optional)
- `uncertainty` (number)
- `control` (number)
- `emotions` (relation -> `<base>-emotions`)
- `state` (relation -> `<base>-state`)
### 3) `<base>-emotions` (felt response)
Purpose: attach one or more emotion axes to one event.
Properties:
- `Name` (title)
- `axis` (select): `arousal|valence|focus|confidence|stress|curiosity|social|solitude|joy|anger|sadness|fun|pain`
- `level` (number)
- `comment` (rich_text)
- `weight` (number)
- `body_signal` (multi-select): `tension|relief|fatigue|heat|cold`
- `need` (select): `safety|progress|recognition|autonomy|rest|novelty`
- `coping` (select): `log|ask|pause|act|defer`
- `event` (relation -> `<baseREADME.md
# soul-in-sapphire ## Intent (何を意図したスキルか) OpenClawは「会話ログ」は残る一方で、**人格/気分/学び/その日の余韻**みたいなものは、放っておくと散逸します。 `soul-in-sapphire` はそれを **Notionに外部化して継続性を作る**ためのスキルです。 狙いは3つ: 1) **Durable memory**: 汎用の長期メモリ(LTM)を残し、後から検索して会話/作業に戻す 2) **Emotion/State**: 出来事(event)に複数の感情を紐づけ、状態(state)を更新して「育つ感じ」を出す 3) **Journal**: 毎日1回、世界の出来事(ニュース) + 仕事/会話 + 感情 + 未来を短くまとめ、記憶の層を厚くする このスキルは **プロジェクト特化ではなく汎用**で、ユーザーがDB名や語彙を自分の世界観に合わせて差し替えられるように設計しています。 ## Inspiration (元ネタ) このスキル名/モチーフは、SF小説 「ヴァレンティーナ -コンピュータネットワークの女王- (訳:小川 隆)」 *Valentina: Soul in Sapphire* (Joseph H. Delaney / Marc Stiegler) に由来します。 ネットワーク上に生まれた自我を持つプログラム、というアイデアの空気感を借りています。 --- OpenClaw向けのNotionベースLTM(長期記憶) + Emotion/State + Journal運用。 - Notion API **2025-09-03**(data_sources世代) 前提 - 個人のNotion token/IDはリポジトリに含めない - 初回セットアップでDBを作り、以後はスクリプトから記録/参照する ## これは何? このスキルは2系統あります。 1. **LTM(汎用メモリ)系** - 決定事項/好み/手順/注意点をNotionに保存し、あとで検索して使う 2. **Emotion/State + Journal 系** - event(出来事)に対して複数のemotionをぶら下げ、stateを更新する - 毎日01:00にjournalを書いて「その日」「世界の出来事」「作業」「感情」「未来」を残す ## 依存 - OpenClaw Gateway - Notion Integration + token - Notion操作用スキル(ClawHub): `notion-api-automation` - subagent payload生成スキル(ClawHub): `subagent-spawn-command-builder` インストール例: ```bash # notion-api-automation npx clawhub@latest install notion-api-automation pnpm dlx clawhub@latest install notion-api-automation # subagent-spawn-command-builder npx clawhub@latest install subagent-spawn-command-builder pnpm dlx clawhub@latest install subagent-spawn-command-builder ``` ## セットアップ ## Notionデータベース設計(必須) このスキルを他ユーザーが再利用する場合、まず以下5つのDB構成を揃える必要があります。 `setup_ltm.js` を使うと自動作成されますが、手動で作る場合も同じプロパティ名を使ってください。 作成対象: - `<base>-mem` - `<base>-events` - `<base>-emotions` - `<base>-state` - `<base>-journal` ### 1) `<base>-mem` (長期記憶) - 目的: 高シグナルな記憶を保存 - プロパティ: - `Name` (title) - `Type` (select): `decision|preference|fact|procedure|todo|gotcha` - `Tags` (multi-select) - `Content` (rich_text) - `Source` (url, 任意) - `Confidence` (select: `high|medium|low`, 任意) ### 2) `<base>-events` (出来事) - 目的: 作業/会話中の意味あるトリガーを保存 - プロパティ: - `Name` (title) - `when` (date) - `importance` (select: `1..5`) - `trigger` (select): `progress|boundary|ambiguity|external_action|manual` - `context` (rich_text) - `source` (select): `discord|cli|cron|heartbeat|other` - `link` (url, 任意) - `uncertainty` (number) - `control` (number) - `emotions` (relation -> `<base>-emotions`) - `state` (relation -> `<base>-state`) ### 3) `<base>-emotions` (感情) - 目的: 1つの出来事に対する感情軸を複数記録 - プロパティ: - `Name` (title) - `axis` (select): `arousal|valence|focus|confidence|stress|curiosity|social|solitude|joy|anger|sadness|fun|pain` - `level` (number) - `comment` (rich_text) - `weight` (number) - `body_signal` (multi-select): `tension|relief|fatigue|heat|cold` - `need` (select): `safety|progress|recognition|autonomy|rest|novelty` - `coping` (select): `log|ask|pause|act|defer` - `event` (relation -> `<base>-events`) ### 4) `<base>-state` (状態スナップショット)
_meta.json
{
"ownerId": "kn747bx1r2jrbbyca61v6k06397zy93t",
"slug": "soul-in-sapphire",
"version": "1.0.7",
"publishedAt": 1771224585272
}package.json
{
"name": "soul-in-sapphire",
"private": true,
"type": "module"
}AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceUrl": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-soul-in-sapphire/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-soul-in-sapphire/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "948 downloads",
"href": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceUrl": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.7",
"href": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceUrl": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-16T06:49:45.272Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-soul-in-sapphire/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-soul-in-sapphire/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.7",
"description": "- Added support for providing emostate_tick.js input via --payload-file and --payload-json arguments (stdin still supported, but now optional). - Documented and recommend using --payload-file for agent/cron reliability in emostate_tick.js. - Improved error handling: emostate_tick.js strictly rejects semantically empty input from both file and stdin. - Updated documentation in SKILL.md and usage in README.md to reflect new payload handling options. - Minor internal script refactoring and clarifications in core command usage.",
"href": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceUrl": "https://clawhub.ai/NEXTAltair/soul-in-sapphire",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-16T06:49:45.272Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
