RepoTrust

mikayla-maki/loom

A secure agent harness runtime and framework

https://github.com/mikayla-maki/loom · commit 0d2ef7c8a88f · scored 2026-11-13 · scoring prov-4+qual-2+sec-2

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

Dispute this score or request a re-score Full report JSON

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 46 explicit 91% 100%
Code quality 66 adequate 90% 100%
Security 61 weak 85% 100%

AI provenance

Explicit AI attribution on 46% of first-party code added; an estimated 46% including velocity signals.

AI tool Attributed commits Lines added
Cursor agent 42 30,804
Claude Code 7 3,664

Current source lines last changed by AI-attributed commits: 6,448 of 21,395.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.31 1.539 0.2x
Security 0.62 0.535 1.16x
Month Lines added Attributed to AI
2026-05 60,269 51%
2026-06 13,104 16%
2026-07 1,521 100%

Evidence

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is adequate: test-to-source ratio 0.74, no CI test run detected; 21% of function code in complex or long functions; 8% duplicated lines. Weakest area: complexity.

Area Score
Complexity (lizard) 54
Duplication 62
Code smells (Opengrep) 93
Tests and CI 55
Documentation 65
Type safety 100
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is weak: 89 known vulnerabilities in 19 dependencies. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 95
Vulnerable dependencies (OSV) 9
CI workflows (zizmor) n/a
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a

Top findings

Severity Finding Location
critical osv/GHSA-jqcg-44mw-7w3h: [email protected] (npm) is affected by GHSA-jqcg-44mw-7w3h package-lock.json
critical osv/GHSA-5gmw-xhrv-c9v3: [email protected] (npm) is affected by GHSA-5gmw-xhrv-c9v3 package-lock.json
critical osv/GHSA-85c8-ppgw-ccpr: [email protected] (npm) is affected by GHSA-85c8-ppgw-ccpr package-lock.json
critical osv/GHSA-5xrq-8626-4rwp: [email protected] (npm) is affected by GHSA-5xrq-8626-4rwp package-lock.json
high osv/GHSA-22jm-h49p-29qw: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-22jm-h49p-29qw package-lock.json
high osv/GHSA-46jr-4wx8-v453: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-46jr-4wx8-v453 package-lock.json
high osv/GHSA-6qxp-vccf-f47h: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-6qxp-vccf-f47h package-lock.json
high osv/GHSA-f897-62hf-6gxq: @modelcontextprotocol/[email protected] (npm) is affected by GHSA-f897-62hf-6gxq package-lock.json
high osv/GHSA-27r3-jxmh-p828: [email protected] (npm) is affected by GHSA-27r3-jxmh-p828 package-lock.json
high osv/GHSA-4c8g-83qw-93j6: [email protected] (npm) is affected by GHSA-4c8g-83qw-93j6 package-lock.json
high osv/GHSA-7p8r-x3mc-p8w7: [email protected] (npm) is affected by GHSA-7p8r-x3mc-p8w7 package-lock.json
high osv/GHSA-f65p-4m7j-42xc: [email protected] (npm) is affected by GHSA-f65p-4m7j-42xc package-lock.json
high osv/GHSA-fph4-wmhf-6fwf: [email protected] (npm) is affected by GHSA-fph4-wmhf-6fwf package-lock.json
high osv/GHSA-jqff-g426-hqxp: [email protected] (npm) is affected by GHSA-jqff-g426-hqxp package-lock.json
high osv/GHSA-qw65-cvwx-89v3: [email protected] (npm) is affected by GHSA-qw65-cvwx-89v3 package-lock.json
high osv/GHSA-v2hh-gcrm-f6hx: [email protected] (npm) is affected by GHSA-v2hh-gcrm-f6hx package-lock.json
high osv/GHSA-88fw-hqm2-52qc: [email protected] (npm) is affected by GHSA-88fw-hqm2-52qc package-lock.json
high osv/GHSA-mwp4-54f8-5fhr: [email protected] (npm) is affected by GHSA-mwp4-54f8-5fhr package-lock.json
high osv/GHSA-28wg-ghj8-5hjv: [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv package-lock.json
high osv/GHSA-2v37-7h3g-55p8: [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 package-lock.json
high osv/GHSA-r28c-9q8g-f849: [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 package-lock.json
high osv/GHSA-68fv-2mgg-jv7q: [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q package-lock.json
high osv/GHSA-4qx8-w7c3-pj3p: [email protected] (npm) is affected by GHSA-4qx8-w7c3-pj3p package-lock.json
high osv/GHSA-82x6-q7mm-w9cf: [email protected] (npm) is affected by GHSA-82x6-q7mm-w9cf package-lock.json
high osv/GHSA-9j65-hcg3-gc64: [email protected] (npm) is affected by GHSA-9j65-hcg3-gc64 package-lock.json

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

Language Lines
TypeScript 36,507
JavaScript 642

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/mikayla-maki/loom/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/mikayla-maki/loom/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/mikayla-maki/loom/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/mikayla-maki/loom/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/mikayla-maki/loom/security.svg)](https://repotrust.synapticcyber.com/r/github.com/mikayla-maki/loom/)