{"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_unresolved_feedback", "name": "Foundry mined unresolved feedback: sahilv04/personal-portfolio", "shortDescription": {"text": "Foundry mined unresolved feedback: sahilv04/personal-portfolio"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sahilv04/personal-portfolio#3\nRepo: sahilv04/personal-portfolio\nIssue/PR number: 3\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 28\nNode types: {'link_quality': 4, 'pr_file': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: sahilv04/personal-portfolio", "shortDescription": {"text": "Foundry mined bad chains: sahilv04/personal-portfolio"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sahilv04/personal-portfolio#3\nRepo: sahilv04/personal-portfolio\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 1, 'dependency_or_build': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9e02e9f80fb8a97a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n   "}, "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: sahilv04/personal-portfolio", "shortDescription": {"text": "Foundry mined mock as real or placeholder: sahilv04/personal-portfolio"}, "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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#2\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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sahilv04/personal-portfolio#2\nRepo: sahilv04/personal-portfolio\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 55\nEdges: 81\nNode types: {'pr_file': 45, 'link_quality': 3, 'thread"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-098c48821cf3d6bd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/jsonld.tsx:286", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/jsonld.tsx:286"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60277d0cc9d2014f", "name": "Insecure pattern 'dangerous_innerhtml' in lib/jsonld.tsx:286", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in lib/jsonld.tsx:286"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 59 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 20 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, tests. 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": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18751"}, "properties": {"repository": "sahilv04/personal-portfolio", "repoUrl": "https://github.com/sahilv04/personal-portfolio", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 369756, "scanner": "foundry_dataset", "fingerprint": "7002e87821706c54ce656b9025d20a6fe5e7361ecea5981b93b5b598b2fdfd74", "category": "practices", "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 without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"ui_or_frontend": 1, "deployment_env_gap": 1, "dependency_or_build": 2, "build_install_failure": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 3, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 2, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 15, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "sahilv04/personal-portfolio#3", "issue_number": "3", "quality_tiers": {"unresolved": 4}, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-36ff605621ba3df6", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"ui_or_frontend": 5, "dependency_or_build": 10}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sahilv04/personal-portfolio#3\nRepo: sahilv04/personal-portfolio\nIssue/PR number: 3\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 28\nNode types: {'link_quality': 4, 'pr_file': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 6, 'chain_has_link_quality': 4, 'thread_touches_file': 3, 'issue_chain_touches_file': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'dependency_or_build': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'deployment_env_gap': 1, 'ui_or_frontend': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sahilv04/personal-portfolio", "source_id": "graph-query-motif_query-a81be1db6567a8ef", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "sahilv04/personal-portfolio", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 322547, "scanner": "foundry_dataset", "fingerprint": "5248fb5e3239ae07e6fc9a7eb369e12e67e559ee57a43ddb593282263c6dd48d", "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": "sahilv04/personal-portfolio#3", "human_labels": ["build_install_failure", "dependency_or_build", "deployment_env_gap", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f4d1cce4e5ffba1a", "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": {"ui_or_frontend": 1, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#3\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sahilv04/personal-portfolio#3\nRepo: sahilv04/personal-portfolio\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 1, 'dependency_or_build': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9e02e9f80fb8a97a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sahilv04/personal-portfolio/pull/3\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: sahilv04/personal-portfolio\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/sahilv04/personal-portfolio/pull/3\\nTitle: Install Vercel Web Analytics\\nBody:\\nInstalled and configured Vercel Web Analytics for this Next.js project.\\n\\n## Implementation Summary\\n\\nSuccessfully integrated Vercel Web Analytics by following the latest official documentation from https://vercel.com/docs/analytics/quickstart\\n\\n## Changes Made\\n\\n### 1. Package Installation\\n- Installed `@vercel/analytics` version 2.0.1 using npm\\n- Updated package.json and package-lock.json accordingly\\n\\n### 2. Configuration\\n**Modified: app/layout.tsx**\\n- Added import statement: `import { Analytics } from \\\"@vercel/analytics/next\\\"`\\n- Added `<Analytics />` component at the end of the body element, after Footer\\n- This placement ensures analytics tracking is properly initialized for all pages\\n\\n### 3. Framework-Specific Implementation\\n- Used Next.js App Router specific instructions (importing from `@vercel/analytics/next`)\\n- Placed Analytics component in the root layout.tsx as recommended for Next.js 15 App Router\\n- Preserved existing code structure including\"\n  },\n  {\n    \"id\": \"github-feedback-comment-2cd1610f9e65fb74\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sahilv04/personal-portfolio/pull/3#issuecomment-4319558923\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: sahilv04/personal-portfolio\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/sahilv04/personal-portfolio/pull/3#issuecomment-4319558923\\nTitle: \\nBody:\\n[vc]: #KiTDG5tjv2Cs2fpKOlFdc/RYlOmqs+uibidQWZNTFmw=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJwZXJzb25hbC1wb3J0Zm9saW8iLCJwcm9qZWN0SWQ\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sahilv04/personal-portfolio", "source_id": "comment-chain-pattern-bad_chains-a26a1739fa53482a", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "sahilv04/personal-portfolio", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 322546, "scanner": "foundry_dataset", "fingerprint": "66d382d350d29f1718b298490e3afbacc152535ba5fff7d4e48c455d83bee5e3", "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": "sahilv04/personal-portfolio#2", "human_labels": ["dependency_or_build", "mock_placeholder", "source_or_other", "ui_or_frontend"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-0dfc4515854d5b11", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 45, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 37, "source_or_other": 6, "dependency_or_build": 2}, "linked_commit_count": 1, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#2\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sahilv04/personal-portfolio#2\nRepo: sahilv04/personal-portfolio\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 45\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 6, 'dependency_or_build': 2, 'ui_or_frontend': 37}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c4fc666237a610ed\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sahilv04/personal-portfolio/pull/2\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: sahilv04/personal-portfolio\\nAuthor: sahil-verma-wm (User)\\nURL: https://github.com/sahilv04/personal-portfolio/pull/2\\nTitle: Build immersive static Next.js portfolio for Sahil Verma\\nBody:\\n### Motivation\\n- Move the portfolio to a static Next.js App Router site to maximize SEO, crawlability, and pre-rendered performance.\\n- Provide a premium, immersive dark-brand design with glassmorphism, subtle 3D decoration, and strong professional positioning for Sahil Verma.\\n- Centralize SEO/GEO metadata, structured data, and static blog content so important content is crawlable and optimized for generative engines.\\n\\n### Description\\n- Scaffolded a TypeScript Next.js App Router site with static export enabled and Tailwind CSS, adding `next.config.ts`, `tsconfig.json`, `tailwind.config.ts`, and global styles in `src/app/globals.css`.\\n- Implemented site skeleton and pages under `src/app/` for `/`, `/about`, `/experience`, `/work`, `/skills`, `/contact`, `/blog`, and statically generated blog detail routes at `/blog/[slug]` including `generateStaticParams` and page-level `metadata` usage.\\n- Added reusable components and sect\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5b8560c96609d272\",\n    \"filename\": \".gitignore\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 6,\n    \"deletions\": 0,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/sahilv04/personal-portfolio/blob/f9b7738332b46d3149d215fd91430b8cfa28007c/.gitignore\"\n  },\n  {\n    \"id\": \"github-pr-file-file-74f2af455a9bbecc\",\n    \"filename\": \"eslint.config.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 7,\n    \"deletions\": 0,\n    \"changes\": 7,\n    \"blob_url\": \"https://github.com/sahilv04/personal-portfolio/blob/f9b7738332b46d3149d215fd91430b8cfa28007c/eslint.config.mjs\"\n  },\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sahilv04/personal-portfolio", "source_id": "comment-chain-pattern-bad_chains-1cd30803c272c831", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "sahilv04/personal-portfolio", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 322545, "scanner": "foundry_dataset", "fingerprint": "6b1f9c4958979d4c23fa58223c9c31ec5bb1413edce6d3c2eaeeb3a698d65055", "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": "sahilv04/personal-portfolio#1", "human_labels": ["dependency_or_build", "mock_placeholder", "source_or_other", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-45d95cc3ac667d3c", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 43, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 36, "source_or_other": 5, "dependency_or_build": 2}, "linked_commit_count": 3, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sahilv04/personal-portfolio#1\nRepo: sahilv04/personal-portfolio\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 43\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 5, 'dependency_or_build': 2, 'ui_or_frontend': 36}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-52f934e1cb697b30\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sahilv04/personal-portfolio/pull/1\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: sahilv04/personal-portfolio\\nAuthor: sahil-verma-wm (User)\\nURL: https://github.com/sahilv04/personal-portfolio/pull/1\\nTitle: Add static Next.js portfolio for Sahil Verma with SEO/GEO and blog\\nBody:\\n### Motivation\\n- Provide a premium, SEO- and GEO-optimized personal portfolio for Sahil Verma built as a static Next.js App Router site for fast, crawlable pages.\\n- Deliver a professional, dark-themed, immersive design that preserves important content as real HTML while adding decorative 3D visuals.\\n- Centralize profile and blog content so pages are statically generated and easy to maintain.\\n\\n### Description\\n- Implemented a complete static-ready Next.js (App Router + TypeScript + Tailwind) site under `src/` with pages for `/`, `/about`, `/experience`, `/work`, `/skills`, `/contact`, `/blog`, and statically generated `/blog/[slug]` using `generateStaticParams` and per-page `generateMetadata`.\\n- Added SEO/GEO infrastructure including `src/lib/seo.ts`, `src/lib/site.ts`, `robots.ts`, `sitemap.ts`, `manifest.ts`, JSON-LD components (`PersonJsonLd`, `WebsiteJsonLd`, `FAQJsonLd`, `ArticleJsonLd`), metadata templates, \"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-44c52d4d5b6003dd\",\n    \"filename\": \".gitignore\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 22,\n    \"deletions\": 0,\n    \"changes\": 22,\n    \"blob_url\": \"https://github.com/sahilv04/personal-portfolio/blob/656eab4b2dbc2dcf4b6f3eeef79a42fec9d57ee7/.gitignore\"\n  },\n  {\n    \"id\": \"github-pr-file-file-27202c739012242b\",\n    \"filename\": \"eslint.config.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 10,\n    \"deletions\": 0,\n    \"changes\": 10,\n    \"blob_url\": \"https://github.com/sahilv04/personal-portfolio/blob/656eab4b2dbc2dcf4b6f3eeef79a42fec9d57ee7/eslint.config.mjs\"\n  },\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sahilv04/personal-portfolio", "source_id": "comment-chain-pattern-bad_chains-40ea91d089856a71", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "sahilv04/personal-portfolio", "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: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 327095, "scanner": "foundry_dataset", "fingerprint": "cc253cb46b0aa7bd04d96e461ab3374a1ab73cf9108cbae57d78da2e0a7cd3f9", "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": {"data_schema": 1, "ui_or_frontend": 37, "source_or_other": 6, "mock_placeholder": 1, "dependency_or_build": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 81, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 45, "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": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 55, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 45, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "sahilv04/personal-portfolio#2", "issue_number": "2", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9102b01554b2e8cf", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 148, "source_or_other": 24, "dependency_or_build": 8}}, "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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#2\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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sahilv04/personal-portfolio#2\nRepo: sahilv04/personal-portfolio\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 55\nEdges: 81\nNode types: {'pr_file': 45, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 45, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 37, 'source_or_other': 6, 'claimed_resolved_unverified': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1}\nOutcomes: {'claimed_resolved_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/sahilv04/personal-portfolio", "source_id": "graph-query-motif_query-6ebb1be7c4aeb2e4", "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": "sahilv04/personal-portfolio", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: sahilv04/personal-portfolio"}, "properties": {"repobilityId": 327094, "scanner": "foundry_dataset", "fingerprint": "8e21c1f0bd4d460a614ae0529153061b97dfd2ae5c3cc71e0d75085609096c07", "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": {"bug_fix": 1, "feature": 1, "data_schema": 1, "ui_or_frontend": 36, "source_or_other": 5, "mock_placeholder": 1, "dependency_or_build": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 81, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 43, "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": 3, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 55, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 43, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "sahilv04/personal-portfolio#1", "issue_number": "1", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "sahilv04/personal-portfolio", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-62510125808dd72f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 144, "source_or_other": 20, "dependency_or_build": 8}}, "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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#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: sahilv04/personal-portfolio\nThread: sahilv04/personal-portfolio#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sahilv04/personal-portfolio#1\nRepo: sahilv04/personal-portfolio\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 55\nEdges: 81\nNode types: {'pr_file': 43, 'commit': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 43, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 3, 'chain_has_link_quality': 3, '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: {'ui_or_frontend': 36, 'source_or_other': 5, 'claimed_resolved_unverified': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'bug_fix': 1, 'feature': 1}\nOutcomes: {'claimed_resolved_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/sahilv04/personal-portfolio", "source_id": "graph-query-motif_query-fdb4d03f00232160", "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": "sahilv04/personal-portfolio", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-098c48821cf3d6bd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/jsonld.tsx:286"}, "properties": {"repobilityId": "ff80ae54a0e34f77", "scanner": "scanner-primary", "fingerprint": "098c48821cf3d6bd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-60277d0cc9d2014f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in lib/jsonld.tsx:286"}, "properties": {"repobilityId": "8042f885687c0726", "scanner": "scanner-primary", "fingerprint": "60277d0cc9d2014f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/jsonld.tsx"}, "region": {"startLine": 286}}}]}, {"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-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e3552ab5bbb273f0", "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": "8755e41e3fa821bf", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "dd3d24f4e4a86a66", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "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": "7c61f5818c446b6f", "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": "be1cb41877e120c4", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}]}]}