Verify ACE plugin is properly configured and operational
Tests ACE plugin connectivity and configuration. Run this after installing the ACE plugin to verify it's properly set up and ready to use.
/plugin marketplace add ce-dot-net/ce-claude-marketplace/plugin install ace@ce-dot-net-marketplaceVerify that the ACE plugin is properly configured and operational with ace-cli.
Checks if ace-cli is installed
ace-cli command is availableTests ACE server connectivity
ace-cli doctor diagnosticsVerifies hooks configuration
Provides diagnostic information
Simply run:
/ace-test
#!/usr/bin/env bash
set -euo pipefail
echo "š ACE Plugin Test"
echo "āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā"
echo ""
# Test 1: CLI Installation
echo "[1/4] Checking ace-cli installation..."
if command -v ace-cli >/dev/null 2>&1; then
VERSION=$(ace-cli --version 2>&1 | head -1)
echo "ā
ace-cli found: $VERSION"
else
echo "ā ace-cli not found"
echo " Install: npm install -g @ace-sdk/cli"
exit 1
fi
echo ""
# Test 2: Server Connectivity
echo "[2/4] Testing ACE server connectivity..."
export ACE_ORG_ID=$(jq -r '.orgId // .env.ACE_ORG_ID // empty' .claude/settings.json 2>/dev/null || echo "")
export ACE_PROJECT_ID=$(jq -r '.projectId // .env.ACE_PROJECT_ID // empty' .claude/settings.json 2>/dev/null || echo "")
# Try env wrapper format if not found
if [ -z "$ACE_ORG_ID" ] || [ -z "$ACE_PROJECT_ID" ]; then
export ACE_ORG_ID=$(jq -r '.env.ACE_ORG_ID // empty' .claude/settings.json 2>/dev/null || echo "")
export ACE_PROJECT_ID=$(jq -r '.env.ACE_PROJECT_ID // empty' .claude/settings.json 2>/dev/null || echo "")
fi
if [ -z "$ACE_PROJECT_ID" ]; then
echo "ā No project configured"
echo " Run: /ace:ace-configure"
exit 1
fi
# Run doctor command - CLI reads org/project from env vars automatically
# Filter out CLI update notifications (š” lines) that break JSON parsing
RAW_DOCTOR=$(ace-cli doctor --json 2>&1)
DOCTOR_EXIT_CODE=$?
DOCTOR_RESULT=$(echo "$RAW_DOCTOR" | grep -v '^š”' | grep -v '^$')
if [ $DOCTOR_EXIT_CODE -ne 0 ]; then
echo "ā ļø Doctor command failed"
echo "$DOCTOR_RESULT"
fi
# Parse results
PASSED=$(echo "$DOCTOR_RESULT" | jq -r '.summary.passed // 0')
FAILED=$(echo "$DOCTOR_RESULT" | jq -r '.summary.failed // 0')
if [ "$FAILED" -eq 0 ]; then
echo "ā
Server connectivity: $PASSED/$((PASSED + FAILED)) checks passed"
else
echo "ā ļø Server connectivity: $FAILED checks failed"
echo "$DOCTOR_RESULT" | jq -r '.results[] | select(.status != "pass") | " - \(.check): \(.message)"'
fi
echo ""
# Test 3: Hooks Configuration
echo "[3/4] Checking hooks configuration..."
PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/ce-dot-net-marketplace/plugins/ace"
# Check hook wrappers
HOOKS_FOUND=0
if [ -f "$PLUGIN_DIR/scripts/ace_before_task_wrapper.sh" ]; then
HOOKS_FOUND=$((HOOKS_FOUND + 1))
fi
if [ -f "$PLUGIN_DIR/scripts/ace_after_task_wrapper.sh" ]; then
HOOKS_FOUND=$((HOOKS_FOUND + 1))
fi
if [ "$HOOKS_FOUND" -eq 2 ]; then
echo "ā
Hook wrappers: 2/2 found"
else
echo "ā ļø Hook wrappers: $HOOKS_FOUND/2 found"
fi
# Check hooks.json
if [ -f "$PLUGIN_DIR/hooks/hooks.json" ]; then
HOOK_COUNT=$(jq -r '.hooks | length' "$PLUGIN_DIR/hooks/hooks.json")
echo "ā
hooks.json: $HOOK_COUNT hooks registered"
else
echo "ā hooks.json not found"
fi
echo ""
# Test 4: Basic Operations
echo "[4/4] Testing basic ACE operations..."
# Test status command - CLI reads org/project from env vars automatically
# Filter out CLI update notifications (š” lines) that break JSON parsing
RAW_STATUS=$(ace-cli status --json 2>&1)
STATUS_EXIT_CODE=$?
STATUS_RESULT=$(echo "$RAW_STATUS" | grep -v '^š”' | grep -v '^$')
if [ $STATUS_EXIT_CODE -ne 0 ]; then
echo "ā ļø Status command failed"
echo "$STATUS_RESULT"
fi
TOTAL_BULLETS=$(echo "$STATUS_RESULT" | jq -r '.total_bullets // 0')
echo "ā
Status command: Playbook has $TOTAL_BULLETS patterns"
echo ""
echo "āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā"
echo "ā
All tests passed!"
echo ""
echo "Next steps:"
echo " - Bootstrap playbook: /ace:ace-bootstrap"
echo " - Search patterns: /ace:ace-search <query>"
echo " - Capture learning: /ace:ace-learn"
Error Handling:
CLI Not Found
ā ace-cli not found
ā Install: npm install -g @ace-sdk/cli
Server Connection Failed
ā ļø Server connectivity: checks failed
ā Run: /ace:ace-doctor for detailed diagnostics
ā Or: /ace:ace-configure to reconfigure
Timeout
Error: Request timeout
ā Network issues or server overloaded
ā Action: Retry with exponential backoff
ā Fallback: Check ~/.config/ace/config.json for correct serverUrl
Authentication Failed
Error: 401 Unauthorized
ā Invalid or missing API token
ā Action: Run /ace:ace-configure to set up credentials
ā Fallback: Check ~/.config/ace/config.json for valid apiToken
Invalid Project
Error: 404 Project not found
ā Project ID doesn't exist
ā Action: Verify projectId in .claude/settings.json
ā Fallback: Create new project or use existing one
Server Error
Error: 500 Internal Server Error
ā ACE server malfunction
ā Action: Check server logs
ā Fallback: Restart ACE server
Malformed Response
Error: Invalid JSON response
ā Server returned unexpected format
ā Action: Log raw response for debugging
ā Fallback: Check server version compatibility
Missing Configuration
Error: Config file not found
ā ~/.config/ace/config.json or .claude/settings.json missing
ā Action: Run /ace:ace-configure to create config files
ā Fallback: Provide default configuration template
All ACE operations use ace-cli:
Core Commands:
ace-cli status - Get playbook statisticsace-cli patterns - View playbook patternsace-cli search --stdin - Search for patternsace-cli learn - Capture learning (via /ace:ace-learn)ace-cli bootstrap - Initialize from codebaseace-cli clear - Clear playbookace-cli export - Export playbook to JSONace-cli import - Import playbook from JSONace-cli top - Get top-rated patternsace-cli doctor - Run diagnosticsace-cli config - Manage configurationError Handling:
CLI Not Found
Error: ace-cli command not found
ā ace-cli not installed
ā Action: npm install -g @ace-sdk/cli
ā Fallback: Check npm global bin is in PATH
Tool Execution Failed
Error: Tool execution error
ā Tool exists but fails on invocation
ā Action: Check tool parameters and server logs
ā Fallback: Try with minimal parameters or default values
Partial Setup
Warning: Some ACE components missing
ā Incomplete plugin installation
ā Action: Check hook wrappers and scripts exist
ā Fallback: Reinstall plugin from marketplace
Display the current ACE configuration:
~/.config/ace/config.json or environment).claude/settings.json)Error Handling:
Configuration File Read Error
Error: Cannot read ~/.config/ace/config.json or .claude/settings.json
ā Permission denied or file corrupted
ā Action: Check file permissions (global config should be 600)
ā Fallback: Recreate config with /ace:ace-configure
Invalid JSON in Config
Error: Malformed configuration file
ā JSON parse error
ā Action: Show line/column of error
ā Fallback: Backup corrupted file, create new config
Missing Required Fields
Warning: Configuration incomplete
ā serverUrl, apiToken, or projectId missing
ā Action: List missing fields
ā Fallback: Run /ace:ace-configure to complete setup
Invalid URL Format
Error: Invalid serverUrl format
ā URL doesn't match expected pattern
ā Action: Suggest correct format (e.g., https://ace-api.code-engine.app)
ā Fallback: Provide default URL options
ā
ACE Agent Skill Status
Agent Skill: ace:ace-learning
Status: ā
LOADED
Description: Learn from execution feedback and update ACE playbook
ACE Server Connection:
Status: ā
CONNECTED
Server: https://ace-api.code-engine.app
Project ID: prj_xxxxx
Playbook Statistics:
Total Bullets: 42
- Strategies & Rules: 10
- Code Snippets: 15
- Troubleshooting: 12
- API Patterns: 5
Average Confidence: 78%
Available ACE Tools:
ā
ace_learn - Core learning function
ā
ace_status - Get playbook stats
ā
ace_get_playbook - View playbook
ā
ace_clear - Clear playbook
ā
ace_init - Initialize from git
ā
ace_save_config - Save configuration
Configuration:
Learning Mode: Automatic (hook-based)
Plugin Version: 5.0.0
Config Files:
- Global: ~/.config/ace/config.json (serverUrl, apiToken, cacheTtl)
- Project: .claude/settings.json (projectId, orgId)
šÆ Everything looks good! ACE automatic learning is ready.
ā ACE Agent Skill Status
Agent Skill: ace:ace-learning
Status: ā NOT FOUND
The ACE Agent Skill is not loaded. Possible causes:
1. Plugin not installed in ~/.claude/plugins/marketplaces/ce-dot-net-marketplace/plugins/ace/
2. Skill file missing or misconfigured
3. Claude Code plugin system not initialized
Troubleshooting Steps:
1. Check plugin installation: ls ~/.claude/plugins/marketplaces/ce-dot-net-marketplace/plugins/ace/
2. Verify skill configuration in plugin.json
3. Restart Claude Code CLI
4. Check Claude Code logs for plugin loading errors
Symptom: ace-cli commands return connection error or authentication failed Solution:
/ace:ace-configure to set up connection~/.config/ace/config.json is correctSymptom: ace_status shows 0 total bullets Solution: This is normal for new installations. Bullets accumulate as you work:
Symptom: Skill exists but never invokes automatically Solution:
Skill(ace:ace-learning) after completing work/ace:ace-status - View playbook statistics/ace:ace-patterns - View learned patterns/ace:ace-configure - Configure ACE server connection/ace:ace-bootstrap - Initialize playbook from codebaseAgent Skill Trigger Conditions: The skill automatically triggers after:
Not triggered for:
Learning Pipeline:
Work Completed ā Agent Skill Triggers ā ace_learn Called ā
Reflector Analyzes ā Curator Creates Updates ā Playbook Updated
Note: This is a diagnostic command. It doesn't modify your playbook or configuration.