From starlight-intelligence-system
Orchestrates SIS memory across pluggable substrates (mempalace, Qdrant, Letta, Mem0, etc.) with 7 agents, privacy redaction, and benchmark-driven substrate selection.
How this skill is triggered — by the user, by Claude, or both
Slash command
/starlight-intelligence-system:sis-memory-orchestratorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **v0.1 scope cut (2026-04-30) — round-trip-first.**
v0.1 scope cut (2026-04-30) — round-trip-first.
This skill describes the full architecture. What ships in v0.1 is a deliberately small subset: 3 agents (Router, Guardian, Bencher), 2 substrates (mempalace in-tree adapter + Qdrant scaffold-disabled), replay-only benchmarks, dog-fooded through People Intelligence
/perf-feedback-rehearsal. Implementation lives inprivate/voice-operator/service/memory/. CLI surface:python -m service.memory.cli {commit,recall,status}.The remaining agents/substrates/cron/encryption/CRDT below are parked with falsifiable un-park triggers in
memory/benchmarks/DECISIONS.md. A parked item ships only when its trigger is observed on the live system — not from a roadmap.The v0.1 success gate: a
/perf-feedback-rehearsalwrite reaches mempalace, a follow-uprecall()returns it, Guardian blocks a PII probe, audit log records the full sequence — all green on Frank's machine before this commit (d9cc95b) is pushed.Plan:
docs/superpowers/plans/2026-04-30-sis-memory-orchestrator-v0.1.md.
Synthesizes the best memory patterns from across the field into one substrate-agnostic orchestration layer for SIS:
CLAUDE.md as canonical entry, auto-memory atoms with WHY/HOW/sovereign-spawn) — auto-runs the substrate selector for themEvery memory operation flows through five gates. Pick which agents to dispatch by operation type — the routing table is below.
┌─────────────────────────┐
user / agent ──────────▶│ 1. Privacy Guardian │ ← redact PII, enforce policy
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ 2. Substrate Selector │ ← pick mempalace / Letta / vault MD / KG JSONL
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ 3. Indexer / Retriever │ ← write or query
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ 4. Graph Maintainer │ ← cross-ref, deduplicate
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ 5. Auditor │ ← attestation chain, leak audit
└─────────────────────────┘
| Tier | Agents | When |
|---|---|---|
| Minimal (3) | Indexer · Retriever · Privacy Guardian | Single-user, single-substrate, trust-this-machine |
| Production (7) | + Graph Maintainer · Substrate Benchmarker · Decay Manager · Auditor | Default for adopting SIS; weekly benchmarks; multi-substrate |
| Advanced (10) | + Council Convener · Cross-Project Sync · Health Monitor | Multi-tenant / cross-machine / SaaS deployment |
Agent contracts: see references/subagent-roster.md.
Default for new adopters: filesystem markdown + JSONL knowledge-graph + local Qdrant — covers 80% of use cases, requires zero external services, fully sovereign.
When to add or swap:
| Symptom | Add this substrate |
|---|---|
| "Find captures by meaning, not keyword" | mempalace OR Qdrant + sentence-transformers (local) |
| "Memory grows beyond 10k entries, retrieval slow" | mempalace OR Letta with hot/warm/cold decay |
| "Need self-editing memory across long agent sessions" | Letta (MemGPT) |
| "Need agent-as-a-service style memory layer" | Mem0 |
| "Continuous screen capture for ambient context" | screenpipe |
| "Sub-50ms recall in voice path" | AgentDB (singleton daemon, see constraint below) |
| "Multi-tab agent with shared memory" | Memory Bus daemon — see constraint below |
Hard constraint (memory): AgentDB and most embedded vector DBs spawn one process per connecting tab. At ~10 tabs the system breaks (per project_agentdb_singleton_constraint.md). All multi-process memory architectures MUST front through a singleton daemon (MCP server, Windows Service, or FastAPI). The voice-operator FastAPI :7373 already serves this role for the cognition loop.
Full matrix with install paths, latency profiles, license terms, leak posture: see references/substrate-matrix.md.
This is what makes the system safe for anyone adopting SIS, not just Frank.
all-MiniLM-L6-v2 for speed, bge-large-en-v1.5 for quality) — never OpenAI/Cohere embedding APIs that ship vault content over the wire.memory/_audit/{date}.jsonl records who/what/when/source — Auditor scans this for anomaly patterns.Full threat model + redaction patterns: see references/privacy-hardening.md.
Quarterly (or on substrate add): run the bench suite against the user's actual corpus.
Metrics:
Run via scripts/benchmark_substrates.py. Results write to memory/benchmarks/{date}.json and a one-page summary in memory/benchmarks/RECOMMENDATIONS.md (auto-updated by the Substrate Benchmarker subagent).
Full protocol: see references/benchmarking-protocol.md.
When a user asks "set up mempalace":
git clone https://github.com/mempalace/mempalace ~/.starlight/mempalacecd ~/.starlight/mempalace && pip install -e . (or follow upstream README)private/voice-operator/config/substrates.toml:
[substrates.mempalace]
enabled = true
path = "~/.starlight/mempalace"
embedding_model = "all-MiniLM-L6-v2" # local, no external API
tier = "warm"
python -m service.memory.migrate --from kg-jsonl --to mempalacepython skills/memory/sis-memory-orchestrator/scripts/benchmark_substrates.py --substrate mempalaceIf upstream mempalace API differs from the contract above, update references/substrate-matrix.md::mempalace section with the actual contract.
When dispatched:
/council, /navigate, etc.) handle their own memory writes via existing skill auto-activation — don't double-dispatchreferences/substrate-matrix.md — every supported substrate: install, contract, latency, license, leak posturereferences/subagent-roster.md — 7 (or 3 / 10) agent contracts: signatures, when to dispatch, what they returnreferences/privacy-hardening.md — full threat model, redaction patterns, anti-leak architecturereferences/benchmarking-protocol.md — metrics, harness, hypothesis test designThis skill does not replace existing memory plumbing. It coordinates it.
memory/vaults/*.md — kept; this skill treats them as the cold-tier filesystem substratememory/knowledge-graph/index.jsonl — kept; warm-tier append-only logmemory/voice-sessions/{date}.md — kept; hot-tier daily capture logAdding mempalace / Letta / Qdrant means augmenting, not replacing. The orchestrator routes to the right tier per op.
npx claudepluginhub frankxai/starlight-intelligence-systemProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.