AntFleet

Disagreement · f3aba81f-anthropic-5

Atomic state-write pipeline reads from itself but feeds `jq` variables that are never defined

mismatch
repo 6f7fc663·PR #23·reviewed 1 week ago

Primary finding

Atomic state-write pipeline reads from itself but feeds `jq` variables that are never defined

mediumbugmedium
  • skills/price-threshold-alert/SKILL.md:188-200
The jq invocation references `$contract`, `$chain`, `$ath_obj`, `$last_alerts_obj`, `$targets_obj` but only `--arg ts` is bound on the command line. As written this snippet is non-executable; an implementer copy-pasting it will get a jq compile error and may silently swallow it given the `.bak` restore logic — every run could appear to 'corrupt' state and loop on PRICE_ALERT_STATE_CORRUPT.

Recommendation

Either provide the full `--arg`/`--argjson` bindings (e.g. `--arg contract "$CONTRACT" --argjson ath_obj "$ATH_JSON" ...`) or replace the snippet with a pseudo-code block explicitly labeled non-executable.

Counterpart finding

State write pathway vs. fetch-fail behavior and .bak handling are underspecified/inconsistent

lowmaintainabilitymedium
  • skills/price-threshold-alert/SKILL.md:96
  • skills/price-threshold-alert/SKILL.md:198-209
  • skills/price-threshold-alert/SKILL.md:211
The spec says fetch failure should do “no state mutation beyond touching last_run_at,” but the persist step shows a full-object rewrite requiring multiple variables and mentions restoring from a .bak without specifying when/how the .bak is created. The partial-update path is unclear and can lead to diverging implementations.

Recommendation

Document a minimal write path for failures (only update last_run_at, using the existing JSON as the source), and explicitly define when a .bak is created (e.g., cp before write) and restored.

Why this didn't post

This finding didn't meet AntFleet's unanimous agreement threshold. Both frontier models review every PR independently; only findings they both flag with the same severity and category are posted to the PR. This one fell through.

read the methodology →