MuzafferH/prisma-decision-engine
PRISMA — Decision intelligence engine. 1,000 futures. One decision.
unreviewed-ai-risk
- Repository: https://github.com/MuzafferH/prisma-decision-engine
- Commit:
9100d38c22793441d0dd27fb4ae0fdd8b30ba4b6 - Generated: 2026-11-13T23:43:49+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
Unreviewed AI code risk: a large share of this code is explicitly AI-attributed, and its tests or review process are weak while quality or security scores are low.
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 93 | explicit | 92% | 100% |
| Code quality | 36 | poor | 90% | 100% |
| Security | 86 | strong | 85% | 100% |
AI provenance
Explicit AI attribution on 93% of first-party code added; an estimated 93% including velocity signals.
- Explicitly attributed share (lower bound): 92.6%
- Unattributed share in AI-consistent velocity bursts: 7.4%
- Estimated AI-generated share: 92.6%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 82 | 12,226 |
- AI tooling configured in repo: claude-code
Current source lines last changed by AI-attributed commits: 10,132 of 10,899.
| Findings per 1,000 lines | AI-attributed | Other | Ratio |
|---|---|---|---|
| Quality | 0.493 | 2.608 | 0.19x |
| Security | 0.296 | 1.304 | 0.23x |
- Stylometry index: 0.46 per 1,000 lines (narrated steps 0, placeholders 2, assistant phrasing 0, emoji 2). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2026-02 | 13,205 | 93% |
Evidence
- Claude Code: trailer 'Co-Authored-By: Claude' (9100d38c2279)
- Claude Code: trailer 'Co-Authored-By: Claude' (8303a8f0d9ba)
- Claude Code: trailer 'Co-Authored-By: Claude' (0f113b88c2b3)
- Claude Code: trailer 'Co-Authored-By: Claude' (c9c0bb3fa108)
- Claude Code: trailer 'Co-Authored-By: Claude' (9cc7f87dae18)
- Claude Code: trailer 'Co-Authored-By: Claude' (dc9c6e34e8a1)
- Claude Code: trailer 'Co-Authored-By: Claude' (d3c7f9e1bdea)
- Claude Code: trailer 'Co-Authored-By: Claude' (3d46af099f4a)
- Claude Code: trailer 'Co-Authored-By: Claude' (1fbc1de8447e)
- Claude Code: trailer 'Co-Authored-By: Claude' (4122efa884ef)
- Claude Code: trailer 'Co-Authored-By: Claude' (8fdafeadfff9)
- Claude Code: trailer 'Co-Authored-By: Claude' (74f4913a4cd3)
- Claude Code: trailer 'Co-Authored-By: Claude' (4647e2907901)
- Claude Code: trailer 'Co-Authored-By: Claude' (49d5324f3ed7)
- Claude Code: trailer 'Co-Authored-By: Claude' (f5fe99f5c65a)
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; 38% of function code in complex or long functions; 21% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 32 |
| Duplication | 28 |
| Code smells (Opengrep) | 90 |
| Tests and CI | 0 |
| Documentation | 65 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 499; mean complexity 4.4, 90th percentile 11; 30 complex and 9 long functions
- Duplicated lines: 21.1% of 7,759 compared
- Tests: 0 test lines for 10,899 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- handler in api/chat.js: complexity 72, 424 lines
- Chat.handleCSVUpload in public/js/chat.js: complexity 49, 153 lines
- Dashboard.generateDynamicRecommendations in public/js/dashboard.js: complexity 47, 103 lines
- Chat.sendMessage in public/js/chat.js: complexity 45, 179 lines
- handler in api/refine-recommendations.js: complexity 42, 84 lines
Security
Security posture is strong: no high-impact findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 99 |
| Vulnerable dependencies (OSV) | 100 |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| low | opengrep/javascript.lang.security.audit.unsafe-formatstring: Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low] |
engines/carlo.js:165 |
| low | opengrep/javascript.lang.security.audit.unsafe-formatstring: Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low] |
public/js/carlo.js:277 |
| low | opengrep/javascript.lang.security.audit.unsafe-formatstring: Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low] |
public/js/carlo.js:355 |
| low | opengrep/javascript.lang.security.audit.unsafe-formatstring: Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low] |
public/js/carlo.js:453 |
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: 10,899; test lines: 0
| Language | Lines |
|---|---|
| JavaScript | 10,899 |