{"record":{"id":"1c170254634e4ca1","repo":"affaan-m/ECC","slug":"trace-file-not-found-path","errorCode":null,"errorMessage":"Trace file not found: {path}","messagePattern":"Trace file not found: (.+?)","errorType":"validation","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"skills/skill-comply/scripts/parser.py","lineNumber":50,"sourceCode":"    description: str\n    required: bool\n    detector: Detector\n\n\n@dataclass(frozen=True)\nclass ComplianceSpec:\n    id: str\n    name: str\n    source_rule: str\n    version: str\n    steps: tuple[Step, ...]\n    threshold_promote_to_hook: float\n\n\ndef parse_trace(path: Path) -> list[ObservationEvent]:\n    \"\"\"Parse a JSONL observation trace file into sorted events.\"\"\"\n    if not path.is_file():\n        raise FileNotFoundError(f\"Trace file not found: {path}\")\n\n    text = path.read_text().strip()\n    if not text:\n        return []\n\n    events: list[ObservationEvent] = []\n    for i, line in enumerate(text.splitlines(), 1):\n        try:\n            raw = json.loads(line)\n        except json.JSONDecodeError as e:\n            raise ValueError(f\"Invalid JSON at line {i}: {e}\") from e\n        try:\n            events.append(ObservationEvent(\n                timestamp=raw[\"timestamp\"],\n                event=raw[\"event\"],\n                tool=raw[\"tool\"],\n                session=raw[\"session\"],\n                input=raw.get(\"input\", \"\"),","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/affaan-m/ECC/blob/8321021c54d670126ce3b2969d5deb880b4b0c2a/skills/skill-comply/scripts/parser.py#L32-L68","documentation":"File-existence guard in parse_trace: the supplied path is not an existing regular file, so the JSONL observation trace used for compliance scoring cannot be read. Typically a typo, wrong working directory, or a trace that was never produced.","triggerScenarios":"Thrown at skills/skill-comply/scripts/parser.py:50 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the path exists: ls <path> and correct typos","If relative, re-run from the directory the trace was written in, or pass an absolute path","Regenerate the trace with the runner if it was never created"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8321021c54d670126ce3b2969d5deb880b4b0c2a","analyzedAt":"2026-09-16T10:08:13.343Z","contentChangedAt":"2026-09-16T10:08:13.343Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}