4
Files
30
Nodes
40
Edges
12
Impact targets
7
Data values
1
State regions
1
Defects
2
Motifs
MVP pipeline
Repository → CISG → Data/State Closure → Impact Engine → review scope
v0.5 technical view preserves one-hop direct evidence from bounded derived impact. Derived impact uses resolved local-call reachability and shared-state coupling; it is review scope, not a claim that every reachable entity will change at runtime.
Metrics
{
"loaded_files": 4,
"nodes": 30,
"edges": 40,
"node_types": {
"file": 4,
"function": 4,
"control": 2,
"data_value": 7,
"state_region": 1,
"data_use": 2,
"data_sink": 4,
"effect": 1,
"boundary_call": 3,
"data_phi": 1,
"data_undefined": 1
},
"edge_types": {
"contains": 4,
"imports": 2,
"controls": 2,
"defines": 8,
"reads_state": 1,
"writes_state": 1,
"contains_data": 6,
"flows_to": 3,
"returns_value": 4,
"effect": 1,
"calls": 5,
"guards": 1,
"phi_input": 2
},
"resolved_local_calls": 2,
"boundary_calls": 3,
"findings_by_category": {
"defect": 1
},
"findings_by_severity": {
"high": 1
},
"motif_instances": 2,
"motif_clusters": 1,
"data_values": 7,
"phi_nodes": 1,
"data_edges": 18,
"alias_edges": 0,
"state_regions": 1,
"state_reads": 1,
"state_writes": 1,
"module_binding_reads": 0,
"exception_handlers": 0,
"explicit_raises": 0,
"unresolved_local_uses": 1,
"warnings": 0
}Highest review breadth
| Kind | Target | Review breadth | Path |
|---|---|---|---|
| function | 8 | app.py | |
| function | 7 | extra.py | |
| function | 7 | helper.py | |
| state_region | 1 | ||
| function | 0 | bad.py |
Warnings
- None
Impact Engine
Direct = one-hop graph evidence. Derived = bounded resolved call paths + shared-state coupling. No single impact score is treated as truth.
Choose a target.
Code-Induced Semantic Graph
Overview shows 8 of 8 file/class/function entities. Full graph is in cisg.json / cisg.graphml.
Node evidence
Click a node.
SSA-like data flow
Local data footprint feeds Impact Engine but is not transitive across function boundaries.
| Relation | Source | Target | Evidence | Status |
|---|---|---|---|---|
| flows_to | f#1 | expr@11 | app.py:11 | observed |
| flows_to | old#1 | expr@11 | app.py:11 | observed |
| flows_to | x#0 | expr@12 | app.py:12 | observed |
| returns_value | x#0 | return@13 | app.py:13 | observed |
| guards | flag#0 | branch | bad.py:2 | observed |
| phi_input | value#1 | value#2 | bad.py:2 | strongly_inferred |
| phi_input | value:undefined | value#2 | bad.py:2 | unresolved |
| returns_value | value#2 | return@4 | bad.py:4 | observed |
| returns_value | x#0 | return@2 | extra.py:2 | observed |
| returns_value | x#0 | return@2 | helper.py:2 | observed |
State regions
| Access | Function | Region | Kind | Evidence |
|---|---|---|---|---|
| reads_state | root | app:global:CACHE | module_global | app.py:8 |
| writes_state | root | app:global:CACHE | module_global | app.py:9 |
Module binding reads
| Function | Binding | Evidence |
|---|
Explicit exception flow
| Relation | Source | Target | Evidence | Status |
|---|
Findings
| Severity | Class | Type | Location | Symbol | Evidence statement |
|---|---|---|---|---|---|
| high | defect | possibly_undefined_local | bad.py:4 | broken | Local variable 'value' may be undefined on at least one reaching control-flow path. |
Deterministic motif candidates
| Kind | Path | Symbol | Confidence | Structural rule |
|---|---|---|---|---|
| read_modify_write | app.py | root | 0.86 | same function reads and writes the same state target |
| resource_scope | app.py | root | 0.92 | with/async-with establishes bounded resource scope |
Name-independent structural signature clusters
| Motif ID | Members | Identity basis |
|---|---|---|
| motif_coarse_fca123bd72d6 | 2 | name-independent coarse structural feature signature |
Per-file SHA-256
| Path | Bytes | SHA-256 |
|---|---|---|
| app.py | 224 | 2ec088553b6e6f87… |
| bad.py | 66 | fa44a6a601b5f7c6… |
| extra.py | 29 | 447d7f48d560011b… |
| helper.py | 32 | ae12b83043de4abf… |
Epistemic contract
observed
- Python AST definitions
- imports
- call syntax
- control syntax
- source spans
- local file hashes
- SSA-like local definitions/uses
- self/cls/explicit-global state accesses
- module-binding reads
- explicit raise/except syntax
- definition-time Python name aliases
strongly_inferred
- local call target resolution
- parameter-container state regions
- effect hints
- branch/loop phi merges
- explicit exception catch matching
- structural motif candidates
unresolved
- runtime dispatch
- reflection
- native extension behavior
- external library semantics
- precise heap points-to beyond definition-time alias
- dynamic exception behavior from calls
- concurrency semantics