RepoTrust

QoderAI/better-harness

An open-source Harness Engineering platform for coding agents—define harnesses as code, run controlled experiments, inspect evidence, and compare outcomes. Turn task evidence into actionable team and organization insights.

https://github.com/QoderAI/better-harness · commit c6240a808923 · scored 2026-11-14 · scoring prov-4+qual-2+sec-2

phantom-dependency

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

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

Scores

Phantom dependency: a declared package does not exist on its public registry. If it isn't a private package, anyone could register that name and have their code installed (slopsquatting). See the security findings.

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 42 explicit 95% 100%
Code quality 75 adequate 90% 100%
Security 39 poor 85% 100%

AI provenance

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

AI tool Attributed commits Lines added
OpenAI Codex 202 135,506
Claude Code 38 22,358
GitHub Copilot coding agent 1 268

Current source lines last changed by AI-attributed commits: 87,115 of 226,503.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 1.297 0.624 2.08x
Security 1.297 1.334 0.97x
Month Lines added Attributed to AI
2026-07 114,609 6%
2026-08 154,288 76%
2026-09 104,632 32%
2026-10 1,102 24%
2026-11 84 0%

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.47, CI runs tests; 28% of function code in complex or long functions; 6% duplicated lines. Weakest area: complexity.

Area Score
Complexity (lizard) 42
Duplication 72
Code smells (Opengrep) 75
Tests and CI 88
Documentation 100
Type safety 100
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is poor: 199 known vulnerabilities in 64 dependencies; 32 high-severity SAST findings; 31 high-severity workflow issues. Weakest area: posture.

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

Top findings

Severity Finding Location
critical osv/GHSA-jqcg-44mw-7w3h: proxy-addr@2.0.7 (npm) is affected by GHSA-jqcg-44mw-7w3h; also in package-lock.json docs/package-lock.json
critical osv/GHSA-pqg4-j6r4-53mv: shell-quote@1.10.0 (npm) is affected by GHSA-pqg4-j6r4-53mv docs/package-lock.json
critical osv/GHSA-5gmw-xhrv-c9v3: tinypool@1.1.1 (npm) is affected by GHSA-5gmw-xhrv-c9v3 docs/package-lock.json
critical osv/GHSA-85c8-ppgw-ccpr: tinypool@1.1.1 (npm) is affected by GHSA-85c8-ppgw-ccpr docs/package-lock.json
critical osv/GHSA-8r5x-fm3f-whwj: handlebars@4.7.9 (npm) is affected by GHSA-8r5x-fm3f-whwj package-lock.json
critical osv/GHSA-p8wg-vrv2-v86f: handlebars@4.7.9 (npm) is affected by GHSA-p8wg-vrv2-v86f package-lock.json
critical osv/GHSA-2464-fhr4-w9xw: next@16.3.6 (npm) is affected by GHSA-2464-fhr4-w9xw package-lock.json
critical osv/GHSA-673q-mjm6-r5xr: next@16.3.6 (npm) is affected by GHSA-673q-mjm6-r5xr package-lock.json
critical osv/RUSTSEC-2026-0327: wasmtime@48.0.1 (crates.io) is affected by RUSTSEC-2026-0327 packages/better-harness-desktop/rust/ontology-service/Cargo.lock
critical osv/GHSA-mghf-wjfp-p5xm: wasmtime@48.0.1 (crates.io) is affected by RUSTSEC-2026-0379, GHSA-mghf-wjfp-p5xm packages/better-harness-desktop/rust/ontology-service/Cargo.lock
high registry.missing-package: npm package '@homology/integration-harness-notebook-provider' does not exist on the public registry: a private package, a typo, or an invented (hallucinated) name that anyone could register packages/harness-studio/package.json
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] packages/harness-studio-apps/apps/file-viewer/ui/entry.mjs:129
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a disclosure.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] packages/harness-studio-apps/apps/file-viewer/ui/entry.mjs:129
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: !npmCli && process.platform === "win32"}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false [confidence low] scripts/dsh-configured-assets/native-smoke.mjs:74
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: !npmCli && process.platform === "win32"}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false [confidence low] scripts/dsh-skill-discovery/native-smoke.mjs:52
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1269
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a container.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1269
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1282
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a inspector.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1282
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1295
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a inspector.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1295
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1312
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1324
high opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1737
high opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a body.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] scripts/harness-inspector/ui/workbench.js:1737

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.

Dependency registry checks

154 declared packages checked: 1 not found on their registry, 0 first published in the last 30 days.

A missing package may be private. If it isn't, the name is unclaimed and anyone could publish code under it.

Repository profile

Language Lines
JavaScript 189,150
TypeScript 99,464
Rust 43,143
Go 433
Objective-C 231
C 114

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/QoderAI/better-harness/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/QoderAI/better-harness/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/QoderAI/better-harness/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/QoderAI/better-harness/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/QoderAI/better-harness/security.svg)](https://repotrust.synapticcyber.com/r/github.com/QoderAI/better-harness/)