Architecture & Migration Tiers
Three-Tier Migration Strategy
| Tier | Scope | Timeline | Repos |
|---|---|---|---|
1: Bootstrap |
Functional desktop + editor + secrets |
First 30 minutes |
3 repos + secrets |
2: Development |
Documentation site + active projects + full stow |
First day |
~15 repos |
3: Full |
Everything else, as needed |
First week+ |
Remaining ~47 repos |
Tier 1: Bootstrap (Critical Path)
System packages (pacman/yay)
# Core WM
pacman -S hyprland waybar wofi mako hyprlock hypridle hyprpaper
# Terminals
pacman -S kitty
# Editor
pacman -S neovim
# Shell & tools
pacman -S zsh git stow age gopass fzf fd ripgrep bat eza jq yq
# Build tools
pacman -S base-devel nodejs npm python python-pip rustup
# Fonts
pacman -S ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols
# AUR (via yay)
yay -S ghostty oh-my-posh-bin
Stow packages (essential only)
| Package | Why Essential |
|---|---|
|
Primary shell |
|
Fallback + scripts expect it |
|
Shared aliases, functions, vault wrappers |
|
Git config + global gitignore |
|
Window manager (core desktop) |
|
Status bar |
|
App launcher |
|
Notifications |
|
Primary terminal |
|
Shell prompt |
|
37 custom scripts |
|
awk/bash/sed/grep libraries |
|
System monitor |
|
System info |
|
Fuzzy finder |
|
Find alternative |
|
Grep alternative |
|
Claude Code settings + hooks |
cd ~/atelier/_projects/personal/dots-quantum
stow -t ~ zsh bash shell git hyprland waybar wofi mako \
kitty oh-my-posh bin share btop fastfetch fzf fd ripgrep claude
Repositories
| Repo | Purpose |
|---|---|
|
Dotfiles (stow source) |
|
Neovim configuration |
secrets (manual) |
SSH keys, GPG, gopass store |
SSH config encryption (age)
SSH config is stowed from dots-quantum/ssh/.ssh/config but contains infrastructure topology (IPs, hostnames, ports). It’s encrypted with age before committing so only ciphertext reaches the remote.
On current machine (encrypt before commit):
age -e -R ~/.age/recipients/self.txt -o ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config.age ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config
git add ssh/.ssh/config.age .gitignore
gach << 'EOF'
feat(ssh): Add age-encrypted SSH config
- Encrypt ssh config with age for safe remote storage
- Update .gitignore: track .age file, ignore plaintext only
- Plaintext stays local via stow, ciphertext goes to remote
EOF
On new machine (decrypt after clone):
age -d -i ~/.age/identities ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config.age > ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config
stow -t ~ ssh
What’s tracked vs ignored:
| File | Git Status | Reason |
|---|---|---|
|
Gitignored |
Plaintext with IPs, hostnames, ports |
|
Tracked |
age-encrypted ciphertext, safe for remote |
The .gitignore uses !ssh/.ssh/config.age to override the global *.age ignore rule.
|
Tier 2: Development Environment
Documentation repos (Antora site)
| Repo | Purpose |
|---|---|
|
Hub aggregator + playbook |
|
Worklogs, codex, education |
|
Infrastructure runbooks |
|
802.1X methodology |
|
Secrets management docs |
|
Linux administration |
|
Custom UI bundle |
Active project repos
| Repo | Purpose |
|---|---|
|
Network automation CLI |
|
NetAPI terminal UI |
|
Domus CLI tooling |
|
ISE Python automation |
|
Main site |
|
Personal site |
Additional stow packages
| Package | Purpose |
|---|---|
|
Terminal multiplexer + 38 session templates |
|
Vim multi-profile (server fallback) |
|
Git TUI |
|
Backup editor |
|
PDF viewer |
|
File manager |
|
VM management |
|
Alternative terminal |
Tier 3: Full Environment (As Needed)
Remaining documentation repos
domus-ise-ops, domus-ise-windows, domus-python, domus-windows-ops, domus-identity-ops, domus-automation-ops, domus-siem-ops, domus-o11y-ops, domus-netapi-docs, domus-math, domus-musica, domus-gabriel-docs
Reference and learning repos
Principia, Principia-Labor, Sapientia, Doctrina, Aethelred-Codex, mdn-content, mdn-asciidoc, enterprise-linux-8021x, Thomas Howard ISE repos (5), PRJ-ANTORA-PRINCIPALIS
Candidates for skip/archive
| Repo | Reason |
|---|---|
|
Superseded by domus-digitalis |
|
Superseded by domus-docs |
|
Superseded by domus-nvim |
|
Superseded by domus-nvim |
|
Superseded by domus-nvim |
|
Superseded by domus-nvim |
|
Merged into dots-quantum/claude |
|
Merged into dots-quantum/tmux |
|
Learning complete, codex has patterns |