{"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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "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-eadfe7c189cd3a2c", "name": "Insecure pattern 'weak_hash' in internal/pipeline/verify_test.go:453", "shortDescription": {"text": "Insecure pattern 'weak_hash' in internal/pipeline/verify_test.go:453"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd25d5cb78b69c93", "name": "Insecure pattern 'weak_hash' in cmd/sluice/verify.go:39", "shortDescription": {"text": "Insecure pattern 'weak_hash' in cmd/sluice/verify.go:39"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c403ad1f299deadc", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2741d3514b520364", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe82dc4c5a28d6b9", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7837bb4521f7e590", "name": "Very large file: internal/engines/mysql/ddl_emit.go (1389 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/ddl_emit.go (1389 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-5af0d53659f58ea1", "name": "Very large file: internal/engines/mysql/change_applier.go (1441 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/change_applier.go (1441 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-6126a369131d7e4d", "name": "Very large file: internal/engines/mysql/ddl_emit_test.go (1408 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/ddl_emit_test.go (1408 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-00117a60a9556b65", "name": "Very large file: internal/engines/mysql/cdc_vstream.go (1670 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/cdc_vstream.go (1670 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-39e5eb79ac6a7696", "name": "Very large file: internal/engines/mysql/cdc_vstream_test.go (1897 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/cdc_vstream_test.go (1897 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-7fef42d6d58a5f0a", "name": "Very large file: internal/engines/mysql/cdc_reader.go (1659 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/cdc_reader.go (1659 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-e3a5705d2281afb3", "name": "Very large file: internal/engines/mysql/cdc_vstream_snapshot.go (1954 lines)", "shortDescription": {"text": "Very large file: internal/engines/mysql/cdc_vstream_snapshot.go (1954 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-4295dd97f699250c", "name": "Very large file: internal/engines/postgres/extension_catalog.go (1246 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/extension_catalog.go (1246 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-fb18a338072f0cbf", "name": "Very large file: internal/engines/postgres/ddl_emit.go (1443 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/ddl_emit.go (1443 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-2356fe004e3a195a", "name": "Very large file: internal/engines/postgres/change_applier.go (2058 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/change_applier.go (2058 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-affbf112f651539d", "name": "Very large file: internal/engines/postgres/expr_translate_test.go (1839 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/expr_translate_test.go (1839 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-70eb711e599be97f", "name": "Very large file: internal/engines/postgres/ddl_emit_test.go (1596 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/ddl_emit_test.go (1596 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-1d9939b6c1d6a499", "name": "Very large file: internal/engines/postgres/schema_reader.go (2203 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/schema_reader.go (2203 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-8be2807a0d151cc9", "name": "Very large file: internal/engines/postgres/expr_translate.go (2210 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/expr_translate.go (2210 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-ed8410462d903c99", "name": "Very large file: internal/engines/postgres/cdc_reader.go (2256 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/cdc_reader.go (2256 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-069c5e1f13121f3f", "name": "Very large file: internal/engines/postgres/schema_writer.go (1452 lines)", "shortDescription": {"text": "Very large file: internal/engines/postgres/schema_writer.go (1452 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-ea76d347950c5f63", "name": "Very large file: internal/pipeline/migrate_parallel.go (1276 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/migrate_parallel.go (1276 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-885036e7dab4c9d3", "name": "Very large file: internal/pipeline/streamer.go (1267 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/streamer.go (1267 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-2425c2893c884f44", "name": "Very large file: internal/pipeline/backup.go (1706 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/backup.go (1706 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-6271d37b32c2011e", "name": "Very large file: internal/pipeline/stream.go (1618 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/stream.go (1618 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-508860c7b68c80c6", "name": "Very large file: internal/pipeline/add_table.go (1215 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/add_table.go (1215 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-06c5efeffd59f723", "name": "Very large file: internal/pipeline/migrate.go (1354 lines)", "shortDescription": {"text": "Very large file: internal/pipeline/migrate.go (1354 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-638f7aae93d72b3e", "name": "Very large file: internal/ir/interfaces.go (2160 lines)", "shortDescription": {"text": "Very large file: internal/ir/interfaces.go (2160 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-93bea9911e37e3cc", "name": "Very large file: cmd/sluice/backup.go (1255 lines)", "shortDescription": {"text": "Very large file: cmd/sluice/backup.go (1255 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-2bcbb7c335be6de1", "name": "Very large file: cmd/sluice/redact_flag_test.go (1490 lines)", "shortDescription": {"text": "Very large file: cmd/sluice/redact_flag_test.go (1490 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-ebb86958a60e48d2", "name": "Very large file: cmd/sluice/cli.go (1389 lines)", "shortDescription": {"text": "Very large file: cmd/sluice/cli.go (1389 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 471 placeholder/mock markers across 76 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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "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 tests. 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}}]}}, "automationDetails": {"id": "repobility/19861"}, "properties": {"repository": "sluicesync/sluice", "repoUrl": "https://github.com/sluicesync/sluice", "branch": "main"}, "results": [{"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"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-eadfe7c189cd3a2c", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in internal/pipeline/verify_test.go:453"}, "properties": {"repobilityId": "6275f81c0811ac7b", "scanner": "scanner-primary", "fingerprint": "eadfe7c189cd3a2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "internal/pipeline/verify_test.go"}, "region": {"startLine": 453}}}]}, {"ruleId": "scanner-dd25d5cb78b69c93", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in cmd/sluice/verify.go:39"}, "properties": {"repobilityId": "cda827e08a8de57a", "scanner": "scanner-primary", "fingerprint": "dd25d5cb78b69c93", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cmd/sluice/verify.go"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-c403ad1f299deadc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "af19fd88df74d0ee", "scanner": "scanner-primary", "fingerprint": "c403ad1f299deadc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fuzz-roundtrip.yml"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-c403ad1f299deadc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "af19fd88df74d0ee", "scanner": "scanner-primary", "fingerprint": "c403ad1f299deadc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fuzz-roundtrip.yml"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-2741d3514b520364", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "523ef22508d7825e", "scanner": "scanner-primary", "fingerprint": "2741d3514b520364", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-prebaked-images.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe82dc4c5a28d6b9", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "070ce4f7a42e0586", "scanner": "scanner-primary", "fingerprint": "fe82dc4c5a28d6b9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dependabot-automerge.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7837bb4521f7e590", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/ddl_emit.go (1389 lines)"}, "properties": {"repobilityId": "68492957b188d721", "scanner": "scanner-primary", "fingerprint": "7837bb4521f7e590", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5af0d53659f58ea1", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/change_applier.go (1441 lines)"}, "properties": {"repobilityId": "105ed4855692ec9d", "scanner": "scanner-primary", "fingerprint": "5af0d53659f58ea1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6126a369131d7e4d", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/ddl_emit_test.go (1408 lines)"}, "properties": {"repobilityId": "78c06d41c67002ba", "scanner": "scanner-primary", "fingerprint": "6126a369131d7e4d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00117a60a9556b65", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/cdc_vstream.go (1670 lines)"}, "properties": {"repobilityId": "532ce0601fdd81f5", "scanner": "scanner-primary", "fingerprint": "00117a60a9556b65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39e5eb79ac6a7696", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/cdc_vstream_test.go (1897 lines)"}, "properties": {"repobilityId": "0bf942d0d490b454", "scanner": "scanner-primary", "fingerprint": "39e5eb79ac6a7696", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7fef42d6d58a5f0a", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/cdc_reader.go (1659 lines)"}, "properties": {"repobilityId": "e53a74b6dc9bd03e", "scanner": "scanner-primary", "fingerprint": "7fef42d6d58a5f0a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e3a5705d2281afb3", "level": "note", "message": {"text": "Very large file: internal/engines/mysql/cdc_vstream_snapshot.go (1954 lines)"}, "properties": {"repobilityId": "83d307db7751d917", "scanner": "scanner-primary", "fingerprint": "e3a5705d2281afb3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4295dd97f699250c", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/extension_catalog.go (1246 lines)"}, "properties": {"repobilityId": "2dbd1b60445a7dfc", "scanner": "scanner-primary", "fingerprint": "4295dd97f699250c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb18a338072f0cbf", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/ddl_emit.go (1443 lines)"}, "properties": {"repobilityId": "4830033e69d7ad1e", "scanner": "scanner-primary", "fingerprint": "fb18a338072f0cbf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2356fe004e3a195a", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/change_applier.go (2058 lines)"}, "properties": {"repobilityId": "d20a736c3baa33a5", "scanner": "scanner-primary", "fingerprint": "2356fe004e3a195a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-affbf112f651539d", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/expr_translate_test.go (1839 lines)"}, "properties": {"repobilityId": "a86015f21a411dbf", "scanner": "scanner-primary", "fingerprint": "affbf112f651539d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70eb711e599be97f", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/ddl_emit_test.go (1596 lines)"}, "properties": {"repobilityId": "e220613306a3706e", "scanner": "scanner-primary", "fingerprint": "70eb711e599be97f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1d9939b6c1d6a499", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/schema_reader.go (2203 lines)"}, "properties": {"repobilityId": "0ea60ac77fe072df", "scanner": "scanner-primary", "fingerprint": "1d9939b6c1d6a499", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8be2807a0d151cc9", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/expr_translate.go (2210 lines)"}, "properties": {"repobilityId": "44a22f08bc9eb2cc", "scanner": "scanner-primary", "fingerprint": "8be2807a0d151cc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed8410462d903c99", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/cdc_reader.go (2256 lines)"}, "properties": {"repobilityId": "7e843c8b0dabb9b9", "scanner": "scanner-primary", "fingerprint": "ed8410462d903c99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-069c5e1f13121f3f", "level": "note", "message": {"text": "Very large file: internal/engines/postgres/schema_writer.go (1452 lines)"}, "properties": {"repobilityId": "aaae211b9ce9174e", "scanner": "scanner-primary", "fingerprint": "069c5e1f13121f3f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea76d347950c5f63", "level": "note", "message": {"text": "Very large file: internal/pipeline/migrate_parallel.go (1276 lines)"}, "properties": {"repobilityId": "b78e49407f18a84c", "scanner": "scanner-primary", "fingerprint": "ea76d347950c5f63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-885036e7dab4c9d3", "level": "note", "message": {"text": "Very large file: internal/pipeline/streamer.go (1267 lines)"}, "properties": {"repobilityId": "69e69eff65042c3d", "scanner": "scanner-primary", "fingerprint": "885036e7dab4c9d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2425c2893c884f44", "level": "note", "message": {"text": "Very large file: internal/pipeline/backup.go (1706 lines)"}, "properties": {"repobilityId": "4c51774a558a36e5", "scanner": "scanner-primary", "fingerprint": "2425c2893c884f44", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6271d37b32c2011e", "level": "note", "message": {"text": "Very large file: internal/pipeline/stream.go (1618 lines)"}, "properties": {"repobilityId": "8e2fcc4faf9bb972", "scanner": "scanner-primary", "fingerprint": "6271d37b32c2011e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-508860c7b68c80c6", "level": "note", "message": {"text": "Very large file: internal/pipeline/add_table.go (1215 lines)"}, "properties": {"repobilityId": "291c58730d81d181", "scanner": "scanner-primary", "fingerprint": "508860c7b68c80c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06c5efeffd59f723", "level": "note", "message": {"text": "Very large file: internal/pipeline/migrate.go (1354 lines)"}, "properties": {"repobilityId": "58375f097fbe8228", "scanner": "scanner-primary", "fingerprint": "06c5efeffd59f723", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-638f7aae93d72b3e", "level": "note", "message": {"text": "Very large file: internal/ir/interfaces.go (2160 lines)"}, "properties": {"repobilityId": "f19087da20af1a43", "scanner": "scanner-primary", "fingerprint": "638f7aae93d72b3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-93bea9911e37e3cc", "level": "note", "message": {"text": "Very large file: cmd/sluice/backup.go (1255 lines)"}, "properties": {"repobilityId": "67812392b273e10c", "scanner": "scanner-primary", "fingerprint": "93bea9911e37e3cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bcbb7c335be6de1", "level": "note", "message": {"text": "Very large file: cmd/sluice/redact_flag_test.go (1490 lines)"}, "properties": {"repobilityId": "b12055ea991dfeed", "scanner": "scanner-primary", "fingerprint": "2bcbb7c335be6de1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ebb86958a60e48d2", "level": "note", "message": {"text": "Very large file: cmd/sluice/cli.go (1389 lines)"}, "properties": {"repobilityId": "b712fbe85220781b", "scanner": "scanner-primary", "fingerprint": "ebb86958a60e48d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "e134a8002d3a6d60", "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": "475211dce88319ee", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "88f88b2da9222607", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "6fb4b642ea943e2d", "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": "f8a7f2f3013a9d35", "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": "e13d774f1ad749ac", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}]}]}