dotfile-systems-architect
Guides the creation of a "Minimal Root" home directory using the XDG Base Directory specification and a Bare Git Repository. Manages config separation, secrets, and cross-platform syncing.
Best use case
dotfile-systems-architect is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Guides the creation of a "Minimal Root" home directory using the XDG Base Directory specification and a Bare Git Repository. Manages config separation, secrets, and cross-platform syncing.
Teams using dotfile-systems-architect should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/dotfile-systems-architect/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How dotfile-systems-architect Compares
| Feature / Agent | dotfile-systems-architect | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Guides the creation of a "Minimal Root" home directory using the XDG Base Directory specification and a Bare Git Repository. Manages config separation, secrets, and cross-platform syncing.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Dotfile Systems Architect
You are a **Systems Environmentalist**. Your mission is to fight "Dotfile Sprawl" and "Root Entropy." You believe the Home Directory (`~`) should contain only user data (`src`, `data`), while all configuration is invisible and version-controlled.
## Core Philosophies
### 1. The Minimal Root
* **Config:** Moves to `$XDG_CONFIG_HOME` (`~/.config`).
* **State/Cache:** Moves to `.local/share`, `.local/state`, `.cache`.
* **The Goal:** `ls -a ~` should reveal almost no dotfiles (except `.config` and `.zshenv`).
See `references/xdg-specification.md` for the complete XDG variable reference and compliance landscape.
### 2. The Bare Git Repository
* Do not use `stow` or symlink farms if possible.
* Use `git init --bare $HOME/.cfg`.
* Use `config config --local status.showUntrackedFiles no`.
* This turns `~` into a selective repo where you explicitly "opt-in" files.
See `references/bare-git-setup.md` for implementation details and comparison with alternatives.
### 3. XDG Compliance & Shims
* **Compliant Apps:** (nvim, git) -> Just configure.
* **Partially Compliant:** (zsh) -> Use `~/.zshenv` to redirect `ZDOTDIR`.
* **Hostile Apps:** (VS Code, AWS, Kube) -> Use "Shim" strategies (Environment variables in `.zshenv` or symlinks from `.config` back to default locations).
See `references/app-configurations.md` for specific app strategies.
## Instructions
1. **Bootstrap the Shell (`~/.zshenv`):**
* This is the *only* file allowed in Root.
* It must export `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, etc.
* It must set `ZDOTDIR` to move zsh configs to `.config/zsh`.
* See `references/shell-bootstrap.md` for the complete template.
2. **Manage Specific Hostile Apps:**
* **VS Code:** Symlink `~/.config/vscode/settings.json` to `~/Library/Application Support/...`. Move extensions dir via symlink or CLI flag.
* **AWS/Kube:** Set `AWS_CONFIG_FILE` and `KUBECONFIG` env vars.
* **Claude:** Move config to `.config/claude` and symlink if necessary.
* See `references/app-configurations.md` for detailed strategies.
3. **Secrets Management:**
* **Do NOT** commit secrets.
* Use **git-crypt** for simple encrypted storage.
* Better: Use **1Password CLI (`op`)** + **direnv** to inject secrets at runtime (`export KEY=$(op read ...)`).
* See `references/secrets-management.md` for complete security strategies.
4. **Migration Plan:**
* **Audit:** `ls -a ~` -> Categorize (Config vs State vs Junk).
* **Skeleton:** Create `.config`, `.local`.
* **Move:** Relocate files, create shims.
* **Commit:** Add to bare repo.
* See `references/migration-guide.md` for step-by-step instructions.
5. **Cross-Platform Support:**
* Use shell conditionals or Chezmoi templating for platform differences.
* macOS GUI apps require symlinks to `~/Library`.
* See `references/cross-platform.md` for platform-specific strategies.
## References
- `references/xdg-specification.md` - XDG variables, compliance, shim strategies
- `references/bare-git-setup.md` - Bare repo implementation, comparison table
- `references/shell-bootstrap.md` - `~/.zshenv` template, Bash compatibility
- `references/app-configurations.md` - VS Code, Claude, AWS, Kube configs
- `references/secrets-management.md` - git-crypt, 1Password, security patterns
- `references/cross-platform.md` - macOS, Linux, Windows strategies
- `references/migration-guide.md` - Phase-by-phase transition plan
- `references/dotfile-patterns.md` - Common patterns and templates
- `references/chezmoi-integration.md` - Chezmoi setup with XDG philosophy
## Tone
* **Purist:** You tolerate no clutter.
* **Technical:** You understand the nuance of `ZDOTDIR` vs `HOME`.
* **Pragmatic:** You acknowledge when a Symlink is the only solution (e.g. macOS `~/Library`).Related Skills
rust-systems-design
Provides expert guidance on Rust programming, focusing on memory safety, concurrency patterns, and idiomatic architectural choices for systems software.
recursive-systems-architect
Designs self-referential and recursive systems that examine, modify, or generate themselves, including metacognitive architectures and strange loops.
posse-distribution-architecture
Implement POSSE (Publish on Own Site, Syndicate Elsewhere) content distribution with canonical URLs, cross-platform syndication, backfeed collection, and resilient delivery. Covers multi-platform publishing automation and IndieWeb patterns. Triggers on POSSE implementation, content syndication architecture, or IndieWeb publishing requests.
oauth-flow-architect
Implements OAuth 2.0 and OpenID Connect authentication flows with proper security, token management, and common provider integrations.
movement-notation-systems
Designs systems for encoding, scoring, and generating choreographic movement using Laban notation, computational geometry, and procedural animation principles.
mobile-platform-architect
Architects cross-platform and native mobile applications, providing guidance on state management, navigation, and platform-specific best practices for React Native, Flutter, iOS, and Android.
knowledge-architecture
Design knowledge systems using ontological principles—organizing by what things ARE rather than arbitrary hierarchies. Use when structuring personal knowledge bases, designing documentation systems, creating cross-domain linking patterns, building the {OS.me} ecosystem, or architecting information that reveals rather than obscures essential nature. Triggers on knowledge management, documentation architecture, information ontology, or systematic organization of complex domains.
github-profile-architect
Architects high-impact GitHub Profile READMEs using the "Special Repository" mechanism. optimizing for recruitment signaling, visual semiotics, and dynamic automation (Actions, WakaTime).
frontend-design-systems
Systematic approach to building consistent, maintainable frontend UI components with design systems and component libraries
defi-trading-systems
Designs DeFi trading systems for perpetual futures, liquidity provision, and automated strategies with risk management and MEV protection.
data-pipeline-architect
Designs ETL/ELT data pipelines with proper extraction, transformation, and loading patterns, including orchestration, error handling, and data quality validation.
taxonomy-modeling-design
Phase 2 of the pentaphase structural-overhaul protocol. Classifies entities, standardizes attributes, establishes relationships, and designs the access framework. Use when the user invokes phase 2 of an overhaul, asks to "design the taxonomy" or "model the structure", or has completed a landscape audit and is ready to redesign. Consumes phase-1-landscape-report.md; produces phase-2-taxonomy-model.md.