{"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: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'threa"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#8\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 25\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 16, 'api_or_backend': 1, 'schema_or_data': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-27b29b8f20127"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'i"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-522e92c7cb6e3741\","}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: vazzocomercio-wq/eclick-backend", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: vazzocomercio-wq/eclick-backend"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#14\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 14\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 29\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comme"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "scanner-8afd3dd273b06177", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-rollup.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-rollup.ts:88"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-caa8077e91cb140a", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry.ts:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-940e742699a67010", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-ai.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-ai.ts:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-899f68b564f748f8", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-geo-score.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-geo-score.ts:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c55b428468a5f37", "name": "Stray `console.log` in TS/JS \u2014 workers/src/index.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/index.ts:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a26c97398138fb0", "name": "Stray `console.log` in TS/JS \u2014 workers/src/internal-server.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/internal-server.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27ac0ae9d74cf036", "name": "Stray `console.log` in TS/JS \u2014 workers/src/radar/util.ts:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/radar/util.ts:5"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-731ac149689d28ef", "name": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.session.ts:232", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.session.ts:232"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29fb0d4b9d21b75c", "name": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.manager.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.manager.ts:45"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-987c89193a0eeecc", "name": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/internal-api-client.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/internal-api-client.ts:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4a0aa236d1f96f4", "name": "Stray `console.log` in TS/JS \u2014 src/main.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/main.ts:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e78f1c2e49a113e", "name": "TODO/FIXME marker in shipping code \u2014 src/common/retry.ts:43", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/common/retry.ts:43"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e837be3eb48d996e", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/public-audits/public-audit-nurture.templates.ts:21", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/public-audits/public-audit-nurture.templates.ts:21"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-000faa69abfcb061", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/ph3a.provider.ts:32", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/ph3a.provider.ts:32"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9067d84850f0a72", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/directdata.provider.ts:45", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/directdata.provider.ts:45"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf51747c6b7d4ffe", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/ai/llm.service.ts:702", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/ai/llm.service.ts:702"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64da1f5ad09ecfc9", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/internal/internal.controller.ts:93", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/internal/internal.controller.ts:93"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc242a6b12e7f8b5", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/bonus/bonus.service.ts:216", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/bonus/bonus.service.ts:216"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c3fb2a37437e5ea", "name": "Stray `console.log` in TS/JS \u2014 src/modules/mercadolivre/mercadolivre.service.ts:404", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/modules/mercadolivre/mercadolivre.service.ts:404"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-163a104be22617cb", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-intelligence/signals/product-snapshot.service.ts:312", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-intelligence/signals/product-snapshot.service.ts:312"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-989dbf1c3d274781", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/sales-aggregator/services/new-sale-notifier.service.ts:203", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/sales-aggregator/services/new-sale-notifier.service.ts:203"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d841033bfad3961", "name": "Stray `console.log` in TS/JS \u2014 src/modules/sales-aggregator/services/backfill.service.ts:162", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/modules/sales-aggregator/services/backfill.service.ts:162"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-422fb5df8ffe4679", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-ai/pricing-ai.service.ts:472", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-ai/pricing-ai.service.ts:472"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd9429b35f7e33cd", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/shipping/shipping.service.ts:167", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/shipping/shipping.service.ts:167"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-534fecdea2cb6565", "name": "TODO/FIXME marker in shipping code \u2014 src/modules/webhooks/webhooks.controller.ts:64", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/webhooks/webhooks.controller.ts:64"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a35c6a00f751880f", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6163a16779e68969", "name": "Dockerfile runs as root: workers/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: workers/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-929e195bcd6de972", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab35f06a3e793b91", "name": "Insecure pattern 'node_child_process' in scripts/bulk-audit-vazzo.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/bulk-audit-vazzo.mjs:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbc2b2d86e7418e3", "name": "Possible secret in scripts/smoke-f12-fulfillment.mjs", "shortDescription": {"text": "Possible secret in scripts/smoke-f12-fulfillment.mjs"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-8b64d3c7ca7ea151", "name": "Insecure pattern 'exec_used' in scripts/backfill-shipping-addresses.mjs:170", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/backfill-shipping-addresses.mjs:170"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64c985f5a2ae1581", "name": "Insecure pattern 'node_child_process' in src/common/ffmpeg.ts:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/common/ffmpeg.ts:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a6748ec11accb64", "name": "Insecure pattern 'new_function_used' in src/modules/fulfillment/fulfillment-sefaz.service.ts:13", "shortDescription": {"text": "Insecure pattern 'new_function_used' in src/modules/fulfillment/fulfillment-sefaz.service.ts:13"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-796d7bf350c57b89", "name": "Insecure pattern 'cors_wildcard' in src/modules/events/events.gateway.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in src/modules/events/events.gateway.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b1ccc5f348197fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/modules/widgets/widget-public.controller.ts:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/modules/widgets/widget-public.controller.ts:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ad37ef616e6fd27", "name": "Insecure pattern 'cors_wildcard' in src/modules/widgets/widget-public.controller.ts:88", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in src/modules/widgets/widget-public.controller.ts:88"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78fe6aa85bfb9c3e", "name": "Insecure pattern 'cors_wildcard' in src/modules/webhooks/webhooks.controller.ts:167", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in src/modules/webhooks/webhooks.controller.ts:167"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33922fcbade3ea6e", "name": "Very large file: src/modules/creative/creative-video-pipeline.service.ts (1543 lines)", "shortDescription": {"text": "Very large file: src/modules/creative/creative-video-pipeline.service.ts (1543 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-327b5f545b1a901e", "name": "Very large file: src/modules/creative/creative.service.ts (1746 lines)", "shortDescription": {"text": "Very large file: src/modules/creative/creative.service.ts (1746 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-022cae0fb77558b7", "name": "Very large file: src/modules/creative/creative-image-pipeline.service.ts (1368 lines)", "shortDescription": {"text": "Very large file: src/modules/creative/creative-image-pipeline.service.ts (1368 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-f7181702c723b8d8", "name": "Very large file: src/modules/creative/creative-ml-publisher.service.ts (1568 lines)", "shortDescription": {"text": "Very large file: src/modules/creative/creative-ml-publisher.service.ts (1568 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b86e0c1c0897e83b", "name": "Very large file: src/modules/fulfillment/fulfillment.service.ts (1120 lines)", "shortDescription": {"text": "Very large file: src/modules/fulfillment/fulfillment.service.ts (1120 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-14ec4df8e75c2590", "name": "Very large file: src/modules/orders/orders.service.ts (1927 lines)", "shortDescription": {"text": "Very large file: src/modules/orders/orders.service.ts (1927 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-68de0d40a2f88b9d", "name": "Very large file: src/modules/marketplace/adapters/shopee.adapter.ts (2213 lines)", "shortDescription": {"text": "Very large file: src/modules/marketplace/adapters/shopee.adapter.ts (2213 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-7bfaecd809c1e4b1", "name": "Very large file: src/modules/ml-ads/ml-ads.service.ts (1299 lines)", "shortDescription": {"text": "Very large file: src/modules/ml-ads/ml-ads.service.ts (1299 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-059ccb578ceac9c6", "name": "Very large file: src/modules/tiktok-shop/tiktok-shop.service.ts (2034 lines)", "shortDescription": {"text": "Very large file: src/modules/tiktok-shop/tiktok-shop.service.ts (2034 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-285aff320d74cb93", "name": "Very large file: src/modules/multiplier/multiplier.service.ts (1222 lines)", "shortDescription": {"text": "Very large file: src/modules/multiplier/multiplier.service.ts (1222 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-6a37833aa6dfd773", "name": "Very large file: src/modules/mercadolivre/mercadolivre.service.ts (3196 lines)", "shortDescription": {"text": "Very large file: src/modules/mercadolivre/mercadolivre.service.ts (3196 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-3a2a995bbc564b85", "name": "Very large file: src/modules/copilot/copilot.kb.ts (3322 lines)", "shortDescription": {"text": "Very large file: src/modules/copilot/copilot.kb.ts (3322 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-293620ed7247926d", "name": "Very large file: src/modules/dropship/dropship.service.ts (4639 lines)", "shortDescription": {"text": "Very large file: src/modules/dropship/dropship.service.ts (4639 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "11 test file(s) for 800 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99ab1557271d72be", "name": "63 TODO/FIXME markers", "shortDescription": {"text": "63 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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 468 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 30 placeholder/mock markers across 21 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44db455f53380a66", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ml-categories-crawl.mjs:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ml-categories-crawl.mjs:70"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d492e86bf47a139", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/store-geo-diagnostic.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/store-geo-diagnostic.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f29c39e79b6a4162", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dashboard.mjs:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dashboard.mjs:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6cc4e2743179af4a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-deal.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-deal.mjs:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da20a153a8fbc7be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-suggestions-variants.mjs:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-suggestions-variants.mjs:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce5d5fcc8b2603d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rank-sim.mjs:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rank-sim.mjs:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb396ee05e83e86e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-backfill.mjs:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-backfill.mjs:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dfda182034f49247", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-f11.mjs:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-f11.mjs:61"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab57dd3768fe5539", "name": "Legacy-named symbol `description_old` in scripts/optimize-draft.mjs:48", "shortDescription": {"text": "Legacy-named symbol `description_old` in scripts/optimize-draft.mjs:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ca083c71c5cdfbe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimize-draft.mjs:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimize-draft.mjs:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6765e6c4a1d1709f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/meta-catalog-check.mjs:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/meta-catalog-check.mjs:24"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37c6dff36c473852", "name": "Legacy-named symbol `dOld` in scripts/pilot-apply.mjs:83", "shortDescription": {"text": "Legacy-named symbol `dOld` in scripts/pilot-apply.mjs:83"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd4edc69715721c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4474ad9c9b98548e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bulk-audit-vazzo.mjs:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bulk-audit-vazzo.mjs:52"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-660daa49beb9e76c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-postsale-messages.mjs:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-postsale-messages.mjs:48"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-977a2c3cff02265a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints-v2.mjs:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints-v2.mjs:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a793c0e4d3df7a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints.mjs:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints.mjs:55"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-babe8ada523b8cad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates.mjs:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates.mjs:24"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9480cb5a5e7c9442", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-detail.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-detail.mjs:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d8e657c96f380e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-reputation.mjs:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-reputation.mjs:81"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-79c38846bc61ca5d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-impact.mjs:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-impact.mjs:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9a8e6e94f773aa6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-full-fulfillment.mjs:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-full-fulfillment.mjs:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff9db988a2e3d1cd", "name": "Legacy-named symbol `ml_api_v1` in scripts/seed-f11-item-visits.mjs:93", "shortDescription": {"text": "Legacy-named symbol `ml_api_v1` in scripts/seed-f11-item-visits.mjs:93"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-515e299f8cc50754", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-item-visits.mjs:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-item-visits.mjs:49"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d94768d4d4627209", "name": "Legacy-named symbol `orders_v2` in scripts/backfill-shipping-addresses.mjs:7", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in scripts/backfill-shipping-addresses.mjs:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eb02ab9bd5e79f7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-logistics.mjs:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-logistics.mjs:39"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e4557e7c12071ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-ml-campaigns-sync.mjs:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-ml-campaigns-sync.mjs:29"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1427551a4d6c315", "name": "Commented-code block (7 lines) in scripts/kling-probe.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/kling-probe.mjs:1"}, "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-cdb32b90b9c5bd66", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-taxonomy-import.mjs:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-taxonomy-import.mjs:39"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b821c696e3841afc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-geo-score.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-geo-score.ts:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-011a78107ed23b43", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns.mjs:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns.mjs:31"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cad8297d794b3366", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-category-backfill.mjs:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-category-backfill.mjs:48"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca02af0cf50186a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates-enriched.mjs:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates-enriched.mjs:34"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec3ddbb8cce65c3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply-ids.mjs:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply-ids.mjs:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-638f5e096580d3bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-verify.mjs:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-verify.mjs:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6f8e7c151a031b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-visits.mjs:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-visits.mjs:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2bad72faecf606e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/ml-api.ts:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/ml-api.ts:16"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17de23484bffcc10", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/token-client.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/token-client.ts:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f89a4b8f1353822", "name": "Commented-code block (5 lines) in src/constants/ai-models.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/constants/ai-models.ts:1"}, "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-52db9964be11051e", "name": "Commented-code block (5 lines) in src/modules/creative/creative-video-pipeline.service.ts:298", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-video-pipeline.service.ts:298"}, "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-e5f9924292159661", "name": "Commented-code block (5 lines) in src/modules/creative/creative-image-pipeline.service.ts:355", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-image-pipeline.service.ts:355"}, "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-2bb341b345e41f2a", "name": "Commented-code block (5 lines) in src/modules/creative/creative-template-resolution.service.ts:192", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-template-resolution.service.ts:192"}, "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-7b3de3439d9e037c", "name": "Commented-code block (5 lines) in src/modules/creative/creative-ml-publisher.service.ts:497", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-ml-publisher.service.ts:497"}, "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-1d0aac419353654d", "name": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-sync.cron.ts:12", "shortDescription": {"text": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-sync.cron.ts:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83810f2d34d87dcf", "name": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-api.client.ts:68", "shortDescription": {"text": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-api.client.ts:68"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54e7e9d70dc2721b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/geo-radar/geo-radar.service.ts:197", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/geo-radar/geo-radar.service.ts:197"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ab56fe480520586", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/organic/organic-collector.service.ts:364", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/organic/organic-collector.service.ts:364"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ec937ba562e799b", "name": "Legacy-named symbol `orders_v2` in src/modules/fulfillment/fulfillment.service.ts:335", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/fulfillment/fulfillment.service.ts:335"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ee3577ddbf1648b", "name": "Commented-code block (5 lines) in src/modules/fulfillment/fulfillment.service.ts:313", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/fulfillment/fulfillment.service.ts:313"}, "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-2d2e0cc6d285d5b6", "name": "Commented-code block (5 lines) in src/modules/orders/orders.service.ts:1539", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/orders/orders.service.ts:1539"}, "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-577782efd4811d53", "name": "Commented-code block (5 lines) in src/modules/atendente-ia/ai-responder.service.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/atendente-ia/ai-responder.service.ts:61"}, "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-acf5dc90aaf1365c", "name": "Legacy-named symbol `campaign_copy` in src/modules/ai/defaults.ts:12", "shortDescription": {"text": "Legacy-named symbol `campaign_copy` in src/modules/ai/defaults.ts:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0868196792eec4be", "name": "Commented-code block (5 lines) in src/modules/ai/llm.service.ts:616", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ai/llm.service.ts:616"}, "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-41451e579e8a47b4", "name": "Commented-code block (5 lines) in src/modules/marketplace/marketplace-webhooks.service.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/marketplace/marketplace-webhooks.service.ts:70"}, "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-3e0c5e4044917644", "name": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/adapters/shopee.adapter.ts:733", "shortDescription": {"text": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/adapters/shopee.adapter.ts:733"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cabdeb022afe27a3", "name": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/shopee-campaigns/shopee-promo-write.service.ts:465", "shortDescription": {"text": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/shopee-campaigns/shopee-promo-write.service.ts:465"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f9ef33aa0e25083", "name": "Commented-code block (5 lines) in src/modules/marketplace/shopee-sync/shopee-stock-sync.service.ts:175", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/marketplace/shopee-sync/shopee-stock-sync.service.ts:175"}, "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-cba24f230909ad9b", "name": "Commented-code block (6 lines) in src/modules/marketplace/shopee-sync/shopee-orders-ingestion.service.ts:247", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/marketplace/shopee-sync/shopee-orders-ingestion.service.ts:247"}, "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-668c689b52400953", "name": "Commented-code block (5 lines) in src/modules/marketplace/shopee-creative/shopee-creative.service.ts:171", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/marketplace/shopee-creative/shopee-creative.service.ts:171"}, "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-3b436fd32d02418b", "name": "Commented-code block (6 lines) in src/modules/store-automation/store-automation.worker.ts:147", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/store-automation/store-automation.worker.ts:147"}, "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-467af673349b4dce", "name": "Commented-code block (5 lines) in src/modules/ml-ads/ml-ads.service.ts:796", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ml-ads/ml-ads.service.ts:796"}, "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-53781e444fe84cb7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/internal/social-video-bridge.service.ts:268", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/internal/social-video-bridge.service.ts:268"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aed127699caa1db4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/access/stripe-platform.service.ts:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/access/stripe-platform.service.ts:58"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b8f807d01922de0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/ads-campaigns/meta-ads.service.ts:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/ads-campaigns/meta-ads.service.ts:101"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36c5a621affd2132", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/widgets/widget-public.controller.ts:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/widgets/widget-public.controller.ts:204"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d1fbbc9ba7bb6c1", "name": "Commented-code block (5 lines) in src/modules/intelligence-hub/alert-managers.service.ts:162", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/intelligence-hub/alert-managers.service.ts:162"}, "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-7fe006f4c15b883d", "name": "Legacy-named symbol `isLegacy` in src/modules/customers/customer-identity.service.ts:208", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in src/modules/customers/customer-identity.service.ts:208"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40a1a00706d0338e", "name": "Commented-code block (7 lines) in src/modules/stock/stock.service.ts:22", "shortDescription": {"text": "Commented-code block (7 lines) in src/modules/stock/stock.service.ts:22"}, "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-3f2b038a440b7e69", "name": "Commented-code block (6 lines) in src/modules/loyalty/loyalty.service.ts:231", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/loyalty/loyalty.service.ts:231"}, "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-70bc202f9d6e4ca7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/meta-capi/meta-capi.service.ts:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/meta-capi/meta-capi.service.ts:122"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c50f43003783638", "name": "Commented-code block (6 lines) in src/modules/social-commerce/meta-catalog.service.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/social-commerce/meta-catalog.service.ts:30"}, "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-17d4eeac5e919595", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/social-commerce/meta-catalog.service.ts:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/social-commerce/meta-catalog.service.ts:150"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-252b792d525191a5", "name": "Commented-code block (5 lines) in src/modules/social-commerce/social-commerce.service.ts:592", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/social-commerce/social-commerce.service.ts:592"}, "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-d2dc6397424b1938", "name": "Commented-code block (5 lines) in src/modules/tiktok-shop/tiktok-shop.service.ts:285", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/tiktok-shop/tiktok-shop.service.ts:285"}, "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-6297a4f39497c6fa", "name": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns.controller.ts:616", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns.controller.ts:616"}, "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-d5bddc175ad0f6ec", "name": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns-decision.service.ts:284", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns-decision.service.ts:284"}, "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-230aba2e6baa3c1f", "name": "Commented-code block (5 lines) in src/modules/ml-listing/ml-listing.controller.ts:589", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ml-listing/ml-listing.controller.ts:589"}, "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-402c35a754412940", "name": "Commented-code block (5 lines) in src/modules/multiplier/multiplier.service.ts:877", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/multiplier/multiplier.service.ts:877"}, "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-c1c1791185a99a4e", "name": "Legacy-named symbol `description_old` in src/modules/ai-visibility/geo-optimizer/geo-optimizer.controller.ts:83", "shortDescription": {"text": "Legacy-named symbol `description_old` in src/modules/ai-visibility/geo-optimizer/geo-optimizer.controller.ts:83"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-500180d003ee7160", "name": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/tiktok-publisher.service.ts:72", "shortDescription": {"text": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/tiktok-publisher.service.ts:72"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25915122d334a869", "name": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:63", "shortDescription": {"text": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:63"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58d1a91eb7d69bfd", "name": "Commented-code block (7 lines) in src/modules/mercadolivre/mercadolivre.service.ts:2346", "shortDescription": {"text": "Commented-code block (7 lines) in src/modules/mercadolivre/mercadolivre.service.ts:2346"}, "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-310c31823923a3ab", "name": "Legacy-named symbol `fetchBillingInfoLegacy` in src/modules/mercadolivre/ml-billing-fetcher.service.ts:66", "shortDescription": {"text": "Legacy-named symbol `fetchBillingInfoLegacy` in src/modules/mercadolivre/ml-billing-fetcher.service.ts:66"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6a927ca0ffa094e", "name": "Commented-code block (7 lines) in src/modules/mercadolivre/ml-questions-ai.service.ts:254", "shortDescription": {"text": "Commented-code block (7 lines) in src/modules/mercadolivre/ml-questions-ai.service.ts:254"}, "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-deae115366f3036b", "name": "Commented-code block (6 lines) in src/modules/mercadolivre/mercadolivre.controller.ts:103", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/mercadolivre/mercadolivre.controller.ts:103"}, "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-898930f78858521e", "name": "Legacy-named symbol `_markSkippedLegacy` in src/modules/pricing-intelligence/signals/signal-notifier.service.ts:238", "shortDescription": {"text": "Legacy-named symbol `_markSkippedLegacy` in src/modules/pricing-intelligence/signals/signal-notifier.service.ts:238"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48063d2893a7043b", "name": "Legacy-named symbol `isLegacy` in src/modules/messaging/journey-engine.service.ts:184", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in src/modules/messaging/journey-engine.service.ts:184"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c47a61a93c5b05a", "name": "Commented-code block (5 lines) in src/modules/payments/payments.service.ts:245", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/payments/payments.service.ts:245"}, "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-9c85a5b81666ac30", "name": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/sales-aggregator.controller.ts:109", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/sales-aggregator.controller.ts:109"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0848719919df5fbb", "name": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/clients/mercado-livre-client.ts:191", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/clients/mercado-livre-client.ts:191"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca5f9c7e0b1be25c", "name": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/orders-ingestion.service.ts:68", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/orders-ingestion.service.ts:68"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b73b94df318df962", "name": "Commented-code block (6 lines) in src/modules/sales-aggregator/services/orders-ingestion.service.ts:207", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/sales-aggregator/services/orders-ingestion.service.ts:207"}, "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-ffafc278f1563aa6", "name": "Commented-code block (7 lines) in src/modules/sales-aggregator/services/new-sale-notifier.service.ts:41", "shortDescription": {"text": "Commented-code block (7 lines) in src/modules/sales-aggregator/services/new-sale-notifier.service.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8811c1718de82ae6", "name": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/backfill.service.ts:255", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/backfill.service.ts:255"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de47acfe707e2f7a", "name": "Legacy-named symbol `campaign_copy` in src/modules/campaigns/campaigns.service.ts:400", "shortDescription": {"text": "Legacy-named symbol `campaign_copy` in src/modules/campaigns/campaigns.service.ts:400"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d36f5061694c65a", "name": "Commented-code block (5 lines) in src/modules/marketplace-scraping/marketplace-scraping.service.ts:371", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/marketplace-scraping/marketplace-scraping.service.ts:371"}, "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-71e2c8b34cf6e5f6", "name": "Legacy-named symbol `ml_api_v1` in src/modules/ml-intelligence/visits-scanner/visits-scanner.service.ts:282", "shortDescription": {"text": "Legacy-named symbol `ml_api_v1` in src/modules/ml-intelligence/visits-scanner/visits-scanner.service.ts:282"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-874e968ec7fbbed2", "name": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts:64", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts:64"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c1067db4555a0d2", "name": "Commented-code block (5 lines) in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts: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-0af9fb03e0a45ad1", "name": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook.controller.ts:10", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook.controller.ts:10"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25e9a3f2291cb8c0", "name": "Commented-code block (5 lines) in src/modules/canva-oauth/canva-oauth.service.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/canva-oauth/canva-oauth.service.ts:265"}, "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-f1a1f53944b48f9b", "name": "Legacy-named symbol `campaign_copy` in src/modules/copilot/copilot.kb.ts:1379", "shortDescription": {"text": "Legacy-named symbol `campaign_copy` in src/modules/copilot/copilot.kb.ts:1379"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59a66329043f1978", "name": "Commented-code block (6 lines) in src/modules/copilot/copilot.kb.ts:3070", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/copilot/copilot.kb.ts:3070"}, "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-e44c42e3b660c0b5", "name": "Commented-code block (5 lines) in src/modules/products/products-enrichment.service.ts:969", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/products/products-enrichment.service.ts:969"}, "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-6cdca6c17bc07212", "name": "Commented-code block (6 lines) in src/modules/products/products.controller.ts:563", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/products/products.controller.ts:563"}, "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-454250cddc78941b", "name": "Commented-code block (6 lines) in src/modules/products/products.service.ts:93", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/products/products.service.ts:93"}, "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-7667d3b3620a1aa0", "name": "Commented-code block (5 lines) in src/modules/products/products-cadastro-dispatch.service.ts:115", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/products/products-cadastro-dispatch.service.ts:115"}, "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-abff26b4277d04a2", "name": "Commented-code block (5 lines) in src/modules/rbac/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/rbac/index.ts:1"}, "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-3a9211768f19f60f", "name": "Commented-code block (5 lines) in src/modules/webhooks/webhooks.controller.ts:64", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/webhooks/webhooks.controller.ts:64"}, "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-ca772a0bb6c0bf31", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/credentials/credentials.service.ts:252", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/credentials/credentials.service.ts:252"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed68a07528eee3d8", "name": "Commented-code block (5 lines) in src/modules/communication/services/customer-resolver.service.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/communication/services/customer-resolver.service.ts:56"}, "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-f972379221a0e32c", "name": "Commented-code block (6 lines) in src/modules/communication/services/journey-processor.service.ts:382", "shortDescription": {"text": "Commented-code block (6 lines) in src/modules/communication/services/journey-processor.service.ts:382"}, "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-0b163a0e25edf443", "name": "Commented-code block (5 lines) in src/modules/dropship/dropship.service.ts:1360", "shortDescription": {"text": "Commented-code block (5 lines) in src/modules/dropship/dropship.service.ts:1360"}, "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-1041d9aee17abc34", "name": "Commented-code block (7 lines) in src/modules/composition/composition.service.ts:209", "shortDescription": {"text": "Commented-code block (7 lines) in src/modules/composition/composition.service.ts:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c3970b78c714bf", "name": "136 env vars used in code but missing from .env.example", "shortDescription": {"text": "136 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ACTIVE_AUTOMATION_BRIDGE_SECRET`, `ACTIVE_AUTOMATION_BRIDGE_URL`, `ACTIVE_BRIDGE_URL`, `ACTIVE_CALLBACK_SECRET`, `ACTIVE_PUBLIC_URL`, `ADMIN_SECRET`, `BACKEND_URL`, `BAILEYS_LOG_LEVEL` + 128 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-deb17a0bea62a9b4", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-suggestions-variants.mjs:23)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-suggestions-variants.mjs:23)"}, "fullDescription": {"text": "`scripts/smoke-test-suggestions-variants.mjs:23` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16d46d5e821ef6ba", "name": "Dangling fetch: POST https://api.eclick.app.br/sales-aggregator/run-now (scripts/trigger-backfill.mjs:40)", "shortDescription": {"text": "Dangling fetch: POST https://api.eclick.app.br/sales-aggregator/run-now (scripts/trigger-backfill.mjs:40)"}, "fullDescription": {"text": "`scripts/trigger-backfill.mjs:40` calls `POST https://api.eclick.app.br/sales-aggregator/run-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.eclick.app.br/sales-aggregator/run-now`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f14504a21598506f", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-f11.mjs:61)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-f11.mjs:61)"}, "fullDescription": {"text": "`scripts/smoke-f11.mjs:61` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f347568d454e43b", "name": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-f1", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-f11.mjs:91)"}, "fullDescription": {"text": "`scripts/smoke-f11.mjs:91` calls `GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/users/<p>/items/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-696211bd4201d44a", "name": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-detail.mjs:24)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-detail.mjs:24)"}, "fullDescription": {"text": "`scripts/ml-billing-detail.mjs:24` calls `GET https://api.mercadolibre.com${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e86dcb5c4a47be77", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${o.shipping_id}/costs (scripts/ml-freight-probe.mjs:56)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${o.shipping_id}/costs (scripts/ml-freight-probe.mjs:56)"}, "fullDescription": {"text": "`scripts/ml-freight-probe.mjs:56` calls `GET https://api.mercadolibre.com/shipments/${o.shipping_id}/costs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipments/<p>/costs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55c33e04244b8a0b", "name": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-probe.mjs:25)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-probe.mjs:25)"}, "fullDescription": {"text": "`scripts/ml-billing-probe.mjs:25` calls `GET https://api.mercadolibre.com${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b159fca2df8e6dba", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-postsale-messages.mjs:48)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-postsale-messages.mjs:48)"}, "fullDescription": {"text": "`scripts/seed-postsale-messages.mjs:48` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ed0ab6229c7bfa7", "name": "Dangling fetch: GET https://api.mercadolibre.com/orders/${orderId} (scripts/seed-postsale-messages.mjs:84)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${orderId} (scripts/seed-postsale-messages.mjs:84)"}, "fullDescription": {"text": "`scripts/seed-postsale-messages.mjs:84` calls `GET https://api.mercadolibre.com/orders/${orderId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-daccf214018b7c91", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints-v2.mjs:35)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints-v2.mjs:35)"}, "fullDescription": {"text": "`scripts/smoke-test-pricing-endpoints-v2.mjs:35` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d9fe1a4bb90e10d", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints.mjs:55)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints.mjs:55)"}, "fullDescription": {"text": "`scripts/smoke-test-pricing-endpoints.mjs:55` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc57d2c65af6a14b", "name": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-te", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-test-pricing-endpoints.mjs:85)"}, "fullDescription": {"text": "`scripts/smoke-test-pricing-endpoints.mjs:85` calls `GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/users/<p>/items/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28169cfe626d0bda", "name": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-mp-bonus-probe.mjs:26)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-mp-bonus-probe.mjs:26)"}, "fullDescription": {"text": "`scripts/ml-mp-bonus-probe.mjs:26` calls `GET https://api.mercadolibre.com${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdd37c3fc5dd33dc", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-reputation.mjs:56)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-reputation.mjs:56)"}, "fullDescription": {"text": "`scripts/seed-f11-reputation.mjs:56` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd62c50f215da531", "name": "Dangling fetch: GET https://api.mercadolibre.com/users/${conn.seller_id} (scripts/seed-f11-reputation.mjs:81)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${conn.seller_id} (scripts/seed-f11-reputation.mjs:81)"}, "fullDescription": {"text": "`scripts/seed-f11-reputation.mjs:81` calls `GET https://api.mercadolibre.com/users/${conn.seller_id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/users/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-579c84bf38ee8666", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-full-fulfillment.mjs:50)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-full-fulfillment.mjs:50)"}, "fullDescription": {"text": "`scripts/seed-f11-full-fulfillment.mjs:50` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd5d66b78343e3d3", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-item-visits.mjs:49)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-item-visits.mjs:49)"}, "fullDescription": {"text": "`scripts/seed-f11-item-visits.mjs:49` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f10a0d26b90facc3", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${row.shipping_id} (scripts/backfill-shipping-addresses.mjs:1", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${row.shipping_id} (scripts/backfill-shipping-addresses.mjs:134)"}, "fullDescription": {"text": "`scripts/backfill-shipping-addresses.mjs:134` calls `GET https://api.mercadolibre.com/shipments/${row.shipping_id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipments/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e76de4afcd166b28", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-logistics.mjs:39)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-logistics.mjs:39)"}, "fullDescription": {"text": "`scripts/seed-f11-logistics.mjs:39` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d72e03df78b5643b", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipId}/delays (scripts/seed-f11-logistics.mjs:86)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipId}/delays (scripts/seed-f11-logistics.mjs:86)"}, "fullDescription": {"text": "`scripts/seed-f11-logistics.mjs:86` calls `GET https://api.mercadolibre.com/shipments/${shipId}/delays` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipments/<p>/delays`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e85fa36c27f9a7f3", "name": "Dangling fetch: GET https://api.mercadolibre.com/flex/sites/MLB/items/${it.ml_item_id}/v2 (scripts/seed-f11-logistics.mj", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/flex/sites/MLB/items/${it.ml_item_id}/v2 (scripts/seed-f11-logistics.mjs:124)"}, "fullDescription": {"text": "`scripts/seed-f11-logistics.mjs:124` calls `GET https://api.mercadolibre.com/flex/sites/MLB/items/${it.ml_item_id}/v2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/flex/sites/mlb/items/<p>/v2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19fce5ba96f6521b", "name": "Dangling fetch: POST https://api.eclick.app.br/ml-campaigns/sync (scripts/trigger-ml-campaigns-sync.mjs:29)", "shortDescription": {"text": "Dangling fetch: POST https://api.eclick.app.br/ml-campaigns/sync (scripts/trigger-ml-campaigns-sync.mjs:29)"}, "fullDescription": {"text": "`scripts/trigger-ml-campaigns-sync.mjs:29` calls `POST https://api.eclick.app.br/ml-campaigns/sync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.eclick.app.br/ml-campaigns/sync`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ca4abdfbe92c4e9", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-category-backfill.mjs:48)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-category-backfill.mjs:48)"}, "fullDescription": {"text": "`scripts/seed-f11-category-backfill.mjs:48` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f068e85b2deeed91", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=id,sold_quantity,available_quantity,status,sell", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=id,sold_quantity,available_quantity,status,seller_id (scripts/optimizer-candidates-enriched.mjs:56)"}, "fullDescription": {"text": "`scripts/optimizer-candidates-enriched.mjs:56` calls `GET https://api.mercadolibre.com/items/${mlb}?attributes=id,sold_quantity,available_quantity,status,seller_id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bd7ed503592aad8", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=title,sold_quantity,status (scripts/pilot-verif", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=title,sold_quantity,status (scripts/pilot-verify.mjs:47)"}, "fullDescription": {"text": "`scripts/pilot-verify.mjs:47` calls `GET https://api.mercadolibre.com/items/${mlb}?attributes=title,sold_quantity,status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f581d0d5fa9b96ce", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}/description (scripts/pilot-verify.mjs:50)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}/description (scripts/pilot-verify.mjs:50)"}, "fullDescription": {"text": "`scripts/pilot-verify.mjs:50` calls `GET https://api.mercadolibre.com/items/${mlb}/description` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/description`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d955155f15276e20", "name": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-visits.mjs:36)", "shortDescription": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-visits.mjs:36)"}, "fullDescription": {"text": "`scripts/seed-f11-visits.mjs:36` calls `POST https://api.mercadolibre.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadolibre.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7a9e8d6f36d2295", "name": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:226)", "shortDescription": {"text": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:226)"}, "fullDescription": {"text": "`src/modules/store-config/store-config.service.ts:226` calls `HEAD https://${c.custom_domain}/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a81f36fdc11536a", "name": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:244)", "shortDescription": {"text": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:244)"}, "fullDescription": {"text": "`src/modules/store-config/store-config.service.ts:244` calls `HEAD https://${c.custom_domain}/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04f1e1b14cfe8c8c", "name": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/empresas (src/modules/enrichment/providers/bigdatacorp.provid", "shortDescription": {"text": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/empresas (src/modules/enrichment/providers/bigdatacorp.provider.ts:92)"}, "fullDescription": {"text": "`src/modules/enrichment/providers/bigdatacorp.provider.ts:92` calls `POST https://plataforma.bigdatacorp.com.br/empresas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/plataforma.bigdatacorp.com.br/empresas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fb1cb8a217ebf12", "name": "Dangling fetch: GET https://viacep.com.br/ws/01001000/json/ (src/modules/enrichment/providers/viacep.provider.ts:19)", "shortDescription": {"text": "Dangling fetch: GET https://viacep.com.br/ws/01001000/json/ (src/modules/enrichment/providers/viacep.provider.ts:19)"}, "fullDescription": {"text": "`src/modules/enrichment/providers/viacep.provider.ts:19` calls `GET https://viacep.com.br/ws/01001000/json/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/viacep.com.br/ws/<p>/json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4f9be207373aea9", "name": "Dangling fetch: GET https://viacep.com.br/ws/${clean}/json/ (src/modules/enrichment/providers/viacep.provider.ts:40)", "shortDescription": {"text": "Dangling fetch: GET https://viacep.com.br/ws/${clean}/json/ (src/modules/enrichment/providers/viacep.provider.ts:40)"}, "fullDescription": {"text": "`src/modules/enrichment/providers/viacep.provider.ts:40` calls `GET https://viacep.com.br/ws/${clean}/json/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/viacep.com.br/ws/<p>/json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfe00281ddd1dd07", "name": "Dangling fetch: POST https://api.openai.com/v1/responses (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:213)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:213)"}, "fullDescription": {"text": "`src/modules/analytics-hub/geo-radar/geo-radar.service.ts:213` calls `POST https://api.openai.com/v1/responses` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/responses`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ddc3510fb0580b36", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:236", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:236)"}, "fullDescription": {"text": "`src/modules/analytics-hub/geo-radar/geo-radar.service.ts:236` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4372b6408d27146", "name": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalId} (src/modules/fulfillment/fulfillment-labels.servic", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalId} (src/modules/fulfillment/fulfillment-labels.service.ts:97)"}, "fullDescription": {"text": "`src/modules/fulfillment/fulfillment-labels.service.ts:97` calls `GET https://api.mercadolibre.com/orders/${externalId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5aea63d153451ca2", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-labels.ser", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-labels.service.ts:108)"}, "fullDescription": {"text": "`src/modules/fulfillment/fulfillment-labels.service.ts:108` calls `GET https://api.mercadolibre.com/shipments/${shipmentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipments/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-032516a245760f5b", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipment_labels?shipment_ids=${shipmentId}&response_type=pdf (src/modul", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipment_labels?shipment_ids=${shipmentId}&response_type=pdf (src/modules/fulfillment/fulfillment-labels.service.ts:125)"}, "fullDescription": {"text": "`src/modules/fulfillment/fulfillment-labels.service.ts:125` calls `GET https://api.mercadolibre.com/shipment_labels?shipment_ids=${shipmentId}&response_type=pdf` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipment_labels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce3fff7e9c2ae13f", "name": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalOrderId} (src/modules/fulfillment/fulfillment-accounts", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalOrderId} (src/modules/fulfillment/fulfillment-accounts.service.ts:180)"}, "fullDescription": {"text": "`src/modules/fulfillment/fulfillment-accounts.service.ts:180` calls `GET https://api.mercadolibre.com/orders/${externalOrderId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a5c609e53ec320e", "name": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-accounts.s", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-accounts.service.ts:183)"}, "fullDescription": {"text": "`src/modules/fulfillment/fulfillment-accounts.service.ts:183` calls `GET https://api.mercadolibre.com/shipments/${shipmentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/shipments/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2bbf89a0e5b5a6f", "name": "Dangling fetch: POST https://api.openai.com/v1/embeddings (src/modules/atendente-ia/ai-knowledge.service.ts:34)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (src/modules/atendente-ia/ai-knowledge.service.ts:34)"}, "fullDescription": {"text": "`src/modules/atendente-ia/ai-knowledge.service.ts:34` calls `POST https://api.openai.com/v1/embeddings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.openai.com/v1/embeddings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ac0163270e7113a", "name": "Dangling fetch: GET https://api.mercadolibre.com/questions/search?seller_id=${sellerId}&status=UNANSWERED&limit=20 (src/", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/questions/search?seller_id=${sellerId}&status=UNANSWERED&limit=20 (src/modules/atendente-ia/ai-responder.service.ts:111)"}, "fullDescription": {"text": "`src/modules/atendente-ia/ai-responder.service.ts:111` calls `GET https://api.mercadolibre.com/questions/search?seller_id=${sellerId}&status=UNANSWERED&limit=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/questions/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d5d44e3009923b2", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (src/modules/atendente-ia/ai-responder.service.ts:776)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (src/modules/atendente-ia/ai-responder.service.ts:776)"}, "fullDescription": {"text": "`src/modules/atendente-ia/ai-responder.service.ts:776` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db4992d9ff3e692d", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/atendente-ia/ai-responder.service.ts:793)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/atendente-ia/ai-responder.service.ts:793)"}, "fullDescription": {"text": "`src/modules/atendente-ia/ai-responder.service.ts:793` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f97ef0779e8d45b6", "name": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (src/modules/email-settings/email-settings.service.ts:227)", "shortDescription": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (src/modules/email-settings/email-settings.service.ts:227)"}, "fullDescription": {"text": "`src/modules/email-settings/email-settings.service.ts:227` calls `POST https://api.sendgrid.com/v3/mail/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.sendgrid.com/v3/mail/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd642f96bc93fbc5", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlbId} (src/modules/scraper/scraper.service.ts:47)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlbId} (src/modules/scraper/scraper.service.ts:47)"}, "fullDescription": {"text": "`src/modules/scraper/scraper.service.ts:47` calls `GET https://api.mercadolibre.com/items/${mlbId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f8ce05d60bc91c", "name": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/scraper/scraper", "shortDescription": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/scraper/scraper.service.ts:114)"}, "fullDescription": {"text": "`src/modules/scraper/scraper.service.ts:114` calls `GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/shopee.com.br/api/v4/item/get`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09b47aa9816a41f4", "name": "Dangling fetch: GET https://ws.hubdodesenvolvedor.com.br/v2/cpf/?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/serv", "shortDescription": {"text": "Dangling fetch: GET https://ws.hubdodesenvolvedor.com.br/v2/cpf/?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/hubdesenvolvedor.provider.ts:17)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/hubdesenvolvedor.provider.ts:17` calls `GET https://ws.hubdodesenvolvedor.com.br/v2/cpf/?cpf=${cpf.replace(/\\D/g, ` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/ws.hubdodesenvolvedor.com.br/v2/cpf`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c45e3b3616804cf", "name": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/pessoas (src/modules/lead-bridge/services/cpf-providers/bigda", "shortDescription": {"text": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/pessoas (src/modules/lead-bridge/services/cpf-providers/bigdatacorp.provider.ts:25)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/bigdatacorp.provider.ts:25` calls `POST https://plataforma.bigdatacorp.com.br/pessoas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/plataforma.bigdatacorp.com.br/pessoas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd393d5a29f9a5c4", "name": "Dangling fetch: GET https://api.directd.com.br/api/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-p", "shortDescription": {"text": "Dangling fetch: GET https://api.directd.com.br/api/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/directd.provider.ts:18)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/directd.provider.ts:18` calls `GET https://api.directd.com.br/api/cpf?cpf=${cpf.replace(/\\D/g, ` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.directd.com.br/api/cpf`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a1f517c5165779d", "name": "Dangling fetch: GET https://api.datastone.com.br/v1/cpf/${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-prov", "shortDescription": {"text": "Dangling fetch: GET https://api.datastone.com.br/v1/cpf/${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/datastone.provider.ts:18)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/datastone.provider.ts:18` calls `GET https://api.datastone.com.br/v1/cpf/${cpf.replace(/\\D/g, ` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.datastone.com.br/v1/cpf/${cpf.replace(/\\d/g, `\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0e53b914526a6c8", "name": "Dangling fetch: POST https://api.assertiva.com.br/oauth2/v3/token (src/modules/lead-bridge/services/cpf-providers/assert", "shortDescription": {"text": "Dangling fetch: POST https://api.assertiva.com.br/oauth2/v3/token (src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:19)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:19` calls `POST https://api.assertiva.com.br/oauth2/v3/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.assertiva.com.br/oauth2/v3/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70f09d9334de1269", "name": "Dangling fetch: GET https://api.assertiva.com.br/v3/localize/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/serv", "shortDescription": {"text": "Dangling fetch: GET https://api.assertiva.com.br/v3/localize/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:42)"}, "fullDescription": {"text": "`src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:42` calls `GET https://api.assertiva.com.br/v3/localize/cpf?cpf=${cpf.replace(/\\D/g, ` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.assertiva.com.br/v3/localize/cpf`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d716df96ff2ca644", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/ai-visibility/geo-score/services/listing-scrap", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:126)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:126` calls `GET https://api.mercadolibre.com/items/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae02adde59e1ed44", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${id}/description (src/modules/ai-visibility/geo-score/services/l", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id}/description (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:187)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:187` calls `GET https://api.mercadolibre.com/items/${id}/description` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/description`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b836d12f88285d5f", "name": "Dangling fetch: GET https://api.mercadolibre.com/reviews/item/${id} (src/modules/ai-visibility/geo-score/services/listin", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/reviews/item/${id} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:195)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:195` calls `GET https://api.mercadolibre.com/reviews/item/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/reviews/item/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ef39e48eb627084", "name": "Dangling fetch: GET https://api.mercadolibre.com/categories/${categoryId} (src/modules/ai-visibility/geo-score/services/", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/categories/${categoryId} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:205)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:205` calls `GET https://api.mercadolibre.com/categories/${categoryId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/categories/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4714ae75fec78aac", "name": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/ai-visibility/g", "shortDescription": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:233)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:233` calls `GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/shopee.com.br/api/v4/item/get`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb81c84a9b20c45a", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits?date_from=${encodeURIComponent(from)}&date_to=", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits?date_from=${encodeURIComponent(from)}&date_to=${encodeURIComponent(to)} (src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:65)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:65` calls `GET https://api.mercadolibre.com/items/${mlItemId}/visits?date_from=${encodeURIComponent(from)}&date_to=${encodeURIComponent(to)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/visits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-877dde2d465854e2", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits/time_window?last=14&unit=day (src/modules/ai-v", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits/time_window?last=14&unit=day (src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:96)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:96` calls `GET https://api.mercadolibre.com/items/${mlItemId}/visits/time_window?last=14&unit=day` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/visits/time_window`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a317b3bb901da77", "name": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/se", "shortDescription": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:69)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:69` calls `PUT https://api.mercadolibre.com/items/${itemId}/description` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/description`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ffa13a0b98598f5", "name": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId} (src/modules/ai-visibility/geo-optimizer/services/ml-pu", "shortDescription": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId} (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:82)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:82` calls `PUT https://api.mercadolibre.com/items/${itemId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76b46f27a570833d", "name": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id}/description (src/modules/ai-visibility/geo-optimi", "shortDescription": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:129)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:129` calls `PUT https://api.mercadolibre.com/items/${v.listing_id}/description` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/description`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79d3056806c7c0ff", "name": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id} (src/modules/ai-visibility/geo-optimizer/services", "shortDescription": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id} (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:137)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:137` calls `PUT https://api.mercadolibre.com/items/${v.listing_id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4af92e3ec07fe83a", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-opt", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:187)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:187` calls `GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2a8bacd9d2bd139", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=title,sold_quantity (src/modules/ai-visibili", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=title,sold_quantity (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:200)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:200` calls `GET https://api.mercadolibre.com/items/${itemId}?attributes=title,sold_quantity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5045ff1e7724b2af", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/se", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:206)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:206` calls `GET https://api.mercadolibre.com/items/${itemId}/description` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>/description`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0babd48da6f8b53e", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-opt", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-optimizer/services/impact-tracker.service.ts:139)"}, "fullDescription": {"text": "`src/modules/ai-visibility/geo-optimizer/services/impact-tracker.service.ts:139` calls `GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b084594ca5678972", "name": "Dangling fetch: GET https://graph.facebook.com/v20.0/${cfg.data.phone_number_id}?fields=display_phone_number,verified_na", "shortDescription": {"text": "Dangling fetch: GET https://graph.facebook.com/v20.0/${cfg.data.phone_number_id}?fields=display_phone_number,verified_name (src/modules/whatsapp/whatsapp-config.service.ts:165)"}, "fullDescription": {"text": "`src/modules/whatsapp/whatsapp-config.service.ts:165` calls `GET https://graph.facebook.com/v20.0/${cfg.data.phone_number_id}?fields=display_phone_number,verified_name` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/graph.facebook.com/v20.0/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-371594529dc64b39", "name": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/marketplace-scraping/marketplace-scraping.serv", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:87)"}, "fullDescription": {"text": "`src/modules/marketplace-scraping/marketplace-scraping.service.ts:87` calls `GET https://api.mercadolibre.com/items/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab7240a34e8040d8", "name": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/marketplace-scr", "shortDescription": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:247)"}, "fullDescription": {"text": "`src/modules/marketplace-scraping/marketplace-scraping.service.ts:247` calls `GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/shopee.com.br/api/v4/item/get`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20d902aaddcf4074", "name": "Dangling fetch: GET https://api.mercadolibre.com/products/${catalogId} (src/modules/marketplace-scraping/marketplace-scr", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadolibre.com/products/${catalogId} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:306)"}, "fullDescription": {"text": "`src/modules/marketplace-scraping/marketplace-scraping.service.ts:306` calls `GET https://api.mercadolibre.com/products/${catalogId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.mercadolibre.com/products/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-816737976c1d2360", "name": "Dangling fetch: GET https://api.openai.com/v1/models (src/modules/credentials/credentials.service.ts:243)", "shortDescription": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (src/modules/credentials/credentials.service.ts:243)"}, "fullDescription": {"text": "`src/modules/credentials/credentials.service.ts:243` calls `GET https://api.openai.com/v1/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2eb07832667cffd", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/credentials/credentials.service.ts:252)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/credentials/credentials.service.ts:252)"}, "fullDescription": {"text": "`src/modules/credentials/credentials.service.ts:252` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbaa8b86ed1586d3", "name": "Dangling fetch: GET https://api.mercadopago.com/users/me (src/modules/credentials/credentials.service.ts:282)", "shortDescription": {"text": "Dangling fetch: GET https://api.mercadopago.com/users/me (src/modules/credentials/credentials.service.ts:282)"}, "fullDescription": {"text": "`src/modules/credentials/credentials.service.ts:282` calls `GET https://api.mercadopago.com/users/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.mercadopago.com/users/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-607030ac144b667d", "name": "Dangling fetch: GET https://api.stripe.com/v1/balance (src/modules/credentials/credentials.service.ts:300)", "shortDescription": {"text": "Dangling fetch: GET https://api.stripe.com/v1/balance (src/modules/credentials/credentials.service.ts:300)"}, "fullDescription": {"text": "`src/modules/credentials/credentials.service.ts:300` calls `GET https://api.stripe.com/v1/balance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/balance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5dff26d76f46f3ce", "name": "Unused endpoint: GET /category-links/sources", "shortDescription": {"text": "Unused endpoint: GET /category-links/sources"}, "fullDescription": {"text": "`src/modules/category-links/category-links.controller.ts` declares `GET /category-links/sources` 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-fae31dcb94e803f6", "name": "Unused endpoint: GET /category-links/target/:mkt/browse", "shortDescription": {"text": "Unused endpoint: GET /category-links/target/:mkt/browse"}, "fullDescription": {"text": "`src/modules/category-links/category-links.controller.ts` declares `GET /category-links/target/:mkt/browse` 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-114a22f738f6270d", "name": "Unused endpoint: GET /category-links/target/:mkt/search", "shortDescription": {"text": "Unused endpoint: GET /category-links/target/:mkt/search"}, "fullDescription": {"text": "`src/modules/category-links/category-links.controller.ts` declares `GET /category-links/target/:mkt/search` 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-0171a6348b4d429f", "name": "Unused endpoint: POST /category-links/suggest", "shortDescription": {"text": "Unused endpoint: POST /category-links/suggest"}, "fullDescription": {"text": "`src/modules/category-links/category-links.controller.ts` declares `POST /category-links/suggest` 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-e2c83999208d9fff", "name": "Unused endpoint: DELETE /category-links/:id", "shortDescription": {"text": "Unused endpoint: DELETE /category-links/:id"}, "fullDescription": {"text": "`src/modules/category-links/category-links.controller.ts` declares `DELETE /category-links/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8d5b6d8dbd605f1", "name": "Unused endpoint: POST /public/audits/start", "shortDescription": {"text": "Unused endpoint: POST /public/audits/start"}, "fullDescription": {"text": "`src/modules/public-audits/public-audits.controller.ts` declares `POST /public/audits/start` 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-75e60dabe6291c9c", "name": "Unused endpoint: POST /public/audits/unsubscribe", "shortDescription": {"text": "Unused endpoint: POST /public/audits/unsubscribe"}, "fullDescription": {"text": "`src/modules/public-audits/public-audits.controller.ts` declares `POST /public/audits/unsubscribe` 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-37ff77032cbdae07", "name": "Unused endpoint: POST /public/audits/request-demo", "shortDescription": {"text": "Unused endpoint: POST /public/audits/request-demo"}, "fullDescription": {"text": "`src/modules/public-audits/public-audits.controller.ts` declares `POST /public/audits/request-demo` 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-ce02602a48dc1afc", "name": "Unused endpoint: GET /public/audits/:id", "shortDescription": {"text": "Unused endpoint: GET /public/audits/:id"}, "fullDescription": {"text": "`src/modules/public-audits/public-audits.controller.ts` declares `GET /public/audits/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b61f4cd4dfb4ecb", "name": "Unused endpoint: GET /radar/products", "shortDescription": {"text": "Unused endpoint: GET /radar/products"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/products` 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-93819b1a9e048e6c", "name": "Unused endpoint: GET /radar/summary", "shortDescription": {"text": "Unused endpoint: GET /radar/summary"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/summary` 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-3d325f606ac1498a", "name": "Unused endpoint: GET /radar/events", "shortDescription": {"text": "Unused endpoint: GET /radar/events"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/events` 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-911730da2366b218", "name": "Unused endpoint: GET /radar/catalog-status", "shortDescription": {"text": "Unused endpoint: GET /radar/catalog-status"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/catalog-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3bbc4ddfa202930a", "name": "Unused endpoint: POST /radar/catalog-ceiling", "shortDescription": {"text": "Unused endpoint: POST /radar/catalog-ceiling"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `POST /radar/catalog-ceiling` 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-b63837d5d5ad7ba3", "name": "Unused endpoint: GET /radar/products/:id", "shortDescription": {"text": "Unused endpoint: GET /radar/products/:id"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/products/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5bfb559b128ad706", "name": "Unused endpoint: GET /radar/products/:id/price-context", "shortDescription": {"text": "Unused endpoint: GET /radar/products/:id/price-context"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/products/:id/price-context` 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-77680d95ab4fd29d", "name": "Unused endpoint: GET /radar/products/:id/series", "shortDescription": {"text": "Unused endpoint: GET /radar/products/:id/series"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/products/:id/series` 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-f6e561bc2523d4ec", "name": "Unused endpoint: GET /radar/products/:id/events", "shortDescription": {"text": "Unused endpoint: GET /radar/products/:id/events"}, "fullDescription": {"text": "`src/modules/radar/radar.controller.ts` declares `GET /radar/products/:id/events` 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-80228fb51390fcfe", "name": "Unused endpoint: GET /radar/competitors/products", "shortDescription": {"text": "Unused endpoint: GET /radar/competitors/products"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `GET /radar/competitors/products` 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-d8743ef70ea33c8d", "name": "Unused endpoint: GET /radar/competitors/products/:productId", "shortDescription": {"text": "Unused endpoint: GET /radar/competitors/products/:productId"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `GET /radar/competitors/products/:productId` 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-b3fa9606be9953cc", "name": "Unused endpoint: GET /radar/competitors/products/:productId/insight", "shortDescription": {"text": "Unused endpoint: GET /radar/competitors/products/:productId/insight"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `GET /radar/competitors/products/:productId/insight` 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-898b974bb00f14e4", "name": "Unused endpoint: POST /radar/competitors/links", "shortDescription": {"text": "Unused endpoint: POST /radar/competitors/links"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `POST /radar/competitors/links` 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-50044bc1cbbd5b23", "name": "Unused endpoint: PATCH /radar/competitors/links/:id", "shortDescription": {"text": "Unused endpoint: PATCH /radar/competitors/links/:id"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `PATCH /radar/competitors/links/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0db3868dd86d07e", "name": "Unused endpoint: DELETE /radar/competitors/links/:id", "shortDescription": {"text": "Unused endpoint: DELETE /radar/competitors/links/:id"}, "fullDescription": {"text": "`src/modules/radar/radar-competitors.controller.ts` declares `DELETE /radar/competitors/links/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13b06c6b13d42aaa", "name": "Unused endpoint: GET /ml-quality/dashboard", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/dashboard"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/dashboard` 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-fb6a33c1ae96c51a", "name": "Unused endpoint: GET /ml-quality/items", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/items"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/items` 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-62cdf6748979e286", "name": "Unused endpoint: POST /ml-quality/sync/enrich-listing-status", "shortDescription": {"text": "Unused endpoint: POST /ml-quality/sync/enrich-listing-status"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `POST /ml-quality/sync/enrich-listing-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb0ed760de225aac", "name": "Unused endpoint: GET /ml-quality/items/:itemId", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/items/:itemId"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/items/:itemId` 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-d48adad1f89ca2ea", "name": "Unused endpoint: GET /ml-quality/items/:itemId/history", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/items/:itemId/history"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/items/:itemId/history` 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-5894e76da2dfca57", "name": "Unused endpoint: GET /ml-quality/labels", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/labels"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/labels` 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-fd6e1521d0250ca1", "name": "Unused endpoint: GET /ml-quality/categories", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/categories"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/categories` 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-5fee554070fd1e80", "name": "Unused endpoint: GET /ml-quality/quick-wins", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/quick-wins"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/quick-wins` 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-02c31f7fc5722b28", "name": "Unused endpoint: GET /ml-quality/penalties", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/penalties"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/penalties` 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-eac98acf2d7566ec", "name": "Unused endpoint: POST /ml-quality/sync", "shortDescription": {"text": "Unused endpoint: POST /ml-quality/sync"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `POST /ml-quality/sync` 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-953885582ca24f88", "name": "Unused endpoint: GET /ml-quality/sync/logs", "shortDescription": {"text": "Unused endpoint: GET /ml-quality/sync/logs"}, "fullDescription": {"text": "`src/modules/ml-quality/ml-quality.controller.ts` declares `GET /ml-quality/sync/logs` 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-41da0ad869b19e3f", "name": "Unused endpoint: PATCH /marketplace-channels/:id", "shortDescription": {"text": "Unused endpoint: PATCH /marketplace-channels/:id"}, "fullDescription": {"text": "`src/modules/marketplace-channels/marketplace-channels.controller.ts` declares `PATCH /marketplace-channels/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75c4af69e5d0c02f", "name": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/config", "shortDescription": {"text": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/config"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `GET /public/store/by-slug/:slug/visualizer/config` 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-7858ebed2a4c6e3e", "name": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/register", "shortDescription": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/register"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `POST /public/store/by-slug/:slug/visualizer/register` 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-49b4672d0c3d8b95", "name": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/verify", "shortDescription": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/verify"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `POST /public/store/by-slug/:slug/visualizer/verify` 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-f303d3a1d837fb91", "name": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/me", "shortDescription": {"text": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/me"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `GET /public/store/by-slug/:slug/visualizer/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2762d1aa92dc5b6", "name": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/generate", "shortDescription": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/generate"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `POST /public/store/by-slug/:slug/visualizer/generate` 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-15d94568ae772783", "name": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/recolor", "shortDescription": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/recolor"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `POST /public/store/by-slug/:slug/visualizer/recolor` 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-2ba951296fefdd15", "name": "Unused endpoint: PUT /public/store/by-slug/settings", "shortDescription": {"text": "Unused endpoint: PUT /public/store/by-slug/settings"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `PUT /public/store/by-slug/settings` 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-3dd48c8530e0eda6", "name": "Unused endpoint: POST /public/store/by-slug/customers/:id/grant-credits", "shortDescription": {"text": "Unused endpoint: POST /public/store/by-slug/customers/:id/grant-credits"}, "fullDescription": {"text": "`src/modules/storefront-visualizer/storefront-visualizer.controller.ts` declares `POST /public/store/by-slug/customers/:id/grant-credits` 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-860216cdbdac123d", "name": "Unused endpoint: GET /compras/inteligencia/summary", "shortDescription": {"text": "Unused endpoint: GET /compras/inteligencia/summary"}, "fullDescription": {"text": "`src/modules/compras/compras.controller.ts` declares `GET /compras/inteligencia/summary` 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-69bc1ff08f331964", "name": "Unused endpoint: GET /compras/inteligencia", "shortDescription": {"text": "Unused endpoint: GET /compras/inteligencia"}, "fullDescription": {"text": "`src/modules/compras/compras.controller.ts` declares `GET /compras/inteligencia` 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-c90773fa1fcc5569", "name": "Unused endpoint: POST /creative/products", "shortDescription": {"text": "Unused endpoint: POST /creative/products"}, "fullDescription": {"text": "`src/modules/creative/creative.controller.ts` declares `POST /creative/products` 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-14ce21f6523dbc57", "name": "Unused endpoint: GET /creative/products", "shortDescription": {"text": "Unused endpoint: GET /creative/products"}, "fullDescription": {"text": "`src/modules/creative/creative.controller.ts` declares `GET /creative/products` 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-567228c3cc6dc39e", "name": "Unused endpoint: GET /creative/products/catalog-prefill/:catalogId", "shortDescription": {"text": "Unused endpoint: GET /creative/products/catalog-prefill/:catalogId"}, "fullDescription": {"text": "`src/modules/creative/creative.controller.ts` declares `GET /creative/products/catalog-prefill/:catalogId` 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-59eccf5fb1fee3e0", "name": "Unused endpoint: GET /creative/products/:id", "shortDescription": {"text": "Unused endpoint: GET /creative/products/:id"}, "fullDescription": {"text": "`src/modules/creative/creative.controller.ts` declares `GET /creative/products/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22099"}, "properties": {"repository": "vazzocomercio-wq/eclick-backend", "repoUrl": "https://github.com/vazzocomercio-wq/eclick-backend", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467405, "scanner": "foundry_dataset", "fingerprint": "dcc5d35c1d9ca69772298141e1258ad3d7051844e4739a445735df37e71bc6ab", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#9", "issue_number": "9", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4c129f7c694c0d9b", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-9ac64b6eaba6a021", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467404, "scanner": "foundry_dataset", "fingerprint": "82cc024f88efe8043c39230d89cd747719f6fa5ebef7f53044fb1081c39e8c88", "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": {"schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#5", "issue_number": "5", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d202b465c623e068", "graph_gold_label": "assumption_check", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#5\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 5\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-7b8cbcaf71dbb657", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467403, "scanner": "foundry_dataset", "fingerprint": "20b08df028de6ba4f41d8ab097f63c774e7b3d0cfd78864300d182f660ab83c9", "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, "human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#18", "issue_number": "18", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-99a4e5e2fa2d399d", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"ui_or_frontend": 4}}, "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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#18\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#18\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#18\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 18\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'ui_or_frontend': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-22b3aca365703081", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467402, "scanner": "foundry_dataset", "fingerprint": "41b41d1a87cafe7aba536f7f13a7232a302f3d4dd7eada69c1132f8d35f3ebc4", "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, "source_or_other": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#17", "issue_number": "17", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-b659266551877d41", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"ui_or_frontend": 4, "source_or_other": 4}}, "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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#17\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#17\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#17\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 17\nGraph consistency label: needs_more_evidence\nNodes: 11\nEdges: 17\nNode types: {'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'ui_or_frontend': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-ae06aeac3377f4a9", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467401, "scanner": "foundry_dataset", "fingerprint": "67c9fe7e60574d0270677969292b40536929bcebc292c6d28b8ff45c514e424c", "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": {"api_or_backend": 1, "ui_or_frontend": 2, "dependency_or_build": 2, "human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#16", "issue_number": "16", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7bc79a95c7fbcb8c", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 8, "dependency_or_build": 8}}, "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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#16\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#16\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#16\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 16\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, '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: {'ambiguous_needs_more_evidence': 3, 'dependency_or_build': 2, 'ui_or_frontend': 2, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-ae66f24bda1f70f2", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467400, "scanner": "foundry_dataset", "fingerprint": "1d9dc4dd502bc7831820ede04bac64d1b57f8d34cd566fa6b03a54fc432eb602", "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": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "dependency_or_build": 2, "human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#15", "issue_number": "15", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-08e94b90e7099f0f", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 4, "source_or_other": 4, "dependency_or_build": 8}}, "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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#15\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#15\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#15\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 15\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, '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: {'ambiguous_needs_more_evidence': 3, 'dependency_or_build': 2, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'source_or_other': 1, 'ui_or_frontend': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-6c9aa3ddc03fe329", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467399, "scanner": "foundry_dataset", "fingerprint": "5ed4c743158d4fb6425ef97ffd16a0ac4ec8353af4befde78c73e92b190d15c4", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#14", "issue_number": "14", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f93454e43f41ae5f", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#14\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 14\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 29\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, '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': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-a8329dc12478ba9c", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467398, "scanner": "foundry_dataset", "fingerprint": "8002f93bf5540db9cf52a4f341d8b29d9c6a5ffaab3d58f744dd386838bf59b5", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#13", "issue_number": "13", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-bc47ba5b1a1de31e", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#13\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 13\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-86be461a9adbfce6", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467397, "scanner": "foundry_dataset", "fingerprint": "e513427d80753c1b4bd9ce5f4f13cba290f42334cc6df8dec22d787293d9f8f4", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#12", "issue_number": "12", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-551556a6e400dda1", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 8, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#12\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 12\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-f958c9f375cc75ab", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467396, "scanner": "foundry_dataset", "fingerprint": "aa0a6eb2da2118be20545d80f2b888483fc87d7b549c1ede03b66b79b9629bb8", "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": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#11", "issue_number": "11", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2f62a1706876eeeb", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 4, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#11\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 11\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 32\nNode types: {'link_quality': 6, 'pr_file': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-03fce27d2f05edcc", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 467395, "scanner": "foundry_dataset", "fingerprint": "b9af77ba868dd1cfda563de22dbdc20572bbcdf990f8775ba29bd92fd52b12dc", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#10", "issue_number": "10", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d65a918a521870ec", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#10\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 10\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-aa73d9a4f423384f", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450100, "scanner": "foundry_dataset", "fingerprint": "5ba12f54a4cc4cb86809cd7350a997b719efc11bfd30acde1348a5a34c8d1b77", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#9", "issue_number": "9", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ce0d7bc7e2c938c5", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-c68003660b0c83dd", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450099, "scanner": "foundry_dataset", "fingerprint": "e00539aa6123ff75ddc01cc3c6385d4aefefe15502dfd34726c01396bbdfc448", "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": 1, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 7, "ui_or_frontend": 16, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 74, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 25, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 45, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 25, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#8", "issue_number": "8", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c69d396ad923af46", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 28, "ui_or_frontend": 64, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#8\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 8\nGraph consistency label: weak_supervision_needs_review\nNodes: 45\nEdges: 74\nNode types: {'pr_file': 25, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 25, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 16, 'schema_or_data': 7, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-a1ae703547b179dd", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450098, "scanner": "foundry_dataset", "fingerprint": "2e351f5c3e931504a25ca2cdbe1ce58a5d84bb406de78610d85aa5ffe7609435", "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, "data_schema": 1, "ui_or_frontend": 2, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#7", "issue_number": "7", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-49bb7ccb0768b834", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 8}}, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#7\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#7\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 23\nEdges: 32\nNode types: {'link_quality': 6, 'commit': 3, 'alignment': 3, 'blueprint_finding': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'comment_chain_links_commit': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-fe84255b2ed3e1a7", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450097, "scanner": "foundry_dataset", "fingerprint": "6ea8f37d3fdbc52c96dea8b9d2faf13cc56aa492a89b5d5fba8c5741bca732c5", "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": 1, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 43, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 26, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#6", "issue_number": "6", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-f4660b9814f0856a", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#6\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#6\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#6\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 6\nGraph consistency label: weak_supervision_needs_review\nNodes: 26\nEdges: 43\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-41512b369e5caa2d", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450096, "scanner": "foundry_dataset", "fingerprint": "5ce8160722169164417b28358cf5a8def12843289ba6bda0a71d464712c09be6", "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": {"schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#5", "issue_number": "5", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c3afb628ab698e04", "graph_gold_label": "assumption_check", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#5\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 5\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-f8dc3be32651f004", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450095, "scanner": "foundry_dataset", "fingerprint": "377048af462d0c7af3420d0bf2c6f671dc38f5cfe67fd3ba1b0422eeed6629cf", "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": 5, "api_or_backend": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "api_integration_gap": 1, "partial blueprint fit": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 43, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 28, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#4", "issue_number": "4", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5d5733cae0a3bbbc", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 12, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#4\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#4\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 28\nEdges: 43\nNode types: {'link_quality': 6, 'pr_file': 5, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'bug_fix': 5, 'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'source_or_other': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-2b9af36fec9b8ae9", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450094, "scanner": "foundry_dataset", "fingerprint": "6d4dcdeb020785805b1e24c5982ec23c08042898fc89fb6c24a89b2343a4d2c5", "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": {"data_schema": 1, "api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#3", "issue_number": "3", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-951f107eba6acf9c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#3\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#3\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 24\nEdges: 39\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-46d345d1134ee939", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450093, "scanner": "foundry_dataset", "fingerprint": "29216e3e09aea25e83e66b24a86c34c318513d1cb89e679b4979ddee2cd1432b", "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": 4, "data_schema": 1, "schema_or_data": 1, "ui_or_frontend": 6, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 52, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 31, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#2", "issue_number": "2", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-6c3c448187554f14", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 24, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#2\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#2\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 31\nEdges: 52\nNode types: {'pr_file': 8, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 6, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-1631fda816c92046", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450092, "scanner": "foundry_dataset", "fingerprint": "42e981d9df71eac99bc2d8ab4bf621fbef755c0046755be96c5c3cd17d4f8c43", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#13", "issue_number": "13", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d4529c935122e83f", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#13\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 13\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-dc8b3f8af3ae9e6c", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450091, "scanner": "foundry_dataset", "fingerprint": "f9855c0b376b81ddb657254983030543732cbde073f3d8ef8cf68b36eccc5246", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#12", "issue_number": "12", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-f516f62f45c47abc", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#12\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 12\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-fd75cbe5101871ef", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450090, "scanner": "foundry_dataset", "fingerprint": "179ab341bb5786f7935abd5d6a2d48501d56f7f8e0825571388f18d29ab0b914", "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": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#11", "issue_number": "11", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-3397ea79b5fbb5d4", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 4, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#11\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 11\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 32\nNode types: {'link_quality': 6, 'pr_file': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-4058e0246cd7ba9d", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450089, "scanner": "foundry_dataset", "fingerprint": "23c337969a7304925deb55cf59c249932e8667251db07ba40aec365abcb6194a", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#10", "issue_number": "10", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ca81e9622a10df54", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#10\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 10\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-480aed316e427cf5", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 450088, "scanner": "foundry_dataset", "fingerprint": "e85bc7dc99f74cb913f5a65dfa921ad9cde67140004df4652774d78ff0ce0a18", "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, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 2, "ui_or_frontend": 7, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 59, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 11, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 11, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 32, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 11, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#1", "issue_number": "1", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-b0be1e968ccbcc24", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 8, "ui_or_frontend": 28, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#1\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 32\nEdges: 59\nNode types: {'pr_file': 11, 'link_quality': 6, 'commit': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 11, 'comment_chain_touches_file': 11, 'issue_chain_touches_file': 11, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 7, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'schema_or_data': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-1385dc5ca24b26ab", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439700, "scanner": "foundry_dataset", "fingerprint": "eb283eb48952fe7a92a80c6de847139640d617ff32f9d5a2c934073c5df920af", "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": "vazzocomercio-wq/eclick-backend#8", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "8", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-9c7f90628f365c4b", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 25, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 7, "ui_or_frontend": 16, "source_or_other": 1}, "linked_commit_count": 2, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#8\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 25\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 16, 'api_or_backend': 1, 'schema_or_data': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-27b29b8f201271de\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/8\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/8\\nTitle: feat(f12): Wave IA \u2014 separa\u00e7\u00e3o em ondas (backend)\\nBody:\\n## e-Click Wave IA (W1) \u2014 separa\u00e7\u00e3o em ondas\\n\\nEmpilhado sobre **sprint 6**. Agrupa N `fulfillment_orders` numa **onda**: montagem **manual + IA assistiva** + **coleta consolidada + sorting**.\\n\\n### O que entra\\n- **Migration `20260633`**: `fulfillment_waves` + `fulfillment_wave_orders` (+ `collected` jsonb), RLS/GRANTs padr\u00e3o. **J\u00e1 aplicada em prod** (idempotente).\\n- **`FulfillmentWaveService`**: `createWave` (valida separ\u00e1vel + fora de onda ativa), `suggestForWave` (heur\u00edstica SKU\u00d7canal\u00d7SLA + racional LLM best-effort), `releaseWave`, `scanWaveItem` (bipa SKU/EAN, conta consolidado), `completeOrderInWave` (sorting \u2192 trigger pick\u2192pack \u2192 done), `cancelWave`, `consolidatedList`.\\n- **8 endpoints** `/fulfillment/waves*` (list, get, create, suggest, release, scan-item, complete, cancel).\\n- Feature de IA `fulfillment_wave_suggest` (Haiku, fallback gpt-5-nano).\\n- Copilot KB: entrada `/fulfillment/waves`.\\n\\n### Valida\u00e7\u00e3o\\n- \"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-14c7f30e9ddb290a\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 333,\n    \"deletions\": 0,\n    \"changes\": 333,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/87a8a80bed1d5e949843bd72d549aa067fda608b/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-33e2fc644bad722d\",\n    \"filename\": \"src/app.module.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"add\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-3c265e5ddfec9da0", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439699, "scanner": "foundry_dataset", "fingerprint": "d76ad3d9a227aa0271fbd12d0a2909dcfdf362664ee9153895a3a68983b3b781", "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": "vazzocomercio-wq/eclick-backend#7", "human_labels": ["data_schema_persistence", "ui_or_frontend"], "issue_number": "7", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f1ac2bc06ffa7736", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 3, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#7\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#7\nRepo: vazzocomercio-wq/eclick-backend\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: 2\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-06840674ac6dda9e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/7\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/7\\nTitle: feat(f12): sprint 6 \u2014 etiqueta ML real + guard de Full (backend)\\nBody:\\n## Summary\\nSprint 6 do F12 (backend) \u2014 etiqueta ML de verdade. Empilhado sobre a Sprint 5.\\n\\n- **Guard de `logistic_type`**: Mercado Envios **Full** (`fulfillment`) \u2192 `format: 'NONE'` + `managed` (o ML gerencia o envio; **sem etiqueta do vendedor**). N\u00e3o cria registro de etiqueta nem marca expedido. (Full vira **m\u00f3dulo dedicado** \u2014 roadmap fase **F13**.)\\n- Pedido ML **n\u00e3o cai mais pra ZPL** em erro (uma etiqueta ZPL gen\u00e9rica n\u00e3o vale no ML) \u2014 erro claro com o substatus do envio.\\n- `printLabel` trata `'NONE'` (managed) com mensagem amig\u00e1vel.\\n- \u2705 **Validado AO VIVO com 1 pedido real** (cross_docking, ready_for_pickup): **PDF real de 64 KB** (`%PDF` v\u00e1lido) + **tracking `MEL47134842486FMXDF01`**. Testado e limpo \u2014 s\u00f3 1 venda tocada.\\n\\n## Test plan\\n- [ ] Imprimir etiqueta de um pedido Flex/Coletas/XD pago \u2192 PDF real + tracking\\n- [ ] Pedido Full \u2192 retorna \\\"managed\\\" sem tentar etiqueta\\n- [ ] Pedido ainda \"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-89929a8e9fd95c3e\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-labels.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 54,\n    \"deletions\": 20,\n    \"changes\": 74,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/fe05190f179ddeacb6fb902f9d850bad9b160b4b/src%2Fmodules%2Ffulfillment%2Ffulfillment-labels.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-191d59da6429c16d\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-13fd4ff32c81f070", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439698, "scanner": "foundry_dataset", "fingerprint": "ce9176a3a803ee11c967f7e5d39afb36e5bbc302c62dd78d2fd8e11233ca3fda", "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": "vazzocomercio-wq/eclick-backend#6", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b9fe26c9bd9913a9", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 2, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#6\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#6\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dad2d532393c1ca3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/6\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/6\\nTitle: feat(f12): sprint 5 \u2014 devolu\u00e7\u00f5es + reestoque (backend)\\nBody:\\n## Summary\\nSprint 5 do F12 (backend) \u2014 devolu\u00e7\u00f5es. Empilhado sobre a Sprint 4.\\n\\n- **Migration `20260632`**: `fulfillment_returns` (itens em jsonb, condi\u00e7\u00e3o por item) + RLS + GRANTs.\\n- **`StockService.applyReturnRestock`**: soma de volta ao estoque (movimento `return_restock` **idempotente** via `reference_type=fulfillment_return` + `recalcAndPropagate` \u2014 re-espelha e re-distribui).\\n- **`FulfillmentReturnsService`**: `register` (itens expl\u00edcitos OU derivados do pedido), `resolve` (condi\u00e7\u00e3o por item; os `restock` chamam o reestoque), `list`/`get`.\\n- `FulfillmentModule` importa `StockModule` \u2014 **boot confirmado sem ciclo de DI**.\\n- Endpoints `/fulfillment/returns*`. **Smoke 33/33 verde**.\\n\\n## Test plan\\n- [ ] Backend local + `node scripts/smoke-f12-fulfillment.mjs` \u2192 33/33\\n- [ ] Registrar devolu\u00e7\u00e3o de um pedido real + resolver 1 item como Reestocar \u2192 conferir movimento `return_restock` + estoque +qty\\n- [ ] Item\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4e3645b85ca0975a\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 18,\n    \"deletions\": 1,\n    \"changes\": 19,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/bf0ac738cd371ad0b8aaa3f84399ad7ab06868d8/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-ff74055d69883ea6\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-returns.service.ts\",\n    \"label\": \"ui_or_frontend\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-543a551391a9d320", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439697, "scanner": "foundry_dataset", "fingerprint": "664f4bd01e10f7d235c6c6892dbee5d4f61f3789594006e4452c995ad8a518c8", "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": "vazzocomercio-wq/eclick-backend#4", "human_labels": ["api_integration_gap", "api_or_backend", "source_or_other", "ui_or_frontend"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ea985e5023191c2a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#4\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#4\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3e392d1048bfd232\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/4\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/4\\nTitle: feat(f12): sprint 3 \u2014 reconcilia\u00e7\u00e3o de pedidos pagos (backend)\\nBody:\\n## Summary\\nSprint 3 do F12 (backend) \u2014 rede de seguran\u00e7a contra webhook perdido. Empilhado sobre a Sprint 2.\\n\\n- `FulfillmentService.reconcileOrg(orgId)`: pega pedidos PAGOS recentes (loja + ML) que n\u00e3o viraram fila e ingere. Gated por `auto_ingest`, idempotente (reusa `autoIngest*` \u2192 seed com UNIQUE).\\n- `FulfillmentReconcileService`: **@Cron 30min** varre as orgs com `auto_ingest_enabled`.\\n- Endpoint `POST /fulfillment/reconcile` (gatilho manual).\\n- **Smoke 25/25 verde** (insere pedido pago \\\"perdido\\\", reconcilia, valida ingest\u00e3o, cleanup total via snapshot antes/depois \u2014 n\u00e3o toca pedido real). Boot sem ciclo de DI.\\n\\n> Parti\u00e7\u00e3o de `operator_actions` ficou de fora (arriscado em tabela viva, baixa urg\u00eancia) \u2014 documentado como futuro.\\n\\n## Test plan\\n- [ ] Backend local + `node scripts/smoke-f12-fulfillment.mjs` \u2192 25/25\\n- [ ] Ligar auto-ingest\u00e3o + simular webhook perdido \u2192 reconcile cria a fila\\n- [ ] Cron rod\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8bbf956398112d33\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 21,\n    \"deletions\": 1,\n    \"changes\": 22,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/1fb3f163ad300e23a39e4aba7c42e54eab9f6fc6/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-bff310c982190cba\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-reconcile.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-057451ac9846b3f9", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439696, "scanner": "foundry_dataset", "fingerprint": "99c35674bab4f55763b08341626bdf6c4ea73abf4272cda5ca5e472923358507", "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": "vazzocomercio-wq/eclick-backend#3", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-342809529373da25", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#3\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#3\nRepo: vazzocomercio-wq/eclick-backend\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: 5\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'api_or_backend': 1, 'ui_or_frontend': 2, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6a292ea7bfdde2f4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/3\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/3\\nTitle: feat(f12): sprint 2 \u2014 pap\u00e9is de operador + fila inteligente (backend)\\nBody:\\n## Summary\\nSprint 2 do F12 (backend) \u2014 empilhado sobre a Sprint 1.\\n\\n- **Pap\u00e9is de operador**: CRUD de operadores (`/fulfillment/operators` + `/org-members`), enriquece email/nome via GoTrue admin.\\n- **Enforcement OPT-IN** (`enforce_roles`, migration `20260630`, default OFF): picker\u2192separa\u00e7\u00e3o, packer\u2192confer\u00eancia, supervisor/admin\u2192tudo. **Modo aberto** se off OU sem operador cadastrado (n\u00e3o tranca ningu\u00e9m + permite bootstrapping). Wired em todas as a\u00e7\u00f5es de pick/pack.\\n- **Produtividade** (`/fulfillment/productivity`): itens, itens/h, pedidos, erros por operador.\\n- **Fila inteligente**: quando `ai_smart_queue_enabled`, reordena a fila por urg\u00eancia de SLA + agrupa mesmo SKU (batch picking).\\n- **Smoke 23/23 verde**; boot sem ciclo de DI.\\n\\n## Test plan\\n- [ ] Backend local + `node scripts/smoke-f12-fulfillment.mjs` \u2192 23/23\\n- [ ] Ligar enforce_roles + cadastrar picker/packer \u2192 confirmar bloqueio cruz\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a70e799f3b4e28ea\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 31,\n    \"deletions\": 1,\n    \"changes\": 32,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/260dc4c5e90015bb5d24aa56da2a3050a58ef59a/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-632b10762db95577\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-7d4cf05229935f8b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439695, "scanner": "foundry_dataset", "fingerprint": "ebb9d285a9b8dc549ffb6d7e528bcf7e4150cc6a52d5c9b74e119edb920eff32", "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": "vazzocomercio-wq/eclick-backend#2", "human_labels": ["data_schema_persistence", "schema_or_data", "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.65, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3c5a6a3acbc2df40", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"schema_or_data": 1, "ui_or_frontend": 6, "source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#2\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#2\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 8\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 6, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0fe865114a376091\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/2\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/2\\nTitle: feat(f12): sprint 1 \u2014 ingest\u00e3o autom\u00e1tica (backend)\\nBody:\\n## Summary\\nSprint 1 do F12 \u2014 pedido pago vira fila de separa\u00e7\u00e3o **automaticamente** (sem seed manual). Empilhado sobre a Sprint 0.\\n\\n- **Migration `20260629`** (aplicada): `auto_ingest_enabled` (OFF/opt-in), `auto_ingest_sources`, `default_warehouse_id` em `fulfillment_settings`.\\n- **Ganchos best-effort, gated por org** (nunca quebram o webhook):\\n  - Loja Pr\u00f3pria \u2192 `payments.service` nos 2 branches `paid` (MP + Stripe)\\n  - Marketplace ML \u2192 `orders-ingestion.service` no bloco do pedido pago (webhook `orders_v2`)\\n- `autoIngest*` reusam o `seed` **idempotente** (`UNIQUE` \u2192 seguro em retry de webhook). Seed da loja resolve **SKU/EAN reais** do cat\u00e1logo. `resolveWarehouse` honra `default_warehouse_id`.\\n- `Payments`/`SalesAggregator` importam `FulfillmentModule` \u2014 **boot confirmado sem ciclo de DI**.\\n- **Smoke 17/17 verde** (inclui settings PUT/GET + idempot\u00eancia).\\n\\n## Test plan\\n- [ ] Backend local + `node scripts/sm\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-753c98d928d36954\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 25,\n    \"deletions\": 2,\n    \"changes\": 27,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b7c97358b2004d62fe7a79c8f09f5a79c96480b4/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-47c6863c9e4d89e2\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-c81e6fd01407f23f", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439694, "scanner": "foundry_dataset", "fingerprint": "1208029f816416369ba2e1fa96d6dd5a453bee29032c36f21843a7401c06764f", "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": "vazzocomercio-wq/eclick-backend#18", "human_labels": ["human_feedback_general", "ui_or_frontend"], "issue_number": "18", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-59ebab570b71b64e", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#18\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#18\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-bc95e5584adf176f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/18\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/18\\nTitle: fix(fiscal): .pfx como arquivo (n\u00e3o base64) pro node-sped-nfe\\nBody:\\nopenssl pkcs12 -in esperava caminho; passava base64 \u2192 File name too long. Grava temp + caminho + cleanup.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-d455ca2692fafa4b\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-sefaz.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 21,\n    \"deletions\": 5,\n    \"changes\": 26,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/a334323ea7c9c493bd8ff0492af8d742cdf982b3/src%2Fmodules%2Ffulfillment%2Ffulfillment-sefaz.service.ts\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5204a7eed682c1e2\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vazzocomercio-wq/eclick-backend\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 8, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 2, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 5, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 8, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 1, \"designs\": 1, \"docs\": 2, \"schemas\": 2, \"tests\": 2}\nHelicopter views: {\"schemas\": 2}\nBundle labels: {\"source_backed_architecture_schema_bundle\": 1}\nCo-occurrence labels: {\"architecture_data_consistency_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-e381a931db656861", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439693, "scanner": "foundry_dataset", "fingerprint": "412e183e6fe486be907aaf6df065e31524bd21867e32a4fed42bad8d04397d2f", "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": "vazzocomercio-wq/eclick-backend#16", "human_labels": ["api_or_backend", "dependency_or_build", "human_feedback_general", "ui_or_frontend"], "issue_number": "16", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c53ff77b5c149591", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "ui_or_frontend": 2, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#16\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#16\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {'dependency_or_build': 2, 'ui_or_frontend': 2, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-77f75015f4fc789b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/16\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/16\\nTitle: feat(fiscal): F2b-1 \u2014 emissor direto SEFAZ + Testar conex\u00e3o\\nBody:\\nnode-sped-nfe (ESM via import din\u00e2mico) + status SEFAZ. Boot OK, TSC 0. Teste real \u00e9 em prod (cert no Railway).\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-46d09aab67947cd9\",\n    \"filename\": \"package-lock.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 169,\n    \"deletions\": 2,\n    \"changes\": 171,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/6bb5c501145972792d6f8880161b1b88cdc145ad/package-lock.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5fb415cc08e251c4\",\n    \"filename\": \"package.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/6bb5c501145972792d6f8880161b1b88cdc145ad/package.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-863e8405ac37323b\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-sefaz.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 61,\n    \"deletions\": 0,\n    \"changes\": 61,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/6bb5c501145972792d6f8880161b1b88cdc145ad/src%2Fmodules%2Ffulfillment%2Ffulfillment-sefaz.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1bc294fcd9c361e1\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 0,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backe\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-115284f9640b38dc", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439692, "scanner": "foundry_dataset", "fingerprint": "de84a0c630795db4991e1820a11a95a2864fb8aa2e19f64706a3cf4350f37e06", "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": "vazzocomercio-wq/eclick-backend#15", "human_labels": ["api_or_backend", "dependency_or_build", "human_feedback_general", "source_or_other", "ui_or_frontend"], "issue_number": "15", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-202b3d341dffef23", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#15\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#15\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {'dependency_or_build': 2, 'source_or_other': 1, 'ui_or_frontend': 1, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5cbc2bed9d1c85f6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/15\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/15\\nTitle: feat(fiscal): F2a \u2014 cofre do certificado A1\\nBody:\\nUpload/parse/criptografia do A1 (node-forge). Pr\u00e9-req da emiss\u00e3o direta. Smoke 83/83, TSC 0, boot OK.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4b72030fb3bfc125\",\n    \"filename\": \"package-lock.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 20,\n    \"deletions\": 0,\n    \"changes\": 20,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b75b8391a65935c0312c9abd0c4b59040428d33a/package-lock.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5cad14b821706515\",\n    \"filename\": \"package.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 0,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b75b8391a65935c0312c9abd0c4b59040428d33a/package.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-3e27d393a02bf169\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 25,\n    \"deletions\": 0,\n    \"changes\": 25,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b75b8391a65935c0312c9abd0c4b59040428d33a/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-59365905a4c5d0f7\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-fiscal.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 53,\n    \"deletions\": 0,\n    \"changes\": 53,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b75b8391a65935c0312c9abd0c4b59\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-40c723ed954279c5", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 439691, "scanner": "foundry_dataset", "fingerprint": "f3dfd573c6a0c75111e21e972784d4cf13abc8965ddd33a0f37deb97108c22b4", "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": "vazzocomercio-wq/eclick-backend#1", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "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.607, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e0153493e435c2ee", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 11, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 2, "ui_or_frontend": 7, "source_or_other": 1}, "linked_commit_count": 3, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: assumption_checks\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#1\nRepo: vazzocomercio-wq/eclick-backend\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: 11\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 7, 'api_or_backend': 1, 'schema_or_data': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7be29e4f9d68cb6a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/1\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/1\\nTitle: feat(f12): sprint 0 fulfillment foundation (backend)\\nBody:\\n## Summary\\nF12 Fulfillment \u2014 Sprint 0 (funda\u00e7\u00e3o): eliminar erro de separa\u00e7\u00e3o no CD via bipagem obrigat\u00f3ria + dupla checagem (pick\u2192pack) + log audit\u00e1vel.\\n\\n- **Migration** `20260627` \u2014 9 tabelas: warehouses, warehouse_operators, fulfillment_settings, **fulfillment_orders** (pedido unificado marketplace/loja/b2b), pick_tasks, pack_tasks, operator_actions, damage_reports, shipment_labels. RLS org-scoped (`get_user_org_ids`) + service_role + GRANTs + trigger pick\u2192pack. Migration `20260628` adiciona `products.ean`. **J\u00e1 aplicadas no Supabase** (aditivas, idempotentes).\\n- **M\u00f3dulo NestJS `fulfillment`** (16 endpoints): seed unificado, picking (scan SKU/EAN/QR, mismatch bloqueado e logado), packing (scan pedido \u2192 foto \u2192 fechar com gate de foto), avarias, etiqueta (ML real PDF + fallback ZPL), dashboard. Toda a\u00e7\u00e3o em `operator_actions`.\\n- **3 IAs opcionais por org** (OFF por padr\u00e3o): triagem de avaria por foto, confer\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f0d23655481ba644\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 174,\n    \"deletions\": 0,\n    \"changes\": 174,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/bcbcfac75651cd6d6b8aea5838a9c0d3ccf38c7b/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-9fb25a0c7d7fa818\",\n    \"filename\": \"src/app.module.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-assumption_checks-00fb2f81d211028e", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453925, "scanner": "foundry_dataset", "fingerprint": "780ba2a104df1fc953d7ab496ebe3ff59bfc886ef29b753b9db92c1db43111b2", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#9", "issue_number": "9", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-79575924259d67d7", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 9\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-453258b12856c0be", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453924, "scanner": "foundry_dataset", "fingerprint": "887f4113f90bc68818c1c808be4d0fb12cc4feb16d51816c52375931d44c7753", "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": 1, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 7, "ui_or_frontend": 16, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 74, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 25, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 45, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 25, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#8", "issue_number": "8", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4ca752906da327e6", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 28, "ui_or_frontend": 64, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#8\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#8\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 8\nGraph consistency label: weak_supervision_needs_review\nNodes: 45\nEdges: 74\nNode types: {'pr_file': 25, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 25, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 16, 'schema_or_data': 7, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-21917363deca805c", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453923, "scanner": "foundry_dataset", "fingerprint": "25cdd69792960e3380ff18dd20cf6499526da52953c8f29d5c165a3ea6ac0c69", "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, "data_schema": 1, "ui_or_frontend": 2, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#7", "issue_number": "7", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a068eef53a80c2cb", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 8}}, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#7\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#7\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 23\nEdges: 32\nNode types: {'link_quality': 6, 'commit': 3, 'alignment': 3, 'blueprint_finding': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'comment_chain_links_commit': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-3dc7d8d2d629e7b2", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453922, "scanner": "foundry_dataset", "fingerprint": "f1f097e097256ee0b10254d2051ba0f7db876c1935af191bacd844eb84ce168f", "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": 1, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 43, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 26, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#6", "issue_number": "6", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e042421836222919", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#6\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#6\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#6\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 6\nGraph consistency label: weak_supervision_needs_review\nNodes: 26\nEdges: 43\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-c2df80dec2284e1e", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453921, "scanner": "foundry_dataset", "fingerprint": "97d224bf40af660e580cb73f1c21e8876b957f053ec0d0e586d5a72eefcd3dd9", "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": {"schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#5", "issue_number": "5", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-903c4ef84eb7d626", "graph_gold_label": "assumption_check", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#5\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 5\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-710d33ecf7cf1db5", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453920, "scanner": "foundry_dataset", "fingerprint": "fcc94f2b42b52efa4981b31550c17e712c84fe786d910d4fa99bcee92ab7b1e2", "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": {"data_schema": 1, "api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#3", "issue_number": "3", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-14f295cd04b78292", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#3\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#3\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 24\nEdges: 39\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-fe2de0992ba29ccc", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453919, "scanner": "foundry_dataset", "fingerprint": "fef5df38394a4d94f07bb1c4aa99eb0a48ed107cfd24b829a195f7d0b3c1876b", "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": 4, "data_schema": 1, "schema_or_data": 1, "ui_or_frontend": 6, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 52, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 31, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#2", "issue_number": "2", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-05c057d8fd58ca6a", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 24, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#2\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#2\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 31\nEdges: 52\nNode types: {'pr_file': 8, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 6, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-988f290e581d9a73", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453918, "scanner": "foundry_dataset", "fingerprint": "1a06354c9e6974433ab5970dd8243ff9269e9ee7e770dcdd7fff0ba62b1b3a11", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#14", "issue_number": "14", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-65f6aa56f2b6bd54", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: needs_more_evidence\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#14\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 14\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 29\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, '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': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-93b73d7135fef98a", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453917, "scanner": "foundry_dataset", "fingerprint": "38b68b8b9986012e8e534f98c3ea2d4cd857d097853738c9d070fb2fc530cd7c", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#13", "issue_number": "13", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7e432d42f7e38d4d", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#13\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 13\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-eb9f0ad753858d80", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453916, "scanner": "foundry_dataset", "fingerprint": "c6481fe41b06d185ca01fc9d8acf9954a81dcf8074b9e6f6c7ae0a901017bdaa", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#12", "issue_number": "12", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a2abe7bc2105897a", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#12\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 12\nGraph consistency label: assumption_check\nNodes: 23\nEdges: 38\nNode types: {'link_quality': 6, 'pr_file': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-3eef6c82ecc91c40", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453915, "scanner": "foundry_dataset", "fingerprint": "6d9893ed67642f29ffb67b3783091046c25b1e10f52c4e4c13086f12319554b3", "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": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#11", "issue_number": "11", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-fff9b3a40dde3f1c", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 4, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#11\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 11\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 32\nNode types: {'link_quality': 6, 'pr_file': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 6, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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: {'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-e76af51659df9c23", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453914, "scanner": "foundry_dataset", "fingerprint": "efc616dd14995005ce1e3dad512b2ef1a98c2198058a0f2e5bf6909a1ef90282", "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": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_alignment": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#10", "issue_number": "10", "quality_tiers": {"unresolved": 3, "assumption_check": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-92ac5584af9eb8c1", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "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: assumption_check\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#10\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 10\nGraph consistency label: assumption_check\nNodes: 24\nEdges: 41\nNode types: {'pr_file': 6, 'link_quality': 6, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'chain_has_link_quality': 6, 'issue_chain_touches_file': 6, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 3, 'not_resolved_or_not_observed': 3, 'blueprint_human_gap_alignment': 3, 'thread_has_human_issue_without_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1, 'weak blueprint fit': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-b8a81a351a403410", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 453913, "scanner": "foundry_dataset", "fingerprint": "004f4194e6f1a4144a7a6e0e31f4a1f988479ea40963544054f5bfe7bb914617", "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, "data_schema": 1, "api_or_backend": 1, "schema_or_data": 2, "ui_or_frontend": 7, "source_or_other": 1, "weak blueprint fit": 1, "partial blueprint fit": 2, "data_schema_persistence": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 3, "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": {}, "synthetic": false, "edge_count": 59, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 11, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 11, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 32, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 11, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#1", "issue_number": "1", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7c0980c47acf38f2", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 8, "ui_or_frontend": 28, "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: weak_supervision_needs_review\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#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: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#1\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 32\nEdges: 59\nNode types: {'pr_file': 11, 'link_quality': 6, 'commit': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 11, 'comment_chain_touches_file': 11, 'issue_chain_touches_file': 11, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 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': 7, 'claimed_resolved_unverified': 3, 'blueprint_human_gap_alignment': 3, 'schema_or_data': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'partial blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'weak blueprint fit': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\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/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-e0da88a82d282587", "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": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445116, "scanner": "foundry_dataset", "fingerprint": "d87fdff75672643a4fbc49dce960d2fe34edeb8a35d8babd20da55a4f014ac29", "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": "vazzocomercio-wq/eclick-backend#9", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "9", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-908d3ae3f41c1fc0", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#9\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#9\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-522e92c7cb6e3741\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/9\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/9\\nTitle: feat(f12): Onda A \u2014 multi-CNPJ + multiconta + timing real\\nBody:\\nFunda\u00e7\u00e3o multi-empresa(CNPJ)/multiconta + prazo real das plataformas (ML lead_time). Aditivo/inerte. Smoke 53/53, TSC 0. Migration 20260634 j\u00e1 aplicada.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-0d01cc1f51f97af1\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 19,\n    \"deletions\": 0,\n    \"changes\": 19,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7c612772c528218f84738a8b824c3c97b1cf48a5/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-888a6df795d1303d\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-accounts.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 200,\n    \"deletions\": 0,\n    \"changes\": 200,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7c612772c528218f84738a8b824c3c97b1cf48a5/src%2Fmodules%2Ffulfillment%2Ffulfillment-accounts.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-9801b200640c5dba\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 29,\n    \"deletions\": 0,\n    \"changes\": 29,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7c612772c528218f84738a8b824c3c97b1cf48a5/src%2Fmodules%2Ffulfillment%2Ffulfillment.controller.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-48f57ce19a32ebef\",\n    \"filename\": \"src/modules/fulfillment\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-1441203a2af25673", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445115, "scanner": "foundry_dataset", "fingerprint": "a10160f780a6f3677db32debd02eeb56ec61018cb32c3c5957a00ca3f07ffb15", "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": "vazzocomercio-wq/eclick-backend#5", "human_labels": ["data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "5", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-035f92ce137fdb14", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#5\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#5\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a227d14807eabb3e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/5\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/5\\nTitle: feat(f12): sprint 4 \u2014 SLA & atrasados + KB Copilot (backend)\\nBody:\\n## Summary\\nSprint 4 do F12 (backend) \u2014 empilhado sobre a Sprint 3.\\n\\n- **SLA configur\u00e1vel** (migration `20260631`: `default_sla_hours`, default 24). Seed preenche `sla_deadline` em fulfillment_orders + pick_tasks.\\n- **Atrasados**: dashboard retorna `lateCount` (SLA vencido, n\u00e3o despachado) + `dueSoonCount` (<2h).\\n- **KB do Copilot**: `FULFILLMENT_ENTRIES` (hub/picking/packing) \u2014 quita a d\u00edvida da regra obrigat\u00f3ria de KB-por-sprint dos sprints 0-3.\\n- **Smoke 29/29 verde**; boot sem ciclo.\\n\\n## Test plan\\n- [ ] Backend local + `node scripts/smoke-f12-fulfillment.mjs` \u2192 29/29\\n- [ ] Ajustar prazo nas Configura\u00e7\u00f5es \u2192 pedidos vencidos aparecem como atrasados\\n- [ ] Copiloto responde sobre /fulfillment\\n\\n> Base = `feat/f12-fulfillment-sprint3` (stacked). Ordem: #1\u2192sprint1\u2192sprint2\u2192sprint3\u2192sprint4.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-b0e63997fa08c4b1\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 16,\n    \"deletions\": 1,\n    \"changes\": 17,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/be37c6c742e335cf26c5cc857915a156f7d2615e/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-dc0641f6f7a489a6\",\n    \"filename\": \"src/modules/copilot/copilot.kb.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 21,\n    \"deletions\": 0,\n    \"changes\": 21,\n    \"blob\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-fbfda9047d431ccf", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445114, "scanner": "foundry_dataset", "fingerprint": "0161041815d7fa730f0819a1b506446a5748f5f78fde499dc6eb4c19017bf646", "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": "vazzocomercio-wq/eclick-backend#17", "human_labels": ["deployment_env_gap", "source_or_other", "ui_or_frontend"], "issue_number": "17", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-d6a2a25e46d5791c", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#17\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#17\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6c3a65d62627cd75\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/17\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/17\\nTitle: fix(fiscal): xmllint + openssl no Docker (emiss\u00e3o direta)\\nBody:\\nnode-sped-nfe precisa de xmllint+openssl em runtime. Dockerfile + fix do config.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-01fb3473e5bd5303\",\n    \"filename\": \"Dockerfile\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 3,\n    \"changes\": 7,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7f7827fa75dff39157bdf4389012aeb21f335344/Dockerfile\"\n  },\n  {\n    \"id\": \"github-pr-file-file-c284c8dc8c370bbd\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-sefaz.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7f7827fa75dff39157bdf4389012aeb21f335344/src%2Fmodules%2Ffulfillment%2Ffulfillment-sefaz.service.ts\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4a519c75b2ad5a83\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vazzocomercio-wq/eclick-backend\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 8, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 2, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 5, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 8, \"repo_has_source_bundle\": 1, \"sour\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-13c842b11b120aa8", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445113, "scanner": "foundry_dataset", "fingerprint": "113bbfe4e525f9d3fa935d8118c12f6962ac81ce36db9100723c2825e2a042e6", "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": "vazzocomercio-wq/eclick-backend#14", "human_labels": ["api_or_backend", "schema_or_data", "security_auth_secret", "source_or_other", "ui_or_frontend"], "issue_number": "14", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-004809986476c74b", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#14\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6619503771ab0d40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/14\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/14\\nTitle: feat(fiscal): Faturador F1 \u2014 funda\u00e7\u00e3o fiscal\\nBody:\\nConfig NF-e por empresa + token criptografado + % por conta + dados fiscais de produto. N\u00c3O emite (F2+). Smoke 78/78, TSC 0. Migration 20260638 aplicada.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-aab8d4811615f57b\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 34,\n    \"deletions\": 0,\n    \"changes\": 34,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b9815740fb22cebdb70677e8875356b7eefe35f0/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1aae8cd17873bbb9\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-accounts.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 11,\n    \"deletions\": 1,\n    \"changes\": 12,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b9815740fb22cebdb70677e8875356b7eefe35f0/src%2Fmodules%2Ffulfillment%2Ffulfillment-accounts.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-d5e2611302ee6cef\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-fiscal.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 162,\n    \"deletions\": 0,\n    \"changes\": 162,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/b9815740fb22cebdb70677e8875356b7eefe35f0/src%2Fmodules%2Ffulfillment%2Ffulfillment-fiscal.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5b2ff0b886ebe03c\",\n    \"filename\": \"src/modules/fulfillment/fulfillm\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-03e63e93885ea004", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445112, "scanner": "foundry_dataset", "fingerprint": "a422eeb60ef887499e4174503923f7f108a42141826aa45a199c500c3c7f6466", "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": "vazzocomercio-wq/eclick-backend#13", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "13", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e0d8299e6316e7a2", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#13\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#13\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-023843b208bfeaee\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/13\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/13\\nTitle: feat(f12): Onda E \u2014 controle de embalagens (fecha o \u00e9pico)\\nBody:\\nTipos + kits de embalagem + sugest\u00e3o IA. Smoke 71/71, TSC 0. Migration 20260637 aplicada.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-6227aee021436829\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 20,\n    \"deletions\": 0,\n    \"changes\": 20,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/662a17df670a7f6536cd44ca07975dacf984efe0/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-e2f9994e9168dd8c\",\n    \"filename\": \"src/modules/ai/defaults.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 0,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/662a17df670a7f6536cd44ca07975dacf984efe0/src%2Fmodules%2Fai%2Fdefaults.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-85ba1a1df2292edf\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-packaging.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 125,\n    \"deletions\": 0,\n    \"changes\": 125,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/662a17df670a7f6536cd44ca07975dacf984efe0/src%2Fmodules%2Ffulfillment%2Ffulfillment-packaging.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1ad1b2e09f3239bc\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 4\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-86ca632dbe72e4ca", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445111, "scanner": "foundry_dataset", "fingerprint": "b971332ed1bde826220bafd0ecc94d51ed047f9062bdb2eb5ed7e71c86a85718", "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": "vazzocomercio-wq/eclick-backend#12", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "12", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-324e3171e6477246", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 2, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#12\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#12\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 2, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d7348da96e330bad\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/12\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/12\\nTitle: feat(f12): Onda D \u2014 NF-e (prepara\u00e7\u00e3o) + valida\u00e7\u00e3o fiscal\\nBody:\\nEstrutura de NF-e (n\u00e3o emite) + valida\u00e7\u00e3o itens-da-nota \u00d7 separado. Smoke 66/66, TSC 0. Migration 20260636 aplicada.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8db34c448fe2b5db\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 18,\n    \"deletions\": 0,\n    \"changes\": 18,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/893bde552fa475304dba7d4684301ee2096d46f0/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-43113d0761a1bff6\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-invoices.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 139,\n    \"deletions\": 0,\n    \"changes\": 139,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/893bde552fa475304dba7d4684301ee2096d46f0/src%2Fmodules%2Ffulfillment%2Ffulfillment-invoices.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-bcb7439a20e4aad0\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 27,\n    \"deletions\": 0,\n    \"changes\": 27,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/893bde552fa475304dba7d4684301ee2096d46f0/src%2Fmodules%2Ffulfillment%2Ffulfillment.controller.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-86b90308f37da758\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.module.ts\",\n    \"lab\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-778bb7c54cc203a4", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445110, "scanner": "foundry_dataset", "fingerprint": "fc62683905f43d5d18f0e24ff3440bdeb3d9707bd578de74533de8aaa9d27b95", "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": "vazzocomercio-wq/eclick-backend#11", "human_labels": ["api_or_backend", "data_schema_persistence", "source_or_other", "ui_or_frontend"], "issue_number": "11", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c6a53497a0bd4f34", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#11\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#11\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'api_or_backend': 1, 'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ade21880edc00723\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/11\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/11\\nTitle: feat(f12): Onda C \u2014 aguardando coleta por empresa\u2192conta\\nBody:\\nStaging organizado por empresa(CNPJ)\u2192conta(plataforma). S\u00f3 leitura, sem migration. Smoke 61/61, TSC 0.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8b0a8bdbd5acb70d\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 13,\n    \"deletions\": 0,\n    \"changes\": 13,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7fce1f78822b4a153528288d00de18b8527253e2/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-769f02745049548d\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 0,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7fce1f78822b4a153528288d00de18b8527253e2/src%2Fmodules%2Ffulfillment%2Ffulfillment.controller.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-0923b8b0a08af628\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 73,\n    \"deletions\": 0,\n    \"changes\": 73,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/7fce1f78822b4a153528288d00de18b8527253e2/src%2Fmodules%2Ffulfillment%2Ffulfillment.service.ts\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-60c7a063f2be8eef\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vazzocomercio-wq/eclick-backend\nGraph label:\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-b33799653518004b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 445109, "scanner": "foundry_dataset", "fingerprint": "35d1c97495660161499f4ffa522edbb656abb5804495d8c2e527477f1ee004e1", "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": "vazzocomercio-wq/eclick-backend#10", "human_labels": ["api_or_backend", "data_schema_persistence", "schema_or_data", "source_or_other", "ui_or_frontend"], "issue_number": "10", "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": "vazzocomercio-wq/eclick-backend", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-82050c50d2347e72", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 2, "tests": 2, "designs": 1, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 3}, "text": "Comment chain pattern product: bad_chains\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#10\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vazzocomercio-wq/eclick-backend#10\nRepo: vazzocomercio-wq/eclick-backend\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 3, 'api_or_backend': 1, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e6f992ac282c2cb5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vazzocomercio-wq/eclick-backend/pull/10\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vazzocomercio-wq/eclick-backend\\nAuthor: vazzocomercio-wq (User)\\nURL: https://github.com/vazzocomercio-wq/eclick-backend/pull/10\\nTitle: feat(f12): Onda B \u2014 painel tempo real (KDS) + Realtime\\nBody:\\nPainel ao vivo estilo McDonald's: colunas por etapa + urg\u00eancia pelo prazo real + Supabase Realtime. Smoke 57/57, TSC 0. Migration 20260635 aplicada.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4969d331d65388a5\",\n    \"filename\": \"scripts/smoke-f12-fulfillment.mjs\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 13,\n    \"deletions\": 0,\n    \"changes\": 13,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/532bce40b2fada66cb04defd9b229bf2613010c9/scripts%2Fsmoke-f12-fulfillment.mjs\"\n  },\n  {\n    \"id\": \"github-pr-file-file-ce642e0b8e81a08e\",\n    \"filename\": \"src/modules/fulfillment/fulfillment-accounts.service.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 5,\n    \"deletions\": 1,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/532bce40b2fada66cb04defd9b229bf2613010c9/src%2Fmodules%2Ffulfillment%2Ffulfillment-accounts.service.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-8cf44ea632c4569e\",\n    \"filename\": \"src/modules/fulfillment/fulfillment.controller.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 0,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/vazzocomercio-wq/eclick-backend/blob/532bce40b2fada66cb04defd9b229bf2613010c9/src%2Fmodules%2Ffulfillment%2Ffulfillment.controller.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-10a3e06fcb3b70b5\",\n    \"filename\": \"src/modules/fulfillment/fulfi\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "comment-chain-pattern-bad_chains-89c2e93959e8e231", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vazzocomercio-wq/eclick-backend"}, "properties": {"repobilityId": 456423, "scanner": "foundry_dataset", "fingerprint": "4717f195cf0ef354de70fe6109a040b76434f3033de4e1c76d59f716f808270f", "category": "auth", "severity": "critical", "confidence": 0.78, "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": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vazzocomercio-wq/eclick-backend#14", "issue_number": "14", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vazzocomercio-wq/eclick-backend", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-2b1c980aff71065e", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"api_or_backend": 4, "schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vazzocomercio-wq/eclick-backend\nThread: vazzocomercio-wq/eclick-backend#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vazzocomercio-wq/eclick-backend#14\nRepo: vazzocomercio-wq/eclick-backend\nIssue/PR number: 14\nGraph consistency label: needs_more_evidence\nNodes: 15\nEdges: 29\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, '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': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vazzocomercio-wq/eclick-backend", "source_id": "graph-query-motif_query-d6333379e610a5ba", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vazzocomercio-wq/eclick-backend", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "scanner-8afd3dd273b06177", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-rollup.ts:88"}, "properties": {"repobilityId": "a9bd59ee8b7997fe", "scanner": "scanner-primary", "fingerprint": "8afd3dd273b06177", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-caa8077e91cb140a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry.ts:66"}, "properties": {"repobilityId": "de2d27bc4cc9aba2", "scanner": "scanner-primary", "fingerprint": "caa8077e91cb140a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-940e742699a67010", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-telemetry-ai.ts:71"}, "properties": {"repobilityId": "7cc13272bf23077e", "scanner": "scanner-primary", "fingerprint": "940e742699a67010", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-899f68b564f748f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-geo-score.ts:54"}, "properties": {"repobilityId": "2d2a23bc599d0602", "scanner": "scanner-primary", "fingerprint": "899f68b564f748f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c55b428468a5f37", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/index.ts:21"}, "properties": {"repobilityId": "8cb9177600bb9f73", "scanner": "scanner-primary", "fingerprint": "9c55b428468a5f37", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a26c97398138fb0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/internal-server.ts:51"}, "properties": {"repobilityId": "8410a61db5490370", "scanner": "scanner-primary", "fingerprint": "8a26c97398138fb0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27ac0ae9d74cf036", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/radar/util.ts:5"}, "properties": {"repobilityId": "20fb4fb22815f745", "scanner": "scanner-primary", "fingerprint": "27ac0ae9d74cf036", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-731ac149689d28ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.session.ts:232"}, "properties": {"repobilityId": "1e54caa41833bec8", "scanner": "scanner-primary", "fingerprint": "731ac149689d28ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29fb0d4b9d21b75c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/baileys.manager.ts:45"}, "properties": {"repobilityId": "84a9d0f3f39f5329", "scanner": "scanner-primary", "fingerprint": "29fb0d4b9d21b75c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-987c89193a0eeecc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/src/whatsapp/internal-api-client.ts:34"}, "properties": {"repobilityId": "c9f8e99675538fd0", "scanner": "scanner-primary", "fingerprint": "987c89193a0eeecc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4a0aa236d1f96f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/main.ts:15"}, "properties": {"repobilityId": "981eedf4f52fff93", "scanner": "scanner-primary", "fingerprint": "d4a0aa236d1f96f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e78f1c2e49a113e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/common/retry.ts:43"}, "properties": {"repobilityId": "3d2762be540e9957", "scanner": "scanner-primary", "fingerprint": "1e78f1c2e49a113e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e837be3eb48d996e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/public-audits/public-audit-nurture.templates.ts:21"}, "properties": {"repobilityId": "54da3a3bbca45530", "scanner": "scanner-primary", "fingerprint": "e837be3eb48d996e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-000faa69abfcb061", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/ph3a.provider.ts:32"}, "properties": {"repobilityId": "f31fab9eed96c691", "scanner": "scanner-primary", "fingerprint": "000faa69abfcb061", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d9067d84850f0a72", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/enrichment/providers/directdata.provider.ts:45"}, "properties": {"repobilityId": "9e7ba0d813450493", "scanner": "scanner-primary", "fingerprint": "d9067d84850f0a72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cf51747c6b7d4ffe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/ai/llm.service.ts:702"}, "properties": {"repobilityId": "be10e1a6df9a6e26", "scanner": "scanner-primary", "fingerprint": "cf51747c6b7d4ffe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-64da1f5ad09ecfc9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/internal/internal.controller.ts:93"}, "properties": {"repobilityId": "a066fcb131279d0e", "scanner": "scanner-primary", "fingerprint": "64da1f5ad09ecfc9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-dc242a6b12e7f8b5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/bonus/bonus.service.ts:216"}, "properties": {"repobilityId": "3b9b8ccbcb7592e7", "scanner": "scanner-primary", "fingerprint": "dc242a6b12e7f8b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7c3fb2a37437e5ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/modules/mercadolivre/mercadolivre.service.ts:404"}, "properties": {"repobilityId": "1dcb456ea6aa5da9", "scanner": "scanner-primary", "fingerprint": "7c3fb2a37437e5ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-163a104be22617cb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-intelligence/signals/product-snapshot.service.ts:312"}, "properties": {"repobilityId": "cace7d8f2cf9321e", "scanner": "scanner-primary", "fingerprint": "163a104be22617cb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-989dbf1c3d274781", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/sales-aggregator/services/new-sale-notifier.service.ts:203"}, "properties": {"repobilityId": "1a2b17514d3ba578", "scanner": "scanner-primary", "fingerprint": "989dbf1c3d274781", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2d841033bfad3961", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/modules/sales-aggregator/services/backfill.service.ts:162"}, "properties": {"repobilityId": "862450557c733fca", "scanner": "scanner-primary", "fingerprint": "2d841033bfad3961", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-422fb5df8ffe4679", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/pricing-ai/pricing-ai.service.ts:472"}, "properties": {"repobilityId": "3ede6dd76467b3f8", "scanner": "scanner-primary", "fingerprint": "422fb5df8ffe4679", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-bd9429b35f7e33cd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/shipping/shipping.service.ts:167"}, "properties": {"repobilityId": "c1d4ac543adba3ce", "scanner": "scanner-primary", "fingerprint": "bd9429b35f7e33cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-534fecdea2cb6565", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/modules/webhooks/webhooks.controller.ts:64"}, "properties": {"repobilityId": "362be63cafba774f", "scanner": "scanner-primary", "fingerprint": "534fecdea2cb6565", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a35c6a00f751880f", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "properties": {"repobilityId": "be924fbee382ebe0", "scanner": "scanner-primary", "fingerprint": "a35c6a00f751880f", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6163a16779e68969", "level": "warning", "message": {"text": "Dockerfile runs as root: workers/Dockerfile"}, "properties": {"repobilityId": "d183d476296ffe32", "scanner": "scanner-primary", "fingerprint": "6163a16779e68969", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-929e195bcd6de972", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "642ec1d480306a0d", "scanner": "scanner-primary", "fingerprint": "929e195bcd6de972", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-ab35f06a3e793b91", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/bulk-audit-vazzo.mjs:20"}, "properties": {"repobilityId": "9d5f6299a6f56d4e", "scanner": "scanner-primary", "fingerprint": "ab35f06a3e793b91", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bulk-audit-vazzo.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-fbc2b2d86e7418e3", "level": "error", "message": {"text": "Possible secret in scripts/smoke-f12-fulfillment.mjs"}, "properties": {"repobilityId": "22bce93b078fd574", "scanner": "scanner-primary", "fingerprint": "fbc2b2d86e7418e3", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/smoke-f12-fulfillment.mjs"}, "region": {"startLine": 447}}}]}, {"ruleId": "scanner-fbc2b2d86e7418e3", "level": "error", "message": {"text": "Possible secret in scripts/smoke-f12-fulfillment.mjs"}, "properties": {"repobilityId": "22bce93b078fd574", "scanner": "scanner-primary", "fingerprint": "fbc2b2d86e7418e3", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/smoke-f12-fulfillment.mjs"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-8b64d3c7ca7ea151", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/backfill-shipping-addresses.mjs:170"}, "properties": {"repobilityId": "c3a583055ed94b19", "scanner": "scanner-primary", "fingerprint": "8b64d3c7ca7ea151", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/backfill-shipping-addresses.mjs"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-64c985f5a2ae1581", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/common/ffmpeg.ts:14"}, "properties": {"repobilityId": "bbfd6eb4647b78bd", "scanner": "scanner-primary", "fingerprint": "64c985f5a2ae1581", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/common/ffmpeg.ts"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-5a6748ec11accb64", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in src/modules/fulfillment/fulfillment-sefaz.service.ts:13"}, "properties": {"repobilityId": "c7d23dadaaed199e", "scanner": "scanner-primary", "fingerprint": "5a6748ec11accb64", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/modules/fulfillment/fulfillment-sefaz.service.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-796d7bf350c57b89", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in src/modules/events/events.gateway.ts:23"}, "properties": {"repobilityId": "ba3f823dae9958a7", "scanner": "scanner-primary", "fingerprint": "796d7bf350c57b89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/modules/events/events.gateway.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-3b1ccc5f348197fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/modules/widgets/widget-public.controller.ts:42"}, "properties": {"repobilityId": "fd68cf3496358976", "scanner": "scanner-primary", "fingerprint": "3b1ccc5f348197fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/modules/widgets/widget-public.controller.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-6ad37ef616e6fd27", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in src/modules/widgets/widget-public.controller.ts:88"}, "properties": {"repobilityId": "d65081e6be0d13ac", "scanner": "scanner-primary", "fingerprint": "6ad37ef616e6fd27", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/modules/widgets/widget-public.controller.ts"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-78fe6aa85bfb9c3e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in src/modules/webhooks/webhooks.controller.ts:167"}, "properties": {"repobilityId": "a5f5a12fc7890478", "scanner": "scanner-primary", "fingerprint": "78fe6aa85bfb9c3e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/modules/webhooks/webhooks.controller.ts"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-33922fcbade3ea6e", "level": "note", "message": {"text": "Very large file: src/modules/creative/creative-video-pipeline.service.ts (1543 lines)"}, "properties": {"repobilityId": "c556821e6e040f11", "scanner": "scanner-primary", "fingerprint": "33922fcbade3ea6e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-327b5f545b1a901e", "level": "note", "message": {"text": "Very large file: src/modules/creative/creative.service.ts (1746 lines)"}, "properties": {"repobilityId": "4fb3d5cf1627e588", "scanner": "scanner-primary", "fingerprint": "327b5f545b1a901e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-022cae0fb77558b7", "level": "note", "message": {"text": "Very large file: src/modules/creative/creative-image-pipeline.service.ts (1368 lines)"}, "properties": {"repobilityId": "a9ec89afe09d2f61", "scanner": "scanner-primary", "fingerprint": "022cae0fb77558b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f7181702c723b8d8", "level": "note", "message": {"text": "Very large file: src/modules/creative/creative-ml-publisher.service.ts (1568 lines)"}, "properties": {"repobilityId": "3ac107a742235e0c", "scanner": "scanner-primary", "fingerprint": "f7181702c723b8d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b86e0c1c0897e83b", "level": "note", "message": {"text": "Very large file: src/modules/fulfillment/fulfillment.service.ts (1120 lines)"}, "properties": {"repobilityId": "fba7c9f4abb740dc", "scanner": "scanner-primary", "fingerprint": "b86e0c1c0897e83b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14ec4df8e75c2590", "level": "note", "message": {"text": "Very large file: src/modules/orders/orders.service.ts (1927 lines)"}, "properties": {"repobilityId": "567f7040930f052e", "scanner": "scanner-primary", "fingerprint": "14ec4df8e75c2590", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-68de0d40a2f88b9d", "level": "note", "message": {"text": "Very large file: src/modules/marketplace/adapters/shopee.adapter.ts (2213 lines)"}, "properties": {"repobilityId": "c440bbed3eda67cc", "scanner": "scanner-primary", "fingerprint": "68de0d40a2f88b9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7bfaecd809c1e4b1", "level": "note", "message": {"text": "Very large file: src/modules/ml-ads/ml-ads.service.ts (1299 lines)"}, "properties": {"repobilityId": "5fdb402dc54883c2", "scanner": "scanner-primary", "fingerprint": "7bfaecd809c1e4b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-059ccb578ceac9c6", "level": "note", "message": {"text": "Very large file: src/modules/tiktok-shop/tiktok-shop.service.ts (2034 lines)"}, "properties": {"repobilityId": "d39e5e6472dc7a5e", "scanner": "scanner-primary", "fingerprint": "059ccb578ceac9c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-285aff320d74cb93", "level": "note", "message": {"text": "Very large file: src/modules/multiplier/multiplier.service.ts (1222 lines)"}, "properties": {"repobilityId": "88ae137e62226874", "scanner": "scanner-primary", "fingerprint": "285aff320d74cb93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a37833aa6dfd773", "level": "note", "message": {"text": "Very large file: src/modules/mercadolivre/mercadolivre.service.ts (3196 lines)"}, "properties": {"repobilityId": "7d24ae4c9e7b931b", "scanner": "scanner-primary", "fingerprint": "6a37833aa6dfd773", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3a2a995bbc564b85", "level": "note", "message": {"text": "Very large file: src/modules/copilot/copilot.kb.ts (3322 lines)"}, "properties": {"repobilityId": "1fae53e100817b18", "scanner": "scanner-primary", "fingerprint": "3a2a995bbc564b85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-293620ed7247926d", "level": "note", "message": {"text": "Very large file: src/modules/dropship/dropship.service.ts (4639 lines)"}, "properties": {"repobilityId": "e2f1439db2c85e83", "scanner": "scanner-primary", "fingerprint": "293620ed7247926d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-99ab1557271d72be", "level": "note", "message": {"text": "63 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "99ab1557271d72be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "974e73467bc91e6f", "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": "70c9b26326ed9dba", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "b104737971fb43b0", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "acb8f9d6dc1abc34", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "089a3e6a3cd6660d", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "4e00b6e72097f65d", "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": "c41010a97d4d7c17", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-44db455f53380a66", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ml-categories-crawl.mjs:70"}, "properties": {"repobilityId": "7899407417987779", "scanner": "scanner-primary", "fingerprint": "44db455f53380a66", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d492e86bf47a139", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/store-geo-diagnostic.mjs:38"}, "properties": {"repobilityId": "2cfe8d9e42615f55", "scanner": "scanner-primary", "fingerprint": "3d492e86bf47a139", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f29c39e79b6a4162", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dashboard.mjs:13"}, "properties": {"repobilityId": "c69f0b99dec99bf4", "scanner": "scanner-primary", "fingerprint": "f29c39e79b6a4162", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cc4e2743179af4a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-deal.mjs:17"}, "properties": {"repobilityId": "34c355e31404096a", "scanner": "scanner-primary", "fingerprint": "6cc4e2743179af4a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-da20a153a8fbc7be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-suggestions-variants.mjs:23"}, "properties": {"repobilityId": "f96cf4c12356a5a3", "scanner": "scanner-primary", "fingerprint": "da20a153a8fbc7be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce5d5fcc8b2603d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rank-sim.mjs:22"}, "properties": {"repobilityId": "235447e43cc1e3b7", "scanner": "scanner-primary", "fingerprint": "ce5d5fcc8b2603d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb396ee05e83e86e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-backfill.mjs:40"}, "properties": {"repobilityId": "9c37b5e54af42c5d", "scanner": "scanner-primary", "fingerprint": "bb396ee05e83e86e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dfda182034f49247", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-f11.mjs:61"}, "properties": {"repobilityId": "db9c8d7d448a64b4", "scanner": "scanner-primary", "fingerprint": "dfda182034f49247", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab57dd3768fe5539", "level": "note", "message": {"text": "Legacy-named symbol `description_old` in scripts/optimize-draft.mjs:48"}, "properties": {"repobilityId": "676b438599377c98", "scanner": "scanner-primary", "fingerprint": "ab57dd3768fe5539", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5ca083c71c5cdfbe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimize-draft.mjs:22"}, "properties": {"repobilityId": "ab9f5181ae61b480", "scanner": "scanner-primary", "fingerprint": "5ca083c71c5cdfbe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6765e6c4a1d1709f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/meta-catalog-check.mjs:24"}, "properties": {"repobilityId": "85c4a9d1b68eca65", "scanner": "scanner-primary", "fingerprint": "6765e6c4a1d1709f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37c6dff36c473852", "level": "note", "message": {"text": "Legacy-named symbol `dOld` in scripts/pilot-apply.mjs:83"}, "properties": {"repobilityId": "81248f1b62372ab4", "scanner": "scanner-primary", "fingerprint": "37c6dff36c473852", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bd4edc69715721c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply.mjs:38"}, "properties": {"repobilityId": "5d64df6da909ecbc", "scanner": "scanner-primary", "fingerprint": "bd4edc69715721c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4474ad9c9b98548e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bulk-audit-vazzo.mjs:52"}, "properties": {"repobilityId": "d73519682afbcc30", "scanner": "scanner-primary", "fingerprint": "4474ad9c9b98548e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-660daa49beb9e76c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-postsale-messages.mjs:48"}, "properties": {"repobilityId": "37187ad6e8fde387", "scanner": "scanner-primary", "fingerprint": "660daa49beb9e76c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-977a2c3cff02265a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints-v2.mjs:35"}, "properties": {"repobilityId": "b88ce4ed6f528e14", "scanner": "scanner-primary", "fingerprint": "977a2c3cff02265a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1a793c0e4d3df7a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-pricing-endpoints.mjs:55"}, "properties": {"repobilityId": "c01b53bf2e564a2d", "scanner": "scanner-primary", "fingerprint": "1a793c0e4d3df7a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-babe8ada523b8cad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates.mjs:24"}, "properties": {"repobilityId": "802707960518434e", "scanner": "scanner-primary", "fingerprint": "babe8ada523b8cad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9480cb5a5e7c9442", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns-detail.mjs:17"}, "properties": {"repobilityId": "b4ebf9cd0f5cbc87", "scanner": "scanner-primary", "fingerprint": "9480cb5a5e7c9442", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d8e657c96f380e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-reputation.mjs:81"}, "properties": {"repobilityId": "8faee347336099f7", "scanner": "scanner-primary", "fingerprint": "3d8e657c96f380e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79c38846bc61ca5d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-impact.mjs:23"}, "properties": {"repobilityId": "320c0f77c01bdb6c", "scanner": "scanner-primary", "fingerprint": "79c38846bc61ca5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9a8e6e94f773aa6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-full-fulfillment.mjs:50"}, "properties": {"repobilityId": "ea086e6ca4934b2b", "scanner": "scanner-primary", "fingerprint": "b9a8e6e94f773aa6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff9db988a2e3d1cd", "level": "note", "message": {"text": "Legacy-named symbol `ml_api_v1` in scripts/seed-f11-item-visits.mjs:93"}, "properties": {"repobilityId": "fe3dc806e89385e4", "scanner": "scanner-primary", "fingerprint": "ff9db988a2e3d1cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-515e299f8cc50754", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-item-visits.mjs:49"}, "properties": {"repobilityId": "4f4d5a84b01d6b24", "scanner": "scanner-primary", "fingerprint": "515e299f8cc50754", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d94768d4d4627209", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in scripts/backfill-shipping-addresses.mjs:7"}, "properties": {"repobilityId": "dab3f390a40638c3", "scanner": "scanner-primary", "fingerprint": "d94768d4d4627209", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6eb02ab9bd5e79f7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-logistics.mjs:39"}, "properties": {"repobilityId": "7bed767c77fb51cf", "scanner": "scanner-primary", "fingerprint": "6eb02ab9bd5e79f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e4557e7c12071ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-ml-campaigns-sync.mjs:29"}, "properties": {"repobilityId": "e896cf1e8fa59591", "scanner": "scanner-primary", "fingerprint": "3e4557e7c12071ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a1427551a4d6c315", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/kling-probe.mjs:1"}, "properties": {"repobilityId": "c99dfc830b932230", "scanner": "scanner-primary", "fingerprint": "a1427551a4d6c315", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdb32b90b9c5bd66", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-taxonomy-import.mjs:39"}, "properties": {"repobilityId": "17817c3270303fe1", "scanner": "scanner-primary", "fingerprint": "cdb32b90b9c5bd66", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b821c696e3841afc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-geo-score.ts:32"}, "properties": {"repobilityId": "f9e0b3deb497afb1", "scanner": "scanner-primary", "fingerprint": "b821c696e3841afc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-011a78107ed23b43", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke-test-campaigns.mjs:31"}, "properties": {"repobilityId": "25854823538ed3bf", "scanner": "scanner-primary", "fingerprint": "011a78107ed23b43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cad8297d794b3366", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-category-backfill.mjs:48"}, "properties": {"repobilityId": "2bfb3aac2211ffe0", "scanner": "scanner-primary", "fingerprint": "cad8297d794b3366", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca02af0cf50186a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/optimizer-candidates-enriched.mjs:34"}, "properties": {"repobilityId": "7d73379062e990a3", "scanner": "scanner-primary", "fingerprint": "ca02af0cf50186a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec3ddbb8cce65c3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-apply-ids.mjs:30"}, "properties": {"repobilityId": "8192abbcce9e0147", "scanner": "scanner-primary", "fingerprint": "ec3ddbb8cce65c3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-638f5e096580d3bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pilot-verify.mjs:30"}, "properties": {"repobilityId": "05a853bf9ebcfae6", "scanner": "scanner-primary", "fingerprint": "638f5e096580d3bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6f8e7c151a031b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/seed-f11-visits.mjs:36"}, "properties": {"repobilityId": "7e706c43dd258bcb", "scanner": "scanner-primary", "fingerprint": "e6f8e7c151a031b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d2bad72faecf606e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/ml-api.ts:16"}, "properties": {"repobilityId": "73556ce7274b40db", "scanner": "scanner-primary", "fingerprint": "d2bad72faecf606e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17de23484bffcc10", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/src/radar/token-client.ts:26"}, "properties": {"repobilityId": "5ec32f11e734dbe3", "scanner": "scanner-primary", "fingerprint": "17de23484bffcc10", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2f89a4b8f1353822", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/constants/ai-models.ts:1"}, "properties": {"repobilityId": "ef2702f837191044", "scanner": "scanner-primary", "fingerprint": "2f89a4b8f1353822", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52db9964be11051e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-video-pipeline.service.ts:298"}, "properties": {"repobilityId": "17e35568a05e4a40", "scanner": "scanner-primary", "fingerprint": "52db9964be11051e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5f9924292159661", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-image-pipeline.service.ts:355"}, "properties": {"repobilityId": "d099f3d068090cc3", "scanner": "scanner-primary", "fingerprint": "e5f9924292159661", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bb341b345e41f2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-template-resolution.service.ts:192"}, "properties": {"repobilityId": "b7e1a48bc6e700e7", "scanner": "scanner-primary", "fingerprint": "2bb341b345e41f2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b3de3439d9e037c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/creative/creative-ml-publisher.service.ts:497"}, "properties": {"repobilityId": "203bb7939d5b0fcd", "scanner": "scanner-primary", "fingerprint": "7b3de3439d9e037c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d0aac419353654d", "level": "note", "message": {"text": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-sync.cron.ts:12"}, "properties": {"repobilityId": "ef39e81fffb7d5b9", "scanner": "scanner-primary", "fingerprint": "1d0aac419353654d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-83810f2d34d87dcf", "level": "note", "message": {"text": "Legacy-named symbol `estoque_v2` in src/modules/icarus-integration/icarus-api.client.ts:68"}, "properties": {"repobilityId": "e6f35f7ee70c7902", "scanner": "scanner-primary", "fingerprint": "83810f2d34d87dcf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-54e7e9d70dc2721b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/geo-radar/geo-radar.service.ts:197"}, "properties": {"repobilityId": "9eb99617770b1c6b", "scanner": "scanner-primary", "fingerprint": "54e7e9d70dc2721b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ab56fe480520586", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/analytics-hub/organic/organic-collector.service.ts:364"}, "properties": {"repobilityId": "de74dd21926acb9d", "scanner": "scanner-primary", "fingerprint": "7ab56fe480520586", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ec937ba562e799b", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/fulfillment/fulfillment.service.ts:335"}, "properties": {"repobilityId": "d630d272cc24c19d", "scanner": "scanner-primary", "fingerprint": "6ec937ba562e799b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7ee3577ddbf1648b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/fulfillment/fulfillment.service.ts:313"}, "properties": {"repobilityId": "93243d8091d68958", "scanner": "scanner-primary", "fingerprint": "7ee3577ddbf1648b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d2e0cc6d285d5b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/orders/orders.service.ts:1539"}, "properties": {"repobilityId": "e9b58855a2db749b", "scanner": "scanner-primary", "fingerprint": "2d2e0cc6d285d5b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-577782efd4811d53", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/atendente-ia/ai-responder.service.ts:61"}, "properties": {"repobilityId": "e03bdc701fdec68b", "scanner": "scanner-primary", "fingerprint": "577782efd4811d53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acf5dc90aaf1365c", "level": "note", "message": {"text": "Legacy-named symbol `campaign_copy` in src/modules/ai/defaults.ts:12"}, "properties": {"repobilityId": "aeee57654c3a566f", "scanner": "scanner-primary", "fingerprint": "acf5dc90aaf1365c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0868196792eec4be", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ai/llm.service.ts:616"}, "properties": {"repobilityId": "57f30b64e222516c", "scanner": "scanner-primary", "fingerprint": "0868196792eec4be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41451e579e8a47b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/marketplace/marketplace-webhooks.service.ts:70"}, "properties": {"repobilityId": "fd10ac9a48286dc4", "scanner": "scanner-primary", "fingerprint": "41451e579e8a47b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e0c5e4044917644", "level": "note", "message": {"text": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/adapters/shopee.adapter.ts:733"}, "properties": {"repobilityId": "a734ffef356367a8", "scanner": "scanner-primary", "fingerprint": "3e0c5e4044917644", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cabdeb022afe27a3", "level": "note", "message": {"text": "Legacy-named symbol `stock_info_v2` in src/modules/marketplace/shopee-campaigns/shopee-promo-write.service.ts:465"}, "properties": {"repobilityId": "a36ff91881720c41", "scanner": "scanner-primary", "fingerprint": "cabdeb022afe27a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4f9ef33aa0e25083", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/marketplace/shopee-sync/shopee-stock-sync.service.ts:175"}, "properties": {"repobilityId": "c0c24801674f3fcb", "scanner": "scanner-primary", "fingerprint": "4f9ef33aa0e25083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cba24f230909ad9b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/marketplace/shopee-sync/shopee-orders-ingestion.service.ts:247"}, "properties": {"repobilityId": "7988707f0f6c8338", "scanner": "scanner-primary", "fingerprint": "cba24f230909ad9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-668c689b52400953", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/marketplace/shopee-creative/shopee-creative.service.ts:171"}, "properties": {"repobilityId": "75b0f8ec5f0dc61e", "scanner": "scanner-primary", "fingerprint": "668c689b52400953", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b436fd32d02418b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/store-automation/store-automation.worker.ts:147"}, "properties": {"repobilityId": "1ce1112862a144be", "scanner": "scanner-primary", "fingerprint": "3b436fd32d02418b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-467af673349b4dce", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ml-ads/ml-ads.service.ts:796"}, "properties": {"repobilityId": "25d051a3d94bd32a", "scanner": "scanner-primary", "fingerprint": "467af673349b4dce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53781e444fe84cb7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/internal/social-video-bridge.service.ts:268"}, "properties": {"repobilityId": "2567c9da4ff91018", "scanner": "scanner-primary", "fingerprint": "53781e444fe84cb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aed127699caa1db4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/access/stripe-platform.service.ts:58"}, "properties": {"repobilityId": "1438a3334ab0d99c", "scanner": "scanner-primary", "fingerprint": "aed127699caa1db4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b8f807d01922de0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/ads-campaigns/meta-ads.service.ts:101"}, "properties": {"repobilityId": "d2f86e91f0575212", "scanner": "scanner-primary", "fingerprint": "0b8f807d01922de0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-36c5a621affd2132", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/widgets/widget-public.controller.ts:204"}, "properties": {"repobilityId": "4f9dee2d494da8f9", "scanner": "scanner-primary", "fingerprint": "36c5a621affd2132", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d1fbbc9ba7bb6c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/intelligence-hub/alert-managers.service.ts:162"}, "properties": {"repobilityId": "f49a4e2fffeac105", "scanner": "scanner-primary", "fingerprint": "4d1fbbc9ba7bb6c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fe006f4c15b883d", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in src/modules/customers/customer-identity.service.ts:208"}, "properties": {"repobilityId": "29fdf0c3a2e31745", "scanner": "scanner-primary", "fingerprint": "7fe006f4c15b883d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-40a1a00706d0338e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/modules/stock/stock.service.ts:22"}, "properties": {"repobilityId": "2af5e3ee662e89a4", "scanner": "scanner-primary", "fingerprint": "40a1a00706d0338e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f2b038a440b7e69", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/loyalty/loyalty.service.ts:231"}, "properties": {"repobilityId": "e38bed3e26d8d500", "scanner": "scanner-primary", "fingerprint": "3f2b038a440b7e69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70bc202f9d6e4ca7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/meta-capi/meta-capi.service.ts:122"}, "properties": {"repobilityId": "21d3710b5208dd82", "scanner": "scanner-primary", "fingerprint": "70bc202f9d6e4ca7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c50f43003783638", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/social-commerce/meta-catalog.service.ts:30"}, "properties": {"repobilityId": "d44d294619f00f42", "scanner": "scanner-primary", "fingerprint": "4c50f43003783638", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17d4eeac5e919595", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/social-commerce/meta-catalog.service.ts:150"}, "properties": {"repobilityId": "50d85d689839abfb", "scanner": "scanner-primary", "fingerprint": "17d4eeac5e919595", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-252b792d525191a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/social-commerce/social-commerce.service.ts:592"}, "properties": {"repobilityId": "b3cc4d5962d52193", "scanner": "scanner-primary", "fingerprint": "252b792d525191a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2dc6397424b1938", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/tiktok-shop/tiktok-shop.service.ts:285"}, "properties": {"repobilityId": "511a2a8224b65693", "scanner": "scanner-primary", "fingerprint": "d2dc6397424b1938", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6297a4f39497c6fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns.controller.ts:616"}, "properties": {"repobilityId": "0d5778b8a2d6d4c2", "scanner": "scanner-primary", "fingerprint": "6297a4f39497c6fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5bddc175ad0f6ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ml-campaigns/ml-campaigns-decision.service.ts:284"}, "properties": {"repobilityId": "9088758155e0ea31", "scanner": "scanner-primary", "fingerprint": "d5bddc175ad0f6ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-230aba2e6baa3c1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ml-listing/ml-listing.controller.ts:589"}, "properties": {"repobilityId": "e79b3d1eb8453af7", "scanner": "scanner-primary", "fingerprint": "230aba2e6baa3c1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-402c35a754412940", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/multiplier/multiplier.service.ts:877"}, "properties": {"repobilityId": "3a0de6551f23876f", "scanner": "scanner-primary", "fingerprint": "402c35a754412940", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1c1791185a99a4e", "level": "note", "message": {"text": "Legacy-named symbol `description_old` in src/modules/ai-visibility/geo-optimizer/geo-optimizer.controller.ts:83"}, "properties": {"repobilityId": "98617e1ec25599ad", "scanner": "scanner-primary", "fingerprint": "c1c1791185a99a4e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-500180d003ee7160", "level": "note", "message": {"text": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/tiktok-publisher.service.ts:72"}, "properties": {"repobilityId": "dfd9f74c972b976c", "scanner": "scanner-primary", "fingerprint": "500180d003ee7160", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-25915122d334a869", "level": "note", "message": {"text": "Legacy-named symbol `titleOld` in src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:63"}, "properties": {"repobilityId": "c39054f12d9bd163", "scanner": "scanner-primary", "fingerprint": "25915122d334a869", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-58d1a91eb7d69bfd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/modules/mercadolivre/mercadolivre.service.ts:2346"}, "properties": {"repobilityId": "6a68c6aee5f3dc49", "scanner": "scanner-primary", "fingerprint": "58d1a91eb7d69bfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-310c31823923a3ab", "level": "note", "message": {"text": "Legacy-named symbol `fetchBillingInfoLegacy` in src/modules/mercadolivre/ml-billing-fetcher.service.ts:66"}, "properties": {"repobilityId": "eb2c149b00a11b7f", "scanner": "scanner-primary", "fingerprint": "310c31823923a3ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d6a927ca0ffa094e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/modules/mercadolivre/ml-questions-ai.service.ts:254"}, "properties": {"repobilityId": "699b7d0164681b5d", "scanner": "scanner-primary", "fingerprint": "d6a927ca0ffa094e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deae115366f3036b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/mercadolivre/mercadolivre.controller.ts:103"}, "properties": {"repobilityId": "560afa945579f800", "scanner": "scanner-primary", "fingerprint": "deae115366f3036b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-898930f78858521e", "level": "note", "message": {"text": "Legacy-named symbol `_markSkippedLegacy` in src/modules/pricing-intelligence/signals/signal-notifier.service.ts:238"}, "properties": {"repobilityId": "e22b5efe1f9291a9", "scanner": "scanner-primary", "fingerprint": "898930f78858521e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-48063d2893a7043b", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in src/modules/messaging/journey-engine.service.ts:184"}, "properties": {"repobilityId": "a7e79a864ae9e3df", "scanner": "scanner-primary", "fingerprint": "48063d2893a7043b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c47a61a93c5b05a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/payments/payments.service.ts:245"}, "properties": {"repobilityId": "a6e4026c17127cdc", "scanner": "scanner-primary", "fingerprint": "7c47a61a93c5b05a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c85a5b81666ac30", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/sales-aggregator.controller.ts:109"}, "properties": {"repobilityId": "bd3f42bc3634d496", "scanner": "scanner-primary", "fingerprint": "9c85a5b81666ac30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0848719919df5fbb", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/clients/mercado-livre-client.ts:191"}, "properties": {"repobilityId": "a2feb969cd79b7c2", "scanner": "scanner-primary", "fingerprint": "0848719919df5fbb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca5f9c7e0b1be25c", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/orders-ingestion.service.ts:68"}, "properties": {"repobilityId": "e80b7663c82da111", "scanner": "scanner-primary", "fingerprint": "ca5f9c7e0b1be25c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b73b94df318df962", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/sales-aggregator/services/orders-ingestion.service.ts:207"}, "properties": {"repobilityId": "fef2cb7f41807aef", "scanner": "scanner-primary", "fingerprint": "b73b94df318df962", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffafc278f1563aa6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/modules/sales-aggregator/services/new-sale-notifier.service.ts:41"}, "properties": {"repobilityId": "25bbb4a252f82f94", "scanner": "scanner-primary", "fingerprint": "ffafc278f1563aa6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8811c1718de82ae6", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/sales-aggregator/services/backfill.service.ts:255"}, "properties": {"repobilityId": "0ccf9661a702dad5", "scanner": "scanner-primary", "fingerprint": "8811c1718de82ae6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-de47acfe707e2f7a", "level": "note", "message": {"text": "Legacy-named symbol `campaign_copy` in src/modules/campaigns/campaigns.service.ts:400"}, "properties": {"repobilityId": "4bd2809353fd2c12", "scanner": "scanner-primary", "fingerprint": "de47acfe707e2f7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9d36f5061694c65a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/marketplace-scraping/marketplace-scraping.service.ts:371"}, "properties": {"repobilityId": "8da3dee92b2bfaf0", "scanner": "scanner-primary", "fingerprint": "9d36f5061694c65a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71e2c8b34cf6e5f6", "level": "note", "message": {"text": "Legacy-named symbol `ml_api_v1` in src/modules/ml-intelligence/visits-scanner/visits-scanner.service.ts:282"}, "properties": {"repobilityId": "5dbef9e5566b7d7f", "scanner": "scanner-primary", "fingerprint": "71e2c8b34cf6e5f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-874e968ec7fbbed2", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts:64"}, "properties": {"repobilityId": "157e08c2a4159abc", "scanner": "scanner-primary", "fingerprint": "874e968ec7fbbed2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c1067db4555a0d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/ml-webhook/ml-webhook-dispatcher.service.ts:71"}, "properties": {"repobilityId": "1aa39482244bd63c", "scanner": "scanner-primary", "fingerprint": "7c1067db4555a0d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0af9fb03e0a45ad1", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in src/modules/ml-webhook/ml-webhook.controller.ts:10"}, "properties": {"repobilityId": "1fb4880af089d937", "scanner": "scanner-primary", "fingerprint": "0af9fb03e0a45ad1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-25e9a3f2291cb8c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/canva-oauth/canva-oauth.service.ts:265"}, "properties": {"repobilityId": "a2ee2aad0a199ce4", "scanner": "scanner-primary", "fingerprint": "25e9a3f2291cb8c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a1f53944b48f9b", "level": "note", "message": {"text": "Legacy-named symbol `campaign_copy` in src/modules/copilot/copilot.kb.ts:1379"}, "properties": {"repobilityId": "e41030f9f61bc770", "scanner": "scanner-primary", "fingerprint": "f1a1f53944b48f9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-59a66329043f1978", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/copilot/copilot.kb.ts:3070"}, "properties": {"repobilityId": "7e90d8be766d60af", "scanner": "scanner-primary", "fingerprint": "59a66329043f1978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e44c42e3b660c0b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/products/products-enrichment.service.ts:969"}, "properties": {"repobilityId": "751ee8f8a4d25555", "scanner": "scanner-primary", "fingerprint": "e44c42e3b660c0b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cdca6c17bc07212", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/products/products.controller.ts:563"}, "properties": {"repobilityId": "6e6627d6b52d7cfe", "scanner": "scanner-primary", "fingerprint": "6cdca6c17bc07212", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-454250cddc78941b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/products/products.service.ts:93"}, "properties": {"repobilityId": "8b2dbfa41d73ce3e", "scanner": "scanner-primary", "fingerprint": "454250cddc78941b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7667d3b3620a1aa0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/products/products-cadastro-dispatch.service.ts:115"}, "properties": {"repobilityId": "bc9a863bdda87248", "scanner": "scanner-primary", "fingerprint": "7667d3b3620a1aa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abff26b4277d04a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/rbac/index.ts:1"}, "properties": {"repobilityId": "2ee6964542e0ef23", "scanner": "scanner-primary", "fingerprint": "abff26b4277d04a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a9211768f19f60f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/webhooks/webhooks.controller.ts:64"}, "properties": {"repobilityId": "5f0e12ceb907edd8", "scanner": "scanner-primary", "fingerprint": "3a9211768f19f60f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca772a0bb6c0bf31", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/modules/credentials/credentials.service.ts:252"}, "properties": {"repobilityId": "cde620f78f8d4b6f", "scanner": "scanner-primary", "fingerprint": "ca772a0bb6c0bf31", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed68a07528eee3d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/communication/services/customer-resolver.service.ts:56"}, "properties": {"repobilityId": "ff798973c841cb3e", "scanner": "scanner-primary", "fingerprint": "ed68a07528eee3d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f972379221a0e32c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modules/communication/services/journey-processor.service.ts:382"}, "properties": {"repobilityId": "a577a6f9cc16d077", "scanner": "scanner-primary", "fingerprint": "f972379221a0e32c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b163a0e25edf443", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/modules/dropship/dropship.service.ts:1360"}, "properties": {"repobilityId": "55228a21c157568a", "scanner": "scanner-primary", "fingerprint": "0b163a0e25edf443", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1041d9aee17abc34", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/modules/composition/composition.service.ts:209"}, "properties": {"repobilityId": "11a5e543b161d5e8", "scanner": "scanner-primary", "fingerprint": "1041d9aee17abc34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c3970b78c714bf", "level": "note", "message": {"text": "136 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "7d64aa5355f88fc6", "scanner": "scanner-primary", "fingerprint": "41c3970b78c714bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-deb17a0bea62a9b4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-suggestions-variants.mjs:23)"}, "properties": {"repobilityId": "ee9ea9345106711b", "scanner": "scanner-primary", "fingerprint": "deb17a0bea62a9b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16d46d5e821ef6ba", "level": "error", "message": {"text": "Dangling fetch: POST https://api.eclick.app.br/sales-aggregator/run-now (scripts/trigger-backfill.mjs:40)"}, "properties": {"repobilityId": "8ceec487d2f9d87a", "scanner": "scanner-primary", "fingerprint": "16d46d5e821ef6ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f14504a21598506f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-f11.mjs:61)"}, "properties": {"repobilityId": "cdd23c08363c1b7a", "scanner": "scanner-primary", "fingerprint": "f14504a21598506f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f347568d454e43b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-f11.mjs:91)"}, "properties": {"repobilityId": "906e8a8e3a9069f4", "scanner": "scanner-primary", "fingerprint": "5f347568d454e43b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-696211bd4201d44a", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-detail.mjs:24)"}, "properties": {"repobilityId": "09ba65aef6abca43", "scanner": "scanner-primary", "fingerprint": "696211bd4201d44a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e86dcb5c4a47be77", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${o.shipping_id}/costs (scripts/ml-freight-probe.mjs:56)"}, "properties": {"repobilityId": "d354059a3ffda039", "scanner": "scanner-primary", "fingerprint": "e86dcb5c4a47be77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-55c33e04244b8a0b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-billing-probe.mjs:25)"}, "properties": {"repobilityId": "207ec8ae669c803b", "scanner": "scanner-primary", "fingerprint": "55c33e04244b8a0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b159fca2df8e6dba", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-postsale-messages.mjs:48)"}, "properties": {"repobilityId": "c4e813dfb15d080d", "scanner": "scanner-primary", "fingerprint": "b159fca2df8e6dba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ed0ab6229c7bfa7", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${orderId} (scripts/seed-postsale-messages.mjs:84)"}, "properties": {"repobilityId": "036e090909dc574b", "scanner": "scanner-primary", "fingerprint": "0ed0ab6229c7bfa7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-daccf214018b7c91", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints-v2.mjs:35)"}, "properties": {"repobilityId": "81bc6239fe2e5dd0", "scanner": "scanner-primary", "fingerprint": "daccf214018b7c91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d9fe1a4bb90e10d", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/smoke-test-pricing-endpoints.mjs:55)"}, "properties": {"repobilityId": "a1021e3f76773b6f", "scanner": "scanner-primary", "fingerprint": "0d9fe1a4bb90e10d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc57d2c65af6a14b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${SELLER_ID}/items/search?status=active&limit=3 (scripts/smoke-test-pricing-endpoints.mjs:85)"}, "properties": {"repobilityId": "be15258a9ad9498c", "scanner": "scanner-primary", "fingerprint": "fc57d2c65af6a14b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28169cfe626d0bda", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com${p} (scripts/ml-mp-bonus-probe.mjs:26)"}, "properties": {"repobilityId": "64a4abc714f6c28d", "scanner": "scanner-primary", "fingerprint": "28169cfe626d0bda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cdd37c3fc5dd33dc", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-reputation.mjs:56)"}, "properties": {"repobilityId": "1e51dc390fe5b704", "scanner": "scanner-primary", "fingerprint": "cdd37c3fc5dd33dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd62c50f215da531", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/users/${conn.seller_id} (scripts/seed-f11-reputation.mjs:81)"}, "properties": {"repobilityId": "648fd5b9b178a7b8", "scanner": "scanner-primary", "fingerprint": "dd62c50f215da531", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-579c84bf38ee8666", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-full-fulfillment.mjs:50)"}, "properties": {"repobilityId": "3d72d67a1cc1682a", "scanner": "scanner-primary", "fingerprint": "579c84bf38ee8666", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd5d66b78343e3d3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-item-visits.mjs:49)"}, "properties": {"repobilityId": "93daad53c9f32490", "scanner": "scanner-primary", "fingerprint": "dd5d66b78343e3d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f10a0d26b90facc3", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${row.shipping_id} (scripts/backfill-shipping-addresses.mjs:134)"}, "properties": {"repobilityId": "3a886b2d97847b92", "scanner": "scanner-primary", "fingerprint": "f10a0d26b90facc3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e76de4afcd166b28", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-logistics.mjs:39)"}, "properties": {"repobilityId": "19f5f26e293c8e3e", "scanner": "scanner-primary", "fingerprint": "e76de4afcd166b28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d72e03df78b5643b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipId}/delays (scripts/seed-f11-logistics.mjs:86)"}, "properties": {"repobilityId": "84b6d5bbd67f1ed6", "scanner": "scanner-primary", "fingerprint": "d72e03df78b5643b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e85fa36c27f9a7f3", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/flex/sites/MLB/items/${it.ml_item_id}/v2 (scripts/seed-f11-logistics.mjs:124)"}, "properties": {"repobilityId": "d2287ac5ea2308fe", "scanner": "scanner-primary", "fingerprint": "e85fa36c27f9a7f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19fce5ba96f6521b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.eclick.app.br/ml-campaigns/sync (scripts/trigger-ml-campaigns-sync.mjs:29)"}, "properties": {"repobilityId": "3cb2d69e48064593", "scanner": "scanner-primary", "fingerprint": "19fce5ba96f6521b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6ca4abdfbe92c4e9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-category-backfill.mjs:48)"}, "properties": {"repobilityId": "aee97c38c0a64ed0", "scanner": "scanner-primary", "fingerprint": "6ca4abdfbe92c4e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f068e85b2deeed91", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=id,sold_quantity,available_quantity,status,seller_id (scripts/optimizer-candidates-enriched.mjs:56)"}, "properties": {"repobilityId": "1da17b15ecb170c0", "scanner": "scanner-primary", "fingerprint": "f068e85b2deeed91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bd7ed503592aad8", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}?attributes=title,sold_quantity,status (scripts/pilot-verify.mjs:47)"}, "properties": {"repobilityId": "25113329bc49ebf2", "scanner": "scanner-primary", "fingerprint": "5bd7ed503592aad8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f581d0d5fa9b96ce", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlb}/description (scripts/pilot-verify.mjs:50)"}, "properties": {"repobilityId": "20b93b19b7226d48", "scanner": "scanner-primary", "fingerprint": "f581d0d5fa9b96ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d955155f15276e20", "level": "error", "message": {"text": "Dangling fetch: POST https://api.mercadolibre.com/oauth/token (scripts/seed-f11-visits.mjs:36)"}, "properties": {"repobilityId": "166d7555c65efbc5", "scanner": "scanner-primary", "fingerprint": "d955155f15276e20", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b7a9e8d6f36d2295", "level": "error", "message": {"text": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:226)"}, "properties": {"repobilityId": "cfd3ceeddc861907", "scanner": "scanner-primary", "fingerprint": "b7a9e8d6f36d2295", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-8a81f36fdc11536a", "level": "error", "message": {"text": "Dangling fetch: HEAD https://${c.custom_domain}/ (src/modules/store-config/store-config.service.ts:244)"}, "properties": {"repobilityId": "a7e4d35804be19dd", "scanner": "scanner-primary", "fingerprint": "8a81f36fdc11536a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-04f1e1b14cfe8c8c", "level": "error", "message": {"text": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/empresas (src/modules/enrichment/providers/bigdatacorp.provider.ts:92)"}, "properties": {"repobilityId": "7cfd7f7b06ec843b", "scanner": "scanner-primary", "fingerprint": "04f1e1b14cfe8c8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-2fb1cb8a217ebf12", "level": "error", "message": {"text": "Dangling fetch: GET https://viacep.com.br/ws/01001000/json/ (src/modules/enrichment/providers/viacep.provider.ts:19)"}, "properties": {"repobilityId": "0b1e78377d66b1af", "scanner": "scanner-primary", "fingerprint": "2fb1cb8a217ebf12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-d4f9be207373aea9", "level": "error", "message": {"text": "Dangling fetch: GET https://viacep.com.br/ws/${clean}/json/ (src/modules/enrichment/providers/viacep.provider.ts:40)"}, "properties": {"repobilityId": "0f06d07bb58f7470", "scanner": "scanner-primary", "fingerprint": "d4f9be207373aea9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-dfe00281ddd1dd07", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:213)"}, "properties": {"repobilityId": "bc5cf0bda21b4a8d", "scanner": "scanner-primary", "fingerprint": "dfe00281ddd1dd07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ddc3510fb0580b36", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/analytics-hub/geo-radar/geo-radar.service.ts:236)"}, "properties": {"repobilityId": "e36ac4591006239c", "scanner": "scanner-primary", "fingerprint": "ddc3510fb0580b36", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e4372b6408d27146", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalId} (src/modules/fulfillment/fulfillment-labels.service.ts:97)"}, "properties": {"repobilityId": "4c0656696ffd09bf", "scanner": "scanner-primary", "fingerprint": "e4372b6408d27146", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-5aea63d153451ca2", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-labels.service.ts:108)"}, "properties": {"repobilityId": "a24522f1520e6d61", "scanner": "scanner-primary", "fingerprint": "5aea63d153451ca2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-032516a245760f5b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipment_labels?shipment_ids=${shipmentId}&response_type=pdf (src/modules/fulfillment/fulfillment-labels.service.ts:125)"}, "properties": {"repobilityId": "d98355809931cee0", "scanner": "scanner-primary", "fingerprint": "032516a245760f5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-ce3fff7e9c2ae13f", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/orders/${externalOrderId} (src/modules/fulfillment/fulfillment-accounts.service.ts:180)"}, "properties": {"repobilityId": "178d1c1f956955a9", "scanner": "scanner-primary", "fingerprint": "ce3fff7e9c2ae13f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-3a5c609e53ec320e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/shipments/${shipmentId} (src/modules/fulfillment/fulfillment-accounts.service.ts:183)"}, "properties": {"repobilityId": "bc11d81750d35559", "scanner": "scanner-primary", "fingerprint": "3a5c609e53ec320e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-f2bbf89a0e5b5a6f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (src/modules/atendente-ia/ai-knowledge.service.ts:34)"}, "properties": {"repobilityId": "959bd80be12d82f8", "scanner": "scanner-primary", "fingerprint": "f2bbf89a0e5b5a6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-8ac0163270e7113a", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/questions/search?seller_id=${sellerId}&status=UNANSWERED&limit=20 (src/modules/atendente-ia/ai-responder.service.ts:111)"}, "properties": {"repobilityId": "026ba10d73ac2d1c", "scanner": "scanner-primary", "fingerprint": "8ac0163270e7113a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-3d5d44e3009923b2", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (src/modules/atendente-ia/ai-responder.service.ts:776)"}, "properties": {"repobilityId": "7d9e6cf68ce02552", "scanner": "scanner-primary", "fingerprint": "3d5d44e3009923b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-db4992d9ff3e692d", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/atendente-ia/ai-responder.service.ts:793)"}, "properties": {"repobilityId": "c860f3359c7e96c3", "scanner": "scanner-primary", "fingerprint": "db4992d9ff3e692d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-f97ef0779e8d45b6", "level": "error", "message": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (src/modules/email-settings/email-settings.service.ts:227)"}, "properties": {"repobilityId": "67b445b3ace35a2c", "scanner": "scanner-primary", "fingerprint": "f97ef0779e8d45b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-fd642f96bc93fbc5", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlbId} (src/modules/scraper/scraper.service.ts:47)"}, "properties": {"repobilityId": "292324381302f4c5", "scanner": "scanner-primary", "fingerprint": "fd642f96bc93fbc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-38f8ce05d60bc91c", "level": "error", "message": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/scraper/scraper.service.ts:114)"}, "properties": {"repobilityId": "287851c67d9b5e1f", "scanner": "scanner-primary", "fingerprint": "38f8ce05d60bc91c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-09b47aa9816a41f4", "level": "error", "message": {"text": "Dangling fetch: GET https://ws.hubdodesenvolvedor.com.br/v2/cpf/?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/hubdesenvolvedor.provider.ts:17)"}, "properties": {"repobilityId": "b853ba46ec5d695c", "scanner": "scanner-primary", "fingerprint": "09b47aa9816a41f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7c45e3b3616804cf", "level": "error", "message": {"text": "Dangling fetch: POST https://plataforma.bigdatacorp.com.br/pessoas (src/modules/lead-bridge/services/cpf-providers/bigdatacorp.provider.ts:25)"}, "properties": {"repobilityId": "ce8945f0ad78b637", "scanner": "scanner-primary", "fingerprint": "7c45e3b3616804cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-fd393d5a29f9a5c4", "level": "error", "message": {"text": "Dangling fetch: GET https://api.directd.com.br/api/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/directd.provider.ts:18)"}, "properties": {"repobilityId": "0cacb316ed17df10", "scanner": "scanner-primary", "fingerprint": "fd393d5a29f9a5c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-3a1f517c5165779d", "level": "error", "message": {"text": "Dangling fetch: GET https://api.datastone.com.br/v1/cpf/${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/datastone.provider.ts:18)"}, "properties": {"repobilityId": "2ab4bf80f886e002", "scanner": "scanner-primary", "fingerprint": "3a1f517c5165779d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-a0e53b914526a6c8", "level": "error", "message": {"text": "Dangling fetch: POST https://api.assertiva.com.br/oauth2/v3/token (src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:19)"}, "properties": {"repobilityId": "0111536068e55a43", "scanner": "scanner-primary", "fingerprint": "a0e53b914526a6c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-70f09d9334de1269", "level": "error", "message": {"text": "Dangling fetch: GET https://api.assertiva.com.br/v3/localize/cpf?cpf=${cpf.replace(/\\D/g,  (src/modules/lead-bridge/services/cpf-providers/assertiva.provider.ts:42)"}, "properties": {"repobilityId": "8667b7223b2889cc", "scanner": "scanner-primary", "fingerprint": "70f09d9334de1269", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-d716df96ff2ca644", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:126)"}, "properties": {"repobilityId": "642c5d9c6e383c9e", "scanner": "scanner-primary", "fingerprint": "d716df96ff2ca644", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-ae02adde59e1ed44", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id}/description (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:187)"}, "properties": {"repobilityId": "bef25ada1f0cba52", "scanner": "scanner-primary", "fingerprint": "ae02adde59e1ed44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-b836d12f88285d5f", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/reviews/item/${id} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:195)"}, "properties": {"repobilityId": "1d6e35a54b48611a", "scanner": "scanner-primary", "fingerprint": "b836d12f88285d5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-0ef39e48eb627084", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/categories/${categoryId} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:205)"}, "properties": {"repobilityId": "b300dc20fb921715", "scanner": "scanner-primary", "fingerprint": "0ef39e48eb627084", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-4714ae75fec78aac", "level": "error", "message": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/ai-visibility/geo-score/services/listing-scraper.service.ts:233)"}, "properties": {"repobilityId": "8094cc468470174a", "scanner": "scanner-primary", "fingerprint": "4714ae75fec78aac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-eb81c84a9b20c45a", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits?date_from=${encodeURIComponent(from)}&date_to=${encodeURIComponent(to)} (src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:65)"}, "properties": {"repobilityId": "66a5c068f4b74ea1", "scanner": "scanner-primary", "fingerprint": "eb81c84a9b20c45a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-877dde2d465854e2", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${mlItemId}/visits/time_window?last=14&unit=day (src/modules/ai-visibility/geo-optimizer/services/baseline.service.ts:96)"}, "properties": {"repobilityId": "9d6f074e2816f571", "scanner": "scanner-primary", "fingerprint": "877dde2d465854e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-0a317b3bb901da77", "level": "error", "message": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:69)"}, "properties": {"repobilityId": "963a68bbc3e25494", "scanner": "scanner-primary", "fingerprint": "0a317b3bb901da77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-9ffa13a0b98598f5", "level": "error", "message": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${itemId} (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:82)"}, "properties": {"repobilityId": "4110ff1ed88d272a", "scanner": "scanner-primary", "fingerprint": "9ffa13a0b98598f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-76b46f27a570833d", "level": "error", "message": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:129)"}, "properties": {"repobilityId": "0e079dc9dfc12dd8", "scanner": "scanner-primary", "fingerprint": "76b46f27a570833d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-79d3056806c7c0ff", "level": "error", "message": {"text": "Dangling fetch: PUT https://api.mercadolibre.com/items/${v.listing_id} (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:137)"}, "properties": {"repobilityId": "0d55e01c30d86171", "scanner": "scanner-primary", "fingerprint": "79d3056806c7c0ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-4af92e3ec07fe83a", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:187)"}, "properties": {"repobilityId": "f2243d8a4617bd87", "scanner": "scanner-primary", "fingerprint": "4af92e3ec07fe83a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-a2a8bacd9d2bd139", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=title,sold_quantity (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:200)"}, "properties": {"repobilityId": "b9b62b8aa4cfc7e2", "scanner": "scanner-primary", "fingerprint": "a2a8bacd9d2bd139", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-5045ff1e7724b2af", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}/description (src/modules/ai-visibility/geo-optimizer/services/ml-publisher.service.ts:206)"}, "properties": {"repobilityId": "0db326fe9291dad3", "scanner": "scanner-primary", "fingerprint": "5045ff1e7724b2af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-0babd48da6f8b53e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${itemId}?attributes=seller_id (src/modules/ai-visibility/geo-optimizer/services/impact-tracker.service.ts:139)"}, "properties": {"repobilityId": "5319539f253107cf", "scanner": "scanner-primary", "fingerprint": "0babd48da6f8b53e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-b084594ca5678972", "level": "error", "message": {"text": "Dangling fetch: GET https://graph.facebook.com/v20.0/${cfg.data.phone_number_id}?fields=display_phone_number,verified_name (src/modules/whatsapp/whatsapp-config.service.ts:165)"}, "properties": {"repobilityId": "432ba94f6dd7f127", "scanner": "scanner-primary", "fingerprint": "b084594ca5678972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-371594529dc64b39", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/items/${id} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:87)"}, "properties": {"repobilityId": "4b7fc4bff4d11cea", "scanner": "scanner-primary", "fingerprint": "371594529dc64b39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-ab7240a34e8040d8", "level": "error", "message": {"text": "Dangling fetch: GET https://shopee.com.br/api/v4/item/get?itemid=${itemId}&shopid=${shopId} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:247)"}, "properties": {"repobilityId": "2df6aaeae174e1d3", "scanner": "scanner-primary", "fingerprint": "ab7240a34e8040d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-20d902aaddcf4074", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadolibre.com/products/${catalogId} (src/modules/marketplace-scraping/marketplace-scraping.service.ts:306)"}, "properties": {"repobilityId": "f09baf8036e0f1d3", "scanner": "scanner-primary", "fingerprint": "20d902aaddcf4074", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-816737976c1d2360", "level": "error", "message": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (src/modules/credentials/credentials.service.ts:243)"}, "properties": {"repobilityId": "b8adb6fa9e302897", "scanner": "scanner-primary", "fingerprint": "816737976c1d2360", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e2eb07832667cffd", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/modules/credentials/credentials.service.ts:252)"}, "properties": {"repobilityId": "9c7da3ee160ff3f9", "scanner": "scanner-primary", "fingerprint": "e2eb07832667cffd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dbaa8b86ed1586d3", "level": "error", "message": {"text": "Dangling fetch: GET https://api.mercadopago.com/users/me (src/modules/credentials/credentials.service.ts:282)"}, "properties": {"repobilityId": "13fb248d74a7f2a7", "scanner": "scanner-primary", "fingerprint": "dbaa8b86ed1586d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-607030ac144b667d", "level": "error", "message": {"text": "Dangling fetch: GET https://api.stripe.com/v1/balance (src/modules/credentials/credentials.service.ts:300)"}, "properties": {"repobilityId": "fee251fc74e43871", "scanner": "scanner-primary", "fingerprint": "607030ac144b667d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5dff26d76f46f3ce", "level": "note", "message": {"text": "Unused endpoint: GET /category-links/sources"}, "properties": {"repobilityId": "7efa042b538d7da8", "scanner": "scanner-primary", "fingerprint": "5dff26d76f46f3ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fae31dcb94e803f6", "level": "note", "message": {"text": "Unused endpoint: GET /category-links/target/:mkt/browse"}, "properties": {"repobilityId": "bbddfc385123ddfc", "scanner": "scanner-primary", "fingerprint": "fae31dcb94e803f6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-114a22f738f6270d", "level": "note", "message": {"text": "Unused endpoint: GET /category-links/target/:mkt/search"}, "properties": {"repobilityId": "e2aa66bd2d38ac14", "scanner": "scanner-primary", "fingerprint": "114a22f738f6270d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0171a6348b4d429f", "level": "note", "message": {"text": "Unused endpoint: POST /category-links/suggest"}, "properties": {"repobilityId": "ecb93559a6581649", "scanner": "scanner-primary", "fingerprint": "0171a6348b4d429f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2c83999208d9fff", "level": "note", "message": {"text": "Unused endpoint: DELETE /category-links/:id"}, "properties": {"repobilityId": "dadcb1411ce65911", "scanner": "scanner-primary", "fingerprint": "e2c83999208d9fff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8d5b6d8dbd605f1", "level": "note", "message": {"text": "Unused endpoint: POST /public/audits/start"}, "properties": {"repobilityId": "4231a09b70b1b4cf", "scanner": "scanner-primary", "fingerprint": "f8d5b6d8dbd605f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75e60dabe6291c9c", "level": "note", "message": {"text": "Unused endpoint: POST /public/audits/unsubscribe"}, "properties": {"repobilityId": "092c8f11dee3d49c", "scanner": "scanner-primary", "fingerprint": "75e60dabe6291c9c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-37ff77032cbdae07", "level": "note", "message": {"text": "Unused endpoint: POST /public/audits/request-demo"}, "properties": {"repobilityId": "97e9b333d8159310", "scanner": "scanner-primary", "fingerprint": "37ff77032cbdae07", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce02602a48dc1afc", "level": "note", "message": {"text": "Unused endpoint: GET /public/audits/:id"}, "properties": {"repobilityId": "d8d8caa19bae2d7f", "scanner": "scanner-primary", "fingerprint": "ce02602a48dc1afc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7b61f4cd4dfb4ecb", "level": "note", "message": {"text": "Unused endpoint: GET /radar/products"}, "properties": {"repobilityId": "4d21add61eed8f91", "scanner": "scanner-primary", "fingerprint": "7b61f4cd4dfb4ecb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-93819b1a9e048e6c", "level": "note", "message": {"text": "Unused endpoint: GET /radar/summary"}, "properties": {"repobilityId": "b3b9d06aa8e25d20", "scanner": "scanner-primary", "fingerprint": "93819b1a9e048e6c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d325f606ac1498a", "level": "note", "message": {"text": "Unused endpoint: GET /radar/events"}, "properties": {"repobilityId": "a48afc04586799b3", "scanner": "scanner-primary", "fingerprint": "3d325f606ac1498a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-911730da2366b218", "level": "note", "message": {"text": "Unused endpoint: GET /radar/catalog-status"}, "properties": {"repobilityId": "8d31540d1783ff0a", "scanner": "scanner-primary", "fingerprint": "911730da2366b218", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3bbc4ddfa202930a", "level": "note", "message": {"text": "Unused endpoint: POST /radar/catalog-ceiling"}, "properties": {"repobilityId": "24467f0f889f34e5", "scanner": "scanner-primary", "fingerprint": "3bbc4ddfa202930a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b63837d5d5ad7ba3", "level": "note", "message": {"text": "Unused endpoint: GET /radar/products/:id"}, "properties": {"repobilityId": "4d7ef8ad3e6f0dfd", "scanner": "scanner-primary", "fingerprint": "b63837d5d5ad7ba3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5bfb559b128ad706", "level": "note", "message": {"text": "Unused endpoint: GET /radar/products/:id/price-context"}, "properties": {"repobilityId": "0068859f36446f63", "scanner": "scanner-primary", "fingerprint": "5bfb559b128ad706", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77680d95ab4fd29d", "level": "note", "message": {"text": "Unused endpoint: GET /radar/products/:id/series"}, "properties": {"repobilityId": "1048907dea576561", "scanner": "scanner-primary", "fingerprint": "77680d95ab4fd29d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f6e561bc2523d4ec", "level": "note", "message": {"text": "Unused endpoint: GET /radar/products/:id/events"}, "properties": {"repobilityId": "b8d42870c2b5d631", "scanner": "scanner-primary", "fingerprint": "f6e561bc2523d4ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80228fb51390fcfe", "level": "note", "message": {"text": "Unused endpoint: GET /radar/competitors/products"}, "properties": {"repobilityId": "9391feba5d813e4e", "scanner": "scanner-primary", "fingerprint": "80228fb51390fcfe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d8743ef70ea33c8d", "level": "note", "message": {"text": "Unused endpoint: GET /radar/competitors/products/:productId"}, "properties": {"repobilityId": "9949ddf2731ea04b", "scanner": "scanner-primary", "fingerprint": "d8743ef70ea33c8d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b3fa9606be9953cc", "level": "note", "message": {"text": "Unused endpoint: GET /radar/competitors/products/:productId/insight"}, "properties": {"repobilityId": "6651224aa9385ce9", "scanner": "scanner-primary", "fingerprint": "b3fa9606be9953cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-898b974bb00f14e4", "level": "note", "message": {"text": "Unused endpoint: POST /radar/competitors/links"}, "properties": {"repobilityId": "c43425a92bea0200", "scanner": "scanner-primary", "fingerprint": "898b974bb00f14e4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-50044bc1cbbd5b23", "level": "note", "message": {"text": "Unused endpoint: PATCH /radar/competitors/links/:id"}, "properties": {"repobilityId": "f30fea0acf3e95a9", "scanner": "scanner-primary", "fingerprint": "50044bc1cbbd5b23", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a0db3868dd86d07e", "level": "note", "message": {"text": "Unused endpoint: DELETE /radar/competitors/links/:id"}, "properties": {"repobilityId": "247078fb3915133d", "scanner": "scanner-primary", "fingerprint": "a0db3868dd86d07e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-13b06c6b13d42aaa", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/dashboard"}, "properties": {"repobilityId": "b58369e649ba888c", "scanner": "scanner-primary", "fingerprint": "13b06c6b13d42aaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb6a33c1ae96c51a", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/items"}, "properties": {"repobilityId": "c4f7cc5af300c123", "scanner": "scanner-primary", "fingerprint": "fb6a33c1ae96c51a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-62cdf6748979e286", "level": "note", "message": {"text": "Unused endpoint: POST /ml-quality/sync/enrich-listing-status"}, "properties": {"repobilityId": "9116a662222e71a9", "scanner": "scanner-primary", "fingerprint": "62cdf6748979e286", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cb0ed760de225aac", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/items/:itemId"}, "properties": {"repobilityId": "1cfeaba33b87a04c", "scanner": "scanner-primary", "fingerprint": "cb0ed760de225aac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d48adad1f89ca2ea", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/items/:itemId/history"}, "properties": {"repobilityId": "f9f59d1b7ce6e607", "scanner": "scanner-primary", "fingerprint": "d48adad1f89ca2ea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5894e76da2dfca57", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/labels"}, "properties": {"repobilityId": "6e45c29ee2b4b297", "scanner": "scanner-primary", "fingerprint": "5894e76da2dfca57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd6e1521d0250ca1", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/categories"}, "properties": {"repobilityId": "5de603d5597a4f74", "scanner": "scanner-primary", "fingerprint": "fd6e1521d0250ca1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5fee554070fd1e80", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/quick-wins"}, "properties": {"repobilityId": "9e47bf9d32b23415", "scanner": "scanner-primary", "fingerprint": "5fee554070fd1e80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-02c31f7fc5722b28", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/penalties"}, "properties": {"repobilityId": "81b7cbb806d95ee6", "scanner": "scanner-primary", "fingerprint": "02c31f7fc5722b28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eac98acf2d7566ec", "level": "note", "message": {"text": "Unused endpoint: POST /ml-quality/sync"}, "properties": {"repobilityId": "a004152eebc9a72e", "scanner": "scanner-primary", "fingerprint": "eac98acf2d7566ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-953885582ca24f88", "level": "note", "message": {"text": "Unused endpoint: GET /ml-quality/sync/logs"}, "properties": {"repobilityId": "7a69f41286291316", "scanner": "scanner-primary", "fingerprint": "953885582ca24f88", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-41da0ad869b19e3f", "level": "note", "message": {"text": "Unused endpoint: PATCH /marketplace-channels/:id"}, "properties": {"repobilityId": "c9d45ddaf10c4a83", "scanner": "scanner-primary", "fingerprint": "41da0ad869b19e3f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75c4af69e5d0c02f", "level": "note", "message": {"text": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/config"}, "properties": {"repobilityId": "c3591bf2be80d682", "scanner": "scanner-primary", "fingerprint": "75c4af69e5d0c02f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7858ebed2a4c6e3e", "level": "note", "message": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/register"}, "properties": {"repobilityId": "6762df9e42374777", "scanner": "scanner-primary", "fingerprint": "7858ebed2a4c6e3e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49b4672d0c3d8b95", "level": "note", "message": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/verify"}, "properties": {"repobilityId": "303a9ee3665590a2", "scanner": "scanner-primary", "fingerprint": "49b4672d0c3d8b95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f303d3a1d837fb91", "level": "note", "message": {"text": "Unused endpoint: GET /public/store/by-slug/:slug/visualizer/me"}, "properties": {"repobilityId": "ccc9c415a8f985dd", "scanner": "scanner-primary", "fingerprint": "f303d3a1d837fb91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2762d1aa92dc5b6", "level": "note", "message": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/generate"}, "properties": {"repobilityId": "6c3b46b24d33a375", "scanner": "scanner-primary", "fingerprint": "d2762d1aa92dc5b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15d94568ae772783", "level": "note", "message": {"text": "Unused endpoint: POST /public/store/by-slug/:slug/visualizer/recolor"}, "properties": {"repobilityId": "b096dcc1a393f0ea", "scanner": "scanner-primary", "fingerprint": "15d94568ae772783", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2ba951296fefdd15", "level": "note", "message": {"text": "Unused endpoint: PUT /public/store/by-slug/settings"}, "properties": {"repobilityId": "c743a2a970e44ae4", "scanner": "scanner-primary", "fingerprint": "2ba951296fefdd15", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3dd48c8530e0eda6", "level": "note", "message": {"text": "Unused endpoint: POST /public/store/by-slug/customers/:id/grant-credits"}, "properties": {"repobilityId": "d48963df5ca7baac", "scanner": "scanner-primary", "fingerprint": "3dd48c8530e0eda6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-860216cdbdac123d", "level": "note", "message": {"text": "Unused endpoint: GET /compras/inteligencia/summary"}, "properties": {"repobilityId": "970fa6ab96c585cc", "scanner": "scanner-primary", "fingerprint": "860216cdbdac123d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69bc1ff08f331964", "level": "note", "message": {"text": "Unused endpoint: GET /compras/inteligencia"}, "properties": {"repobilityId": "e2600fabd27a646a", "scanner": "scanner-primary", "fingerprint": "69bc1ff08f331964", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c90773fa1fcc5569", "level": "note", "message": {"text": "Unused endpoint: POST /creative/products"}, "properties": {"repobilityId": "86fdf694cef603e5", "scanner": "scanner-primary", "fingerprint": "c90773fa1fcc5569", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-14ce21f6523dbc57", "level": "note", "message": {"text": "Unused endpoint: GET /creative/products"}, "properties": {"repobilityId": "0c715b9abbf36372", "scanner": "scanner-primary", "fingerprint": "14ce21f6523dbc57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-567228c3cc6dc39e", "level": "note", "message": {"text": "Unused endpoint: GET /creative/products/catalog-prefill/:catalogId"}, "properties": {"repobilityId": "f946e7a6269bb1d7", "scanner": "scanner-primary", "fingerprint": "567228c3cc6dc39e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59eccf5fb1fee3e0", "level": "note", "message": {"text": "Unused endpoint: GET /creative/products/:id"}, "properties": {"repobilityId": "7c579b2ec42ff271", "scanner": "scanner-primary", "fingerprint": "59eccf5fb1fee3e0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}