{"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": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: tgmorton/multi-model-foundry-subject-rearing", "shortDescription": {"text": "Foundry mined blueprint gap alignment: tgmorton/multi-model-foundry-subject-rearing"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: tgmorton/multi-model-foundry-subject-rearing\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: tgmorton/multi-model-foundry-subject-rearing\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nRepo: tgmorton/multi-model-foundry-subject-rearing\nIssue/PR number: 1\nGraph consistency label: supported_by_verifi"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "scanner-b8ef4e46e3745266", "name": "Possibly dead Python function: safe_collect", "shortDescription": {"text": "Possibly dead Python function: safe_collect"}, "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-b2946edc22154441", "name": "Possibly dead Python function: evaluate_by_domain", "shortDescription": {"text": "Possibly dead Python function: evaluate_by_domain"}, "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-b662bec36950c085", "name": "Possibly dead Python function: compare_experiments", "shortDescription": {"text": "Possibly dead Python function: compare_experiments"}, "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-7beeb994bbd05fa4", "name": "Possibly dead Python function: export_for_r", "shortDescription": {"text": "Possibly dead Python function: export_for_r"}, "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-62005423f9af7cd8", "name": "Possibly dead Python function: pll_surprisal", "shortDescription": {"text": "Possibly dead Python function: pll_surprisal"}, "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-ba24ea2ad2f1536c", "name": "Possibly dead Python function: batch_calculate", "shortDescription": {"text": "Possibly dead Python function: batch_calculate"}, "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-5097515b44157570", "name": "Possibly dead Python function: calculate_perplexity", "shortDescription": {"text": "Possibly dead Python function: calculate_perplexity"}, "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-0bc21437bf39fadc", "name": "Possibly dead Python function: normalize_text_column", "shortDescription": {"text": "Possibly dead Python function: normalize_text_column"}, "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-9294bd1640f2fcda", "name": "Possibly dead Python function: normalize_text_column", "shortDescription": {"text": "Possibly dead Python function: normalize_text_column"}, "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-544628f2a3c28005", "name": "Possibly dead Python function: sample_lines_token", "shortDescription": {"text": "Possibly dead Python function: sample_lines_token"}, "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-8617029226a683e0", "name": "Possibly dead Python function: sample_lines_line_removal", "shortDescription": {"text": "Possibly dead Python function: sample_lines_line_removal"}, "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-ebb87ae14c8183ab", "name": "Possibly dead Python function: extract_utterances_from_chat", "shortDescription": {"text": "Possibly dead Python function: extract_utterances_from_chat"}, "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-27880113863ad75d", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "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-70d48397f5f17dc0", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "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-a1c3c87d73ee1672", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "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-d8bf2eb804e5ca03", "name": "Possibly dead Python function: query", "shortDescription": {"text": "Possibly dead Python function: query"}, "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-4353895dc00b6956", "name": "Possibly dead Python function: scrape", "shortDescription": {"text": "Possibly dead Python function: scrape"}, "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-0e25f738fb7c9da1", "name": "Possibly dead Python function: estimate_dataset_size", "shortDescription": {"text": "Possibly dead Python function: estimate_dataset_size"}, "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-91f185a1f6326900", "name": "Possibly dead Python function: run_data_preprocessing", "shortDescription": {"text": "Possibly dead Python function: run_data_preprocessing"}, "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-4e99144c0d21cbdc", "name": "Possibly dead Python function: run_tokenizer_training", "shortDescription": {"text": "Possibly dead Python function: run_tokenizer_training"}, "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-3a959c6f65c544dc", "name": "Possibly dead Python function: run_dataset_tokenization", "shortDescription": {"text": "Possibly dead Python function: run_dataset_tokenization"}, "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-9d7056f662d65f9d", "name": "Possibly dead Python function: run_data_chunking", "shortDescription": {"text": "Possibly dead Python function: run_data_chunking"}, "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-41947e0128ac1a52", "name": "Possibly dead Python function: run_model_training", "shortDescription": {"text": "Possibly dead Python function: run_model_training"}, "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-a6739ce2ec5eca15", "name": "Possibly dead Python function: validate_enrichment", "shortDescription": {"text": "Possibly dead Python function: validate_enrichment"}, "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-c0e633c5fcbd3c7c", "name": "Possibly dead Python function: identity_doc", "shortDescription": {"text": "Possibly dead Python function: identity_doc"}, "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-2bb3bf7e33969cdd", "name": "Possibly dead Python function: validate_identity", "shortDescription": {"text": "Possibly dead Python function: validate_identity"}, "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-622c32d3904cf34c", "name": "Possibly dead Python function: impoverish_case_en_doc", "shortDescription": {"text": "Possibly dead Python function: impoverish_case_en_doc"}, "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-33cd5fa9a519266f", "name": "Possibly dead Python function: validate_impoverish_case_en", "shortDescription": {"text": "Possibly dead Python function: validate_impoverish_case_en"}, "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-bdbeba1eac2da2f0", "name": "Possibly dead Python function: impoverish_case_it_doc", "shortDescription": {"text": "Possibly dead Python function: impoverish_case_it_doc"}, "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-a5d35cce9b55f272", "name": "Stray `console.log` in TS/JS \u2014 scripts/build_en_coding_guide.js:532", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_en_coding_guide.js:532"}, "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-266b67df3f87b83e", "name": "Stray `console.log` in TS/JS \u2014 scripts/build_es_coding_guide.js:462", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_es_coding_guide.js:462"}, "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-2cce64297415fbd0", "name": "Privileged port 24 in use", "shortDescription": {"text": "Privileged port 24 in use"}, "fullDescription": {"text": "Port 24 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0f3e622c690f6ca", "name": "Privileged port 48 in use", "shortDescription": {"text": "Privileged port 48 in use"}, "fullDescription": {"text": "Port 48 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15251bd73f177f39", "name": "Privileged port 12 in use", "shortDescription": {"text": "Privileged port 12 in use"}, "fullDescription": {"text": "Port 12 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9cc4c957d55468c1", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-38608aedefcd3683", "name": "Privileged port 16 in use", "shortDescription": {"text": "Privileged port 16 in use"}, "fullDescription": {"text": "Port 16 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efbb7087e229974e", "name": "Privileged port 87 in use", "shortDescription": {"text": "Privileged port 87 in use"}, "fullDescription": {"text": "Port 87 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c667674d2bfda8eb", "name": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb4587c83227a78b", "name": "Dockerfile runs as root: annotation/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: annotation/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-18608bf2bbeb7c90", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "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-e30e2cdc87c1196b", "name": "Insecure pattern 'direct_innerhtml_assignment' in review/sweep_dashboard.html:1715", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/sweep_dashboard.html:1715"}, "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-c7b9214d12ee9652", "name": "Insecure pattern 'direct_innerhtml_assignment' in review/static/index.html:620", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/static/index.html:620"}, "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-f3a9f7707e910c78", "name": "Insecure pattern 'direct_innerhtml_assignment' in review/static/reviewed.html:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/static/reviewed.html:134"}, "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-28097584b85f5ede", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/ablation_review.html:202", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/ablation_review.html:202"}, "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-e97bb096ee8cfbf7", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/case_impoverishment_review.html:150", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/case_impoverishment_review.html:150"}, "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-c5997ecc33453de8", "name": "Possible secret in evaluation/stimuli/transform_stimuli.py", "shortDescription": {"text": "Possible secret in evaluation/stimuli/transform_stimuli.py"}, "fullDescription": {"text": "Detected pattern matching openai_or_anthropic_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-314eb5f67cd5ff68", "name": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/index.html:493", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/index.html:493"}, "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-8a42331093d4d198", "name": "Insecure pattern 'local_storage_auth_token' in annotation/static/index.html:443", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/index.html:443"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18b36021e1957622", "name": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/admin.html:239", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/admin.html:239"}, "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-03a4de8537f8535e", "name": "Insecure pattern 'local_storage_auth_token' in annotation/static/admin.html:207", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/admin.html:207"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c53b629fa4d2561", "name": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/adjudication.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/adjudication.html:288"}, "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-f5504ab22d14657f", "name": "Insecure pattern 'local_storage_auth_token' in annotation/static/adjudication.html:265", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/adjudication.html:265"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de39ac9e5cbf2f3d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 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-3345532e49ae8640", "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-5f761745677480bb", "name": "Very large file: analysis/scripts/reporting/generate_interactive_report.py (1883 lines)", "shortDescription": {"text": "Very large file: analysis/scripts/reporting/generate_interactive_report.py (1883 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-cbd76595b4782e65", "name": "Very large file: analysis/corpus_descriptives/corpus_analysis.py (2257 lines)", "shortDescription": {"text": "Very large file: analysis/corpus_descriptives/corpus_analysis.py (2257 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-d1fa0b5376f8321b", "name": "Very large file: analysis/corpus_descriptives/tests/test_annotators.py (1673 lines)", "shortDescription": {"text": "Very large file: analysis/corpus_descriptives/tests/test_annotators.py (1673 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1263 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 17 placeholder/mock markers across 9 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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c17033008e1fbec1", "name": "Legacy-named symbol `eval_v2` in evaluation/cache.py:17", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in evaluation/cache.py:17"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c00968e5290bb1e", "name": "Commented-code block (5 lines) in evaluation/cache.py:322", "shortDescription": {"text": "Commented-code block (5 lines) in evaluation/cache.py:322"}, "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-b116a215b523168c", "name": "Legacy-named symbol `output_v2` in evaluation/tests/test_smoke_e2e.py:35", "shortDescription": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_smoke_e2e.py:35"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-626dfbaf2d1275e1", "name": "Commented-code block (5 lines) in evaluation/tests/test_batched_vs_sequential.py:180", "shortDescription": {"text": "Commented-code block (5 lines) in evaluation/tests/test_batched_vs_sequential.py:180"}, "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-f03e0d759c5423f6", "name": "Legacy-named symbol `output_v2` in evaluation/tests/test_golden.py:30", "shortDescription": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_golden.py:30"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce006cd12944b58e", "name": "Legacy-named symbol `output_v2` in evaluation/tests/test_parquet_output.py:9", "shortDescription": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_parquet_output.py:9"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01d709cc1f21ccf4", "name": "Legacy-named symbol `past_copy` in evaluation/core/batched_surprisal.py:260", "shortDescription": {"text": "Legacy-named symbol `past_copy` in evaluation/core/batched_surprisal.py:260"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47b606730c0846f1", "name": "Legacy-named symbol `list_objects_v2` in scripts/plot_baseline_overt_preference.py:101", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/plot_baseline_overt_preference.py:101"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-781e077d9b519bae", "name": "Legacy-named symbol `eval_v2` in scripts/eval_v2_smoke.py:2", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_smoke.py:2"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29efab0917399610", "name": "Legacy-named symbol `eval_v2` in scripts/eval_v2_bench.py:2", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_bench.py:2"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e775b840f7aa96b7", "name": "Commented-code block (6 lines) in scripts/validate_ablation.py:201", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/validate_ablation.py:201"}, "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-a4593df0291e121e", "name": "Commented-code block (5 lines) in scripts/build_spanish_corpus.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build_spanish_corpus.py:58"}, "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-3baf2416bf0739bc", "name": "Legacy-named symbol `eval_v2` in scripts/eval_v2_pack.py:19", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_pack.py:19"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7373d506ae3b9b7e", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/eval_v2_pack.py:102", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/eval_v2_pack.py:102"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-6e17861036949f43", "name": "Commented-code block (15 lines) in scripts/launch_production_training.py:59", "shortDescription": {"text": "Commented-code block (15 lines) in scripts/launch_production_training.py:59"}, "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-5c55ed1263ea1131", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_production_training.py:48", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_production_training.py:48"}, "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-c39bb80c468d09d8", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/watch_production_training.py:36", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/watch_production_training.py:36"}, "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-1f06d895a19e30f9", "name": "Legacy-named symbol `null_subj_v2` in scripts/pull_eval_results.py:25", "shortDescription": {"text": "Legacy-named symbol `null_subj_v2` in scripts/pull_eval_results.py:25"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6e8dc22e8060496", "name": "Legacy-named symbol `list_objects_v2` in scripts/fleet_status.py:60", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/fleet_status.py:60"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4147305ad4cd96df", "name": "Commented-code block (6 lines) in scripts/fleet_status.py:337", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/fleet_status.py:337"}, "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-bee2749709c24f3e", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/fleet_status.py:96", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fleet_status.py:96"}, "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-a55cf4b9847f4e31", "name": "Legacy-named symbol `null_subj_v2` in scripts/eval_v2_cell.py:53", "shortDescription": {"text": "Legacy-named symbol `null_subj_v2` in scripts/eval_v2_cell.py:53"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3213e7482577f64f", "name": "Commented-code block (7 lines) in scripts/eval_v2_cell.py:305", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/eval_v2_cell.py:305"}, "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-f34a02e5f8dee7e8", "name": "Legacy-named symbol `eval_v2` in scripts/launch_cell_evals.py:7", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/launch_cell_evals.py:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a375677a0c83f93c", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_cell_evals.py:73", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_cell_evals.py:73"}, "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-d754a3156009530d", "name": "Commented-code block (10 lines) in scripts/production_agent.py:81", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/production_agent.py:81"}, "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-89c4a5c327a3b85f", "name": "Legacy-named symbol `eval_v2` in scripts/sync_eval_results_s3.py:11", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/sync_eval_results_s3.py:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91a70d65b6824638", "name": "Legacy-named symbol `null_subj_v2` in scripts/eval_status.py:6", "shortDescription": {"text": "Legacy-named symbol `null_subj_v2` in scripts/eval_status.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d4e9a533bbd0007", "name": "Legacy-named symbol `eval_v2` in scripts/check_cell_eval_outputs.py:13", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in scripts/check_cell_eval_outputs.py:13"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cbbd61c6aa67d546", "name": "Commented-code block (7 lines) in scripts/sweep_agent_lm.py:211", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/sweep_agent_lm.py:211"}, "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-1fd294940e4223f6", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/_deprecated/run_experiment.py:68", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_deprecated/run_experiment.py:68"}, "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-e3e4ec8ea786e728", "name": "Commented-code block (6 lines) in preprocessing/config.py:52", "shortDescription": {"text": "Commented-code block (6 lines) in preprocessing/config.py:52"}, "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-f12a95449e1f26ac", "name": "Commented-code block (5 lines) in preprocessing/base.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in preprocessing/base.py:80"}, "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-21707483eb4d18e9", "name": "Commented-code block (6 lines) in preprocessing/annotate.py:121", "shortDescription": {"text": "Commented-code block (6 lines) in preprocessing/annotate.py:121"}, "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-e6fd34f15e163a5b", "name": "Legacy-named symbol `test_get_file_tier_counts_returns_copy` in preprocessing/tests/test_remove_expletive_sentences.py:5", "shortDescription": {"text": "Legacy-named symbol `test_get_file_tier_counts_returns_copy` in preprocessing/tests/test_remove_expletive_sentences.py:590"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c74fef2697ccd29", "name": "Commented-code block (5 lines) in preprocessing/tests/test_new_ablations_integration.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in preprocessing/tests/test_new_ablations_integration.py:38"}, "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-9a324946d2cd0b55", "name": "Legacy-named symbol `ablated_legacy` in preprocessing/tests/test_compose_corpus.py:98", "shortDescription": {"text": "Legacy-named symbol `ablated_legacy` in preprocessing/tests/test_compose_corpus.py:98"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b6643863f6be6b0", "name": "Commented-code block (9 lines) in preprocessing/ablations/enrich_verbal_morphology.py:67", "shortDescription": {"text": "Commented-code block (9 lines) in preprocessing/ablations/enrich_verbal_morphology.py:67"}, "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-b8a32679d36c03f3", "name": "Commented-code block (5 lines) in preprocessing/ablations/identity.py:98", "shortDescription": {"text": "Commented-code block (5 lines) in preprocessing/ablations/identity.py:98"}, "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-b703ca17565a52e6", "name": "Commented-code block (7 lines) in preprocessing/ablations/impoverish_case.py:214", "shortDescription": {"text": "Commented-code block (7 lines) in preprocessing/ablations/impoverish_case.py:214"}, "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-8eeb5230b9005b93", "name": "Commented-code block (7 lines) in preprocessing/ablations/remove_expletive_sentences.py:448", "shortDescription": {"text": "Commented-code block (7 lines) in preprocessing/ablations/remove_expletive_sentences.py:448"}, "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-7e762581db0117a1", "name": "Commented-code block (6 lines) in preprocessing/ablations/template.py:51", "shortDescription": {"text": "Commented-code block (6 lines) in preprocessing/ablations/template.py:51"}, "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-f884fdbd26b63748", "name": "Commented-code block (8 lines) in preprocessing/ablations/lemmatize_verbs.py:20", "shortDescription": {"text": "Commented-code block (8 lines) in preprocessing/ablations/lemmatize_verbs.py:20"}, "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-0fba21859c41accf", "name": "Commented-code block (6 lines) in analysis/corpus_descriptives/pipeline.py:548", "shortDescription": {"text": "Commented-code block (6 lines) in analysis/corpus_descriptives/pipeline.py:548"}, "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-b608a5006315ad90", "name": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/tests/test_annotators.py:122", "shortDescription": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/tests/test_annotators.py:122"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92cba79215b23710", "name": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/clause_structure.py:209", "shortDescription": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/clause_structure.py:209"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a419ac47d8775c0", "name": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/argument_structure.py:141", "shortDescription": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/argument_structure.py:141"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fde93ca44f9c7ea1", "name": "Legacy-named symbol `eval_v2` in analysis/eval_v2/compute_slor.py:14", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in analysis/eval_v2/compute_slor.py:14"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a33cbfd8dee3ca51", "name": "Legacy-named symbol `eval_v2` in analysis/eval_v2/scil_style_figures.py:10", "shortDescription": {"text": "Legacy-named symbol `eval_v2` in analysis/eval_v2/scil_style_figures.py:10"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69cc2bbe1471ffd0", "name": "Legacy-named symbol `list_objects_v2` in model_foundry/registry.py:593", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in model_foundry/registry.py:593"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee9abf3ed8e8c449", "name": "Commented-code block (7 lines) in model_foundry/registry.py:209", "shortDescription": {"text": "Commented-code block (7 lines) in model_foundry/registry.py:209"}, "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-423afef201a8bb26", "name": "Commented-code block (7 lines) in model_foundry/config.py:349", "shortDescription": {"text": "Commented-code block (7 lines) in model_foundry/config.py:349"}, "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-a8b3e3f9c46ec340", "name": "Commented-code block (7 lines) in model_foundry/checkpoint_schedule.py:160", "shortDescription": {"text": "Commented-code block (7 lines) in model_foundry/checkpoint_schedule.py:160"}, "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-2d51aa229c73b177", "name": "Commented-code block (6 lines) in model_foundry/wandb_init.py:101", "shortDescription": {"text": "Commented-code block (6 lines) in model_foundry/wandb_init.py:101"}, "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-be2fea8bb549a23b", "name": "Commented-code block (5 lines) in model_foundry/data.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in model_foundry/data.py:57"}, "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-3b19f415920973ad", "name": "Commented-code block (7 lines) in model_foundry/trainer.py:152", "shortDescription": {"text": "Commented-code block (7 lines) in model_foundry/trainer.py:152"}, "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-e6735f9d02fd9ba7", "name": "Network/subprocess call without timeout or try/except \u2014 model_foundry/trainer.py:449", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 model_foundry/trainer.py:449"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-11d2427866226fc7", "name": "Commented-code block (9 lines) in model_foundry/tokenizer/tokenizer_factory.py:71", "shortDescription": {"text": "Commented-code block (9 lines) in model_foundry/tokenizer/tokenizer_factory.py:71"}, "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-9fe309adb5836793", "name": "Commented-code block (5 lines) in model_foundry/tokenizer/tokenize_dataset.py:241", "shortDescription": {"text": "Commented-code block (5 lines) in model_foundry/tokenizer/tokenize_dataset.py:241"}, "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-46311d979fd59613", "name": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/mamba.py:423", "shortDescription": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/mamba.py:423"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-04d34615c7403eea", "name": "Commented-code block (6 lines) in model_foundry/architectures/mamba.py:373", "shortDescription": {"text": "Commented-code block (6 lines) in model_foundry/architectures/mamba.py:373"}, "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-8374110759ebd206", "name": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/rnn.py:305", "shortDescription": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/rnn.py:305"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2cd3cba1b7dd01ea", "name": "Commented-code block (9 lines) in model_foundry/architectures/rnn.py:174", "shortDescription": {"text": "Commented-code block (9 lines) in model_foundry/architectures/rnn.py:174"}, "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-9a5fe992bf38c810", "name": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/utils.py:124", "shortDescription": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/utils.py:124"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f52ebd57db853c7", "name": "Commented-code block (5 lines) in model_foundry/training/loop.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in model_foundry/training/loop.py:20"}, "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-c8f1fc5847a467c7", "name": "Commented-code block (5 lines) in model_foundry/training/checkpointing.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in model_foundry/training/checkpointing.py:41"}, "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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nevaluation/evaluators/blimp_evaluator.py:evaluate_all, evaluation/runners/threaded_blimp_evaluator.py:evaluate_all\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/eval_v2_cell.py:model_factory, scripts/eval_v2_cell.py:model_factory, scripts/eval_v2_cell.py:model_factory\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npreprocessing/remove_expletives.py:get_spacy_device, preprocessing/remove_subject_pronominals.py:get_spacy_device, preprocessing/remove_articles.py:get_spacy_device, preprocessing/impoverish_determiners.py:get_spacy_device\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddbae098fb3ce8ab", "name": "FastAPI PUT `save_note` without auth dependency \u2014 review/server.py:105", "shortDescription": {"text": "FastAPI PUT `save_note` without auth dependency \u2014 review/server.py:105"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75d182a65da6c11c", "name": "Unused endpoint: GET /api/metadata", "shortDescription": {"text": "Unused endpoint: GET /api/metadata"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/metadata` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e20fbb4f4fd10cf", "name": "Unused endpoint: GET /api/sentences", "shortDescription": {"text": "Unused endpoint: GET /api/sentences"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/sentences` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7cc00232c06a4ab1", "name": "Unused endpoint: GET /api/sentences/{sentence_id}", "shortDescription": {"text": "Unused endpoint: GET /api/sentences/{sentence_id}"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/sentences/{sentence_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e790b5fda31682a5", "name": "Unused endpoint: PUT /api/notes/{sentence_id}", "shortDescription": {"text": "Unused endpoint: PUT /api/notes/{sentence_id}"}, "fullDescription": {"text": "`review/server.py` declares `PUT /api/notes/{sentence_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e7de700c4a5bf48d", "name": "Unused endpoint: GET /api/notes", "shortDescription": {"text": "Unused endpoint: GET /api/notes"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/notes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9680c22cee1a9872", "name": "Unused endpoint: GET /api/notes/enriched", "shortDescription": {"text": "Unused endpoint: GET /api/notes/enriched"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/notes/enriched` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f25f43e7fdcbad9d", "name": "Unused endpoint: GET /api/notes/export", "shortDescription": {"text": "Unused endpoint: GET /api/notes/export"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/notes/export` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96191249a569b815", "name": "Unused endpoint: GET /api/schematics", "shortDescription": {"text": "Unused endpoint: GET /api/schematics"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/schematics` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c191fb3484f16dc", "name": "Unused endpoint: GET /api/schematics/{feature}", "shortDescription": {"text": "Unused endpoint: GET /api/schematics/{feature}"}, "fullDescription": {"text": "`review/server.py` declares `GET /api/schematics/{feature}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`review/server.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba23703127eb019f", "name": "Unused endpoint: GET /reviewed", "shortDescription": {"text": "Unused endpoint: GET /reviewed"}, "fullDescription": {"text": "`review/server.py` declares `GET /reviewed` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd55aa0818a7c897", "name": "Unused endpoint: POST /api/auth/login", "shortDescription": {"text": "Unused endpoint: POST /api/auth/login"}, "fullDescription": {"text": "`annotation/server.py` declares `POST /api/auth/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee4aa5ddab88c9dc", "name": "Unused endpoint: GET /api/auth/me", "shortDescription": {"text": "Unused endpoint: GET /api/auth/me"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/auth/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b6c9c3b717869a8d", "name": "Unused endpoint: GET /api/stimuli", "shortDescription": {"text": "Unused endpoint: GET /api/stimuli"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/stimuli` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0772f9d6eabd2ae4", "name": "Unused endpoint: GET /api/stimuli/starred", "shortDescription": {"text": "Unused endpoint: GET /api/stimuli/starred"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/stimuli/starred` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9993171ec15ede51", "name": "Unused endpoint: GET /api/stimuli/{stimulus_id}", "shortDescription": {"text": "Unused endpoint: GET /api/stimuli/{stimulus_id}"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/stimuli/{stimulus_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb387229c8d105ee", "name": "Unused endpoint: POST /api/stimuli/load", "shortDescription": {"text": "Unused endpoint: POST /api/stimuli/load"}, "fullDescription": {"text": "`annotation/server.py` declares `POST /api/stimuli/load` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-71fb14440de76b43", "name": "Unused endpoint: GET /api/pronouns", "shortDescription": {"text": "Unused endpoint: GET /api/pronouns"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/pronouns` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56624e5f06d42d9b", "name": "Unused endpoint: PUT /api/annotations/{stimulus_id}", "shortDescription": {"text": "Unused endpoint: PUT /api/annotations/{stimulus_id}"}, "fullDescription": {"text": "`annotation/server.py` declares `PUT /api/annotations/{stimulus_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-898981a946094c69", "name": "Unused endpoint: GET /api/annotations/progress", "shortDescription": {"text": "Unused endpoint: GET /api/annotations/progress"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/annotations/progress` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51126ca6e5138048", "name": "Unused endpoint: GET /api/annotations/next-unannotated", "shortDescription": {"text": "Unused endpoint: GET /api/annotations/next-unannotated"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/annotations/next-unannotated` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33e4f1156cb48a39", "name": "Unused endpoint: GET /api/agreement/status", "shortDescription": {"text": "Unused endpoint: GET /api/agreement/status"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/agreement/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-244d92f4ed53d906", "name": "Unused endpoint: GET /api/agreement/compute", "shortDescription": {"text": "Unused endpoint: GET /api/agreement/compute"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/agreement/compute` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-80d6407fdd729d44", "name": "Unused endpoint: GET /api/agreement/export", "shortDescription": {"text": "Unused endpoint: GET /api/agreement/export"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/agreement/export` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d28c006976c8a54", "name": "Unused endpoint: GET /api/adjudication/queue", "shortDescription": {"text": "Unused endpoint: GET /api/adjudication/queue"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/adjudication/queue` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29bf44a8c54de8aa", "name": "Unused endpoint: GET /api/adjudication/progress", "shortDescription": {"text": "Unused endpoint: GET /api/adjudication/progress"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/adjudication/progress` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b977c751ea4a58b", "name": "Unused endpoint: GET /api/adjudication/{stimulus_id}", "shortDescription": {"text": "Unused endpoint: GET /api/adjudication/{stimulus_id}"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/adjudication/{stimulus_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-090e523a7d335d6d", "name": "Unused endpoint: PUT /api/adjudication/{stimulus_id}", "shortDescription": {"text": "Unused endpoint: PUT /api/adjudication/{stimulus_id}"}, "fullDescription": {"text": "`annotation/server.py` declares `PUT /api/adjudication/{stimulus_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dd02f90a9ec38a72", "name": "Unused endpoint: GET /api/export/gold", "shortDescription": {"text": "Unused endpoint: GET /api/export/gold"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/export/gold` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a190826aa479e435", "name": "Unused endpoint: GET /api/export/raw", "shortDescription": {"text": "Unused endpoint: GET /api/export/raw"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/export/raw` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4d87f54d62a1386", "name": "Unused endpoint: GET /api/admin/users", "shortDescription": {"text": "Unused endpoint: GET /api/admin/users"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /api/admin/users` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-953ec1a0ee6df50d", "name": "Unused endpoint: GET /admin", "shortDescription": {"text": "Unused endpoint: GET /admin"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /admin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-526bea43a6f2c0b9", "name": "Unused endpoint: GET /adjudication", "shortDescription": {"text": "Unused endpoint: GET /adjudication"}, "fullDescription": {"text": "`annotation/server.py` declares `GET /adjudication` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21052"}, "properties": {"repository": "tgmorton/multi-model-foundry-subject-rearing", "repoUrl": "https://github.com/tgmorton/multi-model-foundry-subject-rearing", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: tgmorton/multi-model-foundry-subject-rearing"}, "properties": {"repobilityId": 450022, "scanner": "foundry_dataset", "fingerprint": "b21a34d660cef604320b2d9033f9e4b821dc3290900aeaaf7b4866bfc03808dc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "docs_or_claims": 1, "source_or_other": 99, "api_integration_gap": 1, "security_or_secrets": 1, "partial blueprint fit": 1, "verification_or_tests": 2, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 144, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 100, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 117, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 100, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tgmorton/multi-model-foundry-subject-rearing#1", "issue_number": "1", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "tgmorton/multi-model-foundry-subject-rearing", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-8a449765d526f9e3", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 4, "source_or_other": 396}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: tgmorton/multi-model-foundry-subject-rearing\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: tgmorton/multi-model-foundry-subject-rearing\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tgmorton/multi-model-foundry-subject-rearing#1\nRepo: tgmorton/multi-model-foundry-subject-rearing\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 117\nEdges: 144\nNode types: {'pr_file': 100, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 100, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'source_or_other': 99, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'docs_or_claims': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'security_or_secrets': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tgmorton/multi-model-foundry-subject-rearing", "source_id": "graph-query-motif_query-9cf311ed42243ce2", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tgmorton/multi-model-foundry-subject-rearing", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "scanner-b8ef4e46e3745266", "level": "note", "message": {"text": "Possibly dead Python function: safe_collect"}, "properties": {"repobilityId": "bfae7804a05d3523", "scanner": "scanner-primary", "fingerprint": "b8ef4e46e3745266", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review/serialization.py:42"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b2946edc22154441", "level": "note", "message": {"text": "Possibly dead Python function: evaluate_by_domain"}, "properties": {"repobilityId": "706142ef495d3a41", "scanner": "scanner-primary", "fingerprint": "b2946edc22154441", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/evaluators/perplexity_evaluator.py:239"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b662bec36950c085", "level": "note", "message": {"text": "Possibly dead Python function: compare_experiments"}, "properties": {"repobilityId": "a18eb1f7548233d3", "scanner": "scanner-primary", "fingerprint": "b662bec36950c085", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/core/result_aggregator.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7beeb994bbd05fa4", "level": "note", "message": {"text": "Possibly dead Python function: export_for_r"}, "properties": {"repobilityId": "037100398ddb4804", "scanner": "scanner-primary", "fingerprint": "7beeb994bbd05fa4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/core/result_aggregator.py:258"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62005423f9af7cd8", "level": "note", "message": {"text": "Possibly dead Python function: pll_surprisal"}, "properties": {"repobilityId": "bc264101d217b1f1", "scanner": "scanner-primary", "fingerprint": "62005423f9af7cd8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/core/pll_surprisal.py:69"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba24ea2ad2f1536c", "level": "note", "message": {"text": "Possibly dead Python function: batch_calculate"}, "properties": {"repobilityId": "7c15aa8828d4f3df", "scanner": "scanner-primary", "fingerprint": "ba24ea2ad2f1536c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/core/surprisal_calculator.py:188"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5097515b44157570", "level": "note", "message": {"text": "Possibly dead Python function: calculate_perplexity"}, "properties": {"repobilityId": "6c2b77fee61a6f6a", "scanner": "scanner-primary", "fingerprint": "5097515b44157570", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/core/surprisal_calculator.py:266"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0bc21437bf39fadc", "level": "note", "message": {"text": "Possibly dead Python function: normalize_text_column"}, "properties": {"repobilityId": "2c712ea684d5fabe", "scanner": "scanner-primary", "fingerprint": "0bc21437bf39fadc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/stimuli/normalize_simple.py:4"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9294bd1640f2fcda", "level": "note", "message": {"text": "Possibly dead Python function: normalize_text_column"}, "properties": {"repobilityId": "2c712ea684d5fabe", "scanner": "scanner-primary", "fingerprint": "9294bd1640f2fcda", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/stimuli/normalize_text.py:4"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-544628f2a3c28005", "level": "note", "message": {"text": "Possibly dead Python function: sample_lines_token"}, "properties": {"repobilityId": "bc85b85c7af3fc9e", "scanner": "scanner-primary", "fingerprint": "544628f2a3c28005", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate_ablation.py:87"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8617029226a683e0", "level": "note", "message": {"text": "Possibly dead Python function: sample_lines_line_removal"}, "properties": {"repobilityId": "1cd34144c697a4d9", "scanner": "scanner-primary", "fingerprint": "8617029226a683e0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate_ablation.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ebb87ae14c8183ab", "level": "note", "message": {"text": "Possibly dead Python function: extract_utterances_from_chat"}, "properties": {"repobilityId": "3ea5ece4ae31db9d", "scanner": "scanner-primary", "fingerprint": "ebb87ae14c8183ab", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_spanish_corpus.py:127"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27880113863ad75d", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "27880113863ad75d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_spanish_corpus.py:512"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70d48397f5f17dc0", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "70d48397f5f17dc0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_spanish_corpus.py:515"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1c3c87d73ee1672", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "a1c3c87d73ee1672", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_spanish_corpus.py:518"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8bf2eb804e5ca03", "level": "note", "message": {"text": "Possibly dead Python function: query"}, "properties": {"repobilityId": "3189ecdfeec4a4de", "scanner": "scanner-primary", "fingerprint": "d8bf2eb804e5ca03", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fleet_status.py:180"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4353895dc00b6956", "level": "note", "message": {"text": "Possibly dead Python function: scrape"}, "properties": {"repobilityId": "ce3c0ca6e88401e0", "scanner": "scanner-primary", "fingerprint": "4353895dc00b6956", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fleet_status.py:280"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e25f738fb7c9da1", "level": "note", "message": {"text": "Possibly dead Python function: estimate_dataset_size"}, "properties": {"repobilityId": "f46dedc9f0f8b1d3", "scanner": "scanner-primary", "fingerprint": "0e25f738fb7c9da1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_checkpoint_schedule.py:51"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91f185a1f6326900", "level": "note", "message": {"text": "Possibly dead Python function: run_data_preprocessing"}, "properties": {"repobilityId": "e5ff002353794033", "scanner": "scanner-primary", "fingerprint": "91f185a1f6326900", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/run_experiment.py:53"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e99144c0d21cbdc", "level": "note", "message": {"text": "Possibly dead Python function: run_tokenizer_training"}, "properties": {"repobilityId": "50a12c13e1f8e180", "scanner": "scanner-primary", "fingerprint": "4e99144c0d21cbdc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/run_experiment.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a959c6f65c544dc", "level": "note", "message": {"text": "Possibly dead Python function: run_dataset_tokenization"}, "properties": {"repobilityId": "4b9ddc6b535148c2", "scanner": "scanner-primary", "fingerprint": "3a959c6f65c544dc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/run_experiment.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d7056f662d65f9d", "level": "note", "message": {"text": "Possibly dead Python function: run_data_chunking"}, "properties": {"repobilityId": "44248263939d0947", "scanner": "scanner-primary", "fingerprint": "9d7056f662d65f9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/run_experiment.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41947e0128ac1a52", "level": "note", "message": {"text": "Possibly dead Python function: run_model_training"}, "properties": {"repobilityId": "3b2758ff574f6671", "scanner": "scanner-primary", "fingerprint": "41947e0128ac1a52", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/run_experiment.py:164"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a6739ce2ec5eca15", "level": "note", "message": {"text": "Possibly dead Python function: validate_enrichment"}, "properties": {"repobilityId": "98664e03a97ee686", "scanner": "scanner-primary", "fingerprint": "a6739ce2ec5eca15", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/enrich_verbal_morphology.py:396"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c0e633c5fcbd3c7c", "level": "note", "message": {"text": "Possibly dead Python function: identity_doc"}, "properties": {"repobilityId": "35606d95f1f3726c", "scanner": "scanner-primary", "fingerprint": "c0e633c5fcbd3c7c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/identity.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2bb3bf7e33969cdd", "level": "note", "message": {"text": "Possibly dead Python function: validate_identity"}, "properties": {"repobilityId": "f43596ec476d05e7", "scanner": "scanner-primary", "fingerprint": "2bb3bf7e33969cdd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/identity.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-622c32d3904cf34c", "level": "note", "message": {"text": "Possibly dead Python function: impoverish_case_en_doc"}, "properties": {"repobilityId": "54d150627cc7029a", "scanner": "scanner-primary", "fingerprint": "622c32d3904cf34c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/impoverish_case.py:281"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33cd5fa9a519266f", "level": "note", "message": {"text": "Possibly dead Python function: validate_impoverish_case_en"}, "properties": {"repobilityId": "11d3dc31b96ab4f3", "scanner": "scanner-primary", "fingerprint": "33cd5fa9a519266f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/impoverish_case.py:286"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bdbeba1eac2da2f0", "level": "note", "message": {"text": "Possibly dead Python function: impoverish_case_it_doc"}, "properties": {"repobilityId": "173c0ef6b8129268", "scanner": "scanner-primary", "fingerprint": "bdbeba1eac2da2f0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preprocessing/ablations/impoverish_case.py:309"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5d35cce9b55f272", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_en_coding_guide.js:532"}, "properties": {"repobilityId": "0c4359582ced0584", "scanner": "scanner-primary", "fingerprint": "a5d35cce9b55f272", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-266b67df3f87b83e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_es_coding_guide.js:462"}, "properties": {"repobilityId": "e36ef549914dec20", "scanner": "scanner-primary", "fingerprint": "266b67df3f87b83e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2cce64297415fbd0", "level": "warning", "message": {"text": "Privileged port 24 in use"}, "properties": {"repobilityId": "a6356ba91a17fcb8", "scanner": "scanner-primary", "fingerprint": "2cce64297415fbd0", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ssrde/train.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0f3e622c690f6ca", "level": "warning", "message": {"text": "Privileged port 48 in use"}, "properties": {"repobilityId": "6a483602fa277896", "scanner": "scanner-primary", "fingerprint": "b0f3e622c690f6ca", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ssrde/train.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15251bd73f177f39", "level": "warning", "message": {"text": "Privileged port 12 in use"}, "properties": {"repobilityId": "65e7eefa33f2def4", "scanner": "scanner-primary", "fingerprint": "15251bd73f177f39", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/p6000/run_phase_slurm.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9cc4c957d55468c1", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "9cc4c957d55468c1", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_deprecated/p6000/test.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-38608aedefcd3683", "level": "warning", "message": {"text": "Privileged port 16 in use"}, "properties": {"repobilityId": "d31009168c502ace", "scanner": "scanner-primary", "fingerprint": "38608aedefcd3683", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "configs/sweeps/baselines/lstm_es_10m.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efbb7087e229974e", "level": "warning", "message": {"text": "Privileged port 87 in use"}, "properties": {"repobilityId": "316512be817ff75b", "scanner": "scanner-primary", "fingerprint": "efbb7087e229974e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "configs/sweeps/baselines/lstm_es_10m.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c667674d2bfda8eb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04"}, "properties": {"repobilityId": "04c462e47f53d7c1", "scanner": "scanner-primary", "fingerprint": "c667674d2bfda8eb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-bb4587c83227a78b", "level": "warning", "message": {"text": "Dockerfile runs as root: annotation/Dockerfile"}, "properties": {"repobilityId": "ebb101f237451e64", "scanner": "scanner-primary", "fingerprint": "bb4587c83227a78b", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-18608bf2bbeb7c90", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "6aefd7e94651f72b", "scanner": "scanner-primary", "fingerprint": "18608bf2bbeb7c90", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-e30e2cdc87c1196b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/sweep_dashboard.html:1715"}, "properties": {"repobilityId": "e9affdc7984e418d", "scanner": "scanner-primary", "fingerprint": "e30e2cdc87c1196b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review/sweep_dashboard.html"}, "region": {"startLine": 1715}}}]}, {"ruleId": "scanner-c7b9214d12ee9652", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/static/index.html:620"}, "properties": {"repobilityId": "f0e2220a7736c640", "scanner": "scanner-primary", "fingerprint": "c7b9214d12ee9652", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review/static/index.html"}, "region": {"startLine": 620}}}]}, {"ruleId": "scanner-f3a9f7707e910c78", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review/static/reviewed.html:134"}, "properties": {"repobilityId": "f0a27581f0cecdc1", "scanner": "scanner-primary", "fingerprint": "f3a9f7707e910c78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review/static/reviewed.html"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-28097584b85f5ede", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/ablation_review.html:202"}, "properties": {"repobilityId": "103401a7273edf32", "scanner": "scanner-primary", "fingerprint": "28097584b85f5ede", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/archive/validation/ablation_review.html"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-e97bb096ee8cfbf7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/validation/case_impoverishment_review.html:150"}, "properties": {"repobilityId": "92a4543fd6e9bfc0", "scanner": "scanner-primary", "fingerprint": "e97bb096ee8cfbf7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/archive/validation/case_impoverishment_review.html"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-c5997ecc33453de8", "level": "error", "message": {"text": "Possible secret in evaluation/stimuli/transform_stimuli.py"}, "properties": {"repobilityId": "b177a12cfc2e066b", "scanner": "scanner-primary", "fingerprint": "c5997ecc33453de8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/stimuli/transform_stimuli.py"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-c5997ecc33453de8", "level": "error", "message": {"text": "Possible secret in evaluation/stimuli/transform_stimuli.py"}, "properties": {"repobilityId": "105ebc169a4a39ca", "scanner": "scanner-primary", "fingerprint": "c5997ecc33453de8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "evaluation/stimuli/transform_stimuli.py"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-314eb5f67cd5ff68", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/index.html:493"}, "properties": {"repobilityId": "e26108d5bc75ec00", "scanner": "scanner-primary", "fingerprint": "314eb5f67cd5ff68", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/index.html"}, "region": {"startLine": 493}}}]}, {"ruleId": "scanner-8a42331093d4d198", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/index.html:443"}, "properties": {"repobilityId": "85d30d4ea8db227e", "scanner": "scanner-primary", "fingerprint": "8a42331093d4d198", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/index.html"}, "region": {"startLine": 443}}}]}, {"ruleId": "scanner-18b36021e1957622", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/admin.html:239"}, "properties": {"repobilityId": "29ec29935e4b449c", "scanner": "scanner-primary", "fingerprint": "18b36021e1957622", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/admin.html"}, "region": {"startLine": 239}}}]}, {"ruleId": "scanner-03a4de8537f8535e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/admin.html:207"}, "properties": {"repobilityId": "0047a7c324d6db0f", "scanner": "scanner-primary", "fingerprint": "03a4de8537f8535e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/admin.html"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-2c53b629fa4d2561", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in annotation/static/adjudication.html:288"}, "properties": {"repobilityId": "01abd29e11d619b7", "scanner": "scanner-primary", "fingerprint": "2c53b629fa4d2561", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/adjudication.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-f5504ab22d14657f", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in annotation/static/adjudication.html:265"}, "properties": {"repobilityId": "7d7d6899c8175d8d", "scanner": "scanner-primary", "fingerprint": "f5504ab22d14657f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "annotation/static/adjudication.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-de39ac9e5cbf2f3d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b891545b77fff438", "scanner": "scanner-primary", "fingerprint": "de39ac9e5cbf2f3d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-docs.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-3345532e49ae8640", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "32c4cca348173c51", "scanner": "scanner-primary", "fingerprint": "3345532e49ae8640", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-docs.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f761745677480bb", "level": "note", "message": {"text": "Very large file: analysis/scripts/reporting/generate_interactive_report.py (1883 lines)"}, "properties": {"repobilityId": "68cd553ff55a22ad", "scanner": "scanner-primary", "fingerprint": "5f761745677480bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cbd76595b4782e65", "level": "note", "message": {"text": "Very large file: analysis/corpus_descriptives/corpus_analysis.py (2257 lines)"}, "properties": {"repobilityId": "333de2f652bccf2f", "scanner": "scanner-primary", "fingerprint": "cbd76595b4782e65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1fa0b5376f8321b", "level": "note", "message": {"text": "Very large file: analysis/corpus_descriptives/tests/test_annotators.py (1673 lines)"}, "properties": {"repobilityId": "9bdde1860607f0b3", "scanner": "scanner-primary", "fingerprint": "d1fa0b5376f8321b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "d99ce72cf0f149af", "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": "3e5a0c181d229127", "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": "875edf42a75f0ac1", "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": "45bf186b345baa18", "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": "d42ffef9416f9204", "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": "518fabc92977116b", "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": "35910bdb1404150d", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-c17033008e1fbec1", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in evaluation/cache.py:17"}, "properties": {"repobilityId": "c095aec00bc0748f", "scanner": "scanner-primary", "fingerprint": "c17033008e1fbec1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c00968e5290bb1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in evaluation/cache.py:322"}, "properties": {"repobilityId": "431dca47e7bc1d3e", "scanner": "scanner-primary", "fingerprint": "7c00968e5290bb1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b116a215b523168c", "level": "note", "message": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_smoke_e2e.py:35"}, "properties": {"repobilityId": "8ca125ff44d514f5", "scanner": "scanner-primary", "fingerprint": "b116a215b523168c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-626dfbaf2d1275e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in evaluation/tests/test_batched_vs_sequential.py:180"}, "properties": {"repobilityId": "cccece84341a3eb1", "scanner": "scanner-primary", "fingerprint": "626dfbaf2d1275e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f03e0d759c5423f6", "level": "note", "message": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_golden.py:30"}, "properties": {"repobilityId": "b2063eb27b1fd449", "scanner": "scanner-primary", "fingerprint": "f03e0d759c5423f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ce006cd12944b58e", "level": "note", "message": {"text": "Legacy-named symbol `output_v2` in evaluation/tests/test_parquet_output.py:9"}, "properties": {"repobilityId": "21c7dde3dd9b649e", "scanner": "scanner-primary", "fingerprint": "ce006cd12944b58e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01d709cc1f21ccf4", "level": "note", "message": {"text": "Legacy-named symbol `past_copy` in evaluation/core/batched_surprisal.py:260"}, "properties": {"repobilityId": "21197791cdc2fd2d", "scanner": "scanner-primary", "fingerprint": "01d709cc1f21ccf4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-47b606730c0846f1", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/plot_baseline_overt_preference.py:101"}, "properties": {"repobilityId": "2765e1440779af0b", "scanner": "scanner-primary", "fingerprint": "47b606730c0846f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-781e077d9b519bae", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_smoke.py:2"}, "properties": {"repobilityId": "2ea59d5ef2684d00", "scanner": "scanner-primary", "fingerprint": "781e077d9b519bae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-29efab0917399610", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_bench.py:2"}, "properties": {"repobilityId": "914ccecaf679b3ef", "scanner": "scanner-primary", "fingerprint": "29efab0917399610", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e775b840f7aa96b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/validate_ablation.py:201"}, "properties": {"repobilityId": "92696d6bc39acc80", "scanner": "scanner-primary", "fingerprint": "e775b840f7aa96b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4593df0291e121e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build_spanish_corpus.py:58"}, "properties": {"repobilityId": "ab7ee38cd44b7a63", "scanner": "scanner-primary", "fingerprint": "a4593df0291e121e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3baf2416bf0739bc", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/eval_v2_pack.py:19"}, "properties": {"repobilityId": "f294e8b6535c319f", "scanner": "scanner-primary", "fingerprint": "3baf2416bf0739bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7373d506ae3b9b7e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/eval_v2_pack.py:102"}, "properties": {"repobilityId": "d63f34464c1a035f", "scanner": "scanner-primary", "fingerprint": "7373d506ae3b9b7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e17861036949f43", "level": "none", "message": {"text": "Commented-code block (15 lines) in scripts/launch_production_training.py:59"}, "properties": {"repobilityId": "028c5f24def501c8", "scanner": "scanner-primary", "fingerprint": "6e17861036949f43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c55ed1263ea1131", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_production_training.py:48"}, "properties": {"repobilityId": "27fd00dc20195f51", "scanner": "scanner-primary", "fingerprint": "5c55ed1263ea1131", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c39bb80c468d09d8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/watch_production_training.py:36"}, "properties": {"repobilityId": "fc7456f54e659505", "scanner": "scanner-primary", "fingerprint": "c39bb80c468d09d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f06d895a19e30f9", "level": "note", "message": {"text": "Legacy-named symbol `null_subj_v2` in scripts/pull_eval_results.py:25"}, "properties": {"repobilityId": "4cdf60009a34356c", "scanner": "scanner-primary", "fingerprint": "1f06d895a19e30f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e6e8dc22e8060496", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/fleet_status.py:60"}, "properties": {"repobilityId": "05f2c1539bc24bc9", "scanner": "scanner-primary", "fingerprint": "e6e8dc22e8060496", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4147305ad4cd96df", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/fleet_status.py:337"}, "properties": {"repobilityId": "260a1140cf34ad50", "scanner": "scanner-primary", "fingerprint": "4147305ad4cd96df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bee2749709c24f3e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fleet_status.py:96"}, "properties": {"repobilityId": "d2b9828146934512", "scanner": "scanner-primary", "fingerprint": "bee2749709c24f3e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a55cf4b9847f4e31", "level": "note", "message": {"text": "Legacy-named symbol `null_subj_v2` in scripts/eval_v2_cell.py:53"}, "properties": {"repobilityId": "7a138c062f8627e2", "scanner": "scanner-primary", "fingerprint": "a55cf4b9847f4e31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3213e7482577f64f", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/eval_v2_cell.py:305"}, "properties": {"repobilityId": "f4c7f78d5c972c71", "scanner": "scanner-primary", "fingerprint": "3213e7482577f64f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f34a02e5f8dee7e8", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/launch_cell_evals.py:7"}, "properties": {"repobilityId": "d28d4186e2503793", "scanner": "scanner-primary", "fingerprint": "f34a02e5f8dee7e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a375677a0c83f93c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_cell_evals.py:73"}, "properties": {"repobilityId": "b8727e27bc586212", "scanner": "scanner-primary", "fingerprint": "a375677a0c83f93c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d754a3156009530d", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/production_agent.py:81"}, "properties": {"repobilityId": "34d7844ce300d84e", "scanner": "scanner-primary", "fingerprint": "d754a3156009530d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89c4a5c327a3b85f", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/sync_eval_results_s3.py:11"}, "properties": {"repobilityId": "2cf871fafe513af8", "scanner": "scanner-primary", "fingerprint": "89c4a5c327a3b85f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-91a70d65b6824638", "level": "note", "message": {"text": "Legacy-named symbol `null_subj_v2` in scripts/eval_status.py:6"}, "properties": {"repobilityId": "6a1065f70ba15ef1", "scanner": "scanner-primary", "fingerprint": "91a70d65b6824638", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8d4e9a533bbd0007", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in scripts/check_cell_eval_outputs.py:13"}, "properties": {"repobilityId": "e9ac22ebc2bb16cf", "scanner": "scanner-primary", "fingerprint": "8d4e9a533bbd0007", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cbbd61c6aa67d546", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/sweep_agent_lm.py:211"}, "properties": {"repobilityId": "1c0af13c30a7a07a", "scanner": "scanner-primary", "fingerprint": "cbbd61c6aa67d546", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fd294940e4223f6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_deprecated/run_experiment.py:68"}, "properties": {"repobilityId": "bb848edf66bb4787", "scanner": "scanner-primary", "fingerprint": "1fd294940e4223f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e3e4ec8ea786e728", "level": "none", "message": {"text": "Commented-code block (6 lines) in preprocessing/config.py:52"}, "properties": {"repobilityId": "56a846d0b90d6d9f", "scanner": "scanner-primary", "fingerprint": "e3e4ec8ea786e728", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f12a95449e1f26ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in preprocessing/base.py:80"}, "properties": {"repobilityId": "d4381f594328d16a", "scanner": "scanner-primary", "fingerprint": "f12a95449e1f26ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21707483eb4d18e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in preprocessing/annotate.py:121"}, "properties": {"repobilityId": "a29fbf045f0d27ee", "scanner": "scanner-primary", "fingerprint": "21707483eb4d18e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6fd34f15e163a5b", "level": "note", "message": {"text": "Legacy-named symbol `test_get_file_tier_counts_returns_copy` in preprocessing/tests/test_remove_expletive_sentences.py:590"}, "properties": {"repobilityId": "0ac90ffd0b3e4062", "scanner": "scanner-primary", "fingerprint": "e6fd34f15e163a5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4c74fef2697ccd29", "level": "none", "message": {"text": "Commented-code block (5 lines) in preprocessing/tests/test_new_ablations_integration.py:38"}, "properties": {"repobilityId": "e88790db8c920fc9", "scanner": "scanner-primary", "fingerprint": "4c74fef2697ccd29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a324946d2cd0b55", "level": "note", "message": {"text": "Legacy-named symbol `ablated_legacy` in preprocessing/tests/test_compose_corpus.py:98"}, "properties": {"repobilityId": "9f63fb41907f5344", "scanner": "scanner-primary", "fingerprint": "9a324946d2cd0b55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1b6643863f6be6b0", "level": "none", "message": {"text": "Commented-code block (9 lines) in preprocessing/ablations/enrich_verbal_morphology.py:67"}, "properties": {"repobilityId": "d149eff70b95d508", "scanner": "scanner-primary", "fingerprint": "1b6643863f6be6b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8a32679d36c03f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in preprocessing/ablations/identity.py:98"}, "properties": {"repobilityId": "0b8bc8a3ac678298", "scanner": "scanner-primary", "fingerprint": "b8a32679d36c03f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b703ca17565a52e6", "level": "none", "message": {"text": "Commented-code block (7 lines) in preprocessing/ablations/impoverish_case.py:214"}, "properties": {"repobilityId": "f366945add1b99b2", "scanner": "scanner-primary", "fingerprint": "b703ca17565a52e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eeb5230b9005b93", "level": "none", "message": {"text": "Commented-code block (7 lines) in preprocessing/ablations/remove_expletive_sentences.py:448"}, "properties": {"repobilityId": "587f7e0012d83141", "scanner": "scanner-primary", "fingerprint": "8eeb5230b9005b93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e762581db0117a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in preprocessing/ablations/template.py:51"}, "properties": {"repobilityId": "f9de4500ded0da80", "scanner": "scanner-primary", "fingerprint": "7e762581db0117a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f884fdbd26b63748", "level": "none", "message": {"text": "Commented-code block (8 lines) in preprocessing/ablations/lemmatize_verbs.py:20"}, "properties": {"repobilityId": "2d2a29b2e2e9b857", "scanner": "scanner-primary", "fingerprint": "f884fdbd26b63748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fba21859c41accf", "level": "none", "message": {"text": "Commented-code block (6 lines) in analysis/corpus_descriptives/pipeline.py:548"}, "properties": {"repobilityId": "958d1744d1f9bdb4", "scanner": "scanner-primary", "fingerprint": "0fba21859c41accf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b608a5006315ad90", "level": "note", "message": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/tests/test_annotators.py:122"}, "properties": {"repobilityId": "3f523abb4194e8cb", "scanner": "scanner-primary", "fingerprint": "b608a5006315ad90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-92cba79215b23710", "level": "note", "message": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/clause_structure.py:209"}, "properties": {"repobilityId": "c53790359c427ba5", "scanner": "scanner-primary", "fingerprint": "92cba79215b23710", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a419ac47d8775c0", "level": "note", "message": {"text": "Legacy-named symbol `disfluent_copy` in analysis/corpus_descriptives/annotators/argument_structure.py:141"}, "properties": {"repobilityId": "e5d6eafbf9ad0dbc", "scanner": "scanner-primary", "fingerprint": "6a419ac47d8775c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fde93ca44f9c7ea1", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in analysis/eval_v2/compute_slor.py:14"}, "properties": {"repobilityId": "a3b53640b80216fa", "scanner": "scanner-primary", "fingerprint": "fde93ca44f9c7ea1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a33cbfd8dee3ca51", "level": "note", "message": {"text": "Legacy-named symbol `eval_v2` in analysis/eval_v2/scil_style_figures.py:10"}, "properties": {"repobilityId": "fbe4e21ea8503e2e", "scanner": "scanner-primary", "fingerprint": "a33cbfd8dee3ca51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-69cc2bbe1471ffd0", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in model_foundry/registry.py:593"}, "properties": {"repobilityId": "883edb07bcf76780", "scanner": "scanner-primary", "fingerprint": "69cc2bbe1471ffd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ee9abf3ed8e8c449", "level": "none", "message": {"text": "Commented-code block (7 lines) in model_foundry/registry.py:209"}, "properties": {"repobilityId": "0fa9665133944dac", "scanner": "scanner-primary", "fingerprint": "ee9abf3ed8e8c449", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-423afef201a8bb26", "level": "none", "message": {"text": "Commented-code block (7 lines) in model_foundry/config.py:349"}, "properties": {"repobilityId": "806de0f3294f7ab7", "scanner": "scanner-primary", "fingerprint": "423afef201a8bb26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8b3e3f9c46ec340", "level": "none", "message": {"text": "Commented-code block (7 lines) in model_foundry/checkpoint_schedule.py:160"}, "properties": {"repobilityId": "ddf4261a0477760b", "scanner": "scanner-primary", "fingerprint": "a8b3e3f9c46ec340", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d51aa229c73b177", "level": "none", "message": {"text": "Commented-code block (6 lines) in model_foundry/wandb_init.py:101"}, "properties": {"repobilityId": "b380b6a02e5780a8", "scanner": "scanner-primary", "fingerprint": "2d51aa229c73b177", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be2fea8bb549a23b", "level": "none", "message": {"text": "Commented-code block (5 lines) in model_foundry/data.py:57"}, "properties": {"repobilityId": "d5591c4ffe9dc06e", "scanner": "scanner-primary", "fingerprint": "be2fea8bb549a23b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b19f415920973ad", "level": "none", "message": {"text": "Commented-code block (7 lines) in model_foundry/trainer.py:152"}, "properties": {"repobilityId": "2416ceab5db31fcf", "scanner": "scanner-primary", "fingerprint": "3b19f415920973ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6735f9d02fd9ba7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 model_foundry/trainer.py:449"}, "properties": {"repobilityId": "8fad5ee7530c8351", "scanner": "scanner-primary", "fingerprint": "e6735f9d02fd9ba7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11d2427866226fc7", "level": "none", "message": {"text": "Commented-code block (9 lines) in model_foundry/tokenizer/tokenizer_factory.py:71"}, "properties": {"repobilityId": "130611755f516383", "scanner": "scanner-primary", "fingerprint": "11d2427866226fc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fe309adb5836793", "level": "none", "message": {"text": "Commented-code block (5 lines) in model_foundry/tokenizer/tokenize_dataset.py:241"}, "properties": {"repobilityId": "32582309c0814f9a", "scanner": "scanner-primary", "fingerprint": "9fe309adb5836793", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46311d979fd59613", "level": "note", "message": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/mamba.py:423"}, "properties": {"repobilityId": "b48112cd6bdca2a1", "scanner": "scanner-primary", "fingerprint": "46311d979fd59613", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-04d34615c7403eea", "level": "none", "message": {"text": "Commented-code block (6 lines) in model_foundry/architectures/mamba.py:373"}, "properties": {"repobilityId": "7b3f21220e36ddcd", "scanner": "scanner-primary", "fingerprint": "04d34615c7403eea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8374110759ebd206", "level": "note", "message": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/rnn.py:305"}, "properties": {"repobilityId": "c472b7fc2fb2373c", "scanner": "scanner-primary", "fingerprint": "8374110759ebd206", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2cd3cba1b7dd01ea", "level": "none", "message": {"text": "Commented-code block (9 lines) in model_foundry/architectures/rnn.py:174"}, "properties": {"repobilityId": "979ada5c97fde045", "scanner": "scanner-primary", "fingerprint": "2cd3cba1b7dd01ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a5fe992bf38c810", "level": "note", "message": {"text": "Legacy-named symbol `num_to_copy` in model_foundry/architectures/utils.py:124"}, "properties": {"repobilityId": "0e8667d2667487e3", "scanner": "scanner-primary", "fingerprint": "9a5fe992bf38c810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5f52ebd57db853c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in model_foundry/training/loop.py:20"}, "properties": {"repobilityId": "9fa255d8fc2f403e", "scanner": "scanner-primary", "fingerprint": "5f52ebd57db853c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8f1fc5847a467c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in model_foundry/training/checkpointing.py:41"}, "properties": {"repobilityId": "ce08bb7381f26205", "scanner": "scanner-primary", "fingerprint": "c8f1fc5847a467c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fe65989af1eb81ad", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "08f0e54322cba969", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "956d752c7ad8330e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "42ef7132bbf8a3af", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "37072ffe992e6637", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5727507c0b3ed227", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "316db8cf4c31291e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9553b425c2f3e152", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "6cbdb5e78d7155df", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "723aedbb0fa46b37", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "bc0060c2a7d5872a", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "89bbfd0983d8a306", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b7a337aeda5d5e45", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9d518d995bc1477c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1f16a0842081ae0e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "eac0ea73cbe86e41", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "d301b22b627a629c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fb3a0d705f9c3f9d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7e37d9a63db8a5c9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9129b2f0545e9d35", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ddbae098fb3ce8ab", "level": "error", "message": {"text": "FastAPI PUT `save_note` without auth dependency \u2014 review/server.py:105"}, "properties": {"repobilityId": "fd74505fa308d328", "scanner": "scanner-primary", "fingerprint": "ddbae098fb3ce8ab", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review/server.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-75d182a65da6c11c", "level": "note", "message": {"text": "Unused endpoint: GET /api/metadata"}, "properties": {"repobilityId": "2f838d686538ba11", "scanner": "scanner-primary", "fingerprint": "75d182a65da6c11c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e20fbb4f4fd10cf", "level": "note", "message": {"text": "Unused endpoint: GET /api/sentences"}, "properties": {"repobilityId": "19205bd91c908cbb", "scanner": "scanner-primary", "fingerprint": "3e20fbb4f4fd10cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7cc00232c06a4ab1", "level": "note", "message": {"text": "Unused endpoint: GET /api/sentences/{sentence_id}"}, "properties": {"repobilityId": "19933e23b98ad0c5", "scanner": "scanner-primary", "fingerprint": "7cc00232c06a4ab1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e790b5fda31682a5", "level": "note", "message": {"text": "Unused endpoint: PUT /api/notes/{sentence_id}"}, "properties": {"repobilityId": "ff0d1e95b7db4daa", "scanner": "scanner-primary", "fingerprint": "e790b5fda31682a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e7de700c4a5bf48d", "level": "note", "message": {"text": "Unused endpoint: GET /api/notes"}, "properties": {"repobilityId": "a76726f1be358ee4", "scanner": "scanner-primary", "fingerprint": "e7de700c4a5bf48d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9680c22cee1a9872", "level": "note", "message": {"text": "Unused endpoint: GET /api/notes/enriched"}, "properties": {"repobilityId": "82c1813efaff6a28", "scanner": "scanner-primary", "fingerprint": "9680c22cee1a9872", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f25f43e7fdcbad9d", "level": "note", "message": {"text": "Unused endpoint: GET /api/notes/export"}, "properties": {"repobilityId": "5294727835e15d6e", "scanner": "scanner-primary", "fingerprint": "f25f43e7fdcbad9d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-96191249a569b815", "level": "note", "message": {"text": "Unused endpoint: GET /api/schematics"}, "properties": {"repobilityId": "4cb50bf8472c5478", "scanner": "scanner-primary", "fingerprint": "96191249a569b815", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9c191fb3484f16dc", "level": "note", "message": {"text": "Unused endpoint: GET /api/schematics/{feature}"}, "properties": {"repobilityId": "99c7041612e2803b", "scanner": "scanner-primary", "fingerprint": "9c191fb3484f16dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "537891824a4432c7", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba23703127eb019f", "level": "note", "message": {"text": "Unused endpoint: GET /reviewed"}, "properties": {"repobilityId": "c55d8e202a31942c", "scanner": "scanner-primary", "fingerprint": "ba23703127eb019f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd55aa0818a7c897", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/login"}, "properties": {"repobilityId": "2b818b3bba8d3294", "scanner": "scanner-primary", "fingerprint": "fd55aa0818a7c897", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee4aa5ddab88c9dc", "level": "note", "message": {"text": "Unused endpoint: GET /api/auth/me"}, "properties": {"repobilityId": "2bdc1c9a23cc997b", "scanner": "scanner-primary", "fingerprint": "ee4aa5ddab88c9dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b6c9c3b717869a8d", "level": "note", "message": {"text": "Unused endpoint: GET /api/stimuli"}, "properties": {"repobilityId": "b0f00da15b8b424f", "scanner": "scanner-primary", "fingerprint": "b6c9c3b717869a8d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0772f9d6eabd2ae4", "level": "note", "message": {"text": "Unused endpoint: GET /api/stimuli/starred"}, "properties": {"repobilityId": "a984ca6b14273f48", "scanner": "scanner-primary", "fingerprint": "0772f9d6eabd2ae4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9993171ec15ede51", "level": "note", "message": {"text": "Unused endpoint: GET /api/stimuli/{stimulus_id}"}, "properties": {"repobilityId": "ff6694ca0d210c73", "scanner": "scanner-primary", "fingerprint": "9993171ec15ede51", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cb387229c8d105ee", "level": "note", "message": {"text": "Unused endpoint: POST /api/stimuli/load"}, "properties": {"repobilityId": "28bbcf671861684e", "scanner": "scanner-primary", "fingerprint": "cb387229c8d105ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-71fb14440de76b43", "level": "note", "message": {"text": "Unused endpoint: GET /api/pronouns"}, "properties": {"repobilityId": "d66e38685177a79f", "scanner": "scanner-primary", "fingerprint": "71fb14440de76b43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56624e5f06d42d9b", "level": "note", "message": {"text": "Unused endpoint: PUT /api/annotations/{stimulus_id}"}, "properties": {"repobilityId": "284e656e7b66ebda", "scanner": "scanner-primary", "fingerprint": "56624e5f06d42d9b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-898981a946094c69", "level": "note", "message": {"text": "Unused endpoint: GET /api/annotations/progress"}, "properties": {"repobilityId": "8c03359d12feb08c", "scanner": "scanner-primary", "fingerprint": "898981a946094c69", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-51126ca6e5138048", "level": "note", "message": {"text": "Unused endpoint: GET /api/annotations/next-unannotated"}, "properties": {"repobilityId": "aaba51be81417030", "scanner": "scanner-primary", "fingerprint": "51126ca6e5138048", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-33e4f1156cb48a39", "level": "note", "message": {"text": "Unused endpoint: GET /api/agreement/status"}, "properties": {"repobilityId": "e606c1e099616a53", "scanner": "scanner-primary", "fingerprint": "33e4f1156cb48a39", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-244d92f4ed53d906", "level": "note", "message": {"text": "Unused endpoint: GET /api/agreement/compute"}, "properties": {"repobilityId": "5ccb3f56aaeb7602", "scanner": "scanner-primary", "fingerprint": "244d92f4ed53d906", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80d6407fdd729d44", "level": "note", "message": {"text": "Unused endpoint: GET /api/agreement/export"}, "properties": {"repobilityId": "5b46679aa13d2986", "scanner": "scanner-primary", "fingerprint": "80d6407fdd729d44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d28c006976c8a54", "level": "note", "message": {"text": "Unused endpoint: GET /api/adjudication/queue"}, "properties": {"repobilityId": "b11f56c90eedd58a", "scanner": "scanner-primary", "fingerprint": "9d28c006976c8a54", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-29bf44a8c54de8aa", "level": "note", "message": {"text": "Unused endpoint: GET /api/adjudication/progress"}, "properties": {"repobilityId": "57c8b27f4a19608c", "scanner": "scanner-primary", "fingerprint": "29bf44a8c54de8aa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5b977c751ea4a58b", "level": "note", "message": {"text": "Unused endpoint: GET /api/adjudication/{stimulus_id}"}, "properties": {"repobilityId": "2554381b70529961", "scanner": "scanner-primary", "fingerprint": "5b977c751ea4a58b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-090e523a7d335d6d", "level": "note", "message": {"text": "Unused endpoint: PUT /api/adjudication/{stimulus_id}"}, "properties": {"repobilityId": "bb8ed261fc638f2f", "scanner": "scanner-primary", "fingerprint": "090e523a7d335d6d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dd02f90a9ec38a72", "level": "note", "message": {"text": "Unused endpoint: GET /api/export/gold"}, "properties": {"repobilityId": "66b07500e45b3d7d", "scanner": "scanner-primary", "fingerprint": "dd02f90a9ec38a72", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a190826aa479e435", "level": "note", "message": {"text": "Unused endpoint: GET /api/export/raw"}, "properties": {"repobilityId": "debe06165ab5eb90", "scanner": "scanner-primary", "fingerprint": "a190826aa479e435", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4d87f54d62a1386", "level": "note", "message": {"text": "Unused endpoint: GET /api/admin/users"}, "properties": {"repobilityId": "b92fa972892a259c", "scanner": "scanner-primary", "fingerprint": "b4d87f54d62a1386", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-953ec1a0ee6df50d", "level": "note", "message": {"text": "Unused endpoint: GET /admin"}, "properties": {"repobilityId": "0b212adb6a698cd2", "scanner": "scanner-primary", "fingerprint": "953ec1a0ee6df50d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-526bea43a6f2c0b9", "level": "note", "message": {"text": "Unused endpoint: GET /adjudication"}, "properties": {"repobilityId": "6210c8008848d785", "scanner": "scanner-primary", "fingerprint": "526bea43a6f2c0b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}