cf:sync · v3.0.0 · 2026-10-06 · sha256 1571a2a679360ee1

cf:sync v3.0.0A

Immutable. This exact content never changes and is served at /api/v1/blob/1571a2a679360ee1.

---
name: cf:sync
description: "Synchronize process-first task Status and inline Receipts without inventing proof."
user-invocable: true
when_to_use: "Invoke after implementation or verification changes a task's real state, or to audit a feature packet for drift."
category: utilities
keywords: [sync, state, tracking, consistency]
argument-hint: "<feature> <task-file> <pending|in_progress|paused|blocked|done|sync-finalize> [blocker] | audit <feature> | rebind <feature> [task-file] | (none: audit all, write nothing)"
metadata:
  author: haposoft
  version: "3.0.0"
---
# Sync — file-state synchronization

Synchronize only observed state. For the primary process-first layout, the
single `Status:` field and inline `## Receipt` in each flat task file are the
state. Never infer proof, approval, review independence, or product readiness.

## Commands

```text
/cf:sync <feature> <task-NN-slug.md> in_progress
/cf:sync <feature> <task-NN-slug.md> blocked "reason"
/cf:sync <feature> <task-NN-slug.md> done
/cf:sync <feature> <task-NN-slug.md> sync-finalize
/cf:sync audit <feature>
/cf:sync rebind <feature> [<task-NN-slug.md>]
/cf:sync
```

Resolve one regular direct-child task inside `specs/<feature>/`. Reject path
escape, symlink, ambiguity, missing `plan.md`, duplicate Status fields, and
unsupported status values.

## Task synchronization

1. Read the task Outcome, Acceptance, Dependencies, Verification Plan, current
   Status, and Receipt before editing.
2. Starting or resuming changes only Status to `in_progress`. Update only
   checkboxes whose implementation is real.
3. Blocking changes Status to `blocked` and records a concrete blocker; it does
   not create proof.
4. Done requires a current inline Receipt with `Verification: PASS`, exact
   Command, `Exit: 0`, runtime-bound Base/Head, non-empty fenced output, and any
   required negative/reachability/artifact proof.
5. Write or replace the Receipt before changing Status to `done`. Missing,
   stale, contradictory, placeholder, failure, or zero-test evidence keeps the
   task `in_progress` or `blocked`.
6. Re-read the file after the surgical edit and confirm exactly one Status and
   one Receipt section.

`sync-finalize` is the only promotion path for `FLASH_UNVERIFIED`. It requires
fresh canonical PASS proof, revalidates Base/Head and artifacts, clears the
flash blocker, then derives `done`. Caller-supplied promotion booleans and a
marker alone have no authority.

## Audit

Scan only `specs/<feature>/task-*.md` beside `plan.md`. Compare plan task rows,
task filenames, dependencies, Status, acceptance mapping, and Receipts. Report
missing files, unknown rows, cycles, duplicate fields, done-without-proof,
proof-on-unfinished-task, and overlapping ownership.

An audit writes nothing until the user confirms the named changes; then repair
deterministic formatting drift only and never pick a winner in a semantic conflict.
Read `references/rebind-and-audit.md` before a rebind, a bare call, or a file
report, and `references/sync-protocols.md` for surgical update and audit rules.

## Docs impact

When a task becomes done, report `Docs impact: none|minor|major`. Create no docs
work for `none`; update only affected existing docs for minor or major.