What Claude generated (looked great, was wrong)
// expiry_overrides.json — generated by Claude { "CRUDEOIL": "2026-03-19", // wrong by 2 days "NATURALGAS": "2026-03-20", // actual: 24th "GOLDM": "2026-03-24" // actual: 26th } // "Generated from training data and standard // MCX monthly schedule." — confident. wrong.
The rule we adopted
Expiry dates are never guessed. They come from a verified source — the user's broker terminal screenshot, or the Upstox API.
// Source: screenshot from Upstox terminal, // dated 2026-03-01, attached to PR { "CRUDEOIL": "2026-03-21", // verified ✓ "NATURALGAS": "2026-03-24", // verified ✓ "GOLDM": "2026-03-26" // verified ✓ } // If unsure: ask the user. Never guess.