Opus finding
Target `side` semantics inverted vs. field name `first_seen_below_at`
mediumbughigh
- skills/price-threshold-alert/SKILL.md:92-99
- skills/price-threshold-alert/SKILL.md:108-110
- skills/price-threshold-alert/SKILL.md:172-174
The field is named `first_seen_below_at` but is written for both above- and below-target observations. When `side=below` (operator waiting for price to drop), the price was first seen *above* the target, not below — yet the timestamp lands in a field literally called `first_seen_below_at`. This is misleading and will cause confusion / bugs when implementers consume the field. Either the field name is a lie or the storage logic is wrong.
Recommendation
Rename to `first_seen_at` (neutral) or split into `first_seen_below_at` / `first_seen_above_at` keyed off side. Update Step 6 and the state schema example consistently.