{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-e7eef4e2aff9b59f", "name": "Stray `console.log` in TS/JS \u2014 test-tracker.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-tracker.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02b901c33b666be5", "name": "Stray `console.log` in TS/JS \u2014 test-templates.js:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-templates.js:174"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d0f9fb3b411b03d2", "name": "Stray `console.log` in TS/JS \u2014 server.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ee2f92b57d04128", "name": "Stray `console.log` in TS/JS \u2014 test-pdf.js:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-pdf.js:151"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a43f1f72025c117d", "name": "Stray `console.log` in TS/JS \u2014 test-resumes.js:281", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-resumes.js:281"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c912afdccf18606c", "name": "Privileged port 465 in use", "shortDescription": {"text": "Privileged port 465 in use"}, "fullDescription": {"text": "Port 465 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-169f06ef84d8adf0", "name": "Very large file: server.js (2126 lines)", "shortDescription": {"text": "Very large file: server.js (2126 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 88 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests, operator-readme. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f82e1df2bd9b7abf", "name": "Commented-code block (5 lines) in server.js:737", "shortDescription": {"text": "Commented-code block (5 lines) in server.js:737"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa60870fbd5a9234", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server.js:1701", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server.js:1701"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6236f2c2e6ed3ae3", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (server.js:1692)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server.js:1692)"}, "fullDescription": {"text": "`server.js:1692` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90e01a023ada3a01", "name": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (server.js:1701)", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (server.js:1701)"}, "fullDescription": {"text": "`server.js:1701` calls `GET https://www.googleapis.com/oauth2/v3/userinfo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/oauth2/v3/userinfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88fc8be02384ecb8", "name": "Dangling fetch: POST https://www.linkedin.com/oauth/v2/accessToken (server.js:1744)", "shortDescription": {"text": "Dangling fetch: POST https://www.linkedin.com/oauth/v2/accessToken (server.js:1744)"}, "fullDescription": {"text": "`server.js:1744` calls `POST https://www.linkedin.com/oauth/v2/accessToken` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.linkedin.com/oauth/v2/accesstoken`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe8f17b633c12648", "name": "Dangling fetch: GET https://api.linkedin.com/v2/userinfo (server.js:1754)", "shortDescription": {"text": "Dangling fetch: GET https://api.linkedin.com/v2/userinfo (server.js:1754)"}, "fullDescription": {"text": "`server.js:1754` calls `GET https://api.linkedin.com/v2/userinfo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.linkedin.com/v2/userinfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f63c27f7ffbe2e84", "name": "Unused endpoint: USE /generate-template", "shortDescription": {"text": "Unused endpoint: USE /generate-template"}, "fullDescription": {"text": "`server.js` declares `USE /generate-template` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34e5f4b7ea7ae840", "name": "Unused endpoint: USE /extract-resume", "shortDescription": {"text": "Unused endpoint: USE /extract-resume"}, "fullDescription": {"text": "`server.js` declares `USE /extract-resume` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-665530d25106d60d", "name": "Unused endpoint: USE /review-resume", "shortDescription": {"text": "Unused endpoint: USE /review-resume"}, "fullDescription": {"text": "`server.js` declares `USE /review-resume` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bda4216bd040ba37", "name": "Unused endpoint: USE /improve-summary", "shortDescription": {"text": "Unused endpoint: USE /improve-summary"}, "fullDescription": {"text": "`server.js` declares `USE /improve-summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7dac6b182f06493", "name": "Unused endpoint: USE /generate-pdf", "shortDescription": {"text": "Unused endpoint: USE /generate-pdf"}, "fullDescription": {"text": "`server.js` declares `USE /generate-pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e57499748be8b06b", "name": "Unused endpoint: USE /analyze-job-match", "shortDescription": {"text": "Unused endpoint: USE /analyze-job-match"}, "fullDescription": {"text": "`server.js` declares `USE /analyze-job-match` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c92341d33158b267", "name": "Unused endpoint: USE /optimize-for-job", "shortDescription": {"text": "Unused endpoint: USE /optimize-for-job"}, "fullDescription": {"text": "`server.js` declares `USE /optimize-for-job` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a693f4173426467f", "name": "Unused endpoint: USE /analyze-food", "shortDescription": {"text": "Unused endpoint: USE /analyze-food"}, "fullDescription": {"text": "`server.js` declares `USE /analyze-food` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4fb2ff022d840371", "name": "Unused endpoint: USE /create-order", "shortDescription": {"text": "Unused endpoint: USE /create-order"}, "fullDescription": {"text": "`server.js` declares `USE /create-order` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7244378d72c0e702", "name": "Unused endpoint: USE /verify-payment", "shortDescription": {"text": "Unused endpoint: USE /verify-payment"}, "fullDescription": {"text": "`server.js` declares `USE /verify-payment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a650cdbd752e6825", "name": "Unused endpoint: USE /auth/magic-link/request", "shortDescription": {"text": "Unused endpoint: USE /auth/magic-link/request"}, "fullDescription": {"text": "`server.js` declares `USE /auth/magic-link/request` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9a6d1e64145b843", "name": "Unused endpoint: USE /auth/poll", "shortDescription": {"text": "Unused endpoint: USE /auth/poll"}, "fullDescription": {"text": "`server.js` declares `USE /auth/poll` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f325676e7fd20a9c", "name": "Unused endpoint: USE /auth/init-poll", "shortDescription": {"text": "Unused endpoint: USE /auth/init-poll"}, "fullDescription": {"text": "`server.js` declares `USE /auth/init-poll` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ba8d60a36af71bf", "name": "Unused endpoint: POST /generate-pdf", "shortDescription": {"text": "Unused endpoint: POST /generate-pdf"}, "fullDescription": {"text": "`server.js` declares `POST /generate-pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bb42204ff9271dd", "name": "Unused endpoint: POST /extract-resume", "shortDescription": {"text": "Unused endpoint: POST /extract-resume"}, "fullDescription": {"text": "`server.js` declares `POST /extract-resume` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1afe0c01979bac18", "name": "Unused endpoint: POST /generate-template", "shortDescription": {"text": "Unused endpoint: POST /generate-template"}, "fullDescription": {"text": "`server.js` declares `POST /generate-template` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-242ae993e874baa6", "name": "Unused endpoint: POST /improve-summary", "shortDescription": {"text": "Unused endpoint: POST /improve-summary"}, "fullDescription": {"text": "`server.js` declares `POST /improve-summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1237273ffa4c38a2", "name": "Unused endpoint: POST /review-resume", "shortDescription": {"text": "Unused endpoint: POST /review-resume"}, "fullDescription": {"text": "`server.js` declares `POST /review-resume` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aee13233591f8262", "name": "Unused endpoint: POST /analyze-job-match", "shortDescription": {"text": "Unused endpoint: POST /analyze-job-match"}, "fullDescription": {"text": "`server.js` declares `POST /analyze-job-match` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e8b53c10ec0a6b2", "name": "Unused endpoint: POST /optimize-for-job", "shortDescription": {"text": "Unused endpoint: POST /optimize-for-job"}, "fullDescription": {"text": "`server.js` declares `POST /optimize-for-job` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e9f0c712241895d", "name": "Unused endpoint: GET /auth/google", "shortDescription": {"text": "Unused endpoint: GET /auth/google"}, "fullDescription": {"text": "`server.js` declares `GET /auth/google` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-392dcbd9c0e4ed85", "name": "Unused endpoint: GET /auth/google/callback", "shortDescription": {"text": "Unused endpoint: GET /auth/google/callback"}, "fullDescription": {"text": "`server.js` declares `GET /auth/google/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e02d45b58d0e155", "name": "Unused endpoint: GET /auth/linkedin", "shortDescription": {"text": "Unused endpoint: GET /auth/linkedin"}, "fullDescription": {"text": "`server.js` declares `GET /auth/linkedin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6fa0c591df2d3f95", "name": "Unused endpoint: GET /auth/linkedin/callback", "shortDescription": {"text": "Unused endpoint: GET /auth/linkedin/callback"}, "fullDescription": {"text": "`server.js` declares `GET /auth/linkedin/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e02f8c59b8ded7ec", "name": "Unused endpoint: POST /auth/magic-link/request", "shortDescription": {"text": "Unused endpoint: POST /auth/magic-link/request"}, "fullDescription": {"text": "`server.js` declares `POST /auth/magic-link/request` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-013b32ea624b6689", "name": "Unused endpoint: GET /auth/magic-link/verify", "shortDescription": {"text": "Unused endpoint: GET /auth/magic-link/verify"}, "fullDescription": {"text": "`server.js` declares `GET /auth/magic-link/verify` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac42422b23e45104", "name": "Unused endpoint: GET /auth/me", "shortDescription": {"text": "Unused endpoint: GET /auth/me"}, "fullDescription": {"text": "`server.js` declares `GET /auth/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49917f5f5a40be51", "name": "Unused endpoint: POST /auth/init-poll", "shortDescription": {"text": "Unused endpoint: POST /auth/init-poll"}, "fullDescription": {"text": "`server.js` declares `POST /auth/init-poll` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34e72b1bd933fd8a", "name": "Unused endpoint: GET /auth/poll", "shortDescription": {"text": "Unused endpoint: GET /auth/poll"}, "fullDescription": {"text": "`server.js` declares `GET /auth/poll` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c059f57186114027", "name": "Unused endpoint: POST /auth/logout", "shortDescription": {"text": "Unused endpoint: POST /auth/logout"}, "fullDescription": {"text": "`server.js` declares `POST /auth/logout` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3abea5b28826e2fd", "name": "Unused endpoint: POST /auth/save-resume", "shortDescription": {"text": "Unused endpoint: POST /auth/save-resume"}, "fullDescription": {"text": "`server.js` declares `POST /auth/save-resume` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5926b94779b44102", "name": "Unused endpoint: GET /auth/resumes", "shortDescription": {"text": "Unused endpoint: GET /auth/resumes"}, "fullDescription": {"text": "`server.js` declares `GET /auth/resumes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db856d8527540533", "name": "Unused endpoint: POST /auth/save-ats-report", "shortDescription": {"text": "Unused endpoint: POST /auth/save-ats-report"}, "fullDescription": {"text": "`server.js` declares `POST /auth/save-ats-report` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf4bbf11a3f91894", "name": "Unused endpoint: POST /analyze-food", "shortDescription": {"text": "Unused endpoint: POST /analyze-food"}, "fullDescription": {"text": "`server.js` declares `POST /analyze-food` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-122a7e272073cbaa", "name": "Unused endpoint: POST /create-order", "shortDescription": {"text": "Unused endpoint: POST /create-order"}, "fullDescription": {"text": "`server.js` declares `POST /create-order` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4b6f08896455d5b", "name": "Unused endpoint: POST /verify-payment", "shortDescription": {"text": "Unused endpoint: POST /verify-payment"}, "fullDescription": {"text": "`server.js` declares `POST /verify-payment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/28891"}, "properties": {"repository": "rakshitsegwal/renonym-react", "repoUrl": "https://github.com/rakshitsegwal/renonym-react", "branch": "main"}, "results": [{"ruleId": "scanner-e7eef4e2aff9b59f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-tracker.js:20"}, "properties": {"repobilityId": "030ef2ff5d2a774a", "scanner": "scanner-primary", "fingerprint": "e7eef4e2aff9b59f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02b901c33b666be5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-templates.js:174"}, "properties": {"repobilityId": "4172507092db55fb", "scanner": "scanner-primary", "fingerprint": "02b901c33b666be5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0f9fb3b411b03d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server.js:51"}, "properties": {"repobilityId": "a9deebb5fdc93edc", "scanner": "scanner-primary", "fingerprint": "d0f9fb3b411b03d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ee2f92b57d04128", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-pdf.js:151"}, "properties": {"repobilityId": "2176e43bc5d11779", "scanner": "scanner-primary", "fingerprint": "6ee2f92b57d04128", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a43f1f72025c117d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-resumes.js:281"}, "properties": {"repobilityId": "f5b9b49af601ef30", "scanner": "scanner-primary", "fingerprint": "a43f1f72025c117d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c912afdccf18606c", "level": "warning", "message": {"text": "Privileged port 465 in use"}, "properties": {"repobilityId": "bcd1f06b60a2b6bc", "scanner": "scanner-primary", "fingerprint": "c912afdccf18606c", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-169f06ef84d8adf0", "level": "note", "message": {"text": "Very large file: server.js (2126 lines)"}, "properties": {"repobilityId": "1479ba50e708c5c1", "scanner": "scanner-primary", "fingerprint": "169f06ef84d8adf0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "8f0a8d4f0494b5e9", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "9a918227d5aef1b9", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "a24d2af874c2315e", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "86bf2adb217a9ebe", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "612605cebd5d0fe1", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "ee926ece75a9b0b5", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f82e1df2bd9b7abf", "level": "none", "message": {"text": "Commented-code block (5 lines) in server.js:737"}, "properties": {"repobilityId": "0a643a415f1bb61c", "scanner": "scanner-primary", "fingerprint": "f82e1df2bd9b7abf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa60870fbd5a9234", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server.js:1701"}, "properties": {"repobilityId": "cf149fdb4f3e4746", "scanner": "scanner-primary", "fingerprint": "aa60870fbd5a9234", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6236f2c2e6ed3ae3", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server.js:1692)"}, "properties": {"repobilityId": "5ac626c89c0bcdf8", "scanner": "scanner-primary", "fingerprint": "6236f2c2e6ed3ae3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90e01a023ada3a01", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (server.js:1701)"}, "properties": {"repobilityId": "120f7147dc6ccd0d", "scanner": "scanner-primary", "fingerprint": "90e01a023ada3a01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-88fc8be02384ecb8", "level": "error", "message": {"text": "Dangling fetch: POST https://www.linkedin.com/oauth/v2/accessToken (server.js:1744)"}, "properties": {"repobilityId": "10c91854afe044b9", "scanner": "scanner-primary", "fingerprint": "88fc8be02384ecb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fe8f17b633c12648", "level": "error", "message": {"text": "Dangling fetch: GET https://api.linkedin.com/v2/userinfo (server.js:1754)"}, "properties": {"repobilityId": "66cda183b9490531", "scanner": "scanner-primary", "fingerprint": "fe8f17b633c12648", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f63c27f7ffbe2e84", "level": "note", "message": {"text": "Unused endpoint: USE /generate-template"}, "properties": {"repobilityId": "359fc6dcf0fd777e", "scanner": "scanner-primary", "fingerprint": "f63c27f7ffbe2e84", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34e5f4b7ea7ae840", "level": "note", "message": {"text": "Unused endpoint: USE /extract-resume"}, "properties": {"repobilityId": "c1ceef918379ed14", "scanner": "scanner-primary", "fingerprint": "34e5f4b7ea7ae840", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-665530d25106d60d", "level": "note", "message": {"text": "Unused endpoint: USE /review-resume"}, "properties": {"repobilityId": "47d5f1707d45d2be", "scanner": "scanner-primary", "fingerprint": "665530d25106d60d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bda4216bd040ba37", "level": "note", "message": {"text": "Unused endpoint: USE /improve-summary"}, "properties": {"repobilityId": "3a0c15dea8cd7466", "scanner": "scanner-primary", "fingerprint": "bda4216bd040ba37", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f7dac6b182f06493", "level": "note", "message": {"text": "Unused endpoint: USE /generate-pdf"}, "properties": {"repobilityId": "c8ec86bacc8c3568", "scanner": "scanner-primary", "fingerprint": "f7dac6b182f06493", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e57499748be8b06b", "level": "note", "message": {"text": "Unused endpoint: USE /analyze-job-match"}, "properties": {"repobilityId": "f67a6a7d9c1074fc", "scanner": "scanner-primary", "fingerprint": "e57499748be8b06b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c92341d33158b267", "level": "note", "message": {"text": "Unused endpoint: USE /optimize-for-job"}, "properties": {"repobilityId": "8acc498546008a41", "scanner": "scanner-primary", "fingerprint": "c92341d33158b267", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a693f4173426467f", "level": "note", "message": {"text": "Unused endpoint: USE /analyze-food"}, "properties": {"repobilityId": "b54d10b92208aa7c", "scanner": "scanner-primary", "fingerprint": "a693f4173426467f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4fb2ff022d840371", "level": "note", "message": {"text": "Unused endpoint: USE /create-order"}, "properties": {"repobilityId": "0ff306fdcf4fd8ce", "scanner": "scanner-primary", "fingerprint": "4fb2ff022d840371", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7244378d72c0e702", "level": "note", "message": {"text": "Unused endpoint: USE /verify-payment"}, "properties": {"repobilityId": "106d4fcec0e3326a", "scanner": "scanner-primary", "fingerprint": "7244378d72c0e702", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a650cdbd752e6825", "level": "note", "message": {"text": "Unused endpoint: USE /auth/magic-link/request"}, "properties": {"repobilityId": "a57e6bd9ef991433", "scanner": "scanner-primary", "fingerprint": "a650cdbd752e6825", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f9a6d1e64145b843", "level": "note", "message": {"text": "Unused endpoint: USE /auth/poll"}, "properties": {"repobilityId": "46a8e4186a02be9f", "scanner": "scanner-primary", "fingerprint": "f9a6d1e64145b843", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f325676e7fd20a9c", "level": "note", "message": {"text": "Unused endpoint: USE /auth/init-poll"}, "properties": {"repobilityId": "e566f30aadee3658", "scanner": "scanner-primary", "fingerprint": "f325676e7fd20a9c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ba8d60a36af71bf", "level": "note", "message": {"text": "Unused endpoint: POST /generate-pdf"}, "properties": {"repobilityId": "4e6fddcbfbb30512", "scanner": "scanner-primary", "fingerprint": "5ba8d60a36af71bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8bb42204ff9271dd", "level": "note", "message": {"text": "Unused endpoint: POST /extract-resume"}, "properties": {"repobilityId": "62d64b4ebf3bb83a", "scanner": "scanner-primary", "fingerprint": "8bb42204ff9271dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1afe0c01979bac18", "level": "note", "message": {"text": "Unused endpoint: POST /generate-template"}, "properties": {"repobilityId": "34804644b51365f8", "scanner": "scanner-primary", "fingerprint": "1afe0c01979bac18", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-242ae993e874baa6", "level": "note", "message": {"text": "Unused endpoint: POST /improve-summary"}, "properties": {"repobilityId": "3b15c50e33ce559f", "scanner": "scanner-primary", "fingerprint": "242ae993e874baa6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1237273ffa4c38a2", "level": "note", "message": {"text": "Unused endpoint: POST /review-resume"}, "properties": {"repobilityId": "a2ecc4824e080fc4", "scanner": "scanner-primary", "fingerprint": "1237273ffa4c38a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aee13233591f8262", "level": "note", "message": {"text": "Unused endpoint: POST /analyze-job-match"}, "properties": {"repobilityId": "20aa66b17a543b98", "scanner": "scanner-primary", "fingerprint": "aee13233591f8262", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0e8b53c10ec0a6b2", "level": "note", "message": {"text": "Unused endpoint: POST /optimize-for-job"}, "properties": {"repobilityId": "4e1aaff88927d039", "scanner": "scanner-primary", "fingerprint": "0e8b53c10ec0a6b2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2e9f0c712241895d", "level": "note", "message": {"text": "Unused endpoint: GET /auth/google"}, "properties": {"repobilityId": "b1d68179f12a8117", "scanner": "scanner-primary", "fingerprint": "2e9f0c712241895d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-392dcbd9c0e4ed85", "level": "note", "message": {"text": "Unused endpoint: GET /auth/google/callback"}, "properties": {"repobilityId": "80b850cd20022d10", "scanner": "scanner-primary", "fingerprint": "392dcbd9c0e4ed85", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e02d45b58d0e155", "level": "note", "message": {"text": "Unused endpoint: GET /auth/linkedin"}, "properties": {"repobilityId": "f688ca38abf28e00", "scanner": "scanner-primary", "fingerprint": "8e02d45b58d0e155", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6fa0c591df2d3f95", "level": "note", "message": {"text": "Unused endpoint: GET /auth/linkedin/callback"}, "properties": {"repobilityId": "ffa4992a13fc8465", "scanner": "scanner-primary", "fingerprint": "6fa0c591df2d3f95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e02f8c59b8ded7ec", "level": "note", "message": {"text": "Unused endpoint: POST /auth/magic-link/request"}, "properties": {"repobilityId": "625d9964dff821c1", "scanner": "scanner-primary", "fingerprint": "e02f8c59b8ded7ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-013b32ea624b6689", "level": "note", "message": {"text": "Unused endpoint: GET /auth/magic-link/verify"}, "properties": {"repobilityId": "8060be2c4e66f02a", "scanner": "scanner-primary", "fingerprint": "013b32ea624b6689", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac42422b23e45104", "level": "note", "message": {"text": "Unused endpoint: GET /auth/me"}, "properties": {"repobilityId": "ad479acce3563a1e", "scanner": "scanner-primary", "fingerprint": "ac42422b23e45104", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49917f5f5a40be51", "level": "note", "message": {"text": "Unused endpoint: POST /auth/init-poll"}, "properties": {"repobilityId": "d33a485e2ef2c921", "scanner": "scanner-primary", "fingerprint": "49917f5f5a40be51", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34e72b1bd933fd8a", "level": "note", "message": {"text": "Unused endpoint: GET /auth/poll"}, "properties": {"repobilityId": "89bfb99d728a377b", "scanner": "scanner-primary", "fingerprint": "34e72b1bd933fd8a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c059f57186114027", "level": "note", "message": {"text": "Unused endpoint: POST /auth/logout"}, "properties": {"repobilityId": "b10c8daad0c2922a", "scanner": "scanner-primary", "fingerprint": "c059f57186114027", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3abea5b28826e2fd", "level": "note", "message": {"text": "Unused endpoint: POST /auth/save-resume"}, "properties": {"repobilityId": "0c0dd1d5a0a77be6", "scanner": "scanner-primary", "fingerprint": "3abea5b28826e2fd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5926b94779b44102", "level": "note", "message": {"text": "Unused endpoint: GET /auth/resumes"}, "properties": {"repobilityId": "d63b4b1111ac09ff", "scanner": "scanner-primary", "fingerprint": "5926b94779b44102", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db856d8527540533", "level": "note", "message": {"text": "Unused endpoint: POST /auth/save-ats-report"}, "properties": {"repobilityId": "bcda096464677dbb", "scanner": "scanner-primary", "fingerprint": "db856d8527540533", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf4bbf11a3f91894", "level": "note", "message": {"text": "Unused endpoint: POST /analyze-food"}, "properties": {"repobilityId": "7542a97e760d8c6b", "scanner": "scanner-primary", "fingerprint": "bf4bbf11a3f91894", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-122a7e272073cbaa", "level": "note", "message": {"text": "Unused endpoint: POST /create-order"}, "properties": {"repobilityId": "4e7e356b9ab65628", "scanner": "scanner-primary", "fingerprint": "122a7e272073cbaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4b6f08896455d5b", "level": "note", "message": {"text": "Unused endpoint: POST /verify-payment"}, "properties": {"repobilityId": "d2924c54d12f064e", "scanner": "scanner-primary", "fingerprint": "b4b6f08896455d5b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}