{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:05.562466Z","repo":{"ref":{"host":"github.com","owner":"joaodantas91","name":"kandidat"},"default_branch":"main","clone_url":"https://github.com/joaodantas91/kandidat.git","html_url":"https://github.com/joaodantas91/kandidat","description":null,"stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":627,"primary_language":"TypeScript","license_spdx":null,"created_at":"2026-10-24T19:48:47Z","pushed_at":"2026-11-05T02:53:17Z","security_policy_url":null,"distribution":{"owner_created_at":"2019-11-20T14:05:52Z","owner_type":"User","release_assets":[]}},"commit_sha":"96ec081f9df6650254a5ef12a19d3dea6e6eddc2","profile":{"lines_by_language":{"TypeScript":5789,"Svelte":2542},"files_by_category":{"source":42,"test":22,"other":16,"binary":7,"config":6,"docs":5},"source_lines":4833,"test_lines":3498},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.9485,"estimated_share":0.0,"ai_artifacts":1.0,"flagged_work_units":3.0,"flagged_releases":null,"style_index":0.0},"summary":"Weak signals consistent with AI-assisted development."},"quality":{"score":61.9,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":53.0,"duplication":76.5,"lint":92.5,"testing":55.0,"docs":40.0,"type_safety":40.0,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.72, no CI test run detected; 21% of function code in complex or long functions; 4% duplicated lines. Weakest area: docs."},"security":{"score":81.7,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":98.2,"dependencies":83.2,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 22 known vulnerabilities in 2 dependencies. 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":13.0,"checked":13.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":122.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":11876.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2026-10":{"loc":612,"attributed_loc":0},"2026-11":{"loc":11264,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":1.0,"workflow_agents":0.0,"tools_configured":1.0,"earliest_adoption":1793823882.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"generic-agent","path":"AGENTS.md","added_at":1793823882}],"workflows":[],"tools":["generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":12.0,"flagged_units":3.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":11876.0,"flagged_loc":11264.0,"flagged_loc_share":0.9484674974738969,"max_loc_per_hour":1674.0892765520782,"median_loc_per_hour":702.164862614488,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"2,719 lines of first-party code in ~1.6h (1,674 lines/hour, 3 commit session)","ref":"92696d43c3142bbf25113c413947ab5832f0cbdb","url":"https://github.com/joaodantas91/kandidat/commit/92696d43c3142bbf25113c413947ab5832f0cbdb","weight":0.5022267829656235},{"kind":"velocity-burst","description":"6,671 lines of first-party code in ~7.5h (885 lines/hour, 32 commit session)","ref":"708423e152abab9749d1b7db878ba881c1457d04","url":"https://github.com/joaodantas91/kandidat/commit/708423e152abab9749d1b7db878ba881c1457d04","weight":0.2655222230412029},{"kind":"velocity-burst","description":"1,874 lines of first-party code in ~2.7h (702 lines/hour, 7 commit session)","ref":"96ec081f9df6650254a5ef12a19d3dea6e6eddc2","url":"https://github.com/joaodantas91/kandidat/commit/96ec081f9df6650254a5ef12a19d3dea6e6eddc2","weight":0.21064945878434638}],"data":{"flagged_loc_by_commit":{"b93fc31d4a55dbd09676d83f9e5a3768b12432f2":15,"95624e4497b7553b3659128d3374fd81c2b4fe67":31,"fd1e4da89f5b1da04e0dd6fc9323862d77875c98":61,"64a8b186ef17c798461e5ae4ca6bcd5375ea9e1b":58,"0b2947339e78ea342dba47b3b309576a6bbc4171":711,"ec2346a8aae4cc77e6948969335840b6a421e626":412,"caae18b316bb2c24d860f67742c6af252a98fc49":346,"826c02b6c6366bfdc2ed1b6ad289f3d9f4a80418":142,"9ce21fab8153dad7a04b4a22c75b657cbb4eae69":162,"27b1b998161099210c2d16d4177f74bab081be2a":55,"08c5ad59128a4c913af777321c3cba91f4589d46":264,"1e0431bd7b97dea6c7cc684547a76eb8b33d5f9b":208,"4bf1518204d2c5e922a9be3912a47a9ff4bb354b":260,"6bf3d9d58af00900802c052301c06e5419d6b293":148,"9159d31ca2c572abea4c8d15b1e6e9141ad3afee":201,"dca4d8153b48d64dc0d882b1c5a2cf45b83238b9":16,"4cc970bcc610feed059a98e382cfe078d92ce1b1":223,"52a9dbef1e6c131862a11daac85db8986ecc0844":495,"d2a17041b0b948fdee6908c149c1470a4af67fa5":138,"de37e493a7ba8badf0d545e749a1303a7fb534b0":1,"7ff36efd4c5742f0de7e36b0b051904c35e727a1":3,"13b4401a144375527a394cdeb573ad3f8a16fa6c":1,"3096dbe2bb1674596fa297e0e54010a8c14e630a":213,"302c0e231943dec5f4eaf7f230932b73accd2d20":243,"ca3c33aaece75bacfe8dfd9228633aa271978077":313,"137cc602f41159d342b04481ce6bc2f600356507":5,"a20dc6b44a7260735bd467118cdb463730831b39":1030,"9ec1236e24e0c29382d33b05a576ada8b5cb70e5":3,"bb448226986b39e58ad945cd66f1d5977a3bb40b":10,"7b299392ed6b8fba9e2524a7116ab49d863b4201":17,"dfb60a9aff13f3dddb76156570a2ce7cc30ffd2e":14,"708423e152abab9749d1b7db878ba881c1457d04":872,"3e78e4410ee03c2b3693baaf95acfb023da6e5e0":1025,"b6cb7e5b08f5123dd682bf45396e85fb8211a3d5":170,"92696d43c3142bbf25113c413947ab5832f0cbdb":1524,"938c3f673a1505e6f6b3fdfd5fb993e4d443fbad":726,"9ee9134395e4508a02b49b559bb1140072e73427":630,"c259d79ef23d382e8daee5a1b6e0cbd4822a0fa9":22,"ba892d6d0df877b0903e4240d8fd88d3ba82ad92":177,"e31da34abc3ce2a60125810b1688d2b92060ba20":189,"e8899a489bafa61c344b34cfaa64f44243ced7af":115,"96ec081f9df6650254a5ef12a19d3dea6e6eddc2":15},"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":4833.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":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":1.0,"findings_high":0.0,"findings_medium":1.0,"findings_low":0.0,"weighted_findings":0.25,"scanned_lines":4833.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"src/core/ats/index.ts","line":26,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:src/core/ats/index.ts:26"}],"evidence":[],"data":{"rulesets":["javascript","typescript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":2.0,"vulnerabilities":22.0,"vulns_critical":0.0,"vulns_high":8.0,"vulns_medium":8.0,"vulns_low":6.0,"vulns_unknown":0.0,"penalty":11.0},"findings":[{"rule_id":"osv/GHSA-5x38-2vff-x55p","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-5x38-2vff-x55p","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-5x38-2vff-x55p"},{"rule_id":"osv/GHSA-6qrw-m8cv-hcxf","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-6qrw-m8cv-hcxf","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-6qrw-m8cv-hcxf"},{"rule_id":"osv/GHSA-7wch-p9px-956x","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-7wch-p9px-956x","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-7wch-p9px-956x"},{"rule_id":"osv/GHSA-86w9-cpqp-85rv","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-86w9-cpqp-85rv","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-86w9-cpqp-85rv"},{"rule_id":"osv/GHSA-8hrf-8g6f-7xwp","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-8hrf-8g6f-7xwp","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-8hrf-8g6f-7xwp"},{"rule_id":"osv/GHSA-hqq3-7jhf-c5jx","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-hqq3-7jhf-c5jx","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-hqq3-7jhf-c5jx"},{"rule_id":"osv/GHSA-jc66-7q78-782g","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-jc66-7q78-782g","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-jc66-7q78-782g"},{"rule_id":"osv/GHSA-rhr8-3pm8-cq29","severity":"high","message":"node-forge@1.4.0 (npm) is affected by GHSA-rhr8-3pm8-cq29","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-rhr8-3pm8-cq29"},{"rule_id":"osv/GHSA-gcqx-w48m-w2h4","severity":"medium","message":"deepmerge@4.3.1 (npm) is affected by GHSA-gcqx-w48m-w2h4","path":"bun.lock","line":null,"fingerprint":"deepmerge@4.3.1 (npm):GHSA-gcqx-w48m-w2h4"},{"rule_id":"osv/GHSA-525v-9gp9-w22h","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-525v-9gp9-w22h","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-525v-9gp9-w22h"},{"rule_id":"osv/GHSA-5cwg-6vw7-rj6p","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-5cwg-6vw7-rj6p","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-5cwg-6vw7-rj6p"},{"rule_id":"osv/GHSA-6cv4-p8m7-4r25","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-6cv4-p8m7-4r25","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-6cv4-p8m7-4r25"},{"rule_id":"osv/GHSA-6wvx-3r32-xmcg","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-6wvx-3r32-xmcg","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-6wvx-3r32-xmcg"},{"rule_id":"osv/GHSA-h46v-rmh6-fq4f","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-h46v-rmh6-fq4f","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-h46v-rmh6-fq4f"},{"rule_id":"osv/GHSA-j8rw-jp99-435v","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-j8rw-jp99-435v","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-j8rw-jp99-435v"},{"rule_id":"osv/GHSA-w4xr-hqv8-ch44","severity":"medium","message":"node-forge@1.4.0 (npm) is affected by GHSA-w4xr-hqv8-ch44","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-w4xr-hqv8-ch44"},{"rule_id":"osv/GHSA-2vgq-wchc-25w7","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-2vgq-wchc-25w7","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-2vgq-wchc-25w7"},{"rule_id":"osv/GHSA-4487-j8r4-4g2f","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-4487-j8r4-4g2f","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-4487-j8r4-4g2f"},{"rule_id":"osv/GHSA-4642-5mcj-2rqw","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-4642-5mcj-2rqw","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-4642-5mcj-2rqw"},{"rule_id":"osv/GHSA-6889-vf6x-f3g5","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-6889-vf6x-f3g5","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-6889-vf6x-f3g5"},{"rule_id":"osv/GHSA-9wg5-mj3p-v49q","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-9wg5-mj3p-v49q","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-9wg5-mj3p-v49q"},{"rule_id":"osv/GHSA-h6cr-wjv9-3cpp","severity":"low","message":"node-forge@1.4.0 (npm) is affected by GHSA-h6cr-wjv9-3cpp","path":"bun.lock","line":null,"fingerprint":"node-forge@1.4.0 (npm):GHSA-h6cr-wjv9-3cpp"}],"evidence":[],"data":{"ecosystems":["npm"]},"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.0,"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":118.0,"function_nloc":1398.0,"mean_ccn":4.74,"p90_ccn":13.0,"complex_functions":7.0,"long_functions":0.0,"many_param_functions":0.0,"risky_nloc_share":0.2117},"findings":[],"evidence":[{"kind":"complex-function","description":"fillWorkday in src/core/ats/workday.ts: complexity 31, 64 lines","ref":"src/core/ats/workday.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/workday.ts#L40","weight":0.5166666666666667},{"kind":"complex-function","description":"resolveIdentity in src/core/ats/fieldMapping.ts: complexity 21, 34 lines","ref":"src/core/ats/fieldMapping.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/fieldMapping.ts#L31","weight":0.35},{"kind":"complex-function","description":"resolveWorkAuthorization in src/core/ats/fieldMapping.ts: complexity 18, 37 lines","ref":"src/core/ats/fieldMapping.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/fieldMapping.ts#L139","weight":0.3},{"kind":"complex-function","description":"fillLever in src/core/ats/lever.ts: complexity 18, 41 lines","ref":"src/core/ats/lever.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/lever.ts#L75","weight":0.3},{"kind":"complex-function","description":"normalizeProfile in src/core/storage/storage.ts: complexity 17, 31 lines","ref":"src/core/storage/storage.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/storage/storage.ts#L92","weight":0.2833333333333333},{"kind":"complex-function","description":"extractOpenQuestions in src/core/ats/questions.ts: complexity 16, 55 lines","ref":"src/core/ats/questions.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/questions.ts#L22","weight":0.26666666666666666},{"kind":"complex-function","description":"parseProfileFormData in src/entrypoints/options/profile/formUtils.ts: complexity 16, 34 lines","ref":"src/entrypoints/options/profile/formUtils.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/entrypoints/options/profile/formUtils.ts#L189","weight":0.26666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":3579.0,"duplicated_lines":160.0,"duplicated_share":0.0447,"files":42.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/ats/fieldMapping.ts:14 and src/core/storage/storage.ts:6","ref":"src/core/ats/fieldMapping.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/fieldMapping.ts#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/ats/greenhouse.ts:71 and src/core/ats/greenhouse.ts:88","ref":"src/core/ats/greenhouse.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/greenhouse.ts#L71","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/ats/greenhouse.ts:100 and src/core/ats/lever.ts:58","ref":"src/core/ats/greenhouse.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/greenhouse.ts#L100","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/ats/questions.ts:47 and src/core/ats/questions.ts:61","ref":"src/core/ats/questions.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/ats/questions.ts#L47","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/storage/storage.ts:7 and src/entrypoints/options/profile/LocationSection.svelte:7","ref":"src/core/storage/storage.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/storage/storage.ts#L7","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/storage/storage.ts:16 and src/entrypoints/options/profile/LinksSection.svelte:6","ref":"src/core/storage/storage.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/storage/storage.ts#L16","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/core/storage/storage.ts:58 and src/entrypoints/options/profile/IdentitySection.svelte:7","ref":"src/core/storage/storage.ts","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/core/storage/storage.ts#L58","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/entrypoints/options/Options.svelte:348 and src/entrypoints/popup/App.svelte:218","ref":"src/entrypoints/options/Options.svelte","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/entrypoints/options/Options.svelte#L348","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/entrypoints/options/profile/CompensationSection.svelte:120 and src/entrypoints/options/profile/IdentitySection.svelte:208","ref":"src/entrypoints/options/profile/CompensationSection.svelte","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/entrypoints/options/profile/CompensationSection.svelte#L120","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/entrypoints/options/profile/CompensationSection.svelte:124 and src/entrypoints/options/profile/ExperienceSection.svelte:211","ref":"src/entrypoints/options/profile/CompensationSection.svelte","url":"https://github.com/joaodantas91/kandidat/blob/96ec081f9df6650254a5ef12a19d3dea6e6eddc2/src/entrypoints/options/profile/CompensationSection.svelte#L124","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":3.0,"weighted_findings":1.5,"scanned_lines":4833.0,"category:correctness":3.0},"findings":[{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"src/core/ai/answerer.ts","line":179,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/core/ai/answerer.ts:179"},{"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":"src/entrypoints/floating.content.ts","line":16,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/entrypoints/floating.content.ts:16"},{"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":"src/entrypoints/floating.content.ts","line":16,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/entrypoints/floating.content.ts:16"}],"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":3498.0,"source_lines":4833.0,"test_ratio":0.7238,"ci_files":0.0,"cochange_share":0.7,"cochange_commits":50.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":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":17.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":0.0,"check:low_escape_density":1.0,"escapes":3.0,"escapes_per_kloc":1.309},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}