Scan timing: clone 1.72s · analysis 19.76s · 4.2 MB · GitHub API rate-limit (preflight)
https://github.com/jsiek/deduce
· scanned 2026-06-05 14:50 UTC (5 days, 4 hours ago)
· 10 languages
428 raw signals (138 security + 290 graph) 88th percentile · Python · medium (20-100K LoC) System graph score 79 (higher by 4)
Last scanned 5 days, 4 hours ago · v2 · 188 actionable findings from 2 signal sources. 95 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 |
100.0 | 0.15 | 15.00 |
security_score |
83.1 | 0.25 | 20.77 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
83.0 | 0.15 | 12.45 |
practices_score |
72.0 | 0.15 | 10.80 |
code_quality |
42.4 | 0.10 | 4.24 |
| Overall | 1.00 | 83.3 |
All 2604 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 |
|---|---|---|---|
_try_check_proof_of |
software | healthy | checker_proofs.py:95 |
generate_proof_name |
software | healthy | checker_proofs.py:113 |
_check_proof_recall |
software | healthy | checker_proofs.py:133 |
_check_proof_var |
software | healthy | checker_proofs.py:150 |
_check_proof_true |
software | healthy | checker_proofs.py:160 |
_check_proof_and_elim |
software | healthy | checker_proofs.py:163 |
_check_proof_evaluate_fact |
software | healthy | checker_proofs.py:179 |
_check_proof_apply_defs_fact |
software | healthy | checker_proofs.py:187 |
_check_proof_rewrite_fact |
software | healthy | checker_proofs.py:191 |
_check_proof_simplify_fact |
software | healthy | checker_proofs.py:199 |
_check_proof_hole |
software | healthy | checker_proofs.py:207 |
_check_proof_sorry |
software | healthy | checker_proofs.py:210 |
_check_proof_help_use |
software | healthy | checker_proofs.py:213 |
_check_proof_tlet_new |
software | healthy | checker_proofs.py:217 |
_check_proof_let |
software | healthy | checker_proofs.py:223 |
_check_proof_annot |
software | healthy | checker_proofs.py:236 |
_check_proof_tuple |
software | healthy | checker_proofs.py:247 |
_check_proof_imp_intro |
software | healthy | checker_proofs.py:252 |
_check_proof_all_intro |
software | healthy | checker_proofs.py:262 |
_check_proof_all_elim |
software | healthy | checker_proofs.py:275 |
_check_proof_all_elim_types |
software | healthy | checker_proofs.py:305 |
_check_proof_modus_ponens |
software | healthy | checker_proofs.py:324 |
_check_proof_injective |
software | healthy | checker_proofs.py:393 |
_check_proof_symmetric |
software | healthy | checker_proofs.py:428 |
_check_proof_transitive |
software | healthy | checker_proofs.py:434 |
check_proof |
software | healthy | checker_proofs.py:476 |
goal_only_proof_error |
software | healthy | checker_proofs.py:501 |
get_type_args |
software | healthy | checker_proofs.py:522 |
reset_label |
software | healthy | checker_proofs.py:533 |
generate_label |
software | healthy | checker_proofs.py:536 |
proof_use_advice |
software | healthy | checker_proofs.py:542 |
make_unique |
software | healthy | checker_proofs.py:628 |
is_recursive |
software | healthy | checker_proofs.py:634 |
update_all_head |
software | healthy | checker_proofs.py:645 |
gen_conjunct_advice |
software | healthy | checker_proofs.py:655 |
gen_custom_induction_advice |
software | healthy | checker_proofs.py:671 |
_custom_induction_expected_cases |
software | healthy | checker_proofs.py:674 |
_custom_induction_case_hint |
software | healthy | checker_proofs.py:677 |
_switch_pattern_could_match_alts |
software | healthy | checker_proofs.py:680 |
_proof_view_callable |
software | healthy | checker_proofs.py:700 |
_proof_view_call |
software | healthy | checker_proofs.py:706 |
_bijective_view_for_source_type |
software | healthy | checker_proofs.py:710 |
_view_switch_expected_cases |
software | healthy | checker_proofs.py:734 |
_check_induction_via_custom_induction |
software | healthy | checker_proofs.py:746 |
_check_induction_via_view |
software | healthy | checker_proofs.py:810 |
_check_switch_via_view |
software | healthy | checker_proofs.py:878 |
_check_switch_via_custom_induction |
software | healthy | checker_proofs.py:950 |
proof_advice |
software | healthy | checker_proofs.py:1046 |
givens_str |
software | healthy | checker_proofs.py:1197 |
pred_to_equality |
software | healthy | checker_proofs.py:1205 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_PremiseInfo |
software | healthy | checker_predicates.py:261 |
_RuleTranslation |
software | healthy | checker_predicates.py:282 |
_ProofCheckerFacade |
software | healthy | proof_checker.py:95 |
RecCall |
software | healthy | checker_pipeline.py:1023 |
VerboseLevel |
software | healthy | flags.py:9 |
Diagnostic |
software | healthy | error.py:16 |
UserError |
software | healthy | error.py:36 |
InternalError |
software | healthy | error.py:43 |
IncompleteProof |
software | healthy | error.py:46 |
ErrorSink |
software | healthy | error.py:114 |
StaticError |
software | healthy | error.py:318 |
MatchFailed |
software | healthy | error.py:327 |
ParseError |
software | healthy | error.py:343 |
ParsedFlags |
software | healthy | test-deduce.py:150 |
Var |
software | healthy | compiler/ir.py:30 |
Bool |
software | healthy | compiler/ir.py:36 |
Int |
software | healthy | compiler/ir.py:41 |
Lam |
software | healthy | compiler/ir.py:46 |
MkClosure |
software | healthy | compiler/ir.py:54 |
App |
software | healthy | compiler/ir.py:63 |
Let |
software | healthy | compiler/ir.py:70 |
If |
software | healthy | compiler/ir.py:77 |
Con |
software | healthy | compiler/ir.py:84 |
PatCon |
software | healthy | compiler/ir.py:91 |
PatBool |
software | healthy | compiler/ir.py:98 |
MatchArm |
software | healthy | compiler/ir.py:106 |
Match |
software | healthy | compiler/ir.py:112 |
Panic |
software | healthy | compiler/ir.py:119 |
Eq |
software | healthy | compiler/ir.py:134 |
MakeArray |
software | healthy | compiler/ir.py:143 |
ArrayGet |
software | healthy | compiler/ir.py:153 |
Constructor |
software | healthy | compiler/ir.py:170 |
UnionDecl |
software | healthy | compiler/ir.py:176 |
Function |
software | healthy | compiler/ir.py:187 |
Global |
software | healthy | compiler/ir.py:216 |
Print |
software | healthy | compiler/ir.py:224 |
AssertEq |
software | healthy | compiler/ir.py:229 |
AssertBool |
software | healthy | compiler/ir.py:236 |
Program |
software | healthy | compiler/ir.py:245 |
CompileError |
software | healthy | compiler/lower.py:28 |
LoweringCtx |
software | healthy | compiler/lower.py:281 |
EmitError |
software | healthy | compiler/emit_c.py:24 |
EmitCtx |
software | healthy | compiler/emit_c.py:80 |
FakeFormula |
software | healthy | test/unit/test_proof_checker_handlers.py:145 |
CaseSplitCase |
software | healthy | test/lsp/test_case_split.py:46 |
_CountingDebugger |
software | healthy | test/lsp/test_debugger.py:174 |
_Client |
software | healthy | test/lsp/test_dap_server.py:34 |
_FakeWorkspace |
software | healthy | test/lsp/test_lsp_server.py:47 |
FakeServer |
software | healthy | test/lsp/test_lsp_server.py:67 |
GoalCase |
software | healthy | test/lsp/test_goal_at.py:28 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
checker_proofs.py |
software | healthy | checker_proofs.py |
edit_distance.py |
software | healthy | edit_distance.py |
parser.py |
software | healthy | parser.py |
entangled.toml |
software | healthy | entangled.toml |
.mcp.json |
software | healthy | .mcp.json |
vercel.json |
software | healthy | vercel.json |
checker_predicates.py |
software | healthy | checker_predicates.py |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
checker_cache.py |
software | healthy | checker_cache.py |
rec_desc_parser.py |
software | healthy | rec_desc_parser.py |
proof_checker.py |
software | healthy | proof_checker.py |
checker_pipeline.py |
software | healthy | checker_pipeline.py |
checker_logic.py |
software | healthy | checker_logic.py |
profile.sh |
software | healthy | profile.sh |
style.py |
software | healthy | style.py |
flags.py |
software | healthy | flags.py |
deduce.py |
software | healthy | deduce.py |
pyproject.toml |
software | healthy | pyproject.toml |
Makefile |
software | healthy | Makefile |
error.py |
software | healthy | error.py |
checker_common.py |
software | warning | checker_common.py |
checker_types.py |
software | healthy | checker_types.py |
requirements.txt |
software | healthy | requirements.txt |
test-deduce.py |
software | healthy | test-deduce.py |
TODO.md |
software | healthy | TODO.md |
checker_induction.py |
software | healthy | checker_induction.py |
__init__.py |
software | healthy | compiler/__init__.py |
closure.py |
software | healthy | compiler/closure.py |
compile_prelude.py |
software | healthy | compiler/compile_prelude.py |
prune.py |
software | healthy | compiler/prune.py |
ir.py |
software | healthy | compiler/ir.py |
lower.py |
software | healthy | compiler/lower.py |
emit_c.py |
software | healthy | compiler/emit_c.py |
deduce.h |
software | healthy | compiler/runtime/deduce.h |
deduce.c |
software | healthy | compiler/runtime/deduce.c |
run_headers.py |
software | healthy | test/compile/run_headers.py |
run_separate.py |
software | healthy | test/compile/run_separate.py |
run_prelude_archive.py |
software | healthy | test/compile/run_prelude_archive.py |
run_lower.py |
software | healthy | test/compile/run_lower.py |
run_e2e.py |
software | healthy | test/compile/run_e2e.py |
run_determinism.py |
software | healthy | test/compile/run_determinism.py |
genrecfun.h |
software | healthy | test/compile/lower/genrecfun.h |
source_map.h |
software | healthy | test/compile/lower/source_map.h |
pruning.h |
software | healthy | test/compile/lower/pruning.h |
basic.h |
software | healthy | test/compile/lower/basic.h |
generic.h |
software | healthy | test/compile/lower/generic.h |
closure.h |
software | healthy | test/compile/lower/closure.h |
array.h |
software | healthy | test/compile/lower/array.h |
unbox.h |
software | healthy | test/compile/lower/unbox.h |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
compiler |
software | healthy | compiler |
runtime |
software | healthy | compiler/runtime |
test |
software | healthy | test |
compile |
software | healthy | test/compile |
lower |
software | healthy | test/compile/lower |
prelude |
software | healthy | test/compile/prelude |
unit |
software | healthy | test/unit |
lsp |
software | healthy | test/lsp |
properties |
software | healthy | test/properties |
claude_fill_hole |
software | healthy | test/claude_fill_hole |
gh_pages |
software | healthy | gh_pages |
js |
software | healthy | gh_pages/js |
scripts |
software | healthy | gh_pages/scripts |
css |
software | healthy | gh_pages/css |
doc |
software | healthy | gh_pages/doc |
docs |
software | healthy | docs |
knowledge-base |
software | healthy | docs/knowledge-base |
abstract_syntax |
software | healthy | abstract_syntax |
lib |
software | healthy | lib |
autograder_docker |
software | healthy | autograder_docker |
tools |
software | healthy | tools |
claude_fill_hole |
software | healthy | tools/claude_fill_hole |
examples |
software | healthy | tools/claude_fill_hole/examples |
editor |
software | healthy | editor |
vscode |
software | healthy | editor/vscode |
syntaxes |
software | healthy | editor/vscode/syntaxes |
emacs |
software | healthy | editor/emacs |
lsp |
software | healthy | lsp |
live_code_vercel_api |
software | healthy | live_code_vercel_api |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
deploy |
cicd | healthy | .github/workflows/static.yml |
static |
cicd | healthy | .github/workflows/test_deduce.yml |
regression |
cicd | healthy | .github/workflows/test_deduce.yml |
maybe-close-parent |
cicd | healthy | .github/workflows/auto_close_parent.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::static |
cicd | healthy | .github/workflows/static.yml |
gha::test_deduce |
cicd | healthy | .github/workflows/test_deduce.yml |
gha::auto_close_parent |
cicd | healthy | .github/workflows/auto_close_parent.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ko9qzyny |
software | healthy | /tmp/repobility-clone-ko9qzyny |
| Label | Layer | Status | Path |
|---|---|---|---|
ANY /deduce |
api | healthy | live_code_vercel_api/api.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:12357 |
network | healthy | live_code_vercel_api/api.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::autograder_docker/Dockerfile |
hardware | healthy | autograder_docker/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/f2d99d98-d908-4ba5-a560-fb38bda710cd/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/f2d99d98-d908-4ba5-a560-fb38bda710cd/
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.