sync

A command that compares the project's task tracker with its configured issue tracker, such as Linear or GitHub.

In plain words
What is it for?
Use it to synchronize tasks, inspect a specific epic, preview changes with a dry run, and clean up leftover Git worktrees.
Why use it?
It finds differences between local task statuses and the external tracker so the two systems do not drift apart.

Command

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/skullninja/coco-workflow/sync
Clone the repo
git clone --depth 1 https://github.com/skullninja/coco-workflow
Per session 20 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 764 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.00020 $0.00764
Opus 5 $0.00010 $0.00382
Sonnet 5 $0.00004 $0.00153
Haiku 4.5 $0.00002 $0.00076

Measured yesterday against content hash 6295cd89d29a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

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 yesterday.

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.

commands/sync.md · 112 lines

How it starts

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

User Input

$ARGUMENTS

$ARGUMENTS can optionally specify:

  • --dry-run -- show what would change without making updates
  • --epic {name} -- sync a specific epic (default: active)

Setup

  1. Read .coco/config.yaml for issue_tracker configuration.
  2. If issue_tracker.provider is "none", report "No issue tracker configured" and exit.

Execution

0. Clean Up Stale Worktrees

Remove stale git worktree references left by crashed or completed agents:

git worktree prune

If .claude/worktrees/ contains directories with no corresponding git worktree, remove them:

git worktree list --porcelain

Compare against directories in .claude/worktrees/. Remove any orphaned directories.

1. Load Tracker State

coco-tracker list --json --epic {epic-id}

Parse all tasks with their statuses and issue_key metadata.

2. Load Issue Tracker State

For each tracker task that has an issue_key:

If "linear":

Use: mcp__plugin_linear_linear__get_issue
Parameters:
  id: {issue_key}

If "github":

If github.use_projects is true:

  1. Read .coco/state/gh-projects.json and find the feature entry where project_number matches the task's gh_project_number metadata. Extract project_id, status_field_id, and status_options from that entry.
  2. Query project board status as source of truth:
    gh project item-list {project_number} --owner {github.owner} --format json
    
    Match each task's gh_project_item_id to get its current board column status.
  3. Backfill detection: For tasks with issue_key but no gh_project_item_id (pre-existing issues created before Projects V2 was enabled), offer to backfill:
    gh project item-add {project_number} --owner {github.owner} --url {issue_url}
    
    Then update tracker metadata with the new gh_project_item_id.

If github.use_projects is false (legacy):

gh issue view {issue_number} --json state,labels

Read the full file on GitHub · 112 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. yesterday First seen · 112 lines · 20 tokens per session scan A 6295cd89d29a

Subscribe to this mod's changes

sync is a command published in the GitHub repository skullninja/coco-workflow (7 stars, last pushed 2d ago), licensed MIT. It adds 20 tokens to every session and 764 once invoked, about $0.0001 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-08-31.