{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:07.922237Z","repo":{"ref":{"host":"github.com","owner":"stong","name":"ctf-purity-test"},"default_branch":"master","clone_url":"https://github.com/stong/ctf-purity-test.git","html_url":"https://github.com/stong/ctf-purity-test","description":"A purity test for CTF players","stars":9,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":288,"primary_language":"TypeScript","license_spdx":null,"created_at":"2025-08-28T02:38:29Z","pushed_at":"2025-12-23T07:35:10Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-10-01T03:20:56Z","owner_type":"User","release_assets":[]}},"commit_sha":"67e2a6c0e8219354df68affff6c8028fd60d5b0e","profile":{"lines_by_language":{"TypeScript":487,"JavaScript":30},"files_by_category":{"source":8,"other":6,"config":4,"binary":2,"docs":1,"generated":1},"source_lines":517,"test_lines":0},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.44,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":null,"style_index":3.0},"summary":"Weak signals consistent with AI-assisted development. Comments and strings use phrasing typical of LLM-written code (see the coding style evidence)."},"quality":{"score":63.8,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":100.0,"duplication":100.0,"lint":77.9,"testing":15.0,"docs":20.0,"type_safety":100.0,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 0% of function code in complex or long functions; 0% duplicated lines. Weakest area: testing."},"security":{"score":56.2,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":9.7,"ci_actions":24.2,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 95 known vulnerabilities in 17 dependencies; 7 high-severity workflow issues. Weakest area: posture."}},"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":12.0,"checked":12.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":14.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":541.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-08":{"loc":536,"attributed_loc":0},"2025-12":{"loc":5,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":3.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":541.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":94.2924159499609,"median_loc_per_hour":94.2924159499609,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":517.0,"index":3.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":6.0,"per_kloc:emoji_in_code":6.0,"files:emoji_in_code":1.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"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":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.0,"scanned_lines":517.0,"parse_errors":0.0},"findings":[],"evidence":[],"data":{"rulesets":["typescript","javascript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":17.0,"vulnerabilities":95.0,"vulns_critical":4.0,"vulns_high":56.0,"vulns_medium":33.0,"vulns_low":2.0,"vulns_unknown":0.0,"penalty":140.0},"findings":[{"rule_id":"osv/GHSA-2464-fhr4-w9xw","severity":"critical","message":"next@15.5.7 (npm) is affected by GHSA-2464-fhr4-w9xw","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-2464-fhr4-w9xw"},{"rule_id":"osv/GHSA-2xp9-vwfh-vxw4","severity":"critical","message":"next@15.5.7 (npm) is affected by GHSA-2xp9-vwfh-vxw4","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-2xp9-vwfh-vxw4"},{"rule_id":"osv/GHSA-p293-qw3h-jr36","severity":"critical","message":"next@15.5.7 (npm) is affected by GHSA-p293-qw3h-jr36","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-p293-qw3h-jr36"},{"rule_id":"osv/GHSA-23hp-3jrh-7fpw","severity":"critical","message":"tar@7.4.3 (npm) is affected by GHSA-23hp-3jrh-7fpw","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-23hp-3jrh-7fpw"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"yarn.lock","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":"yarn.lock","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":"yarn.lock","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":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f","path":"yarn.lock","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-25h7-pfq9-p65f"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-rf6f-7fwh-wjgh","path":"yarn.lock","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"yarn.lock","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":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"yarn.lock","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":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.5 (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":"yarn.lock","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":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-267c-6grr-h53f","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-267c-6grr-h53f","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-267c-6grr-h53f"},{"rule_id":"osv/GHSA-26hh-7cqf-hhc6","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-26hh-7cqf-hhc6","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-26hh-7cqf-hhc6"},{"rule_id":"osv/GHSA-36qx-fr4f-26g5","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-36qx-fr4f-26g5","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-36qx-fr4f-26g5"},{"rule_id":"osv/GHSA-492v-c6pp-mqqv","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-492v-c6pp-mqqv","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-492v-c6pp-mqqv"},{"rule_id":"osv/GHSA-89xv-2m56-2m9x","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-89xv-2m56-2m9x","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-89xv-2m56-2m9x"},{"rule_id":"osv/GHSA-8h8q-6873-q5fj","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-8h8q-6873-q5fj","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-8h8q-6873-q5fj"},{"rule_id":"osv/GHSA-c4j6-fc7j-m34r","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-c4j6-fc7j-m34r","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-c4j6-fc7j-m34r"},{"rule_id":"osv/GHSA-h25m-26qc-wcjf","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-h25m-26qc-wcjf","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-h25m-26qc-wcjf"},{"rule_id":"osv/GHSA-m99w-x7hq-7vfj","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-m99w-x7hq-7vfj","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-m99w-x7hq-7vfj"},{"rule_id":"osv/GHSA-mg66-mrh9-m8jx","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-mg66-mrh9-m8jx","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-mg66-mrh9-m8jx"},{"rule_id":"osv/GHSA-mwv6-3258-q52c","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-mwv6-3258-q52c","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-mwv6-3258-q52c"},{"rule_id":"osv/GHSA-p3m5-59mp-jv5r","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-p3m5-59mp-jv5r","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-p3m5-59mp-jv5r"},{"rule_id":"osv/GHSA-p9j2-gv94-2wf4","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-p9j2-gv94-2wf4","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-p9j2-gv94-2wf4"},{"rule_id":"osv/GHSA-q4gf-8mx6-v5v3","severity":"high","message":"next@15.5.7 (npm) is affected by GHSA-q4gf-8mx6-v5v3","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-q4gf-8mx6-v5v3"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"yarn.lock","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@4.0.3 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"yarn.lock","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.4.31 (npm) is affected by GHSA-6g55-p6wh-862q","path":"yarn.lock","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.4.31 (npm) is affected by GHSA-r28c-9q8g-f849","path":"yarn.lock","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q","path":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-f88m-g3jw-g9cj","severity":"high","message":"sharp@0.34.3 (npm) is affected by GHSA-f88m-g3jw-g9cj","path":"yarn.lock","line":null,"fingerprint":"sharp@0.34.3 (npm):GHSA-f88m-g3jw-g9cj"},{"rule_id":"osv/GHSA-rgj7-g3m4-5g8c","severity":"high","message":"sharp@0.34.3 (npm) is affected by GHSA-rgj7-g3m4-5g8c","path":"yarn.lock","line":null,"fingerprint":"sharp@0.34.3 (npm):GHSA-rgj7-g3m4-5g8c"},{"rule_id":"osv/GHSA-wq5f-xc86-pv6w","severity":"high","message":"sharp@0.34.3 (npm) is affected by GHSA-wq5f-xc86-pv6w","path":"yarn.lock","line":null,"fingerprint":"sharp@0.34.3 (npm):GHSA-wq5f-xc86-pv6w"},{"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":"yarn.lock","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-34x7-hfp2-rc4v","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-34x7-hfp2-rc4v","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-34x7-hfp2-rc4v"},{"rule_id":"osv/GHSA-83g3-92jg-28cx","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-83g3-92jg-28cx","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-83g3-92jg-28cx"},{"rule_id":"osv/GHSA-8qq5-rm4j-mr97","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-8qq5-rm4j-mr97","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-8qq5-rm4j-mr97"},{"rule_id":"osv/GHSA-8x88-c5mf-7j5w","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-8x88-c5mf-7j5w","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-8x88-c5mf-7j5w"},{"rule_id":"osv/GHSA-9ppj-qmqm-q256","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-9ppj-qmqm-q256","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-9ppj-qmqm-q256"},{"rule_id":"osv/GHSA-qffp-2rhf-9h96","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-qffp-2rhf-9h96","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-qffp-2rhf-9h96"},{"rule_id":"osv/GHSA-r292-9mhp-454m","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-r292-9mhp-454m","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-r292-9mhp-454m"},{"rule_id":"osv/GHSA-r6q2-hw4h-h46w","severity":"high","message":"tar@7.4.3 (npm) is affected by GHSA-r6q2-hw4h-h46w","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-r6q2-hw4h-h46w"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.6 (npm) is affected by GHSA-p498-v437-472g","path":"yarn.lock","line":null,"fingerprint":"@humanfs/node@0.16.6 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"yarn.lock","line":null,"fingerprint":"ajv@6.12.6 (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":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-h67p-54hq-rp68","path":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3x4c-7xq6-9pq8","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-3x4c-7xq6-9pq8","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-3x4c-7xq6-9pq8"},{"rule_id":"osv/GHSA-4633-3j49-mh5q","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-4633-3j49-mh5q","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-4633-3j49-mh5q"},{"rule_id":"osv/GHSA-4c39-4ccg-62r3","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-4c39-4ccg-62r3","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-4c39-4ccg-62r3"},{"rule_id":"osv/GHSA-4jqv-mc3x-m676","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-4jqv-mc3x-m676","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-4jqv-mc3x-m676"},{"rule_id":"osv/GHSA-68g3-v927-f742","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-68g3-v927-f742","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-68g3-v927-f742"},{"rule_id":"osv/GHSA-955p-x3mx-jcvp","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-955p-x3mx-jcvp","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-955p-x3mx-jcvp"},{"rule_id":"osv/GHSA-9g9p-9gw9-jx7f","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-9g9p-9gw9-jx7f","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-9g9p-9gw9-jx7f"},{"rule_id":"osv/GHSA-ffhc-5mcf-pf4q","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-ffhc-5mcf-pf4q","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-ffhc-5mcf-pf4q"},{"rule_id":"osv/GHSA-ggv3-7p47-pfv8","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-ggv3-7p47-pfv8","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-ggv3-7p47-pfv8"},{"rule_id":"osv/GHSA-gx5p-jg67-6x7h","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-gx5p-jg67-6x7h","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-gx5p-jg67-6x7h"},{"rule_id":"osv/GHSA-h64f-5h5j-jqjh","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-h64f-5h5j-jqjh","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-h64f-5h5j-jqjh"},{"rule_id":"osv/GHSA-mcj8-r9mp-w47p","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-mcj8-r9mp-w47p","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-mcj8-r9mp-w47p"},{"rule_id":"osv/GHSA-q8wf-6r8g-63ch","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-q8wf-6r8g-63ch","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-q8wf-6r8g-63ch"},{"rule_id":"osv/GHSA-w37m-7fhw-fmv9","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-w37m-7fhw-fmv9","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-w37m-7fhw-fmv9"},{"rule_id":"osv/GHSA-wfc6-r584-vfw7","severity":"medium","message":"next@15.5.7 (npm) is affected by GHSA-wfc6-r584-vfw7","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-wfc6-r584-vfw7"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"yarn.lock","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@4.0.3 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"yarn.lock","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.4.31 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"yarn.lock","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.4.31 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"yarn.lock","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"yarn.lock","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":"yarn.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-gvwx-54wh-qm9j","severity":"medium","message":"tar@7.4.3 (npm) is affected by GHSA-gvwx-54wh-qm9j","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-gvwx-54wh-qm9j"},{"rule_id":"osv/GHSA-vmf3-w455-68vh","severity":"medium","message":"tar@7.4.3 (npm) is affected by GHSA-vmf3-w455-68vh","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-vmf3-w455-68vh"},{"rule_id":"osv/GHSA-w8wr-v893-vjvp","severity":"medium","message":"tar@7.4.3 (npm) is affected by GHSA-w8wr-v893-vjvp","path":"yarn.lock","line":null,"fingerprint":"tar@7.4.3 (npm):GHSA-w8wr-v893-vjvp"},{"rule_id":"osv/GHSA-3g8h-86w9-wvmq","severity":"low","message":"next@15.5.7 (npm) is affected by GHSA-3g8h-86w9-wvmq","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-3g8h-86w9-wvmq"},{"rule_id":"osv/GHSA-vfv6-92ff-j949","severity":"low","message":"next@15.5.7 (npm) is affected by GHSA-vfv6-92ff-j949","path":"yarn.lock","line":null,"fingerprint":"next@15.5.7 (npm):GHSA-vfv6-92ff-j949"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":8.0,"findings_high":7.0,"findings_medium":1.0,"findings_low":0.0,"penalty":85.2},"findings":[{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/deploy.yml","line":10,"fingerprint":"excessive-permissions:.github/workflows/deploy.yml:10"},{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/deploy.yml","line":11,"fingerprint":"excessive-permissions:.github/workflows/deploy.yml:11"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy.yml","line":22,"fingerprint":"unpinned-uses:.github/workflows/deploy.yml:22"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy.yml","line":25,"fingerprint":"unpinned-uses:.github/workflows/deploy.yml:25"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy.yml","line":37,"fingerprint":"unpinned-uses:.github/workflows/deploy.yml:37"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy.yml","line":40,"fingerprint":"unpinned-uses:.github/workflows/deploy.yml:40"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy.yml","line":53,"fingerprint":"unpinned-uses:.github/workflows/deploy.yml:53"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/deploy.yml","line":21,"fingerprint":"artipacked:.github/workflows/deploy.yml:21"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.1429,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":16.0,"function_nloc":221.0,"mean_ccn":2.31,"p90_ccn":6.0,"complex_functions":0.0,"long_functions":0.0,"many_param_functions":0.0,"risky_nloc_share":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":393.0,"duplicated_lines":0.0,"duplicated_share":0.0,"files":8.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":1.0,"weighted_findings":1.0,"scanned_lines":517.0,"category:best-practice":1.0},"findings":[{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/score/page.tsx","line":149,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/score/page.tsx:149"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":517.0,"test_ratio":0.0,"ci_files":1.0,"cochange_share":0.0,"cochange_commits":11.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/deploy.yml","ref":".github/workflows/deploy.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":0.5,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":6.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":1.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}