{"nodes": [{"id": "$graphify-root$_scripts_safety_case", "label": "safety-case", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L1"}, {"id": "$graphify-root$_scripts_safety_case_git_lines", "label": "git_lines()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L17", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_changed_files", "label": "changed_files()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L30", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_load_rules", "label": "load_rules()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L37", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_matched_rules", "label": "matched_rules()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L42", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_risk_order", "label": "risk_order()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L58", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_print_safety_case", "label": "print_safety_case()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L62", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_main", "label": "main()", "file_type": "code", "source_file": "scripts/safety-case", "source_location": "L106", "_callable": true}, {"id": "$graphify-root$_scripts_safety_case_rationale_2", "label": "Generate a read-only safety case for homelab changes.", "file_type": "rationale", "source_file": "scripts/safety-case", "source_location": "L2"}], "edges": [{"source": "$graphify-root$_scripts_safety_case", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "csv", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_git_lines", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_changed_files", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_load_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_matched_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_risk_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L58", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_print_safety_case", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L62", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case", "target": "$graphify-root$_scripts_safety_case_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L106", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_changed_files", "target": "$graphify-root$_scripts_safety_case_git_lines", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_matched_rules", "target": "$graphify-root$_scripts_safety_case_load_rules", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_print_safety_case", "target": "$graphify-root$_scripts_safety_case_risk_order", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L63", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_main", "target": "$graphify-root$_scripts_safety_case_changed_files", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L111", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_main", "target": "$graphify-root$_scripts_safety_case_print_safety_case", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L112", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_main", "target": "$graphify-root$_scripts_safety_case_matched_rules", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L112", "weight": 1.0}, {"source": "$graphify-root$_scripts_safety_case_rationale_2", "target": "$graphify-root$_scripts_safety_case", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/safety-case", "source_location": "L2", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "run", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L18", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "REPO_ROOT", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/safety-case", "source_location": "L19"}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "SystemExit", "is_member_call": false, "source_file": "scripts/safety-case", "source_location": "L26", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "strip", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L26", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "strip", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L27", "receiver": "line"}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "splitlines", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L27", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_git_lines", "callee": "strip", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L27", "receiver": "line"}, {"caller_nid": "$graphify-root$_scripts_safety_case_changed_files", "callee": "strip", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L34", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_load_rules", "callee": "open", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L38", "receiver": "RULES_FILE"}, {"caller_nid": "$graphify-root$_scripts_safety_case_load_rules", "callee": "DictReader", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L39", "receiver": "csv"}, {"caller_nid": "$graphify-root$_scripts_safety_case_load_rules", "callee": "handle", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/safety-case", "source_location": "L39"}, {"caller_nid": "$graphify-root$_scripts_safety_case_matched_rules", "callee": "removeprefix", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L47", "receiver": "file_name"}, {"caller_nid": "$graphify-root$_scripts_safety_case_matched_rules", "callee": "rstrip", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L50", "receiver": "pattern"}, {"caller_nid": "$graphify-root$_scripts_safety_case_matched_rules", "callee": "startswith", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L50", "receiver": "normalized"}, {"caller_nid": "$graphify-root$_scripts_safety_case_matched_rules", "callee": "add", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L53", "receiver": "seen"}, {"caller_nid": "$graphify-root$_scripts_safety_case_matched_rules", "callee": "append", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L54", "receiver": "matches"}, {"caller_nid": "$graphify-root$_scripts_safety_case_risk_order", "callee": "get", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L59", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_risk_order", "callee": "lower", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L59", "receiver": "risk"}, {"caller_nid": "$graphify-root$_scripts_safety_case_print_safety_case", "callee": "get", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L64", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_print_safety_case", "callee": "split", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L81", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_print_safety_case", "callee": "extend", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L89", "receiver": "commands"}, {"caller_nid": "$graphify-root$_scripts_safety_case_print_safety_case", "callee": "split", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L89", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_safety_case_print_safety_case", "callee": "fromkeys", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L90", "receiver": "dict"}, {"caller_nid": "$graphify-root$_scripts_safety_case_main", "callee": "ArgumentParser", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L107", "receiver": "argparse"}, {"caller_nid": "$graphify-root$_scripts_safety_case_main", "callee": "__doc__", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/safety-case", "source_location": "L107"}, {"caller_nid": "$graphify-root$_scripts_safety_case_main", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L108", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_safety_case_main", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L109", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_safety_case_main", "callee": "parse_args", "is_member_call": true, "source_file": "scripts/safety-case", "source_location": "L110", "receiver": "parser"}]}