{"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: saumyaMMF/chat_bot", "shortDescription": {"text": "Foundry mined blueprint gap alignment: saumyaMMF/chat_bot"}, "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_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#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: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo':"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: saumyaMMF/chat_bot", "shortDescription": {"text": "Foundry mined assumption checks: saumyaMMF/chat_bot"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 3\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'schema_or_data': 2, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b3ad1ef6527404f8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sa"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: saumyaMMF/chat_bot", "shortDescription": {"text": "Foundry mined test ci gap after feedback: saumyaMMF/chat_bot"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comme"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: saumyaMMF/chat_bot", "shortDescription": {"text": "Foundry mined schema ui api mismatch: saumyaMMF/chat_bot"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1,"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "scanner-79f0742d0ba6d07a", "name": "Possibly dead Python function: require_hmac", "shortDescription": {"text": "Possibly dead Python function: require_hmac"}, "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-fd13dfe483559633", "name": "Possibly dead Python function: require_service_token", "shortDescription": {"text": "Possibly dead Python function: require_service_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-afc62ba80f54da02", "name": "Possibly dead Python function: filter", "shortDescription": {"text": "Possibly dead Python function: filter"}, "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-1b82ddf0465ee018", "name": "Possibly dead Python function: rate_limit", "shortDescription": {"text": "Possibly dead Python function: rate_limit"}, "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-1854009ebe4d541f", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "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-c48eff485bb502b1", "name": "Possibly dead Python function: embed_cache_stats", "shortDescription": {"text": "Possibly dead Python function: embed_cache_stats"}, "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-0b0f0b88ec62f99d", "name": "Possibly dead Python function: invalidate_all", "shortDescription": {"text": "Possibly dead Python function: invalidate_all"}, "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-dee2453f733f56aa", "name": "Possibly dead Python function: retrieve_match", "shortDescription": {"text": "Possibly dead Python function: retrieve_match"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-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-9e4ca485ad090cb9", "name": "Very large file: app/chatbot/chat_service.py (1576 lines)", "shortDescription": {"text": "Very large file: app/chatbot/chat_service.py (1576 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "9 tests / 51 src (ratio 0.18)."}, "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 140 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-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-ea0589660a23a168", "name": "Commented-code block (6 lines) in app/config.py:37", "shortDescription": {"text": "Commented-code block (6 lines) in app/config.py:37"}, "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-85dda31283297423", "name": "Commented-code block (6 lines) in app/main.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in app/main.py:31"}, "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-8f510020c6c7f503", "name": "Commented-code block (5 lines) in app/chatbot/pronoun_anchor.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in app/chatbot/pronoun_anchor.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-dde752276d1a65cf", "name": "Commented-code block (7 lines) in app/chatbot/chat_service.py:71", "shortDescription": {"text": "Commented-code block (7 lines) in app/chatbot/chat_service.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-17480e0286036b12", "name": "Commented-code block (6 lines) in app/chatbot/sql_guard_mysql.py:55", "shortDescription": {"text": "Commented-code block (6 lines) in app/chatbot/sql_guard_mysql.py:55"}, "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-fd7c8f99d62c6171", "name": "Commented-code block (8 lines) in app/chatbot/schema_store.py:255", "shortDescription": {"text": "Commented-code block (8 lines) in app/chatbot/schema_store.py:255"}, "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-87fbdcb99aca6c71", "name": "Commented-code block (7 lines) in app/chatbot/readonly_db_mysql.py:79", "shortDescription": {"text": "Commented-code block (7 lines) in app/chatbot/readonly_db_mysql.py:79"}, "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-29d0cf44236e55a8", "name": "Commented-code block (5 lines) in app/chatbot/sanitize.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in app/chatbot/sanitize.py:43"}, "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-dff485818888c7d4", "name": "Commented-code block (5 lines) in app/chatbot/prompt_builder.py:520", "shortDescription": {"text": "Commented-code block (5 lines) in app/chatbot/prompt_builder.py:520"}, "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-319e66a630e14977", "name": "2 env vars used in code but missing from .env.example", "shortDescription": {"text": "2 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CHATBOT_HMAC_REQUIRED`, `CHATBOT_MYSQL_SSL_STRICT`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "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:\napp/chatbot/readonly_db.py:get_pool, app/chatbot/readonly_db_mysql.py:get_pool\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-20266cc634efd212", "name": "Unused endpoint: POST /warmup", "shortDescription": {"text": "Unused endpoint: POST /warmup"}, "fullDescription": {"text": "`app/main.py` declares `POST /warmup` 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-cff8da5fbc19c76d", "name": "Unused endpoint: POST /chat", "shortDescription": {"text": "Unused endpoint: POST /chat"}, "fullDescription": {"text": "`app/main.py` declares `POST /chat` 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/18994"}, "properties": {"repository": "saumyaMMF/chat_bot", "repoUrl": "https://github.com/saumyaMMF/chat_bot", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: saumyaMMF/chat_bot"}, "properties": {"repobilityId": 355750, "scanner": "foundry_dataset", "fingerprint": "b90a959f97b0bf5f696e8611f2e1e11c8178e167632eb8043adefa97fde3186a", "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, "schema_or_data": 2, "source_or_other": 1, "partial blueprint fit": 1, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "saumyaMMF/chat_bot#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "saumyaMMF/chat_bot", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-0dc060854d33f31e", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"schema_or_data": 8, "source_or_other": 4}}, "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_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#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: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'comment_chain_links_commit': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'schema_or_data': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\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/saumyaMMF/chat_bot", "source_id": "graph-query-motif_query-189605b00289b352", "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": "saumyaMMF/chat_bot", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: saumyaMMF/chat_bot"}, "properties": {"repobilityId": 312082, "scanner": "foundry_dataset", "fingerprint": "3eb7172f373d0f30eb970b4a4b6b0ad19eb8e72f5c010577c1600a6efda1b73b", "category": "practices", "severity": "medium", "confidence": 0.62, "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": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "saumyaMMF/chat_bot#1", "human_labels": ["data_schema_persistence", "schema_or_data", "source_or_other"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.807, "repo_full_name": "saumyaMMF/chat_bot", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-befea7a36998a044", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"schema_or_data": 2, "source_or_other": 1}, "linked_commit_count": 2, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 3\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'schema_or_data': 2, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b3ad1ef6527404f8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/saumyaMMF/chat_bot/pull/1\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: saumyaMMF/chat_bot\\nAuthor: pranaypatodi17 (User)\\nURL: https://github.com/saumyaMMF/chat_bot/pull/1\\nTitle: fix(chatbot): schema-ground NL->SQL for orders queries\\nBody:\\n## What\\nFixes the chatbot generating wrong SQL for order questions (e.g. \\\"how many orders added today, list details\\\"). Three layered fixes \u2014 all had to agree for the 3B model to get it right:\\n\\n1. **Table-complete schema retrieval** (`app/chatbot/schema_store.py`) \u2014 `retrieve_top_k` returned only 8 loose cards across tables, so the model never saw a table's full column set and invented columns (`d.OrderNumber`) and cross-domain joins. Now: once any card of a table is in top-k, ALL of that table's column cards are injected from the in-memory snapshot.\\n2. **Table disambiguation** (`data/schema_definitions.json`) \u2014 `rhize_orders` and `rhize_dataset_main` both read as \\\"your own sales/revenue\\\", so the model couldn't tell which meant \\\"orders\\\" and \\\"added\\\" pulled it to `dataset_main`'s `Flag='Added'`. Reworded: orders = THE table for the word \\\"order(s)\\\" (preference rule); dataset_main = daily on-shelf product/inventory summary, NOT order recor\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-798b85f56e8864de\",\n    \"filename\": \"app/chatbot/schema_store.py\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"modified\",\n    \"additions\": 23,\n    \"deletions\": 0,\n    \"changes\": 23,\n    \"blob_url\": \"https://github.com/saumyaMMF/chat_bot/blob/60b08924436447c0a06ae6b5bdad700b172402ab/app%2Fchatbot%2Fschema_store.py\"\n  },\n  {\n    \"id\": \"github-pr-file-file-24845aaafb7b4b82\",\n    \"filename\": \"data/examples.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 15,\n    \"deletions\": 3,\n    \"changes\": 18,\n    \"blob_url\": \"https://github.com/saumyaMMF/chat_bot/blob/60b08924436447c0a06ae6b5bdad700b172402ab/data%2Fexample\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/saumyaMMF/chat_bot", "source_id": "comment-chain-pattern-assumption_checks-fa84d56574e535c0", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "saumyaMMF/chat_bot", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: saumyaMMF/chat_bot"}, "properties": {"repobilityId": 340948, "scanner": "foundry_dataset", "fingerprint": "871d465106666d8eaeb2d14fb03a8c588302aba5b5613e85046b545bcd88cb88", "category": "testing", "severity": "high", "confidence": 0.78, "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": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 2, "schema_or_data": 2, "source_or_other": 1, "partial blueprint fit": 1, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "saumyaMMF/chat_bot#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "saumyaMMF/chat_bot", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9bfe186a5bfb6d95", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"schema_or_data": 8, "source_or_other": 4}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'comment_chain_links_commit': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'schema_or_data': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/saumyaMMF/chat_bot", "source_id": "graph-query-motif_query-1587a0fc5ac1ea1e", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "saumyaMMF/chat_bot", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: saumyaMMF/chat_bot"}, "properties": {"repobilityId": 330924, "scanner": "foundry_dataset", "fingerprint": "0ccd099599696bcf0020c65ee8d3f45187433216d1ffddbb034b3c1017da6328", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "schema_or_data": 2, "source_or_other": 1, "partial blueprint fit": 1, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "saumyaMMF/chat_bot#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "saumyaMMF/chat_bot", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a36164376966a9d2", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"schema_or_data": 8, "source_or_other": 4}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: saumyaMMF/chat_bot\nThread: saumyaMMF/chat_bot#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: saumyaMMF/chat_bot#1\nRepo: saumyaMMF/chat_bot\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 31\nNode types: {'link_quality': 5, 'pr_file': 3, 'commit': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'comment_chain_links_commit': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'schema_or_data': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/saumyaMMF/chat_bot", "source_id": "graph-query-motif_query-311576d44bddde92", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "saumyaMMF/chat_bot", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "scanner-79f0742d0ba6d07a", "level": "note", "message": {"text": "Possibly dead Python function: require_hmac"}, "properties": {"repobilityId": "4dacb13dc6fea744", "scanner": "scanner-primary", "fingerprint": "79f0742d0ba6d07a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/main.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd13dfe483559633", "level": "note", "message": {"text": "Possibly dead Python function: require_service_token"}, "properties": {"repobilityId": "10603a71e54ae1e2", "scanner": "scanner-primary", "fingerprint": "fd13dfe483559633", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/main.py:78"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-afc62ba80f54da02", "level": "note", "message": {"text": "Possibly dead Python function: filter"}, "properties": {"repobilityId": "7da968b6f6ed2422", "scanner": "scanner-primary", "fingerprint": "afc62ba80f54da02", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/main.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b82ddf0465ee018", "level": "note", "message": {"text": "Possibly dead Python function: rate_limit"}, "properties": {"repobilityId": "ca81e3996cd68a6a", "scanner": "scanner-primary", "fingerprint": "1b82ddf0465ee018", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/main.py:223"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1854009ebe4d541f", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "1854009ebe4d541f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/chatbot/normalize_question.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c48eff485bb502b1", "level": "note", "message": {"text": "Possibly dead Python function: embed_cache_stats"}, "properties": {"repobilityId": "af4b5016a9f4db92", "scanner": "scanner-primary", "fingerprint": "c48eff485bb502b1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/chatbot/embed_client.py:110"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0b0f0b88ec62f99d", "level": "note", "message": {"text": "Possibly dead Python function: invalidate_all"}, "properties": {"repobilityId": "54d9491265152509", "scanner": "scanner-primary", "fingerprint": "0b0f0b88ec62f99d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/chatbot/_perf_cache.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dee2453f733f56aa", "level": "note", "message": {"text": "Possibly dead Python function: retrieve_match"}, "properties": {"repobilityId": "be44af05a9e2ca1b", "scanner": "scanner-primary", "fingerprint": "dee2453f733f56aa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/chatbot/fast_path_store.py:188"}, "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-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-9e4ca485ad090cb9", "level": "note", "message": {"text": "Very large file: app/chatbot/chat_service.py (1576 lines)"}, "properties": {"repobilityId": "26448a3d56ba0d49", "scanner": "scanner-primary", "fingerprint": "9e4ca485ad090cb9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"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": "8347e6b1214a3e23", "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": "794b64e80fed9cab", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d7334767c68a6b7a", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "d643c56ca9bdf5d7", "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": "80c9bb3721756ec1", "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": "719aed5314a58fb3", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea0589660a23a168", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/config.py:37"}, "properties": {"repobilityId": "d2a6ceb316107ddd", "scanner": "scanner-primary", "fingerprint": "ea0589660a23a168", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85dda31283297423", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/main.py:31"}, "properties": {"repobilityId": "9fedf64e812ac7e7", "scanner": "scanner-primary", "fingerprint": "85dda31283297423", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f510020c6c7f503", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/chatbot/pronoun_anchor.py:51"}, "properties": {"repobilityId": "cc83f4f46ea03729", "scanner": "scanner-primary", "fingerprint": "8f510020c6c7f503", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dde752276d1a65cf", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/chatbot/chat_service.py:71"}, "properties": {"repobilityId": "dcb7e1555ad5bf16", "scanner": "scanner-primary", "fingerprint": "dde752276d1a65cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17480e0286036b12", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/chatbot/sql_guard_mysql.py:55"}, "properties": {"repobilityId": "083a4189f37ad5c1", "scanner": "scanner-primary", "fingerprint": "17480e0286036b12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd7c8f99d62c6171", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/chatbot/schema_store.py:255"}, "properties": {"repobilityId": "1c09b480df003768", "scanner": "scanner-primary", "fingerprint": "fd7c8f99d62c6171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87fbdcb99aca6c71", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/chatbot/readonly_db_mysql.py:79"}, "properties": {"repobilityId": "d01d31f56d01fa62", "scanner": "scanner-primary", "fingerprint": "87fbdcb99aca6c71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29d0cf44236e55a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/chatbot/sanitize.py:43"}, "properties": {"repobilityId": "172e55d02325d512", "scanner": "scanner-primary", "fingerprint": "29d0cf44236e55a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dff485818888c7d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/chatbot/prompt_builder.py:520"}, "properties": {"repobilityId": "3d583ad4a903fe6f", "scanner": "scanner-primary", "fingerprint": "dff485818888c7d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319e66a630e14977", "level": "none", "message": {"text": "2 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d838d1fc5d8231c9", "scanner": "scanner-primary", "fingerprint": "319e66a630e14977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f72f06f4240b5646", "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": "21e2d5b445d859b0", "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": "8a377f950179b856", "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": "4466f37c5cf48fe4", "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": "62a1310124087fba", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-20266cc634efd212", "level": "note", "message": {"text": "Unused endpoint: POST /warmup"}, "properties": {"repobilityId": "0fd5d35597127e9d", "scanner": "scanner-primary", "fingerprint": "20266cc634efd212", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cff8da5fbc19c76d", "level": "note", "message": {"text": "Unused endpoint: POST /chat"}, "properties": {"repobilityId": "3cd34c6d4ca02e30", "scanner": "scanner-primary", "fingerprint": "cff8da5fbc19c76d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}