{"receipt":{"receipt_id":"grill-skill-schedule-gate-2026-06-28","loop_id":"grill-me-for-loops","title":"Made the schedule: block a REQUIRED, gated field for every future contract","actor":"copilot-cli","owner":"Fabian Williams","timestamp":"2026-06-28T09:40:00-04:00","status":"success","outcome":{"metric":"gate enforces HOW+WHEN on new contracts","claimed":"template + validator + example + docs updated; gate green","before":"","after":""},"checks":[{"name":"test_gate.sh full suite","kind":"external","status":"pass","passed":true,"at_iso":"","evidence":"8 passed, 0 failed (good example verifies exit 0; blank template fails exit 1)","link":""},{"name":"negative test: missing schedule rejected","kind":"external","status":"pass","passed":true,"at_iso":"","evidence":"stripping the block -> 'missing or placeholder: schedule'","link":""},{"name":"negative test: trigger=schedule with blank cron rejected","kind":"external","status":"pass","passed":true,"at_iso":"","evidence":"'schedule.cron required when trigger is schedule'","link":""}],"authority":{"respected":true,"gated_actions_taken":[],"notes":"Edited the skill in ~/.copilot/skills only."},"budget":{"cap":"$0","spent":"$0","within_cap":true},"links":[{"label":"validate_contract.py","url":"file:///Users/fabswill/.copilot/skills/grill-me-for-loops/validate_contract.py"}],"idempotency_key":"grill-skill-schedule-gate-2026-06-28","principal_id":""},"grade":"green","rubric":[{"id":"outcome_stated","label":"Outcome stated","state":"green","why":"Metric: gate enforces HOW+WHEN on new contracts"},{"id":"externally_verified","label":"Externally verified","state":"green","why":"An external check passed."},{"id":"evidence_linked","label":"Evidence linked","state":"green","why":"Has a clickable artifact."},{"id":"authority_respected","label":"Authority respected","state":"green","why":"Stayed in lane; gates honored."},{"id":"within_budget","label":"Within budget","state":"green","why":"Spent $0 / cap $0."}]}