feat: Add ai repo as submodule and create deployment layer
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Ambito
- developer-experience, devops, tooling
Direzione di ricerca
Inizia leggendo la recipe di installazione esistente in .claude/justfile e il justfile root, quindi esamina la struttura del repository richiesto arustydev/ai. La Fase 1 è completata quando ai/ è registrato come sottomodulo, .gitmodules è aggiornato e ai-init lo inizializza e lo aggiorna; i workflow successivi di copia, build, profiling e gestione dei secret sono esplicitamente fasi future.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Overview
Add the arustydev/ai repository as a git submodule and create a deployment layer that installs AI configurations to the appropriate locations on each machine.
Context
The ai repo is the shareable source of truth for AI configurations. The dotfiles repo serves as the deployment layer that:
- Consumes
ai/as a submodule - Builds/compiles configs (future - for now, just copies)
- Deploys to target locations (
~/.claude/,~/.zed/, etc.)
Workflow
Project .claude/ ──promote──▶ ai/ (source) ──build──▶ global (~/.claude/)
│
▼
dotfiles/
(deployment layer)
Target Structure
dotfiles/
├── ai/ ← git submodule (arustydev/ai)
│
├── .claude/ ← dotfiles' own project configs
│ ├── commands/
│ ├── skills/
│ └── justfile ← existing install logic
│
├── .ai/ ← dotfiles' own .ai configs (if needed)
│
└── justfile
├── install ← existing: install all dotfiles
├── ai-init ← initialize/update ai submodule
├── ai-build PROFILE TOOL ← future: compile components
├── ai-deploy PROFILE TOOL ← future: deploy to targets
└── ai-sync ← pull + build + deploy
Implementation Phases
Phase 1: Structure (Current Focus)
- Add
arustydev/aias git submodule atdotfiles/ai/ - Update
.gitmodules - Add
ai-initrecipe to justfile
Phase 2: Basic Workflow
- Create
just install airecipe that copies to target locations:ai/components/commands/→~/.claude/commands/ai/components/skills/→~/.claude/skills/ai/components/hooks/→~/.claude/hooks/ai/components/rules/→~/.claude/rules/
- Handle Zed configs:
ai/tools/zed/→~/.zed/ - Create
ai-syncrecipe for other machines
Phase 3: Build System (Future)
- Add profile selection (env var
AI_PROFILEor config file) - Call
ai/build/compile.pyfrom justfile - Deploy from
ai/dist/instead ofai/components/
Phase 4: Dynamic MCP (Future)
- Generate MCP configs from
ai/mcp/ - Resolve
op://secrets at deploy time using 1Password CLI - Support tool-specific MCP formats
Justfile Recipes
Phase 1 (Now)
# Initialize or update the ai submodule
ai-init:
git submodule update --init --recursive ai/
git submodule update --remote ai/
Phase 2 (Soon)
# Install AI configs to global locations (simple copy, no profiles yet)
[group('ai')]
install-ai:
@echo "Installing AI configs..."
mkdir -p ~/.claude/{commands,skills,hooks,rules}
cp -r ai/components/commands/* ~/.claude/commands/ 2>/dev/null || true
cp -r ai/components/skills/* ~/.claude/skills/ 2>/dev/null || true
cp -r ai/components/hooks/* ~/.claude/hooks/ 2>/dev/null || true
cp -r ai/components/rules/* ~/.claude/rules/ 2>/dev/null || true
@echo "✅ AI configs installed"
# Sync AI configs (pull latest + install)
[group('ai')]
ai-sync:
git submodule update --remote ai/
just install-ai
Phase 3+ (Future)
# Build AI configs for a specific profile and tool
[group('ai')]
ai-build profile="personal" tool="claude-code":
cd ai && python build/compile.py --profile {{profile}} --tool {{tool}}
# Deploy built configs
[group('ai')]
ai-deploy profile="personal" tool="claude-code":
@echo "Deploying {{tool}} configs for {{profile}} profile..."
# Copy from ai/dist/{{tool}}/{{profile}}/ to target
Target Locations by Tool
| Tool | Target Location | Config Type |
|---|---|---|
| Claude Code | ~/.claude/ |
commands, skills, hooks, rules, settings.json |
| Claude Desktop | ~/Library/Application Support/Claude/ |
claude_desktop_config.json |
| Zed | ~/.zed/ |
settings.json, prompts/ |
| VSCode | ~/.vscode/ |
settings.json, extensions |
Profile Selection (Future)
Options for selecting which profile to use:
- Environment variable:
AI_PROFILE=personal just ai-sync - Config file:
~/.config/ai-profilecontains profile name - Hostname-based: Lookup table mapping hostnames to profiles
- Manual: Always specify as argument
Secrets Handling
Configs may contain 1Password references like op://vault/item/key. At deploy time:
# Resolve secrets using 1Password CLI
op inject -i config.template.json -o config.json
Related Issues
- arustydev/ai#1 - Restructure ai repo for composable architecture
Migration Notes
Current State
.claude/exists with commands, skills, hooks, rules.claude/justfilehas install recipe that copies to~/.claude/.ai/exists with various content
After Migration
ai/submodule is the source of truth.claude/contains only dotfiles-specific project configs.ai/may be removed or kept for dotfiles-specific plans
Labels
- enhancement
- architecture
- Lingua principale
- Jupyter Notebook
- Stelle
- 1
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aRustyDev/dotfiles
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
-
dependencies github-actions
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
-
[Enhancement]: docker setupForse di nuovo libera @aRustyDev l’ha presa 267 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement
-
[Enhancement]: brew install tools before installing dotfilesForse di nuovo libera @aRustyDev l’ha presa 268 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement
-
[Enhancement]: zed install processForse di nuovo libera @aRustyDev l’ha presa 268 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement
Tutte le issue di aRustyDev/dotfiles
Issue simili
-
Claiming namespace apexdevApertanamespace operations
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
EclipseFdn/open-vsx.org#13737 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
feedback simulation workshop
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
githubnext/gh-aw-workshop#4174 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
WingedGuardian/GENesis-AGI#2852 ·
I maintainer di solito rispondono entro 1 giorno