Skip to content

πŸ”§ SSCLI Development Quick Reference

πŸ”§ SSCLI Development Quick Reference

What’s New

1. Local Dev Version Swapper

Terminal window
sscli dev # Show current version status
sscli dev swap # Toggle between pip and local build
sscli dev use-local # Explicitly use local build
sscli dev use-pip # Explicitly use pip version
sscli dev test # Quick test of current config
sscli dev build # Build local package
sscli dev info # Show environment details

2. Three Menu Modes

Mode Selection (appears after authentication):

Select Your Experience:
β†’ Seed & Source (Client Side) [All users]
β†’ Foundry Ops (Internal Side) [Admin/Internal Dev]
β†’ πŸ”§ Development Tools [Admin + Local Dev]

3. Development Tools Menu

Access only when: is_admin() AND is_internal_dev()

sscli interactive
β†’ Select "πŸ”§ Development Tools"
β†’ Choose:
β€’ Check Build Version - Current version & source
β€’ Compare Build Differences - Local vs Pip versions
β€’ Run Development Tests - Validate imports & env
β€’ View Development Info - Python, packages, venv

Architecture at a Glance

sscli interactive
β”œβ”€β†’ Show Logo (with version v1.4.0)
β”œβ”€β†’ Auth Gate (license-server)
β”œβ”€β†’ Internal Gate (admin? local-dev?)
└─→ Route to Experience:
β”œβ”€ CLIENT (standard user menu)
β”œβ”€ INTERNAL (ops & admin menu)
β”œβ”€ DEVELOPMENT (dev tools menu)
└─ EXIT (cancelled)

Directory Structure

foundry/
β”œβ”€β”€ tools/ [NEW]
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ client/ [For future]
β”‚ β”‚ └── __init__.py
β”‚ β”œβ”€β”€ internal/ [For future]
β”‚ β”‚ └── __init__.py
β”‚ └── development/ [Development tools]
β”‚ β”œβ”€β”€ __init__.py
β”‚ └── build_tools.py
β”‚
β”œβ”€β”€ development_experience.py [NEW]
β”œβ”€β”€ gate.py [MODIFIED - 3 modes]
β”œβ”€β”€ animated_experience.py [MODIFIED - dev mode route]
β”œβ”€β”€ internal_experience.py [EXISTING]
└── [other modules...]

Key Files Changed

FileChangeImpact
gate.pyMenu supports 3 modesDevelopers see dev tools if admin+local
animated_experience.pyRoute DEVELOPMENT modeLoads dev experience for admins
logo_reveal.pyShow version in logoVersion displays during animation
development_experience.pyNEW - Dev tools menuDev tools accessible
tools/development/build_tools.pyNEW - Dev functionsDebugging/build tools
/bin/sscli-devNEW - Root scriptSwap pip/local versions

How to Use (Step-by-Step)

As a Local Developer (Admin)

Terminal window
# 1. Check what you're running
sscli dev
# Output: Shows if on pip version or local build
# 2. Test the build locally (optional)
./scripts/smoke-test.sh
# 3. Swap to local build if needed
sscli dev swap
# Reinstalls sscli from your local stack-cli/
# 4. Access development tools
sscli interactive
# Menu appears β†’ Select "πŸ”§ Development Tools"
# 5. Run a dev tool
# β†’ Select "Check Build Version"
# β†’ Shows: v1.4.0, Location, Source (local/pip)

As a Regular User

Terminal window
# Standard flow (unchanged)
sscli interactive
β†’ Select "Seed & Source (Client Side)"
β†’ Use normal client menu

Testing Your Changes

Terminal window
# 1. Verify syntax
python3 -m py_compile stack-cli/foundry/development_experience.py
python3 -m py_compile stack-cli/foundry/tools/development/build_tools.py
# 2. Run smoke test
./scripts/smoke-test.sh
# 3. Test dev swap
sscli dev status
sscli dev swap # If you want to toggle versions
# 4. Test the menu
sscli interactive
# Should show all 3 modes if admin+local-dev
# 5. Test dev tools
# Select "πŸ”§ Development Tools" β†’ Pick a tool

Troubleshooting

β€πŸ”§ Development Tools” not showing?

  • Need to be admin tier user
  • Need to be in is_internal_dev() environment
  • Check: sscli whoami to see tier
  • Ensure stack-cli/pyproject.toml has version field
  • Check format: [project] version = "1.4.0"

sscli dev swap fails?

  • Use a virtual environment
  • Ensure --user flag is available or use venv
  • Check: which python for correct interpreter

Common Commands Cheat Sheet

Terminal window
# Check current state
sscli dev # Show version & source
sscli dev info # Show environment
# Swap versions
sscli dev swap # Toggle pip←→local
sscli dev use-local # Go to local
sscli dev use-pip # Go to pip package
# Development
sscli dev build # Build locally
sscli dev test # Test current config
sscli interactive # Full menu (includes dev tools)
# Deployment
./scripts/smoke-test.sh # Pre-deployment check
./scripts/bump-version.sh patch # Bump & tag

What’s Where

FeatureWhereAccess
Version displayLogo animationAutomatic (bottom-right)
3-mode menugate.pyAfter auth
Dev toolsdevelopment_experience.pyAdmin + local
Build toolstools/development/build_tools.pyDev tools menu
Version swap/bin/sscli-devTerminal: sscli dev

Quick Debugging

All 3 modes working?

Terminal window
sscli interactive
# Should ask: "Select Your Experience:" with 3 options
# If only 1 option: Not admin or not in local-dev environment

Building locally?

Terminal window
sscli dev
# Shows source: "Local development build" vs "Installed pip package"

Tools responding?

Terminal window
sscli interactive
β†’ πŸ”§ Development Tools
β†’ Check Build Version
# Should show version and location

Notes for Developers

  • Non-breaking: All changes are backward compatible
  • Gradual expansion: Tools directories ready for future additions
  • Modular design: Easy to add client/ and internal/ tools later
  • Version tracking: Automatic from pyproject.toml (always current)
  • Safe defaults: Graceful failure if features unavailable
  • Local-only: Dev mode only for admins in local code environment

Next Steps

  1. Deploy and test the three modes
  2. Add client-specific tools to tools/client/
  3. Migrate internal tools to tools/internal/
  4. Expand development tools as needed
  5. Document new tools in their respective modules

Last Updated: February 2026 Stable: Yes - All syntax validated, no breaking changes Ready for: Testing β†’ Deployment