Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

feat: Add ai repo as submodule and create deployment layer

Aperta
#176 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Stack tecnologico
git, python, shell

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

enhancement

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:

  1. Consumes ai/ as a submodule
  2. Builds/compiles configs (future - for now, just copies)
  3. 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/ai as git submodule at dotfiles/ai/
  • Update .gitmodules
  • Add ai-init recipe to justfile
Phase 2: Basic Workflow
  • Create just install ai recipe 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-sync recipe for other machines
Phase 3: Build System (Future)
  • Add profile selection (env var AI_PROFILE or config file)
  • Call ai/build/compile.py from justfile
  • Deploy from ai/dist/ instead of ai/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:

  1. Environment variable: AI_PROFILE=personal just ai-sync
  2. Config file: ~/.config/ai-profile contains profile name
  3. Hostname-based: Lookup table mapping hostnames to profiles
  4. 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/justfile has 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aRustyDev/dotfiles

Tutte le issue di aRustyDev/dotfiles

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.