https://github.com/VectifyAI/OpenKB
· scanned 2026-05-15 03:47 UTC (3 weeks ago)
· 10 languages
13 findings (1 legacy + 12 scanner) 85th percentile · Python · small (2-20K LoC) Scanner says 96 (lower by 12)
Last scanned 3 weeks ago · v1 · 1 finding from 1 source. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
73.0 | 0.15 | 10.95 |
practices_score |
65.0 | 0.15 | 9.75 |
code_quality |
68.3 | 0.10 | 6.83 |
| Overall | 1.00 | 83.8 |
All 570 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 |
|---|---|---|---|
_setup_kb |
software | healthy | tests/test_list_status.py:14 |
test_list_no_kb |
software | healthy | tests/test_list_status.py:33 |
test_list_empty_kb |
software | healthy | tests/test_list_status.py:40 |
test_list_shows_documents |
software | healthy | tests/test_list_status.py:47 |
test_list_shows_concepts |
software | healthy | tests/test_list_status.py:64 |
test_list_no_concepts_section_when_empty |
software | healthy | tests/test_list_status.py:78 |
test_status_no_kb |
software | healthy | tests/test_list_status.py:93 |
test_status_shows_directory_counts |
software | healthy | tests/test_list_status.py:100 |
test_status_shows_total_indexed |
software | healthy | tests/test_list_status.py:117 |
test_status_shows_raw_count |
software | healthy | tests/test_list_status.py:132 |
test_status_exit_code_zero |
software | healthy | tests/test_list_status.py:143 |
_setup_kb |
software | healthy | tests/test_chat_slash_commands.py:16 |
_make_session |
software | healthy | tests/test_chat_slash_commands.py:31 |
_collect_fmt |
software | healthy | tests/test_chat_slash_commands.py:38 |
_fake_fmt |
software | healthy | tests/test_chat_slash_commands.py:42 |
test_slash_status |
software | healthy | tests/test_chat_slash_commands.py:53 |
test_slash_list_empty |
software | healthy | tests/test_chat_slash_commands.py:63 |
test_slash_list_with_docs |
software | healthy | tests/test_chat_slash_commands.py:73 |
test_slash_add_missing_arg |
software | healthy | tests/test_chat_slash_commands.py:88 |
test_slash_add_nonexistent_path |
software | healthy | tests/test_chat_slash_commands.py:99 |
test_slash_add_unsupported_type |
software | healthy | tests/test_chat_slash_commands.py:110 |
test_slash_add_single_file |
software | healthy | tests/test_chat_slash_commands.py:123 |
test_slash_add_directory_with_progress |
software | healthy | tests/test_chat_slash_commands.py:134 |
test_slash_lint |
software | healthy | tests/test_chat_slash_commands.py:152 |
test_run_chat_handles_ctrl_c_during_slash_command |
software | healthy | tests/test_chat_slash_commands.py:161 |
__init__ |
software | healthy | tests/test_chat_slash_commands.py:166 |
prompt_async |
software | healthy | tests/test_chat_slash_commands.py:169 |
test_slash_unknown |
software | healthy | tests/test_chat_slash_commands.py:191 |
test_slash_exit |
software | healthy | tests/test_chat_slash_commands.py:202 |
test_slash_clear |
software | healthy | tests/test_chat_slash_commands.py:212 |
test_save_transcript_strips_ghost_wikilinks |
software | healthy | tests/test_chat_slash_commands.py:221 |
test_has_yaml_frontmatter |
software | healthy | tests/test_tree_renderer.py:15 |
test_top_level_nodes_are_h1 |
software | healthy | tests/test_tree_renderer.py:21 |
test_nested_nodes_are_h2 |
software | healthy | tests/test_tree_renderer.py:26 |
test_page_range_included |
software | healthy | tests/test_tree_renderer.py:31 |
test_summary_included_not_text |
software | healthy | tests/test_tree_renderer.py:36 |
test_pdf_supported |
software | healthy | tests/test_add_command.py:15 |
test_md_supported |
software | healthy | tests/test_add_command.py:18 |
test_docx_supported |
software | healthy | tests/test_add_command.py:21 |
test_txt_supported |
software | healthy | tests/test_add_command.py:24 |
test_unknown_not_supported |
software | healthy | tests/test_add_command.py:27 |
test_finds_openkb_dir |
software | healthy | tests/test_add_command.py:32 |
test_returns_none_if_no_openkb |
software | healthy | tests/test_add_command.py:38 |
_setup_kb |
software | healthy | tests/test_add_command.py:46 |
test_add_missing_init |
software | healthy | tests/test_add_command.py:59 |
test_add_single_file_calls_helper |
software | healthy | tests/test_add_command.py:66 |
test_add_directory_calls_helper_for_each_file |
software | healthy | tests/test_add_command.py:77 |
test_add_unsupported_extension |
software | healthy | tests/test_add_command.py:96 |
test_add_nonexistent_path |
software | healthy | tests/test_add_command.py:106 |
test_add_skipped_file |
software | healthy | tests/test_add_command.py:114 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestListCommand |
software | healthy | tests/test_list_status.py:32 |
TestStatusCommand |
software | healthy | tests/test_list_status.py:92 |
_FakePromptSession |
software | healthy | tests/test_chat_slash_commands.py:165 |
TestRenderSummaryMd |
software | healthy | tests/test_tree_renderer.py:14 |
TestSupportedExtensions |
software | healthy | tests/test_add_command.py:14 |
TestFindKbDir |
software | healthy | tests/test_add_command.py:31 |
TestAddCommand |
software | healthy | tests/test_add_command.py:45 |
TestFindBrokenLinks |
software | healthy | tests/test_lint.py:33 |
TestFindOrphans |
software | healthy | tests/test_lint.py:75 |
TestFindMissingEntries |
software | healthy | tests/test_lint.py:112 |
TestCheckIndexSync |
software | healthy | tests/test_lint.py:156 |
TestRunStructuralLint |
software | healthy | tests/test_lint.py:196 |
TestNormalizeTarget |
software | healthy | tests/test_lint.py:232 |
TestStripGhostWikilinks |
software | healthy | tests/test_lint.py:255 |
TestBuildNormIndex |
software | healthy | tests/test_lint.py:388 |
TestParseJson |
software | healthy | tests/test_compiler.py:27 |
TestParseConceptsPlan |
software | healthy | tests/test_compiler.py:40 |
TestParseBriefContent |
software | healthy | tests/test_compiler.py:65 |
TestSanitizeConceptName |
software | healthy | tests/test_compiler.py:78 |
TestWriteSummary |
software | healthy | tests/test_compiler.py:111 |
TestWriteConcept |
software | healthy | tests/test_compiler.py:133 |
TestUpdateIndex |
software | healthy | tests/test_compiler.py:201 |
TestReadWikiContext |
software | healthy | tests/test_compiler.py:335 |
TestReadConceptBriefs |
software | healthy | tests/test_compiler.py:356 |
TestBacklinkSummary |
software | healthy | tests/test_compiler.py:441 |
TestBacklinkConcepts |
software | healthy | tests/test_compiler.py:516 |
TestAddRelatedLink |
software | healthy | tests/test_compiler.py:580 |
TestCompileShortDoc |
software | healthy | tests/test_compiler.py:676 |
TestCompileShortDocFallbacks |
software | healthy | tests/test_compiler.py:767 |
TestCacheControl |
software | healthy | tests/test_compiler.py:930 |
TestCompileLongDoc |
software | healthy | tests/test_compiler.py:1080 |
TestCompileConceptsPlan |
software | healthy | tests/test_compiler.py:1129 |
TestBriefIntegration |
software | healthy | tests/test_compiler.py:1295 |
TestBuildQueryAgent |
software | healthy | tests/test_query.py:15 |
TestRunQuery |
software | healthy | tests/test_query.py:45 |
TestFmtFallback |
software | healthy | tests/test_query.py:77 |
TestListWikiFiles |
software | healthy | tests/test_agent_tools.py:16 |
TestReadWikiFile |
software | healthy | tests/test_agent_tools.py:62 |
TestWriteWikiFile |
software | healthy | tests/test_agent_tools.py:95 |
TestParsePages |
software | healthy | tests/test_agent_tools.py:138 |
TestGetWikiPageContent |
software | healthy | tests/test_agent_tools.py:166 |
TestLintCommand |
software | healthy | tests/test_lint_cli.py:31 |
TestDebouncedHandler |
software | healthy | tests/test_watcher.py:19 |
TestIndexLongDocument |
software | healthy | tests/test_indexer.py:12 |
TestGetPdfPageCount |
software | healthy | tests/test_converter.py:18 |
TestConvertDocumentMarkdown |
software | healthy | tests/test_converter.py:35 |
TestConvertDocumentPdfShort |
software | healthy | tests/test_converter.py:83 |
TestConvertDocumentPdfLong |
software | healthy | tests/test_converter.py:113 |
TestBuildLintAgent |
software | healthy | tests/test_linter.py:13 |
TestRunKnowledgeLint |
software | healthy | tests/test_linter.py:45 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
test_list_status.py |
software | healthy | tests/test_list_status.py |
test_chat_slash_commands.py |
software | healthy | tests/test_chat_slash_commands.py |
test_tree_renderer.py |
software | healthy | tests/test_tree_renderer.py |
test_add_command.py |
software | healthy | tests/test_add_command.py |
conftest.py |
software | healthy | tests/conftest.py |
test_lint.py |
software | healthy | tests/test_lint.py |
test_compiler.py |
software | healthy | tests/test_compiler.py |
test_query.py |
software | healthy | tests/test_query.py |
test_config.py |
software | healthy | tests/test_config.py |
test_agent_tools.py |
software | healthy | tests/test_agent_tools.py |
test_lint_cli.py |
software | healthy | tests/test_lint_cli.py |
test_watcher.py |
software | healthy | tests/test_watcher.py |
test_indexer.py |
software | healthy | tests/test_indexer.py |
test_markdown_renderer.py |
software | healthy | tests/test_markdown_renderer.py |
test_converter.py |
software | healthy | tests/test_converter.py |
test_linter.py |
software | healthy | tests/test_linter.py |
test_cli.py |
software | healthy | tests/test_cli.py |
test_images.py |
software | healthy | tests/test_images.py |
test_chat_session.py |
software | healthy | tests/test_chat_session.py |
test_state.py |
software | healthy | tests/test_state.py |
publish.yml |
software | healthy | .github/workflows/publish.yml |
images.py |
software | healthy | openkb/images.py |
converter.py |
software | healthy | openkb/converter.py |
__init__.py |
software | healthy | openkb/__init__.py |
tree_renderer.py |
software | healthy | openkb/tree_renderer.py |
config.py |
software | healthy | openkb/config.py |
log.py |
software | healthy | openkb/log.py |
cli.py |
software | healthy | openkb/cli.py |
schema.py |
software | healthy | openkb/schema.py |
indexer.py |
software | healthy | openkb/indexer.py |
__main__.py |
software | warning | openkb/__main__.py |
watcher.py |
software | healthy | openkb/watcher.py |
state.py |
software | healthy | openkb/state.py |
lint.py |
software | healthy | openkb/lint.py |
__init__.py |
software | healthy | openkb/agent/__init__.py |
query.py |
software | healthy | openkb/agent/query.py |
_markdown.py |
software | healthy | openkb/agent/_markdown.py |
tools.py |
software | healthy | openkb/agent/tools.py |
chat_session.py |
software | healthy | openkb/agent/chat_session.py |
linter.py |
software | healthy | openkb/agent/linter.py |
compiler.py |
software | healthy | openkb/agent/compiler.py |
chat.py |
software | healthy | openkb/agent/chat.py |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
openkb |
software | healthy | openkb |
agent |
software | healthy | openkb/agent |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-dk0j6t8h |
software | healthy | /tmp/repobility-clone-dk0j6t8h |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::publish |
cicd | healthy | .github/workflows/publish.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
publish |
cicd | healthy | .github/workflows/publish.yml |
This page is publicly accessible at:
https://repobility.com/scan/e14443d6-d133-4e8f-b399-5f52bf6a750f/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/e14443d6-d133-4e8f-b399-5f52bf6a750f/
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.