ericyoung-183/anchor/anchor

Claude Code and agent skill by ericyoung-183/anchor

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when a coding or analysis conversation forms a multi-item discussion list, review finding list, diagnosis list, project TODO backlog, or nested follow-up list and the user wants to proceed item by item without losing position

Install

npx vskill@latest install ericyoung-183/anchor/anchor

SKILL.md

Anchor

Anchor keeps live discussion agendas from drifting. Use it when the conversation has a concrete list to process sequentially, especially when “next” must mean the next item in the current deepest layer.

When To Start

Start Anchor only when both signals exist:

  • A concrete list exists: review findings, diagnosis issues, audit items, TODO discussion items, or child questions under the current item.
  • The conversation shows item-by-item intent: “one by one”, “next”, “continue”, “you host”, “逐条讨论”, “一个一个过”, or equivalent.

Do not start Anchor for ordinary explanatory lists, brainstorm options, or long-term backlog scans without item-by-item intent.

Required Behavior

  1. Freeze the source list before discussing items. init, push-child, and interrupt require a source reference plus an exact numbered/bulleted snapshot; unstructured legacy input needs an explicit unverified-source reason.
  2. Use the helper script for state changes; do not rely on memory.
  3. Interpret “next” from the deepest active agenda layer.
  4. Complete, defer, or block the current item before advancing.
  5. complete, finish, and revise-conclusion require a real non-empty conclusion; whitespace never counts as completed evidence.
  6. Every agenda mutation must pass the current --expected-cursor-token from helper context or the immediately preceding result, including the result of ack-presented. The token binds tracker cycle, revision, deepest agenda, and item so delayed commands cannot overwrite newer state in the same item or hit another layer or cycle.
  7. Finish a child layer before returning to its parent. The return stops on the parent item in awaiting_advance; display and acknowledge the Whole Picture, review the returned child outcomes, record the parent synthesis with revise-conclusion, and only then run next. The helper rejects next until that synthesis is explicitly confirmed. pause suspends the whole tracker; it does not pop only the child layer.
  8. A readable legacy tracker must run present, display and acknowledge that Whole Picture, and only then perform its first progress mutation.
  9. If no active state exists, rebuild from a clear source or ask the user.
  10. At closure, export unresolved actions only if they need long-term project memory, TODO, or docs.

Anchor Capture Protocol

Use this trigger matrix before responding to list-processing turns:

SituationAction
list exists + sequential intentinit root tracker with source fields
active item creates sublist + sequential intentpush-child under the current item with the current cursor token
user says “next” and tracker existsIf the deepest item is still being discussed, persist its actual conclusion with atomic finish; use next only when status says that item is already awaiting_advance
current item is concluded and conversation continuesfinish with the conclusion and current cursor token; do not call separate complete and next
a terminal conclusion must changerevise-conclusion; never repeat complete with replacement text
a child layer returns to its parentdisplay and acknowledge the returned Whole Picture, persist the parent synthesis with revise-conclusion, then use next
user skips current itemdefer --reason <why>, then advance only when appropriate
user is blocked on current itemblock --reason <why>, preserving the non-empty reason
user pauses the agendapause; do not keep injecting active context
user temporarily switches topicsinterrupt --expected-cursor-token <token> with source fields; normalize awaiting_advance explicitly; nested interrupts resume last-in, first-out
user resumesresume --expected-cursor-token <token>, display its returned Whole Picture, then acknowledge it
ambiguous listask one short confirmation before creating state
user says not to trackdo not create tracker; abandon candidate state
no tracker exists but user says “back/next”do not guess; rebuild source or ask

When init, push-child, interrupt, resume, or present succeeds, or finish/next automatically returns from a closed child or interrupt frame, display the returned whole_picture as the user-visible Whole Picture before substantive discussion. The picture includes every item in the active root-to-current tree and its current status. Then acknowledge the exact returned presentation_id with ack-presented, but only after the text is user-visible. Until acknowledgement, progress mutations fail closed; token-guarded pause and abandon remain recovery exits. Use same-turn acknowledgement only when the platform records visible text before the helper call; otherwise acknowledge at the first helper call on the next turn. Never acknowledge tool output alone.

Storage Rule

When init creates a new tracker in a safe Git project, the helper auto-enables project-local state by creating .anchor/config.json, .anchor/state/, and .git/info/exclude entries. Existing global-fallback trackers stay global for the same thread. Use global fallback for broad roots, non-Git or unwritable directories, ANCHOR_STATE_MODE=global, or ANCHOR_AUTO_ENABLE_PROJECT=0. Forced global mode fails if that thread already has project-local state; a custom global root also checks the default root so an existing tracker cannot be hidden.

Project TODO Bridge

When the user asks about remaining TODOs, continuing project TODOs, recording a TODO, or processing TODOs one by one, use the helper's TODO commands. todo-status is read-only and reports unsupported_format, ambiguous_format, or parse_error instead of pretending an unknown ledger is empty. Run todo-configure --format before todo-start on a uniquely inferred existing ledger; pass --path when multiple candidates exist. Detection alone is read-only evidence, not write authorization. todo-start binds each item by ID and semantic fingerprint. A closed, paused, or abandoned TODO agenda with newly completed records returns todo_sync_required; run todo-sync --expected-tracker-id <tracker-id> before claiming closure or starting a new same-thread cycle. After sync, todo-start may open the next cycle in the same thread only when every unresolved record is a root-level item with the same ID and semantic fingerprint in the same canonical TODO. The new item shows the previous blocked/deferred status and reason. Nested unresolved work, a reused ID with changed meaning, or a changed binding fails closed and must be exported or explicitly discarded. This exception never applies to an ordinary agenda. Sync preserves externally reopened old items, tolerates unrelated edits, re-reads the final file before clearing the obligation, and fails closed on target changes or unsupported writes. Do not switch the canonical TODO while a bound tracker is live or unsynced, hand-edit .anchor/config.json, or treat multiple TODO files as one active source.

Helper

Use scripts/anchor.py for deterministic state handling. Use scripts/anchor_pressure_check.py for transcript pressure checks. Use validate for one tracker and doctor --cwd <project> for a read-only runtime health report before cleanup or migration decisions. validate returns exact state_hash and event_log_hash values. After an intentional old-version write causes an event-chain error, inspect state first and use explicit repair-event-chain --expected-state-hash <state-hash> --expected-event-log-hash <event-hash> --reason <reason>; repair refuses healthy chains, stale hashes, changed event streams, and invalid agenda topology. Never repair automatically.

References:

  • references/schema.md: state shape, commands, invariants.
  • references/examples.md: realistic pressure examples.
  • references/phrase-map.md: user phrase to state action mapping.
  • references/failure-taxonomy.md: drift categories for review and debugging.
  • references/closure-template.md: concise closure handoff format.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

  • SKILL.md in the repositoryCheckingSKILL.md

Popularity

Repository stars
1
7-day trend score
3

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/ericyoung-183/anchor/anchor/badge)](https://verified-skill.com/skills/ericyoung-183/anchor/anchor)

Something wrong with this skill or its page? Tell us.