{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcf877926fea125f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/italia-2027/src/app/layout.tsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/italia-2027/src/app/layout.tsx:18"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36b96d3bad6e8169", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/100-ideias/src/app/layout.tsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/100-ideias/src/app/layout.tsx:18"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-684fd8cb71b4ac35", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/mercados-globais/src/app/layout.tsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/mercados-globais/src/app/layout.tsx:18"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03f6517635b5260d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/docs-site/src/app/layout.tsx:17", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/docs-site/src/app/layout.tsx:17"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39c11f3fb3688131", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/casa-nostra/src/app/layout.tsx:15", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/casa-nostra/src/app/layout.tsx:15"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecc8ef537b119dc2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/propostas/masterclass-bovichain/src/app/layout.tsx:15", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/propostas/masterclass-bovichain/src/app/layout.tsx:15"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67140363e3568db4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/motion-lab/src/app/layout.tsx:36", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/motion-lab/src/app/layout.tsx:36"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09b5c91e32eed9de", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/app/layout.tsx:86", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/app/layout.tsx:86"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eecb61776972828d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/la-rete/src/app/layout.tsx:47", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/la-rete/src/app/layout.tsx:47"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-302a2440ba6d523e", "name": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/italia-2027/src/app/layout.tsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/italia-2027/src/app/layout.tsx:18"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17b6f2435f21f377", "name": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/100-ideias/src/app/layout.tsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/100-ideias/src/app/layout.tsx:18"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd6072e0656a2f04", "name": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/mercados-globais/src/app/layout.tsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/mercados-globais/src/app/layout.tsx:18"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51dbaec428760063", "name": "Insecure pattern 'dangerous_innerhtml' in apps/docs-site/src/app/layout.tsx:17", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/docs-site/src/app/layout.tsx:17"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce25c91b0889780e", "name": "Insecure pattern 'dangerous_innerhtml' in apps/casa-nostra/src/app/layout.tsx:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/casa-nostra/src/app/layout.tsx:15"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74b2e02ca802b068", "name": "Insecure pattern 'dangerous_innerhtml' in apps/propostas/masterclass-bovichain/src/app/layout.tsx:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/propostas/masterclass-bovichain/src/app/layout.tsx:15"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac4f52d1b4ee44e0", "name": "Insecure pattern 'dangerous_innerhtml' in apps/motion-lab/src/app/layout.tsx:36", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/motion-lab/src/app/layout.tsx:36"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57e094be178dba85", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/app/layout.tsx:86", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/app/layout.tsx:86"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e69c14080d7e9f42", "name": "Insecure pattern 'dangerous_innerhtml' in apps/la-rete/src/app/layout.tsx:47", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/la-rete/src/app/layout.tsx:47"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be10431d7bac2a16", "name": "Very large file: apps/docs-site/src/app/page.tsx (1471 lines)", "shortDescription": {"text": "Very large file: apps/docs-site/src/app/page.tsx (1471 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-2202ee87445c6038", "name": "Very large file: apps/docs-site/src/content/brandSystemContent.ts (1362 lines)", "shortDescription": {"text": "Very large file: apps/docs-site/src/content/brandSystemContent.ts (1362 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-dc98200274234990", "name": "Very large file: apps/ds-studio/src/content/brandSystemContent.ts (1323 lines)", "shortDescription": {"text": "Very large file: apps/ds-studio/src/content/brandSystemContent.ts (1323 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "5 test file(s) for 375 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 64 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 111 placeholder/mock markers across 41 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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. 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": "low", "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. 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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "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-dc4fda432d769f9d", "name": "Agent authority lacks a verifier contract: apps/docs-site/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/docs-site/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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "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-30fe95918c7b8670", "name": "Agent authority lacks a verifier contract: .claude/agents/bicofino-design-reviewer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/bicofino-design-reviewer.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-0a12de46b0cc09c8", "name": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/references/content-quality.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/references/content-quality.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-f11ded5b745bcc2b", "name": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/content-audit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/content-audit.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-20c8b0347962c0d3", "name": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/technical-audit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/technical-audit.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-3db26be79e862b87", "name": "Commented-code block (8 lines) in apps/docs-site/src/components/dsfase1/GrafismoTecnico.tsx:118", "shortDescription": {"text": "Commented-code block (8 lines) in apps/docs-site/src/components/dsfase1/GrafismoTecnico.tsx:118"}, "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-54698c639ba15fc8", "name": "Commented-code block (5 lines) in apps/docs-site/src/components/dsfase1/OneVibrant.tsx:93", "shortDescription": {"text": "Commented-code block (5 lines) in apps/docs-site/src/components/dsfase1/OneVibrant.tsx:93"}, "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-7f4d7764ccc4973d", "name": "Commented-code block (5 lines) in apps/casa-nostra/scripts/backfill-organizations.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in apps/casa-nostra/scripts/backfill-organizations.mjs:2"}, "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-5299eacfd92d161d", "name": "Legacy-named symbol `0002_tags_v2` in apps/casa-nostra/db/seeds/seed-tags-v2.mjs:2", "shortDescription": {"text": "Legacy-named symbol `0002_tags_v2` in apps/casa-nostra/db/seeds/seed-tags-v2.mjs:2"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74745917fa0ab759", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/casa-nostra/db/seeds/seed-tags-v2.mjs:163", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/casa-nostra/db/seeds/seed-tags-v2.mjs:163"}, "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-bd87a8cb3faf5507", "name": "Commented-code block (7 lines) in apps/motion-lab/src/app/experiments/07-blur-reveal/page.tsx:40", "shortDescription": {"text": "Commented-code block (7 lines) in apps/motion-lab/src/app/experiments/07-blur-reveal/page.tsx:40"}, "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-404571680ed98de0", "name": "Commented-code block (5 lines) in apps/web/next.config.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/next.config.ts:17"}, "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-4cc200ced34b4d6e", "name": "Commented-code block (5 lines) in apps/drive-atleta/scripts/create-athlete-folder.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/drive-atleta/scripts/create-athlete-folder.mjs:1"}, "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-a92cf7e0a6ace0dd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/create-athlete-folder.mjs:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/create-athlete-folder.mjs:18"}, "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-7e2cd803516d900e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-hash.mjs:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-hash.mjs:6"}, "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-703272216df22e2e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/cleanup-test.mjs:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/cleanup-test.mjs:10"}, "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-593401329b57a87a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-description.mjs:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-description.mjs:20"}, "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-1bc2925d87334492", "name": "Commented-code block (5 lines) in apps/drive-atleta/scripts/drive-setup.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/drive-atleta/scripts/drive-setup.mjs:1"}, "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-14cdae7ac0fd07ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/drive-setup.mjs:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/drive-setup.mjs:13"}, "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-6a0a2e2dcf3e4e0b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/test-e2e.mjs:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/test-e2e.mjs:25"}, "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-6b361b3b33e896e7", "name": "Commented-code block (6 lines) in apps/drive-atleta/src/proxy.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/drive-atleta/src/proxy.ts:4"}, "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-5da0115feb99945b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/app/api/thumb/route.ts:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/app/api/thumb/route.ts:33"}, "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-111ac09de5ffc3e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/storage.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/storage.ts:36"}, "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-d82e5b78c7a2d91e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/upload-client.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/upload-client.ts:63"}, "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-d5b4d82a67186efd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/drive.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/drive.ts:41"}, "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-e2a5568a6f88a525", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/google.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/google.ts:28"}, "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-9ccb90b773de4060", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/la-rete/src/app/consigliere/page.tsx:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/la-rete/src/app/consigliere/page.tsx:83"}, "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}}]}}, "automationDetails": {"id": "repobility/20411"}, "properties": {"repository": "studio-bicofino/bicofino-ds", "repoUrl": "https://github.com/studio-bicofino/bicofino-ds", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-fcf877926fea125f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/italia-2027/src/app/layout.tsx:18"}, "properties": {"repobilityId": "3d8b2f1dbbc0b3cd", "scanner": "scanner-primary", "fingerprint": "fcf877926fea125f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-36b96d3bad6e8169", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/100-ideias/src/app/layout.tsx:18"}, "properties": {"repobilityId": "ecea980404ced96c", "scanner": "scanner-primary", "fingerprint": "36b96d3bad6e8169", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-684fd8cb71b4ac35", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/vanguarda/mercados-globais/src/app/layout.tsx:18"}, "properties": {"repobilityId": "984034ee8d1e514a", "scanner": "scanner-primary", "fingerprint": "684fd8cb71b4ac35", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-03f6517635b5260d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/docs-site/src/app/layout.tsx:17"}, "properties": {"repobilityId": "2720d11afedab429", "scanner": "scanner-primary", "fingerprint": "03f6517635b5260d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-39c11f3fb3688131", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/casa-nostra/src/app/layout.tsx:15"}, "properties": {"repobilityId": "6dad7f52afb2fdcb", "scanner": "scanner-primary", "fingerprint": "39c11f3fb3688131", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ecc8ef537b119dc2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/propostas/masterclass-bovichain/src/app/layout.tsx:15"}, "properties": {"repobilityId": "df7cc5c467cd7a2c", "scanner": "scanner-primary", "fingerprint": "ecc8ef537b119dc2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-67140363e3568db4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/motion-lab/src/app/layout.tsx:36"}, "properties": {"repobilityId": "910b3e495f6c0e7e", "scanner": "scanner-primary", "fingerprint": "67140363e3568db4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-09b5c91e32eed9de", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/app/layout.tsx:86"}, "properties": {"repobilityId": "c0c2a3988fe8adb9", "scanner": "scanner-primary", "fingerprint": "09b5c91e32eed9de", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eecb61776972828d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/la-rete/src/app/layout.tsx:47"}, "properties": {"repobilityId": "d86ec5c97fa10c50", "scanner": "scanner-primary", "fingerprint": "eecb61776972828d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-302a2440ba6d523e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/italia-2027/src/app/layout.tsx:18"}, "properties": {"repobilityId": "e2393d099b4fcf2b", "scanner": "scanner-primary", "fingerprint": "302a2440ba6d523e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/vanguarda/italia-2027/src/app/layout.tsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-17b6f2435f21f377", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/100-ideias/src/app/layout.tsx:18"}, "properties": {"repobilityId": "68e1129e4211d2ed", "scanner": "scanner-primary", "fingerprint": "17b6f2435f21f377", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/vanguarda/100-ideias/src/app/layout.tsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-dd6072e0656a2f04", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/vanguarda/mercados-globais/src/app/layout.tsx:18"}, "properties": {"repobilityId": "d7d3d56b5adf8725", "scanner": "scanner-primary", "fingerprint": "dd6072e0656a2f04", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/vanguarda/mercados-globais/src/app/layout.tsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-51dbaec428760063", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/docs-site/src/app/layout.tsx:17"}, "properties": {"repobilityId": "7829a788c476bebb", "scanner": "scanner-primary", "fingerprint": "51dbaec428760063", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs-site/src/app/layout.tsx"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-ce25c91b0889780e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/casa-nostra/src/app/layout.tsx:15"}, "properties": {"repobilityId": "d02b5d8f4e5433fb", "scanner": "scanner-primary", "fingerprint": "ce25c91b0889780e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/casa-nostra/src/app/layout.tsx"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-74b2e02ca802b068", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/propostas/masterclass-bovichain/src/app/layout.tsx:15"}, "properties": {"repobilityId": "eb628c7fad44576e", "scanner": "scanner-primary", "fingerprint": "74b2e02ca802b068", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/propostas/masterclass-bovichain/src/app/layout.tsx"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-ac4f52d1b4ee44e0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/motion-lab/src/app/layout.tsx:36"}, "properties": {"repobilityId": "7825bb89cff957b3", "scanner": "scanner-primary", "fingerprint": "ac4f52d1b4ee44e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/motion-lab/src/app/layout.tsx"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-57e094be178dba85", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/app/layout.tsx:86"}, "properties": {"repobilityId": "9e48a86129166999", "scanner": "scanner-primary", "fingerprint": "57e094be178dba85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/app/layout.tsx"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-e69c14080d7e9f42", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/la-rete/src/app/layout.tsx:47"}, "properties": {"repobilityId": "6d7edaa0d3cc6149", "scanner": "scanner-primary", "fingerprint": "e69c14080d7e9f42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/la-rete/src/app/layout.tsx"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-be10431d7bac2a16", "level": "note", "message": {"text": "Very large file: apps/docs-site/src/app/page.tsx (1471 lines)"}, "properties": {"repobilityId": "aaab808e5d382a3e", "scanner": "scanner-primary", "fingerprint": "be10431d7bac2a16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2202ee87445c6038", "level": "note", "message": {"text": "Very large file: apps/docs-site/src/content/brandSystemContent.ts (1362 lines)"}, "properties": {"repobilityId": "2d3ea3478847ff4c", "scanner": "scanner-primary", "fingerprint": "2202ee87445c6038", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dc98200274234990", "level": "note", "message": {"text": "Very large file: apps/ds-studio/src/content/brandSystemContent.ts (1323 lines)"}, "properties": {"repobilityId": "7a3bc0a2bb27baf0", "scanner": "scanner-primary", "fingerprint": "dc98200274234990", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "3333c2970c886ad0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8814818566dcbb8e", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "e323ff75fa1ad096", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "275c380dcae502c6", "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": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "22a1b18025e8f56a", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "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": "d9976fb4498c2032", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "f96b2288969c0549", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "0fcfdec7eb266e9f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "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-dc4fda432d769f9d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/docs-site/CLAUDE.md"}, "properties": {"repobilityId": "c899c792ef4cd270", "scanner": "scanner-primary", "fingerprint": "dc4fda432d769f9d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs-site/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-30fe95918c7b8670", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/bicofino-design-reviewer.md"}, "properties": {"repobilityId": "79f325603177a163", "scanner": "scanner-primary", "fingerprint": "30fe95918c7b8670", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/bicofino-design-reviewer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a12de46b0cc09c8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/references/content-quality.md"}, "properties": {"repobilityId": "8e31fbc1d68367d5", "scanner": "scanner-primary", "fingerprint": "0a12de46b0cc09c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/seo-geo-audit/references/content-quality.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f11ded5b745bcc2b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/content-audit.md"}, "properties": {"repobilityId": "c83b03ca9ba3a529", "scanner": "scanner-primary", "fingerprint": "f11ded5b745bcc2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/seo-geo-audit/workflows/content-audit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-20c8b0347962c0d3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/seo-geo-audit/workflows/technical-audit.md"}, "properties": {"repobilityId": "e04ca8cb87ce37b1", "scanner": "scanner-primary", "fingerprint": "20c8b0347962c0d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/seo-geo-audit/workflows/technical-audit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3db26be79e862b87", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/docs-site/src/components/dsfase1/GrafismoTecnico.tsx:118"}, "properties": {"repobilityId": "99b39ad936d28a75", "scanner": "scanner-primary", "fingerprint": "3db26be79e862b87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54698c639ba15fc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/docs-site/src/components/dsfase1/OneVibrant.tsx:93"}, "properties": {"repobilityId": "319c74379960df20", "scanner": "scanner-primary", "fingerprint": "54698c639ba15fc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f4d7764ccc4973d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/casa-nostra/scripts/backfill-organizations.mjs:2"}, "properties": {"repobilityId": "3abcdf3eb8773819", "scanner": "scanner-primary", "fingerprint": "7f4d7764ccc4973d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5299eacfd92d161d", "level": "note", "message": {"text": "Legacy-named symbol `0002_tags_v2` in apps/casa-nostra/db/seeds/seed-tags-v2.mjs:2"}, "properties": {"repobilityId": "143a2d54013e688c", "scanner": "scanner-primary", "fingerprint": "5299eacfd92d161d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-74745917fa0ab759", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/casa-nostra/db/seeds/seed-tags-v2.mjs:163"}, "properties": {"repobilityId": "1e9031c28325a9f3", "scanner": "scanner-primary", "fingerprint": "74745917fa0ab759", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd87a8cb3faf5507", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/motion-lab/src/app/experiments/07-blur-reveal/page.tsx:40"}, "properties": {"repobilityId": "39b90a767767634e", "scanner": "scanner-primary", "fingerprint": "bd87a8cb3faf5507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-404571680ed98de0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/next.config.ts:17"}, "properties": {"repobilityId": "db245e316960afa8", "scanner": "scanner-primary", "fingerprint": "404571680ed98de0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cc200ced34b4d6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/drive-atleta/scripts/create-athlete-folder.mjs:1"}, "properties": {"repobilityId": "484a5b3d0032c15c", "scanner": "scanner-primary", "fingerprint": "4cc200ced34b4d6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a92cf7e0a6ace0dd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/create-athlete-folder.mjs:18"}, "properties": {"repobilityId": "f5f32b0af4a800cc", "scanner": "scanner-primary", "fingerprint": "a92cf7e0a6ace0dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e2cd803516d900e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-hash.mjs:6"}, "properties": {"repobilityId": "c3f30729f8432661", "scanner": "scanner-primary", "fingerprint": "7e2cd803516d900e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-703272216df22e2e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/cleanup-test.mjs:10"}, "properties": {"repobilityId": "00c384a38c87045b", "scanner": "scanner-primary", "fingerprint": "703272216df22e2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-593401329b57a87a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/backfill-description.mjs:20"}, "properties": {"repobilityId": "d2507d34a0a59b31", "scanner": "scanner-primary", "fingerprint": "593401329b57a87a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1bc2925d87334492", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/drive-atleta/scripts/drive-setup.mjs:1"}, "properties": {"repobilityId": "83004a64042ff682", "scanner": "scanner-primary", "fingerprint": "1bc2925d87334492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14cdae7ac0fd07ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/drive-setup.mjs:13"}, "properties": {"repobilityId": "b1f183446efcb2ba", "scanner": "scanner-primary", "fingerprint": "14cdae7ac0fd07ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6a0a2e2dcf3e4e0b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/scripts/test-e2e.mjs:25"}, "properties": {"repobilityId": "fa63d9dbaa8f794e", "scanner": "scanner-primary", "fingerprint": "6a0a2e2dcf3e4e0b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b361b3b33e896e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/drive-atleta/src/proxy.ts:4"}, "properties": {"repobilityId": "0a56346478a64acd", "scanner": "scanner-primary", "fingerprint": "6b361b3b33e896e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5da0115feb99945b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/app/api/thumb/route.ts:33"}, "properties": {"repobilityId": "8dfb241e2e236a9d", "scanner": "scanner-primary", "fingerprint": "5da0115feb99945b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-111ac09de5ffc3e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/storage.ts:36"}, "properties": {"repobilityId": "a27ba67ebf7824c2", "scanner": "scanner-primary", "fingerprint": "111ac09de5ffc3e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d82e5b78c7a2d91e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/upload-client.ts:63"}, "properties": {"repobilityId": "ac75b02ed5882d3c", "scanner": "scanner-primary", "fingerprint": "d82e5b78c7a2d91e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d5b4d82a67186efd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/drive.ts:41"}, "properties": {"repobilityId": "b02a980ff1abcc0d", "scanner": "scanner-primary", "fingerprint": "d5b4d82a67186efd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e2a5568a6f88a525", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/drive-atleta/src/lib/google.ts:28"}, "properties": {"repobilityId": "5c4c689d0baf72f7", "scanner": "scanner-primary", "fingerprint": "e2a5568a6f88a525", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ccb90b773de4060", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/la-rete/src/app/consigliere/page.tsx:83"}, "properties": {"repobilityId": "05681cc3bd573c06", "scanner": "scanner-primary", "fingerprint": "9ccb90b773de4060", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}