Sunset condition
If the next 2 weekly `pricing-check.yml` refresh cycles still can't render Cursor's Pro+ ($60/mo) and Ultra ($200/mo) tier prices via WebFetch, flip `data/tools/cursor.yml` to `verification_method: manual` so the automated monitor skips it and the monthly stale-check picks it up for browser-verification instead.
Background
`cursor.com/pricing` uses a JS-rendered tier toggle ("Individual" expands to show Pro / Pro+ / Ultra). WebFetch doesn't execute JS so it can only see the default-visible Pro $20/mo price; Pro+ and Ultra prices stay invisible. Playwright (used by the workflow itself for hash detection) handles this fine — the limitation is only in the autonomous Claude → WebFetch verification flow when the workflow files an issue.
Workaround used so far
Trust the most recent human verification of Pro+/Ultra prices, bump `last_verified`, flag for follow-up. Used twice now:
- Session 2 (2026-05-19) — first time the limitation showed up
- Session 3 (2026-06-04) — confirmed still failing
Why not flip immediately
The hash-diff monitoring is still valuable for Cursor — it catches when the pricing page changes at all, even if WebFetch can't read the new prices. Flipping to `manual` loses that weekly signal in exchange for the monthly stale-check trigger.
If WebFetch fails on Cursor 4 weeks in a row (2 more cycles past session 3), the trust-the-prior-verification workaround stops being defensible — the prices could have moved twice without anyone noticing. At that point, flip to `manual` so the monthly stale-check forces a browser pass.
Action when this issue triggers
- Edit `data/tools/cursor.yml` — add `verification_method: "manual"` next to `last_verified`
- Commit with message referencing this issue
- Close this issue
Context
Originally flagged in session 2 and re-flagged in session 3 (2026-06-04).
Sunset condition
If the next 2 weekly `pricing-check.yml` refresh cycles still can't render Cursor's Pro+ ($60/mo) and Ultra ($200/mo) tier prices via WebFetch, flip `data/tools/cursor.yml` to `verification_method: manual` so the automated monitor skips it and the monthly stale-check picks it up for browser-verification instead.
Background
`cursor.com/pricing` uses a JS-rendered tier toggle ("Individual" expands to show Pro / Pro+ / Ultra). WebFetch doesn't execute JS so it can only see the default-visible Pro $20/mo price; Pro+ and Ultra prices stay invisible. Playwright (used by the workflow itself for hash detection) handles this fine — the limitation is only in the autonomous Claude → WebFetch verification flow when the workflow files an issue.
Workaround used so far
Trust the most recent human verification of Pro+/Ultra prices, bump `last_verified`, flag for follow-up. Used twice now:
Why not flip immediately
The hash-diff monitoring is still valuable for Cursor — it catches when the pricing page changes at all, even if WebFetch can't read the new prices. Flipping to `manual` loses that weekly signal in exchange for the monthly stale-check trigger.
If WebFetch fails on Cursor 4 weeks in a row (2 more cycles past session 3), the trust-the-prior-verification workaround stops being defensible — the prices could have moved twice without anyone noticing. At that point, flip to `manual` so the monthly stale-check forces a browser pass.
Action when this issue triggers
Context
Originally flagged in session 2 and re-flagged in session 3 (2026-06-04).