logic-engine / ace /steps /persist.py
ghostdrive1's picture
Upload folder using huggingface_hub
116524e verified
Raw
History Blame Contribute Delete
1.03 kB
"""PersistStep — writes the skillbook to an external file."""
from __future__ import annotations
from pathlib import Path
from ..core.skillbook import Skillbook
from ..core.context import ACEStepContext
class PersistStep:
"""Write the current skillbook to a target file after each sample.
Integration-specific side-effect step — used by ClaudeCodeACE to
persist learned strategies into the project's CLAUDE.md.
Unlike CheckpointStep (which saves full JSON at intervals), PersistStep
runs on every sample and writes in whatever format the target expects.
"""
requires: frozenset[str] = frozenset({"skillbook"})
provides: frozenset[str] = frozenset()
def __init__(self, target_path: str | Path, skillbook: Skillbook) -> None:
self.target_path = Path(target_path)
self.skillbook = skillbook
def __call__(self, ctx: ACEStepContext) -> ACEStepContext:
self.skillbook.save_to_file(str(self.target_path))
return ctx