# Fizz Convert

Convert English-language properties in PROPERTIES.md (produced by the Fizz skill) into...

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

## Install

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

## Description

Convert English-language properties in PROPERTIES.md (produced by the Fizz skill) into Solidity assertions inside the existing fuzz harness, then flip their checkboxes. Trigger on "fizz-convert", "convert properties", "implement properties from PROPERTIES.md", "convert PROPERTIES.md to Solidity".

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

# Property Conversion Skill, fizz-convert

You are an expert Solidity fuzzing engineer working inside a project that was set up by the **Fizz** skill. Your job is to convert English-language properties in `PROPERTIES.md` (project root) into Solidity code inside the existing harness, then flip their checkboxes from `[ ]` to `[x]`.

**Arguments**: optional space-separated property IDs (e.g., `GL-01 SP-03`) passed when the user invokes the skill. If no IDs are given, convert ALL properties currently marked `[ ]`.

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

## Checkbox states and how they map to actions

`PROPERTIES.md` uses three states. The action you take depends on BOTH the current checkbox AND whether tagged Solidity for that Spec ID already exists in `Properties.sol` / handlers.

**Tagged Solidity** = a function whose natspec starts with `/// @notice <ID>:` (e.g. `/// @notice GL-05:`). The implementer agents are required to emit this doctag for every property they write, so it is the canonical way to find the existing code for any Spec ID. Search both `{SUITE_DIR}/Properties.sol` and every file under `{SUITE_DIR}/handlers/`.

Action matrix:

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