mikayla-maki/loom
A secure agent harness runtime and framework
- 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:
- auditAgentInner in packages/loom/src/audit/audit.ts: complexity 121, 568 lines
- formatCapabilityTree in packages/loom/src/audit/audit.ts: complexity 65, 235 lines
- renderResults in packages/loom/src/runtime/builtins/web_search.ts: complexity 35, 53 lines
- tryClassifyLineStart in packages/loom/src/cli/streaming-markdown.ts: complexity 32, 91 lines
- applyToolGroups in packages/capabilities/src/tool-groups.ts: complexity 31, 113 lines
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: [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
- 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 |