From orbit
This skill should be used when the user says '/orbit', '/orbit init', '/orbit status', '/orbit test', '/orbit staging', '/orbit use', '/orbit sidecars', '/orbit logs', '/orbit stop', '/orbit check', '/orbit templates', asks about environment status or switching, wants to run tests in Docker containers, needs to manage dev/test/staging environments, or asks about sidecar services like PostgreSQL or Redis for their project.
npx claudepluginhub shihwesley/shihwesley-plugins --plugin orbitThis skill uses the workspace's default tool permissions.
Ambient environment management for `~/Source/` projects.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Ambient environment management for ~/Source/ projects.
The Orbit MCP server provides these tools. Prefer MCP tools when available:
| Tool | Purpose |
|---|---|
orbit_status | Get current environment status |
orbit_switch_env | Switch to dev/test/staging |
orbit_get_state | Query projects, audit log, registry |
orbit_sidecars | List/start/stop sidecars |
orbit_stop_all | Stop all Orbit containers |
Parse user input:
/orbit or /orbit status → Status/orbit init → Init/orbit test [--fresh] → Test Suite/orbit staging → Staging/orbit use <env> → Use/orbit sidecars [action] [name] → Sidecars/orbit logs [limit] → Logs/orbit stop → Stop All/orbit check → Parity Check/orbit templates → TemplatesShow current environment state.
Call orbit_status with project_path = <cwd>
# Check initialization
if [ ! -f ".orbit/config.json" ]; then
echo "Project not initialized. Run /orbit init"
exit 1
fi
# Show config
cat .orbit/config.json
# Query state
sqlite3 ~/.orbit/state.db "SELECT current_env, last_activity FROM project_state WHERE project = '$(pwd)';"
sqlite3 ~/.orbit/state.db "SELECT timestamp, command, success FROM audit_log WHERE project = '$(pwd)' ORDER BY timestamp DESC LIMIT 5;"
Project: <name>
Type: <node|python|go|rust>
Environment: <dev|test|staging>
Sidecars: <running sidecars or "none">
Recent activity:
<timestamp> <command> <success/fail>
...
Initialize Orbit for current project.
${CLAUDE_PLUGIN_ROOT}/scripts/detect-project.sh .
Returns type|supported (e.g., node|yes).
Use AskUserQuestion:
question: "Detected project type: <type>. Initialize Orbit?"
options:
- "Yes, initialize as <type>"
- "No, cancel"
If unsupported (swift|no or xcode|no):
Orbit currently supports: Node.js, Python, Go, Rust
Swift/Xcode support planned for future release.
Stop here.
${CLAUDE_PLUGIN_ROOT}/scripts/orbit-init.sh . <type>
Orbit initialized for <project>
Type: <type>
Config: .orbit/config.json
Edit .orbit/config.json to add sidecars if needed.
Run tests in fresh Docker container.
${CLAUDE_PLUGIN_ROOT}/scripts/orbit-test.sh [--fresh] .
NODE_ENV=test and CI=trueDocker required for /orbit test.
Install: brew install --cask docker (macOS)
sudo apt-get install docker.io (Linux)
Switch to staging environment (Docker with staging env vars).
Call orbit_switch_env with:
environment: "staging"
project_path: <cwd>
# Check Docker
${CLAUDE_PLUGIN_ROOT}/scripts/check-docker.sh check || {
echo "Docker required for staging environment"
exit 1
}
# Start sidecars
SIDECARS=$(python3 -c "import json; print(' '.join(json.load(open('.orbit/config.json')).get('sidecars', [])))")
for sidecar in $SIDECARS; do
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml --profile sidecar-$sidecar up -d
done
# Update state
sqlite3 ~/.orbit/state.db "UPDATE project_state SET current_env = 'staging', last_activity = datetime('now') WHERE project = '$(pwd)';"
Switched to staging environment (Production-Mimic)
Sidecars started: <list>
NODE_ENV: production
CI: true
Orbit no longer manages production deployments directly. Staging is the final high-fidelity local validation step.
Manually override environment (dev/test/staging).
Call orbit_switch_env with:
environment: <env>
project_path: <cwd>
Switch to dev:
# Stop containers (dev is local)
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml down 2>/dev/null || true
# Update state
sqlite3 ~/.orbit/state.db "UPDATE project_state SET current_env = 'dev', sidecars_running = '[]', last_activity = datetime('now') WHERE project = '$(pwd)';"
echo "Switched to dev (local) environment"
Switch to test/staging:
# Requires Docker
${CLAUDE_PLUGIN_ROOT}/scripts/check-docker.sh check || exit 1
# Start sidecars
# ... (same as staging)
# Update state
sqlite3 ~/.orbit/state.db "UPDATE project_state SET current_env = '<env>', last_activity = datetime('now') WHERE project = '$(pwd)';"
Manage sidecar services.
# List
Call orbit_sidecars with action: "list"
# Start
Call orbit_sidecars with action: "start", sidecar: "<name>"
# Stop
Call orbit_sidecars with action: "stop", sidecar: "<name>"
| Name | Service | Port |
|---|---|---|
| postgres | PostgreSQL 15 | 5432 |
| redis | Redis 7 | 6379 |
| mysql | MySQL 8 | 3306 |
| mongodb | MongoDB 7 | 27017 |
| rabbitmq | RabbitMQ 3 | 5672, 15672 |
| aws | LocalStack | 4566 |
Edit .orbit/config.json:
{
"sidecars": ["postgres", "redis"]
}
# Start
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml --profile sidecar-<name> up -d
# Stop
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml --profile sidecar-<name> down
# Status
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml ps
Show recent audit log entries.
Call orbit_get_state with:
query_type: "audit"
project_path: <cwd>
limit: 20
sqlite3 -header -column ~/.orbit/state.db \
"SELECT timestamp, command, environment,
CASE success WHEN 1 THEN 'ok' ELSE 'fail' END as result,
duration_ms
FROM audit_log
WHERE project = '$(pwd)'
ORDER BY timestamp DESC
LIMIT 20;"
Recent activity for <project>:
TIMESTAMP COMMAND ENV RESULT DURATION
2024-01-15 10:30:00 test test ok 12500ms
2024-01-15 10:25:00 init dev ok -
...
Stop all Orbit containers.
Call orbit_stop_all with confirm: true
docker compose -f ${CLAUDE_PLUGIN_ROOT}/docker/docker-compose.yml down
# Clear sidecar state for all projects
sqlite3 ~/.orbit/state.db "UPDATE project_state SET sidecars_running = '[]';"
echo "Stopped all Orbit containers"
Check version parity between local toolchain and project requirements.
${CLAUDE_PLUGIN_ROOT}/scripts/check-parity.sh .
{
"status": "ok|warning",
"project_type": "node",
"tool": "node",
"local_version": "20.10.0",
"required_version": "20",
"warnings": []
}
Version parity warning:
Project expects Node 20, you have Node 18
Consider updating or use /orbit test for consistent environment
Copy GitHub Actions workflow templates to project.
| Template | File | Purpose |
|---|---|---|
| ci | ci.yml | Basic CI (build + test) |
| vercel | vercel-deploy.yml | Deploy to Vercel |
| railway | railway-deploy.yml | Deploy to Railway |
mkdir -p .github/workflows
cp ${CLAUDE_PLUGIN_ROOT}/templates/<template>.yml .github/workflows/
/orbit templates ci
> Copies ci.yml to .github/workflows/ci.yml
Edit to uncomment your project type (Node/Python/Go/Rust)
Orbit detects monorepos/workspaces automatically during /orbit init:
| Type | Detection |
|---|---|
| npm | package.json with workspaces |
| pnpm | pnpm-workspace.yaml |
| cargo | Cargo.toml with [workspace] |
| go | go.work file |
.orbit/config.json${CLAUDE_PLUGIN_ROOT}/scripts/detect-workspace.sh .
# Returns: type|subprojects (e.g., "npm|packages/a,packages/b")
| Command | Action |
|---|---|
/orbit | Show status |
/orbit init | Initialize project |
/orbit test | Run tests in Docker |
/orbit test --fresh | Run tests (no cache) |
/orbit staging | Switch to staging |
/orbit use dev | Switch to local dev |
/orbit use test | Switch to test env |
/orbit sidecars | List sidecars |
/orbit sidecars start postgres | Start PostgreSQL |
/orbit sidecars stop redis | Stop Redis |
/orbit logs | Show audit history |
/orbit stop | Stop all containers |
/orbit check | Version parity check |
/orbit templates ci | Copy CI template |