Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-23 22:19 UTC

syntaxPriest / openvisio-oss

TypeScriptMIT★ 10 stars⑂ 0 forkssince Jun 2026View on GitHub ↗

syntaxPriest/openvisio-oss holds a health index of 57 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (74/100) and lowest on Security (33/100). It was last updated 5 days ago. A single contributor accounts for most of its recent work.

57
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

57
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

Daniel AdewalePersonal account
7 followers35 public repossince Dec 2020@Merchro-Inc

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npmopenvisio0.3.12,129145 days ago3d-visualizationabstract-syntax-treeagentagent-memoryagenticagentic-aiagentic-codingagentic-workflowagentsaiai-agentai-agentsai-assistantai-code-completionai-code-reviewai-codingai-coding-agentai-coding-assistantai-coding-toolsai-contextai-costai-cost-reductionai-dev-toolsai-developer-toolsai-engineeringai-memoryai-nativeai-orchestrationai-pair-programmerai-pair-programmingai-poweredai-toolingai-toolsaideraider-code-graphaider-contextaider-extensionaider-integrationaider-mcpaider-mcp-serveraider-pluginaider-tokensaider-toolsamp-codeanchorsandroidangularanthropicanthropic-claudeanthropic-mcpapiarchitecturearchitecture-analysisarchitecture-diagramarchitecture-maparchitecture-visualizationartificial-intelligenceastastroaugmentaugment-codeaugment-code-graphaugment-contextaugment-extensionaugment-integrationaugment-mcpaugment-mcp-serveraugment-pluginaugment-tokensaugment-toolsauto-documentationautomationautonomous-agentautonomous-codingbackendbashblast-radiusblock-gooseboltbolt-newbudgeted-contextbug-findingbuild-toolsbunc-plus-plusc-sharpcall-graphcallgraphcentralitycheaper-aichurnclaudeclaude-aiclaude-codeclaude-code-code-graphclaude-code-contextclaude-code-extensionclaude-code-graphclaude-code-integrationclaude-code-mcpclaude-code-mcp-serverclaude-code-pluginclaude-code-tokensclaude-code-toolsclaude-contextclaude-desktopclaude-extensionclaude-integrationclaude-mcpclaude-mcp-serverclaude-pluginclaude-tokensclaude-toolsclicli-toolclinecline-code-graphcline-contextcline-extensioncline-integrationcline-mcpcline-mcp-servercline-plugincline-tokenscline-toolsclionclojurecloudlesscode-analysiscode-assistantcode-atlascode-browsercode-citycode-completioncode-complexitycode-comprehensioncode-contextcode-context-protocolcode-diagramcode-discoverycode-documentationcode-editorcode-explorationcode-explorercode-graphcode-graph-ragcode-indexcode-indexingcode-intelcode-intelligencecode-knowledge-graphcode-mapcode-metricscode-migrationcode-navigationcode-qualitycode-ragcode-refactoringcode-reviewcode-reviewscode-searchcode-search-enginecode-skeletoncode-structurecode-summarizationcode-summarycode-understandingcode-viewercode-visualisationcode-visualizationcodebase-analysiscodebase-contextcodebase-documentationcodebase-explorationcodebase-graphcodebase-indexingcodebase-insightscodebase-mapcodebase-navigationcodebase-onboardingcodebase-searchcodebase-understandingcodebase-visualisationcodebase-visualizationcodeiumcodeium-code-graphcodeium-contextcodeium-extensioncodeium-integrationcodeium-mcpcodeium-mcp-servercodeium-plugincodeium-tokenscodeium-toolscodexcodex-clicodex-code-graphcodex-contextcodex-extensioncodex-integrationcodex-mcpcodex-mcp-servercodex-plugincodex-tokenscodex-toolscodingcoding-agentcoding-assistantcoding-toolscodycognition-devincommand-linecommand-line-interfacecommand-line-toolcomplexityconcrete-syntax-treecontextcontext-budgetcontext-compressioncontext-engineeringcontext-managementcontext-optimizationcontext-providercontext-retrievalcontext-windowcontext7-alternativecontinuecontinue-code-graphcontinue-contextcontinue-devcontinue-extensioncontinue-integrationcontinue-mcpcontinue-mcp-servercontinue-plugincontinue-tokenscontinue-toolscontrol-flow-graphcopilotcopilot-chatcopilot-code-graphcopilot-contextcopilot-extensioncopilot-integrationcopilot-mcpcopilot-mcp-servercopilot-plugincopilot-tokenscopilot-toolscost-optimizationcppcpp-astcpp-call-graphcpp-code-analysiscpp-code-graphcpp-codebasecpp-dependency-graphcpp-static-analysiscpp-tree-sittercrystalcsharpcsharp-astcsharp-call-graphcsharp-code-analysiscsharp-code-graphcsharp-codebasecsharp-dependency-graphcsharp-static-analysiscsharp-tree-sittercsscstcursorcursor-aicursor-code-graphcursor-contextcursor-extensioncursor-idecursor-integrationcursor-mcpcursor-mcp-servercursor-plugincursor-tokenscursor-toolscut-tokensdartdata-flowdata-flow-analysisdata-visualizationdatagripdead-codedead-code-detectiondebugdebuggingdefinitionsdenodependenciesdependency-analysisdependency-graphdependency-visualizationdeterministicdeterministic-code-graphdeveloper-experiencedeveloper-onboardingdeveloper-productivitydeveloper-toolsdeveloper-workflowdevindevtooldevtoolsdevxdiagramdirected-graphdjangodocumentationdotnetdotnet-coredxecmascriptedgeseditorefficient-contextelixiremacsembedding-freeengineering-insightsengineering-productivityenterprise-codebaseerlangexpressexpressjsfastfastapifastifyfewer-tokensfind-referencesflaskflutterfoundation-modelframeworkfrontendfsharpfullstackfunction-callinggemini-cligemini-cli-code-graphgemini-cli-contextgemini-cli-extensiongemini-cli-integrationgemini-cli-mcpgemini-cli-mcp-servergemini-cli-plugingemini-cli-tokensgemini-cli-toolsgemini-code-assistgen-aigenaigenerative-aigitgithubgithub-copilotgogo-astgo-call-graphgo-code-analysisgo-code-graphgo-codebasego-dependency-graphgo-static-analysisgo-to-definitiongo-tree-sittergolandgolanggoogle-geminigoosegraphgraph-algorithmsgraph-analysisgraph-databasegraph-nativegraph-querygraph-raggraph-rankinggraph-traversalgraph-viewergraph-visualizationgraphqlgraphraggraphsgroovygroundinghaskellhotspotshtmlideide-integrationimpact-analysisimport-analysisimport-graphin-context-learningincremental-parsingindexingintellijintellij-ideainteractive-visualizationiosjavajava-astjava-call-graphjava-code-analysisjava-code-graphjava-codebasejava-dependency-graphjava-static-analysisjava-tree-sitterjavascriptjavascript-astjavascript-call-graphjavascript-code-analysisjavascript-code-graphjavascript-codebasejavascript-dependency-graphjavascript-static-analysisjavascript-tree-sitterjetbrainsjetbrains-aijetbrains-assistantjsxjuliakilo-codekilo-code-code-graphkilo-code-contextkilo-code-extensionkilo-code-integrationkilo-code-mcpkilo-code-mcp-serverkilo-code-pluginkilo-code-tokenskilo-code-toolskirokiro-code-graphkiro-contextkiro-extensionkiro-integrationkiro-mcpkiro-mcp-serverkiro-pluginkiro-tokenskiro-toolsknowledge-graphkotlinkotlin-astkotlin-call-graphkotlin-code-analysiskotlin-code-graphkotlin-codebasekotlin-dependency-graphkotlin-static-analysiskotlin-tree-sitterlanguage-serverlanguage-server-protocollaravellarge-codebaselarge-codebaseslarge-language-modellarge-language-modelslean-contextlegacy-codelegacy-modernizationlexerlibrarylightweightllmllm-agentllm-agentsllm-appllm-applicationllm-costllm-cost-reductionllm-freellm-orchestrationllm-toolingllm-toolsllmslocallocal-firstlocal-mcplovablelspluamaintainabilitymcpmcp-agentmcp-agentsmcp-aimcp-appmcp-climcp-clientmcp-codemcp-code-graphmcp-codebasemcp-connectormcp-contextmcp-developer-toolsmcp-ecosystemmcp-extensionmcp-for-aidermcp-for-augmentmcp-for-claudemcp-for-claude-codemcp-for-clinemcp-for-codeiummcp-for-codexmcp-for-continuemcp-for-copilotmcp-for-cursormcp-for-gemini-climcp-for-kilo-codemcp-for-kiromcp-for-roo-codemcp-for-sourcegraphmcp-for-tabninemcp-for-traemcp-for-warpmcp-for-windsurfmcp-for-zedmcp-hostmcp-integrationmcp-pluginmcp-promptmcp-registrymcp-resourcemcp-servermcp-static-analysismcp-stdiomcp-toolmcp-toolkitmcp-toolsmcp-transportminimal-contextmodel-context-protocolmodelcontextprotocolmodernizationmodule-graphmonorepomonoreposneighborhoodneovimnestjsnetwork-freenext-jsnextjsnimno-cloudno-embeddingsno-llmno-networknodenode-jsnodejsnodesnpmnpm-packagenvimobjective-cocamlofflineoffline-firston-deviceon-premon-premiseonboardingopen-sourceopenai-codexopendevinopenhandsopenvisioosspage-rankpagerankpair-programmingparserparsingpath-line-anchorspear-aipearaiperlphpphp-astphp-call-graphphp-code-analysisphp-code-graphphp-codebasephp-dependency-graphphp-static-analysisphp-tree-sitterphpstormpolyglotpolyglot-codebasepowershellprivacyprivacy-firstprivateproductivityprogram-analysisprogrammingprogramming-toolspromptprompt-compressionprompt-engineeringpycharmpythonpython-astpython-call-graphpython-code-analysispython-code-graphpython-codebasepython-dependency-graphpython-static-analysispython-tree-sitterqwen-coderr-langragrailsrankedranked-contextrankingreachabilityreactreact-nativereact-three-fiberreactjsread-onlyreduce-tokensrefactorrefactoringreference-graphreferencesremixremote-mcpreplitreplit-agentreplit-airepo-analysisrepo-indexingrepo-maprepository-analysisrepository-mapreproducibleretrievalretrieval-augmented-generationriderroo-clineroo-coderoo-code-code-graphroo-code-contextroo-code-extensionroo-code-integrationroo-code-mcproo-code-mcp-serverroo-code-pluginroo-code-tokensroo-code-toolsrubyruby-astruby-call-graphruby-code-analysisruby-code-graphruby-codebaseruby-dependency-graphruby-on-railsruby-static-analysisruby-tree-sitterrubyminerustrust-astrust-call-graphrust-code-analysisrust-code-graphrust-codebaserust-dependency-graphrust-static-analysisrust-tree-sittersave-tokensscalasdksecureself-hostedselfhostedsemantic-analysissemantic-codesemantic-searchshellsingle-binaryskeletonsoftware-architecturesoftware-developmentsoftware-engineeringsoftware-visualizationsoliditysolidjssource-code-analysissource-graphsourcegraphsourcegraph-code-graphsourcegraph-codysourcegraph-contextsourcegraph-extensionsourcegraph-integrationsourcegraph-mcpsourcegraph-mcp-serversourcegraph-pluginsourcegraph-tokenssourcegraph-toolsspringspring-bootsqlstatic-analysisstatic-code-analysisstructuresubgraphsublime-textsveltesveltekitswiftswift-astswift-call-graphswift-code-analysisswift-code-graphswift-codebaseswift-dependency-graphswift-static-analysisswift-tree-sittersymbol-graphsymbol-indexsymbol-searchsymbol-tablesymbolssyntax-treesystem-designtabninetabnine-code-graphtabnine-contexttabnine-extensiontabnine-integrationtabnine-mcptabnine-mcp-servertabnine-plugintabnine-tokenstabnine-toolstech-debttechnical-debtterminalterminal-tooltext-editorthree-jsthreejstokentoken-awaretoken-budgettoken-budgetingtoken-costtoken-efficiencytoken-efficienttoken-optimizationtoken-optimizedtoken-reductiontoken-savingtoken-savingstoken-usagetokenstool-callingtool-usetoolkittraetrae-aitrae-code-graphtrae-contexttrae-extensiontrae-integrationtrae-mcptrae-mcp-servertrae-plugintrae-tokenstrae-toolstree-sittertsxtypescripttypescript-asttypescript-call-graphtypescript-code-analysistypescript-code-graphtypescript-codebasetypescript-dependency-graphtypescript-static-analysistypescript-tree-sitterunused-codeutilityv0vercel-v0vimvisual-studio-codevisualizationvoid-editorvs-codevscodevscode-extensionvuevue-langvuejswarpwarp-code-graphwarp-contextwarp-extensionwarp-integrationwarp-mcpwarp-mcp-serverwarp-pluginwarp-terminalwarp-tokenswarp-toolswayfindingweb-developmentwebglwebstormwindsurfwindsurf-code-graphwindsurf-contextwindsurf-extensionwindsurf-idewindsurf-integrationwindsurf-mcpwindsurf-mcp-serverwindsurf-pluginwindsurf-tokenswindsurf-toolszedzed-aized-code-graphzed-contextzed-editorzed-extensionzed-integrationzed-mcpzed-mcp-serverzed-pluginzed-tokenszed-toolszero-configzig
npmopenvisio-viewer0.3.182265 days ago3d-visualizationarchitecture-diagramarchitecture-visualizationcall-graphcallgraphcode-diagramcode-explorercode-graphcode-viewercode-visualisationcode-visualizationcodebase-visualisationcodebase-visualizationcontrol-flow-graphdata-flowdata-visualizationdependenciesdependency-analysisdependency-graphdependency-visualizationdiagramgraphgraph-viewergraph-visualizationgraphsimport-analysisimport-graphinteractive-visualizationmodule-graphopenvisioreactreact-three-fibersoftware-visualizationthree-jsthreejsviewervisualizationwebgl

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

64Moderate · 22% of overall
How it's scored
36/36Push recency — last push 5 days ago
2.1/36Commit cadence — 3/52 weeks with commits
13.1/18Commit volume — 28 commits in the last year
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Inputs used
commits_last_year28
human_commit_share1
days_since_last_push5
active_weeks_last_year3
How it's scored
27/27Ships releases — 1 releases published
36/36Release recency — latest release 26 days ago
12.6/27Release cadence — cadence unknown (single release)
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count1
latest_release_tagv0.2.3
releases_from_tagsno
days_since_latest_release26
mean_days_between_releases
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

45At risk · 18% of overall
How it's scored
15.5/60Stars — 10 stars
0/25Forks — 0 forks
0/15Watchers — 1 watchers
Inputs used
forks0
stars10
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
46.3/80Monthly downloads — 2,951 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesopenvisio, openvisio-viewer
dependents
ecosystemsnpm
total_downloads
monthly_downloads2,951
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

60Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
4.8/22.5Commit distribution — top contributor authored 79% of commits
2.7/13.5Contributor breadth — 2 contributors
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Inputs used
bus_factor1
contributors_sampled2
top_contributor_share0.786
How it's scored
46.8/46.8Issue resolution — 100% of issues closed
38.2/38.3PR acceptance — 9/9 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/14 approved changesets -- score normalized to 0
Inputs used
merged_prs9
open_issues0
closed_issues3
issue_closed_ratio1
closed_unmerged_prs0
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
6.5/25Owner reach — 7 followers of syntaxPriest
22.5/25Track record — 35 public repos, account ~5 yr old
Inputs used
followers7
owner_typeUser
is_verified
owner_loginsyntaxPriest
public_repos35
account_age_days2,041
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 2 package(s) on npm
35/35Publish recency — latest publish 5 days ago
20/20Version history — 14 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesopenvisio, openvisio-viewer
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Engineering Quality

Are baseline engineering and documentation practices in place?

74Good · 20% of overall
How it's scored
24/24CI workflows — 1 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
16/20OpenSSF Scorecard: CI-Tests — 8 out of 9 merged PRs checked by a CI test -- score normalized to 8
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://openvisio.io
0/10Repository description
10/10Topics — 20 topics
10/10Wiki
Inputs used
topicsai-agents, ai-coding-agent, call-graph, claude-code, code-graph, code-knowledge-graph, codebase-visualization, codex, context-engineering, cursor, dependency-graph, developer-tools, local-first, mcp, mcp-server, model-context-protocol, static-analysis, token-optimization, tree-sitter, windsurf
has_wikiyes
homepagehttps://openvisio.io
has_readmeyes
has_docs_diryes
has_descriptionno

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

33At risk · 16% of overall
How it's scored
0/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2/2.5CI-Tests — 8 out of 9 merged PRs checked by a CI test -- score normalized to 8
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/14 approved changesets -- score normalized to 0
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — no data
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 17 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate1.9
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
13.2/25Indirect dependencies free of known advisories — 1 affected: @hono/node-server 1.19.14 (moderate 5.9)
40/40No advisories left outstanding — no advisory has been public longer than 90 days
Inputs used
sourceosv
advisories1
affected_packages1
assessed_packages120
unassessed_packages0
affected_by_severitymoderate 1
direct_affected_packages0
Matched the npm:openvisio@0.3.1 runtime dependency closure — what installing the published package pulls in — 120 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

52Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
38.1/40Legible commit history — 20 of 28 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.714
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
0/11Lint / format config
11/11Static type checking — core/tsconfig.json, mcp/tsconfig.json, ui/tsconfig.json, viewer/tsconfig.json
10/10Reproducible environment — lockfile
10/10Demonstrated agent practice — 4 of the last 28 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configscore/tsconfig.json, mcp/tsconfig.json, ui/tsconfig.json, viewer/tsconfig.json
agent_commit_share0.143
toolchain_manifests
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
55/55Manageable file sizes — 0/151 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes54,220
source_files_sampled151
oversized_source_files0
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
20/20MCP server
0/40Runnable examples
Inputs used
example_dirs
has_mcp_signalyes
api_schema_files

Key facts

10GitHub stars
2contributors
28commits, last 12 months
5days since last push
1releases
1bus factor
0open issues
npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch npm package '@openvisio/core' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

OpenSSF Scorecard 1.9 / 10
1.9aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-23 22:19 UTC

0Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
8CI-Tests8 out of 9 merged PRs checked by a CI test -- score normalized to 8
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/14 approved changesets -- score normalized to 0
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
n/aPackagingpackaging workflow not detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities17 existing vulnerabilities detected
Direct dependencies 18
RegistryPackageVersion constraintManifest
npmlmdb^3.2.6core/package.json
npmweb-tree-sitter~0.25.10core/package.json
npm@modelcontextprotocol/sdk^1.29.0mcp/package.json
npmlmdb^3.2.6mcp/package.json
npmopenvisio-viewer^0.2.0mcp/package.json
npmtree-sitter-wasms^0.1.13mcp/package.json
npmweb-tree-sitter~0.25.10mcp/package.json
npmzod^4.4.3mcp/package.json
npm@react-three/drei^10.7.7ui/package.json
npm@react-three/fiber^9.6.1ui/package.json
npmclsx^2.1.1ui/package.json
npmlucide-react^0.460.0ui/package.json
npmnext^15.0.3ui/package.json
npmreact^19.0.0ui/package.json
npmreact-dom^19.0.0ui/package.json
npmtailwind-merge^2.5.5ui/package.json
npmthree^0.184.0ui/package.json
npmzod^3.23.8ui/package.json
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Dependency advisories 1

Installing npm:openvisio@0.3.1 pulls in 120 packages, direct and transitive: 1 carry known advisories, of which 0 are direct dependencies.

PackageVersionRelationSeverityAdvisoriesFixed in
@hono/node-server1.19.14indirectmoderate12.0.5

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "ai-agents",
        "ai-coding-agent",
        "call-graph",
        "claude-code",
        "code-graph",
        "code-knowledge-graph",
        "codebase-visualization",
        "codex",
        "context-engineering",
        "cursor",
        "dependency-graph",
        "developer-tools",
        "local-first",
        "mcp",
        "mcp-server",
        "model-context-protocol",
        "static-analysis",
        "token-optimization",
        "tree-sitter",
        "windsurf"
      ],
      "is_fork": false,
      "size_kb": 49473,
      "has_wiki": true,
      "homepage": "https://openvisio.io",
      "languages": {
        "CSS": 19236,
        "HTML": 686,
        "Shell": 1612,
        "JavaScript": 51584,
        "TypeScript": 726666
      },
      "pushed_at": "2026-07-18T13:21:53Z",
      "created_at": "2026-06-20T19:40:55Z",
      "owner_type": "User",
      "updated_at": "2026-07-18T13:22:00Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://danieladewale.netlify.app",
      "name": "Daniel Adewale",
      "type": "User",
      "login": "syntaxPriest",
      "company": "@Merchro-Inc ",
      "location": "Lagos, Nigeria",
      "followers": 7,
      "avatar_url": "https://avatars.githubusercontent.com/u/76406495?v=4",
      "created_at": "2020-12-20T19:12:06Z",
      "is_verified": null,
      "public_repos": 35,
      "account_age_days": 2041
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.2.3",
          "kind": "patch",
          "published_at": "2026-06-27T21:24:09Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ffae25ecc0f0cb66f0376642b29f0280818145fe",
          "body": "feat: enhance code search and visualization tools",
          "is_bot": false,
          "headline": "Merge pull request #13 from syntaxPriest/slice-0-core-prep",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-07-18T13:21:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45225681da5f87419c31a6cca827d56381bb3798",
          "body": "Transport",
          "is_bot": false,
          "headline": "Merge pull request #12 from syntaxPriest/transport",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-07-18T13:18:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a509ee7616b7bd621d76415c31c78d45c43e8590",
          "body": "- Added `search_code` tool for full-text search over indexed files, replacing traditional grep.\n- Introduced `trace_calls` tool to analyze call graphs, providing insights into function interactions.\n- Updated `find_symbol` tool to support natural-language queries alongside exact names and regex patt\n[…]\nlogic for nodes and links in the Atlas view, adjusting sizes and colors for better clarity.\n- Updated API types to include new symbol kinds and link types, ensuring consistency across the application.",
          "is_bot": false,
          "headline": "feat: enhance code search and visualization tools",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-07-18T13:15:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de91f6419afbdfa363017c2652c53beae50c4b70",
          "body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add opencode MCP setup; bump mcp to 0.2.5",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-30T16:13:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5fb405b30f850a15bec2bc2b5b1dec1f045335bf",
          "body": null,
          "is_bot": false,
          "headline": "feat: update readme",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-30T16:10:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c051385bf6a3a3f1f698dbdce2fde7fcc1f6ca2",
          "body": "Transport",
          "is_bot": false,
          "headline": "Merge pull request #10 from syntaxPriest/transport",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-27T21:34:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbb0fd8a24a285ab87fd0790814897e2c3772fb4",
          "body": "@openvisio/core 0.2.2 -> 0.2.3\nopenvisio-viewer 0.2.2 -> 0.2.3\nopenvisio 0.2.3 -> 0.2.4\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump versions for npm SEO publish",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-27T21:27:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6bd4e7a7927774a63d845e33f04410796ec909a8",
          "body": "- npm keywords: high-volume curated+combinatorial sets (mcp 850, core 785,\n  viewer 38), all domain-relevant; generated by scripts/gen-keywords.mjs\n- set homepage -> https://openvisio.io across all package.json\n- README: website badge + prominent openvisio.io link row\n- scripts/github-seo.sh: repo topics, website URL, release-tag download tracking\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: SEO/discoverability for npm + GitHub",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-27T21:26:04Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9b4ee81a0e99a3504859e39aaa5f86a174cc8f7b",
          "body": "Transport",
          "is_bot": false,
          "headline": "Merge pull request #8 from syntaxPriest/transport",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-25T00:55:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72ce73d9fd4c8e4f4ff17a30622999d94a6241fc",
          "body": null,
          "is_bot": false,
          "headline": "fix: package update",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-25T00:54:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53312f237398b6c7d568ba4ce62782f94f4f9d30",
          "body": null,
          "is_bot": false,
          "headline": "feat: readme update",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-25T00:53:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc71d361a746d72cb355e844718aab4fe9263fa2",
          "body": "Transport",
          "is_bot": false,
          "headline": "Merge pull request #5 from syntaxPriest/transport",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-24T23:07:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a88d1b3d9db0d828af17eea2606cbce34a4f029e",
          "body": null,
          "is_bot": false,
          "headline": "merge branch",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-24T23:06:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6675f5ad4a01db0def53a2e5e3d547a949720b7",
          "body": "Stale graph invalidation and tool invocatione ncouragement",
          "is_bot": false,
          "headline": "Merge pull request #4 from syntaxPriest/update_tool_description",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-24T23:00:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6aeb2fea1b718e7b116e9586d0cb16858ae80eea",
          "body": null,
          "is_bot": false,
          "headline": "Stale graph invalidation and tool invocatione ncouragement",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-24T22:59:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e608ec3002b8616f2639f51c2596cb80a528f6b",
          "body": null,
          "is_bot": false,
          "headline": "feat: --transport support",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-24T22:43:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2488a463bdf27b1360b87736e5367c5d73f71572",
          "body": "Added tools telemetry",
          "is_bot": false,
          "headline": "Merge pull request #3 from syntaxPriest/tool_analytics",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-24T22:41:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad553da3dc065a7a25b2327e3a82cbb38c687115",
          "body": null,
          "is_bot": false,
          "headline": "Added tools telemetry",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-24T22:40:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac99153b877021b6ad962ffb15c7725857147c0c",
          "body": null,
          "is_bot": false,
          "headline": "Merged remote",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-21T15:16:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fa4f38213c38780b9e07f12a7050dd6ed05bcf4",
          "body": null,
          "is_bot": false,
          "headline": "Fixed dart parsing",
          "author_name": "Femi Fatokun",
          "author_login": "talibackend",
          "committed_at": "2026-06-21T15:15:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a986076c50c6a08215750d673fd7ddd5bbde817",
          "body": "feat: add local filesystem browsing for repo indexing",
          "is_bot": false,
          "headline": "Merge pull request #2 from syntaxPriest/feat/atlas-city-viewer",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T14:59:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "40f042865091fa3db2a0eefb9dad7aa4691331d9",
          "body": null,
          "is_bot": false,
          "headline": "feat: update package versions to 0.2.0 across all modules",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T14:58:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce73657db53b1ba69c0b96a4b8104493f5f980e7",
          "body": "- Implemented a new API endpoint for browsing directories (`/api/fs/browse`) that allows users to select a local repository for indexing.\n- Added a `FolderBrowser` component to facilitate directory navigation and selection within the indexing dialog.\n- Enhanced the `IndexingDialog` to support both t\n[…]\no provide feedback during the indexing process.\n- Updated styles and integrated new fonts for a more polished UI.\n- Refactored existing components to accommodate the new folder browsing functionality.",
          "is_bot": false,
          "headline": "feat: add local filesystem browsing for repo indexing",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T14:45:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f292d40352f50f2cb6caa9c741f270a885c4302",
          "body": "feat (build): atlas/city view.",
          "is_bot": false,
          "headline": "Merge pull request #1 from syntaxPriest/feat/atlas-city-viewer",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T13:41:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90904fbce9a3006c9d1e12ecec551b3299aa453d",
          "body": null,
          "is_bot": false,
          "headline": "feat (build): atlas/city view.",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T13:41:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d40ac7a4012368ef1cd1ca63a0462795f6ee0f33",
          "body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: openvisio 0.1.4",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T12:40:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c34205a4b116736bf28680616fda0c3989030716",
          "body": null,
          "is_bot": false,
          "headline": "repo migration",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-21T12:38:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82143945e48dd0b7df9c0217601350da165fdf38",
          "body": null,
          "is_bot": false,
          "headline": "Initial commit",
          "author_name": "Daniel Adewale",
          "author_login": "syntaxPriest",
          "committed_at": "2026-06-20T19:40:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 1,
      "commits_last_year": 28,
      "latest_release_at": "2026-06-27T21:24:09Z",
      "latest_release_tag": "v0.2.3",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 3,
      "days_since_latest_release": 26,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": false,
      "has_contributing": true,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "openvisio",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "3d-visualization",
            "abstract-syntax-tree",
            "agent",
            "agent-memory",
            "agentic",
            "agentic-ai",
            "agentic-coding",
            "agentic-workflow",
            "agents",
            "ai",
            "ai-agent",
            "ai-agents",
            "ai-assistant",
            "ai-code-completion",
            "ai-code-review",
            "ai-coding",
            "ai-coding-agent",
            "ai-coding-assistant",
            "ai-coding-tools",
            "ai-context",
            "ai-cost",
            "ai-cost-reduction",
            "ai-dev-tools",
            "ai-developer-tools",
            "ai-engineering",
            "ai-memory",
            "ai-native",
            "ai-orchestration",
            "ai-pair-programmer",
            "ai-pair-programming",
            "ai-powered",
            "ai-tooling",
            "ai-tools",
            "aider",
            "aider-code-graph",
            "aider-context",
            "aider-extension",
            "aider-integration",
            "aider-mcp",
            "aider-mcp-server",
            "aider-plugin",
            "aider-tokens",
            "aider-tools",
            "amp-code",
            "anchors",
            "android",
            "angular",
            "anthropic",
            "anthropic-claude",
            "anthropic-mcp",
            "api",
            "architecture",
            "architecture-analysis",
            "architecture-diagram",
            "architecture-map",
            "architecture-visualization",
            "artificial-intelligence",
            "ast",
            "astro",
            "augment",
            "augment-code",
            "augment-code-graph",
            "augment-context",
            "augment-extension",
            "augment-integration",
            "augment-mcp",
            "augment-mcp-server",
            "augment-plugin",
            "augment-tokens",
            "augment-tools",
            "auto-documentation",
            "automation",
            "autonomous-agent",
            "autonomous-coding",
            "backend",
            "bash",
            "blast-radius",
            "block-goose",
            "bolt",
            "bolt-new",
            "budgeted-context",
            "bug-finding",
            "build-tools",
            "bun",
            "c",
            "c-plus-plus",
            "c-sharp",
            "call-graph",
            "callgraph",
            "centrality",
            "cheaper-ai",
            "churn",
            "claude",
            "claude-ai",
            "claude-code",
            "claude-code-code-graph",
            "claude-code-context",
            "claude-code-extension",
            "claude-code-graph",
            "claude-code-integration",
            "claude-code-mcp",
            "claude-code-mcp-server",
            "claude-code-plugin",
            "claude-code-tokens",
            "claude-code-tools",
            "claude-context",
            "claude-desktop",
            "claude-extension",
            "claude-integration",
            "claude-mcp",
            "claude-mcp-server",
            "claude-plugin",
            "claude-tokens",
            "claude-tools",
            "cli",
            "cli-tool",
            "cline",
            "cline-code-graph",
            "cline-context",
            "cline-extension",
            "cline-integration",
            "cline-mcp",
            "cline-mcp-server",
            "cline-plugin",
            "cline-tokens",
            "cline-tools",
            "clion",
            "clojure",
            "cloudless",
            "code-analysis",
            "code-assistant",
            "code-atlas",
            "code-browser",
            "code-city",
            "code-completion",
            "code-complexity",
            "code-comprehension",
            "code-context",
            "code-context-protocol",
            "code-diagram",
            "code-discovery",
            "code-documentation",
            "code-editor",
            "code-exploration",
            "code-explorer",
            "code-graph",
            "code-graph-rag",
            "code-index",
            "code-indexing",
            "code-intel",
            "code-intelligence",
            "code-knowledge-graph",
            "code-map",
            "code-metrics",
            "code-migration",
            "code-navigation",
            "code-quality",
            "code-rag",
            "code-refactoring",
            "code-review",
            "code-reviews",
            "code-search",
            "code-search-engine",
            "code-skeleton",
            "code-structure",
            "code-summarization",
            "code-summary",
            "code-understanding",
            "code-viewer",
            "code-visualisation",
            "code-visualization",
            "codebase-analysis",
            "codebase-context",
            "codebase-documentation",
            "codebase-exploration",
            "codebase-graph",
            "codebase-indexing",
            "codebase-insights",
            "codebase-map",
            "codebase-navigation",
            "codebase-onboarding",
            "codebase-search",
            "codebase-understanding",
            "codebase-visualisation",
            "codebase-visualization",
            "codeium",
            "codeium-code-graph",
            "codeium-context",
            "codeium-extension",
            "codeium-integration",
            "codeium-mcp",
            "codeium-mcp-server",
            "codeium-plugin",
            "codeium-tokens",
            "codeium-tools",
            "codex",
            "codex-cli",
            "codex-code-graph",
            "codex-context",
            "codex-extension",
            "codex-integration",
            "codex-mcp",
            "codex-mcp-server",
            "codex-plugin",
            "codex-tokens",
            "codex-tools",
            "coding",
            "coding-agent",
            "coding-assistant",
            "coding-tools",
            "cody",
            "cognition-devin",
            "command-line",
            "command-line-interface",
            "command-line-tool",
            "complexity",
            "concrete-syntax-tree",
            "context",
            "context-budget",
            "context-compression",
            "context-engineering",
            "context-management",
            "context-optimization",
            "context-provider",
            "context-retrieval",
            "context-window",
            "context7-alternative",
            "continue",
            "continue-code-graph",
            "continue-context",
            "continue-dev",
            "continue-extension",
            "continue-integration",
            "continue-mcp",
            "continue-mcp-server",
            "continue-plugin",
            "continue-tokens",
            "continue-tools",
            "control-flow-graph",
            "copilot",
            "copilot-chat",
            "copilot-code-graph",
            "copilot-context",
            "copilot-extension",
            "copilot-integration",
            "copilot-mcp",
            "copilot-mcp-server",
            "copilot-plugin",
            "copilot-tokens",
            "copilot-tools",
            "cost-optimization",
            "cpp",
            "cpp-ast",
            "cpp-call-graph",
            "cpp-code-analysis",
            "cpp-code-graph",
            "cpp-codebase",
            "cpp-dependency-graph",
            "cpp-static-analysis",
            "cpp-tree-sitter",
            "crystal",
            "csharp",
            "csharp-ast",
            "csharp-call-graph",
            "csharp-code-analysis",
            "csharp-code-graph",
            "csharp-codebase",
            "csharp-dependency-graph",
            "csharp-static-analysis",
            "csharp-tree-sitter",
            "css",
            "cst",
            "cursor",
            "cursor-ai",
            "cursor-code-graph",
            "cursor-context",
            "cursor-extension",
            "cursor-ide",
            "cursor-integration",
            "cursor-mcp",
            "cursor-mcp-server",
            "cursor-plugin",
            "cursor-tokens",
            "cursor-tools",
            "cut-tokens",
            "dart",
            "data-flow",
            "data-flow-analysis",
            "data-visualization",
            "datagrip",
            "dead-code",
            "dead-code-detection",
            "debug",
            "debugging",
            "definitions",
            "deno",
            "dependencies",
            "dependency-analysis",
            "dependency-graph",
            "dependency-visualization",
            "deterministic",
            "deterministic-code-graph",
            "developer-experience",
            "developer-onboarding",
            "developer-productivity",
            "developer-tools",
            "developer-workflow",
            "devin",
            "devtool",
            "devtools",
            "devx",
            "diagram",
            "directed-graph",
            "django",
            "documentation",
            "dotnet",
            "dotnet-core",
            "dx",
            "ecmascript",
            "edges",
            "editor",
            "efficient-context",
            "elixir",
            "emacs",
            "embedding-free",
            "engineering-insights",
            "engineering-productivity",
            "enterprise-codebase",
            "erlang",
            "express",
            "expressjs",
            "fast",
            "fastapi",
            "fastify",
            "fewer-tokens",
            "find-references",
            "flask",
            "flutter",
            "foundation-model",
            "framework",
            "frontend",
            "fsharp",
            "fullstack",
            "function-calling",
            "gemini-cli",
            "gemini-cli-code-graph",
            "gemini-cli-context",
            "gemini-cli-extension",
            "gemini-cli-integration",
            "gemini-cli-mcp",
            "gemini-cli-mcp-server",
            "gemini-cli-plugin",
            "gemini-cli-tokens",
            "gemini-cli-tools",
            "gemini-code-assist",
            "gen-ai",
            "genai",
            "generative-ai",
            "git",
            "github",
            "github-copilot",
            "go",
            "go-ast",
            "go-call-graph",
            "go-code-analysis",
            "go-code-graph",
            "go-codebase",
            "go-dependency-graph",
            "go-static-analysis",
            "go-to-definition",
            "go-tree-sitter",
            "goland",
            "golang",
            "google-gemini",
            "goose",
            "graph",
            "graph-algorithms",
            "graph-analysis",
            "graph-database",
            "graph-native",
            "graph-query",
            "graph-rag",
            "graph-ranking",
            "graph-traversal",
            "graph-viewer",
            "graph-visualization",
            "graphql",
            "graphrag",
            "graphs",
            "groovy",
            "grounding",
            "haskell",
            "hotspots",
            "html",
            "ide",
            "ide-integration",
            "impact-analysis",
            "import-analysis",
            "import-graph",
            "in-context-learning",
            "incremental-parsing",
            "indexing",
            "intellij",
            "intellij-idea",
            "interactive-visualization",
            "ios",
            "java",
            "java-ast",
            "java-call-graph",
            "java-code-analysis",
            "java-code-graph",
            "java-codebase",
            "java-dependency-graph",
            "java-static-analysis",
            "java-tree-sitter",
            "javascript",
            "javascript-ast",
            "javascript-call-graph",
            "javascript-code-analysis",
            "javascript-code-graph",
            "javascript-codebase",
            "javascript-dependency-graph",
            "javascript-static-analysis",
            "javascript-tree-sitter",
            "jetbrains",
            "jetbrains-ai",
            "jetbrains-assistant",
            "jsx",
            "julia",
            "kilo-code",
            "kilo-code-code-graph",
            "kilo-code-context",
            "kilo-code-extension",
            "kilo-code-integration",
            "kilo-code-mcp",
            "kilo-code-mcp-server",
            "kilo-code-plugin",
            "kilo-code-tokens",
            "kilo-code-tools",
            "kiro",
            "kiro-code-graph",
            "kiro-context",
            "kiro-extension",
            "kiro-integration",
            "kiro-mcp",
            "kiro-mcp-server",
            "kiro-plugin",
            "kiro-tokens",
            "kiro-tools",
            "knowledge-graph",
            "kotlin",
            "kotlin-ast",
            "kotlin-call-graph",
            "kotlin-code-analysis",
            "kotlin-code-graph",
            "kotlin-codebase",
            "kotlin-dependency-graph",
            "kotlin-static-analysis",
            "kotlin-tree-sitter",
            "language-server",
            "language-server-protocol",
            "laravel",
            "large-codebase",
            "large-codebases",
            "large-language-model",
            "large-language-models",
            "lean-context",
            "legacy-code",
            "legacy-modernization",
            "lexer",
            "library",
            "lightweight",
            "llm",
            "llm-agent",
            "llm-agents",
            "llm-app",
            "llm-application",
            "llm-cost",
            "llm-cost-reduction",
            "llm-free",
            "llm-orchestration",
            "llm-tooling",
            "llm-tools",
            "llms",
            "local",
            "local-first",
            "local-mcp",
            "lovable",
            "lsp",
            "lua",
            "maintainability",
            "mcp",
            "mcp-agent",
            "mcp-agents",
            "mcp-ai",
            "mcp-app",
            "mcp-cli",
            "mcp-client",
            "mcp-code",
            "mcp-code-graph",
            "mcp-codebase",
            "mcp-connector",
            "mcp-context",
            "mcp-developer-tools",
            "mcp-ecosystem",
            "mcp-extension",
            "mcp-for-aider",
            "mcp-for-augment",
            "mcp-for-claude",
            "mcp-for-claude-code",
            "mcp-for-cline",
            "mcp-for-codeium",
            "mcp-for-codex",
            "mcp-for-continue",
            "mcp-for-copilot",
            "mcp-for-cursor",
            "mcp-for-gemini-cli",
            "mcp-for-kilo-code",
            "mcp-for-kiro",
            "mcp-for-roo-code",
            "mcp-for-sourcegraph",
            "mcp-for-tabnine",
            "mcp-for-trae",
            "mcp-for-warp",
            "mcp-for-windsurf",
            "mcp-for-zed",
            "mcp-host",
            "mcp-integration",
            "mcp-plugin",
            "mcp-prompt",
            "mcp-registry",
            "mcp-resource",
            "mcp-server",
            "mcp-static-analysis",
            "mcp-stdio",
            "mcp-tool",
            "mcp-toolkit",
            "mcp-tools",
            "mcp-transport",
            "minimal-context",
            "model-context-protocol",
            "modelcontextprotocol",
            "modernization",
            "module-graph",
            "monorepo",
            "monorepos",
            "neighborhood",
            "neovim",
            "nestjs",
            "network-free",
            "next-js",
            "nextjs",
            "nim",
            "no-cloud",
            "no-embeddings",
            "no-llm",
            "no-network",
            "node",
            "node-js",
            "nodejs",
            "nodes",
            "npm",
            "npm-package",
            "nvim",
            "objective-c",
            "ocaml",
            "offline",
            "offline-first",
            "on-device",
            "on-prem",
            "on-premise",
            "onboarding",
            "open-source",
            "openai-codex",
            "opendevin",
            "openhands",
            "openvisio",
            "oss",
            "page-rank",
            "pagerank",
            "pair-programming",
            "parser",
            "parsing",
            "path-line-anchors",
            "pear-ai",
            "pearai",
            "perl",
            "php",
            "php-ast",
            "php-call-graph",
            "php-code-analysis",
            "php-code-graph",
            "php-codebase",
            "php-dependency-graph",
            "php-static-analysis",
            "php-tree-sitter",
            "phpstorm",
            "polyglot",
            "polyglot-codebase",
            "powershell",
            "privacy",
            "privacy-first",
            "private",
            "productivity",
            "program-analysis",
            "programming",
            "programming-tools",
            "prompt",
            "prompt-compression",
            "prompt-engineering",
            "pycharm",
            "python",
            "python-ast",
            "python-call-graph",
            "python-code-analysis",
            "python-code-graph",
            "python-codebase",
            "python-dependency-graph",
            "python-static-analysis",
            "python-tree-sitter",
            "qwen-coder",
            "r-lang",
            "rag",
            "rails",
            "ranked",
            "ranked-context",
            "ranking",
            "reachability",
            "react",
            "react-native",
            "react-three-fiber",
            "reactjs",
            "read-only",
            "reduce-tokens",
            "refactor",
            "refactoring",
            "reference-graph",
            "references",
            "remix",
            "remote-mcp",
            "replit",
            "replit-agent",
            "replit-ai",
            "repo-analysis",
            "repo-indexing",
            "repo-map",
            "repository-analysis",
            "repository-map",
            "reproducible",
            "retrieval",
            "retrieval-augmented-generation",
            "rider",
            "roo-cline",
            "roo-code",
            "roo-code-code-graph",
            "roo-code-context",
            "roo-code-extension",
            "roo-code-integration",
            "roo-code-mcp",
            "roo-code-mcp-server",
            "roo-code-plugin",
            "roo-code-tokens",
            "roo-code-tools",
            "ruby",
            "ruby-ast",
            "ruby-call-graph",
            "ruby-code-analysis",
            "ruby-code-graph",
            "ruby-codebase",
            "ruby-dependency-graph",
            "ruby-on-rails",
            "ruby-static-analysis",
            "ruby-tree-sitter",
            "rubymine",
            "rust",
            "rust-ast",
            "rust-call-graph",
            "rust-code-analysis",
            "rust-code-graph",
            "rust-codebase",
            "rust-dependency-graph",
            "rust-static-analysis",
            "rust-tree-sitter",
            "save-tokens",
            "scala",
            "sdk",
            "secure",
            "self-hosted",
            "selfhosted",
            "semantic-analysis",
            "semantic-code",
            "semantic-search",
            "shell",
            "single-binary",
            "skeleton",
            "software-architecture",
            "software-development",
            "software-engineering",
            "software-visualization",
            "solidity",
            "solidjs",
            "source-code-analysis",
            "source-graph",
            "sourcegraph",
            "sourcegraph-code-graph",
            "sourcegraph-cody",
            "sourcegraph-context",
            "sourcegraph-extension",
            "sourcegraph-integration",
            "sourcegraph-mcp",
            "sourcegraph-mcp-server",
            "sourcegraph-plugin",
            "sourcegraph-tokens",
            "sourcegraph-tools",
            "spring",
            "spring-boot",
            "sql",
            "static-analysis",
            "static-code-analysis",
            "structure",
            "subgraph",
            "sublime-text",
            "svelte",
            "sveltekit",
            "swift",
            "swift-ast",
            "swift-call-graph",
            "swift-code-analysis",
            "swift-code-graph",
            "swift-codebase",
            "swift-dependency-graph",
            "swift-static-analysis",
            "swift-tree-sitter",
            "symbol-graph",
            "symbol-index",
            "symbol-search",
            "symbol-table",
            "symbols",
            "syntax-tree",
            "system-design",
            "tabnine",
            "tabnine-code-graph",
            "tabnine-context",
            "tabnine-extension",
            "tabnine-integration",
            "tabnine-mcp",
            "tabnine-mcp-server",
            "tabnine-plugin",
            "tabnine-tokens",
            "tabnine-tools",
            "tech-debt",
            "technical-debt",
            "terminal",
            "terminal-tool",
            "text-editor",
            "three-js",
            "threejs",
            "token",
            "token-aware",
            "token-budget",
            "token-budgeting",
            "token-cost",
            "token-efficiency",
            "token-efficient",
            "token-optimization",
            "token-optimized",
            "token-reduction",
            "token-saving",
            "token-savings",
            "token-usage",
            "tokens",
            "tool-calling",
            "tool-use",
            "toolkit",
            "trae",
            "trae-ai",
            "trae-code-graph",
            "trae-context",
            "trae-extension",
            "trae-integration",
            "trae-mcp",
            "trae-mcp-server",
            "trae-plugin",
            "trae-tokens",
            "trae-tools",
            "tree-sitter",
            "tsx",
            "typescript",
            "typescript-ast",
            "typescript-call-graph",
            "typescript-code-analysis",
            "typescript-code-graph",
            "typescript-codebase",
            "typescript-dependency-graph",
            "typescript-static-analysis",
            "typescript-tree-sitter",
            "unused-code",
            "utility",
            "v0",
            "vercel-v0",
            "vim",
            "visual-studio-code",
            "visualization",
            "void-editor",
            "vs-code",
            "vscode",
            "vscode-extension",
            "vue",
            "vue-lang",
            "vuejs",
            "warp",
            "warp-code-graph",
            "warp-context",
            "warp-extension",
            "warp-integration",
            "warp-mcp",
            "warp-mcp-server",
            "warp-plugin",
            "warp-terminal",
            "warp-tokens",
            "warp-tools",
            "wayfinding",
            "web-development",
            "webgl",
            "webstorm",
            "windsurf",
            "windsurf-code-graph",
            "windsurf-context",
            "windsurf-extension",
            "windsurf-ide",
            "windsurf-integration",
            "windsurf-mcp",
            "windsurf-mcp-server",
            "windsurf-plugin",
            "windsurf-tokens",
            "windsurf-tools",
            "zed",
            "zed-ai",
            "zed-code-graph",
            "zed-context",
            "zed-editor",
            "zed-extension",
            "zed-integration",
            "zed-mcp",
            "zed-mcp-server",
            "zed-plugin",
            "zed-tokens",
            "zed-tools",
            "zero-config",
            "zig"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/openvisio",
          "is_deprecated": false,
          "latest_version": "0.3.1",
          "repository_url": "https://github.com/syntaxpriest/openvisio-oss",
          "versions_count": 14,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 2129,
          "first_published_at": "2026-06-20T18:14:06.033000Z",
          "latest_published_at": "2026-07-18T14:40:25.383000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "openvisio-viewer",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "3d-visualization",
            "architecture-diagram",
            "architecture-visualization",
            "call-graph",
            "callgraph",
            "code-diagram",
            "code-explorer",
            "code-graph",
            "code-viewer",
            "code-visualisation",
            "code-visualization",
            "codebase-visualisation",
            "codebase-visualization",
            "control-flow-graph",
            "data-flow",
            "data-visualization",
            "dependencies",
            "dependency-analysis",
            "dependency-graph",
            "dependency-visualization",
            "diagram",
            "graph",
            "graph-viewer",
            "graph-visualization",
            "graphs",
            "import-analysis",
            "import-graph",
            "interactive-visualization",
            "module-graph",
            "openvisio",
            "react",
            "react-three-fiber",
            "software-visualization",
            "three-js",
            "threejs",
            "viewer",
            "visualization",
            "webgl"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/openvisio-viewer",
          "is_deprecated": false,
          "latest_version": "0.3.1",
          "repository_url": null,
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 822,
          "first_published_at": "2026-06-21T13:43:07.331000Z",
          "latest_published_at": "2026-07-18T14:55:46.111000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 10,
      "watchers": 1,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "core/tsconfig.json",
        "mcp/tsconfig.json",
        "ui/tsconfig.json",
        "viewer/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 54220,
      "source_files_sampled": 151,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "core/package.json",
        "mcp/package.json",
        "package.json",
        "ui/package.json",
        "viewer/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "@hono/node-server",
            "direct": false,
            "version": "1.19.14",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.9,
            "advisory_ids": [
              "GHSA-frvp-7c67-39w9"
            ],
            "fixed_version": "2.0.5",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "moderate": 1
        },
        "advisory_count": 1,
        "affected_count": 1,
        "assessed_count": 120,
        "malicious_count": 0,
        "assessed_package": "npm:openvisio@0.3.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "lmdb",
          "manifest": "core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.6"
        },
        {
          "name": "web-tree-sitter",
          "manifest": "core/package.json",
          "ecosystem": "npm",
          "version_constraint": "~0.25.10"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.29.0"
        },
        {
          "name": "lmdb",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.6"
        },
        {
          "name": "openvisio-viewer",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.0"
        },
        {
          "name": "tree-sitter-wasms",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.13"
        },
        {
          "name": "web-tree-sitter",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "~0.25.10"
        },
        {
          "name": "zod",
          "manifest": "mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        },
        {
          "name": "@react-three/drei",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.7.7"
        },
        {
          "name": "@react-three/fiber",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.6.1"
        },
        {
          "name": "clsx",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "lucide-react",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.460.0"
        },
        {
          "name": "next",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^15.0.3"
        },
        {
          "name": "react",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "react-dom",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "tailwind-merge",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.5.5"
        },
        {
          "name": "three",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.184.0"
        },
        {
          "name": "zod",
          "manifest": "ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.23.8"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 9,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 3,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "syntaxPriest",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/76406495?v=4"
        },
        {
          "type": "User",
          "login": "talibackend",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/76601789?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.786
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 0,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 8,
            "reason": "8 out of 9 merged PRs checked by a CI test -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/14 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "17 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "ffae25ecc0f0cb66f0376642b29f0280818145fe",
        "ran_at": "2026-07-23T22:19:05Z",
        "aggregate_score": 1.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-18T13:22:59Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-18T13:21:53Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/syntaxPriest/openvisio-oss",
    "host": "github.com",
    "name": "openvisio-oss",
    "owner": "syntaxPriest"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 57,
      "inputs": {
        "security": 33,
        "vitality": 64,
        "community": 45,
        "governance": 60,
        "engineering": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 64,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "commits_last_year": 28,
              "human_commit_share": 1,
              "days_since_last_push": 5,
              "active_weeks_last_year": 3
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "3/52 weeks with commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "28 commits in the last year",
                "points": 13.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 84,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "v0.2.3",
              "releases_from_tags": false,
              "days_since_latest_release": 26,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 26 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 26
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 45,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "forks": 0,
              "stars": 10,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "10 stars",
                "points": 15.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "packages": [
                "openvisio",
                "openvisio-viewer"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 2951
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "2,951 downloads/month across npm",
                "points": 46.3,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 2951,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 60,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.786
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 79% of commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 79
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "merged_prs": 9,
              "open_issues": 0,
              "closed_issues": 3,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "9/9 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 9,
                      "decided": 9
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/14 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 49,
            "inputs": {
              "followers": 7,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "syntaxPriest",
              "public_repos": 35,
              "account_age_days": 2041
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "7 followers of syntaxPriest",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 7,
                      "login": "syntaxPriest"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "35 public repos, account ~5 yr old",
                "points": 22.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 35
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 5
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "openvisio",
                "openvisio-viewer"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "14 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 74,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "8 out of 9 merged PRs checked by a CI test -- score normalized to 8",
                "points": 16,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "ai-agents",
                "ai-coding-agent",
                "call-graph",
                "claude-code",
                "code-graph",
                "code-knowledge-graph",
                "codebase-visualization",
                "codex",
                "context-engineering",
                "cursor",
                "dependency-graph",
                "developer-tools",
                "local-first",
                "mcp",
                "mcp-server",
                "model-context-protocol",
                "static-analysis",
                "token-optimization",
                "tree-sitter",
                "windsurf"
              ],
              "has_wiki": true,
              "homepage": "https://openvisio.io",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://openvisio.io",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "20 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 33,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 19,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 1.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "8 out of 9 merged PRs checked by a CI test -- score normalized to 8",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/14 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "17 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Matched the npm:openvisio@0.3.1 runtime dependency closure — what installing the published package pulls in — 120 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:openvisio@0.3.1",
                  "assessed": 120
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 88,
            "inputs": {
              "source": "osv",
              "advisories": 1,
              "affected_packages": 1,
              "assessed_packages": 120,
              "unassessed_packages": 0,
              "affected_by_severity": "moderate 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "1 affected: @hono/node-server 1.19.14 (moderate 5.9)",
                "points": 13.2,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "@hono/node-server 1.19.14 (moderate 5.9)"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 120,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 3
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 52,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.714,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "20 of 28 human commits state their intent (structured subject or explanatory body)",
                "points": 38.1,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 20,
                      "sampled": 28
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "core/tsconfig.json",
                "mcp/tsconfig.json",
                "ui/tsconfig.json",
                "viewer/tsconfig.json"
              ],
              "agent_commit_share": 0.143,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "core/tsconfig.json, mcp/tsconfig.json, ui/tsconfig.json, viewer/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "core/tsconfig.json, mcp/tsconfig.json, ui/tsconfig.json, viewer/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "4 of the last 28 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "sampled": 28
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 54220,
              "source_files_sampled": 151,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/151 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 151,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch npm package '@openvisio/core' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-23T22:19:20.944472Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/syntaxPriest/openvisio-oss.svg",
  "full_name": "syntaxPriest/openvisio-oss",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.