Status: Phase 2 Complete - Core Infrastructure Ready Version: 1.0.0 Created: 2026-02-17
This Homebrew tap provides the packaging and distribution mechanism for the aiteamforge environment. It follows a two-layer architecture: the framework layer (managed by Homebrew) and the working layer (managed by the user).
Layer 1: Framework (Homebrew-managed)
- Location:
$(brew --prefix)/opt/aiteamforge/libexec/ - Content: Read-only template files, core scripts, documentation
- Management: Installed via
brew install aiteamforge, upgraded viabrew upgrade aiteamforge - Immutable by users
Layer 2: Working Directory (User-managed)
- Location:
~/aiteamforge(or custom location) - Content: User configurations, kanban data, generated scripts, team configs
- Management: Created by
aiteamforge setup, preserved across framework upgrades - Fully mutable by users
This separation allows:
- Clean upgrades without losing user data
- Multiple installations with different configs
- Easy rollback to previous framework versions
- Clear distinction between "product" and "data"
Purpose: Defines how to install aiteamforge via Homebrew
Key Features:
- Declares dependencies (Python, Node.js, jq, gh, Git)
- Specifies installation URL and version
- Copies framework files to libexec
- Creates bin stubs for main commands
- Includes caveats (post-install instructions)
- Provides test block for CI validation
What it does:
- Checks dependencies
- Downloads release tarball
- Installs to
$(brew --prefix)/opt/aiteamforge/libexec/ - Creates executable stubs in
$(brew --prefix)/bin/ - Shows post-install instructions
What it does NOT do:
- Configure teams
- Set up kanban system
- Modify user shell configs
- Start services
Purpose: Command dispatcher that routes subcommands to appropriate handlers
Commands:
aiteamforge setup # Run setup wizard
aiteamforge doctor # Health check
aiteamforge status # Show environment status
aiteamforge upgrade # Upgrade components
aiteamforge start # Start environment
aiteamforge stop # Stop environment
aiteamforge restart # Restart environment
aiteamforge version # Show version info
aiteamforge help # Show helpHow it works:
- Exports
AITEAMFORGE_HOME(framework location) - Exports
AITEAMFORGE_DIR(working directory) - Routes to appropriate script based on subcommand
- Checks if configured before allowing most commands
- Falls back to help on unknown commands
Purpose: Interactive configuration and installation wizard
Modes:
--interactive(default) - Interactive setup--upgrade- Upgrade existing installation--uninstall- Remove configuration--non-interactive- Scripted setup
What it does:
- Shows banner and intro
- Checks dependencies (Python, Node, iTerm2, Claude Code, etc.)
- Offers to install missing dependencies
- Asks for installation directory
- Checks for existing installation
- Copies framework files to working directory
- Creates configuration marker
- Shows next steps
What it will do (future):
- Team selection (iOS, Android, Firebase, etc.)
- LCARS Kanban setup
- Fleet Monitor configuration (optional)
- LaunchAgent installation
- Shell integration
- Claude Code agent configuration
Purpose: Comprehensive diagnostics and health monitoring
Check Categories:
- Dependencies - Python, Node, jq, gh, Git, iTerm2, Claude Code, Tailscale
- Framework - Framework installation, core scripts, core directories
- Config - Working directory, configuration marker, templates
- Services - LCARS server, Fleet Monitor, LaunchAgents
- Permissions - Write access, execute permissions
Output:
- ✓ Pass (green) - Check succeeded
- ⚠ Warn (yellow) - Non-critical issue
- ✗ Fail (red) - Critical issue
Options:
--verbose- Detailed diagnostic output--fix- Attempt automatic fixes (future)--check <component>- Check specific component only
README.md - User-facing documentation:
- Installation instructions
- Usage examples
- Requirements
- Architecture overview
- Configuration
- Troubleshooting
CONTRIBUTING.md - Developer documentation:
- Development setup
- Formula development
- Testing workflow
- PR process
- Release process
OVERVIEW.md (this file) - Technical overview:
- Architecture decisions
- Component descriptions
- Implementation status
- Next steps
Purpose: Automated testing on GitHub Actions
Test Jobs:
-
test-formula - Test on Intel and ARM macOS
- Formula audit
- Install from source
- Run formula tests
- Verify installation
- Test main commands
- Test uninstall
-
lint-formula - Code quality
- brew style check
- RuboCop linting
-
test-scripts - Script validation
- Syntax checking
- ShellCheck linting
- Permission verification
Triggers:
- Push to main/develop
- Pull requests
- Manual dispatch
# 1. Add tap
brew tap DoubleNode/aiteamforge
# 2. Install framework
brew install aiteamforge
# 3. Run setup wizard
aiteamforge setup
# Checks dependencies
# Installs missing deps (if approved)
# Chooses installation location
# Copies framework files
# Creates config marker
# Shows next steps
# 4. Verify health
aiteamforge doctor
# 5. Use aiteamforge
aiteamforge start ios
aiteamforge statusProblem: Homebrew formulas reinstall to the same location on upgrade, which would overwrite user data.
Solution:
- Framework layer = immutable product code
- Working layer = mutable user data
- Setup wizard bridges the two
Benefits:
- Clean upgrades via
brew upgrade aiteamforge - User data preserved across upgrades
- Multiple working directories possible
- Clear separation of concerns
Problem: Complex environment with many machine-specific settings.
Solution: Interactive wizard that:
- Checks dependencies first
- Guides through configuration
- Generates machine-specific files
- Validates installation
Alternative Considered: Post-install hook Why Not: Homebrew post-install runs as root, can't easily prompt user, no interactive capabilities
Problem: Complex installation with many failure points.
Solution: Comprehensive health check that:
- Validates all dependencies
- Checks framework integrity
- Verifies configuration
- Tests services
- Provides actionable feedback
Inspiration: brew doctor, npm doctor, cargo doctor
Homebrew Installation:
$(brew --prefix)/opt/aiteamforge/
├── libexec/ # Framework files (read-only)
│ ├── bin/ # Core scripts
│ ├── scripts/ # Automation
│ ├── config/templates/ # Templates
│ ├── docs/ # Documentation
│ ├── skills/ # Claude Code skills
│ └── ...
└── bin -> libexec/bin/ # Symlink
$(brew --prefix)/bin/
├── aiteamforge # Stub → libexec/bin/aiteamforge-cli.sh
├── aiteamforge-setup # Stub → libexec/bin/aiteamforge-setup.sh
└── aiteamforge-doctor # Stub → libexec/bin/aiteamforge-doctor.sh
Working Directory:
~/aiteamforge/ # User's working directory
├── .aiteamforge-config # Installation metadata
├── templates/ # Copied from framework
├── docs/ # Copied from framework
├── skills/ # Copied from framework
├── kanban/ # Kanban board data
├── teams/ # Team configurations
├── scripts/ # Generated scripts
└── ...
- Homebrew formula structure
- Formula with dependencies
- Main CLI dispatcher
- Setup wizard skeleton
- Health check/doctor
- README documentation
- Contributing guide
- CI/CD workflow
- License
- .gitignore
- Team selection in setup wizard
- LCARS installation
- Shell integration
- LaunchAgent installation
- Claude Code agent configuration
- Fleet Monitor setup (optional)
- Upgrade workflow
- Auto-fix in doctor
- Remote machine provisioning
- Tap bottle builds (pre-compiled)
- Version compatibility checks
- Migration scripts for breaking changes
- Formula audit:
brew audit --strict Formula/aiteamforge.rb - Install from source:
brew install --build-from-source aiteamforge - Run formula tests:
brew test aiteamforge - Test all commands:
aiteamforge --version,aiteamforge-setup --help, etc. - Full integration:
aiteamforge setup→ configure →aiteamforge doctor
- Formula audit and lint
- Install on Intel and ARM macOS
- Test block execution
- Script syntax validation
- ShellCheck linting
- Install on fresh Mac
- Run full setup wizard
- Verify all components work
- Test upgrade path
- Test uninstall
- Team selection UI
- LCARS Kanban installation
- Shell integration (.zshrc modification)
- LaunchAgent installation
- Claude Code agent configuration
- Template processing
- Multi-machine testing
- Upgrade testing
- Edge case handling
- Video walkthrough
- Troubleshooting guide
- FAQ
- Tag v1.0.0 release
- Create release tarball
- Update formula SHA256
- Submit to Homebrew taps registry
- Announce release
- Monitor issues
- Python 3 (3.8+) - Kanban hooks, LCARS server
- Node.js (18.0+) - Fleet Monitor, Claude Code
- jq - JSON processing in shell scripts
- GitHub CLI (
gh) - PR workflows, releases - Git - Version control
- iTerm2 - Terminal emulator
- Claude Code - AI pair programmer
- Tailscale - Multi-machine networking
- ImageMagick - Avatar/image processing
- tmux - Terminal multiplexing for Fleet Monitor
- Update version in
Formula/aiteamforge.rb - Tag main aiteamforge repo:
git tag v1.0.0 - Push tag:
git push origin v1.0.0 - Calculate new SHA256 of release tarball
- Update formula SHA256
- Test installation
- Commit formula update
- Tag tap repo:
git tag v1.0.0
# Always test locally before pushing
brew audit --strict Formula/aiteamforge.rb
brew install --build-from-source aiteamforge
brew test aiteamforge
# Test uninstall/reinstall
brew uninstall aiteamforge
brew install aiteamforgeFormula not found:
brew untap DoubleNode/aiteamforge
brew tap DoubleNode/aiteamforgeSHA256 mismatch:
- Download fresh tarball
- Recalculate:
shasum -a 256 file.tar.gz - Update formula
Test failures:
- Check test block in formula
- Verify files actually installed
- Check permissions
Created by: Commander Jett Reno (Academy Team) Date: 2026-02-17 Status: Phase 2 Complete - Ready for Phase 3