# Fizz Sync

Reconcile an existing Fizz harness with a changed source tree.

- Repository: https://github.com/pashov/skills (1295 stars)
- Category: Business
- License: MIT
- Last updated: 2026-10-21
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add pashov/skills --skill fizz-sync -g -a claude-code -y`
Codex: `npx skills add pashov/skills --skill fizz-sync -g -a codex -y`
Cursor: `npx skills add pashov/skills --skill fizz-sync -g -a cursor -y`
Gemini CLI: `npx skills add pashov/skills --skill fizz-sync -g -a gemini-cli -y`

## Description

Reconcile an existing Fizz harness with a changed source tree. Detects added/removed/changed contract functions, quarantines stale properties, regenerates drifted handler stubs, and refreshes the snapshot. Trigger on "fizz-sync", "resync fuzzing", "sync fuzz harness", "refresh fuzzing properties", "fuzzing drift check".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Fizz Sync Skill, fizz-sync

Reconcile a project previously processed by the **Fizz** skill with a changed source tree. This is the re-use entry point: after the user modifies Solidity sources, `fizz-sync` detects drift, quarantines stale properties, regenerates drifted handler stubs, and refreshes the snapshot, WITHOUT re-running the full 11-step pipeline.

## When to use

- The source contracts under `src/` changed since `fizz` last ran.
- A property in `PROPERTIES.md` fails to compile or references a function that no longer exists.
- The user added new external functions they want fuzzed.
- The user wants a "is anything stale?" health check before re-running a campaign.

## Parameters

- `SUITE_DIR`: Solidity suite directory relative to project root (default: `test/fizz`). Use the same value that was passed to the `fizz` skill when the harness was generated.
- `META_DIR`: Metadata directory relative to project root (default: `fizz_data`). Use the same value that was passed to the `fizz` skill.

## Arguments

- `--init`, one-time bootstrap: create `{META_DIR}/last-run.json` from the current state. Use this the first time fizz-sync runs on a project (or when adopting fizz-sync on a project that was fuzzed before the snapshot format existed).
- `--only <Contract>`, scope the sync to a single contract name.
- `--apply`, actually perform the automatic fixes. Without `--apply`, fizz-sync runs in dry-run mode and only reports drift.
- `--no-property-quarantine`, skip the property quarantine phase (useful if the user wants to handle stale properties manually).

The default (no flags) runs a dry-run drift report.

## Preconditions

- The project must have been processed by the `fizz` skill at least once. Look for:
  - `{PROJECT_ROOT}/{META_DIR}/contracts.json`
  - `{PROJECT_ROOT}/{META_DIR}/entry-point-selection.json`
  - `{PROJECT_ROOT}/{SUITE_DIR}/` (suite directory)
- If any of the above are missing, stop and tell the user to run `fizz` first.

---

The rest: https://github.com/pashov/skills/blob/HEAD/fizz/skills/fizz-sync/SKILL.md
