{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:48:17.589779Z","repo":{"ref":{"host":"github.com","owner":"k45sle","name":"Claude-auto-pause"},"default_branch":"main","clone_url":"https://github.com/k45sle/Claude-auto-pause.git","html_url":"https://github.com/k45sle/Claude-auto-pause","description":"Claude Code plugin: stops Claude before your usage limit and saves a checked handoff note, so a new chat picks up where it left off.","stars":15,"forks":2,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":339,"primary_language":"TypeScript","license_spdx":"MIT","created_at":"2026-10-19T22:50:27Z","pushed_at":"2026-11-12T02:36:17Z","security_policy_url":null,"distribution":{"owner_created_at":"2025-03-22T05:07:45Z","owner_type":"User","release_assets":[]}},"commit_sha":"4b2a8a21bcaa9267dc23d26c00d3a89b462825b3","profile":{"lines_by_language":{"TypeScript":1926,"Shell":244},"files_by_category":{"docs":74,"config":31,"source":20,"other":1,"test":1},"source_lines":947,"test_lines":1223},"pillars":{"ai_provenance":{"score":100.0,"confidence":0.85,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":1.0,"suspected_share":0.0,"estimated_share":1.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":null},"summary":"Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals."},"quality":{"score":65.1,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":30.5,"duplication":100.0,"lint":88.2,"testing":55.0,"docs":85.0,"type_safety":40.0,"process":null},"summary":"Code quality is adequate: test-to-source ratio 1.29, no CI test run detected; 40% of function code in complex or long functions; 0% duplicated lines. Weakest area: complexity."},"security":{"score":67.7,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":87.5,"sast":76.9,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: no high-impact findings. 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":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":61.0,"attributed_commits":59.0,"attributed_commit_share":0.9672131147540983,"effective_loc":2542.0,"attributed_loc":2542.0,"attributed_loc_share":1.0,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 59 attributed commits, 2,542 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ed95cce9a8b7620625afdc064756387c04cdd829","url":"https://github.com/k45sle/Claude-auto-pause/commit/ed95cce9a8b7620625afdc064756387c04cdd829","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"97daad286d8776a045efbe32cb9091af02b09e86","url":"https://github.com/k45sle/Claude-auto-pause/commit/97daad286d8776a045efbe32cb9091af02b09e86","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"9dc46d82602dd5d988029a6eadf00e0801736ef1","url":"https://github.com/k45sle/Claude-auto-pause/commit/9dc46d82602dd5d988029a6eadf00e0801736ef1","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6bd041295747ffa71b7c497a2da4e350c01fe0c6","url":"https://github.com/k45sle/Claude-auto-pause/commit/6bd041295747ffa71b7c497a2da4e350c01fe0c6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"273dcf70e157e7f2601ec3c3b39fcaaa889f5ba3","url":"https://github.com/k45sle/Claude-auto-pause/commit/273dcf70e157e7f2601ec3c3b39fcaaa889f5ba3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7e336af8499408f662d3e8297c79a7cdb89f2efb","url":"https://github.com/k45sle/Claude-auto-pause/commit/7e336af8499408f662d3e8297c79a7cdb89f2efb","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b9a83392697e210c110d9831bd8641d38c542663","url":"https://github.com/k45sle/Claude-auto-pause/commit/b9a83392697e210c110d9831bd8641d38c542663","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b1bf7d2a9ce7caf81adbbcc35597c4aaa3fced3f","url":"https://github.com/k45sle/Claude-auto-pause/commit/b1bf7d2a9ce7caf81adbbcc35597c4aaa3fced3f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"312897beaf0dd42930a79c3886cb60dd70a4907d","url":"https://github.com/k45sle/Claude-auto-pause/commit/312897beaf0dd42930a79c3886cb60dd70a4907d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"12d86219ee79af1528cc26caade4d5edfc823944","url":"https://github.com/k45sle/Claude-auto-pause/commit/12d86219ee79af1528cc26caade4d5edfc823944","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0fd05aebcff4b045e0f3dffd2b6f0a656bfe73fb","url":"https://github.com/k45sle/Claude-auto-pause/commit/0fd05aebcff4b045e0f3dffd2b6f0a656bfe73fb","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"64d8d64c1d5307edbb885d3d684db075fc02f5b1","url":"https://github.com/k45sle/Claude-auto-pause/commit/64d8d64c1d5307edbb885d3d684db075fc02f5b1","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a64864b04c0f7858d59f5dcc8289083f62f5aff4","url":"https://github.com/k45sle/Claude-auto-pause/commit/a64864b04c0f7858d59f5dcc8289083f62f5aff4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"9b548747dceccdb07360e16e1685dd8b873a9c61","url":"https://github.com/k45sle/Claude-auto-pause/commit/9b548747dceccdb07360e16e1685dd8b873a9c61","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"46ebadad12f93a88dea1860897a8a1fdc93191f3","url":"https://github.com/k45sle/Claude-auto-pause/commit/46ebadad12f93a88dea1860897a8a1fdc93191f3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"514d9d00b5e5050880ba50b809e00d94f01a098a","url":"https://github.com/k45sle/Claude-auto-pause/commit/514d9d00b5e5050880ba50b809e00d94f01a098a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"89daf02f904d99e4e8bd7d35238f7bc2e3664a94","url":"https://github.com/k45sle/Claude-auto-pause/commit/89daf02f904d99e4e8bd7d35238f7bc2e3664a94","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f3e877049d1a4f908653b406237c6f90c26b7b5d","url":"https://github.com/k45sle/Claude-auto-pause/commit/f3e877049d1a4f908653b406237c6f90c26b7b5d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6f5a1e32a66a36fc88acf679980616d2b413e8e9","url":"https://github.com/k45sle/Claude-auto-pause/commit/6f5a1e32a66a36fc88acf679980616d2b413e8e9","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"80923151e89c3f90de96c747e4527e1695436d14","url":"https://github.com/k45sle/Claude-auto-pause/commit/80923151e89c3f90de96c747e4527e1695436d14","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"9927c381096c965c4e7d02580242274ebe6e049b","url":"https://github.com/k45sle/Claude-auto-pause/commit/9927c381096c965c4e7d02580242274ebe6e049b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"acb2387bbb92db65a4ff6583c416dfaf99338da2","url":"https://github.com/k45sle/Claude-auto-pause/commit/acb2387bbb92db65a4ff6583c416dfaf99338da2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"859364aab68e06e2920da5d1b42aeff300f39f03","url":"https://github.com/k45sle/Claude-auto-pause/commit/859364aab68e06e2920da5d1b42aeff300f39f03","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d5211156109b61c56a9f26aae5c5e6a0d6fbedfa","url":"https://github.com/k45sle/Claude-auto-pause/commit/d5211156109b61c56a9f26aae5c5e6a0d6fbedfa","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7e94d1fb633d5fa08d01e93c49cef8381811eb3b","url":"https://github.com/k45sle/Claude-auto-pause/commit/7e94d1fb633d5fa08d01e93c49cef8381811eb3b","weight":0.9}],"data":{"attributed_loc_by_commit":{"22a602193bbe5742fc018990c8641713662e9191":0,"cf8f243d7bf8dec8caf3daafa5c8fccc2f8fb729":0,"08275ba879260bef0128ea8b3a93c0512bf1b466":0,"7fc9044772a6c3a2f3152fb7ad9a0d9b6e514743":0,"29de570a651906f38b7f32950ade54836dad56c5":141,"377b25ee7f55807210e0a68b95854d3c649decb4":619,"e07fad5f74e97fbb9b0d54f3924f1697e4a5206e":26,"5b4eeb22aa550bf33824da23aa427b8c975bccf0":0,"96aece3b5488192a22c6be0ff72f0687411301ba":9,"300657e5e2546e361d749e5f9d997787336ad3c6":440,"ff9b031dc9574e448b27f3cc6f0bc09b63064eb6":139,"cbb8dbe59333c25a56ef607aec227f2541254e77":18,"7a1807798937a20d36a0ca82cf55081afd5aa971":131,"6fad2dc0dfd669ac185c576d2e8f42e9645af441":46,"9f4a8b8697e417bbabcef3ba4eb75fcaa0d10cc4":0,"d1e44ce23e21ba8b7e0ccd17357e51e996899c45":0,"6a019e28a057e29280c43a8376419ee75e2223f9":20,"5537d6bfa92cc4364c154b53f3a1c7be185848c4":0,"1a01d6ed3f0648c2ddfa8803d53ae1ab575ddf10":14,"efb515a7861d358545404bc3cad23d7bf65aae38":374,"8e69adf62af83ccfb3215c6aaf68e152ce464d02":31,"aeb4752398c469a158be8f6c3ede2e1451fc2622":0,"2d83aa66bb4a8a6ded7c65d39e18720d284539f7":0,"083110ed234c104e3c65fd40bd0645aa15db59b9":1,"98700665a75492553828b7d8a51ea3dd4bd7327d":0,"c4b8bb3d96fee433580db42af2a27470169bab8c":0,"494be986fc5beebebf5d061d7217bd8d5b265c10":0,"e25043155cb867749818c42c4bbaccbe18970159":0,"816ffad1582d501141fa2eb41b7222f31cdd3b74":0,"88928aa398647914ac155338cf7ce1df5b2b17f7":0,"a0beaafa05b3e330259ca75d3a3ca5a2a2fe7912":0,"8727893725f65620beae241f1e873355a1efeaa9":0,"a67b422af77839a7c6a4c6de9295bfa79d614673":0,"48d396480ef33714365e2ad7e7830c35f7ffe06d":0,"7e94d1fb633d5fa08d01e93c49cef8381811eb3b":0,"d5211156109b61c56a9f26aae5c5e6a0d6fbedfa":0,"859364aab68e06e2920da5d1b42aeff300f39f03":0,"acb2387bbb92db65a4ff6583c416dfaf99338da2":0,"9927c381096c965c4e7d02580242274ebe6e049b":0,"80923151e89c3f90de96c747e4527e1695436d14":5,"6f5a1e32a66a36fc88acf679980616d2b413e8e9":7,"f3e877049d1a4f908653b406237c6f90c26b7b5d":8,"89daf02f904d99e4e8bd7d35238f7bc2e3664a94":40,"514d9d00b5e5050880ba50b809e00d94f01a098a":8,"46ebadad12f93a88dea1860897a8a1fdc93191f3":14,"9b548747dceccdb07360e16e1685dd8b873a9c61":22,"a64864b04c0f7858d59f5dcc8289083f62f5aff4":15,"64d8d64c1d5307edbb885d3d684db075fc02f5b1":15,"0fd05aebcff4b045e0f3dffd2b6f0a656bfe73fb":29,"12d86219ee79af1528cc26caade4d5edfc823944":4,"312897beaf0dd42930a79c3886cb60dd70a4907d":48,"b1bf7d2a9ce7caf81adbbcc35597c4aaa3fced3f":5,"b9a83392697e210c110d9831bd8641d38c542663":0,"7e336af8499408f662d3e8297c79a7cdb89f2efb":2,"273dcf70e157e7f2601ec3c3b39fcaaa889f5ba3":2,"6bd041295747ffa71b7c497a2da4e350c01fe0c6":36,"9dc46d82602dd5d988029a6eadf00e0801736ef1":0,"97daad286d8776a045efbe32cb9091af02b09e86":0,"ed95cce9a8b7620625afdc064756387c04cdd829":273},"tools":{"claude-code":{"name":"Claude Code","commits":59,"loc":2542,"first_seen":1792451097,"last_seen":1794448464}},"monthly":{"2026-10":{"loc":2233,"attributed_loc":2233},"2026-11":{"loc":309,"attributed_loc":309}}},"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":12.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":2542.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":230.40706228543402,"median_loc_per_hour":168.46473029045643,"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":947.0,"index":0.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":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.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":4.0,"secrets_low_confidence":0.0},"findings":[{"rule_id":"gitleaks/stripe-access-token","severity":"low","message":"Possible stripe-access-token secret in the current tree (test/docs/example file)","path":"hooks/register.test.ts","line":997,"fingerprint":"hooks/register.test.ts:stripe-access-token:997"},{"rule_id":"gitleaks/jwt","severity":"low","message":"Possible jwt secret in the current tree (test/docs/example file)","path":"hooks/register.test.ts","line":997,"fingerprint":"hooks/register.test.ts:jwt:997"},{"rule_id":"gitleaks/gitlab-pat","severity":"low","message":"Possible gitlab-pat secret in the current tree (test/docs/example file)","path":"hooks/register.test.ts","line":997,"fingerprint":"hooks/register.test.ts:gitlab-pat:997"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"hooks/register.test.ts","line":733,"fingerprint":"hooks/register.test.ts:generic-api-key:733"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":3.0,"findings_high":0.0,"findings_medium":3.0,"findings_low":0.0,"weighted_findings":0.75,"scanned_lines":947.0,"parse_errors":2.0},"findings":[{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `re` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled i [confidence low]","path":"hooks/register.ts","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:hooks/register.ts:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `f` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled in [confidence low]","path":"hooks/register.ts","line":102,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:hooks/register.ts:102"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `f` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled in [confidence low]","path":"hooks/register.ts","line":103,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:hooks/register.ts:103"}],"evidence":[],"data":{"rulesets":["typescript","javascript","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"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.0656,"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":125.0,"function_nloc":607.0,"mean_ccn":3.71,"p90_ccn":8.0,"complex_functions":6.0,"long_functions":0.0,"many_param_functions":0.0,"risky_nloc_share":0.3954},"findings":[],"evidence":[{"kind":"complex-function","description":"(anonymous) in hooks/register.ts: complexity 71, 71 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L543","weight":1.0},{"kind":"complex-function","description":"onReading in hooks/register.ts: complexity 25, 45 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L254","weight":0.4166666666666667},{"kind":"complex-function","description":"validate in hooks/register.ts: complexity 24, 25 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L377","weight":0.4},{"kind":"complex-function","description":"resumeCheck in hooks/register.ts: complexity 19, 24 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L200","weight":0.31666666666666665},{"kind":"complex-function","description":"writeFallback in hooks/register.ts: complexity 19, 46 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L460","weight":0.31666666666666665},{"kind":"complex-function","description":"(anonymous) in hooks/register.ts: complexity 17, 29 lines","ref":"hooks/register.ts","url":"https://github.com/k45sle/Claude-auto-pause/blob/4b2a8a21bcaa9267dc23d26c00d3a89b462825b3/hooks/register.ts#L664","weight":0.2833333333333333}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":792.0,"duplicated_lines":0.0,"duplicated_share":0.0,"files":20.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":2.0,"weighted_findings":0.5,"scanned_lines":947.0,"category:correctness":2.0},"findings":[{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"hooks/register.ts","line":84,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:hooks/register.ts:84"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"hooks/register.ts","line":84,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:hooks/register.ts:84"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":1.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":1223.0,"source_lines":947.0,"test_ratio":1.2914,"ci_files":0.0,"cochange_share":0.7333,"cochange_commits":30.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":1.0,"readme_lines":88.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","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.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":947.0,"other_lines":0.0,"files_blamed":20.0,"blame_failures":0.0,"quality:ai_findings":2.0,"quality:ai_per_kloc":2.112,"quality:other_findings":0.0,"security:ai_findings":3.0,"security:ai_per_kloc":3.168,"security:other_findings":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":[]}