context-sync

context-sync is a command for Claude Code from jo-duchan/tapflow. It costs 98 tokens per session (1,557 once invoked), scanned A, original, MIT.

A command workflow for checking whether a codebase's context documents still match its files, dependencies, interfaces, and recent changes.

In plain words
What is it for?
Auditing and updating AGENTS.md, INDEX.md, contributing records, work logs, package metadata, source directories, and recent Git history.
Why use it?
It finds stale instructions, broken file references, and documentation that no longer describes the project accurately before code is changed.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/jo-duchan/tapflow/context-sync
Clone the repo
git clone --depth 1 https://github.com/jo-duchan/tapflow

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for context-sync

README.md
[![agentmods](https://agentmods.dev/badge/commands/jo-duchan/tapflow/context-sync.svg)](https://agentmods.dev/commands/jo-duchan/tapflow/context-sync)
Your own site
<a href="https://agentmods.dev/commands/jo-duchan/tapflow/context-sync"><img src="https://agentmods.dev/badge/commands/jo-duchan/tapflow/context-sync.svg" alt="Measured on agentmods" height="20"></a>
Per session 98 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,557 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00098 $0.01557
Opus 5 $0.00049 $0.00779
Sonnet 5 $0.00020 $0.00311
Haiku 4.5 $0.00010 $0.00156

Measured 2d ago against content hash 69db55db0189, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

context-sync scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/context-sync.md · 107 lines

How it starts

The opening of the file, as written. The whole thing — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.

코드베이스의 실제 상태와 컨텍스트 문서를 대조해 낡은 내용을 찾아내고 수정한다.

컨텍스트 문서 = 코드를 바꾸기 전에 읽는 것들: AGENTS.md(루트·패키지), INDEX.md, contributing/(커밋된 결정 기록), .work/(로컬 작업 로그). docs/는 여기 해당하지 않는다 — VitePress 사용자 문서는 /write-docs가 담당한다. 이름이 doc-sync였을 때 두 스킬이 같은 단어를 쓰면서 서로 겹치지 않는 대상을 가리켰고, 그중 진짜 docs/는 한쪽뿐이었다.

절차

1. 인벤토리 수집

아래 파일들을 모두 읽는다:

  • 루트 AGENTS.md
  • packages/*/AGENTS.md (각 패키지)
  • INDEX.md (존재하는 경우)
  • contributing/*.md — 커밋된 결정 기록. .work/의 공개 짝이고 같은 부패 위험을 진다.
  • .work/*.md (archive 제외, 진행 중인 파일만)

2. 코드 현황 파악

문서와 대조할 실제 상태를 확인한다:

  • packages/*/package.json — 현재 의존성 목록
  • packages/relay/src/types.ts — 현재 메시지 타입 정의
  • packages/dashboard/lib/types.ts — 현재 프론트엔드 타입 정의
  • packages/agent-core/src/ — 현재 인터페이스 정의
  • ls packages/*/src/ — 실제로 존재하는 소스 파일 목록
  • git log --oneline -20 — 최근 변경 흐름 파악

3. 감사 (Audit)

각 문서에 대해 아래 항목을 체크한다:

존재 정합성
  • 문서가 언급하는 파일·모듈이 실제로 존재하는가? (삭제된 파일 참조)
  • 커밋되는 문서가 gitignore된 .work/ 안의 파일을 링크하지 않는가? 기여자에게는 없는 경로라 링크가 끊긴 채로만 보인다. 디렉터리·규약 언급(.work/reviews/<branch>.md)은 해당 없고, 특정 파일을 가리키는 링크만 대상이다. 남길 값어치가 있으면 링크가 아니라 승격(/promote-decision)이다.
  • 문서가 언급하는 패키지·의존성이 package.json에 있는가?
  • 문서가 언급하는 메시지 타입이 relay/types.ts에 있는가?
내용 최신성
  • HOW/HOW NOT 규칙이 현재 코드 구조와 맞는가?
  • Compound 섹션의 코드 스니펫이 현재 인터페이스와 일치하는가?
  • Phase·로드맵 관련 표현이 현재 진행 상황을 반영하는가?
패키지 간 정합성
  • 동일 개념이 여러 AGENTS.md에 다르게 설명되어 있지 않은가?
  • 한 패키지의 HOW가 다른 패키지의 HOW NOT과 충돌하지 않는가?
  • relay/types.tsdashboard/lib/types.ts의 타입이 문서 설명과 일치하는가?
contributing/ 정합성
  • 새 기록이 contributing/README.md 표와 루트 INDEX.md 양쪽에 등재돼 있는가? (scripts/__tests__/contributingIndexed.test.mjs가 강제하므로 보통은 여기서 걸리지 않는다.)
  • 표의 그룹 배치가 문서 내용과 맞는가 — 새 기록이 "일단 아무 그룹"에 들어가 있지 않은가?
.work 상태 확인
  • status: done인데 archive로 이동하지 않은 파일이 있는가?
  • status: in-progress인 파일의 체크리스트가 코드 현황과 맞는가?

4. 수정

발견된 문제를 심각도 순으로 수정한다:

즉시 수정: 존재하지 않는 파일·모듈·타입 참조, 삭제된 패키지 언급 내용 갱신: 낡은 패턴 설명, 변경된 인터페이스와 맞지 않는 스니펫 표현 조율: 패키지 간 동일 개념의 불일치 표현 건너뜀: 미래 계획·로드맵 표현 (의도적으로 미래를 가리킬 수 있음)

Read the full file on GitHub · 107 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 107 lines · 98 tokens per session scan A 69db55db0189

Subscribe to this mod's changes

context-sync is a command published in the GitHub repository jo-duchan/tapflow (583 stars, last pushed yesterday), licensed MIT. It adds 98 tokens to every session and 1,557 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-02.