Migration Guide
This guide covers migrating between agentful configurations, adding/removing components, and updating your installation.
Overview
agentful supports three migration scenarios:
- Switching Configurations - Move between default, minimal, or custom setups
- Adding Components - Expand your configuration with new agents, skills, or hooks
- Removing Components - Simplify by removing unused features
All migrations use the /agentful-update command, which intelligently merges changes while preserving your customizations.
The Update Command
The /agentful-update command is your primary migration tool:
claude
/agentful-updateWhat it does:
- Fetches latest templates from your agentful version
- Performs 3-way merge (your changes + new templates + base)
- Creates automatic backups in
.claude/backups/ - Preserves customizations to agent files
- Reports conflicts for manual resolution
When to use:
- Switching between configurations (default, minimal, custom)
- Adding new components
- Updating to latest agentful version
- Fixing corrupted configuration
Never use:
npx @itz4blitz/agentful initafter initial installation (overwrites everything)
Switching Between Configurations
From Minimal to Default
Scenario: You started with a minimal backend API and now need full capabilities.
Before (Minimal):
- 2 agents (orchestrator, backend)
- 1 skill (validation)
- 0 hooks
- 2 quality gates (types, tests)
After (Default):
- 8 agents (orchestrator, architect, backend, frontend, tester, reviewer, fixer, product-analyzer)
- 6 skills (product-tracking, validation, testing, conversation, product-planning, deployment)
- Hooks (health-check, configurable)
- 6 quality gates (types, tests, coverage, lint, security, dead-code)
Migration:
claude
/agentful-updateWhat happens:
- Adds 6 new agents (architect, frontend, tester, reviewer, fixer, product-analyzer)
- Adds 5 new skills (product-tracking, testing, conversation, product-planning, deployment)
- Adds lifecycle hooks to
.claude/settings.json - Enables 4 additional quality gates (coverage, lint, security, dead-code)
- Preserves any customizations to orchestrator and backend agents
Expected output:
Updating agentful configuration...
✓ Backed up to .claude/backups/2026-01-21-123456/
✓ Added agents: architect, frontend, tester, reviewer, fixer, product-analyzer
✓ Added skills: product-tracking, testing, conversation, product-planning, deployment
✓ Updated settings.json with lifecycle hooks
✓ Preserved customizations in orchestrator.md, backend.md
✓ Migration completeFrom Default to Minimal
Scenario: You want to simplify to a minimal configuration.
Migration:
claude
/agentful-update --preset=minimalWarning: This removes components. Confirm before proceeding.
What happens:
- Removes 6 agents (keeps orchestrator, backend only)
- Removes 5 skills (keeps validation only)
- Removes all lifecycle hooks
- Disables 4 quality gates (keeps types, tests only)
- Moves removed files to
.claude/backups/
Recommendation: Consider custom configuration instead:
/agentful-update \
--agents=orchestrator,backend,tester \
--skills=validation,testingThis keeps tester agent for quality assurance.
Adding Components
Adding a Single Agent
Scenario: Add the tester agent to minimal preset.
Command:
/agentful-update --agents=orchestrator,backend,testerManual alternative:
- Copy
tester.mdfrom agentful template to.claude/agents/ - Verify it references your project's testing framework
Adding Multiple Agents
Scenario: Add frontend and tester to backend-only setup.
Command:
/agentful-update --agents=orchestrator,backend,frontend,testerAdding Skills
Scenario: Add product-tracking skill to monitor progress.
Command:
/agentful-update --skills=validation,product-trackingWhat happens:
- Copies
.claude/skills/product-tracking/directory - Agents can now use
@product-trackingskill
Adding Lifecycle Hooks
Scenario: Add health check on session start.
Command:
/agentful-update --hooks=health-checkWhat happens:
- Updates
.claude/settings.json:
{
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "node bin/hooks/health-check.js",
"timeout": 5,
"description": "Quick agentful health check"
}
]
}
]
}- Copies
bin/hooks/health-check.jsto your project
Adding Quality Gates
Scenario: Enable security scanning.
Command:
/agentful-update --gates=types,tests,coverage,lint,securityWhat happens:
- Updates validation skill to check for vulnerabilities
- Reviewer agent now scans dependencies
- Blocks feature completion if vulnerabilities found
Removing Components
Removing an Agent
Manual approach (safest):
# Remove agent file
rm .claude/agents/product-analyzer.md
# Verify no references
grep -r "product-analyzer" .claude/Update command approach:
# Specify agents to keep (omit ones to remove)
/agentful-update --agents=orchestrator,backend,frontend,tester,reviewer,fixerThis removes all agents not in the list.
Removing a Skill
Manual approach:
# Remove skill directory
rm -rf .claude/skills/deployment/
# Check for usage
grep -r "@deployment" .claude/agents/Removing Lifecycle Hooks
Edit .claude/settings.json directly:
Remove the hook from the appropriate event section:
{
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
// Remove this hook
// {
// "type": "command",
// "command": "npx prettier --write \"$FILE\" 2>/dev/null || true",
// "description": "Auto-format files on save"
// }
]
}
]
}Removing Quality Gates
Update validation skill in .claude/skills/validation/rules.md:
Comment out or remove gates you don't need:
## Quality Gates
- Type checking
- Tests
- Coverage
- Lint
<!-- Disabled for performance
- Security
- Dead code
-->Updating to Latest Version
Update agentful Package
# Check current version
cat package.json | grep agentful
# Update to latest
npm install @itz4blitz/agentful@latestUpdate Configuration
After updating the package:
claude
/agentful-updateThis syncs your configuration with the latest templates.
What gets updated:
- Agent definitions (core agents only, custom agents preserved)
- Skill modules (new features added)
- Command scripts (bug fixes, improvements)
- Settings templates (new lifecycle hooks)
What's preserved:
- Your customizations to core agents
- Custom agents in
.claude/agents/ - Product specification in
.claude/product/ - Runtime state in
.agentful/
Handling Conflicts
When migrations cause conflicts, /agentful-update reports them:
⚠ Conflicts detected:
- .claude/agents/backend.md (modified by you and upstream)
- .claude/settings.json (hook collision)
Options:
1. Keep your version
2. Use upstream version
3. Merge manuallyManual Merge Process
- View diff:
diff .claude/agents/backend.md .claude/backups/latest/backend.md-
Choose merge strategy:
- Keep yours:
cp .claude/backups/latest/backend.md.yours .claude/agents/backend.md - Use upstream: Do nothing (already applied)
- Manual merge: Edit
.claude/agents/backend.mdby hand
- Keep yours:
-
Verify:
claude
# Test that agent works correctlyCustom Configuration
Build a completely custom configuration:
/agentful-update \
--agents=orchestrator,backend,frontend,tester \
--skills=validation,testing,product-tracking \
--hooks=health-check,typescript-validation \
--gates=types,tests,coverage,lintThis applies exactly what you specify, regardless of default or minimal presets.
Use cases:
- Unique project requirements
- Fine-tuned component selection
- Experimental configurations
- Performance optimization
Backward Compatibility
Will old configurations still work?
Yes. agentful maintains backward compatibility across minor versions.
Guaranteed compatible:
1.0.0→1.x.x(minor updates)- Agent file formats
- Command interfaces
- State file schemas
May require migration:
1.x.x→2.0.0(major version)- Breaking changes announced in release notes
- Migration guide provided
What if I don't update?
Your installation continues working with your current agentful version. Updates are optional but recommended for:
- Bug fixes
- New features
- Security patches
- Performance improvements
Rollback
Rollback to Previous Configuration
If an update causes issues:
Option 1: Restore from backup# List backups
ls -la .claude/backups/
# Restore from backup
cp -r .claude/backups/2026-01-21-123456/* .claude/git checkout .claude/
git checkout .agentful/# Remove current
rm -rf .claude/
# Reinstall (default or minimal)
npx @itz4blitz/agentful init
# Or
npx @itz4blitz/agentful init --preset=minimalRollback to Previous agentful Version
# Check current version
npm list @itz4blitz/agentful
# Install specific version
npm install @itz4blitz/agentful@1.0.0
# Update configuration to match
claude
/agentful-updateBest Practices
Before Migration
- Commit your work:
git add .
git commit -m "Pre-migration checkpoint"- Verify current state:
cat .agentful/state.json
# Ensure no active work- Backup manually (optional):
cp -r .claude .claude.backup-$(date +%s)During Migration
- Review changes:
# After /agentful-update, review what changed
git diff .claude/- Test immediately:
# Run a simple command to verify
/agentful-status- Check for conflicts:
# Look for conflict markers
grep -r "<<<<<<" .claude/After Migration
- Validate setup:
# Run health check
/agentful-validate- Update product spec if needed:
# If tech stack changed, update
vim .claude/product/index.md- Document changes:
git add .claude/
git commit -m "Update agentful configuration"Troubleshooting
Update command not found
Problem: /agentful-update doesn't exist
Solution:
- Verify agentful version:
npm list @itz4blitz/agentful - Update package:
npm install @itz4blitz/agentful@latest - Check command exists:
ls .claude/commands/agentful-update.md
Backups not created
Problem: No backups in .claude/backups/
Solution:
- Manually backup:
cp -r .claude .claude.backup - Check disk space:
df -h - Verify permissions:
ls -la .claude/
Conflicts every time
Problem: Every update causes merge conflicts
Solution:
- Stop modifying core agent files directly
- Use custom agents instead: create
.claude/agents/my-custom-backend.md - Or accept upstream changes and reapply customizations
Migration broke my setup
Problem: Agents don't work after migration
Solution:
- Restore from backup:
cp -r .claude/backups/latest/* .claude/ - Check
.agentful/state.jsonfor corruption - Validate with:
/agentful-validate - If unsure, fresh install:
rm -rf .claude && npx @itz4blitz/agentful init --preset=<name>
FAQ
Can I migrate without losing my work?
Yes. /agentful-update preserves your customizations and runtime state. Product specifications in .claude/product/ are never touched.
How often should I update?
When new agentful versions are released or when you need new features. No required schedule.
What if I customized core agents?
/agentful-update attempts a 3-way merge. You may need to manually resolve conflicts.
Can I undo a migration?
Yes, restore from .claude/backups/ or use git to revert changes.
Do I need to restart Claude after migration?
Yes, restart to load updated configuration:
# Exit Claude, then restart
claudeWill migration affect my source code?
No. Migrations only change .claude/ configuration, never your source code.
Can I migrate between different tech stacks?
Yes, but you'll need to manually convert your source code (e.g., JavaScript to TypeScript).
Next Steps
Installation Options
Learn about default vs minimal installation Installation Options Guide
Configuration
Customize your setup Configuration Guide
Quick Reference
Primary Command:
/agentful-update --preset=<name>Custom Configuration:
/agentful-update \
--agents=<list> \
--skills=<list> \
--hooks=<list> \
--gates=<list>Rollback:
cp -r .claude/backups/latest/* .claude/Clean Install:
rm -rf .claude
npx @itz4blitz/agentful init