Primary finding
Target-side semantics contradict between schema docs and evaluation logic
mediumdocs-gaphigh
- skills/price-threshold-alert/SKILL.md:84-86
- skills/price-threshold-alert/SKILL.md:146-152
The invariant text describes `side` from the operator's perspective ('waiting for the price to climb to it' means the target is above the current price), while the cross condition treats `side=above` as 'price must rise to/above target'. This is internally consistent for `above`, but the schema comment phrasing is confusing because `side` actually names the *target's position relative to current price at registration*, not the direction the price must move. The naming `above`/`below` is ambiguous and the docs do not state whether `side` refers to the operator goal direction, the target position, or the cross direction. An implementer reading only the schema block could swap the comparison.
Recommendation
Rename `side` to something unambiguous like `cross_direction: up|down` (the direction the price must move to hit the target) and align all three references (schema, invariant, Step 6) to one definition with an example.