{
  "schema": "martybytes-task-packet/v1",
  "task": {
    "id": "range-empty-bound",
    "intent": "Keep the invented exclusive range helper empty when end is before start and record the stipulated test fixture.",
    "excluded": ["No dependency changes", "No runtime or benchmark claim"],
    "baseManifestHash": "f9d57aa698da0dc4152c6e0cd39678e1d835a3468ace6a62933d92325bdc4f0a"
  },
  "allowedPaths": ["src/range.js", "test/range.test.js", "artifacts/task-report.txt"],
  "operations": [
    {"id":"write-range","type":"write","path":"src/range.js","expectedBeforeHash":"63eec6e18177e119071c328b7b175a9ebe01b3efba494f2e1500771378d0b11e","content":"export const range = (start, end) => Array.from({length: Math.max(0, end - start)}, (_, i) => start + i)\n","generated":false},
    {"id":"write-test-record","type":"write","path":"test/range.test.js","expectedBeforeHash":"b456cd662f288e551fe3723dd8e50ac0b96740ab6b21a6e28bb0c4b098580de7","content":"// stipulated test fixture after task: empty and exclusive bounds\n","generated":false},
    {"id":"write-report","type":"write","path":"artifacts/task-report.txt","expectedBeforeHash":null,"content":"Synthetic report: replacement paths and hashes only.\n","generated":true}
  ],
  "recordedChecks": [
    {"id":"stipulated-tests","label":"Stipulated synthetic test record; not executed","exitCode":0,"evidenceHash":"a27ed67c6483f5d35791fe625f64c2adf916480e628c4a11c7924a01a599d7d6"}
  ],
  "unresolved": ["A qualified reviewer must decide whether this invented implementation matches intended semantics."]
}
