antimatter15/ocrad.js
OCR in Javascript via Emscripten
- Repository: https://github.com/antimatter15/ocrad.js
- Commit:
41daf0d2c2d0fc46db0633a6c6516af779b9f0bc - Generated: 2026-11-13T23:25:20+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) | 0 | none-detected | 47% | 100% |
| Code quality | 37 | poor | 90% | 100% |
| Security | 73 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2013-12 | 19,553 | 0% |
| 2014-01 | 46 | 0% |
| 2014-04 | 76 | 0% |
| 2014-05 | 178 | 0% |
| 2015-01 | 1,013 | 0% |
| 2016-08 | 97,488 | 0% |
| 2018-07 | 4 | 0% |
| 2019-06 | 2 | 0% |
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 poor: test-to-source ratio 0.00, no CI test run detected; 58% of function code in complex or long functions; 9% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 18 |
| Duplication | 58 |
| Code smells (Opengrep) | 83 |
| Tests and CI | 0 |
| Documentation | 85 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | 15 |
- Functions: 561; mean complexity 8.9, 90th percentile 18; 77 complex and 10 long functions
- Duplicated lines: 9.0% of 8,276 compared
- Tests: 0 test lines for 12,607 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
- Docs missing or thin: contributing
Most complex functions:
- Textline::recognize2 in ocrad-0.25/textline_r2.cc: complexity 409, 660 lines
- Character::recognize12 in ocrad-0.25/character_r12.cc: complexity 144, 211 lines
- Features::test_EFIJLlT in ocrad-0.25/feats_test0.cc: complexity 143, 161 lines
- Textblock::Textblock in ocrad-0.25/textblock.cc: complexity 115, 233 lines
- Features::test_HKMNUuvwYy in ocrad-0.25/feats_test0.cc: complexity 106, 124 lines
Security
Security posture is adequate: no high-impact findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 100 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | 25 |
- Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
- OpenSSF Scorecard aggregate: 2.5/10 (published 2026-11-09)
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: 12,607; test lines: 0
| Language | Lines |
|---|---|
| C++ | 10,510 |
| C | 1,567 |
| JavaScript | 315 |
| Shell | 202 |
| Python | 13 |