Add ACE plugin instructions to project CLAUDE.md (one-time setup)
Initialize ACE plugin instructions in your project's CLAUDE.md file for automatic learning cycle support. Run this once per project after configuring ACE server connection.
/plugin marketplace add ce-dot-net/ce-claude-marketplace/plugin install ace@ce-dot-net-marketplaceInitialize ACE plugin instructions in your project's CLAUDE.md file.
Copies the full ACE plugin instructions inline into your project's CLAUDE.md. This ensures Claude always has access to ACE architecture instructions for the automatic learning cycle.
When the user runs /ace-claude-init, follow these steps:
NEW in v3.2.36+: Try the shell script first for token-free, instant execution.
Execute the script:
${CLAUDE_PLUGIN_ROOT}/scripts/ace-claude-init.sh
Check exit code:
Exit 0: Success! Script handled initialization/update
Exit 2: Fallback needed (file has no HTML markers or complex structure)
Exit 1: Error occurred
When script succeeds (exit 0):
When script exits with code 2:
Script Capabilities:
When: Script exits with code 2 AND output contains JSON with "status":"update_available".
What to do:
Parse version info from script output:
{"status":"update_available","current_version":"X.X.X","plugin_version":"Y.Y.Y"}current_version and plugin_versionShow interactive menu using AskUserQuestion:
AskUserQuestion({
questions: [{
question: `Your project has ACE v${current_version}, but plugin is v${plugin_version}. Would you like to update?`,
header: "ACE Update",
multiSelect: false,
options: [
{
label: "Yes, update now",
description: `Update to v${plugin_version} (recommended)`
},
{
label: "Show what changed",
description: "View changelog before deciding"
},
{
label: "No, keep current version",
description: `Stay on v${current_version}`
}
]
}]
})
Handle user selection:
User selected "Yes, update now":
${CLAUDE_PLUGIN_ROOT}/scripts/ace-claude-init.sh --updateUser selected "Show what changed":
${CLAUDE_PLUGIN_ROOT}/scripts/ace-claude-init.sh --show-changesUser selected "No, keep current version":
/ace-claude-init again if you change your mind."Benefits:
Example Flow:
User runs: /ace:ace-claude-init
↓
Script detects: v4.1.12 → v4.1.14
Script outputs: {"status":"update_available","current_version":"4.1.12","plugin_version":"4.1.14"}
Script exits: code 2
↓
Claude shows menu:
[1] Yes, update now
[2] Show what changed ← User selects this
[3] No, keep current
↓
Claude runs: --show-changes
Claude displays:
## [4.1.14] - 2025-01-06
### Fixed
- Missing interactive menu features...
↓
Claude re-shows menu:
[1] Yes, update now ← User selects this
[2] Show what changed
[3] No, keep current
↓
Claude runs: --update
Claude shows: ✅ Updated to v4.1.14
Read the full ACE plugin CLAUDE.md file:
~/.claude/plugins/marketplaces/ce-dot-net-marketplace/plugins/ace/CLAUDE.md
This file contains ~344 lines of ACE architecture documentation (includes v3.2.8 MANDATORY section + trajectory format fix).
Check if CLAUDE.md exists in the project root:
Look for the ACE content marker in the project's CLAUDE.md:
# ACE Orchestration Plugin - Automatic Learning Cycle
If this header already exists:
Detect existing version by searching for version pattern in project CLAUDE.md:
## 🔄 Complete Automatic Learning Cycle (v3.2.36)v([0-9]+\.[0-9]+\.[0-9]+)Read plugin version from the plugin CLAUDE.md file:
Compare versions:
If versions match (up-to-date):
If project version is older than plugin version:
If user confirmed they want to update outdated ACE content:
Find ACE section boundaries in project CLAUDE.md:
<!-- ACE_SECTION_START --> and <!-- ACE_SECTION_END --># ACE Orchestration Plugin - Automatic Learning Cycle# header at the same level (pattern: ^# [^#]) OR end of fileExtract non-ACE content:
Replace ACE section:
Write updated file:
[content before] + [new ACE content] + [content after]Confirm update:
If ACE content is NOT present:
If CLAUDE.md exists:
@ reference syntax# ACE Orchestration Plugin - Automatic Learning CycleIf CLAUDE.md doesn't exist:
After adding:
The full ACE plugin CLAUDE.md content (~344 lines) is copied inline, which contains:
Problem: Skills are model-invoked and load instructions ONLY when triggered. This means:
Solution: Copying ACE instructions inline into project CLAUDE.md provides:
Once initialized, every Claude session will have:
Test it:
/ace:ace-configure - Set up ACE server connection (REQUIRED FIRST!)/ace:ace-status - Check playbook statistics/ace:ace-bootstrap - Bootstrap playbook from git history (optional)/ace:ace-patterns - View learned patterns# 1. Install ACE plugin
# 2. Restart Claude Code
# 3. Configure ACE server connection (REQUIRED!)
/ace:ace-configure
# 4. Initialize ACE in project (one-time)
/ace:ace-claude-init
# 5. Optionally bootstrap from git history
/ace:ace-bootstrap --commits 100 --days 30
# 6. Verify setup
/ace:ace-status
# 7. Start coding - ACE learns automatically!
# "Implement user authentication"
# → ACE Playbook Retrieval skill auto-invokes
# → Claude implements with learned patterns
# → ACE Learning skill captures new insights
If the user wants to remove ACE instructions:
# ACE Orchestration Plugin - Automatic Learning CycleACE skills will still work, but won't have the always-on architectural context.
~/.claude/plugins/marketplaces/ce-dot-net-marketplace/plugins/ace/README.md