Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat: Add ai repo as submodule and create deployment layer

Open
#176 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
git, python, shell

Research direction

Start by reading the existing .claude/justfile install recipe and the root justfile, then inspect the requested arustydev/ai repository layout. Phase 1 is done when ai/ is recorded as a submodule, .gitmodules is updated, and ai-init initializes and updates it; the later copy, build, profile, and secret workflows are explicitly future phases.

Written by the indexing model from the issue text.

Description

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
Dominant language
Jupyter Notebook
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aRustyDev/dotfiles

All issues in aRustyDev/dotfiles

Similar issues

More DevTools issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.