The machine behind the work
One system, two Macs, always on.
A personal AI operating system around Claude Code — a memory vault, a fleet of agents, scheduled jobs, and 31 always-live services. The self-regenerating version lives at system.dashable.dev.
snapshot · 2026-06-11 13:56 · live version at system.dashable.dev
SessionEnd → /upskill constrained fork auto-drafts new skills to _proposed/ · auto-capture snapshots the turn every 15 min · skills-repo auto commit+push on Stop
Full detail — the layered system
Machines & Sync
two-Mac mesh over Tailscale
MacBook
stephaneboghossian · primary dev
- ~/Documents/Code + Claude Code
- scheduled jobs + ALEPH/Atlas/bridge
- Cockpit (VSCode ext)
this machine
Mac mini
stephanemacmini · always-on host
- brain_server.py (brain-viz 3D)
- ~31 *.dashable.dev services
- full launchd agent set
cloudflared tunnels
iCloud Drive
vault lives here
- stephane_claude/ (Obsidian)
- .git → .git.nosync symlink
- iCloud evicts plain .git
never blind-delete conflicts
GitHub
sboghossian/stephane-brain
- private vault mirror
- vault-sync pull-rebase hourly
- brain-sync push 07:00
stale index.lock = exit 1
Claude Code engine
Opus 4.8 · 1M · hooks · routing · token savers · guardrails
Claude Code
Opus 4.8 · 1M context
- interactive agent loop
- Agent / subagent fleet
- Workflow orchestration
- model routing → Haiku/Sonnet
- fast mode (Opus, faster out)
/pick-model · /careful · /freeze
Hooks · 18 scripts
settings.json lifecycle
- SessionStart (4)
- UserPromptSubmit (7)
- PreToolUse (1)
- PostToolUse (1)
- Stop (4)
upskill SessionEnd auto-draft
Skill Router
TF-IDF · 3 .mjs stages
- fires on UserPromptSubmit
- ranks top-5 of 110 skills
- + memory-recall (x2 hooks)
- yalla dispatch every prompt
- → Skill tool invocation
auto-reindex on SKILL.md mtime
RTK + CodeGraph
token savers (stack)
- rtk proxy — 60–90% savings
- hook rewrites every cmd
- rtk gain · discover · proxy
- codegraph SQLite (WAL)
- sub-ms code intelligence
global MCP: codegraph, pencil
Guardrails
control & safety
- plan-gate (UserPromptSubmit)
- verify-gate (Stop)
- /lecun-world-model (action)
- /capabilities (claim audit)
- ai-defence (input scan)
no autonomous multi-step act
Memory architecture
the persistent brain · canonical at ~/Documents/Code/stephane_claude/
Obsidian Vault — stephane_claude
canonical memory · iCloud-hosted · ~37k nodes
- 00-Inbox · 10-Sessions (transcripts)
- 20-Projects (473) · 30-Knowledge
- 40-Resources · 50-Wiki · 50-Archives
- 60-Meta (dashboards · claude-config · brain-viz)
- auto-capture 15 min · graph_rewire footers · Smart Connections
- CLAUDE.md + RTK.md global instructions live here
- check 20-Projects/<slug>/ + 10-Sessions/ before answering
- use /opt/homebrew/bin/python3 · graph_rewire = only footer generator
MEMORY.md
auto-memory index
- one-line pointer per fact
- loaded every session
keep entries short (~31KB)
189 memory files
.claude/.../memory/*.md
- one fact per file + frontmatter
- type: user · feedback
- type: project · reference
written proactively each turn
CodeGraph DB
SQLite (WAL · node:sqlite)
- symbols · edges · files
- file-watcher, ~1s lag
gitignore .codegraph/
memory-vector
sqlite-vec · local-first
- semantic recall over memory + vault chunks
- feeds router recall block
HNSW pipeline (no cloud)
Scheduled jobs
launchd cron agents · 11
auto-capture
every 15 min
session transcript → vault
brain-sync
daily · 07:00
vault → GitHub mirror
daily-recap
daily · 08:10
24h HTML board → 60-Meta
inbox-promoter
daily · 03:00
00-Inbox triage + promote
knowledge-learner
daily · 06:00
distill → 30-Knowledge
prune-sessions
weekly · Sun 09:00
archive + prune transcripts
system-map-refresh
daily · 03:30
re-introspect this map
vault-sync
hourly
pull-rebase first, then push
aleph-inbox
daily · 05:30
overnight inbox operator
yalla-brief
daily · 08:00
181-source morning brief
networth
daily
net-worth snapshot
Always-live fleet
launchd KeepAlive · 31 · watchdog re-checks every 60s
● local agent (com.stephane) · ● cloudflared tunnel · ● monitor · ● dev.dashable.* server (→ *.dashable.dev)
must-stay-reachable: nomos(+api) · stark · napoleon · unspeakable(+world)
flag before any infra change that risks the fleet
kill by PORT: lsof -ti tcp:PORT | xargs kill — never pkill -f server.js
routed via ~/.dashable/services.yml → dashable-ctl reconcile → cloudflared
Skills · MCP · agent fleet
what the engine reaches for
110 Skills · ~/.claude/skills/
- gstack: /ship · /review · /qa · /browse · /land-and-deploy · /retro
- build: /yalla · /chain (1) · /signal · /forkcast · /skill-creator
- growth: /linkedin-post · /plg-ritual · /leadgen-haqq · /growth-experiment
- legal: /law-as-code-audit · /oral-argument · /divorce-ct · /irac-prompt
- craft: /grill-me · /humanizer · /taste · /release-the-monster
- meta: /capabilities · /pick-model · /daily-recap · /upskill · /stephane-protocol
- SKILL.md + curl|bash installer = agent distribution channel
- Lawvable / Vibecode public registries · AGPL-3.0 default
MCP Servers · global + claude.ai
- local: codegraph, pencil
- work: Linear · HubSpot · PostHog (92178) · Microsoft 365
- comms/docs: Gmail · Google Calendar · Google Drive · Notion
- build: Lovable · Figma · Cloudflare Developer Platform
- money/media: Stripe · Higgsfield · Intuit Mailchimp
- .claude subsystems: agents, commands, plugins, rules, rules-gated, teams, scheduled-tasks, chains
- browse via gstack /browse — never claude-in-chrome MCP
- interactive-auth MCP may be absent in headless/cron runs
Agent Fleet · surfaces
- local agent apps + meshes
- ALEPH — voice-first JARVIS (orb UI) :4779
- Atlas — one infinite canvas of real data :4777
- boo / boo-mesh — 2-Mac MCP-over-Tailscale
- claude-cockpit — VSCode extension (CC state)
- inbox-operator — overnight email triage
- approval-gated actions · human-in-the-loop
- ElevenLabs voice (Lebanese clone planned)
stephane_claude system map · a frozen snapshot of the live generator at system.dashable.dev · Head of Growth @ HAQQ Legal AI