Primary finding
publish-signal.sh assumes ENTRY_PRICE/AMOUNT_PCT are valid JSON numbers — passes via --argjson without validation
- bankr-signals/scripts/publish-signal.sh:100-130
If ENTRY_PRICE or AMOUNT_PCT is empty, contains commas (e.g. '2,750.50'), or contains arbitrary characters, jq's --argjson will fail with an opaque error, or worse, accept attacker-controlled JSON fragments (e.g. ENTRY_PRICE='1, "injected":true') merging extra keys into the signal object. The integration.md example pulls entry-price from a shell pipeline with `.result.price // 0`, which can legitimately become an empty string if the bankr output schema drifts — leading to a confusing failure.
Recommendation
Validate numeric fields with a regex (e.g. `^-?[0-9]+(\.[0-9]+)?$`) before passing to jq. Same for AMOUNT_PCT, STOP_LOSS_PCT, TAKE_PROFIT_PCT, CONFIDENCE.