Skip to content

v0.6.0: Capture-time guardrails

Choose a tag to compare

@jarmstrong158 jarmstrong158 released this 03 Jul 01:21

Scoped constraint injection

New hooks/scope_guard.py (PostToolUse on Edit|Write|NotebookEdit): the moment the agent edits a file covered by a constraint's scope, that constraint is injected into context via additionalContext. Session-start injection briefs the rules once at turn one; this enforces them at the exact moment they are about to matter. Each constraint fires at most once per session (state in .context/scope_guard_state.json). Constraints scoped global never fire here.

Similar-entry surfacing at record time

record_* now compares the new entry against all active entries (word-set Jaccard, threshold configurable via similar_threshold, default 0.30) and returns similar_entries + resolution guidance when existing entries overlap heavily -- catching restatements and contradictions at capture instead of relying on MMR to mitigate duplicates at retrieval. Advisory only: the write always proceeds, and related_to-linked entries are exempt. CLAUDE.md documents the resolution protocol (deprecate restatements, supersede contradictions, link the genuinely distinct).

112 tests passing (9 new, including subprocess tests that exercise the hook end to end).