.agents/skills/explicate-feature-flag/SKILL.md
Use when a proof/module verifies in baseline mode but reproving under a prover-affecting feature flag fails. Add explicit proof detail based on the working baseline proof until `cargo run --features <feature> -- verify ...` succeeds.
npx skillsauth add acornprover/acorn explicate-feature-flagInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This is the feature-flag version of explicate.
Use it when:
This skill is for the acorn repo. Use cargo run, not the installed acorn binary.
Edit proofs only in the sibling library repo at ../acornlib/src.
Do not edit the bundled copy under vscode/extension/acornlib.
The goal is:
The non-goal is:
validate is fastDuring the edit loop, do not use validate. Use feature-only reproving for speed.
Add only one proof line per iteration.
Only explicate at the location where the feature-flag prover is having trouble.
Do not inline a large proof body. The point is to make the local proof easier for the flagged prover to rediscover, not to copy an entire theorem proof into the file.
First confirm the baseline module is actually good:
cargo run --profile release -- verify MODULENAME --ignore-hash --read-only --fail-fast
If baseline fails, this is not an explication task.
Then confirm the feature-mode failure:
cargo run --profile release --features FEATURE -- verify MODULENAME --ignore-hash --read-only --fail-fast
If feature mode panics or crashes, stop. That is a prover/feature bug, not an explication task.
Find the first failing line in feature mode:
cargo run --profile release --features FEATURE -- verify MODULENAME --ignore-hash --read-only --fail-fast
If this succeeds, the module is done.
If it fails, note the failing line and move to line-level proof inspection.
Inspect the working baseline proof, not the failing feature-mode proof:
cargo run --profile release -- select MODULENAME LINENUMBER
If select is too compressed, use:
cargo run --profile release -- verify MODULENAME:LINENUMBER --ignore-hash --read-only --print-proof
Use baseline proof steps whose reasons are:
Add those statements to ../acornlib/src/...:
by block, if it has oneDo not delete statements. Only add detail. Add a single line at a time. After you add one line, test immediately before adding another.
After each edit:
--read-only:cargo run --profile release -- verify MODULENAME --ignore-hash --fail-fast
cargo run --profile release --features FEATURE -- verify MODULENAME --ignore-hash --read-only --fail-fast
If baseline fails, the explication is wrong. Fix the proof shape first.
If feature mode still fails, use the new failure location to decide where the next single line goes:
If feature mode now fails on a later line, move to that new line.
During this skill, every edit should be followed by baseline verify without --read-only.
That is the normal workflow, not a special case.
Keep explicating as long as the baseline proof still contains harvestable proof steps.
Only stop and report a feature bug when both are true:
select/--print-proof no longer gives you any useful proof steps to harvest for that line, andIn practice, "fully explicated" usually means the baseline target is trivial or nearly trivial and there are no remaining definition/theorem/boolean-reduction/simplification steps worth materializing.
Also stop and report a feature bug if:
validate, while plain feature-mode reproving succeedsThat last case is not an explication target. It is a performance/debugging issue in validation mode.
When the module seems fixed, rerun:
cargo run --profile release --features FEATURE -- verify MODULENAME --ignore-hash --read-only --fail-fast
If it succeeds, the explication work for that module is done.
tools
Use when asked to profile Acorn prover or verifier performance, investigate where time is spent, or generate a top-down runtime breakdown from `perf` or `samply`.
tools
Profile the prover and generate a top-down performance summary
development
Use when asked to migrate to a feature flag or roll out a manifest-gated acornlib certificate/build-cache or proof-format change. This skill covers feature-flag migrations, including the state-machine workflow for verifier, proof, and cache migrations.
databases
Install ONNX Runtime for the ort crate in a sandboxed environment