Skip to content

Context Manager Infrastructure Build — 2026-03-27

Overview

Extended the context-manager skill with a complete infrastructure stack: nightly Dreamhost backups, a synthesized knowledge base, and a password-protected static website at context.rootphi.net. This session spanned the full lifecycle from architecture planning through live deployment.

What Was Built

1. Dreamhost Backup System (Fully Operational)

  • SSH key (~/.ssh/claude_backup_key) — ed25519, passwordless access to Dreamhost
  • Backup script (~/Documents/claude-context-backup.sh) — rsync over SSH, syncs only changed files
  • Scheduled task (~/Library/LaunchAgents/com.rootphi.claude-context-backup.plist) — runs nightly at 10 PM via launchd
  • Dreamhost user: claude_backup on iad1-shared-e1-11.dreamhost.com
  • Remote backup path: /home/claude_backup/claude-context-backup/
  • Verified working: Files confirmed on Dreamhost via SSH

2. Knowledge Base Synthesis (Content Created, Synthesis Logic in SKILL.md)

  • knowledge-base/SYNTHESIS.md — High-level overview of Brian's AI toolkit
  • knowledge-base/decisions-log.md — 5 decisions logged
  • knowledge-base/action-items.md — 7 open items, 10 completed (updated throughout the day)
  • knowledge-base/connections.md — Cross-project references
  • knowledge-base/topics/ai-toolkit.md — First synthesized topic file
  • Synthesis modes defined in SKILL.md: incremental (end-of-session), deep (weekly scheduled), on-demand

3. Static Website at context.rootphi.net (Deployed)

  • Subdomain created in Dreamhost panel → context.rootphi.net, assigned to claude_backup user
  • MkDocs + Material theme installed on Brian's Mac (pip3 install mkdocs mkdocs-material)
  • Config file: ~/Documents/claude-context-mkdocs.yml (lives one level up from docs_dir due to MkDocs constraint)
  • Built site output: ~/Documents/claude-context-site/ (generated, not manually edited)
  • Deploy script: ~/Documents/claude-context-deploy.sh — builds MkDocs, rsyncs to Dreamhost, pushes .htaccess/.htpasswd
  • Password protection: .htaccess + .htpasswd in claude-context folder (username: brian)
  • Password reset script: ~/Documents/claude-context-reset-password.sh — interactive prompt, generates new hash, pushes to Dreamhost
  • Status: Fully deployed and verified. Password prompt works, site loads after login. SSL certificate pending (Let's Encrypt auto-provision).

4. Disaster Recovery Documentation

  • SETUP-GUIDE.md updated with all new infrastructure: website deployment section, password reset instructions, corrected file paths
  • Comprehensive enough to rebuild everything from scratch on a new Mac

5. SKILL.md Updates

  • Added Knowledge Base Synthesis section (lines 281-384): three synthesis modes, topic file guidance, MkDocs site generation instructions
  • NOT yet packaged as .skill file — Brian explicitly asked to wait ("If I have a couple more ideas for this skill, can we wait to install the latest?")

Key Decisions

  • Local-first architecture: Mac is source of truth, Dreamhost is backup + web host
  • MkDocs with Material theme: Chosen for static site generation (dark slate scheme, green palette, built-in search)
  • Password protection via .htaccess: Simple, no database needed, reset script provided
  • claude_backup user for both backup and website: Single SSH key handles both rsync targets
  • Config file lives outside docs_dir: claude-context-mkdocs.yml is in ~/Documents/ (one level up) because MkDocs doesn't allow config file inside docs_dir
  • python3 -m mkdocs instead of bare mkdocs: Standalone Python installer doesn't add pip scripts to PATH

Action Items

  • [x] Wait for DNS propagation — Resolved; site is live
  • [x] Verify site loads — Confirmed working with password prompt and knowledge base content
  • [ ] SSL certificate — Dreamhost auto-provisions Let's Encrypt; may take up to a few hours (check status)
  • [ ] Rotate exposed API keys — OpenAI and Google keys were visible in a terminal screenshot earlier (flagged but not yet rotated)
  • [ ] Package final context-manager.skill — Brian wants to add more ideas before installing the latest version
  • [ ] Set up weekly deep synthesis scheduled task — discussed but not yet created
  • [x] Test context-manager skill in a new Cowork chat — Confirmed: skill appears in sidebar and triggers correctly

Errors Encountered & Solutions

Problem Solution
xcode-select --install wouldn't complete Installed Python from python.org standalone installer, bypassing Xcode CLT entirely
Homebrew install failed (needed CLT) Same — standalone Python installer was the workaround
SSH connection timeout on first attempt Dreamhost SSH access was still activating; second attempt succeeded
mkdocs: command not found pip3 installs to a path not on $PATH; fixed by using python3 -m mkdocs in deploy script
MkDocs: "docs_dir should not be parent of config" Moved mkdocs.yml up one level to ~/Documents/claude-context-mkdocs.yml, set docs_dir: claude-context
Chrome MCP couldn't access Brian's logged-in Dreamhost session Used switch_browser to connect to rootphi Chrome profile

Files on Brian's Mac (Complete Inventory)

In ~/Documents/claude-context/ (the context system)

  • GLOBAL.md — Profile, preferences, projects, people
  • _index.md — Master chat catalog
  • SETUP-GUIDE.md — Disaster recovery doc (updated this session)
  • index.md — MkDocs homepage
  • .htaccess — Apache password protection config
  • .htpasswd — Hashed password file
  • .backup-log.txt — Nightly backup log
  • .deploy-log.txt — Website deploy log
  • mkdocs.yml — OLD config (superseded by ~/Documents/claude-context-mkdocs.yml)
  • knowledge-base/ — Synthesized knowledge files
  • chats/ — Per-conversation bundles

In ~/Documents/ (scripts and config)

  • claude-context-backup.sh — Nightly backup script
  • claude-context-deploy.sh — Website build & deploy script
  • claude-context-reset-password.sh — Password reset utility
  • claude-context-mkdocs.yml — MkDocs config (must live here, not inside claude-context/)
  • com.rootphi.claude-context-backup.plist — Source copy of launchd schedule

In ~/Library/LaunchAgents/

  • com.rootphi.claude-context-backup.plist — Active launchd schedule (runs nightly 10 PM)

In ~/.ssh/

  • claude_backup_key — Private SSH key for Dreamhost
  • claude_backup_key.pub — Public SSH key (installed on Dreamhost)

Dreamhost Configuration

Resource Details
Host iad1-shared-e1-11.dreamhost.com
User claude_backup
Backup path /home/claude_backup/claude-context-backup/
Website path /home/claude_backup/context.rootphi.net/
SSH port 22
Auth ed25519 key (~/.ssh/claude_backup_key)
Subdomain context.rootphi.net (Shared Unlimited, Custom Setup)

Tags: context-manager, infrastructure, dreamhost, mkdocs, backup, knowledge-base, website, deployment