{"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_bad_chain", "name": "Foundry mined bad chains: tellurium587465/typing_research", "shortDescription": {"text": "Foundry mined bad chains: tellurium587465/typing_research"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nOutcome: self_attested_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: tellurium587465/typing_research#1\nRepo: tellurium587465/typing_research\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 22\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 20, 'docs_or_claims': 1, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2ad8c10a6bede57b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\","}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: tellurium587465/typing_research", "shortDescription": {"text": "Foundry mined mock as real or placeholder: tellurium587465/typing_research"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tellurium587465/typing_research#1\nRepo: tellurium587465/typing_research\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 33\nEdges: 59\nNode types: {'pr_file': 22, 'l"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-6be48952669c175a", "name": "Possibly dead Python function: sid_label", "shortDescription": {"text": "Possibly dead Python function: sid_label"}, "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-e980e91e67e33173", "name": "Possibly dead Python function: fmt_sid", "shortDescription": {"text": "Possibly dead Python function: fmt_sid"}, "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-fe30677df0d20fbd", "name": "Possibly dead Python function: audio_callback", "shortDescription": {"text": "Possibly dead Python function: audio_callback"}, "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-3003fe30a526cc1d", "name": "Possibly dead Python function: start_recording", "shortDescription": {"text": "Possibly dead Python function: start_recording"}, "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-a6846eb838b38905", "name": "Possibly dead Python function: start_keylogger", "shortDescription": {"text": "Possibly dead Python function: start_keylogger"}, "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-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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "6 tests / 44 src (ratio 0.14)."}, "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 485 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-2bf5cfbef336f74e", "name": "Network/subprocess call without timeout or try/except \u2014 run_pipeline.py:73", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 run_pipeline.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-2854d4c309885d50", "name": "Legacy-named symbol `_pose_backup` in migrate_sessions.py:25", "shortDescription": {"text": "Legacy-named symbol `_pose_backup` in migrate_sessions.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-b1e2e8464284702d", "name": "Network/subprocess call without timeout or try/except \u2014 hand_tracking.py:15", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 hand_tracking.py:15"}, "fullDescription": {"text": "`urllib.request.urlretrieve(...)` 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-a4aa677d209e70ed", "name": "Network/subprocess call without timeout or try/except \u2014 app.py:297", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 app.py:297"}, "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-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:\ndashboard.py:is_fin, dashboard.py:is_fin\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:\nreport.py:is_fin, report.py:is_fin, report.py:is_fin\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}}]}}, "automationDetails": {"id": "repobility/20956"}, "properties": {"repository": "tellurium587465/typing_research", "repoUrl": "https://github.com/tellurium587465/typing_research", "branch": "main"}, "results": [{"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tellurium587465/typing_research"}, "properties": {"repobilityId": 323415, "scanner": "foundry_dataset", "fingerprint": "20896e64b37e141b6bb4762a8bb8e549dd0e0ee6ab386718a93cf3088ebe13a3", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "tellurium587465/typing_research#1", "human_labels": ["agent_instruction_gap", "dependency_or_build", "docs_or_claims", "source_or_other"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "tellurium587465/typing_research", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ef7a40439cac23b9", "helicopter_views": {}, "artifact_families": {"ci": 2, "docs": 1, "tests": 2, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 22, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1, "source_or_other": 20, "dependency_or_build": 1}, "linked_commit_count": 2, "helicopter_view_count": 0, "source_artifact_count": 6, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 4, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nOutcome: self_attested_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: tellurium587465/typing_research#1\nRepo: tellurium587465/typing_research\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 22\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 20, 'docs_or_claims': 1, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2ad8c10a6bede57b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tellurium587465/typing_research/pull/1\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tellurium587465/typing_research\\nAuthor: tellurium587465 (User)\\nURL: https://github.com/tellurium587465/typing_research/pull/1\\nTitle: \u7cbe\u5ea6\u6539\u5584\u30fb\u30a8\u30f3\u30c9\u30c4\u30fc\u30a8\u30f3\u30c9\u5316\u30fb\u30d5\u30ec\u30fc\u30ba\u5883\u754c\u9664\u5916\\nBody:\\n## \u3053\u306ePR\u306e\u6982\u8981\\n\\n\u30bf\u30a4\u30d4\u30f3\u30b0\u7814\u7a76\u30b7\u30b9\u30c6\u30e0\u306e\u7cbe\u5ea6\u6539\u5584\u30fb1\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u5316\u30fb\u30c7\u30fc\u30bf\u54c1\u8cea\u5411\u4e0a\u3092\u884c\u3063\u305f\u3002\\n\\n---\\n\\n## \u72ec\u81ea\u6027\u30fb\u8ca2\u732e\u70b9\\n\\n### 1. 3\u30bb\u30f3\u30b5\u30fc\u540c\u671f\u306e\u6642\u523b\u8ef8\u7d71\u4e00\uff08\u72ec\u81ea\u306e\u30d0\u30b0\u767a\u898b\u3068\u4fee\u6b63\uff09\\n\\n\u30ab\u30e1\u30e9\u30fb\u30de\u30a4\u30af\u30fb\u30ad\u30fc\u30ed\u30ac\u30fc\u306e3\u7cfb\u7d71\u3092\u9332\u753b\u57fa\u6e96\u6642\u523b\u306b\u7d71\u4e00\u3059\u308b\u3053\u3068\u3067\u3001\\n`integrate.py` \u3067\u306e\u6253\u9375\u3054\u3068\u306e\u7167\u5408\u304c\u6b63\u78ba\u306b\u306a\u3063\u305f\u3002\\n\\n**\u767a\u898b\u3057\u305f\u30d0\u30b0\uff1a**\\n\\n| \u30d0\u30b0 | \u5f71\u97ff | \u4fee\u6b63\u5f8c\u306e\u6539\u5584 |\\n|---|---|---|\\n| `onset_ms` \u304c `trim_start_ms` \u3092\u5f15\u3044\u305f\u5024\u3067\u4fdd\u5b58\u3055\u308c\u3066\u3044\u305f\uff08pose \u3068\u6700\u592710\u79d2\u305a\u308c\uff09 | \u30ab\u30e1\u30e9\u691c\u51fa\u7387 70% | \u2192 **99.5%** |\\n| VideoWriter \u8a2d\u5b9aFPS(30) vs \u5b9fFPS(21.5) \u306e\u30ba\u30ec\u3067\u30dd\u30fc\u30ba\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u304c1.4\u500d\u5727\u7e2e | \u540c\u4e0a | \u2192 **99.5%** |\\n| `keyboard_grid.json` \u3092\u30bb\u30c3\u30b7\u30e7\u30f3\u9593\u3067\u4f7f\u3044\u56de\u3057\uff08\u30ab\u30e1\u30e9\u4f4d\u7f6e\u5909\u5316\u306b\u672a\u5bfe\u5fdc\uff09 | \u30ad\u30fc\u4e00\u81f4\u7387 0% \u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3042\u308a | \u2192 \u5404\u30bb\u30c3\u30b7\u30e7\u30f3\u5c02\u7528\u30b0\u30ea\u30c3\u30c9\u3092\u751f\u6210 |\\n\\n---\\n\\n### 2. \u30ad\u30fc\u30dc\u30fc\u30c9\u4f4d\u7f6e\u691c\u51fa\u306e\u9069\u5fdc\u7684\u30db\u30e2\u30b0\u30e9\u30d5\u30a3\u88dc\u6b63\\n\\n`minAreaRect` \u3067\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u50be\u304d\u89d2\u3092\u8a08\u6e2c\u3057\u3001**5\u00b0 \u4ee5\u4e0a\u306e\u5834\u5408\u306e\u307f**\u900f\u8996\u88dc\u6b63\u3092\u9069\u7528\u3059\u308b\u5236\u5fa1\u3092\u8ffd\u52a0\u3002\\n\u4e0d\u8981\u306a\u88dc\u6b63\u3092\u9069\u7528\u3059\u308b\u3068\u7cbe\u5ea6\u304c\u4f4e\u4e0b\u3059\u308b\uff0884% \u2192 46%\uff09\u3053\u3068\u3092\u5b9f\u9a13\u7684\u306b\u78ba\u8a8d\u3057\u3001\\n\u95be\u5024\u30d9\u30fc\u30b9\u306e\u81ea\u52d5\u5224\u5b9a\u3067\u89e3\u6c7a\u3057\u305f\u3002\\n\\n---\\n\\n### 3. \u97f3\u58f0\u306a\u3057\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u30ab\u30e1\u30e9\u5206\u6790\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\\n\\nonset \u691c\u51fa\u304c\u5b8c\u5168\u306b\u5931\u6557\u3057\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\uff08\u30de\u30a4\u30af\u7121\u97f3\u30fb\u30c7\u30d0\u30a4\u30b9\u30a8\u30e9\u30fc\uff09\u3067\u3082\u3001\\n**\u30ad\u30fc\u30ed\u30b0\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u4ee3\u7528\u3057\u3066 pose \u7167\u5408\u3092\u7d99\u7d9a**\u3059\u308b\u4ed5\u7d44\u307f\u3092\u8ffd\u52a0\u3002\\n\u3053\u308c\u306b\u3088\u308a\u51685\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u30ab\u30e1\u30e9\u691c\u51fa\u7387 100% \u3092\u9054\u6210\u3002\\n\\n---\\n\\n### 4. \u30d5\u30ec\u30fc\u30ba\u5883\u754c\u306e\u81ea\u52d5\u691c\u51fa\u3068\u7d71\u8a08\u9664\u5916\\n\\n\u5bff\u53f8\u6253\u306a\u3069\u306e\u30bf\u30a4\u30d4\u30f3\u30b0\u30b2\u30fc\u30e0\u3067\u306f\u300c\u304a\u984c\u304c\u5207\u308a\u66ff\u308f\u308b\u307e\u3067\u306e\u5f85\u6a5f\u6642\u9593\u300d\u304c\\n\u6700\u521d\u306e\u30ad\u30fc\u306e `interval_ms` \u306b\u6df7\u5165\u3057\u3001\u30bf\u30a4\u30df\u30f3\u30b0\u7d71\u8a08\u3092\u6c5a\u67d3\u3059\u308b\u554f\u984c\u304c\u3042\u3063\u305f\u3002\\n\\n- `interval_ms > 1000ms` \u306e\u30ad\u30fc\u3092 `is_phrase_start` \u30d5\u30e9\u30b0\u3067\u7ba1\u7406\\n- \u30c8\u30ea\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-c6e10b3b17c12c66\",\n    \"filename\": \".gitignore\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 21,\n    \"deletions\": 0,\n    \"changes\": 21,\n    \"blob_url\": \"https://github.com/tellurium587465/typing_research/blob/3dfb512dbb0374f1a25009d36bbe78c5908c7176/.gitignore\"\n  },\n  {\n    \"id\": \"github-pr-file-file-c6ad62b28de242f7\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 293,\n    \"deletions\": 0,\n    \"changes\": 293,\n    \"blob_url\": \"https://github.com/tellurium587465/typing_research/blob\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tellurium587465/typing_research", "source_id": "comment-chain-pattern-bad_chains-c78874e3c4aae230", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tellurium587465/typing_research", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: tellurium587465/typing_research"}, "properties": {"repobilityId": 327227, "scanner": "foundry_dataset", "fingerprint": "791b37c41d8dbcfe6a3d696a47f753f6f588fbeb1ad9c0445d36eb5d0696deb4", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"commit_general": 1, "docs_or_claims": 1, "source_or_other": 20, "dependency_or_build": 1, "generated_provenance": 1, "agent_instruction_gap": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"self_attested_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 59, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 22, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 33, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 22, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tellurium587465/typing_research#1", "issue_number": "1", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "tellurium587465/typing_research", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-74307db8026fbab3", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 4, "source_or_other": 80, "dependency_or_build": 4}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: tellurium587465/typing_research\nThread: tellurium587465/typing_research#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tellurium587465/typing_research#1\nRepo: tellurium587465/typing_research\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 33\nEdges: 59\nNode types: {'pr_file': 22, 'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 22, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, '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}\nLabels: {'source_or_other': 20, 'self_attested_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'docs_or_claims': 1, 'dependency_or_build': 1, 'self_attested_or_generated_fix_unverified': 1, 'generated_provenance': 1, 'commit_general': 1}\nOutcomes: {'self_attested_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tellurium587465/typing_research", "source_id": "graph-query-motif_query-b48b47ed3fecc3e2", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tellurium587465/typing_research", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-6be48952669c175a", "level": "note", "message": {"text": "Possibly dead Python function: sid_label"}, "properties": {"repobilityId": "bd0f9c7c42006403", "scanner": "scanner-primary", "fingerprint": "6be48952669c175a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:315"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e980e91e67e33173", "level": "note", "message": {"text": "Possibly dead Python function: fmt_sid"}, "properties": {"repobilityId": "d1b48097ac514257", "scanner": "scanner-primary", "fingerprint": "e980e91e67e33173", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py:471"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe30677df0d20fbd", "level": "note", "message": {"text": "Possibly dead Python function: audio_callback"}, "properties": {"repobilityId": "a489309f6ed41a23", "scanner": "scanner-primary", "fingerprint": "fe30677df0d20fbd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "recorder.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3003fe30a526cc1d", "level": "note", "message": {"text": "Possibly dead Python function: start_recording"}, "properties": {"repobilityId": "c58529af9f257caa", "scanner": "scanner-primary", "fingerprint": "3003fe30a526cc1d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "recorder.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a6846eb838b38905", "level": "note", "message": {"text": "Possibly dead Python function: start_keylogger"}, "properties": {"repobilityId": "34d65f5d357daf67", "scanner": "scanner-primary", "fingerprint": "a6846eb838b38905", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "recorder.py:121"}, "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-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "f6d04feb598ee7f6", "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": "85aa9dcc32be3fdd", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "e30b9dbff944b64c", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "ea7052d4123b8696", "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": "1139c124a77311b1", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2bf5cfbef336f74e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 run_pipeline.py:73"}, "properties": {"repobilityId": "6a9b6e833cc0bef1", "scanner": "scanner-primary", "fingerprint": "2bf5cfbef336f74e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2854d4c309885d50", "level": "note", "message": {"text": "Legacy-named symbol `_pose_backup` in migrate_sessions.py:25"}, "properties": {"repobilityId": "a1e2933e5e1e7199", "scanner": "scanner-primary", "fingerprint": "2854d4c309885d50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b1e2e8464284702d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 hand_tracking.py:15"}, "properties": {"repobilityId": "5cbb82b5e75958f9", "scanner": "scanner-primary", "fingerprint": "b1e2e8464284702d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4aa677d209e70ed", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 app.py:297"}, "properties": {"repobilityId": "2fba24f1f9cb1206", "scanner": "scanner-primary", "fingerprint": "a4aa677d209e70ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "040241f74a159000", "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": "cfabfb8744a00b16", "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": "13ef2854afc30883", "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": "b72d1601a1ed47e3", "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": "15f529389ea69330", "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": "94dad80bdeb04664", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}