{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:45:18.513480Z","repo":{"ref":{"host":"github.com","owner":"rustic-ai","name":"codeprism"},"default_branch":"main","clone_url":"https://github.com/rustic-ai/codeprism.git","html_url":"https://github.com/rustic-ai/codeprism","description":"An experimental, 100% AI-generated, high-performance code intelligence server providing AI assistants with a graph-based understanding of codebases.","stars":32,"forks":10,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":7798,"primary_language":"Rust","license_spdx":"NOASSERTION","created_at":"2025-06-18T22:16:02Z","pushed_at":"2026-02-14T08:52:36Z","security_policy_url":"https://github.com/rustic-ai/codeprism/security/policy","distribution":{"owner_created_at":"2024-02-14T22:02:16Z","owner_type":"Organization","release_assets":[{"name":"codeprism-linux-x86_64","size":8594536,"download_count":24,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116496,"download_count":8,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7763636,"download_count":9,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":21,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":6,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525104,"download_count":5,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13459800,"download_count":5,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":8,"release_tag":"v0.4.6","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/moth-windows-x86_64.exe"},{"name":"codeprism-linux-x86_64","size":8594544,"download_count":6,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116512,"download_count":3,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7763644,"download_count":3,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":3,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":4,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525104,"download_count":3,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13459816,"download_count":3,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":2,"release_tag":"v0.4.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/moth-windows-x86_64.exe"},{"name":"codeprism-linux-x86_64","size":8594544,"download_count":3,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116512,"download_count":2,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7767836,"download_count":2,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":2,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":3,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525120,"download_count":2,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13459808,"download_count":3,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":2,"release_tag":"v0.4.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/moth-windows-x86_64.exe"},{"name":"codeprism-linux-x86_64","size":8594544,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116512,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7763636,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":2,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525104,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13459800,"download_count":3,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":2,"release_tag":"v0.4.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.3/moth-windows-x86_64.exe"},{"name":"codeprism-linux-x86_64","size":8594544,"download_count":3,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116512,"download_count":3,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7763644,"download_count":3,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":2,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":3,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525120,"download_count":4,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13459808,"download_count":3,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":2,"release_tag":"v0.4.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.2/moth-windows-x86_64.exe"},{"name":"codeprism-linux-x86_64","size":8594544,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/codeprism-linux-x86_64"},{"name":"codeprism-macos-aarch64","size":7116592,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/codeprism-macos-aarch64"},{"name":"codeprism-macos-x86_64","size":7763644,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/codeprism-macos-x86_64"},{"name":"codeprism-windows-x86_64.exe","size":8834048,"download_count":2,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/codeprism-windows-x86_64.exe"},{"name":"moth-linux-x86_64","size":15491864,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/moth-linux-x86_64"},{"name":"moth-macos-aarch64","size":12525120,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/moth-macos-aarch64"},{"name":"moth-macos-x86_64","size":13455704,"download_count":3,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/moth-macos-x86_64"},{"name":"moth-windows-x86_64.exe","size":14512640,"download_count":2,"release_tag":"v0.4.0","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.0/moth-windows-x86_64.exe"},{"name":"codeprism-mcp-linux-x86_64","size":8366032,"download_count":5,"release_tag":"v0.3.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.5/codeprism-mcp-linux-x86_64"},{"name":"codeprism-mcp-linux-x86_64-musl","size":8505488,"download_count":2,"release_tag":"v0.3.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.5/codeprism-mcp-linux-x86_64-musl"},{"name":"codeprism-mcp-macos-aarch64","size":7235568,"download_count":2,"release_tag":"v0.3.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.5/codeprism-mcp-macos-aarch64"},{"name":"codeprism-mcp-macos-x86_64","size":7808700,"download_count":2,"release_tag":"v0.3.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.5/codeprism-mcp-macos-x86_64"},{"name":"codeprism-mcp-windows-x86_64.exe","size":8760320,"download_count":2,"release_tag":"v0.3.5","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.5/codeprism-mcp-windows-x86_64.exe"},{"name":"codeprism-mcp-linux-x86_64","size":8366024,"download_count":2,"release_tag":"v0.3.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.4/codeprism-mcp-linux-x86_64"},{"name":"codeprism-mcp-linux-x86_64-musl","size":8505488,"download_count":4,"release_tag":"v0.3.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.4/codeprism-mcp-linux-x86_64-musl"},{"name":"codeprism-mcp-macos-aarch64","size":7235664,"download_count":1,"release_tag":"v0.3.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.4/codeprism-mcp-macos-aarch64"},{"name":"codeprism-mcp-macos-x86_64","size":7808692,"download_count":2,"release_tag":"v0.3.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.4/codeprism-mcp-macos-x86_64"},{"name":"codeprism-mcp-windows-x86_64.exe","size":8761344,"download_count":1,"release_tag":"v0.3.4","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.4/codeprism-mcp-windows-x86_64.exe"},{"name":"codeprism-mcp-linux-x86_64","size":8360912,"download_count":2,"release_tag":"v0.3.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.3/codeprism-mcp-linux-x86_64"},{"name":"codeprism-mcp-linux-x86_64-musl","size":8505488,"download_count":2,"release_tag":"v0.3.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.3/codeprism-mcp-linux-x86_64-musl"},{"name":"codeprism-mcp-macos-aarch64","size":7235568,"download_count":1,"release_tag":"v0.3.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.3/codeprism-mcp-macos-aarch64"},{"name":"codeprism-mcp-macos-x86_64","size":7808700,"download_count":1,"release_tag":"v0.3.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.3/codeprism-mcp-macos-x86_64"},{"name":"codeprism-mcp-windows-x86_64.exe","size":8761344,"download_count":1,"release_tag":"v0.3.3","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.3/codeprism-mcp-windows-x86_64.exe"},{"name":"codeprism-mcp-linux-x86_64","size":8366024,"download_count":2,"release_tag":"v0.3.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.2/codeprism-mcp-linux-x86_64"},{"name":"codeprism-mcp-linux-x86_64-musl","size":8505496,"download_count":3,"release_tag":"v0.3.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.2/codeprism-mcp-linux-x86_64-musl"},{"name":"codeprism-mcp-macos-aarch64","size":7235648,"download_count":2,"release_tag":"v0.3.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.2/codeprism-mcp-macos-aarch64"},{"name":"codeprism-mcp-macos-x86_64","size":7809644,"download_count":2,"release_tag":"v0.3.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.2/codeprism-mcp-macos-x86_64"},{"name":"codeprism-mcp-windows-x86_64.exe","size":8760320,"download_count":3,"release_tag":"v0.3.2","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.3.2/codeprism-mcp-windows-x86_64.exe"}]}},"commit_sha":"8115b77568c16d1eb0710396da39232b33663fc0","profile":{"lines_by_language":{"Rust":105474,"Python":9170,"JavaScript":2835,"Java":1970,"TypeScript":600,"Shell":300},"files_by_category":{"source":202,"docs":140,"other":122,"config":79,"test":51,"binary":11,"oversized":3,"generated":2,"vendored":2},"source_lines":100050,"test_lines":20299},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.6175,"estimated_share":0.0,"ai_artifacts":19.0,"flagged_work_units":33.0,"flagged_releases":2.0},"summary":"Weak signals consistent with AI-assisted development."},"quality":{"score":75.8,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":61.7,"duplication":62.6,"lint":85.4,"testing":83.5,"docs":100.0,"type_safety":56.5,"process":null},"summary":"Code quality is adequate: test-to-source ratio 0.20, CI runs tests; 16% of function code in complex or long functions; 8% duplicated lines. Weakest area: type safety."},"security":{"score":55.2,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":96.7,"sast":96.9,"dependencies":0.4,"ci_actions":0.0,"posture":60.0,"scorecard":null},"summary":"Security posture is weak: 183 known vulnerabilities in 50 dependencies; 3 high-severity SAST findings; 97 high-severity workflow issues. Weakest area: ci actions."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":137.0,"checked":137.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":386.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":218651.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-06":{"loc":153965,"attributed_loc":0},"2025-07":{"loc":64511,"attributed_loc":0},"2025-08":{"loc":175,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":19.0,"workflow_agents":0.0,"tools_configured":2.0,"earliest_adoption":1750352144.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/agent-workflow.mdc (cursor configuration)","ref":".cursor/rules/agent-workflow.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/agent-workflow.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/bash.mdc (cursor configuration)","ref":".cursor/rules/bash.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/bash.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/codeprism-dev-guidelines.mdc (cursor configuration)","ref":".cursor/rules/codeprism-dev-guidelines.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/codeprism-dev-guidelines.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/comment-standards.md (cursor configuration)","ref":".cursor/rules/comment-standards.md","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/comment-standards.md","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/complete-implementation-standards.mdc (cursor configuration)","ref":".cursor/rules/complete-implementation-standards.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/complete-implementation-standards.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/dev-best-practices.mdc (cursor configuration)","ref":".cursor/rules/dev-best-practices.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/dev-best-practices.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/docker.mdc (cursor configuration)","ref":".cursor/rules/docker.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/docker.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/docs-best-practices.mdc (cursor configuration)","ref":".cursor/rules/docs-best-practices.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/docs-best-practices.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/gh-commands.mdc (cursor configuration)","ref":".cursor/rules/gh-commands.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/gh-commands.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/github-development-wf.mdc (cursor configuration)","ref":".cursor/rules/github-development-wf.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/github-development-wf.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/kubernetes.mdc (cursor configuration)","ref":".cursor/rules/kubernetes.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/kubernetes.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/rust-advanced.mdc (cursor configuration)","ref":".cursor/rules/rust-advanced.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/rust-advanced.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/rust-intermediate.mdc (cursor configuration)","ref":".cursor/rules/rust-intermediate.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/rust-intermediate.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/rust.mdc (cursor configuration)","ref":".cursor/rules/rust.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/rust.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/tdd-comprehensive-testing.mdc (cursor configuration)","ref":".cursor/rules/tdd-comprehensive-testing.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/tdd-comprehensive-testing.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/tdd-workflow-planning.mdc (cursor configuration)","ref":".cursor/rules/tdd-workflow-planning.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/tdd-workflow-planning.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/test-coverage-requirements.mdc (cursor configuration)","ref":".cursor/rules/test-coverage-requirements.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/test-coverage-requirements.mdc","weight":0.5},{"kind":"ai-artifact","description":".cursor/rules/test-quality-validation.mdc (cursor configuration)","ref":".cursor/rules/test-quality-validation.mdc","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/.cursor/rules/test-quality-validation.mdc","weight":0.5}],"data":{"artifacts":[{"tool":"generic-agent","path":"AGENTS.md","added_at":1754869381},{"tool":"cursor","path":".cursor/rules/agent-workflow.mdc","added_at":1751178759},{"tool":"cursor","path":".cursor/rules/bash.mdc","added_at":1750352144},{"tool":"cursor","path":".cursor/rules/codeprism-dev-guidelines.mdc","added_at":1751510199},{"tool":"cursor","path":".cursor/rules/comment-standards.md","added_at":1751315839},{"tool":"cursor","path":".cursor/rules/complete-implementation-standards.mdc","added_at":1751263250},{"tool":"cursor","path":".cursor/rules/dev-best-practices.mdc","added_at":1751178759},{"tool":"cursor","path":".cursor/rules/docker.mdc","added_at":1750352144},{"tool":"cursor","path":".cursor/rules/docs-best-practices.mdc","added_at":1751178759},{"tool":"cursor","path":".cursor/rules/gh-commands.mdc","added_at":1750352144},{"tool":"cursor","path":".cursor/rules/github-development-wf.mdc","added_at":1751178759},{"tool":"cursor","path":".cursor/rules/kubernetes.mdc","added_at":1750352144},{"tool":"cursor","path":".cursor/rules/rust-advanced.mdc","added_at":1751165762},{"tool":"cursor","path":".cursor/rules/rust-intermediate.mdc","added_at":1751165762},{"tool":"cursor","path":".cursor/rules/rust.mdc","added_at":1750352144},{"tool":"cursor","path":".cursor/rules/tdd-comprehensive-testing.mdc","added_at":1751593937},{"tool":"cursor","path":".cursor/rules/tdd-workflow-planning.mdc","added_at":1751593937},{"tool":"cursor","path":".cursor/rules/test-coverage-requirements.mdc","added_at":1751593937},{"tool":"cursor","path":".cursor/rules/test-quality-validation.mdc","added_at":1751593937}],"workflows":[],"tools":["cursor","generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":104.0,"flagged_units":33.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":165645.0,"flagged_loc":135018.0,"flagged_loc_share":0.8151045911437109,"max_loc_per_hour":3234.076234117892,"median_loc_per_hour":464.75,"pr_timed_units":0.0,"excluded_import_loc":52878.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"8,626 lines of first-party code in ~2.7h (3,234 lines/hour, 7 commit session)","ref":"6fc9c0141cbc840525f93ce30a69fe3df6873aad","url":"https://github.com/rustic-ai/codeprism/commit/6fc9c0141cbc840525f93ce30a69fe3df6873aad","weight":0.6},{"kind":"velocity-burst","description":"7,593 lines of first-party code in ~2.5h (3,038 lines/hour, 2 commit session)","ref":"2d4a9b794d4166a1773e7978f6743819b6af4134","url":"https://github.com/rustic-ai/codeprism/commit/2d4a9b794d4166a1773e7978f6743819b6af4134","weight":0.6},{"kind":"velocity-burst","description":"2,607 lines of first-party code in ~0.9h (2,908 lines/hour, 2 commit session)","ref":"5d027c6b7a3e7db83459cd95965f391c3edfd3b8","url":"https://github.com/rustic-ai/codeprism/commit/5d027c6b7a3e7db83459cd95965f391c3edfd3b8","weight":0.6},{"kind":"velocity-burst","description":"6,564 lines of first-party code in ~2.3h (2,858 lines/hour, 3 commit session)","ref":"1ee1a6c9096ec5746711b9858f34361cd374f2f8","url":"https://github.com/rustic-ai/codeprism/commit/1ee1a6c9096ec5746711b9858f34361cd374f2f8","weight":0.6},{"kind":"velocity-burst","description":"2,860 lines of first-party code in ~1.0h (2,750 lines/hour, 1 commit session)","ref":"e51ccc39077a8fff8eaf792fe5c3c274c99b0b1c","url":"https://github.com/rustic-ai/codeprism/commit/e51ccc39077a8fff8eaf792fe5c3c274c99b0b1c","weight":0.6},{"kind":"velocity-burst","description":"7,887 lines of first-party code in ~3.3h (2,379 lines/hour, 10 commit session)","ref":"b2e1792adc4ff65b776fd008e486f039831ab00e","url":"https://github.com/rustic-ai/codeprism/commit/b2e1792adc4ff65b776fd008e486f039831ab00e","weight":0.6},{"kind":"velocity-burst","description":"3,087 lines of first-party code in ~1.3h (2,354 lines/hour, 1 commit session)","ref":"5725655d400a7f6f8f706c79c17bf0f1c0362808","url":"https://github.com/rustic-ai/codeprism/commit/5725655d400a7f6f8f706c79c17bf0f1c0362808","weight":0.6},{"kind":"velocity-burst","description":"10,395 lines of first-party code in ~4.9h (2,139 lines/hour, 10 commit session)","ref":"d587fb345917709af087e2fd074b5cbaf3056bf7","url":"https://github.com/rustic-ai/codeprism/commit/d587fb345917709af087e2fd074b5cbaf3056bf7","weight":0.6},{"kind":"velocity-burst","description":"1,815 lines of first-party code in ~0.9h (2,131 lines/hour, 1 commit session)","ref":"3489e2e992031ff47557b1c73772499abab752e9","url":"https://github.com/rustic-ai/codeprism/commit/3489e2e992031ff47557b1c73772499abab752e9","weight":0.6},{"kind":"velocity-burst","description":"3,986 lines of first-party code in ~2.1h (1,899 lines/hour, 3 commit session)","ref":"8c035c57e355e381de5f0b3feec2ea6600996daa","url":"https://github.com/rustic-ai/codeprism/commit/8c035c57e355e381de5f0b3feec2ea6600996daa","weight":0.5696546248511314},{"kind":"velocity-burst","description":"6,531 lines of first-party code in ~3.5h (1,852 lines/hour, 4 commit session)","ref":"51c611d214b9dddad9534f7c8ebefc1787bc4de0","url":"https://github.com/rustic-ai/codeprism/commit/51c611d214b9dddad9534f7c8ebefc1787bc4de0","weight":0.5556984164500118},{"kind":"velocity-burst","description":"2,941 lines of first-party code in ~1.7h (1,714 lines/hour, 2 commit session)","ref":"dbe0aa8ffa2fc8719c512eedde10634bbd835a65","url":"https://github.com/rustic-ai/codeprism/commit/dbe0aa8ffa2fc8719c512eedde10634bbd835a65","weight":0.5142107819329771},{"kind":"velocity-burst","description":"2,560 lines of first-party code in ~1.5h (1,668 lines/hour, 3 commit session)","ref":"09a6701faa4167d564ca285084a842a51c18438b","url":"https://github.com/rustic-ai/codeprism/commit/09a6701faa4167d564ca285084a842a51c18438b","weight":0.5005068790731353},{"kind":"velocity-burst","description":"2,355 lines of first-party code in ~1.4h (1,668 lines/hour, 3 commit session)","ref":"dcabbefd17262a966f6529b174e3169fb74d3e99","url":"https://github.com/rustic-ai/codeprism/commit/dcabbefd17262a966f6529b174e3169fb74d3e99","weight":0.5004722550177095},{"kind":"velocity-burst","description":"2,344 lines of first-party code in ~1.4h (1,618 lines/hour, 2 commit session)","ref":"c20ff618b8551a14878158be1bd17664a136a088","url":"https://github.com/rustic-ai/codeprism/commit/c20ff618b8551a14878158be1bd17664a136a088","weight":0.4854304889741131}],"data":{"flagged_loc_by_commit":{"cc5efa33184253b64bb905aa07daf0ec03116be3":1353,"03ca161f5701d147a343b0f000bb62933f010a5c":2225,"3ade18c96814db8ef53f73a353eb058a41108ee6":2578,"407cb614495823a8481e7efa1c5f1b3b2d88bf01":2108,"1ee1a6c9096ec5746711b9858f34361cd374f2f8":1878,"1ea63e675f29fa55ec4155358ec0edf01a208e62":2119,"6c9a2d730fc508fa3e0f62e1cf1e87c91fe6f693":596,"76410ec4d128fcdbcbb5042179d44523f8f869b3":1332,"88028d1a701d86025caeecd0507a81c0d1ffb358":731,"51c611d214b9dddad9534f7c8ebefc1787bc4de0":3872,"8c54a8aba9b1e21b4a5c7467efd0a2e038ca511b":23,"8eb530024db21164c6aaf3bc66f7b63874f5c360":41,"f3d9b92bde3feaec41bde95ca209c0fcd15172bc":1299,"81d5beea6acf43e78e852590e58d471aed6eb08c":1222,"8dbddcbacf71bc69beada4f7e27000fa5bcf3200":419,"64c019d2ee2bd888f305eea9bd7460daabc26bbd":1019,"ffaa0e5c409aa83e629b871c37e28312f8d970bc":251,"031c2a11f033668bf6be1c923f0a1911a590167a":281,"4709b71062851abffd68b8a71b6d94617da6b2c3":901,"d7085460dee1e95a13d22eded9b22432792c2feb":1454,"e980be810e31801bc81ca40cc90cfad7bcea5556":555,"35611576355d34c877b19d709d68ba1df9d3c536":375,"1f3a53b9f9296fffff2ae73c2f29fb91d0c81c0d":3576,"6fc9c0141cbc840525f93ce30a69fe3df6873aad":1484,"aa63124d556ceef9f0ca851d46d29740b8aafe1b":1221,"9cf41b88362707ab6b1bb8f1878bfc4d07c785dc":53,"8b88e004f74dde2438fa930a084592bc28d9e15b":165,"e772238cab629b7356569fae232dd21daaebe1e8":900,"43b6a437a90feac9c410030e771b272e957ebec0":2743,"360b052c5943b55358d36712ddc985da0fd55b63":401,"4f485e0239286d30530cc628c5133af0e0cdea31":3,"e679eb5bd575f84bbc1e84614f57a1e3cdcf6765":91,"6cfca909ac98a0aaf9028b2e8e5ed0ef7ca95746":1557,"381f1c2eb61f3bcd8c270bcc842bd06abe0165f8":89,"b84d03b0b9c321b05aedb62ac1a09bb7d32c14c8":215,"6867cbe60e39f9ff2a665b93b3fab69db25f72b2":2037,"df04e4c450d8c731fb57ce53a66836ed346bcb92":518,"6b03913ea18a551ab2ed3c90bcda86404d81b3b2":304,"38ab5907a7905b8580e44da10a6c8bde8674c5b0":707,"c90d876a42558ab4c06abfdb703c0a36db2da8a1":1094,"b2e1792adc4ff65b776fd008e486f039831ab00e":1275,"3489e2e992031ff47557b1c73772499abab752e9":1815,"0e062bdb1a1b1f3fedcbe1773943dd809ac39ef7":26,"90f57545132af0e072fd4bc499602741e377827f":3197,"f8d4aa2ddf0b4924ce8b36e324dd22e2078208dd":460,"5e26e88ccbb2359d80aa47bc03e18ce6ce48eca6":918,"b9cc31670521fa47ab8d04e9394c630dab602f77":1032,"ce16c03e85829d1e058f6cc97ef006e9fc8232ab":433,"abbc52c5eb92e8ae46ebbbd4636a1da9ea47f3c8":1364,"43342c0d5ac2e8b901b8d1b072c25f416436ee91":1739,"2f8aac34a3e03f41a607ccf9a67523d9c52bbd25":1218,"d587fb345917709af087e2fd074b5cbaf3056bf7":8,"218c9c0e1bcbced3e91b057220d56e7f39bc5a68":7473,"2d4a9b794d4166a1773e7978f6743819b6af4134":120,"886ac1b3f22d41fae9e8f7198f5faa82a2a2b22a":2258,"29dc2a741c34494c890fa5df76b261eae1dca9b8":897,"8c035c57e355e381de5f0b3feec2ea6600996daa":831,"468c6d562d61a8887fb3d48a5cdf23af528906dd":835,"2fa1b52a768cefdfca4ba51082e950e96d35a96f":26,"9c1459670666a91178ece40fda29ff34db1ff78c":833,"ec469e408c16c15dbe0b2cf36c4c71271ee93243":808,"2bdaafb35382993a2bdc4a060dd0211e23299836":831,"a262dd8b8aad8af883c9cc9a25cc6380e754fc07":1331,"dcabbefd17262a966f6529b174e3169fb74d3e99":193,"e51ccc39077a8fff8eaf792fe5c3c274c99b0b1c":2860,"b78ac2c5cdb4ce041b4f75576ea0f192c9e3bc49":1263,"b3310399604744551defafac44539c1979d29794":348,"5d08cce022ad0d9c0e16868cf94fd31597c63488":148,"83bd798d992debc6d836147d82e75f3f135f0d12":653,"f492c596442c534c9d55008d84614ba80c9cdfa8":314,"2ead9f1187adff883a1840169b0da2ce4e5287dd":11,"ebe62a6c72c185516f7b9284692786d9ad99bb88":39,"823c54087b8fbdaf55e9390e5ed57212a8e1a6cc":655,"c996e48b4369aa82baecd6bd99f3074ef94434af":1089,"c7e684562f93e8dc87806711f8cc0b30e59a356e":3038,"a97852cef646206adf2d04b90c54228f57becbc8":869,"bb26f107347ca7d75c034b61178d6c06f0eba8c5":350,"4e76f6c35ea1c2e793f0bfece367a7e7da63dc84":47,"98dfb0ab46dce216fea44d9963e512bcf4eeb846":62,"89c12349024e192170ba5626c6897f943859741a":295,"2b5a300ca68cb9d51757fb10d4b1dfcdca92e69b":1163,"617333a9acea9ce72d9fa185aebc7ca16228b4ad":360,"2b7dd02c67aad9e91262b0622c79da69175f5128":3,"6ffdfcabc57d77086e529bec367769ecaadadb33":3,"6a65b329d74e35b60d16a327b5559fdf734948dd":80,"080c208c901a3f7915f208359dc7299f9644b3fa":431,"bfdce5d71e2d4ed241d2fff77b11f611a3732f49":800,"8895a3e2201cb2cacdbe3f464f8906f66ca97e7b":1385,"05841369bd80371a226415975767ce1f9660deda":9,"b4902f55f22e49995233f5b0a0f727c7588f33b6":474,"a5d03d1a30f84cf1460e1f6856940732474715a6":447,"b1fc81fc543778f89319c9e86c188b67cea5006c":2875,"5e66c08c705f6acbdada67a2cf79334d563cb068":17,"69ed46fbf65f9eb01bc6e1ffd80a649ca7d0307d":352,"9e453083444986689caec363d19668ec7c8673db":2599,"35284635eaee7abf3c2ed4dfea7ec4e586ad7130":1024,"855ea528694fa4dd71145c198d27119ee613a5e8":501,"7f152cf58f4a16eb4ec770e1fbeb257ef8edb58f":162,"edd5372609d6bb8b5875201f356fc69942e66875":102,"580893b6d841f55e1ea417b6eaf5e23c7635375c":170,"e3792d39d381879ca7d72c87ac1b92295cf0be27":110,"d61a300549298c7080d91524c1be37e357321fc5":343,"f673f0a963c2a411d4824f942efc6be72567b9aa":9,"5e36edfb95ebf12081db22fd988456b609416455":829,"92c1b97fe23ff413d8b19c6a0512c425afb6c7e4":138,"c318110f2e8a6b5093ddbf4b7818e7f3db42acb5":400,"55062c5a9f463c94d0cc3f5c2104cb9dd35e9b80":294,"2a462c0abfbf82cbbf57551912447a8da1890574":494,"e7dc182def0a0bbdcbb06a4ccf7e19cf96d6c809":993,"b5bf63e09cc8c8fe5975418f67f76e7ba5ea65d7":618,"45038cb46c7d0d0ef1e7777a947bffb29da3547f":230,"162780bc836d1c8aaa772b32f0419643e8c7dd46":714,"b58e9b72d1ddb5d87a101c12a6a6bf440f49fe61":599,"b0c7797c51e38b30fd7f3d31d7f6a41d770f7442":9,"303bd6a47a040de1b521c389e4ca2a647129386a":780,"58682e028844990a75cf29cee1e42dcc635b8e42":596,"909b928aeb7d45d0e27930b30e819587a452e9b1":902,"8c8080a3e9ac0b97a2c2995e7a2f3202b0760680":8,"bb55f9922dfa64dcbf31a90f7b3f70f60fd1c244":285,"3b807a083bbe926de6d0f7224f0a3faa49cfbd4f":890,"0456c106ec4c51e6442ae07fcbe6610bac7adb70":4438,"995eec512e221055e51dffede89f007715221081":189,"a1b656107c176b88e88d3fd036f7289c2d664098":629,"026aa109490672a200f47888de8cd060e5b130f8":196,"dbe0aa8ffa2fc8719c512eedde10634bbd835a65":2745,"1fece144a29ca4117d71cdf161a5d5db0b362334":3003,"5725655d400a7f6f8f706c79c17bf0f1c0362808":3087,"f36ea89a31a1bfb02fb0860aa6318096dc4887fe":1354,"bc1c3f781c490a79593eb2c30e3687d7e417c792":2602,"5d027c6b7a3e7db83459cd95965f391c3edfd3b8":5,"ad750bdf455d06ef0f499fca867fab1e6dbf5dbd":1089,"1689fb99601627d56811166297455da45d5e330d":361,"bf94d7c78e3971a4a0f8e117afdd74cf45ad399a":1724,"594408565d96cee6c9c08f9bc8bbf47941f5bf0e":510,"09a6701faa4167d564ca285084a842a51c18438b":326,"f5eb92d2e8d8cc82acc05e2488fe828d5f75cb13":2342,"c20ff618b8551a14878158be1bd17664a136a088":2,"097c443ef81375f7658dbbab6c7fc4f1e344f467":912,"6616b16b9c1e8f1e8f278f638faf78f28a72c584":534,"5bd3dd7afb3f8494266531e1bdb0dbae5568ff42":159,"bccfa8ae2f8ed2320acde2d89bbeffe40994e95a":52,"5c72ee8a4aec0f54de6a80954e0725398fb2b996":74,"646e18ca483df84e89777abf35246c72ae9714c6":48,"bce21ea08819977a878d9806e916cc4916f1bb97":568,"e8aae1b5325df6bf36a0ee7651accfc96f168964":119},"excluded_import_commits":["0b0106534e8fb8ca26bb7313eeca9dfff2ec64fb","0f2618fb03b2b65221e4dbab2184f9b342508463","138944a4bf233ea25f7d40308beeeee04e8dd8bf","6c4c9144f81dda8da6022c76648310f2a710b9fc"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":3.0,"flagged_releases":2.0,"max_loc_per_day":11048.4},"findings":[],"evidence":[{"kind":"release-burst","description":"v0.2.1 → archive/pre-rmcp: 95,623 lines in 8.65 days (11,048.4 lines/day)","ref":"v0.2.1...archive/pre-rmcp","url":"https://github.com/rustic-ai/codeprism/compare/v0.2.1...archive/pre-rmcp","weight":0.4},{"kind":"release-burst","description":"archive/pre-rmcp → archive/rmcp-work: 34,035 lines in 7.6 days (4,480.4 lines/day)","ref":"archive/pre-rmcp...archive/rmcp-work","url":"https://github.com/rustic-ai/codeprism/compare/archive/pre-rmcp...archive/rmcp-work","weight":0.4}],"data":{"releases":[{"from":"v0.1.0","to":"v0.2.1","loc":867,"days":4.01,"loc_per_day":216.5,"flagged":false},{"from":"v0.2.1","to":"archive/pre-rmcp","loc":95623,"days":8.65,"loc_per_day":11048.4,"flagged":true},{"from":"archive/pre-rmcp","to":"archive/rmcp-work","loc":34035,"days":7.6,"loc_per_day":4480.4,"flagged":true}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":100050.0,"index":1.474,"count:narrated_steps":7.0,"per_kloc:narrated_steps":0.07,"files:narrated_steps":2.0,"count:placeholder":18.0,"per_kloc:placeholder":0.18,"files:placeholder":14.0,"count:emoji_in_code":209.0,"per_kloc:emoji_in_code":2.089,"files:emoji_in_code":18.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:placeholder","description":"placeholder or demo-only phrasing: // This is a simplified implementation","ref":"crates/codeprism-analysis/src/duplicates.rs:605","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/duplicates.rs#L605","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 1: Demonstrate Repository Scanner","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:28","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L28","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 2: Demonstrate Bulk Indexer","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:52","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L52","weight":0.0},{"kind":"stylometry:placeholder","description":"placeholder or demo-only phrasing: // For demo purposes, we'll work without language parsers registered","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:56","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L56","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 3: Demonstrate Repository Manager","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:88","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L88","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 4: Demonstrate File Monitoring Pipeline (setup only)","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:113","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L113","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 5: Show overall statistics","ref":"crates/codeprism-core/examples/phase_2_5_demo.rs:135","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/examples/phase_2_5_demo.rs#L135","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 1: Scan repository","ref":"crates/codeprism-core/src/repository/mod.rs:261","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/src/repository/mod.rs#L261","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":1.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree","path":"test-projects/security-test.js","line":30,"fingerprint":"test-projects/security-test.js:generic-api-key:30"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":25.0,"findings_high":3.0,"findings_medium":12.0,"findings_low":10.0,"weighted_findings":8.938,"scanned_lines":100050.0,"parse_errors":1.0},"findings":[{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"test-projects/security-test.js","line":11,"fingerprint":"javascript.browser.security.insecure-document-method:test-projects/security-test.js:11"},{"rule_id":"opengrep/javascript.browser.security.insecure-innerhtml","severity":"high","message":"User controlled data in a `document.getElementById('content').innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"test-projects/security-test.js","line":11,"fingerprint":"javascript.browser.security.insecure-innerhtml:test-projects/security-test.js:11"},{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"test-projects/security-test.js","line":12,"fingerprint":"javascript.browser.security.insecure-document-method:test-projects/security-test.js:12"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"codeprism-docs/docusaurus.config.ts","line":192,"fingerprint":"javascript.lang.security.html-in-template-string:codeprism-docs/docusaurus.config.ts:192"},{"rule_id":"opengrep/python.flask.security.xss.audit.template-unescaped-with-safe","severity":"medium","message":"Detected a segment of a Flask template where autoescaping is explicitly disabled with '| safe' filter. This allows rendering of raw HTML in this segment. Ensure no user data is rendered here, otherwise this is a cross-site scripting (XSS) vulnerability. [confidence low]","path":"crates/mandrel-mcp-th/src/reporting/templates/professional.html","line":209,"fingerprint":"python.flask.security.xss.audit.template-unescaped-with-safe:crates/mandrel-mcp-th/src/reporting/templates/professional.html:209"},{"rule_id":"opengrep/javascript.express.security.audit.express-cookie-session-default-name","severity":"medium","message":"Don’t use the default session cookie name Using the default session cookie name can open your app to attacks. The security issue posed is similar to X-Powered-By: a potential attacker can use it to fingerprint the server and target attacks accordingly. [confidence medium]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":108,"fingerprint":"javascript.express.security.audit.express-cookie-session-default-name:test-projects/js-dependency-test-project/src/server/app.js:108"},{"rule_id":"opengrep/javascript.express.security.audit.express-cookie-session-no-domain","severity":"medium","message":"Default session middleware settings: `domain` not set. It indicates the domain of the cookie; use it to compare against the domain of the server in which the URL is being requested. If they match, then check the path attribute next. [confidence medium]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":108,"fingerprint":"javascript.express.security.audit.express-cookie-session-no-domain:test-projects/js-dependency-test-project/src/server/app.js:108"},{"rule_id":"opengrep/javascript.express.security.audit.express-cookie-session-no-expires","severity":"medium","message":"Default session middleware settings: `expires` not set. Use it to set expiration date for persistent cookies. [confidence medium]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":108,"fingerprint":"javascript.express.security.audit.express-cookie-session-no-expires:test-projects/js-dependency-test-project/src/server/app.js:108"},{"rule_id":"opengrep/javascript.express.security.audit.express-cookie-session-no-path","severity":"medium","message":"Default session middleware settings: `path` not set. It indicates the path of the cookie; use it to compare against the request path. If this and domain match, then send the cookie in the request. [confidence medium]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":108,"fingerprint":"javascript.express.security.audit.express-cookie-session-no-path:test-projects/js-dependency-test-project/src/server/app.js:108"},{"rule_id":"opengrep/javascript.express.security.audit.express-cookie-session-no-secure","severity":"medium","message":"Default session middleware settings: `secure` not set. It ensures the browser only sends the cookie over HTTPS. [confidence medium]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":108,"fingerprint":"javascript.express.security.audit.express-cookie-session-no-secure:test-projects/js-dependency-test-project/src/server/app.js:108"},{"rule_id":"opengrep/python.lang.security.deserialization.avoid-pickle","severity":"medium","message":"Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format. [confidence low]","path":"test-projects/python-sample/services/cache.py","line":109,"fingerprint":"python.lang.security.deserialization.avoid-pickle:test-projects/python-sample/services/cache.py:109"},{"rule_id":"opengrep/python.lang.security.deserialization.avoid-pickle","severity":"medium","message":"Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format. [confidence low]","path":"test-projects/python-sample/services/cache.py","line":113,"fingerprint":"python.lang.security.deserialization.avoid-pickle:test-projects/python-sample/services/cache.py:113"},{"rule_id":"opengrep/javascript.browser.security.eval-detected","severity":"medium","message":"Detected the use of eval(). eval() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by external sources. [confidence low]","path":"test-projects/security-test.js","line":13,"fingerprint":"javascript.browser.security.eval-detected:test-projects/security-test.js:13"},{"rule_id":"opengrep/python.lang.security.deserialization.avoid-pickle","severity":"medium","message":"Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format. [confidence low]","path":"test-projects/unused-code-test.py","line":170,"fingerprint":"python.lang.security.deserialization.avoid-pickle:test-projects/unused-code-test.py:170"},{"rule_id":"opengrep/python.lang.security.deserialization.avoid-pickle","severity":"medium","message":"Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format. [confidence low]","path":"test-projects/unused-code-test.py","line":175,"fingerprint":"python.lang.security.deserialization.avoid-pickle:test-projects/unused-code-test.py:175"},{"rule_id":"opengrep/rust.lang.security.args","severity":"low","message":"args should not be used for security operations. From the docs: \"The first element is traditionally the path of the executable, but it can be set to arbitrary text, and might not even exist. This means this property should not be relied upon for security purposes.\" [confidence high]","path":"crates/mandrel-mcp-th/src/main.rs","line":12,"fingerprint":"rust.lang.security.args:crates/mandrel-mcp-th/src/main.rs:12"},{"rule_id":"opengrep/rust.lang.security.temp-dir","severity":"low","message":"temp_dir should not be used for security operations. From the docs: 'The temporary directory may be shared among users, or between processes with different privileges; thus, the creation of any files or directories in the temporary directory must use a secure method to create a uniquely named file.  [confidence high]","path":"crates/mandrel-mcp-th/src/script_engines/sandbox.rs","line":329,"fingerprint":"rust.lang.security.temp-dir:crates/mandrel-mcp-th/src/script_engines/sandbox.rs:329"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"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]","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":44,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:44"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"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]","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":55,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:55"},{"rule_id":"opengrep/javascript.express.security.audit.express-check-csurf-middleware-usage","severity":"low","message":"A CSRF middleware was not detected in your express application. Ensure you are either using one such as `csurf` or `csrf` (see rule references) and/or you are properly doing CSRF validation in your routes with a token or cookies. [confidence low]","path":"test-projects/js-dependency-test-project/src/server/app.js","line":40,"fingerprint":"javascript.express.security.audit.express-check-csurf-middleware-usage:test-projects/js-dependency-test-project/src/server/app.js:40"},{"rule_id":"opengrep/rust.lang.security.unsafe-usage","severity":"low","message":"Detected 'unsafe' usage, please audit for secure usage [confidence high]","path":"test-projects/rust-test-project/src/main.rs","line":282,"fingerprint":"rust.lang.security.unsafe-usage:test-projects/rust-test-project/src/main.rs:282"},{"rule_id":"opengrep/rust.lang.security.unsafe-usage","severity":"low","message":"Detected 'unsafe' usage, please audit for secure usage [confidence high]","path":"test-projects/rust-test-project/src/main.rs","line":289,"fingerprint":"rust.lang.security.unsafe-usage:test-projects/rust-test-project/src/main.rs:289"},{"rule_id":"opengrep/rust.lang.security.unsafe-usage","severity":"low","message":"Detected 'unsafe' usage, please audit for secure usage [confidence high]","path":"test-projects/rust-test-project/src/main.rs","line":295,"fingerprint":"rust.lang.security.unsafe-usage:test-projects/rust-test-project/src/main.rs:295"},{"rule_id":"opengrep/rust.lang.security.unsafe-usage","severity":"low","message":"Detected 'unsafe' usage, please audit for secure usage [confidence high]","path":"test-projects/rust-test-project/src/patterns.rs","line":19,"fingerprint":"rust.lang.security.unsafe-usage:test-projects/rust-test-project/src/patterns.rs:19"},{"rule_id":"opengrep/rust.lang.security.unsafe-usage","severity":"low","message":"Detected 'unsafe' usage, please audit for secure usage [confidence high]","path":"test-projects/rust-test-project/src/unsafe_ops.rs","line":12,"fingerprint":"rust.lang.security.unsafe-usage:test-projects/rust-test-project/src/unsafe_ops.rs:12"}],"evidence":[],"data":{"rulesets":["rust","python","javascript","typescript","bash","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":50.0,"vulnerabilities":183.0,"vulns_critical":5.0,"vulns_high":71.0,"vulns_medium":82.0,"vulns_low":22.0,"vulns_unknown":3.0,"penalty":335.0},"findings":[{"rule_id":"osv/GHSA-jqcg-44mw-7w3h","severity":"critical","message":"proxy-addr@2.0.7 (npm) is affected by GHSA-jqcg-44mw-7w3h","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"proxy-addr@2.0.7 (npm):GHSA-jqcg-44mw-7w3h"},{"rule_id":"osv/GHSA-w7jw-789q-3m8p","severity":"critical","message":"shell-quote@1.8.3 (npm) is affected by GHSA-w7jw-789q-3m8p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"shell-quote@1.8.3 (npm):GHSA-w7jw-789q-3m8p"},{"rule_id":"osv/GHSA-5gmw-xhrv-c9v3","severity":"critical","message":"tinypool@1.1.1 (npm) is affected by GHSA-5gmw-xhrv-c9v3","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"tinypool@1.1.1 (npm):GHSA-5gmw-xhrv-c9v3"},{"rule_id":"osv/GHSA-85c8-ppgw-ccpr","severity":"critical","message":"tinypool@1.1.1 (npm) is affected by GHSA-85c8-ppgw-ccpr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"tinypool@1.1.1 (npm):GHSA-85c8-ppgw-ccpr"},{"rule_id":"osv/GHSA-xv26-6w52-cph6","severity":"critical","message":"websocket-driver@0.7.4 (npm) is affected by GHSA-xv26-6w52-cph6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"websocket-driver@0.7.4 (npm):GHSA-xv26-6w52-cph6"},{"rule_id":"osv/GHSA-fv7c-fp4j-7gwp","severity":"high","message":"@babel/plugin-transform-modules-systemjs@7.27.1 (npm) is affected by GHSA-fv7c-fp4j-7gwp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"@babel/plugin-transform-modules-systemjs@7.27.1 (npm):GHSA-fv7c-fp4j-7gwp"},{"rule_id":"osv/GHSA-27r3-jxmh-p828","severity":"high","message":"body-parser@1.20.3 (npm) is affected by GHSA-27r3-jxmh-p828","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"body-parser@1.20.3 (npm):GHSA-27r3-jxmh-p828"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.25.0 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"browserslist@4.25.0 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.25.0 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"browserslist@4.25.0 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-vc2v-76pw-4v95","severity":"high","message":"compression@1.8.0 (npm) is affected by GHSA-vc2v-76pw-4v95","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"compression@1.8.0 (npm):GHSA-vc2v-76pw-4v95"},{"rule_id":"osv/GHSA-mrv2-3pqr-j5jr","severity":"high","message":"dompurify@3.2.6 (npm) is affected by GHSA-mrv2-3pqr-j5jr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-mrv2-3pqr-j5jr"},{"rule_id":"osv/GHSA-4c8g-83qw-93j6","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-4c8g-83qw-93j6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-4c8g-83qw-93j6"},{"rule_id":"osv/GHSA-7p8r-x3mc-p8w7","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-7p8r-x3mc-p8w7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-7p8r-x3mc-p8w7"},{"rule_id":"osv/GHSA-f65p-4m7j-42xc","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-f65p-4m7j-42xc","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-f65p-4m7j-42xc"},{"rule_id":"osv/GHSA-jqff-g426-hqxp","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-jqff-g426-hqxp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-jqff-g426-hqxp"},{"rule_id":"osv/GHSA-q3j6-qgpj-74h6","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-q3j6-qgpj-74h6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-q3j6-qgpj-74h6"},{"rule_id":"osv/GHSA-qw65-cvwx-89v3","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-qw65-cvwx-89v3","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-qw65-cvwx-89v3"},{"rule_id":"osv/GHSA-v2hh-gcrm-f6hx","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-v2hh-gcrm-f6hx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-v2hh-gcrm-f6hx"},{"rule_id":"osv/GHSA-v39h-62p7-jpjc","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-v39h-62p7-jpjc","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-v39h-62p7-jpjc"},{"rule_id":"osv/GHSA-5p2g-fcmc-qvqq","severity":"high","message":"image-size@2.0.2 (npm) is affected by GHSA-5p2g-fcmc-qvqq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"image-size@2.0.2 (npm):GHSA-5p2g-fcmc-qvqq"},{"rule_id":"osv/GHSA-w3rx-r6r6-pgpr","severity":"high","message":"image-size@2.0.2 (npm) is affected by GHSA-w3rx-r6r6-pgpr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"image-size@2.0.2 (npm):GHSA-w3rx-r6r6-pgpr"},{"rule_id":"osv/GHSA-4528-x5fx-h6hg","severity":"high","message":"joi@17.13.3 (npm) is affected by GHSA-4528-x5fx-h6hg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-4528-x5fx-h6hg"},{"rule_id":"osv/GHSA-6h2x-m376-mqjq","severity":"high","message":"joi@17.13.3 (npm) is affected by GHSA-6h2x-m376-mqjq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-6h2x-m376-mqjq"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@3.14.1 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@3.14.1 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@3.14.1 (npm) is affected by GHSA-52cp-r559-cp3m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@3.14.1 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@3.14.1 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@3.14.1 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-52cp-r559-cp3m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"launch-editor@2.10.0 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"launch-editor@2.10.0 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash-es@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-28wg-ghj8-5hjv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-2v37-7h3g-55p8","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-xwg4-73v4-xw9w","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-xwg4-73v4-xw9w","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-2328-f5f3-gj25","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-2328-f5f3-gj25","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-2328-f5f3-gj25"},{"rule_id":"osv/GHSA-554w-wpv2-vw27","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-554w-wpv2-vw27","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-554w-wpv2-vw27"},{"rule_id":"osv/GHSA-5gfm-wpxj-wjgq","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-5gfm-wpxj-wjgq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-5gfm-wpxj-wjgq"},{"rule_id":"osv/GHSA-5m6q-g25r-mvwx","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-5m6q-g25r-mvwx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-5m6q-g25r-mvwx"},{"rule_id":"osv/GHSA-5x38-2vff-x55p","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-5x38-2vff-x55p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-5x38-2vff-x55p"},{"rule_id":"osv/GHSA-6qrw-m8cv-hcxf","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-6qrw-m8cv-hcxf","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-6qrw-m8cv-hcxf"},{"rule_id":"osv/GHSA-7wch-p9px-956x","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-7wch-p9px-956x","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-7wch-p9px-956x"},{"rule_id":"osv/GHSA-86w9-cpqp-85rv","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-86w9-cpqp-85rv, GHSA-ppp5-5v6c-4jwp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-86w9-cpqp-85rv"},{"rule_id":"osv/GHSA-8hrf-8g6f-7xwp","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-8hrf-8g6f-7xwp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-8hrf-8g6f-7xwp"},{"rule_id":"osv/GHSA-hqq3-7jhf-c5jx","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-hqq3-7jhf-c5jx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-hqq3-7jhf-c5jx"},{"rule_id":"osv/GHSA-jc66-7q78-782g","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-jc66-7q78-782g","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-jc66-7q78-782g"},{"rule_id":"osv/GHSA-q67f-28xg-22rw","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-q67f-28xg-22rw","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-q67f-28xg-22rw"},{"rule_id":"osv/GHSA-rhr8-3pm8-cq29","severity":"high","message":"node-forge@1.3.1 (npm) is affected by GHSA-rhr8-3pm8-cq29","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-rhr8-3pm8-cq29"},{"rule_id":"osv/GHSA-37ch-88jc-xwx2","severity":"high","message":"path-to-regexp@0.1.12 (npm) is affected by GHSA-37ch-88jc-xwx2","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"path-to-regexp@0.1.12 (npm):GHSA-37ch-88jc-xwx2"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-r28c-9q8g-f849","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-5c6j-r48x-rmvq","severity":"high","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-5c6j-r48x-rmvq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-5c6j-r48x-rmvq"},{"rule_id":"osv/GHSA-395f-4hp3-45gv","severity":"high","message":"shell-quote@1.8.3 (npm) is affected by GHSA-395f-4hp3-45gv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"shell-quote@1.8.3 (npm):GHSA-395f-4hp3-45gv"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-2p49-hgcm-8545","severity":"high","message":"svgo@3.3.2 (npm) is affected by GHSA-2p49-hgcm-8545","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"svgo@3.3.2 (npm):GHSA-2p49-hgcm-8545"},{"rule_id":"osv/GHSA-w27v-7q3p-w38r","severity":"high","message":"svgo@3.3.2 (npm) is affected by GHSA-w27v-7q3p-w38r","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"svgo@3.3.2 (npm):GHSA-w27v-7q3p-w38r"},{"rule_id":"osv/GHSA-xpqw-6gx7-v673","severity":"high","message":"svgo@3.3.2 (npm) is affected by GHSA-xpqw-6gx7-v673","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"svgo@3.3.2 (npm):GHSA-xpqw-6gx7-v673"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@11.1.0 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"uuid@11.1.0 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@8.3.2 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"uuid@8.3.2 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-g84c-rxfj-3j2c","severity":"high","message":"webpack-dev-middleware@7.4.2 (npm) is affected by GHSA-g84c-rxfj-3j2c","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack-dev-middleware@7.4.2 (npm):GHSA-g84c-rxfj-3j2c"},{"rule_id":"osv/GHSA-96hv-2xvq-fx4p","severity":"high","message":"ws@7.5.10 (npm) is affected by GHSA-96hv-2xvq-fx4p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"ws@7.5.10 (npm):GHSA-96hv-2xvq-fx4p"},{"rule_id":"osv/GHSA-96hv-2xvq-fx4p","severity":"high","message":"ws@8.18.2 (npm) is affected by GHSA-96hv-2xvq-fx4p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"ws@8.18.2 (npm):GHSA-96hv-2xvq-fx4p"},{"rule_id":"osv/GHSA-cxp5-3px4-pw24","severity":"high","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-cxp5-3px4-pw24","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-cxp5-3px4-pw24"},{"rule_id":"osv/GHSA-j3rv-43j4-c7qm","severity":"high","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-j3rv-43j4-c7qm","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-j3rv-43j4-c7qm"},{"rule_id":"osv/GHSA-q4xh-88c3-wmh7","severity":"high","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-q4xh-88c3-wmh7","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-q4xh-88c3-wmh7"},{"rule_id":"osv/GHSA-rmj7-2vxq-3g9f","severity":"high","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-rmj7-2vxq-3g9f","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-rmj7-2vxq-3g9f"},{"rule_id":"osv/GHSA-wv8q-qhhj-9h54","severity":"high","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-wv8q-qhhj-9h54","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-wv8q-qhhj-9h54"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@8.17.1 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"ajv@8.17.1 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-2wm5-q62r-hmrv","severity":"medium","message":"colord@2.9.3 (npm) is affected by GHSA-2wm5-q62r-hmrv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"colord@2.9.3 (npm):GHSA-2wm5-q62r-hmrv"},{"rule_id":"osv/GHSA-gcqx-w48m-w2h4","severity":"medium","message":"deepmerge@4.3.1 (npm) is affected by GHSA-gcqx-w48m-w2h4","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"deepmerge@4.3.1 (npm):GHSA-gcqx-w48m-w2h4"},{"rule_id":"osv/GHSA-39q2-94rc-95cp","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-39q2-94rc-95cp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-39q2-94rc-95cp"},{"rule_id":"osv/GHSA-55q2-fjhq-7xh7","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-55q2-fjhq-7xh7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-55q2-fjhq-7xh7"},{"rule_id":"osv/GHSA-6688-9rhm-gjv2","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-6688-9rhm-gjv2","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-6688-9rhm-gjv2"},{"rule_id":"osv/GHSA-76mc-f452-cxcm","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-76mc-f452-cxcm","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-76mc-f452-cxcm"},{"rule_id":"osv/GHSA-c6gr-qvv4-5v3f","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-c6gr-qvv4-5v3f","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-c6gr-qvv4-5v3f"},{"rule_id":"osv/GHSA-cj63-jhhr-wcxv","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-cj63-jhhr-wcxv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-cj63-jhhr-wcxv"},{"rule_id":"osv/GHSA-cjmm-f4jc-qw8r","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-cjmm-f4jc-qw8r","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-cjmm-f4jc-qw8r"},{"rule_id":"osv/GHSA-cmwh-pvxp-8882","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-cmwh-pvxp-8882","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-cmwh-pvxp-8882"},{"rule_id":"osv/GHSA-crv5-9vww-q3g8","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-crv5-9vww-q3g8","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-crv5-9vww-q3g8"},{"rule_id":"osv/GHSA-h7mw-gpvr-xq4m","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-h7mw-gpvr-xq4m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-h7mw-gpvr-xq4m"},{"rule_id":"osv/GHSA-h8r8-wccr-v5f2","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-h8r8-wccr-v5f2","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-h8r8-wccr-v5f2"},{"rule_id":"osv/GHSA-hpcv-96wg-7vj8","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-hpcv-96wg-7vj8","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-hpcv-96wg-7vj8"},{"rule_id":"osv/GHSA-r47g-fvhr-h676","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-r47g-fvhr-h676","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-r47g-fvhr-h676"},{"rule_id":"osv/GHSA-rp9w-3fw7-7cwq","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-rp9w-3fw7-7cwq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-rp9w-3fw7-7cwq"},{"rule_id":"osv/GHSA-v2wj-7wpq-c8vv","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-v2wj-7wpq-c8vv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-v2wj-7wpq-c8vv"},{"rule_id":"osv/GHSA-v8jm-5vwx-cfxm","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-v8jm-5vwx-cfxm","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-v8jm-5vwx-cfxm"},{"rule_id":"osv/GHSA-v9jr-rg53-9pgp","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-v9jr-rg53-9pgp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-v9jr-rg53-9pgp"},{"rule_id":"osv/GHSA-x4vx-rjvf-j5p4","severity":"medium","message":"dompurify@3.2.6 (npm) is affected by GHSA-x4vx-rjvf-j5p4","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-x4vx-rjvf-j5p4"},{"rule_id":"osv/GHSA-hrr3-gc8f-f4qj","severity":"medium","message":"fast-uri@3.0.6 (npm) is affected by GHSA-hrr3-gc8f-f4qj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-hrr3-gc8f-f4qj"},{"rule_id":"osv/GHSA-w74x-v6f9-j3xg","severity":"medium","message":"fast-uri@3.0.6 (npm) is affected by GHSA-w74x-v6f9-j3xg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-w74x-v6f9-j3xg"},{"rule_id":"osv/GHSA-r4q5-vmmm-2653","severity":"medium","message":"follow-redirects@1.15.9 (npm) is affected by GHSA-r4q5-vmmm-2653","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"follow-redirects@1.15.9 (npm):GHSA-r4q5-vmmm-2653"},{"rule_id":"osv/GHSA-64mm-vxmg-q3vj","severity":"medium","message":"http-proxy-middleware@2.0.9 (npm) is affected by GHSA-64mm-vxmg-q3vj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"http-proxy-middleware@2.0.9 (npm):GHSA-64mm-vxmg-q3vj"},{"rule_id":"osv/GHSA-q7cg-457f-vx79","severity":"medium","message":"joi@17.13.3 (npm) is affected by GHSA-q7cg-457f-vx79","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-q7cg-457f-vx79"},{"rule_id":"osv/GHSA-wr44-6hxh-3jwq","severity":"medium","message":"joi@17.13.3 (npm) is affected by GHSA-wr44-6hxh-3jwq","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-wr44-6hxh-3jwq"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@3.14.1 (npm) is affected by GHSA-h67p-54hq-rp68","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@3.14.1 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-mh29-5h37-fv8m","severity":"medium","message":"js-yaml@3.14.1 (npm) is affected by GHSA-mh29-5h37-fv8m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@3.14.1 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-h67p-54hq-rp68","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-mh29-5h37-fv8m","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-mh29-5h37-fv8m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"launch-editor@2.10.0 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"launch-editor@2.10.0 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"launch-editor@2.10.0 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"launch-editor@2.10.0 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"launch-editor@2.10.0 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"launch-editor@2.10.0 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash-es@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-4fh9-h7wg-q85m","severity":"medium","message":"mdast-util-to-hast@13.2.0 (npm) is affected by GHSA-4fh9-h7wg-q85m","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mdast-util-to-hast@13.2.0 (npm):GHSA-4fh9-h7wg-q85m"},{"rule_id":"osv/GHSA-2v8p-3f2j-5mp7","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-2v8p-3f2j-5mp7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-2v8p-3f2j-5mp7"},{"rule_id":"osv/GHSA-3rrr-jr9j-h3q3","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-3rrr-jr9j-h3q3","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-3rrr-jr9j-h3q3"},{"rule_id":"osv/GHSA-6m6c-36f7-fhxh","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-6m6c-36f7-fhxh","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-6m6c-36f7-fhxh"},{"rule_id":"osv/GHSA-6x64-9x62-f2gx","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-6x64-9x62-f2gx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-6x64-9x62-f2gx"},{"rule_id":"osv/GHSA-7rqq-prvp-x9jh","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-7rqq-prvp-x9jh","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-7rqq-prvp-x9jh"},{"rule_id":"osv/GHSA-87f9-hvmw-gh4p","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-87f9-hvmw-gh4p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-87f9-hvmw-gh4p"},{"rule_id":"osv/GHSA-8gwm-58g9-j8pw","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-8gwm-58g9-j8pw","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-8gwm-58g9-j8pw"},{"rule_id":"osv/GHSA-ghcm-xqfw-q4vr","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-ghcm-xqfw-q4vr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-ghcm-xqfw-q4vr"},{"rule_id":"osv/GHSA-rhh3-jpg6-66xh","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-rhh3-jpg6-66xh","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-rhh3-jpg6-66xh"},{"rule_id":"osv/GHSA-xcj9-5m2h-648r","severity":"medium","message":"mermaid@11.7.0 (npm) is affected by GHSA-xcj9-5m2h-648r","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-xcj9-5m2h-648r"},{"rule_id":"osv/GHSA-525v-9gp9-w22h","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-525v-9gp9-w22h","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-525v-9gp9-w22h"},{"rule_id":"osv/GHSA-5cwg-6vw7-rj6p","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-5cwg-6vw7-rj6p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-5cwg-6vw7-rj6p"},{"rule_id":"osv/GHSA-65ch-62r8-g69g","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-65ch-62r8-g69g","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-65ch-62r8-g69g"},{"rule_id":"osv/GHSA-6cv4-p8m7-4r25","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-6cv4-p8m7-4r25","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-6cv4-p8m7-4r25"},{"rule_id":"osv/GHSA-6wvx-3r32-xmcg","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-6wvx-3r32-xmcg","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-6wvx-3r32-xmcg"},{"rule_id":"osv/GHSA-h46v-rmh6-fq4f","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-h46v-rmh6-fq4f","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-h46v-rmh6-fq4f"},{"rule_id":"osv/GHSA-j8rw-jp99-435v","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-j8rw-jp99-435v","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-j8rw-jp99-435v"},{"rule_id":"osv/GHSA-w4xr-hqv8-ch44","severity":"medium","message":"node-forge@1.3.1 (npm) is affected by GHSA-w4xr-hqv8-ch44","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-w4xr-hqv8-ch44"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-rj75-hqrm-r3gf","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-rj75-hqrm-r3gf"},{"rule_id":"osv/GHSA-w9m9-85wc-3x92","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-w9m9-85wc-3x92","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-w9m9-85wc-3x92"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@7.1.0 (npm) is affected by GHSA-rj75-hqrm-r3gf","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@7.1.0 (npm):GHSA-rj75-hqrm-r3gf"},{"rule_id":"osv/GHSA-w9m9-85wc-3x92","severity":"medium","message":"postcss-selector-parser@7.1.0 (npm) is affected by GHSA-w9m9-85wc-3x92","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@7.1.0 (npm):GHSA-w9m9-85wc-3x92"},{"rule_id":"osv/GHSA-4mjr-xmp4-gh2g","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-4mjr-xmp4-gh2g","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-4mjr-xmp4-gh2g"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-6rw7-vpxm-498p","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-6rw7-vpxm-498p","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-6rw7-vpxm-498p"},{"rule_id":"osv/GHSA-q8mj-m7cp-5q26","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-q8mj-m7cp-5q26","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-q8mj-m7cp-5q26"},{"rule_id":"osv/GHSA-qj8w-gfj5-8c6v","severity":"medium","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-qj8w-gfj5-8c6v","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-qj8w-gfj5-8c6v"},{"rule_id":"osv/GHSA-4vpr-x523-8j87","severity":"medium","message":"svgo@3.3.2 (npm) is affected by GHSA-4vpr-x523-8j87","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"svgo@3.3.2 (npm):GHSA-4vpr-x523-8j87"},{"rule_id":"osv/GHSA-79cf-xcqc-c78w","severity":"medium","message":"webpack-dev-server@5.2.2 (npm) is affected by GHSA-79cf-xcqc-c78w","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack-dev-server@5.2.2 (npm):GHSA-79cf-xcqc-c78w"},{"rule_id":"osv/GHSA-f5vj-f2hx-8m93","severity":"medium","message":"webpack-dev-server@5.2.2 (npm) is affected by GHSA-f5vj-f2hx-8m93","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack-dev-server@5.2.2 (npm):GHSA-f5vj-f2hx-8m93"},{"rule_id":"osv/GHSA-m28w-2pqf-7qgj","severity":"medium","message":"webpack-dev-server@5.2.2 (npm) is affected by GHSA-m28w-2pqf-7qgj","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack-dev-server@5.2.2 (npm):GHSA-m28w-2pqf-7qgj"},{"rule_id":"osv/GHSA-mx8g-39q3-5c79","severity":"medium","message":"webpack-dev-server@5.2.2 (npm) is affected by GHSA-mx8g-39q3-5c79","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack-dev-server@5.2.2 (npm):GHSA-mx8g-39q3-5c79"},{"rule_id":"osv/GHSA-mp7j-qc5w-4988","severity":"medium","message":"websocket-driver@0.7.4 (npm) is affected by GHSA-mp7j-qc5w-4988","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"websocket-driver@0.7.4 (npm):GHSA-mp7j-qc5w-4988"},{"rule_id":"osv/GHSA-58qx-3vcg-4xpx","severity":"medium","message":"ws@8.18.2 (npm) is affected by GHSA-58qx-3vcg-4xpx","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"ws@8.18.2 (npm):GHSA-58qx-3vcg-4xpx"},{"rule_id":"osv/GHSA-3pjw-73gf-8qr5","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-3pjw-73gf-8qr5","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-3pjw-73gf-8qr5"},{"rule_id":"osv/GHSA-5gvw-p9qm-jgwh","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-5gvw-p9qm-jgwh","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-5gvw-p9qm-jgwh"},{"rule_id":"osv/GHSA-5jmj-h7xm-6q6v","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-5jmj-h7xm-6q6v","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-5jmj-h7xm-6q6v"},{"rule_id":"osv/GHSA-gx83-3vf8-gh7j","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-gx83-3vf8-gh7j","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-gx83-3vf8-gh7j"},{"rule_id":"osv/GHSA-hgj6-7826-r7m5","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-hgj6-7826-r7m5","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-hgj6-7826-r7m5"},{"rule_id":"osv/GHSA-vvgp-rfg2-7rr6","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-vvgp-rfg2-7rr6","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-vvgp-rfg2-7rr6"},{"rule_id":"osv/GHSA-wjgm-6hv5-3cvf","severity":"medium","message":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven) is affected by GHSA-wjgm-6hv5-3cvf","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"com.fasterxml.jackson.core:jackson-databind@2.15.3 (Maven):GHSA-wjgm-6hv5-3cvf"},{"rule_id":"osv/GHSA-j288-q9x7-2f5v","severity":"medium","message":"org.apache.commons:commons-lang3@3.13.0 (Maven) is affected by GHSA-j288-q9x7-2f5v","path":"test-projects/java-test-project/pom.xml","line":null,"fingerprint":"org.apache.commons:commons-lang3@3.13.0 (Maven):GHSA-j288-q9x7-2f5v"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.27.4 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"@babel/core@7.27.4 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-v422-hmwv-36x6","severity":"low","message":"body-parser@1.20.3 (npm) is affected by GHSA-v422-hmwv-36x6","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"body-parser@1.20.3 (npm):GHSA-v422-hmwv-36x6"},{"rule_id":"osv/GHSA-c2j3-45gr-mqc4","severity":"low","message":"dompurify@3.2.6 (npm) is affected by GHSA-c2j3-45gr-mqc4","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-c2j3-45gr-mqc4"},{"rule_id":"osv/GHSA-gvmj-g25r-r7wr","severity":"low","message":"dompurify@3.2.6 (npm) is affected by GHSA-gvmj-g25r-r7wr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-gvmj-g25r-r7wr"},{"rule_id":"osv/GHSA-vxr8-fq34-vvx9","severity":"low","message":"dompurify@3.2.6 (npm) is affected by GHSA-vxr8-fq34-vvx9","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"dompurify@3.2.6 (npm):GHSA-vxr8-fq34-vvx9"},{"rule_id":"osv/GHSA-333x-w4r6-6crp","severity":"low","message":"fast-uri@3.0.6 (npm) is affected by GHSA-333x-w4r6-6crp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-333x-w4r6-6crp"},{"rule_id":"osv/GHSA-xhq7-xmqj-769h","severity":"low","message":"fast-uri@3.0.6 (npm) is affected by GHSA-xhq7-xmqj-769h","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-xhq7-xmqj-769h"},{"rule_id":"osv/GHSA-6w3j-5fw6-r9vr","severity":"low","message":"joi@17.13.3 (npm) is affected by GHSA-6w3j-5fw6-r9vr","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-6w3j-5fw6-r9vr"},{"rule_id":"osv/GHSA-gg4h-3hg2-grpc","severity":"low","message":"joi@17.13.3 (npm) is affected by GHSA-gg4h-3hg2-grpc","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"joi@17.13.3 (npm):GHSA-gg4h-3hg2-grpc"},{"rule_id":"osv/GHSA-238p-pmpm-9mq7","severity":"low","message":"katex@0.16.22 (npm) is affected by GHSA-238p-pmpm-9mq7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"katex@0.16.22 (npm):GHSA-238p-pmpm-9mq7"},{"rule_id":"osv/GHSA-c4c3-pg64-4m4v","severity":"low","message":"mermaid@11.7.0 (npm) is affected by GHSA-c4c3-pg64-4m4v","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"mermaid@11.7.0 (npm):GHSA-c4c3-pg64-4m4v"},{"rule_id":"osv/GHSA-2vgq-wchc-25w7","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-2vgq-wchc-25w7","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-2vgq-wchc-25w7"},{"rule_id":"osv/GHSA-4487-j8r4-4g2f","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-4487-j8r4-4g2f","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-4487-j8r4-4g2f"},{"rule_id":"osv/GHSA-4642-5mcj-2rqw","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-4642-5mcj-2rqw","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-4642-5mcj-2rqw"},{"rule_id":"osv/GHSA-6889-vf6x-f3g5","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-6889-vf6x-f3g5","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-6889-vf6x-f3g5"},{"rule_id":"osv/GHSA-9wg5-mj3p-v49q","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-9wg5-mj3p-v49q","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-9wg5-mj3p-v49q"},{"rule_id":"osv/GHSA-h6cr-wjv9-3cpp","severity":"low","message":"node-forge@1.3.1 (npm) is affected by GHSA-h6cr-wjv9-3cpp","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"node-forge@1.3.1 (npm):GHSA-h6cr-wjv9-3cpp"},{"rule_id":"osv/GHSA-76c9-3jph-rj3q","severity":"low","message":"on-headers@1.0.2 (npm) is affected by GHSA-76c9-3jph-rj3q","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"on-headers@1.0.2 (npm):GHSA-76c9-3jph-rj3q"},{"rule_id":"osv/GHSA-w7fw-mjwx-w883","severity":"low","message":"qs@6.13.0 (npm) is affected by GHSA-w7fw-mjwx-w883","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-w7fw-mjwx-w883"},{"rule_id":"osv/GHSA-m5mm-p8h7-m29v","severity":"low","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-m5mm-p8h7-m29v","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-m5mm-p8h7-m29v"},{"rule_id":"osv/GHSA-38r7-794h-5758","severity":"low","message":"webpack@5.99.9 (npm) is affected by GHSA-38r7-794h-5758","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack@5.99.9 (npm):GHSA-38r7-794h-5758"},{"rule_id":"osv/GHSA-8fgc-7cc6-rx7x","severity":"low","message":"webpack@5.99.9 (npm) is affected by GHSA-8fgc-7cc6-rx7x","path":"codeprism-docs/package-lock.json","line":null,"fingerprint":"webpack@5.99.9 (npm):GHSA-8fgc-7cc6-rx7x"}],"evidence":[],"data":{"ecosystems":["Maven","npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":6.0,"findings":230.0,"findings_high":97.0,"findings_medium":59.0,"findings_low":74.0,"penalty":1292.8},"findings":[{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":53,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:53"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":64,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:64"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":65,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:65"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":71,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:71"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":93,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:93"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":120,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:120"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":166,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:166"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/quality-checks/action.yml","line":182,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:182"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":64,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:64"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":72,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:72"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":85,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:85"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":86,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:86"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":88,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:88"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":89,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:89"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":100,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:100"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":113,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:113"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":119,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:119"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":132,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:132"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":138,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:138"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":154,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:154"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":160,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:160"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":181,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:181"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":226,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:226"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":251,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:251"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":254,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:254"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":257,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:257"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":260,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:260"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":263,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:263"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":278,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:278"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/run-tests/action.yml","line":287,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:287"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/setup-rust/action.yml","line":93,"fingerprint":"template-injection:.github/actions/setup-rust/action.yml:93"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/setup-rust/action.yml","line":97,"fingerprint":"template-injection:.github/actions/setup-rust/action.yml:97"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/setup-rust/action.yml","line":35,"fingerprint":"unpinned-uses:.github/actions/setup-rust/action.yml:35"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/setup-rust/action.yml","line":50,"fingerprint":"unpinned-uses:.github/actions/setup-rust/action.yml:50"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":23,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:23"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":78,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:78"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":110,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:110"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":151,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:151"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":178,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:178"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":214,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:214"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":246,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:246"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":56,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:56"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":58,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:58"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":188,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:188"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":84,"fingerprint":"unpinned-uses:.github/workflows/codeprism-moth-specs.yml:84"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":255,"fingerprint":"unpinned-uses:.github/workflows/codeprism-moth-specs.yml:255"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":285,"fingerprint":"unpinned-uses:.github/workflows/codeprism-moth-specs.yml:285"},{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/deploy-docs.yml","line":23,"fingerprint":"excessive-permissions:.github/workflows/deploy-docs.yml:23"},{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/deploy-docs.yml","line":24,"fingerprint":"excessive-permissions:.github/workflows/deploy-docs.yml:24"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-docs.yml","line":41,"fingerprint":"unpinned-uses:.github/workflows/deploy-docs.yml:41"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-docs.yml","line":44,"fingerprint":"unpinned-uses:.github/workflows/deploy-docs.yml:44"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-docs.yml","line":80,"fingerprint":"unpinned-uses:.github/workflows/deploy-docs.yml:80"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-docs.yml","line":84,"fingerprint":"unpinned-uses:.github/workflows/deploy-docs.yml:84"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-docs.yml","line":100,"fingerprint":"unpinned-uses:.github/workflows/deploy-docs.yml:100"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/docker.yml","line":118,"fingerprint":"template-injection:.github/workflows/docker.yml:118"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker.yml","line":54,"fingerprint":"unpinned-uses:.github/workflows/docker.yml:54"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker.yml","line":57,"fingerprint":"unpinned-uses:.github/workflows/docker.yml:57"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker.yml","line":63,"fingerprint":"unpinned-uses:.github/workflows/docker.yml:63"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker.yml","line":71,"fingerprint":"unpinned-uses:.github/workflows/docker.yml:71"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker.yml","line":88,"fingerprint":"unpinned-uses:.github/workflows/docker.yml:88"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":115,"fingerprint":"template-injection:.github/workflows/mcp-test-harness.yml:115"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":118,"fingerprint":"template-injection:.github/workflows/mcp-test-harness.yml:118"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":125,"fingerprint":"template-injection:.github/workflows/mcp-test-harness.yml:125"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":80,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:80"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":85,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:85"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":174,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:174"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":183,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:183"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":248,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:248"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":257,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:257"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":355,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:355"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":484,"fingerprint":"unpinned-uses:.github/workflows/mcp-test-harness.yml:484"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":62,"fingerprint":"template-injection:.github/workflows/release.yml:62"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":32,"fingerprint":"unpinned-uses:.github/workflows/release.yml:32"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":122,"fingerprint":"unpinned-uses:.github/workflows/release.yml:122"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":123,"fingerprint":"unpinned-uses:.github/workflows/release.yml:123"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":124,"fingerprint":"unpinned-uses:.github/workflows/release.yml:124"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":157,"fingerprint":"unpinned-uses:.github/workflows/release.yml:157"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":158,"fingerprint":"unpinned-uses:.github/workflows/release.yml:158"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":161,"fingerprint":"unpinned-uses:.github/workflows/release.yml:161"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":191,"fingerprint":"unpinned-uses:.github/workflows/release.yml:191"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":198,"fingerprint":"unpinned-uses:.github/workflows/release.yml:198"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":214,"fingerprint":"unpinned-uses:.github/workflows/release.yml:214"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":219,"fingerprint":"unpinned-uses:.github/workflows/release.yml:219"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":220,"fingerprint":"unpinned-uses:.github/workflows/release.yml:220"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":250,"fingerprint":"unpinned-uses:.github/workflows/release.yml:250"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":293,"fingerprint":"unpinned-uses:.github/workflows/release.yml:293"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":353,"fingerprint":"unpinned-uses:.github/workflows/release.yml:353"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":382,"fingerprint":"unpinned-uses:.github/workflows/release.yml:382"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":386,"fingerprint":"unpinned-uses:.github/workflows/release.yml:386"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":387,"fingerprint":"unpinned-uses:.github/workflows/release.yml:387"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":541,"fingerprint":"unpinned-uses:.github/workflows/release.yml:541"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":572,"fingerprint":"unpinned-uses:.github/workflows/release.yml:572"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":575,"fingerprint":"unpinned-uses:.github/workflows/release.yml:575"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":583,"fingerprint":"unpinned-uses:.github/workflows/release.yml:583"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":593,"fingerprint":"unpinned-uses:.github/workflows/release.yml:593"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":615,"fingerprint":"unpinned-uses:.github/workflows/release.yml:615"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":220,"fingerprint":"cache-poisoning:.github/workflows/release.yml:220"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":23,"fingerprint":"artipacked:.github/workflows/ci.yml:23"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":78,"fingerprint":"artipacked:.github/workflows/ci.yml:78"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":110,"fingerprint":"artipacked:.github/workflows/ci.yml:110"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":151,"fingerprint":"artipacked:.github/workflows/ci.yml:151"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":178,"fingerprint":"artipacked:.github/workflows/ci.yml:178"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":214,"fingerprint":"artipacked:.github/workflows/ci.yml:214"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":246,"fingerprint":"artipacked:.github/workflows/ci.yml:246"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":18,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:18"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":72,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:72"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":104,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:104"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":137,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:137"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":173,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:173"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":209,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:209"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":240,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:240"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/codeprism-moth-specs.yml","line":83,"fingerprint":"artipacked:.github/workflows/codeprism-moth-specs.yml:83"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/codeprism-moth-specs.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":43,"fingerprint":"excessive-permissions:.github/workflows/codeprism-moth-specs.yml:43"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":71,"fingerprint":"excessive-permissions:.github/workflows/codeprism-moth-specs.yml:71"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":276,"fingerprint":"excessive-permissions:.github/workflows/codeprism-moth-specs.yml:276"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":95,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:95"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":99,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:99"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":119,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:119"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":122,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:122"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":126,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:126"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":168,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:168"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":181,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:181"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":183,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:183"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":184,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:184"},{"rule_id":"zizmor/template-injection","severity":"medium","message":"code injection via template expansion [confidence medium]","path":".github/workflows/codeprism-moth-specs.yml","line":230,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:230"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/deploy-docs.yml","line":40,"fingerprint":"artipacked:.github/workflows/deploy-docs.yml:40"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/docker.yml","line":53,"fingerprint":"artipacked:.github/workflows/docker.yml:53"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/mcp-test-harness.yml","line":79,"fingerprint":"artipacked:.github/workflows/mcp-test-harness.yml:79"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/mcp-test-harness.yml","line":173,"fingerprint":"artipacked:.github/workflows/mcp-test-harness.yml:173"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/mcp-test-harness.yml","line":247,"fingerprint":"artipacked:.github/workflows/mcp-test-harness.yml:247"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/mcp-test-harness.yml","line":354,"fingerprint":"artipacked:.github/workflows/mcp-test-harness.yml:354"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/mcp-test-harness.yml","line":483,"fingerprint":"artipacked:.github/workflows/mcp-test-harness.yml:483"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":66,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:66"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":165,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:165"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":230,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:230"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":337,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:337"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":470,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:470"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/mcp-test-harness.yml","line":564,"fingerprint":"excessive-permissions:.github/workflows/mcp-test-harness.yml:564"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":32,"fingerprint":"artipacked:.github/workflows/release.yml:32"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":122,"fingerprint":"artipacked:.github/workflows/release.yml:122"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":157,"fingerprint":"artipacked:.github/workflows/release.yml:157"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":214,"fingerprint":"artipacked:.github/workflows/release.yml:214"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":353,"fingerprint":"artipacked:.github/workflows/release.yml:353"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":382,"fingerprint":"artipacked:.github/workflows/release.yml:382"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":541,"fingerprint":"artipacked:.github/workflows/release.yml:541"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/release.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":24,"fingerprint":"excessive-permissions:.github/workflows/release.yml:24"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":116,"fingerprint":"excessive-permissions:.github/workflows/release.yml:116"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":136,"fingerprint":"excessive-permissions:.github/workflows/release.yml:136"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":347,"fingerprint":"excessive-permissions:.github/workflows/release.yml:347"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":376,"fingerprint":"excessive-permissions:.github/workflows/release.yml:376"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":606,"fingerprint":"excessive-permissions:.github/workflows/release.yml:606"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":708,"fingerprint":"excessive-permissions:.github/workflows/release.yml:708"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":26,"fingerprint":"self-repository:.github/workflows/ci.yml:26"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":81,"fingerprint":"self-repository:.github/workflows/ci.yml:81"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":113,"fingerprint":"self-repository:.github/workflows/ci.yml:113"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":154,"fingerprint":"self-repository:.github/workflows/ci.yml:154"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":181,"fingerprint":"self-repository:.github/workflows/ci.yml:181"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":184,"fingerprint":"self-repository:.github/workflows/ci.yml:184"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":217,"fingerprint":"self-repository:.github/workflows/ci.yml:217"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/ci.yml","line":249,"fingerprint":"self-repository:.github/workflows/ci.yml:249"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/codeprism-moth-specs.yml","line":87,"fingerprint":"self-repository:.github/workflows/codeprism-moth-specs.yml:87"},{"rule_id":"zizmor/template-injection","severity":"low","message":"code injection via template expansion [confidence high]","path":".github/workflows/docker.yml","line":110,"fingerprint":"template-injection:.github/workflows/docker.yml:110"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":191,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:191"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":192,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:192"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":267,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:267"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":268,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:268"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":269,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:269"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":377,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:377"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":378,"fingerprint":"adhoc-packages:.github/workflows/mcp-test-harness.yml:378"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":177,"fingerprint":"self-repository:.github/workflows/mcp-test-harness.yml:177"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":251,"fingerprint":"self-repository:.github/workflows/mcp-test-harness.yml:251"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":285,"fingerprint":"self-repository:.github/workflows/mcp-test-harness.yml:285"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":358,"fingerprint":"self-repository:.github/workflows/mcp-test-harness.yml:358"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/mcp-test-harness.yml","line":487,"fingerprint":"self-repository:.github/workflows/mcp-test-harness.yml:487"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":164,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:164"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":165,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:165"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":167,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:167"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":172,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:172"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":173,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:173"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/quality-checks/action.yml","line":174,"fingerprint":"template-injection:.github/actions/quality-checks/action.yml:174"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":243,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:243"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":244,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:244"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":245,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:245"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":246,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:246"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":247,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:247"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":248,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:248"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/actions/run-tests/action.yml","line":261,"fingerprint":"template-injection:.github/actions/run-tests/action.yml:261"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/codeprism-moth-specs.yml","line":231,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:231"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/codeprism-moth-specs.yml","line":267,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:267"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/codeprism-moth-specs.yml","line":293,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:293"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/codeprism-moth-specs.yml","line":297,"fingerprint":"template-injection:.github/workflows/codeprism-moth-specs.yml:297"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/deploy-docs.yml","line":109,"fingerprint":"template-injection:.github/workflows/deploy-docs.yml:109"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/deploy-docs.yml","line":109,"fingerprint":"template-injection:.github/workflows/deploy-docs.yml:109"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/deploy-docs.yml","line":110,"fingerprint":"template-injection:.github/workflows/deploy-docs.yml:110"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/deploy-docs.yml","line":118,"fingerprint":"template-injection:.github/workflows/deploy-docs.yml:118"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker.yml","line":111,"fingerprint":"template-injection:.github/workflows/docker.yml:111"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":1.0,"check:dependency_updates":0.0,"check:signed_commits":1.0,"check:lockfiles":0.0,"signed_commit_share":0.995,"unpinned_manifests":15.0},"findings":[],"evidence":[{"kind":"posture","description":"Security policy: SECURITY.md","ref":"SECURITY.md","url":null,"weight":0.0},{"kind":"posture","description":"Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-analysis/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-analysis/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-core/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-core/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-dev-tools/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-dev-tools/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-lang-java/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-lang-java/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-lang-js/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-lang-js/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-lang-python/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-lang-python/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-lang-rust/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-lang-rust/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-mcp-server/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-mcp-server/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-moth-specs/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-moth-specs/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-storage/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-storage/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/codeprism-utils/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/codeprism-utils/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"crates/mandrel-mcp-th/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"crates/mandrel-mcp-th/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"test-projects/js-dependency-test-project/package.json has no lockfile alongside it (unpinned dependencies)","ref":"test-projects/js-dependency-test-project/package.json","url":null,"weight":0.3},{"kind":"posture","description":"test-projects/rust-test-project/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"test-projects/rust-test-project/Cargo.toml","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":2.0,"binary_assets":16.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v0.4.6 ships codeprism-windows-x86_64.exe (21 downloads)","ref":"codeprism-windows-x86_64.exe","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/codeprism-windows-x86_64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v0.4.6 ships moth-windows-x86_64.exe (8 downloads)","ref":"moth-windows-x86_64.exe","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.6/moth-windows-x86_64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v0.4.5 ships codeprism-windows-x86_64.exe (3 downloads)","ref":"codeprism-windows-x86_64.exe","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/codeprism-windows-x86_64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v0.4.5 ships moth-windows-x86_64.exe (2 downloads)","ref":"moth-windows-x86_64.exe","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.5/moth-windows-x86_64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v0.4.4 ships codeprism-windows-x86_64.exe (2 downloads)","ref":"codeprism-windows-x86_64.exe","url":"https://github.com/rustic-ai/codeprism/releases/download/v0.4.4/codeprism-windows-x86_64.exe","weight":0.0},{"kind":"readme-download-lure","description":"links directly to a downloadable archive or installer","ref":"README.md","url":null,"weight":0.0}],"data":{"signals":["binary-release-assets","readme-download-lure"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":3903.0,"function_nloc":62519.0,"mean_ccn":2.62,"p90_ccn":6.0,"complex_functions":43.0,"long_functions":38.0,"many_param_functions":3.0,"risky_nloc_share":0.1609},"findings":[],"evidence":[{"kind":"complex-function","description":"apply_constraint in crates/mandrel-mcp-th/src/validation/jsonpath.rs: complexity 35, 175 lines","ref":"crates/mandrel-mcp-th/src/validation/jsonpath.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/mandrel-mcp-th/src/validation/jsonpath.rs#L140","weight":0.5833333333333334},{"kind":"complex-function","description":"parse_command in crates/codeprism-dev-tools/src/dev_repl.rs: complexity 33, 122 lines","ref":"crates/codeprism-dev-tools/src/dev_repl.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-dev-tools/src/dev_repl.rs#L212","weight":0.55},{"kind":"complex-function","description":"advanced_search in crates/codeprism-mcp-server/src/server.rs: complexity 32, 162 lines","ref":"crates/codeprism-mcp-server/src/server.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-mcp-server/src/server.rs#L1524","weight":0.5333333333333333},{"kind":"complex-function","description":"process_node in crates/codeprism-lang-java/src/ast_mapper.rs: complexity 31, 55 lines","ref":"crates/codeprism-lang-java/src/ast_mapper.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-lang-java/src/ast_mapper.rs#L79","weight":0.5166666666666667},{"kind":"complex-function","description":"generate_markdown in crates/mandrel-mcp-th/src/reporting/mod.rs: complexity 30, 293 lines","ref":"crates/mandrel-mcp-th/src/reporting/mod.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/mandrel-mcp-th/src/reporting/mod.rs#L367","weight":0.5},{"kind":"complex-function","description":"validate_field in crates/mandrel-mcp-th/src/validation/mod.rs: complexity 30, 124 lines","ref":"crates/mandrel-mcp-th/src/validation/mod.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/mandrel-mcp-th/src/validation/mod.rs#L377","weight":0.5},{"kind":"complex-function","description":"visit_node in crates/codeprism-lang-rust/src/ast_mapper.rs: complexity 29, 22 lines","ref":"crates/codeprism-lang-rust/src/ast_mapper.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-lang-rust/src/ast_mapper.rs#L141","weight":0.48333333333333334},{"kind":"complex-function","description":"batch_process in crates/codeprism-mcp-server/src/server.rs: complexity 28, 318 lines","ref":"crates/codeprism-mcp-server/src/server.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-mcp-server/src/server.rs#L2733","weight":0.4666666666666667},{"kind":"complex-function","description":"AdvancedUserDashboard in test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx: complexity 28, 255 lines","ref":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx#L322","weight":0.4666666666666667},{"kind":"complex-function","description":"extract_parameters_with_types in crates/codeprism-lang-python/src/ast_mapper.rs: complexity 24, 78 lines","ref":"crates/codeprism-lang-python/src/ast_mapper.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-lang-python/src/ast_mapper.rs#L627","weight":0.4}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":71401.0,"duplicated_lines":5584.0,"duplicated_share":0.0782,"files":202.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: benches/comprehensive/parser_benchmarks.rs:33 and benches/comprehensive/parser_benchmarks.rs:64","ref":"benches/comprehensive/parser_benchmarks.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/benches/comprehensive/parser_benchmarks.rs#L33","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/api_surface.rs:34 and crates/codeprism-analysis/src/security.rs:50","ref":"crates/codeprism-analysis/src/api_surface.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/api_surface.rs#L34","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/api_surface.rs:167 and crates/codeprism-analysis/src/performance.rs:447","ref":"crates/codeprism-analysis/src/api_surface.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/api_surface.rs#L167","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/api_surface.rs:343 and crates/codeprism-analysis/src/api_surface.rs:363","ref":"crates/codeprism-analysis/src/api_surface.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/api_surface.rs#L343","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/duplicates.rs:116 and crates/codeprism-analysis/src/duplicates.rs:165","ref":"crates/codeprism-analysis/src/duplicates.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/duplicates.rs#L116","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/performance.rs:460 and crates/codeprism-analysis/src/performance.rs:867","ref":"crates/codeprism-analysis/src/performance.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/performance.rs#L460","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-analysis/src/security.rs:611 and crates/codeprism-analysis/src/security.rs:630","ref":"crates/codeprism-analysis/src/security.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-analysis/src/security.rs#L611","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-core/src/ast/mod.rs:12 and crates/codeprism-lang-java/src/types.rs:11","ref":"crates/codeprism-core/src/ast/mod.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/src/ast/mod.rs#L12","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-core/src/ast/mod.rs:26 and crates/codeprism-core/src/content/mod.rs:32","ref":"crates/codeprism-core/src/ast/mod.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/src/ast/mod.rs#L26","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: crates/codeprism-core/src/ast/mod.rs:61 and crates/codeprism-lang-js/src/types.rs:43","ref":"crates/codeprism-core/src/ast/mod.rs","url":"https://github.com/rustic-ai/codeprism/blob/8115b77568c16d1eb0710396da39232b33663fc0/crates/codeprism-core/src/ast/mod.rs#L61","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":58.0,"weighted_findings":63.25,"scanned_lines":100050.0,"category:best-practice":26.0,"category:correctness":3.0,"category:maintainability":29.0},"findings":[{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `unused_inner_function` is defined inside a function but never used","path":"test-projects/unused-code-test.py","line":246,"fingerprint":"python.lang.maintainability.useless-inner-function:test-projects/unused-code-test.py:246"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `another_unused_inner` is defined inside a function but never used","path":"test-projects/unused-code-test.py","line":250,"fingerprint":"python.lang.maintainability.useless-inner-function:test-projects/unused-code-test.py:250"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"test-projects/unused-code-test.py","line":314,"fingerprint":"python.lang.best-practice.open-never-closed:test-projects/unused-code-test.py:314"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"codeprism-docs/src/components/HomepageFeatures/index.tsx","line":93,"fingerprint":"typescript.react.best-practice.react-props-spreading:codeprism-docs/src/components/HomepageFeatures/index.tsx:93"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/detect-test-theater.py","line":441,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/detect-test-theater.py:441"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/validate-codeprism-performance.py","line":66,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/validate-codeprism-performance.py:66"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/validate-codeprism-performance.py","line":272,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/validate-codeprism-performance.py:272"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/validate-codeprism-performance.py","line":318,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/validate-codeprism-performance.py:318"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/duplicate-code-test.py","line":272,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/duplicate-code-test.py:272"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/duplicate-code-test.py","line":290,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/duplicate-code-test.py:290"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/duplicate-code-test.py","line":308,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/duplicate-code-test.py:308"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-in-state","severity":"medium","message":"Copying a prop into state in React -- this is bad practice as all updates to it are ignored. Instead, read props directly in your component and avoid copying props into state.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":39,"fingerprint":"typescript.react.best-practice.react-props-in-state:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:39"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-in-state","severity":"medium","message":"Copying a prop into state in React -- this is bad practice as all updates to it are ignored. Instead, read props directly in your component and avoid copying props into state.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":63,"fingerprint":"typescript.react.best-practice.react-props-in-state:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:63"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":297,"fingerprint":"typescript.react.best-practice.react-props-spreading:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:297"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":768,"fingerprint":"typescript.react.best-practice.react-props-spreading:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:768"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":790,"fingerprint":"typescript.react.best-practice.react-props-spreading:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:790"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":812,"fingerprint":"typescript.react.best-practice.react-props-spreading:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:812"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx","line":834,"fingerprint":"typescript.react.best-practice.react-props-spreading:test-projects/js-dependency-test-project/src/components/AdvancedUserDashboard.jsx:834"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_active\" a function or an attribute? If it is a function, you may have meant user.is_active() because user.is_active is always true.","path":"test-projects/python-sample/api/handlers.py","line":104,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/api/handlers.py:104"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":312,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:312"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":317,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:317"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":319,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:319"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":411,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:411"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":415,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:415"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_configured\" a function or an attribute? If it is a function, you may have meant self.is_configured() because self.is_configured is always true.","path":"test-projects/python-sample/core/base.py","line":415,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:415"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":420,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:420"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_configured\" a function or an attribute? If it is a function, you may have meant self.is_configured() because self.is_configured is always true.","path":"test-projects/python-sample/core/base.py","line":421,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:421"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_initialized\" a function or an attribute? If it is a function, you may have meant self.is_initialized() because self.is_initialized is always true.","path":"test-projects/python-sample/core/base.py","line":422,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:422"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_configured\" a function or an attribute? If it is a function, you may have meant self.is_configured() because self.is_configured is always true.","path":"test-projects/python-sample/core/base.py","line":422,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/base.py:422"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_active\" a function or an attribute? If it is a function, you may have meant self.is_active() because self.is_active is always true.","path":"test-projects/python-sample/core/events.py","line":143,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/events.py:143"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_active\" a function or an attribute? If it is a function, you may have meant self.is_active() because self.is_active is always true.","path":"test-projects/python-sample/core/events.py","line":168,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/events.py:168"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_active\" a function or an attribute? If it is a function, you may have meant self.is_active() because self.is_active is always true.","path":"test-projects/python-sample/core/events.py","line":172,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/events.py:172"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_active\" a function or an attribute? If it is a function, you may have meant subscriber.is_active() because subscriber.is_active is always true.","path":"test-projects/python-sample/core/events.py","line":304,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/events.py:304"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_ok\" a function or an attribute? If it is a function, you may have meant self.is_ok() because self.is_ok is always true.","path":"test-projects/python-sample/core/types.py","line":95,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/types.py:95"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_ok\" a function or an attribute? If it is a function, you may have meant self.is_ok() because self.is_ok is always true.","path":"test-projects/python-sample/core/types.py","line":104,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/types.py:104"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_some\" a function or an attribute? If it is a function, you may have meant self.is_some() because self.is_some is always true.","path":"test-projects/python-sample/core/types.py","line":148,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/types.py:148"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_some\" a function or an attribute? If it is a function, you may have meant self.is_some() because self.is_some is always true.","path":"test-projects/python-sample/core/types.py","line":154,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/core/types.py:154"},{"rule_id":"opengrep/python.lang.correctness.baseclass-attribute-override","severity":"medium","message":"Class User inherits from both `Auditable` and `Timestamped` which both have a method named `$F`; one of these methods will be overwritten.","path":"test-projects/python-sample/models/user.py","line":159,"fingerprint":"python.lang.correctness.baseclass-attribute-override:test-projects/python-sample/models/user.py:159"},{"rule_id":"opengrep/python.lang.correctness.baseclass-attribute-override","severity":"medium","message":"Class User inherits from both `Entity` and `Auditable` which both have a method named `$F`; one of these methods will be overwritten.","path":"test-projects/python-sample/models/user.py","line":159,"fingerprint":"python.lang.correctness.baseclass-attribute-override:test-projects/python-sample/models/user.py:159"},{"rule_id":"opengrep/python.lang.correctness.baseclass-attribute-override","severity":"medium","message":"Class User inherits from both `Entity` and `Timestamped` which both have a method named `$F`; one of these methods will be overwritten.","path":"test-projects/python-sample/models/user.py","line":159,"fingerprint":"python.lang.correctness.baseclass-attribute-override:test-projects/python-sample/models/user.py:159"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_locked\" a function or an attribute? If it is a function, you may have meant self.is_locked() because self.is_locked is always true.","path":"test-projects/python-sample/models/user.py","line":699,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/models/user.py:699"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_expired\" a function or an attribute? If it is a function, you may have meant entry.is_expired() because entry.is_expired is always true.","path":"test-projects/python-sample/services/cache.py","line":280,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/services/cache.py:280"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_expired\" a function or an attribute? If it is a function, you may have meant entry.is_expired() because entry.is_expired is always true.","path":"test-projects/python-sample/services/cache.py","line":348,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/services/cache.py:348"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_expired\" a function or an attribute? If it is a function, you may have meant entry.is_expired() because entry.is_expired is always true.","path":"test-projects/python-sample/services/cache.py","line":371,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/services/cache.py:371"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_expired\" a function or an attribute? If it is a function, you may have meant entry.is_expired() because entry.is_expired is always true.","path":"test-projects/python-sample/services/cache.py","line":397,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:test-projects/python-sample/services/cache.py:397"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/python-sample/services/database.py","line":250,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/python-sample/services/database.py:250"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/python-sample/services/database.py","line":269,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/python-sample/services/database.py:269"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/python-sample/utils/config.py","line":22,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/python-sample/utils/config.py:22"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/python-sample/utils/config.py","line":139,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/python-sample/utils/config.py:139"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/python-sample/utils/config.py","line":236,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/python-sample/utils/config.py:236"},{"rule_id":"opengrep/python.lang.best-practice.logging-error-without-handling","severity":"medium","message":"Errors should only be logged when handled. The code logs the error and propogates the exception, consider reducing the level to warning or info.","path":"test-projects/python-sample/utils/logger.py","line":187,"fingerprint":"python.lang.best-practice.logging-error-without-handling:test-projects/python-sample/utils/logger.py:187"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/unused-code-test.py","line":96,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/unused-code-test.py:96"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/unused-code-test.py","line":164,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/unused-code-test.py:164"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"test-projects/unused-code-test.py","line":263,"fingerprint":"python.lang.maintainability.return-not-in-function:test-projects/unused-code-test.py:263"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"test-projects/unused-code-test.py","line":264,"fingerprint":"python.lang.maintainability.return-not-in-function:test-projects/unused-code-test.py:264"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"test-projects/unused-code-test.py","line":265,"fingerprint":"python.lang.maintainability.return-not-in-function:test-projects/unused-code-test.py:265"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"test-projects/unused-code-test.py","line":314,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:test-projects/unused-code-test.py:314"},{"rule_id":"opengrep/typescript.lang.best-practice.moment-deprecated","severity":"low","message":"Moment is a legacy project in maintenance mode. Consider using libraries that are actively supported, e.g. `dayjs`.","path":"test-projects/js-dependency-test-project/src/components/UserManager.jsx","line":11,"fingerprint":"typescript.lang.best-practice.moment-deprecated:test-projects/js-dependency-test-project/src/components/UserManager.jsx:11"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.4058,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":1.0,"check:tests_cochange":0.835,"test_lines":20299.0,"source_lines":100050.0,"test_ratio":0.2029,"ci_files":6.0,"cochange_share":0.2087,"cochange_commits":206.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/ci.yml","ref":".github/workflows/ci.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/codeprism-moth-specs.yml","ref":".github/workflows/codeprism-moth-specs.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/deploy-docs.yml","ref":".github/workflows/deploy-docs.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/docker.yml","ref":".github/workflows/docker.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/mcp-test-harness.yml","ref":".github/workflows/mcp-test-harness.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/release.yml","ref":".github/workflows/release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (go test, cargo test)","ref":null,"url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (clippy, cargo fmt)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["go test","cargo test"],"lint_commands":["clippy","cargo fmt"]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":1.0,"check:changelog":1.0,"readme_lines":367.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"CONTRIBUTING.md","ref":"CONTRIBUTING.md","url":null,"weight":0.0},{"kind":"docs","description":"CHANGELOG.md","ref":"CHANGELOG.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.9418,"check:low_escape_density":0.0,"escapes":219.0,"escapes_per_kloc":22.786},"findings":[],"evidence":[{"kind":"typing","description":"Python strict type checking: test-projects/python-sample/pyproject.toml","ref":"test-projects/python-sample/pyproject.toml","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}