Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat: Add ai repo as submodule and create deployment layer

Abierto
#176 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
git, python, shell

Línea de trabajo

Empieza leyendo la receta de instalación existente en .claude/justfile y el justfile raíz; después, inspecciona la estructura del repositorio solicitado arustydev/ai. La Fase 1 estará completa cuando ai/ esté registrado como submódulo, .gitmodules esté actualizado y ai-init lo inicialice y actualice; los flujos de trabajo posteriores de copia, compilación, perfilado y secretos son explícitamente fases futuras.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Jupyter Notebook
Estrellas
1
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aRustyDev/dotfiles

Todos los issues de aRustyDev/dotfiles

Issues similares

Más issues de DevTools

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.