Use to validate spectacular environment - checks superpowers plugin, git-spice, git repo, and project structure before running spectacular workflows
This skill validates that all required dependencies and configuration are in place for spectacular workflows. It checks for the superpowers plugin, git-spice installation, git repository status, and project structure. It also detects whether the workspace is single-repo or multi-repo.
Use this skill when:
/spectacular:init commandAnnounce: "I'm using validating-environment to check the spectacular setup."
Check if superpowers is installed (handles both direct and marketplace installs):
# Check both possible install locations:
# - Direct: ~/.claude/plugins/cache/superpowers
# - Marketplace: ~/.claude/plugins/cache/superpowers-marketplace/superpowers
SUPERPOWERS_PATH=""
if [ -d ~/.claude/plugins/cache/superpowers ]; then
SUPERPOWERS_PATH=~/.claude/plugins/cache/superpowers
elif [ -d ~/.claude/plugins/cache/superpowers-marketplace/superpowers ]; then
SUPERPOWERS_PATH=~/.claude/plugins/cache/superpowers-marketplace/superpowers
fi
if [ -n "$SUPERPOWERS_PATH" ]; then
echo "Superpowers plugin is installed"
SUPERPOWERS_VERSION=$(cd "$SUPERPOWERS_PATH" && git describe --tags 2>/dev/null || echo "unknown")
echo " Version: $SUPERPOWERS_VERSION"
echo " Path: $SUPERPOWERS_PATH"
else
echo "Superpowers plugin NOT installed"
echo ""
echo "Spectacular requires the superpowers plugin for core skills:"
echo " - brainstorming"
echo " - subagent-driven-development"
echo " - requesting-code-review"
echo " - verification-before-completion"
echo " - finishing-a-development-branch"
echo ""
echo "Install with:"
echo " /plugin install superpowers@superpowers-marketplace"
echo ""
SUPERPOWERS_MISSING=true
fi
Verify git-spice is installed and accessible:
if command -v gs &> /dev/null; then
echo "Git-spice is installed"
GS_VERSION=$(gs --version 2>&1 | head -1)
echo " $GS_VERSION"
# Check if we're in a git repo
if git rev-parse --git-dir > /dev/null 2>&1; then
# Check if git-spice is initialized
if gs ls &> /dev/null; then
echo "Git-spice is initialized for this repo"
else
echo "Git-spice not initialized for this repo"
echo ""
echo "Initialize with:"
echo " gs repo init"
echo ""
GS_NOT_INITIALIZED=true
fi
fi
else
echo "Git-spice NOT installed"
echo ""
echo "Spectacular uses git-spice for stacked branch management."
echo ""
echo "Install instructions:"
echo " macOS: brew install git-spice"
echo " Linux: See https://github.com/abhinav/git-spice"
echo ""
GS_MISSING=true
fi
Ensure .gitignore has spectacular-specific entries:
if [ -f .gitignore ]; then
echo ".gitignore exists"
# Check for .worktrees/ entry
if grep -q "^\.worktrees/" .gitignore 2>/dev/null; then
echo " .worktrees/ already in .gitignore"
else
echo " Adding .worktrees/ to .gitignore"
echo "" >> .gitignore
echo "# Spectacular parallel execution worktrees" >> .gitignore
echo ".worktrees/" >> .gitignore
echo " Added .worktrees/ to .gitignore"
fi
# Check for specs/ is NOT ignored (we want specs tracked)
if grep -q "^specs/" .gitignore 2>/dev/null; then
echo " WARNING: specs/ is gitignored - you probably want to track specs"
echo " Remove 'specs/' from .gitignore to track your specifications"
else
echo " specs/ will be tracked (not in .gitignore)"
fi
else
echo "No .gitignore found - creating one"
cat > .gitignore << 'EOF'
# Spectacular parallel execution worktrees
.worktrees/
# Common patterns
node_modules/
.DS_Store
*.log
EOF
echo " Created .gitignore with spectacular patterns"
fi
Validate git setup:
if git rev-parse --git-dir > /dev/null 2>&1; then
echo "Git repository detected"
# Check current branch
CURRENT_BRANCH=$(git branch --show-current)
echo " Current branch: $CURRENT_BRANCH"
# Check if there's a remote
if git remote -v | grep -q .; then
echo " Remote configured"
git remote -v | head -2 | sed 's/^/ /'
else
echo " No remote configured"
echo " You may want to add a remote for PR submission"
fi
# Check working directory status
if git diff --quiet && git diff --cached --quiet; then
echo " Working directory clean"
else
echo " Uncommitted changes present"
fi
else
echo "NOT a git repository"
echo ""
echo "Initialize git with:"
echo " git init"
echo " git add ."
echo " git commit -m 'Initial commit'"
echo ""
NOT_GIT_REPO=true
fi
Check for expected directories:
echo ""
echo "Checking project structure..."
# Check/create specs directory
if [ -d specs ]; then
echo "specs/ directory exists"
SPEC_COUNT=$(find specs -name "spec.md" 2>/dev/null | wc -l | tr -d ' ')
echo " Found $SPEC_COUNT specification(s)"
else
echo "Creating specs/ directory"
mkdir -p specs
echo " Created specs/ directory"
fi
# Check for .worktrees (should NOT exist yet, just checking)
if [ -d .worktrees ]; then
echo ".worktrees/ directory exists"
WORKTREE_COUNT=$(ls -1 .worktrees 2>/dev/null | wc -l | tr -d ' ')
if [ "$WORKTREE_COUNT" -gt 0 ]; then
echo " Contains $WORKTREE_COUNT worktree(s) - may be leftover from previous execution"
echo " Clean up with: git worktree list && git worktree remove <path>"
fi
else
echo "No .worktrees/ directory (will be created during parallel execution)"
fi
Detect whether the workspace is single-repo or multi-repo, and validate per-repo requirements:
echo ""
echo "Detecting workspace mode..."
# Detect workspace mode by looking for multiple .git directories
# In multi-repo setups, there are typically multiple repos in the parent directory
REPO_COUNT=$(find . -maxdepth 2 -name ".git" -type d 2>/dev/null | wc -l | tr -d ' ')
if [ "$REPO_COUNT" -gt 1 ]; then
echo "Multi-repo workspace detected ($REPO_COUNT repos)"
WORKSPACE_MODE="multi-repo"
# List and validate each repo
REPOS=$(find . -maxdepth 2 -name ".git" -type d | xargs -I{} dirname {} | sed 's|^\./||' | sort)
for REPO in $REPOS; do
echo ""
echo "Checking repo: $REPO"
# Check for CLAUDE.md with setup commands
if [ -f "$REPO/CLAUDE.md" ]; then
if grep -q "**install**:" "$REPO/CLAUDE.md"; then
echo " CLAUDE.md with setup commands found"
else
echo " Warning: CLAUDE.md exists but missing setup commands"
echo " Add '**install**: \`your-install-command\`' to $REPO/CLAUDE.md"
fi
else
echo " Warning: No CLAUDE.md found in $REPO"
echo " Create $REPO/CLAUDE.md with setup commands for worktree support"
fi
# Check for constitution (optional)
if [ -d "$REPO/docs/constitutions/current" ]; then
echo " Constitution found"
else
echo " Note: No constitution at docs/constitutions/current/"
fi
done
else
echo "Single-repo mode"
WORKSPACE_MODE="single-repo"
fi
Create workspace-level specs directory (multi-repo only):
if [ "$WORKSPACE_MODE" = "multi-repo" ]; then
echo ""
if [ ! -d "specs" ]; then
echo "Creating specs/ directory at workspace root"
mkdir -p specs
echo " Created specs/ for cross-repo specifications"
else
echo "specs/ directory exists at workspace root"
SPEC_COUNT=$(find specs -name "spec.md" 2>/dev/null | wc -l | tr -d ' ')
echo " Found $SPEC_COUNT specification(s)"
fi
fi
Generate final status report:
echo ""
echo "========================================="
echo "Spectacular Initialization Summary"
echo "========================================="
echo ""
# Report workspace mode
if [ "$WORKSPACE_MODE" = "multi-repo" ]; then
echo "Workspace Mode: Multi-repo"
else
echo "Workspace Mode: Single-repo"
fi
echo ""
# Check if all critical dependencies are met
if [ -z "$SUPERPOWERS_MISSING" ] && [ -z "$GS_MISSING" ] && [ -z "$NOT_GIT_REPO" ]; then
echo "Environment ready for spectacular workflows!"
echo ""
echo "Next steps:"
echo " 1. Generate a spec: /spectacular:spec \"your feature description\""
echo " 2. Create a plan: /spectacular:plan @specs/{run-id}-{feature-slug}/spec.md"
echo " 3. Execute: /spectacular:execute @specs/{run-id}-{feature-slug}/plan.md"
echo ""
if [ -n "$GS_NOT_INITIALIZED" ]; then
echo "Optional: Initialize git-spice with 'gs repo init'"
echo ""
fi
else
echo "Setup incomplete - resolve issues above before using spectacular"
echo ""
if [ -n "$SUPERPOWERS_MISSING" ]; then
echo "REQUIRED: Install superpowers plugin"
echo " /plugin install superpowers@superpowers-marketplace"
echo ""
fi
if [ -n "$GS_MISSING" ]; then
echo "REQUIRED: Install git-spice"
echo " macOS: brew install git-spice"
echo " Linux: https://github.com/abhinav/git-spice"
echo ""
fi
if [ -n "$NOT_GIT_REPO" ]; then
echo "REQUIRED: Initialize git repository"
echo " git init"
echo ""
fi
echo "Run /spectacular:init again after resolving issues"
fi
echo "========================================="
Multi-repo summary addition:
If WORKSPACE_MODE="multi-repo", append additional details:
if [ "$WORKSPACE_MODE" = "multi-repo" ]; then
echo ""
echo "========================================="
echo "Multi-Repo Workspace Summary"
echo "========================================="
echo ""
echo "Workspace root: $(pwd)"
echo "Repos detected: $REPO_COUNT"
echo ""
echo "Per-repo status:"
for REPO in $REPOS; do
CLAUDE_STATUS="missing"
CONST_STATUS="missing"
[ -f "$REPO/CLAUDE.md" ] && CLAUDE_STATUS="present"
[ -d "$REPO/docs/constitutions/current" ] && CONST_STATUS="present"
echo " $REPO: CLAUDE.md=$CLAUDE_STATUS, constitution=$CONST_STATUS"
done
echo ""
echo "Specs location: ./specs/ (workspace root)"
echo ""
echo "Next steps for multi-repo:"
echo " 1. Ensure each repo has CLAUDE.md with setup commands"
echo " 2. Generate a spec: /spectacular:spec \"your feature\""
echo " 3. Spec will be saved to ./specs/{runId}-{feature}/"
echo " 4. Use @repo:path syntax to reference files across repos"
echo ""
echo "========================================="
fi
If superpowers is not installed:
If git-spice is not installed:
If git-spice is installed but not initialized for this repo:
If the current directory is not a git repository:
If .worktrees/ exists with content:
If multiple repositories are detected:
**install**:)docs/constitutions/current/If a repo lacks CLAUDE.md:
If CLAUDE.md exists but lacks setup commands:
**install**: \command``)npx skills add arittr/validating-environment下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer