On this page
Features
firing-log: record which anchor kinds matched each scar (#335 ) (#339 ) (aa6b719 )
lint: warn on a violation that cannot arm, dead candidate anchors, and broad patterns (#325 ) (#328 ) (b3b3224 )
render: header names the pre-cap total when the cap cut scars (#322 ) (fc3754b )
sweep: run every armed violation over the whole tree and report live hits (#326 ) (#329 ) (ecbd159 )
Bug Fixes
lint: report duplicate scar ids, and stop the matcher dropping one (#327 ) (210f4c7 )
match: symbol anchor is a content signal only when the edit mentions the symbol (#338 ) (0a1aac6 )
orphan: count symbol anchors in orphan detection and report one that no longer resolves (#337 ) (#342 ) (321f9de )
Documentation
anchors: say path anchors are prefixes, and teach the skill when to use symbol anchors (#340 ) (7babb9f )
Features
firing-log: one shared validated reader for the firing log (#313 ) (d316922 )
skill: install the authoring skill to every detected host (#320 ) (1d9c985 )
Bug Fixes
promote: record whether a promotion happened at a terminal (#315 ) (f28e8eb ), closes #308
⚠ BREAKING CHANGES
install: with no --runtime, no terminal, and more than one detected host, scar hook install and scar skill install write nothing and print the commands to run instead of installing Claude Code by default.
Features
install: detect installed hosts and the channel that already serves each (#304 ) (180cf6f )
Features
lint: escalate a chronically-firing scar into an explicit review flag (#276 ) (e26884b )
promote: record whether promoted_by was typed or read from git config (#298 ) (bcdc4d7 )
reanchor: record an applied rewrite as an evidence note on the scar (#299 ) (2aa1d12 )
stats: record blocking capability on the firing row (#281 ) (a341b48 )
stats: record context size on the firing row (#283 ) (99ba9c3 )
stats: record the match census before top_k truncates it (#289 ) (715e42c )
Bug Fixes
hooks: Codex and Windsurf posttool record a clean verdict too (#297 ) (823af3c ), closes #293
promote: record who vouched in its own field, not inside authors (#290 ) (d1e649a ), closes #287
stats: make a dead posttool hook distinguishable from compliance (#280 ) (13f0b6a )
stats: record why a scar was demoted, not just that it was (#288 ) (d6dafba ), closes #284
stats: stop counting a command firing as an observed edit (#300 ) (7abeeed ), closes #294
Documentation
format: update the stale veritrail link to vitni (#269 ) (a842449 ), closes #268
stats: state that the armed-window number needs git archaeology (#291 ) (4097081 ), closes #285
Features
stats: add --since/--until so a window is a first-class operation (#263 ) (f1b262b ), closes #258
stats: record which fired scars were violation-armed (#267 ) (206d6af ), closes #266
Bug Fixes
codex: let the duplicate-channel warning be silenced (#253 ) (e060656 ), closes #252
match: scan whole file bodies for pattern liveness (#262 ) (fe177ca ), closes #259
stats: report the applied window in the --all-repos payload (#265 ) (b0e8c1f ), closes #264
Documentation
spec: publish a stability contract for the nine --json payloads (#257 ) (c3e5c1b ), closes #255
Features
hooks: add native Codex push runtime (#244 ) (c1fc929 ), closes #243
hooks: install Codex hooks into ~/.codex/hooks.json (#247 ) (46fe470 )
Bug Fixes
codex: collapse duplicate firings and warn on two live hook channels (#251 ) (efe7e37 ), closes #250
Features
model: revives_if — an archived scar names its resurrection condition (#224 ) (1bb438f ), closes #205
stats: detect a disconnected instrument (#240 ) (79da8e5 ), closes #237
stats: earn the retrieval denominator behind an opt-in flag (#235 ) (b02bc8f ), closes #217
Bug Fixes
ci: sync uv.lock on release and let --locked catch the drift (#222 ) (e000d77 ), closes #220
installer: scope hook ownership to the kind, not the event (#238 ) (87b9c53 )
stats: one stage block, rendered by every surface (#233 ) (de02850 ), closes #227
stats: render the measurement stages in the Rich output too (#226 ) (1fba7c2 ), closes #225
Documentation
ci: correct the release.yml claim about the run-approval gate (#234 ) (f73de3c ), closes #223
skill: state the real escaping mechanism — values reach the matcher verbatim (#218 ) (92de859 ), closes #216
Features
stats: split measurement into retrieval vs enforcement metrics (#214 ) (7543aff )
Bug Fixes
lint: detect a dead branch inside an alternation pattern anchor (#215 ) (60ef296 )
lint: error when the status field is omitted entirely (#199 ) (#211 ) (6b0b994 )
Violation regex with embedded double quotes survives round-trip (#201 ) (aecfd2d )
Features
agents: Windsurf/Cascade hooks — block-once scar injection (#198 ) (164f6d3 )
anchors: command anchors — fire scars on shell command execution (#175 ) (#177 ) (8b378b7 )
cli: scar brief --compact — paste-ready scar block for sub-agent launch prompts (#176 ) (#178 ) (aad9a86 )
docs: documentation site — methodology, quickstart, concepts, agents, llms.txt (#171 ) (1fc2610 )
lint: warn on over-broad path anchors — report coverage of tracked files (#193 ) (60f03de )
Bug Fixes
gitignore: add .scar/candidates/fp-log.txt to ignore list; remove obsolete fp-log.txt file (#208 ) (eeb1e35 )
harvest: count oscillations non-overlapping, as the comment always claimed (#188 ) (#194 ) (d9dbdd3 )
lint: ReDoS gate catches nested groups at depth and overlapping alternations (#191 ) (0166eaf ), closes #184
match: tier before truncating — content-signal matches never lose top-k slots (#185 ) (#192 ) (ad34b7e )
model: unquote matched wrapper pair for pattern/command/condition (#202 ) (#204 ) (553ef99 )
promote: case-insensitive reviewer dedup + author-drift lint (#182 ) (#183 ) (9a4ae78 )
symbols: refuse ambiguous bare anchors; fold leaf tokens into fingerprints (#187 ) (#196 ) (eec8f7b )
hooks: one directory parse per hook, cached tree-sitter parse, node-direct fingerprints (#186 ) (#195 ) (3ba38ab )
Documentation
readme: slim README to pitch, install, and docs-site links (#174 ) (4820ad3 )
Bug Fixes
harvest: sanitize candidate titles and slugs, warn on leakage (#159 ) (#160 ) (15a7714 )
mcp: newline-delimited JSON stdio framing per MCP spec (#167 ) (e56544a ), closes #162
Documentation
drop the MCP experimental marking — #162 transport fix shipped (#169 ) (c6d33d6 ), closes #168
skill: adopt the recurrence heuristic as the scar qualification one-liner (#166 ) (06607c2 ), closes #165
truth-sync README/SPEC/SCAR-FORMAT/ROADMAP/AGENTS with shipped behavior (#164 ) (03e9986 ), closes #163
Bug Fixes
orphan: scan full content for liveness; hint violation: for reintroduction guards (#157 ) (757a1d1 )
Features
cli: rich rendering for promote, harvest, agent doctor, and init (#155 ) (02abf94 ), closes #154
Documentation
skill: teach the violation: tripwire in scar-authoring SKILL.md (#152 ) (678721a ), closes #151
Bug Fixes
match: never count a scar's own file as a violation target (#149 ) (f9c3b72 )
Features
harvest: --write N renders top candidates as reviewable drafts (#139 ) (1cd495d )
init: guided first-run — harvest on-ramp and hook install pointers (#143 ) (753f701 )
init: seed a worked-example candidate on fresh init (#147 ) (1e75061 )
Bug Fixes
parser: strip inline comments from evidence values (#145 ) (6ccd2c2 )
Features
cli: promote --reviewer falls back to git user.name (#134 ) (c1c858e ), closes #133
Bug Fixes
Features
precision engine — tiered rendering, repetition collapse, over-broad advisory (#122 ) (df0e900 )
violation field — post-edit compliance tripwire (#127 ) (8d1223f )
Bug Fixes
gc: --max-firings 0 now actually empties the firing log (#125 ) (66a72be )
Features
credibility batch — check gate, firing observability, label leak fix (#107 ) (b50518c ), closes #106
distribution batch — pre-commit hooks, GitHub Action, plugin PATH resolution (#114 ) (a6a4128 )
follow git renames for dead path anchors + scar orphan --fix-renames (#110 ) (478afb3 )
scar draft-check — universal git-native authoring trigger for any agent (#118 ) (462ecb5 )
scar gc — prune machine state, report repo hygiene read-only (#116 ) (0eef648 )
scar reanchor — propose and apply new anchors for orphaned/partial-rot scars (#112 ) (0959aee ), closes #111
Features
anchors: re-measure anchor survival on the shipped mechanism (Phase 4) (#102 ) (ae6c327 )
harvest: exclude lockfile basenames from comment-archaeology scan (#87 ) (#104 ) (e30c002 )
Documentation
spec: cut confidence dynamics from §5, document static weight (#95 ) (#105 ) (96efe5f )
Features
anchors: symbol-drift advisory (Phase 3) (#100 ) (e384d23 )
anchors: tree-sitter symbol anchors (Phases 1+2) (#98 ) (f2c7a4e )
Bug Fixes
correctness batch — 7 audit-verified bugs (#93 ) (df0b6d7 ), closes #91
match: reject ReDoS-prone pattern anchors at the lint gate (#89 ) (7c10fde ), closes #88
Documentation
align SPEC/ROADMAP/README with shipped reality; lint-warn unsupported anchors (#96 ) (76e14ce ), closes #90
harvest: document scorer type-prior as code-repo-calibrated (#85 ) (cacf586 ), closes #54
0.9.0 (2026-07-01)
Features
cli: Rich-colored --help via rich-argparse (#81 ) (7983a85 ), closes #80
0.8.0 (2026-06-30)
Features
cli: add --version flag to report installed version (#76 ) (e45805d ), closes #75
cli: Rich output for read commands (TTY-detect + --json) (#79 ) (3ff9d40 )
0.7.0 (2026-06-30)
Features
durable evidence forms (issue:/url:) to survive squash-merge (#50 ) (#74 ) (d558849 )
Bug Fixes
harvest: exclude vendored/scaffold paths from comment-archaeology (#72 ) (#73 ) (919add4 )
parser: strip unquoted inline comments in _field (#70 ) (03ec578 )
0.6.1 (2026-06-26)
Bug Fixes
plugin: sync plugin.json + uv.lock to 0.6.0 + drift guard (#63 ) (fe21ed6 )
0.6.0 (2026-06-26)
Features
agent: Packaged scar-authoring skill + Claude Code plugin (#32 ) (#58 ) (b1eaca7 )
Bug Fixes
harvest: exclude .scars/ tree from candidates (self-ref noise) (#56 ) (29c2d61 ), closes #55
0.5.0 (2026-06-13)
Features
harvest: precision@N reporting CLI — close the measurement loop (#53 ) (100bd1d )
harvest: ranking layer — heuristic scorer + label-capture instrument (#39 ) (7369f73 )
lifecycle: lint warns on evidence commit SHAs unreachable from HEAD (#44 ) (714357e )
lifecycle: orphan detection — resolution failure, loud in CI (#34 ) (421a12a )
lifecycle: partial-anchor rot — surface dead anchors on firing scars (#40 ) (85fd57e )
Bug Fixes
scars: drop #6 orphaned receipt, broaden scar #5 for squash-merge (#51 ) (4c63ac5 )
scars: re-anchor 3 ghost pattern anchors to real code (#42 ) (00a2fcb )
scars: replace 3 orphaned bare commit-SHA receipts with self-contained notes (#46 ) (a224619 )
0.4.0 (2026-06-12)
Features
format: reserve optional receipt_id field (#29 ) (47ce933 )
Bug Fixes
Documentation
roadmap: truth pass — gates resolved, Phase 1 shipped, Phase 2 in progress (#26 ) (7701a97 )
0.3.0 (2026-06-12)
Features
agents: multi-agent scar integration — AGENTS.md, MCP server, agent helpers (#21 ) (52c817f )
0.2.0 (2026-06-12)
Features
cli: lifecycle v0 — challenge, archive, review_after surfacing (#16 ) (0c6fb05 ), closes #14
Documentation
readme: scar challenge is planned, not shipped — point to lifecycle issue (8c6b021 )
0.1.1 (2026-06-12)
Bug Fixes
hooks: drafter triggers on revert language only (#12 ) (547c4bb ), closes #11