Smart anchor
DefaultContext-aware, code-untouching.
A smart anchor stores a line cache plus a variable amount of surrounding context, and uses that context to re-find its line as code drifts around it. Matching is adaptive and loose on purpose: small edits in or near the line don't force the stored data to rewrite, which is what makes smart anchors team-friendly when checked into git.
Under the hood, dynamic context blocks and our anchor chain technique — refined through real-world testing — keep the anchor attached even as code shifts around the line it points at. No comment, no code change, no marker in your source.
Best for
Almost everything — local and shared, solo and team.
Tag anchor
The source of truth lives in the code.
A tag anchor places a small comment on the line — something like // @bookmark:abc123. Because the marker travels with the code, maintenance is the simplest of any type: if the line moves, the marker moves with it. It's the least-breakable anchor standard we offer.
It does require a discreet edit to your source, which not every team wants. In exchange, tag anchors are uniquely good for cross-referencing — a tag is a stable handle you can quote in docs, PR descriptions, or chat, and the bookmark on the other end stays in sync.
Best for
Shared landmarks where an inline marker is welcome.
Point anchor
The legacy baseline.
A raw filename and line number with a small content cache. Some tools try to keep it sticky by watching edits and applying offsets, but that approach has nothing to hold onto when an agent rewrites or moves large spans in a single pass.
We keep point anchors disabled by default and use them only for internal dev testing.
Status
Disabled by default — internal testing only.