State persistence for autonomous coding. Use when saving progress, loading state, tracking features, managing checkpoints, or persisting data across sessions.
Resources
1Install
npx skillscat add adaptationio/skrillz/ac-state-tracker Install via the SkillsCat registry.
This skill provides persistent state management for autonomous coding agents, maintaining feature tracking, execution state, and checkpoint data across sessions. It solves the problem of losing progress when agents restart or hand off tasks by saving and loading state from structured JSON files. Developers should use it when building systems that require cross-session continuity, progress tracking, or checkpoint-based rollback capabilities.
AC State Tracker
Persistent state management for cross-session autonomous coding.
Overview
Maintains all state across sessions:
- Feature list tracking (passes: false → true)
- Execution state (iteration, cost, status)
- Progress logging
- Handoff packages
- Checkpoint management
Quick Start
Initialize State Tracker
from scripts.state_tracker import StateTracker
state = StateTracker(project_dir)
await state.initialize()Save/Load State
# Save current state
await state.save()
# Load state from files
current_state = await state.load()Update Feature Status
# Mark feature as passing (IMMUTABLE: false → true only!)
await state.update_feature("auth-001", passes=True)State Files
Primary State Files
project/
├── feature_list.json # Feature tracking (immutable passes)
├── claude-progress.txt # Human-readable log
└── .claude/
├── master-state.json # Orchestrator state
├── autonomous-state.json # Execution state
├── autonomous-log.jsonl # Activity log
├── handoffs/
│ └── current.json # Mid-session handoff
└── checkpoints/
└── checkpoint-*.json # Rollback pointsfeature_list.json Schema
{
"features": [
{
"id": "auth-001",
"description": "User registration endpoint",
"category": "authentication",
"status": "completed",
"passes": true,
"test_cases": [
"User can register with email",
"Validation errors shown"
],
"dependencies": [],
"estimated_effort": "4h",
"actual_effort": "2.5h",
"started_at": "2025-01-15T10:00:00Z",
"completed_at": "2025-01-15T12:30:00Z"
}
],
"total": 50,
"completed": 25,
"in_progress": 1,
"blocked": 0
}CRITICAL RULE: Features can ONLY transition passes: false → true. Never delete or edit features - this prevents the agent from "solving" by removing tasks.
autonomous-state.json Schema
{
"session_id": "session-20250115-100000",
"iteration": 12,
"status": "running",
"estimated_cost": 4.23,
"consecutive_failures": 0,
"current_feature": "auth-002",
"last_task": "Implement login endpoint",
"started_at": "2025-01-15T10:00:00Z",
"context_usage": 0.45
}master-state.json Schema
{
"project_id": "my-project",
"objective": "Build chat application",
"sessions_used": 5,
"total_features": 50,
"features_completed": 25,
"current_phase": "implementation",
"last_handoff": "2025-01-15T12:00:00Z"
}Operations
1. Initialize State
state = StateTracker(project_dir)
await state.initialize()
# Creates default files if not exist
# Loads existing state if present2. Update Feature
# Mark feature complete
await state.update_feature(
feature_id="auth-001",
passes=True,
actual_effort="2.5h"
)
# Mark feature in progress
await state.update_feature(
feature_id="auth-002",
status="in_progress"
)3. Create Checkpoint
checkpoint = await state.create_checkpoint(
name="before-refactor",
git_commit=True
)
# Returns checkpoint ID for rollback4. Restore Checkpoint
await state.restore_checkpoint("checkpoint-20250115-100000")
# Restores feature_list.json and git state5. Log Activity
await state.log_activity(
action="CONTINUE",
details="Implementing login endpoint",
iteration=12
)
# Appends to autonomous-log.jsonl6. Save Handoff
await state.save_handoff({
"current_feature": "auth-002",
"context_summary": "Completed auth, starting profile...",
"next_action": "Implement profile page"
})7. Get Progress Summary
progress = await state.get_progress()
# Returns:
# completed: 25
# total: 50
# percentage: 50%
# current_feature: "auth-002"
# estimated_remaining: "4 hours"Progress File Format
claude-progress.txt
=== AUTONOMOUS CODING SESSION ===
Project: my-project
Started: 2025-01-15 10:00:00
Sessions: 5
=== PROGRESS ===
[25/50] 50% complete
=== CURRENT FEATURE ===
auth-002: Login with JWT
=== COMPLETED THIS SESSION ===
- auth-001: User registration [PASS]
- auth-002: Login endpoint [IN PROGRESS]
=== BLOCKERS ===
None
=== LAST UPDATED ===
2025-01-15 12:30:00Integration Points
- ac-config-manager: Loads paths configuration
- ac-session-manager: Triggers state save/load
- ac-autonomous-loop: Updates feature status
- ac-checkpoint-manager: Creates/restores checkpoints
- ac-handoff-coordinator: Manages handoff packages
References
references/STATE-SCHEMA.md- Complete state schemasreferences/FEATURE-LIFECYCLE.md- Feature state machine
Scripts
scripts/state_tracker.py- Core StateTracker classscripts/feature_manager.py- Feature list operationsscripts/checkpoint_store.py- Checkpoint storagescripts/progress_logger.py- Progress file generation