test-repo

star 4.5k

Use this skill to test strategy changes against a fresh test repository. Invoke when the user asks to "test against a test repo", "validate the changes", or wants to verify session hooks, commits, and rewind functionality work correctly.

entireio By entireio schedule Updated 2/25/2026

name: test-repo description: Use this skill to test strategy changes against a fresh test repository. Invoke when the user asks to "test against a test repo", "validate the changes", or wants to verify session hooks, commits, and rewind functionality work correctly.

Test Repository Skill

This skill validates the CLI's session management and rewind functionality by running an end-to-end test against a fresh temporary repository.

When to Use

  • User asks to "test against a test repo"
  • User wants to validate strategy changes (manual-commit)
  • User asks to verify session hooks, commits, or rewind functionality
  • After making changes to strategy code

Testing Approaches

Automated Testing (recommended for validation):

mise run test:integration

Run the comprehensive integration test suite. Best for verifying correctness after code changes.

Manual Testing (this skill): Use the test harness for:

  • Debugging specific strategy behaviors
  • Interactive exploration of checkpoint/rewind workflow
  • Manual verification of edge cases
  • Understanding how the system works step-by-step

Test Procedure

Setup

Step 1: Build the CLI

go build -o /tmp/entire-bin ./cmd/entire

Step 2: Approve the test harness (one-time)

Add this pattern to your Claude Code approved commands, or approve it once when prompted:

{
  "approvedBashCommands": [
    ".claude/skills/test-repo/test-harness.sh*"
  ]
}

Optional: Set strategy (defaults to manual-commit):

export STRATEGY=manual-commit

Test Steps

Execute these steps in order:

1. Setup Test Environment

.claude/skills/test-repo/test-harness.sh setup-repo
.claude/skills/test-repo/test-harness.sh configure-strategy

2. Simulate Session

.claude/skills/test-repo/test-harness.sh start-session
.claude/skills/test-repo/test-harness.sh create-files
.claude/skills/test-repo/test-harness.sh create-transcript
.claude/skills/test-repo/test-harness.sh stop-session

3. Verify Results

.claude/skills/test-repo/test-harness.sh verify-commit
.claude/skills/test-repo/test-harness.sh verify-session-state
.claude/skills/test-repo/test-harness.sh verify-shadow-branch
.claude/skills/test-repo/test-harness.sh verify-metadata-branch
.claude/skills/test-repo/test-harness.sh list-rewind-points

Expected results:

Check Result
Active branch Optional Entire-Checkpoint: trailer
Session state ✓ Exists
Shadow branch ✓ entire/{hash}
Metadata branch ✓ entire/checkpoints/v1
Rewind points ✓ At least 1

4. Test Rewind

.claude/skills/test-repo/test-harness.sh create-changes
.claude/skills/test-repo/test-harness.sh list-rewind-points  # Get checkpoint ID from output
.claude/skills/test-repo/test-harness.sh rewind <checkpoint-id>
.claude/skills/test-repo/test-harness.sh verify-rewind

Expected Behavior:

  • Shows warning listing untracked files that will be deleted (files created after the checkpoint that weren't present at session start)

Example warning output (manual-commit):

Warning: The following untracked files will be DELETED:
  - extra.js

5. Cleanup

.claude/skills/test-repo/test-harness.sh cleanup

Quick Commands

Show environment info:

.claude/skills/test-repo/test-harness.sh info

Run full test in one go:

go build -o /tmp/entire-bin ./cmd/entire && \
.claude/skills/test-repo/test-harness.sh setup-repo && \
.claude/skills/test-repo/test-harness.sh configure-strategy && \
.claude/skills/test-repo/test-harness.sh start-session && \
.claude/skills/test-repo/test-harness.sh create-files && \
.claude/skills/test-repo/test-harness.sh create-transcript && \
.claude/skills/test-repo/test-harness.sh stop-session && \
.claude/skills/test-repo/test-harness.sh verify-metadata-branch && \
.claude/skills/test-repo/test-harness.sh list-rewind-points

Expected Results by Strategy

Manual-Commit Strategy (default)

  • Active branch commits: NO modifications (no commits created by Entire)
  • Shadow branches: entire/<commit-hash[:7]> created for checkpoints
  • Metadata: stored on both shadow branches and entire/checkpoints/v1 branch (condensed on user commits)
  • Rewind: restores files from shadow branch commit tree (no git reset)
    • Shows preview warning listing untracked files that will be deleted
    • Preserves untracked files that existed at session start
  • AllowsMainBranch: true (safe on main/master)

Additional Testing (Optional)

Test Subagent Checkpoints

For testing task checkpoints (subagent execution):

# After user-prompt-submit, simulate a task execution
TOOL_USE_ID="toolu_test123"

# Pre-task hook (before subagent starts)
echo "{\"session_id\": \"$SESSION_ID\", \"transcript_path\": \"$TRANSCRIPT_DIR/transcript.jsonl\", \"tool_use_id\": \"$TOOL_USE_ID\", \"tool_input\": {\"subagent_type\": \"dev\", \"description\": \"Test task\"}}" | \
  ENTIRE_TEST_CLAUDE_PROJECT_DIR="$TRANSCRIPT_DIR" \
  /tmp/entire-bin hooks claude-code pre-task

# Create subagent transcript
mkdir -p "$TRANSCRIPT_DIR/tasks/$TOOL_USE_ID"
echo '{"type":"human","message":{"content":"Test task"}}' > "$TRANSCRIPT_DIR/tasks/$TOOL_USE_ID/agent-test.jsonl"

# Post-task hook (after subagent completes)
echo "{\"session_id\": \"$SESSION_ID\", \"transcript_path\": \"$TRANSCRIPT_DIR/transcript.jsonl\", \"tool_use_id\": \"$TOOL_USE_ID\", \"tool_response\": {\"agentId\": \"test-agent\"}}" | \
  ENTIRE_TEST_CLAUDE_PROJECT_DIR="$TRANSCRIPT_DIR" \
  /tmp/entire-bin hooks claude-code post-task

# Verify task checkpoint created
/tmp/entire-bin rewind --list | jq '.[] | select(.is_task_checkpoint == true)'

Test User Commits (Condensation)

For manual-commit, test log condensation:

# Create a user commit (triggers post-commit hook)
git add app.js
git commit -m "Add greeting function"

# Verify logs condensed to entire/checkpoints/v1
git show entire/checkpoints/v1 --stat | grep -E "^[0-9a-f]{2}/[0-9a-f]"

# Verify shadow branch still exists
git branch -a | grep "entire/[0-9a-f]"

Available Claude Code Hooks

All hooks use the command: entire hooks claude-code <hook-name>

  • user-prompt-submit - Called when user submits a prompt (before session starts)
  • session-start - Called when session starts
  • stop - Called when session stops (creates checkpoint)
  • pre-task - Called before Task tool execution
  • post-task - Called after Task tool execution
  • post-todo - Called after TodoWrite tool execution (for incremental checkpoints)

Report Format

After running the test, report:

## Test Results: [STRATEGY] Strategy

| Step | Result |
|------|--------|
| Build CLI | PASS/FAIL |
| Create repo | PASS/FAIL |
| Session hooks | PASS/FAIL |
| Clean commits | PASS/FAIL |
| Metadata branch | PASS/FAIL |
| Rewind points | PASS/FAIL |
| Rewind restore | PASS/FAIL |

**Overall: PASS/FAIL**

[Any errors or notes]
Install via CLI
npx skills add https://github.com/entireio/cli --skill test-repo
Repository Details
star Stars 4,510
call_split Forks 346
navigation Branch main
article Path SKILL.md
More from Creator