# ClaudeForge Testing Scripts
This directory contains validation and rollback scripts for the v2.0.0 migration.
## Scripts
### `validate_migration.sh`
Validates that the ClaudeForge v2.0.0 migration completed successfully.
**Tests:**
1. File existence (skill, command, agent)
2. v2.1.4 syntax validation (`permissions:` fields)
3. Hooks configuration (SessionStart, PreToolUse, PostToolUse)
4. Fork-safe mode enabled
5. Python modules integrity
6. Legacy syntax cleanup
7. Documentation updates
8. Example files unchanged
**Usage:**
```bash
cd /path/to/ClaudeForge
./test/validate_migration.sh
```
**Expected Output:**
```
=== ClaudeForge v2.1.4 Migration Validation ===
Test 1: File Existence
----------------------
✓ Skill file exists
✓ Command file exists
✓ Agent file exists
[... more tests ...]
===================================
Validation Complete
===================================
Passed: 18
Failed: 0
✅ All tests passed! Migration successful.
```
---
### `rollback.sh`
Rolls back ClaudeForge installation from v2.0.0 to v1.0.0 using automatic backups.
**What it does:**
- Searches for timestamped backups created by the installer
- Restores skill, command, and agent from backups
- Provides alternative manual rollback instructions if no backups found
**Usage:**
```bash
cd /path/to/ClaudeForge
./test/rollback.sh
```
**Expected Output:**
```
=== ClaudeForge Rollback to v1.x ===
Searching for skill backup...
Found backup: claudeforge-skill.backup.20260107_120000
✓ Restored skill from: claudeforge-skill.backup.20260107_120000
[... more restorations ...]
====================================
Rollback Summary
====================================
Components restored: 3
✅ Rollback complete!
Next steps:
1. Restart Claude Code
2. Test with: /enhance-claude-md
```
---
## Testing Workflow
### Before Installation
1. **Backup manually** (extra safety):
```bash
cp -r ~/.claude/skills/claudeforge-skill ~/.claude/skills/claudeforge-skill.manual.backup
```
2. **Note your current version**:
```bash
grep "^name:" ~/.claude/skills/claudeforge-skill/SKILL.md
```
### After Installation
1. **Run validation**:
```bash
./test/validate_migration.sh
```
2. **Test functionality**:
```bash
claude
/enhance-claude-md
```
3. **Check hooks** (restart Claude Code first):
- Look for "Guardian: Checking for CLAUDE.md updates..." on startup
### If Something Goes Wrong
1. **Run rollback**:
```bash
./test/rollback.sh
```
2. **Or restore manual backup**:
```bash
rm -rf ~/.claude/skills/claudeforge-skill
cp -r ~/.claude/skills/claudeforge-skill.manual.backup ~/.claude/skills/claudeforge-skill
```
---
## Test Matrix for Installation
| Scenario | Test Steps | Expected Result |
|----------|-----------|-----------------|
| **Fresh Install** | 1. No existing ClaudeForge
2. Run `./install.sh`
3. Validate | All files installed with v2.1.4 syntax |
| **Upgrade from v1.x** | 1. Have v1.x installed
2. Run `./install.sh`
3. Validate | Auto-backup created, v2.0 installed |
| **Version Check** | 1. Claude Code 2.1.4+
2. Run installer | Version detected, no warnings |
| **Version Check** | 1. Claude Code < 2.1.0
2. Run installer | Warning displayed about limited features |
| **Rollback** | 1. Run `./test/rollback.sh`
2. Restart Claude | v1.x restored, no hooks |
---
## Continuous Integration
These test scripts can be integrated into CI/CD:
```yaml
# .github/workflows/validate-migration.yml
name: Validate Migration
on:
push:
branches: [feature/migrate-v2.1.4-architecture]
jobs:
test-migration:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run migration validation
run: |
# Install to temporary location
export HOME=/tmp/test-home
./install.sh <<< "1"
# Run validation
./test/validate_migration.sh
```
---
## Notes
- Test scripts are designed to be idempotent (can run multiple times)
- All scripts exit with proper codes (0 = success, 1 = failure)
- Scripts provide detailed output for debugging
- Compatible with both macOS and Linux