Scan timing: clone 1.33s · analysis 2.06s · 0.9 MB · GitHub API rate-limit (preflight)
https://github.com/safishamsi/graphify
· scanned 2026-06-05 09:47 UTC (5 days, 17 hours ago)
· 10 languages
277 raw signals (95 security + 182 graph) 80th percentile · Python · small (2-20K LoC) System graph score 94 (lower by 13)
Last scanned 5 days, 17 hours ago · v2 · 110 actionable findings from 2 signal sources. 75 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
87.0 | 0.20 | 17.40 |
documentation_score |
74.0 | 0.15 | 11.10 |
practices_score |
72.0 | 0.15 | 10.80 |
code_quality |
52.4 | 0.10 | 5.24 |
| Overall | 1.00 | 80.8 |
All 3512 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_make_git_repo |
software | healthy | tests/test_hooks.py:10 |
test_install_creates_hook |
software | healthy | tests/test_hooks.py:15 |
test_install_is_executable |
software | healthy | tests/test_hooks.py:24 |
test_install_idempotent |
software | healthy | tests/test_hooks.py:34 |
test_install_appends_to_existing_hook |
software | healthy | tests/test_hooks.py:44 |
test_uninstall_removes_hook |
software | healthy | tests/test_hooks.py:55 |
test_uninstall_no_hook |
software | healthy | tests/test_hooks.py:64 |
test_status_installed |
software | healthy | tests/test_hooks.py:70 |
test_status_not_installed |
software | healthy | tests/test_hooks.py:77 |
test_no_git_repo_raises |
software | healthy | tests/test_hooks.py:83 |
test_install_creates_post_checkout_hook |
software | healthy | tests/test_hooks.py:88 |
test_install_post_checkout_is_executable |
software | healthy | tests/test_hooks.py:96 |
test_uninstall_removes_post_checkout_hook |
software | healthy | tests/test_hooks.py:106 |
test_status_shows_both_hooks |
software | healthy | tests/test_hooks.py:114 |
test_hooks_dir_resolves_relative_git_hooks_path |
software | healthy | tests/test_hooks.py:124 |
fake_run |
software | healthy | tests/test_hooks.py:151 |
test_hooks_dir_rejects_multiline_git_output |
software | healthy | tests/test_hooks.py:135 |
test_hooks_dir_accepts_absolute_git_hooks_path |
software | healthy | tests/test_hooks.py:147 |
test_hook_skips_head_on_exe |
software | healthy | tests/test_hooks.py:158 |
test_install_embeds_pinned_interpreter |
software | healthy | tests/test_hooks.py:164 |
test_install_fallback_is_loud_not_silent |
software | healthy | tests/test_hooks.py:190 |
test_hook_check_no_additionalContext |
software | healthy | tests/test_hooks.py:202 |
test_antigravity_project_install_writes_rules_and_workflows |
software | healthy | tests/test_antigravity_install.py:11 |
test_antigravity_project_uninstall_clears_rules_and_workflo… |
software | healthy | tests/test_antigravity_install.py:23 |
fake_claude |
software | healthy | tests/test_claude_cli_backend.py:44 |
test_returns_parsed_nodes_and_edges |
software | healthy | tests/test_claude_cli_backend.py:52 |
test_token_accounting_includes_cache |
software | healthy | tests/test_claude_cli_backend.py:58 |
test_finish_reason_length_on_max_tokens |
software | healthy | tests/test_claude_cli_backend.py:66 |
test_raises_when_cli_missing |
software | healthy | tests/test_claude_cli_backend.py:76 |
test_raises_on_nonzero_exit |
software | healthy | tests/test_claude_cli_backend.py:82 |
test_raises_on_garbage_envelope |
software | healthy | tests/test_claude_cli_backend.py:90 |
test_extract_files_direct_dispatches_to_claude_cli |
software | healthy | tests/test_claude_cli_backend.py:98 |
test_backend_registered_with_zero_cost |
software | healthy | tests/test_claude_cli_backend.py:106 |
test_no_session_persistence_flag_in_subprocess |
software | healthy | tests/test_claude_cli_backend.py:114 |
test_windows_prefers_claude_cmd_over_bare_claude |
software | healthy | tests/test_claude_cli_backend.py:123 |
fake_which |
software | healthy | tests/test_claude_cli_backend.py:158 |
test_windows_falls_back_to_bare_claude_when_cmd_missing |
software | healthy | tests/test_claude_cli_backend.py:151 |
test_windows_raises_when_neither_cmd_nor_bare_claude_present |
software | healthy | tests/test_claude_cli_backend.py:174 |
test_non_windows_uses_bare_claude |
software | healthy | tests/test_claude_cli_backend.py:183 |
test_resolve_api_timeout_default |
software | healthy | tests/test_claude_cli_backend.py:201 |
test_resolve_api_timeout_env_override |
software | healthy | tests/test_claude_cli_backend.py:206 |
test_resolve_api_timeout_ignores_invalid |
software | healthy | tests/test_claude_cli_backend.py:211 |
test_resolve_api_timeout_ignores_nonpositive |
software | healthy | tests/test_claude_cli_backend.py:216 |
test_claude_cli_extraction_honours_timeout |
software | healthy | tests/test_claude_cli_backend.py:221 |
test_call_llm_claude_cli_branch_honours_timeout |
software | healthy | tests/test_claude_cli_backend.py:227 |
_has_real_bundle |
software | healthy | tests/test_install_roundtrip.py:38 |
test_skill_roundtrip_at_real_destination |
software | healthy | tests/test_install_roundtrip.py:48 |
test_amp_user_install_at_corrected_agents_path |
software | healthy | tests/test_install_roundtrip.py:97 |
test_amp_project_install_at_agents_path |
software | healthy | tests/test_install_roundtrip.py:112 |
test_vscode_install_uninstall_roundtrip |
software | healthy | tests/test_install_roundtrip.py:125 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ARCHITECTURE.md |
software | healthy | ARCHITECTURE.md |
README.md |
software | healthy | README.md |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
pyproject.toml |
software | healthy | pyproject.toml |
SECURITY.md |
software | healthy | SECURITY.md |
AGENTS.md |
software | healthy | AGENTS.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
test_hooks.py |
software | healthy | tests/test_hooks.py |
test_antigravity_install.py |
software | healthy | tests/test_antigravity_install.py |
test_claude_cli_backend.py |
software | healthy | tests/test_claude_cli_backend.py |
test_install_roundtrip.py |
software | healthy | tests/test_install_roundtrip.py |
test_pascal.py |
software | healthy | tests/test_pascal.py |
test_chunking.py |
software | healthy | tests/test_chunking.py |
test_install_strings.py |
software | healthy | tests/test_install_strings.py |
test_extract.py |
software | healthy | tests/test_extract.py |
test_rationale.py |
software | healthy | tests/test_rationale.py |
test_google_workspace.py |
software | healthy | tests/test_google_workspace.py |
test_claude_md.py |
software | healthy | tests/test_claude_md.py |
test_serve.py |
software | healthy | tests/test_serve.py |
__init__.py |
software | healthy | tests/__init__.py |
test_import_extension_resolution.py |
software | healthy | tests/test_import_extension_resolution.py |
conftest.py |
software | healthy | tests/conftest.py |
test_extract_cli.py |
software | healthy | tests/test_extract_cli.py |
test_dotnet.py |
software | healthy | tests/test_dotnet.py |
test_mcp_ingest.py |
software | healthy | tests/test_mcp_ingest.py |
test_confidence.py |
software | healthy | tests/test_confidence.py |
test_report.py |
software | healthy | tests/test_report.py |
test_watch.py |
software | healthy | tests/test_watch.py |
test_global_graph.py |
software | healthy | tests/test_global_graph.py |
test_ingest.py |
software | healthy | tests/test_ingest.py |
test_wheel_packaging.py |
software | healthy | tests/test_wheel_packaging.py |
test_backend_extras.py |
software | healthy | tests/test_backend_extras.py |
test_skillgen.py |
software | healthy | tests/test_skillgen.py |
test_install_upgrade.py |
software | healthy | tests/test_install_upgrade.py |
test_detect.py |
software | healthy | tests/test_detect.py |
test_charmap_encoding.py |
software | healthy | tests/test_charmap_encoding.py |
test_read_hook.py |
software | healthy | tests/test_read_hook.py |
test_python_import_resolution.py |
software | healthy | tests/test_python_import_resolution.py |
test_llm_parser.py |
software | healthy | tests/test_llm_parser.py |
test_path_cli.py |
software | healthy | tests/test_path_cli.py |
test_analyze.py |
software | healthy | tests/test_analyze.py |
test_build.py |
software | healthy | tests/test_build.py |
test_dedup.py |
software | healthy | tests/test_dedup.py |
bench_extract.py |
software | healthy | tests/bench_extract.py |
test_ts_inheritance.py |
software | healthy | tests/test_ts_inheritance.py |
test_file_node_id_spec.py |
software | healthy | tests/test_file_node_id_spec.py |
test_transcribe.py |
software | healthy | tests/test_transcribe.py |
test_validate.py |
software | healthy | tests/test_validate.py |
test_obsidian_filename_cap.py |
software | healthy | tests/test_obsidian_filename_cap.py |
test_cli_export.py |
software | healthy | tests/test_cli_export.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
FakePool |
software | healthy | tests/test_extract.py:563 |
Result |
software | healthy | tests/test_google_workspace.py:106 |
FakeJieba |
software | healthy | tests/test_serve.py:482 |
TestSubprocessEncoding |
software | healthy | tests/test_charmap_encoding.py:57 |
TestLoudChunkFailure |
software | healthy | tests/test_charmap_encoding.py:141 |
TestSubstitutionValidation |
software | healthy | tests/test_charmap_encoding.py:220 |
_Result |
software | healthy | tests/test_cpp_preprocess.py:19 |
TestClassify |
software | healthy | tests/test_prs.py:57 |
TestParseCi |
software | healthy | tests/test_prs.py:97 |
TestPathMatch |
software | healthy | tests/test_prs.py:131 |
TestComputePrImpact |
software | healthy | tests/test_prs.py:153 |
TestFetchWorktrees |
software | healthy | tests/test_prs.py:211 |
TestFormatPrsText |
software | healthy | tests/test_prs.py:282 |
TestDetectDefaultBranch |
software | healthy | tests/test_prs.py:333 |
TestBuildCommunityLabels |
software | healthy | tests/test_prs.py:379 |
TestDart |
software | healthy | tests/test_dart.py:10 |
_Usage |
software | healthy | tests/test_llm_backends.py:227 |
_Message |
software | healthy | tests/test_llm_backends.py:232 |
_Choice |
software | healthy | tests/test_llm_backends.py:236 |
_Resp |
software | healthy | tests/test_llm_backends.py:241 |
_FakeOpenAI |
software | healthy | tests/test_llm_backends.py:341 |
_Custom |
software | healthy | tests/test_security.py:298 |
Analyzer |
software | healthy | tests/fixtures/sample_calls.py:17 |
Transformer |
software | healthy | tests/fixtures/sample.py:1 |
HttpClient |
software | healthy | tests/fixtures/sample.ts:HttpClient |
UserService |
software | healthy | tests/fixtures/typescript_advanced.ts:UserService |
UserModule |
software | healthy | tests/fixtures/typescript_advanced.ts:UserModule |
Timeout |
software | healthy | worked/httpx/raw/client.py:16 |
Limits |
software | healthy | worked/httpx/raw/client.py:24 |
BaseClient |
software | healthy | worked/httpx/raw/client.py:31 |
Client |
software | healthy | worked/httpx/raw/client.py:70 |
AsyncClient |
software | healthy | worked/httpx/raw/client.py:123 |
Auth |
software | healthy | worked/httpx/raw/auth.py:12 |
BasicAuth |
software | healthy | worked/httpx/raw/auth.py:20 |
BearerAuth |
software | healthy | worked/httpx/raw/auth.py:35 |
DigestAuth |
software | healthy | worked/httpx/raw/auth.py:46 |
NetRCAuth |
software | healthy | worked/httpx/raw/auth.py:100 |
HTTPError |
software | healthy | worked/httpx/raw/exceptions.py:7 |
RequestError |
software | healthy | worked/httpx/raw/exceptions.py:14 |
TransportError |
software | healthy | worked/httpx/raw/exceptions.py:18 |
TimeoutException |
software | healthy | worked/httpx/raw/exceptions.py:22 |
ConnectTimeout |
software | healthy | worked/httpx/raw/exceptions.py:26 |
ReadTimeout |
software | healthy | worked/httpx/raw/exceptions.py:30 |
WriteTimeout |
software | healthy | worked/httpx/raw/exceptions.py:34 |
PoolTimeout |
software | healthy | worked/httpx/raw/exceptions.py:38 |
NetworkError |
software | healthy | worked/httpx/raw/exceptions.py:42 |
ConnectError |
software | healthy | worked/httpx/raw/exceptions.py:46 |
ReadError |
software | healthy | worked/httpx/raw/exceptions.py:50 |
WriteError |
software | healthy | worked/httpx/raw/exceptions.py:54 |
CloseError |
software | healthy | worked/httpx/raw/exceptions.py:58 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
fixtures |
software | healthy | tests/fixtures |
graphify-out |
software | healthy | tests/fixtures/graphify-out |
cache |
software | healthy | tests/fixtures/graphify-out/cache |
crate_a |
software | healthy | tests/fixtures/crate_a |
src |
software | healthy | tests/fixtures/crate_a/src |
swift_cross_file |
software | healthy | tests/fixtures/swift_cross_file |
crate_b |
software | healthy | tests/fixtures/crate_b |
src |
software | healthy | tests/fixtures/crate_b/src |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
translations |
software | healthy | docs/translations |
worked |
software | healthy | worked |
httpx |
software | healthy | worked/httpx |
raw |
software | healthy | worked/httpx/raw |
karpathy-repos |
software | healthy | worked/karpathy-repos |
rsl-siege-manager |
software | healthy | worked/rsl-siege-manager |
example |
software | healthy | worked/example |
raw |
software | healthy | worked/example/raw |
mixed-corpus |
software | healthy | worked/mixed-corpus |
raw |
software | healthy | worked/mixed-corpus/raw |
tools |
software | healthy | tools |
skillgen |
software | healthy | tools/skillgen |
expected |
software | healthy | tools/skillgen/expected |
fragments |
software | healthy | tools/skillgen/fragments |
dispatch |
software | healthy | tools/skillgen/fragments/dispatch |
references |
software | healthy | tools/skillgen/fragments/references |
host |
software | healthy | tools/skillgen/fragments/references/host |
shared |
software | healthy | tools/skillgen/fragments/references/shared |
query |
software | healthy | tools/skillgen/fragments/references/query |
extra |
software | healthy | tools/skillgen/fragments/extra |
always-on |
software | healthy | tools/skillgen/fragments/always-on |
core |
software | healthy | tools/skillgen/fragments/core |
shell |
software | healthy | tools/skillgen/fragments/shell |
query-stub |
software | healthy | tools/skillgen/fragments/query-stub |
graphify |
software | healthy | graphify |
always_on |
software | healthy | graphify/always_on |
skills |
software | healthy | graphify/skills |
trae |
software | healthy | graphify/skills/trae |
references |
software | healthy | graphify/skills/trae/references |
pi |
software | healthy | graphify/skills/pi |
references |
software | healthy | graphify/skills/pi/references |
windows |
software | healthy | graphify/skills/windows |
references |
software | healthy | graphify/skills/windows/references |
vscode |
software | healthy | graphify/skills/vscode |
references |
software | healthy | graphify/skills/vscode/references |
opencode |
software | healthy | graphify/skills/opencode |
references |
software | healthy | graphify/skills/opencode/references |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
0.17.2.4 |
network | healthy | pyproject.toml |
169.254.169.254 |
network | healthy | tests/test_ollama.py |
169.254.1.5 |
network | healthy | tests/test_ollama.py |
192.168.1.50 |
network | healthy | tests/test_ollama.py |
127.0.0.1 |
network | healthy | graphify/llm.py |
169.254.0.0 |
network | healthy | graphify/llm.py |
100.64.0.0 |
network | healthy | graphify/security.py |
| Label | Layer | Status | Path |
|---|---|---|---|
Sales |
data | healthy | tests/fixtures/sample_schema_qualified.sql |
organizations |
data | healthy | tests/fixtures/sample.sql |
users |
data | healthy | tests/fixtures/sample.sql |
customers |
data | healthy | tests/fixtures/sample_alter_fk.sql |
orders |
data | healthy | tests/fixtures/sample_alter_fk.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | worked/rsl-siege-manager/manifest.json |
vps::aws |
hardware | healthy | graphify/llm.py |
| Label | Layer | Status | Path |
|---|---|---|---|
skillgen-check |
cicd | healthy | .github/workflows/ci.yml |
test |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-18u8rzhu |
software | healthy | /tmp/repobility-clone-18u8rzhu |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | tests/test_rationale.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:443 |
network | healthy | worked/httpx/raw/transport.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | tests/test_provider_registry.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/98c25ccc-a7b9-4065-aff3-5d6d9386ae7c/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/98c25ccc-a7b9-4065-aff3-5d6d9386ae7c/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.