Tyche-MKR/vmark
- Repository: https://github.com/Tyche-MKR/vmark
- Commit:
b6ffc7e1e81044fe97b5982a11d00214d4f59721 - Generated: 2026-11-13T23:51:15+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) | 2 | explicit | 95% | 100% |
| Code quality | 87 | strong | 90% | 100% |
| Security | 49 | poor | 85% | 100% |
AI provenance
Explicit AI attribution on 2% of first-party code added; an estimated 2% including velocity signals.
- Explicitly attributed share (lower bound): 2.0%
- Unattributed share in AI-consistent velocity bursts: 45.0%
- Estimated AI-generated share: 2.0%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 168 | 22,575 |
| OpenAI Codex | 1 | 172 |
- AI tooling configured in repo: claude-code
Current source lines last changed by AI-attributed commits: 3,301 of 216,249 (sampled).
| Findings per 1,000 lines | AI-attributed | Other | Ratio |
|---|---|---|---|
| Quality | 0.606 | 0.653 | 0.93x |
| Security | 1.515 | 1.024 | 1.48x |
- Stylometry index: 0.31 per 1,000 lines (narrated steps 23, placeholders 1, assistant phrasing 0, emoji 152). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2025-12 | 22,232 | 0% |
| 2026-01 | 195,604 | 0% |
| 2026-02 | 107,870 | 6% |
| 2026-03 | 221,663 | 2% |
| 2026-04 | 32,521 | 5% |
| 2026-05 | 90,762 | 8% |
| 2026-06 | 48,849 | 3% |
| 2026-07 | 257,548 | 0% |
| 2026-08 | 141,761 | 2% |
Evidence
- Claude Code: message 'claude.ai/code' (be47edff2cf2)
- Claude Code: trailer 'Co-Authored-By: Claude' (5a326eeb6135)
- OpenAI Codex: trailer 'Co-authored-by: Codex' (c1da9392ef93)
- Claude Code: trailer 'Co-authored-by: claude' (77289ccafa39)
- Claude Code: trailer 'Co-authored-by: claude' (f5bdf9f9513d)
- Claude Code: trailer 'Co-authored-by: claude' (badd1f14c39d)
- Claude Code: trailer 'Co-Authored-By: Claude' (27669ce4fa60)
- Claude Code: trailer 'Co-authored-by: claude' (c00517b6f84b)
- Claude Code: trailer 'Co-authored-by: claude' (9615067109f2)
- Claude Code: trailer 'Co-authored-by: claude' (ae33f95f849b)
- Claude Code: trailer 'Co-authored-by: claude' (2874d57efda7)
- Claude Code: trailer 'Co-authored-by: claude' (10f724603718)
- Claude Code: trailer 'Co-authored-by: claude' (a602c681ea58)
- Claude Code: trailer 'Co-authored-by: claude' (a03b618cf99e)
- Claude Code: trailer 'Co-authored-by: claude' (c2a03ed080a0)
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 strong: test-to-source ratio 1.47, CI runs tests; 13% of function code in complex or long functions; 3% duplicated lines. Weakest area: complexity.
| Area | Score |
|---|---|
| Complexity (lizard) | 68 |
| Duplication | 82 |
| Code smells (Opengrep) | 93 |
| Tests and CI | 100 |
| Documentation | 80 |
| Type safety | 100 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 15,749; mean complexity 2.9, 90th percentile 6; 231 complex and 75 long functions
- Duplicated lines: 3.2% of 231,955 compared
- Tests: 475,272 test lines for 322,817 source lines (ratio 1.47); CI test commands: npm test, pnpm test, go test, cargo test; 59% of recent source commits also change tests
- Docs missing or thin: changelog
Most complex functions:
- performWysiwygToolbarAction in src/plugins/toolbarActions/wysiwygAdapter.ts: complexity 139, 174 lines
- runBrowserAction in server/mcp/src/tools/browserActions.ts: complexity 90, 201 lines
- performSourceToolbarAction in src/plugins/toolbarActions/sourceAdapter.ts: complexity 88, 154 lines
- manualChunks in scripts/manualChunks.ts: complexity 53, 72 lines
- typed in src-tauri/src/coherence/envelope_typed.rs: complexity 52, 166 lines
Security
Security posture is poor: 196 known vulnerabilities in 68 dependencies; 65 high-severity SAST findings; 70 high-severity workflow issues. Weakest area: ci actions.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 88 |
| Static analysis (Opengrep) | 89 |
| Vulnerable dependencies (OSV) | 0 |
| CI workflows (zizmor) | 0 |
| Posture (policy, updates, signing, lockfiles) | 40 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 196 in 68 packages (critical 4, high 63, medium 84, low 21)
-
Posture checks passed: dependency updates; missing: security policy, signed commits, lockfiles
Top findings
| Severity | Finding | Location |
|---|---|---|
| critical | osv/GHSA-cg2g-xh64-v4q7: [email protected] (npm) is affected by GHSA-cg2g-xh64-v4q7 |
pnpm-lock.yaml |
| critical | osv/GHSA-jqcg-44mw-7w3h: [email protected] (npm) is affected by GHSA-jqcg-44mw-7w3h |
pnpm-lock.yaml |
| critical | osv/RUSTSEC-2026-0369: [email protected] (crates.io) is affected by RUSTSEC-2026-0369 |
src-tauri/Cargo.lock |
| critical | osv/GHSA-m665-v7pm-7grj: [email protected] (crates.io) is affected by GHSA-m665-v7pm-7grj |
src-tauri/Cargo.lock |
| high | opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] |
e2e/lib/bridge.mjs:37 |
| high | opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: isWindows}'. 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}' instead. [confidence low] |
scripts/tauri-wrapper.mjs:186 |
| high | opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] |
server/mcp/src/bridge/connection.ts:40 |
| 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] |
src/export/reader/vmark-reader.js:816 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a panel.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/export/reader/vmark-reader.js:816 |
| 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] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:28 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a btn.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:28 |
| 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] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:83 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a this.btn.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:83 |
| 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] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:87 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a this.btn.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codeBlockLineNumbers/nodeViewActions.ts:87 |
| 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] |
src/plugins/codePreview/previewHelpers.ts:116 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a wrapper.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codePreview/previewHelpers.ts:116 |
| 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] |
src/plugins/codePreview/previewHelpers.ts:203 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a copyBtn.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codePreview/previewHelpers.ts:203 |
| 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] |
src/plugins/codePreview/renderers/renderGraphvizPreview.ts:55 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a element.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codePreview/renderers/renderGraphvizPreview.ts:55 |
| 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] |
src/plugins/codePreview/renderers/renderGraphvizPreview.ts:110 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a placeholder.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codePreview/renderers/renderGraphvizPreview.ts:110 |
| 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] |
src/plugins/codePreview/renderers/renderLatex.ts:35 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a element.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
src/plugins/codePreview/renderers/renderLatex.ts:35 |
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.
Repository profile
- Source lines: 322,817; test lines: 475,272
| Language | Lines |
|---|---|
| TypeScript | 654,130 |
| Rust | 97,752 |
| JavaScript | 35,954 |
| Shell | 6,941 |
| Vue | 3,131 |
| Python | 181 |