RepoTrust

Leaderboard github.com

mikayla-maki/loom

A secure agent harness runtime and framework

  • View repository ↗
  • TypeScript
  • ★ 31
  • commit 0d2ef7c8a88f
  • scored 2026-11-13
  • scoring prov-4+qual-2+sec-2

AI provenance

46%

explicit

Confidence
91%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

66/100

adequate

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

61/100

weak

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

  • Repository: https://github.com/mikayla-maki/loom
  • Commit: 0d2ef7c8a88ff1c32d641bc06cfebdf05af73048
  • Generated: 2026-11-13T23:54:51+00:00
  • Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2

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.

  • Explicitly attributed share (lower bound): 46.0%
  • Unattributed share in AI-consistent velocity bursts: 19.8%
  • Estimated AI-generated share: 46.0%
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
  • Stylometry index: 0.26 per 1,000 lines (narrated steps 0, placeholders 0, assistant phrasing 0, emoji 11). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-05 60,269 51%
2026-06 13,104 16%
2026-07 1,521 100%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (0d2ef7c8a88f)
  • Claude Code: trailer 'Co-Authored-By: Claude' (bccea3c236e2)
  • Claude Code: trailer 'Co-Authored-By: Claude' (48e67d852b6b)
  • Claude Code: trailer 'Co-Authored-By: Claude' (545525cf3e53)
  • Claude Code: trailer 'Co-Authored-By: Claude' (286514e11dff)
  • Claude Code: trailer 'Co-Authored-By: Claude' (b8b7eb1716cd)
  • Claude Code: trailer 'Co-Authored-By: Claude' (e29af564cecb)
  • Cursor agent: on merged branch (9891c6c4fc) (c7e02074947f)
  • Cursor agent: on merged branch (9891c6c4fc) (cec9b53724e9)
  • Cursor agent: on merged branch (9891c6c4fc) (9b31735cbaf8)
  • Cursor agent: on merged branch (9891c6c4fc) (d826ed473690)
  • Cursor agent: on merged branch (9891c6c4fc) (0383bfa74379)
  • Cursor agent: on merged branch (9891c6c4fc) (98d2bfe2e56c)
  • Cursor agent: on merged branch (9891c6c4fc) (3b1a264a8154)
  • Cursor agent: on merged branch (9891c6c4fc) (981254ceb5e0)

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
  • Functions: 1,097; mean complexity 3.8, 90th percentile 8; 29 complex and 10 long functions
  • Duplicated lines: 8.0% of 15,691 compared
  • Tests: 15,754 test lines for 21,395 source lines (ratio 0.74); CI test commands: none detected; 82% of recent source commits also change tests
  • Docs missing or thin: contributing, changelog

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
  • Known vulnerabilities: 89 in 19 packages (critical 4, high 26, medium 52, low 7)

  • Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles

Top findings

Severity Finding Location
critical osv/GHSA-jqcg-44mw-7w3h: proxy-addr@2.0.7 (npm) is affected by GHSA-jqcg-44mw-7w3h package-lock.json
critical osv/GHSA-5gmw-xhrv-c9v3: tinypool@1.1.1 (npm) is affected by GHSA-5gmw-xhrv-c9v3 package-lock.json
critical osv/GHSA-85c8-ppgw-ccpr: tinypool@1.1.1 (npm) is affected by GHSA-85c8-ppgw-ccpr package-lock.json
critical osv/GHSA-5xrq-8626-4rwp: vitest@2.1.9 (npm) is affected by GHSA-5xrq-8626-4rwp package-lock.json
high osv/GHSA-22jm-h49p-29qw: @modelcontextprotocol/sdk@1.29.0 (npm) is affected by GHSA-22jm-h49p-29qw package-lock.json
high osv/GHSA-46jr-4wx8-v453: @modelcontextprotocol/sdk@1.29.0 (npm) is affected by GHSA-46jr-4wx8-v453 package-lock.json
high osv/GHSA-6qxp-vccf-f47h: @modelcontextprotocol/sdk@1.29.0 (npm) is affected by GHSA-6qxp-vccf-f47h package-lock.json
high osv/GHSA-f897-62hf-6gxq: @modelcontextprotocol/sdk@1.29.0 (npm) is affected by GHSA-f897-62hf-6gxq package-lock.json
high osv/GHSA-27r3-jxmh-p828: body-parser@2.2.2 (npm) is affected by GHSA-27r3-jxmh-p828 package-lock.json
high osv/GHSA-4c8g-83qw-93j6: fast-uri@3.1.2 (npm) is affected by GHSA-4c8g-83qw-93j6 package-lock.json
high osv/GHSA-7p8r-x3mc-p8w7: fast-uri@3.1.2 (npm) is affected by GHSA-7p8r-x3mc-p8w7 package-lock.json
high osv/GHSA-f65p-4m7j-42xc: fast-uri@3.1.2 (npm) is affected by GHSA-f65p-4m7j-42xc package-lock.json
high osv/GHSA-fph4-wmhf-6fwf: fast-uri@3.1.2 (npm) is affected by GHSA-fph4-wmhf-6fwf package-lock.json
high osv/GHSA-jqff-g426-hqxp: fast-uri@3.1.2 (npm) is affected by GHSA-jqff-g426-hqxp package-lock.json
high osv/GHSA-qw65-cvwx-89v3: fast-uri@3.1.2 (npm) is affected by GHSA-qw65-cvwx-89v3 package-lock.json
high osv/GHSA-v2hh-gcrm-f6hx: fast-uri@3.1.2 (npm) is affected by GHSA-v2hh-gcrm-f6hx package-lock.json
high osv/GHSA-88fw-hqm2-52qc: hono@4.12.18 (npm) is affected by GHSA-88fw-hqm2-52qc package-lock.json
high osv/GHSA-mwp4-54f8-5fhr: ip-address@10.2.0 (npm) is affected by GHSA-mwp4-54f8-5fhr package-lock.json
high osv/GHSA-28wg-ghj8-5hjv: nanoid@3.3.12 (npm) is affected by GHSA-28wg-ghj8-5hjv package-lock.json
high osv/GHSA-2v37-7h3g-55p8: nanoid@3.3.12 (npm) is affected by GHSA-2v37-7h3g-55p8 package-lock.json
high osv/GHSA-r28c-9q8g-f849: postcss@8.5.14 (npm) is affected by GHSA-r28c-9q8g-f849 package-lock.json
high osv/GHSA-68fv-2mgg-jv7q: source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q package-lock.json
high osv/GHSA-4qx8-w7c3-pj3p: toml@4.1.1 (npm) is affected by GHSA-4qx8-w7c3-pj3p package-lock.json
high osv/GHSA-82x6-q7mm-w9cf: toml@4.1.1 (npm) is affected by GHSA-82x6-q7mm-w9cf package-lock.json
high osv/GHSA-9j65-hcg3-gc64: toml@4.1.1 (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

  • readme-download-lure: gives an archive password

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

  • Source lines: 21,395; test lines: 15,754
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/)