PBSOI CISG MVP v0.1

/mnt/data/cisg_repolumen_poc/repolumen_slice · Python repository · evidence-grounded static graph

7
Files
343
Nodes
653
Edges
34
Local calls
160
Boundary calls
0
Defects
16
Motifs

MVP pipeline

Repository → Source fingerprint → AST/Symbols → Typed CISG → Deterministic findings → Structural motifs → Interactive evidence view

This MVP intentionally distinguishes defect, anomaly, and hotspot. Unresolved boundaries are preserved rather than guessed.

Metrics

{
  "loaded_files": 7,
  "nodes": 343,
  "edges": 653,
  "node_types": {
    "file": 7,
    "function": 25,
    "class": 1,
    "method": 2,
    "boundary_module": 7,
    "control": 72,
    "state": 165,
    "boundary_call": 63,
    "effect": 1
  },
  "edge_types": {
    "contains": 28,
    "imports": 26,
    "controls": 72,
    "reads_state": 321,
    "calls": 194,
    "writes_state": 11,
    "effect": 1
  },
  "resolved_local_calls": 34,
  "boundary_calls": 160,
  "findings_by_category": {
    "hotspot": 16
  },
  "findings_by_severity": {
    "info": 16
  },
  "motif_instances": 16,
  "motif_clusters": 6,
  "warnings": 0
}

Warnings

  • None

Code-Induced Semantic Graph

Overview shows 35 of 35 file/class/function entities. Full graph is in cisg.json / cisg.graphml.
repo_semantic/architecture_reconstruction.pyrepo_semantic/architectur…{"id": "file_216acbfbab3aa8f9", "type": "file", "label": "repo_semantic/architecture_reconstruction.py", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 1, "end_line": 140, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}}_node_label_node_label{"id": "fn_e361ea60753a8c46", "type": "function", "label": "_node_label", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "_node_label", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 9, "end_line": 10, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_83e42922287b", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 0, "state_writes": 0, "state_read_targets": [], "state_write_targets": [], "local_calls": 0, "boundary_calls": 0}}_flow_description_flow_description{"id": "fn_97d90f0432c7a578", "type": "function", "label": "_flow_description", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "_flow_description", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 13, "end_line": 31, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_374ccd10ba20", "motif_coarse_signature": "motif_coarse_1d063c7b37b2", "features": {"controls": ["for_loop", "branch", "branch", "branch", "branch", "branch"], "effects": [], "state_reads": 19, "state_writes": 0, "state_read_targets": ["Constant.join", "nodes.append", "path.cycle_detected", "path.entrypoint_path", "path.entrypoint_symbol", "path.steps", "path.terminal_reason", "path.truncated", "step.boundary_target", "step.resolution", "step.target_path", "step.target_symbol", "suffixes.append"], "state_write_targets": [], "local_calls": 2, "boundary_calls": 7}}_module_roles_module_roles{"id": "fn_3f1fb3d16b8978ea", "type": "function", "label": "_module_roles", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "_module_roles", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 34, "end_line": 71, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_13c389ff65ec", "motif_coarse_signature": "motif_coarse_f373ee2a1d21", "features": {"controls": ["for_loop", "branch", "for_loop", "branch", "branch", "branch", "branch"], "effects": [], "state_reads": 13, "state_writes": 2, "state_read_targets": ["ar.entrypoints", "ar.relations", "edge.resolution", "edge.source_path", "edge.target_path", "edge.type", "ep.path", "local_paths.add", "rows.append"], "state_write_targets": ["incoming", "outgoing"], "local_calls": 0, "boundary_calls": 7}}_boundaries_boundaries{"id": "fn_fd09cf9e2b07e095", "type": "function", "label": "_boundaries", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "_boundaries", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 74, "end_line": 87, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_f7dace1dc66f", "motif_coarse_signature": "motif_coarse_662d65d73597", "features": {"controls": ["for_loop", "for_loop", "branch", "branch"], "effects": [], "state_reads": 8, "state_writes": 0, "state_read_targets": ["found.append", "path.steps", "seen.add", "step.boundary_target", "step.resolution", "step.source_path", "step.source_symbol", "step.target_path"], "state_write_targets": [], "local_calls": 1, "boundary_calls": 3}}_uncertainties_uncertainties{"id": "fn_2291f84a364aab11", "type": "function", "label": "_uncertainties", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "_uncertainties", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 90, "end_line": 103, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_e3d65573546e", "motif_coarse_signature": "motif_coarse_b4a27ad8a6cb", "features": {"controls": ["branch", "branch", "branch", "branch"], "effects": [], "state_reads": 9, "state_writes": 0, "state_read_targets": ["ar.warnings", "items.append", "path.cycle_detected", "path.steps", "path.terminal_reason", "path.truncated"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 8}}reconstruct_architecturereconstruct_architecture{"id": "fn_8d6b509dc76187cf", "type": "function", "label": "reconstruct_architecture", "path": "repo_semantic/architecture_reconstruction.py", "module": "repo_semantic.architecture_reconstruction", "symbol": "reconstruct_architecture", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/architecture_reconstruction.py", "line": 106, "end_line": 140, "source_hash": "2c70301670ace276f0037c3a651ada8689f28e26c46484262547ed3733af206a", "source_kind": "code"}, "motif_signature": "motif_exact_64bea3474568", "motif_coarse_signature": "motif_coarse_ce08f8f7d524", "features": {"controls": [], "effects": [], "state_reads": 18, "state_writes": 0, "state_read_targets": ["ar.entrypoints", "ar.file_count", "ar.relations", "ar.repo_name", "edge.resolution", "edge.target_path", "edge.type", "ep.confidence", "ep.path", "ep.provenance", "ep.start_line", "ep.symbol", "item.entrypoint_path", "item.entrypoint_symbol", "item.id", "item.steps"], "state_write_targets": [], "local_calls": 4, "boundary_calls": 7}}repo_semantic/execution_paths.pyrepo_semantic/execution_p…{"id": "file_d532ca4e7f3a6bcf", "type": "file", "label": "repo_semantic/execution_paths.py", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 1, "end_line": 164, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}}_edge_sort_key_edge_sort_key{"id": "fn_2f6bf2a655f4264f", "type": "function", "label": "_edge_sort_key", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "_edge_sort_key", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 12, "end_line": 18, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_83b94390c350", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 5, "state_writes": 0, "state_read_targets": ["edge.id", "edge.line", "edge.target", "edge.target_path", "edge.target_symbol"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 0}}_stable_path_id_stable_path_id{"id": "fn_97a60d277af6fd23", "type": "function", "label": "_stable_path_id", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "_stable_path_id", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 21, "end_line": 24, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_6b50fe92331a", "motif_coarse_signature": "motif_coarse_e3a6d82c57d0", "features": {"controls": [], "effects": [], "state_reads": 5, "state_writes": 0, "state_read_targets": ["Constant.join", "JoinedStr.encode", "hashlib.sha1", "hashlib.sha1.hexdigest", "step.relation_id"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 4}}_step_from_edge_step_from_edge{"id": "fn_6635528f8e966281", "type": "function", "label": "_step_from_edge", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "_step_from_edge", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 27, "end_line": 40, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_63f78ec7ebb5", "motif_coarse_signature": "motif_coarse_b2feb91af8fa", "features": {"controls": [], "effects": [], "state_reads": 12, "state_writes": 0, "state_read_targets": ["edge.confidence", "edge.excerpt", "edge.id", "edge.line", "edge.resolution", "edge.source_path", "edge.source_symbol", "edge.target", "edge.target_path", "edge.target_symbol", "edge.type"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 1}}_make_path_make_path{"id": "fn_6d2ea67990112a1d", "type": "function", "label": "_make_path", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "_make_path", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 43, "end_line": 59, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_27e437f70c57", "motif_coarse_signature": "motif_coarse_125fe4728a6b", "features": {"controls": [], "effects": [], "state_reads": 4, "state_writes": 0, "state_read_targets": ["entrypoint.path", "entrypoint.symbol"], "state_write_targets": [], "local_calls": 1, "boundary_calls": 2}}_seed_groups_seed_groups{"id": "fn_3fd59e05f7159acf", "type": "function", "label": "_seed_groups", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "_seed_groups", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 62, "end_line": 83, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_17a159be4a7a", "motif_coarse_signature": "motif_coarse_c10ceceefb4d", "features": {"controls": ["branch", "branch", "branch"], "effects": [], "state_reads": 9, "state_writes": 0, "state_read_targets": ["adjacency.get", "adjacency.items", "entrypoint.path", "entrypoint.symbol", "groups.sort"], "state_write_targets": [], "local_calls": 1, "boundary_calls": 4}}build_execution_pathsbuild_execution_paths{"id": "fn_83565e2b7e9e8281", "type": "function", "label": "build_execution_paths", "path": "repo_semantic/execution_paths.py", "module": "repo_semantic.execution_paths", "symbol": "build_execution_paths", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/execution_paths.py", "line": 86, "end_line": 164, "source_hash": "608725e724891c0bf5201bab4ea0cc135d7a45a24831d0b511fed105eab23e25", "source_kind": "code"}, "motif_signature": "motif_exact_cb2b0999e92f", "motif_coarse_signature": "motif_coarse_6498af11de89", "features": {"controls": ["branch", "branch", "for_loop", "branch", "for_loop", "for_loop", "branch", "branch", "for_loop", "branch", "branch", "branch", "branch", "branch", "branch", "for_loop", "branch"], "effects": [], "state_reads": 22, "state_writes": 0, "state_read_targets": ["adjacency.append", "adjacency.get", "adjacency.values", "all_paths.extend", "edge.resolution", "edge.source_path", "edge.source_symbol", "edge.target_path", "edge.target_symbol", "edge.type", "edges.sort", "emitted.append", "ep.path", "ep.start_line", "ep.symbol"], "state_write_targets": [], "local_calls": 8, "boundary_calls": 22}}repo_semantic/grounding.pyrepo_semantic/grounding.py{"id": "file_f1989f2aae00936b", "type": "file", "label": "repo_semantic/grounding.py", "path": "repo_semantic/grounding.py", "module": "repo_semantic.grounding", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/grounding.py", "line": 1, "end_line": 181, "source_hash": "981aae9fc01d42731766226d9cf6759fff7b45633f622e0e5648435b9185a882", "source_kind": "code"}}_bounded_excerpt_bounded_excerpt{"id": "fn_6b14199829170b87", "type": "function", "label": "_bounded_excerpt", "path": "repo_semantic/grounding.py", "module": "repo_semantic.grounding", "symbol": "_bounded_excerpt", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/grounding.py", "line": 19, "end_line": 23, "source_hash": "981aae9fc01d42731766226d9cf6759fff7b45633f622e0e5648435b9185a882", "source_kind": "code"}, "motif_signature": "motif_exact_9c3d562e35b6", "motif_coarse_signature": "motif_coarse_879c57927c05", "features": {"controls": ["branch"], "effects": [], "state_reads": 1, "state_writes": 0, "state_read_targets": ["value.strip"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 1}}build_grounding_catalogbuild_grounding_catalog{"id": "fn_08cc9995172ef7e1", "type": "function", "label": "build_grounding_catalog", "path": "repo_semantic/grounding.py", "module": "repo_semantic.grounding", "symbol": "build_grounding_catalog", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/grounding.py", "line": 26, "end_line": 128, "source_hash": "981aae9fc01d42731766226d9cf6759fff7b45633f622e0e5648435b9185a882", "source_kind": "code"}, "motif_signature": "motif_exact_4d475af291b8", "motif_coarse_signature": "motif_coarse_1d063c7b37b2", "features": {"controls": ["for_loop", "for_loop", "for_loop", "for_loop", "branch"], "effects": [], "state_reads": 77, "state_writes": 6, "state_read_targets": ["ar.all_evidence", "ar.entrypoints", "ar.execution_paths", "ar.file_count", "ar.language_distribution", "ar.manifests", "ar.relations", "ar.semantic_blocks", "ar.tests", "block.code_excerpt", "block.confidence", "block.end_line", "block.id", "block.inputs", "block.kind", "block.language", "block.outputs", "block.parent_id", "block.path", "block.provenance", "block.side_effect_hints", "block.start_line", "block.symbol", "catalog.values", "edge.confidence", "edge.evidence_id", "edge.excerpt", "edge.id", "edge.line", "edge.provenance", "edge.resolution", "edge.source_path", "edge.source_symbol", "edge.target", "edge.target_path", "edge.target_symbol", "edge.type", "node.confidence", "node.end_line", "node.excerpt", "node.id", "node.observation", "node.path", "node.provenance", "node.start_line", "node.symbol", "node.type", "path.cycle_detected", "path.entrypoint_path", "path.entrypoint_symbol", "path.id", "path.steps", "path.terminal_reason", "path.truncated", "priority.get", "reconstruction.get", "step.confidence", "step.relation_id", "step.resolution", "x.id"], "state_write_targets": ["catalog"], "local_calls": 4, "boundary_calls": 29}}build_provider_requestbuild_provider_request{"id": "fn_78a7dc4c8181355c", "type": "function", "label": "build_provider_request", "path": "repo_semantic/grounding.py", "module": "repo_semantic.grounding", "symbol": "build_provider_request", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/grounding.py", "line": 131, "end_line": 181, "source_hash": "981aae9fc01d42731766226d9cf6759fff7b45633f622e0e5648435b9185a882", "source_kind": "code"}, "motif_signature": "motif_exact_d0c0fe6433ed", "motif_coarse_signature": "motif_coarse_7bef0e8aaa95", "features": {"controls": [], "effects": [], "state_reads": 13, "state_writes": 0, "state_read_targets": ["ar.execution_paths", "ar.file_count", "ar.language_distribution", "ar.manifests", "ar.readme_claims", "ar.repo_name", "ar.snapshot", "ar.snapshot.license_name", "ar.snapshot.revision", "ar.snapshot.source", "ar.tests"], "state_write_targets": [], "local_calls": 2, "boundary_calls": 2}}repo_semantic/historical_timeline.pyrepo_semantic/historical_…{"id": "file_fd85751ba7b0653c", "type": "file", "label": "repo_semantic/historical_timeline.py", "path": "repo_semantic/historical_timeline.py", "module": "repo_semantic.historical_timeline", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/historical_timeline.py", "line": 1, "end_line": 70, "source_hash": "2693e3fd967ac481be8ebd13b279abd92ef78f327194f6795a167e4a213d8b7b", "source_kind": "code"}}_transition_id_transition_id{"id": "fn_09a3e79b2ce684ec", "type": "function", "label": "_transition_id", "path": "repo_semantic/historical_timeline.py", "module": "repo_semantic.historical_timeline", "symbol": "_transition_id", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/historical_timeline.py", "line": 11, "end_line": 13, "source_hash": "2693e3fd967ac481be8ebd13b279abd92ef78f327194f6795a167e4a213d8b7b", "source_kind": "code"}, "motif_signature": "motif_exact_6d71ac12096a", "motif_coarse_signature": "motif_coarse_e3a6d82c57d0", "features": {"controls": [], "effects": [], "state_reads": 3, "state_writes": 0, "state_read_targets": ["JoinedStr.encode", "hashlib.sha256", "hashlib.sha256.hexdigest"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 3}}build_historical_timelinebuild_historical_timeline{"id": "fn_b15eed9230250d73", "type": "function", "label": "build_historical_timeline", "path": "repo_semantic/historical_timeline.py", "module": "repo_semantic.historical_timeline", "symbol": "build_historical_timeline", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/historical_timeline.py", "line": 16, "end_line": 70, "source_hash": "2693e3fd967ac481be8ebd13b279abd92ef78f327194f6795a167e4a213d8b7b", "source_kind": "code"}, "motif_signature": "motif_exact_78d38b13118c", "motif_coarse_signature": "motif_coarse_1d063c7b37b2", "features": {"controls": ["branch", "for_loop", "branch"], "effects": [], "state_reads": 29, "state_writes": 0, "state_read_targets": ["cache.history", "current.analysis", "current.file_fingerprints", "current.observed_at", "current.revision", "current.snapshot_id", "item.analyzer_version", "item.observed_at", "item.origin", "item.revision", "item.revision_metadata", "item.revision_metadata.history_sequence", "item.revision_metadata.source", "item.snapshot_id", "item.source_key", "previous.analysis", "previous.file_fingerprints", "previous.observed_at", "previous.revision", "previous.snapshot_id", "transitions.append", "warnings.append"], "state_write_targets": [], "local_calls": 3, "boundary_calls": 10}}repo_semantic/incremental.pyrepo_semantic/incremental.py{"id": "file_ac3545fcb0dfb1f4", "type": "file", "label": "repo_semantic/incremental.py", "path": "repo_semantic/incremental.py", "module": "repo_semantic.incremental", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/incremental.py", "line": 1, "end_line": 14, "source_hash": "94c006ad1e6bb1857d2527829b9544755eca304e01c5ef7ebbbd91680480f659", "source_kind": "code"}}diff_file_fingerprintsdiff_file_fingerprints{"id": "fn_975893654c28d4b6", "type": "function", "label": "diff_file_fingerprints", "path": "repo_semantic/incremental.py", "module": "repo_semantic.incremental", "symbol": "diff_file_fingerprints", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/incremental.py", "line": 6, "end_line": 14, "source_hash": "94c006ad1e6bb1857d2527829b9544755eca304e01c5ef7ebbbd91680480f659", "source_kind": "code"}, "motif_signature": "motif_exact_116a2bd43026", "motif_coarse_signature": "motif_coarse_ff49519e01f1", "features": {"controls": [], "effects": [], "state_reads": 0, "state_writes": 0, "state_read_targets": [], "state_write_targets": [], "local_calls": 0, "boundary_calls": 7}}repo_semantic/limits.pyrepo_semantic/limits.py{"id": "file_6ff25584db5bdee9", "type": "file", "label": "repo_semantic/limits.py", "path": "repo_semantic/limits.py", "module": "repo_semantic.limits", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/limits.py", "line": 1, "end_line": 78, "source_hash": "36c30278003ea4891e3b7a14743d065a8aa35472922a8b41d8a8a0d81bd4bc10", "source_kind": "code"}}skip_reasonskip_reason{"id": "fn_3131d34e95819520", "type": "function", "label": "skip_reason", "path": "repo_semantic/limits.py", "module": "repo_semantic.limits", "symbol": "skip_reason", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/limits.py", "line": 31, "end_line": 52, "source_hash": "36c30278003ea4891e3b7a14743d065a8aa35472922a8b41d8a8a0d81bd4bc10", "source_kind": "code"}, "motif_signature": "motif_exact_b9d361476838", "motif_coarse_signature": "motif_coarse_eef8fafa6aa1", "features": {"controls": ["try", "branch", "branch", "branch", "branch", "try", "with_scope", "branch"], "effects": ["file_io"], "state_reads": 7, "state_writes": 0, "state_read_targets": ["exc.__class__", "exc.__class__.__name__", "lower.endswith", "path.stat", "path.stat.st_size", "rel.lower"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 8}}RelationBudgetRelationBudget{"id": "class_ab683acba4284345", "type": "class", "label": "RelationBudget", "path": "repo_semantic/limits.py", "module": "repo_semantic.limits", "symbol": "RelationBudget", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/limits.py", "line": 55, "end_line": 78, "source_hash": "36c30278003ea4891e3b7a14743d065a8aa35472922a8b41d8a8a0d81bd4bc10", "source_kind": "code"}}RelationBudget.__init__RelationBudget.__init__{"id": "fn_797ce9de5b763bde", "type": "method", "label": "RelationBudget.__init__", "path": "repo_semantic/limits.py", "module": "repo_semantic.limits", "symbol": "RelationBudget.__init__", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/limits.py", "line": 61, "end_line": 64, "source_hash": "36c30278003ea4891e3b7a14743d065a8aa35472922a8b41d8a8a0d81bd4bc10", "source_kind": "code"}, "motif_signature": "motif_exact_9b70d5bb9e71", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 0, "state_writes": 2, "state_read_targets": [], "state_write_targets": ["self.exhausted", "self.truncated"], "local_calls": 0, "boundary_calls": 0}}RelationBudget.trimRelationBudget.trim{"id": "fn_b5deed204ee6ea29", "type": "method", "label": "RelationBudget.trim", "path": "repo_semantic/limits.py", "module": "repo_semantic.limits", "symbol": "RelationBudget.trim", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/limits.py", "line": 66, "end_line": 78, "source_hash": "36c30278003ea4891e3b7a14743d065a8aa35472922a8b41d8a8a0d81bd4bc10", "source_kind": "code"}, "motif_signature": "motif_exact_71e847b42bb2", "motif_coarse_signature": "motif_coarse_2e95237eb010", "features": {"controls": ["branch", "branch", "branch"], "effects": [], "state_reads": 11, "state_writes": 1, "state_read_targets": ["self.exhausted", "self.per_file", "self.total", "self.truncated", "self.truncated.append"], "state_write_targets": ["self.exhausted"], "local_calls": 0, "boundary_calls": 4}}repo_semantic/semantic_diff.pyrepo_semantic/semantic_di…{"id": "file_821cd3a271ed5fd1", "type": "file", "label": "repo_semantic/semantic_diff.py", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 1, "end_line": 111, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}}_symbol_identity_symbol_identity{"id": "fn_e8848170feac86e5", "type": "function", "label": "_symbol_identity", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "_symbol_identity", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 12, "end_line": 14, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_785bf15692b1", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 4, "state_writes": 0, "state_read_targets": ["item.path", "item.start_line", "item.symbol", "item.type"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 0}}_entrypoint_identity_entrypoint_identity{"id": "fn_e279df0cfe9e29d4", "type": "function", "label": "_entrypoint_identity", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "_entrypoint_identity", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 17, "end_line": 18, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_f6a880fecbf9", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 2, "state_writes": 0, "state_read_targets": ["item.path", "item.symbol"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 0}}_relation_ids_relation_ids{"id": "fn_3c9fb80ffc09b71f", "type": "function", "label": "_relation_ids", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "_relation_ids", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 21, "end_line": 22, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_3f6528288685", "motif_coarse_signature": "motif_coarse_fca123bd72d6", "features": {"controls": [], "effects": [], "state_reads": 1, "state_writes": 0, "state_read_targets": ["item.id"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 0}}_relation_targets_relation_targets{"id": "fn_2c99672738667854", "type": "function", "label": "_relation_targets", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "_relation_targets", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 25, "end_line": 39, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_ef21a5364476", "motif_coarse_signature": "motif_coarse_f373ee2a1d21", "features": {"controls": ["for_loop", "branch", "branch", "branch", "branch"], "effects": [], "state_reads": 14, "state_writes": 0, "state_read_targets": ["edge.source_path", "edge.source_symbol", "edge.target_path", "edge.target_symbol", "edge.type", "targets.add"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 5}}_lesson_invalidations_lesson_invalidations{"id": "fn_15ef83706c11de0e", "type": "function", "label": "_lesson_invalidations", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "_lesson_invalidations", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 42, "end_line": 49, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_35d48de2deab", "motif_coarse_signature": "motif_coarse_b4a27ad8a6cb", "features": {"controls": ["branch", "branch"], "effects": [], "state_reads": 6, "state_writes": 0, "state_read_targets": ["changes.changed", "invalid.update", "path.rsplit", "path.rsplit.lower", "path.split"], "state_write_targets": [], "local_calls": 0, "boundary_calls": 10}}build_semantic_diffbuild_semantic_diff{"id": "fn_a46fcfa9dfa949d9", "type": "function", "label": "build_semantic_diff", "path": "repo_semantic/semantic_diff.py", "module": "repo_semantic.semantic_diff", "symbol": "build_semantic_diff", "async": false, "status": "observed", "confidence": 1.0, "evidence": {"path": "repo_semantic/semantic_diff.py", "line": 52, "end_line": 111, "source_hash": "dafdcb13775c6797310c7b513c02a851b7ddeb1429f19f6358ea04b5c1791844", "source_kind": "code"}, "motif_signature": "motif_exact_ccbedf978e98", "motif_coarse_signature": "motif_coarse_6498af11de89", "features": {"controls": ["branch", "for_loop", "branch", "branch"], "effects": [], "state_reads": 29, "state_writes": 0, "state_read_targets": ["block.id", "block.kind", "block.path", "block.symbol", "changed_relation_edges.extend", "changes.changed", "current.entrypoints", "current.relations", "current.semantic_blocks", "current.snapshot", "current.snapshot.revision", "current.symbols", "impact_targets.add", "item.id", "item.path", "previous.entrypoints", "previous.relations", "previous.semantic_blocks", "previous.snapshot", "previous.snapshot.revision", "previous.symbols"], "state_write_targets": [], "local_calls": 8, "boundary_calls": 16}}

Node evidence

Click a node.

Findings

SeverityClassTypeLocationSymbolEvidence statement
infohotspotboundary_heavyrepo_semantic/architecture_reconstruction.py:_uncertaintiesMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/execution_paths.py:build_execution_pathsMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/grounding.py:build_grounding_catalogMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/historical_timeline.py:build_historical_timelineMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/limits.py:skip_reasonMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/semantic_diff.py:_lesson_invalidationsMany calls cross the resolved graph boundary.
infohotspotboundary_heavyrepo_semantic/semantic_diff.py:build_semantic_diffMany calls cross the resolved graph boundary.
infohotspothigh_call_fanoutrepo_semantic/architecture_reconstruction.py:_flow_descriptionHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/architecture_reconstruction.py:_uncertaintiesHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/architecture_reconstruction.py:reconstruct_architectureHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/execution_paths.py:build_execution_pathsHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/grounding.py:build_grounding_catalogHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/historical_timeline.py:build_historical_timelineHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/limits.py:skip_reasonHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/semantic_diff.py:_lesson_invalidationsHigh static call fan-out; review as an orchestration/hotspot node.
infohotspothigh_call_fanoutrepo_semantic/semantic_diff.py:build_semantic_diffHigh static call fan-out; review as an orchestration/hotspot node.

Deterministic motif candidates

KindPathSymbolConfidenceStructural rule
boundary_orchestrationrepo_semantic/architecture_reconstruction.py_flow_description0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/architecture_reconstruction.py_module_roles0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/architecture_reconstruction.py_uncertainties0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/architecture_reconstruction.pyreconstruct_architecture0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/execution_paths.pybuild_execution_paths0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/grounding.pybuild_grounding_catalog0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/historical_timeline.pybuild_historical_timeline0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/incremental.pydiff_file_fingerprints0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/limits.pyskip_reason0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/semantic_diff.py_lesson_invalidations0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/semantic_diff.py_relation_targets0.72five or more unresolved/external calls
boundary_orchestrationrepo_semantic/semantic_diff.pybuild_semantic_diff0.72five or more unresolved/external calls
orchestration_fanoutrepo_semantic/execution_paths.pybuild_execution_paths0.85five or more resolved local calls
orchestration_fanoutrepo_semantic/semantic_diff.pybuild_semantic_diff0.85five or more resolved local calls
read_modify_writerepo_semantic/limits.pyRelationBudget.trim0.86same function reads and writes the same state target
resource_scoperepo_semantic/limits.pyskip_reason0.92with/async-with establishes bounded resource scope

Name-independent structural signature clusters

Motif IDMembersIdentity basis
motif_coarse_1d063c7b37b23name-independent coarse structural feature signature
motif_coarse_6498af11de892name-independent coarse structural feature signature
motif_coarse_b4a27ad8a6cb2name-independent coarse structural feature signature
motif_coarse_e3a6d82c57d02name-independent coarse structural feature signature
motif_coarse_f373ee2a1d212name-independent coarse structural feature signature
motif_coarse_fca123bd72d66name-independent coarse structural feature signature

Per-file SHA-256

PathBytesSHA-256
repo_semantic/architecture_reconstruction.py51452c70301670ace276…
repo_semantic/execution_paths.py5894608725e724891c0b…
repo_semantic/grounding.py7189981aae9fc01d4273…
repo_semantic/historical_timeline.py27292693e3fd967ac481…
repo_semantic/incremental.py64494c006ad1e6bb185…
repo_semantic/limits.py403936c30278003ea489…
repo_semantic/semantic_diff.py4890dafdcb13775c6797…

Epistemic contract

observed

  • Python AST definitions
  • imports
  • call syntax
  • control syntax
  • source spans
  • local file hashes

strongly_inferred

  • local call target resolution
  • attribute state access hints
  • effect hints
  • structural motif candidates

unresolved

  • runtime dispatch
  • reflection
  • native extension behavior
  • external library semantics
  • true receiver types without type flow
  • concurrency semantics