{"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-805390cbf591dda6", "name": "Possibly dead Python function: score", "shortDescription": {"text": "Possibly dead Python function: score"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85d0e758e3645ccc", "name": "Possibly dead Python function: state_db_sort_key", "shortDescription": {"text": "Possibly dead Python function: state_db_sort_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b1c1665cd4b6f0d", "name": "Possibly dead Python function: replace_match", "shortDescription": {"text": "Possibly dead Python function: replace_match"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55ba90d359a796a6", "name": "Stray `console.log` in TS/JS \u2014 docs/create-pptx.js:927", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/create-pptx.js:927"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76f94bb5fc737fd7", "name": "Runtime dotenv file present in repo: crates/backend/.env.production", "shortDescription": {"text": "Runtime dotenv file present in repo: crates/backend/.env.production"}, "fullDescription": {"text": "`crates/backend/.env.production` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15f2fac3f5a42f26", "name": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/index.html:819", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/index.html:819"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a93b7191b86866f", "name": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/static/local_media_player_bridge.js:52", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/static/local_media_player_bridge.js:52"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c37a34457c4120d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2025.html:13970", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2025.html:13970"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-390e5d4a7d5a0802", "name": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2024.html:12054", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2024.html:12054"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de53ac274e5b4ecf", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 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-37716d9c0a33ad5c", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 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-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 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-ad6701f0a8405e22", "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-53fc88643715fa71", "name": "Very large file: crates/llm-access-kiro/src/anthropic/stream/context.rs (2858 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-kiro/src/anthropic/stream/context.rs (2858 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-807c15d9646c5d2c", "name": "Very large file: crates/llm-access-kiro/src/anthropic/converter/mod.rs (3996 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-kiro/src/anthropic/converter/mod.rs (3996 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-376377269150ac56", "name": "Very large file: crates/llm-access-kiro/src/cache_sim/prefix_tree.rs (1421 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-kiro/src/cache_sim/prefix_tree.rs (1421 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-7af8cf70b72c8c3e", "name": "Very large file: crates/backend/src/handlers.rs (5893 lines)", "shortDescription": {"text": "Very large file: crates/backend/src/handlers.rs (5893 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-de482fd1ab80daba", "name": "Very large file: crates/backend/src/gpt2api_rs.rs (1894 lines)", "shortDescription": {"text": "Very large file: crates/backend/src/gpt2api_rs.rs (1894 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-eb0a12ee89a63169", "name": "Very large file: crates/llm-access-codex/src/response.rs (1414 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-codex/src/response.rs (1414 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-f45b292e689b2790", "name": "Very large file: crates/llm-access-codex/src/anthropic_messages.rs (1868 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-codex/src/anthropic_messages.rs (1868 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-4cbdab0599839964", "name": "Very large file: crates/llm-access-codex/src/request/mod.rs (1568 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-codex/src/request/mod.rs (1568 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-58271b5b6c629e74", "name": "Very large file: crates/llm-access-store/src/usage_catalog.rs (1380 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-store/src/usage_catalog.rs (1380 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-14dc4e58d8732913", "name": "Very large file: crates/llm-access-store/src/postgres.rs (2050 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-store/src/postgres.rs (2050 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-8a42af43c0451d11", "name": "Very large file: crates/llm-access-store/src/duckdb/tests.rs (3140 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-store/src/duckdb/tests.rs (3140 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-1f1486c7b1f3e9a6", "name": "Very large file: crates/llm-access-store/src/postgres/keys.rs (1086 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-store/src/postgres/keys.rs (1086 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-1749f039ea273420", "name": "Very large file: crates/llm-access-store/src/postgres/kiro_account.rs (1398 lines)", "shortDescription": {"text": "Very large file: crates/llm-access-store/src/postgres/kiro_account.rs (1398 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-72bc35ee4f012e50", "name": "Very large file: crates/frontend/src/api.rs (12028 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/api.rs (12028 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-2f7804b87b1bc447", "name": "Very large file: crates/frontend/src/pages/admin_llm_gateway.rs (10089 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/admin_llm_gateway.rs (10089 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-ace799bd968f270b", "name": "Very large file: crates/frontend/src/pages/llm_access.rs (1516 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/llm_access.rs (1516 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-f8c81edefa43c445", "name": "Very large file: crates/frontend/src/pages/article_detail.rs (3885 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/article_detail.rs (3885 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-63ba3ef387ec46d5", "name": "Very large file: crates/frontend/src/pages/admin_kiro_gateway.rs (6297 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/admin_kiro_gateway.rs (6297 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-854357436837da85", "name": "Very large file: crates/frontend/src/pages/admin.rs (3999 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/admin.rs (3999 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-ecb2becf691de5f5", "name": "Very large file: crates/frontend/src/pages/admin_gpt2api_rs.rs (4197 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/admin_gpt2api_rs.rs (4197 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-4e5897758d46ba45", "name": "Very large file: crates/frontend/src/pages/search.rs (3202 lines)", "shortDescription": {"text": "Very large file: crates/frontend/src/pages/search.rs (3202 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-e70aafc5e2e8a5eb", "name": "Very large file: crates/llm-access/src/runtime.rs (3138 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/runtime.rs (3138 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-c26b712a9a0adc74", "name": "Very large file: crates/llm-access/src/admin.rs (8170 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/admin.rs (8170 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-f959da34b2489767", "name": "Very large file: crates/llm-access/src/lib.rs (1894 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/lib.rs (1894 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-1aa6fbb1f222b84a", "name": "Very large file: crates/llm-access/src/codex_status.rs (1920 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/codex_status.rs (1920 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-4fc0c2191ee8a8fc", "name": "Very large file: crates/llm-access/src/usage_worker.rs (1394 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/usage_worker.rs (1394 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-219ae7acb8bcd4a1", "name": "Very large file: crates/llm-access/src/provider/kiro_dispatch.rs (2089 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/provider/kiro_dispatch.rs (2089 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-928b70a5ad4a9d28", "name": "Very large file: crates/llm-access/src/provider/tests.rs (8269 lines)", "shortDescription": {"text": "Very large file: crates/llm-access/src/provider/tests.rs (8269 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-90cd451faeeed29b", "name": "Very large file: crates/store/src/lancedb_api.rs (4426 lines)", "shortDescription": {"text": "Very large file: crates/store/src/lancedb_api.rs (4426 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-1fb64d6c48eb1042", "name": "Very large file: crates/store/src/comments_store.rs (1808 lines)", "shortDescription": {"text": "Very large file: crates/store/src/comments_store.rs (1808 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-f2b37cccb0b735d4", "name": "Very large file: crates/store/src/music_store.rs (2792 lines)", "shortDescription": {"text": "Very large file: crates/store/src/music_store.rs (2792 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-28fe04ba9575ef22", "name": "Very large file: crates/store/src/llm_gateway_store/schema.rs (1256 lines)", "shortDescription": {"text": "Very large file: crates/store/src/llm_gateway_store/schema.rs (1256 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-701a853ba7fd18bb", "name": "Very large file: crates/store/src/llm_gateway_store/codec.rs (2002 lines)", "shortDescription": {"text": "Very large file: crates/store/src/llm_gateway_store/codec.rs (2002 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-11d77862923d2376", "name": "Very large file: crates/store/src/llm_gateway_store/mod.rs (3426 lines)", "shortDescription": {"text": "Very large file: crates/store/src/llm_gateway_store/mod.rs (3426 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-77069564e3526d57", "name": "Very large file: crates/cli/src/commands/db_manage.rs (3078 lines)", "shortDescription": {"text": "Very large file: crates/cli/src/commands/db_manage.rs (3078 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": "9 test file(s) for 374 source file(s) (ratio 0.02). 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 67 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 785 placeholder/mock markers across 35 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-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. 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-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.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-2ce3c29e39939951", "name": "Agent authority lacks a verifier contract: skills/codex-session-history/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/codex-session-history/SKILL.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-7a4b6ba9a302fa49", "name": "Agent authority lacks a verifier contract: skills/keria-plus-pickup/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/keria-plus-pickup/SKILL.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-82909900d9fe4c6e", "name": "Agent authority lacks a verifier contract: skills/kiro-usage-day-report/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/kiro-usage-day-report/SKILL.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-d434fc4d31f354e1", "name": "Agent authority lacks a verifier contract: skills/submitting-llm-gateway-account-batches/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/submitting-llm-gateway-account-batches/SKILL.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-9c79353686fff2e2", "name": "Commented-code block (8 lines) in scripts/ci_affected.py:42", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/ci_affected.py:42"}, "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-f9d36b83f4127be0", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/ci_affected.py:62", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/ci_affected.py:62"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9b86686e4843e6a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 crates/frontend/gpt2api-app/src/api.ts:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 crates/frontend/gpt2api-app/src/api.ts:27"}, "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-8e047ab7af03962f", "name": "7 env vars used in code but missing from .env.example", "shortDescription": {"text": "7 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BASE_SHA`, `CI_AFFECTED_DRY_RUN`, `CODEX_SQLITE_HOME`, `CRATES`, `GITHUB_OUTPUT`, `HEAD_SHA`, `MODE`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23882"}, "properties": {"repository": "acking-you/static_flow", "repoUrl": "https://github.com/acking-you/static_flow", "branch": "main"}, "results": [{"ruleId": "scanner-805390cbf591dda6", "level": "note", "message": {"text": "Possibly dead Python function: score"}, "properties": {"repobilityId": "379227b163d3203e", "scanner": "scanner-primary", "fingerprint": "805390cbf591dda6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/kiro-local-account-importer/scripts/import_kiro_accounts.py:332"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-85d0e758e3645ccc", "level": "note", "message": {"text": "Possibly dead Python function: state_db_sort_key"}, "properties": {"repobilityId": "93234ba0a1f0c535", "scanner": "scanner-primary", "fingerprint": "85d0e758e3645ccc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/codex-session-history/scripts/codex_session_history.py:264"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b1c1665cd4b6f0d", "level": "note", "message": {"text": "Possibly dead Python function: replace_match"}, "properties": {"repobilityId": "2a03a347407fff24", "scanner": "scanner-primary", "fingerprint": "9b1c1665cd4b6f0d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/codex-session-history/scripts/codex_session_history.py:668"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55ba90d359a796a6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/create-pptx.js:927"}, "properties": {"repobilityId": "5a0582bb3ca16011", "scanner": "scanner-primary", "fingerprint": "55ba90d359a796a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-76f94bb5fc737fd7", "level": "error", "message": {"text": "Runtime dotenv file present in repo: crates/backend/.env.production"}, "properties": {"repobilityId": "0b27d13d94f03824", "scanner": "scanner-primary", "fingerprint": "76f94bb5fc737fd7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/backend/.env.production"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15f2fac3f5a42f26", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/index.html:819"}, "properties": {"repobilityId": "9d1fe1e9973ae4ae", "scanner": "scanner-primary", "fingerprint": "15f2fac3f5a42f26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/frontend/index.html"}, "region": {"startLine": 819}}}]}, {"ruleId": "scanner-6a93b7191b86866f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/static/local_media_player_bridge.js:52"}, "properties": {"repobilityId": "90d76e7ee10e0c38", "scanner": "scanner-primary", "fingerprint": "6a93b7191b86866f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/frontend/static/local_media_player_bridge.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-c37a34457c4120d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2025.html:13970"}, "properties": {"repobilityId": "4f26e9473044e019", "scanner": "scanner-primary", "fingerprint": "c37a34457c4120d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/frontend/standalone/github-wrapped-2025.html"}, "region": {"startLine": 13970}}}]}, {"ruleId": "scanner-390e5d4a7d5a0802", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/frontend/standalone/github-wrapped-2024.html:12054"}, "properties": {"repobilityId": "e2153485b4b3a53d", "scanner": "scanner-primary", "fingerprint": "390e5d4a7d5a0802", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/frontend/standalone/github-wrapped-2024.html"}, "region": {"startLine": 12054}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "02600186fc092bd4", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ead6a2c2bfe167b", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-37716d9c0a33ad5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "abfb5752158cf655", "scanner": "scanner-primary", "fingerprint": "37716d9c0a33ad5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae83c03bfc0a4d34", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e761758ea56e585", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae83c03bfc0a4d34", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e761758ea56e585", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4e4788e80d4929ef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "27f534a8bb5bcb23", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e330ec8cc3d14001", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ab7ccd611a3fc28e", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53fc88643715fa71", "level": "note", "message": {"text": "Very large file: crates/llm-access-kiro/src/anthropic/stream/context.rs (2858 lines)"}, "properties": {"repobilityId": "69ccae933f11c5d0", "scanner": "scanner-primary", "fingerprint": "53fc88643715fa71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-807c15d9646c5d2c", "level": "note", "message": {"text": "Very large file: crates/llm-access-kiro/src/anthropic/converter/mod.rs (3996 lines)"}, "properties": {"repobilityId": "f2e93ded939c880e", "scanner": "scanner-primary", "fingerprint": "807c15d9646c5d2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-376377269150ac56", "level": "note", "message": {"text": "Very large file: crates/llm-access-kiro/src/cache_sim/prefix_tree.rs (1421 lines)"}, "properties": {"repobilityId": "edea7cddb4a77f8f", "scanner": "scanner-primary", "fingerprint": "376377269150ac56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7af8cf70b72c8c3e", "level": "note", "message": {"text": "Very large file: crates/backend/src/handlers.rs (5893 lines)"}, "properties": {"repobilityId": "99408c687a599154", "scanner": "scanner-primary", "fingerprint": "7af8cf70b72c8c3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de482fd1ab80daba", "level": "note", "message": {"text": "Very large file: crates/backend/src/gpt2api_rs.rs (1894 lines)"}, "properties": {"repobilityId": "80a9efc4218807c3", "scanner": "scanner-primary", "fingerprint": "de482fd1ab80daba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb0a12ee89a63169", "level": "note", "message": {"text": "Very large file: crates/llm-access-codex/src/response.rs (1414 lines)"}, "properties": {"repobilityId": "8a25bb10f2a99388", "scanner": "scanner-primary", "fingerprint": "eb0a12ee89a63169", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f45b292e689b2790", "level": "note", "message": {"text": "Very large file: crates/llm-access-codex/src/anthropic_messages.rs (1868 lines)"}, "properties": {"repobilityId": "ab6d4e7dfb17a005", "scanner": "scanner-primary", "fingerprint": "f45b292e689b2790", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4cbdab0599839964", "level": "note", "message": {"text": "Very large file: crates/llm-access-codex/src/request/mod.rs (1568 lines)"}, "properties": {"repobilityId": "d46be0f37a2195fa", "scanner": "scanner-primary", "fingerprint": "4cbdab0599839964", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-58271b5b6c629e74", "level": "note", "message": {"text": "Very large file: crates/llm-access-store/src/usage_catalog.rs (1380 lines)"}, "properties": {"repobilityId": "56a8078a780fb04d", "scanner": "scanner-primary", "fingerprint": "58271b5b6c629e74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14dc4e58d8732913", "level": "note", "message": {"text": "Very large file: crates/llm-access-store/src/postgres.rs (2050 lines)"}, "properties": {"repobilityId": "feb159b030dabd3c", "scanner": "scanner-primary", "fingerprint": "14dc4e58d8732913", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8a42af43c0451d11", "level": "note", "message": {"text": "Very large file: crates/llm-access-store/src/duckdb/tests.rs (3140 lines)"}, "properties": {"repobilityId": "36401481e505b580", "scanner": "scanner-primary", "fingerprint": "8a42af43c0451d11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1f1486c7b1f3e9a6", "level": "note", "message": {"text": "Very large file: crates/llm-access-store/src/postgres/keys.rs (1086 lines)"}, "properties": {"repobilityId": "785028c13e3f2cf5", "scanner": "scanner-primary", "fingerprint": "1f1486c7b1f3e9a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1749f039ea273420", "level": "note", "message": {"text": "Very large file: crates/llm-access-store/src/postgres/kiro_account.rs (1398 lines)"}, "properties": {"repobilityId": "7990625db4c607ba", "scanner": "scanner-primary", "fingerprint": "1749f039ea273420", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-72bc35ee4f012e50", "level": "note", "message": {"text": "Very large file: crates/frontend/src/api.rs (12028 lines)"}, "properties": {"repobilityId": "030b634b6a559dd5", "scanner": "scanner-primary", "fingerprint": "72bc35ee4f012e50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f7804b87b1bc447", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/admin_llm_gateway.rs (10089 lines)"}, "properties": {"repobilityId": "f4a37817b495920b", "scanner": "scanner-primary", "fingerprint": "2f7804b87b1bc447", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ace799bd968f270b", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/llm_access.rs (1516 lines)"}, "properties": {"repobilityId": "67d49dbf63dbed7f", "scanner": "scanner-primary", "fingerprint": "ace799bd968f270b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8c81edefa43c445", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/article_detail.rs (3885 lines)"}, "properties": {"repobilityId": "28192a09bd1c7f08", "scanner": "scanner-primary", "fingerprint": "f8c81edefa43c445", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-63ba3ef387ec46d5", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/admin_kiro_gateway.rs (6297 lines)"}, "properties": {"repobilityId": "7651a9232512e433", "scanner": "scanner-primary", "fingerprint": "63ba3ef387ec46d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-854357436837da85", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/admin.rs (3999 lines)"}, "properties": {"repobilityId": "5c2ae0be0a1a9709", "scanner": "scanner-primary", "fingerprint": "854357436837da85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ecb2becf691de5f5", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/admin_gpt2api_rs.rs (4197 lines)"}, "properties": {"repobilityId": "dd034b82f57df6de", "scanner": "scanner-primary", "fingerprint": "ecb2becf691de5f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e5897758d46ba45", "level": "note", "message": {"text": "Very large file: crates/frontend/src/pages/search.rs (3202 lines)"}, "properties": {"repobilityId": "d572a27fcefd4983", "scanner": "scanner-primary", "fingerprint": "4e5897758d46ba45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e70aafc5e2e8a5eb", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/runtime.rs (3138 lines)"}, "properties": {"repobilityId": "b6eef2ac8a0b64b4", "scanner": "scanner-primary", "fingerprint": "e70aafc5e2e8a5eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c26b712a9a0adc74", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/admin.rs (8170 lines)"}, "properties": {"repobilityId": "b01de874fda389c7", "scanner": "scanner-primary", "fingerprint": "c26b712a9a0adc74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f959da34b2489767", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/lib.rs (1894 lines)"}, "properties": {"repobilityId": "e91bd1f16343dd13", "scanner": "scanner-primary", "fingerprint": "f959da34b2489767", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1aa6fbb1f222b84a", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/codex_status.rs (1920 lines)"}, "properties": {"repobilityId": "27e1feb4165c0542", "scanner": "scanner-primary", "fingerprint": "1aa6fbb1f222b84a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fc0c2191ee8a8fc", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/usage_worker.rs (1394 lines)"}, "properties": {"repobilityId": "a0b40e400ea66ee0", "scanner": "scanner-primary", "fingerprint": "4fc0c2191ee8a8fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-219ae7acb8bcd4a1", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/provider/kiro_dispatch.rs (2089 lines)"}, "properties": {"repobilityId": "b5ccc1c62b05c196", "scanner": "scanner-primary", "fingerprint": "219ae7acb8bcd4a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-928b70a5ad4a9d28", "level": "note", "message": {"text": "Very large file: crates/llm-access/src/provider/tests.rs (8269 lines)"}, "properties": {"repobilityId": "9da84a10db4bab82", "scanner": "scanner-primary", "fingerprint": "928b70a5ad4a9d28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-90cd451faeeed29b", "level": "note", "message": {"text": "Very large file: crates/store/src/lancedb_api.rs (4426 lines)"}, "properties": {"repobilityId": "5a01c7689e797642", "scanner": "scanner-primary", "fingerprint": "90cd451faeeed29b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1fb64d6c48eb1042", "level": "note", "message": {"text": "Very large file: crates/store/src/comments_store.rs (1808 lines)"}, "properties": {"repobilityId": "8a2c38656d537d26", "scanner": "scanner-primary", "fingerprint": "1fb64d6c48eb1042", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2b37cccb0b735d4", "level": "note", "message": {"text": "Very large file: crates/store/src/music_store.rs (2792 lines)"}, "properties": {"repobilityId": "5a9e5d62d327291b", "scanner": "scanner-primary", "fingerprint": "f2b37cccb0b735d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-28fe04ba9575ef22", "level": "note", "message": {"text": "Very large file: crates/store/src/llm_gateway_store/schema.rs (1256 lines)"}, "properties": {"repobilityId": "5a6529ddaa814172", "scanner": "scanner-primary", "fingerprint": "28fe04ba9575ef22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-701a853ba7fd18bb", "level": "note", "message": {"text": "Very large file: crates/store/src/llm_gateway_store/codec.rs (2002 lines)"}, "properties": {"repobilityId": "58b9045ea45dee98", "scanner": "scanner-primary", "fingerprint": "701a853ba7fd18bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-11d77862923d2376", "level": "note", "message": {"text": "Very large file: crates/store/src/llm_gateway_store/mod.rs (3426 lines)"}, "properties": {"repobilityId": "10473b37deb8c4bf", "scanner": "scanner-primary", "fingerprint": "11d77862923d2376", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77069564e3526d57", "level": "note", "message": {"text": "Very large file: crates/cli/src/commands/db_manage.rs (3078 lines)"}, "properties": {"repobilityId": "bced254a0193b38a", "scanner": "scanner-primary", "fingerprint": "77069564e3526d57", "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": "0491a6b0e1b218e2", "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": "89b8c1b1f79ada4c", "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": "412293a9ff94959d", "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": "86bdae4c1782a1d2", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a80d8cb50d6b85b7", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ce3c29e39939951", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/codex-session-history/SKILL.md"}, "properties": {"repobilityId": "4d903ce031fff000", "scanner": "scanner-primary", "fingerprint": "2ce3c29e39939951", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/codex-session-history/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a4b6ba9a302fa49", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/keria-plus-pickup/SKILL.md"}, "properties": {"repobilityId": "fab8fc07899f8e2c", "scanner": "scanner-primary", "fingerprint": "7a4b6ba9a302fa49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/keria-plus-pickup/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-82909900d9fe4c6e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/kiro-usage-day-report/SKILL.md"}, "properties": {"repobilityId": "24eac14d51848134", "scanner": "scanner-primary", "fingerprint": "82909900d9fe4c6e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/kiro-usage-day-report/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d434fc4d31f354e1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/submitting-llm-gateway-account-batches/SKILL.md"}, "properties": {"repobilityId": "431a0555f47c3d09", "scanner": "scanner-primary", "fingerprint": "d434fc4d31f354e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/submitting-llm-gateway-account-batches/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c79353686fff2e2", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/ci_affected.py:42"}, "properties": {"repobilityId": "3d2c4ef8a6819ff3", "scanner": "scanner-primary", "fingerprint": "9c79353686fff2e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9d36b83f4127be0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/ci_affected.py:62"}, "properties": {"repobilityId": "73ff63555d0ef2d9", "scanner": "scanner-primary", "fingerprint": "f9d36b83f4127be0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9b86686e4843e6a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 crates/frontend/gpt2api-app/src/api.ts:27"}, "properties": {"repobilityId": "1766ee9b28737e69", "scanner": "scanner-primary", "fingerprint": "b9b86686e4843e6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e047ab7af03962f", "level": "note", "message": {"text": "7 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "5a0455f6498c27ad", "scanner": "scanner-primary", "fingerprint": "8e047ab7af03962f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}