{"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": "scanner-2dcbeda52d3cee89", "name": "Possibly dead Python function: run_config", "shortDescription": {"text": "Possibly dead Python function: run_config"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43d8952e52beda13", "name": "Possibly dead Python function: write_report", "shortDescription": {"text": "Possibly dead Python function: write_report"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48d8065c53fd2998", "name": "Possibly dead Python function: touch_session_decision_date", "shortDescription": {"text": "Possibly dead Python function: touch_session_decision_date"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb01f49506574deb", "name": "Possibly dead Python function: register_request_callable", "shortDescription": {"text": "Possibly dead Python function: register_request_callable"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e1fb58001673c3f", "name": "Possibly dead Python function: run_callable_handlers_once", "shortDescription": {"text": "Possibly dead Python function: run_callable_handlers_once"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-efdd64571556a2d7", "name": "Possibly dead Python function: list_findings_since", "shortDescription": {"text": "Possibly dead Python function: list_findings_since"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ade9ad99ad21764b", "name": "Possibly dead Python function: serve_from_streams", "shortDescription": {"text": "Possibly dead Python function: serve_from_streams"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cbda1625695f5978", "name": "Possibly dead Python function: line_bucket_5", "shortDescription": {"text": "Possibly dead Python function: line_bucket_5"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18fd562cc3101fe4", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d9d6e60fe483201", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58a0fecb178e5cd0", "name": "Possibly dead Python function: link_artifact", "shortDescription": {"text": "Possibly dead Python function: link_artifact"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1f9a51c32393a33", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5ca4f874fa85a98", "name": "Possibly dead Python function: add_path", "shortDescription": {"text": "Possibly dead Python function: add_path"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89aba8a049c7a522", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62e6a685a14cdcc2", "name": "Possibly dead Python function: link_cookbook", "shortDescription": {"text": "Possibly dead Python function: link_cookbook"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4e41a7ef7f249b6", "name": "Possibly dead Python function: unlink_cookbook", "shortDescription": {"text": "Possibly dead Python function: unlink_cookbook"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-953943da4709c15f", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a82dd61bb22caa7", "name": "Possibly dead Python function: list_all", "shortDescription": {"text": "Possibly dead Python function: list_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a67d184d3ad51721", "name": "Insecure pattern 'direct_innerhtml_assignment' in claude/skills/legacy-dev-team/viewer.html:337", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in claude/skills/legacy-dev-team/viewer.html:337"}, "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-b55128d3867b426e", "name": "Very large file: pipeline/engine/source/toolkit/arbitrator/arbitrator.py (1787 lines)", "shortDescription": {"text": "Very large file: pipeline/engine/source/toolkit/arbitrator/arbitrator.py (1787 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 300 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 50 placeholder/mock markers across 17 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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, ci. 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-f50462e785e8ad54", "name": "Agent authority lacks a verifier contract: claude/skills/myteam/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: claude/skills/myteam/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eacd9f14641cc791", "name": "Agent authority lacks a verifier contract: claude/skills/legacy-dev-team/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: claude/skills/legacy-dev-team/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f73c54600c996fd", "name": "Agent authority lacks a verifier contract: .claude/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0241c9254d272a1e", "name": "Agent authority lacks a verifier contract: .claude/rules/bump-versions.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/bump-versions.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3a3e8a24cec31c8", "name": "Agent authority lacks a verifier contract: .claude/rules/optimize-subagent-dispatch.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/optimize-subagent-dispatch.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6943e41ae05288d", "name": "Agent authority lacks a verifier contract: .claude/skills/update-team/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/update-team/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44fd7daaf2eaf75f", "name": "Legacy-named symbol `_team_copy` in testing/unit/tests/review/test_research_objective.py:32", "shortDescription": {"text": "Legacy-named symbol `_team_copy` in testing/unit/tests/review/test_research_objective.py:32"}, "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-50cc3ebd0c6a6d31", "name": "Commented-code block (6 lines) in testing/unit/tests/review/test_run_db_generations.py:29", "shortDescription": {"text": "Commented-code block (6 lines) in testing/unit/tests/review/test_run_db_generations.py:29"}, "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-1fc3cb4ee845a857", "name": "Commented-code block (7 lines) in testing/unit/tests/conductor/test_name_a_puppy_roadmap.py:37", "shortDescription": {"text": "Commented-code block (7 lines) in testing/unit/tests/conductor/test_name_a_puppy_roadmap.py:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed25b1dc444ff807", "name": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_conductor_roadmap_e2e.py:171", "shortDescription": {"text": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_conductor_roadmap_e2e.py: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-1ac95c6b65580a32", "name": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_team_loader_and_generic_realizer.py:101", "shortDescription": {"text": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_team_loader_and_generic_realizer.py:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3cdd70ac2fd0c7a", "name": "Legacy-named symbol `env_backup` in testing/unit/tests/conductor/test_dispatcher_claude_code.py:79", "shortDescription": {"text": "Legacy-named symbol `env_backup` in testing/unit/tests/conductor/test_dispatcher_claude_code.py:79"}, "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-55370946323981cf", "name": "Commented-code block (5 lines) in testing/unit/tests/integration_surface/conftest.py:105", "shortDescription": {"text": "Commented-code block (5 lines) in testing/unit/tests/integration_surface/conftest.py:105"}, "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-523717feeeeaa520", "name": "Commented-code block (8 lines) in testing/unit/tests/arbitrator/test_upsert_finding.py:169", "shortDescription": {"text": "Commented-code block (8 lines) in testing/unit/tests/arbitrator/test_upsert_finding.py:169"}, "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-5183a4a596d1603b", "name": "Commented-code block (7 lines) in testing/unit/tests/skills/test_skills.py:54", "shortDescription": {"text": "Commented-code block (7 lines) in testing/unit/tests/skills/test_skills.py:54"}, "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-5c0b5d6a8561a196", "name": "Commented-code block (5 lines) in testing/unit/tests/atp/db/test_crash_resume.py:139", "shortDescription": {"text": "Commented-code block (5 lines) in testing/unit/tests/atp/db/test_crash_resume.py:139"}, "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-e8ae8feebffeb3ce", "name": "Network/subprocess call without timeout or try/except \u2014 testing/unit/harness/run_tests.py:34", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 testing/unit/harness/run_tests.py:34"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9438605775f62d86", "name": "Commented-code block (5 lines) in pipeline/engine/source/review/orchestrator.py:209", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/review/orchestrator.py:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98b6aa2848bbd54b", "name": "Commented-code block (5 lines) in pipeline/engine/source/review/selection.py:171", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/review/selection.py: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-e2daf32b4ee79ec5", "name": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/progress.py:22", "shortDescription": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/progress.py:22"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e6f771e2df7ad72", "name": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/debug_capture.py:22", "shortDescription": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/debug_capture.py:22"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a1948fc6eafd6dd", "name": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/review/changeset.py:58", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/review/changeset.py:58"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e83baf13f416f03", "name": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/toolkit/nl_router.py:172", "shortDescription": {"text": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/toolkit/nl_router.py:172"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb01b90f0ed54131", "name": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/toolkit/team_home.py:81", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/toolkit/team_home.py:81"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8ae5aca3590180d", "name": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/llm_providers/dispatcher.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/llm_providers/dispatcher.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67148fb4f8462e2d", "name": "Commented-code block (6 lines) in pipeline/engine/source/toolkit/llm_providers/claude_code.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in pipeline/engine/source/toolkit/llm_providers/claude_code.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29c9b73ef160f825", "name": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/storage_provider/sqlite_storage.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/storage_provider/sqlite_storage.py:42"}, "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-418fc24bf42f5b32", "name": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/objective_planner.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/objective_planner.py: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-f4d56b91e61ce0d3", "name": "Commented-code block (6 lines) in pipeline/engine/source/engine/conductor/command_conductor.py:62", "shortDescription": {"text": "Commented-code block (6 lines) in pipeline/engine/source/engine/conductor/command_conductor.py:62"}, "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-183b85a77a1100e6", "name": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/engine/conductor/plan_realizer.py:133", "shortDescription": {"text": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/engine/conductor/plan_realizer.py:133"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c33736e3a24c392", "name": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/team_loader.py:226", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/team_loader.py:226"}, "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-3a7c72bb888502e3", "name": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/specialist_pipeline.py:594", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/specialist_pipeline.py:594"}, "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-73ff71ed7e658fa4", "name": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/unit_schema.py:23", "shortDescription": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/unit_schema.py:23"}, "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-3f79ee186144c00a", "name": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/contract/executor/run_executor.py:9", "shortDescription": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/contract/executor/run_executor.py:9"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba4a4b365c01f0b7", "name": "Network/subprocess call without timeout or try/except \u2014 claude/skills/legacy-dev-team/scripts/capture_screenshots.py:45", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 claude/skills/legacy-dev-team/scripts/capture_screenshots.py:45"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aca8de8c2c50f0f8", "name": "Commented-code block (12 lines) in claude/skills/legacy-dev-team/scripts/db/schema_lint.py:32", "shortDescription": {"text": "Commented-code block (12 lines) in claude/skills/legacy-dev-team/scripts/db/schema_lint.py:32"}, "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-2d01b21324ff0756", "name": "Commented-code block (5 lines) in .claude/skills/update-team/scripts/cookbook_drift.py:46", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/update-team/scripts/cookbook_drift.py:46"}, "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-acfaf151440e51f1", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/update-team/scripts/cookbook_drift.py:389", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/update-team/scripts/cookbook_drift.py:389"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f1f9ae704df6fec", "name": "Commented-code block (5 lines) in .claude/skills/lint-specialist/scripts/lint_specialist.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/lint-specialist/scripts/lint_specialist.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nteams/puppynamingteam/playbook.py:sink, teams/puppynamingteam/playbook.py:sink\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npipeline/engine/source/toolkit/llm_providers/mock_dispatcher.py:dispatch, pipeline/engine/source/toolkit/llm_providers/qwen.py:dispatch, pipeline/engine/source/toolkit/llm_providers/dispatcher.py:dispatch, pipeline/engine/source/toolkit/llm_providers/codex.py:dispatch\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npipeline/engine/source/toolkit/llm_providers/qwen.py:resolve_model, pipeline/engine/source/toolkit/llm_providers/codex.py:resolve_model, pipeline/engine/source/toolkit/llm_providers/claude_code.py:resolve_model\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23943"}, "properties": {"repository": "agentic-cookbook/agenticdevteam", "repoUrl": "https://github.com/agentic-cookbook/agenticdevteam", "branch": "main"}, "results": [{"ruleId": "scanner-2dcbeda52d3cee89", "level": "note", "message": {"text": "Possibly dead Python function: run_config"}, "properties": {"repobilityId": "bb2f7e3c92174ad7", "scanner": "scanner-primary", "fingerprint": "2dcbeda52d3cee89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/review/command.py:198"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-43d8952e52beda13", "level": "note", "message": {"text": "Possibly dead Python function: write_report"}, "properties": {"repobilityId": "6fd1d737670c6a65", "scanner": "scanner-primary", "fingerprint": "43d8952e52beda13", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/review/report.py:31"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48d8065c53fd2998", "level": "note", "message": {"text": "Possibly dead Python function: touch_session_decision_date"}, "properties": {"repobilityId": "edb26616579918f2", "scanner": "scanner-primary", "fingerprint": "48d8065c53fd2998", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/toolkit/arbitrator/arbitrator.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb01f49506574deb", "level": "note", "message": {"text": "Possibly dead Python function: register_request_callable"}, "properties": {"repobilityId": "e5cfffcbe9d59b1d", "scanner": "scanner-primary", "fingerprint": "eb01f49506574deb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/toolkit/arbitrator/arbitrator.py:679"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e1fb58001673c3f", "level": "note", "message": {"text": "Possibly dead Python function: run_callable_handlers_once"}, "properties": {"repobilityId": "edcae1f977a54f53", "scanner": "scanner-primary", "fingerprint": "7e1fb58001673c3f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/toolkit/arbitrator/arbitrator.py:693"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efdd64571556a2d7", "level": "note", "message": {"text": "Possibly dead Python function: list_findings_since"}, "properties": {"repobilityId": "51f391642d56009d", "scanner": "scanner-primary", "fingerprint": "efdd64571556a2d7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/toolkit/arbitrator/arbitrator.py:877"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ade9ad99ad21764b", "level": "note", "message": {"text": "Possibly dead Python function: serve_from_streams"}, "properties": {"repobilityId": "564947cebf25a7e3", "scanner": "scanner-primary", "fingerprint": "ade9ad99ad21764b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/engine/integration_surface/stdio_ndjson_transport.py:213"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cbda1625695f5978", "level": "note", "message": {"text": "Possibly dead Python function: line_bucket_5"}, "properties": {"repobilityId": "c5e09002de6fc087", "scanner": "scanner-primary", "fingerprint": "cbda1625695f5978", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pipeline/engine/source/engine/workflows/anchors.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18fd562cc3101fe4", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "18fd562cc3101fe4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/gate_option.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d9d6e60fe483201", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "8d9d6e60fe483201", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/finding.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58a0fecb178e5cd0", "level": "note", "message": {"text": "Possibly dead Python function: link_artifact"}, "properties": {"repobilityId": "b32f4c511b840bdf", "scanner": "scanner-primary", "fingerprint": "58a0fecb178e5cd0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/finding.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1f9a51c32393a33", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "e1f9a51c32393a33", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/session.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5ca4f874fa85a98", "level": "note", "message": {"text": "Possibly dead Python function: add_path"}, "properties": {"repobilityId": "74a8f33a0864b724", "scanner": "scanner-primary", "fingerprint": "b5ca4f874fa85a98", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/session.py:78"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89aba8a049c7a522", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "89aba8a049c7a522", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/reference.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62e6a685a14cdcc2", "level": "note", "message": {"text": "Possibly dead Python function: link_cookbook"}, "properties": {"repobilityId": "9ec9f7af37dd5166", "scanner": "scanner-primary", "fingerprint": "62e6a685a14cdcc2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/project.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4e41a7ef7f249b6", "level": "note", "message": {"text": "Possibly dead Python function: unlink_cookbook"}, "properties": {"repobilityId": "55e87179b2efc1ce", "scanner": "scanner-primary", "fingerprint": "b4e41a7ef7f249b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/project.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-953943da4709c15f", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "953943da4709c15f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/milestone.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a82dd61bb22caa7", "level": "note", "message": {"text": "Possibly dead Python function: list_all"}, "properties": {"repobilityId": "5fe3cec67036bbab", "scanner": "scanner-primary", "fingerprint": "4a82dd61bb22caa7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/scripts/storage-provider/markdown/retry.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a67d184d3ad51721", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in claude/skills/legacy-dev-team/viewer.html:337"}, "properties": {"repobilityId": "215c7481955ae4a5", "scanner": "scanner-primary", "fingerprint": "a67d184d3ad51721", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/viewer.html"}, "region": {"startLine": 337}}}]}, {"ruleId": "scanner-b55128d3867b426e", "level": "note", "message": {"text": "Very large file: pipeline/engine/source/toolkit/arbitrator/arbitrator.py (1787 lines)"}, "properties": {"repobilityId": "69efc8b71e034aa1", "scanner": "scanner-primary", "fingerprint": "b55128d3867b426e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "ebb6ab4965c5554e", "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": "69d02af43a00dd44", "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": "9711291b21d13be2", "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": "44236a78051e0af6", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "894324202ae814fe", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "f34933477114b8a5", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-f50462e785e8ad54", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: claude/skills/myteam/SKILL.md"}, "properties": {"repobilityId": "10ddcdb582b2c202", "scanner": "scanner-primary", "fingerprint": "f50462e785e8ad54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/myteam/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eacd9f14641cc791", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: claude/skills/legacy-dev-team/SKILL.md"}, "properties": {"repobilityId": "cfcd40607d485d59", "scanner": "scanner-primary", "fingerprint": "eacd9f14641cc791", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/legacy-dev-team/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f73c54600c996fd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/CLAUDE.md"}, "properties": {"repobilityId": "31713f8f64e4a724", "scanner": "scanner-primary", "fingerprint": "1f73c54600c996fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0241c9254d272a1e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/bump-versions.md"}, "properties": {"repobilityId": "09c82c29f18e05f8", "scanner": "scanner-primary", "fingerprint": "0241c9254d272a1e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/bump-versions.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3a3e8a24cec31c8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/optimize-subagent-dispatch.md"}, "properties": {"repobilityId": "acab493b4fc9a148", "scanner": "scanner-primary", "fingerprint": "d3a3e8a24cec31c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/optimize-subagent-dispatch.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e6943e41ae05288d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/update-team/SKILL.md"}, "properties": {"repobilityId": "dcb10ae8fa14e8c4", "scanner": "scanner-primary", "fingerprint": "e6943e41ae05288d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/update-team/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44fd7daaf2eaf75f", "level": "note", "message": {"text": "Legacy-named symbol `_team_copy` in testing/unit/tests/review/test_research_objective.py:32"}, "properties": {"repobilityId": "0a371dbc5740a9d7", "scanner": "scanner-primary", "fingerprint": "44fd7daaf2eaf75f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-50cc3ebd0c6a6d31", "level": "none", "message": {"text": "Commented-code block (6 lines) in testing/unit/tests/review/test_run_db_generations.py:29"}, "properties": {"repobilityId": "e3abad16e6f0ae98", "scanner": "scanner-primary", "fingerprint": "50cc3ebd0c6a6d31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fc3cb4ee845a857", "level": "none", "message": {"text": "Commented-code block (7 lines) in testing/unit/tests/conductor/test_name_a_puppy_roadmap.py:37"}, "properties": {"repobilityId": "2daacacdb5e34ef1", "scanner": "scanner-primary", "fingerprint": "1fc3cb4ee845a857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed25b1dc444ff807", "level": "none", "message": {"text": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_conductor_roadmap_e2e.py:171"}, "properties": {"repobilityId": "712231c6156e2932", "scanner": "scanner-primary", "fingerprint": "ed25b1dc444ff807", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ac95c6b65580a32", "level": "none", "message": {"text": "Commented-code block (5 lines) in testing/unit/tests/conductor/test_team_loader_and_generic_realizer.py:101"}, "properties": {"repobilityId": "17854ba071a497c9", "scanner": "scanner-primary", "fingerprint": "1ac95c6b65580a32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3cdd70ac2fd0c7a", "level": "note", "message": {"text": "Legacy-named symbol `env_backup` in testing/unit/tests/conductor/test_dispatcher_claude_code.py:79"}, "properties": {"repobilityId": "df4b03464df12afa", "scanner": "scanner-primary", "fingerprint": "e3cdd70ac2fd0c7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-55370946323981cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in testing/unit/tests/integration_surface/conftest.py:105"}, "properties": {"repobilityId": "236a53a8af227460", "scanner": "scanner-primary", "fingerprint": "55370946323981cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-523717feeeeaa520", "level": "none", "message": {"text": "Commented-code block (8 lines) in testing/unit/tests/arbitrator/test_upsert_finding.py:169"}, "properties": {"repobilityId": "19b72aa491980713", "scanner": "scanner-primary", "fingerprint": "523717feeeeaa520", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5183a4a596d1603b", "level": "none", "message": {"text": "Commented-code block (7 lines) in testing/unit/tests/skills/test_skills.py:54"}, "properties": {"repobilityId": "59a6d61097d59da9", "scanner": "scanner-primary", "fingerprint": "5183a4a596d1603b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c0b5d6a8561a196", "level": "none", "message": {"text": "Commented-code block (5 lines) in testing/unit/tests/atp/db/test_crash_resume.py:139"}, "properties": {"repobilityId": "5387e4e918909b7a", "scanner": "scanner-primary", "fingerprint": "5c0b5d6a8561a196", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8ae8feebffeb3ce", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 testing/unit/harness/run_tests.py:34"}, "properties": {"repobilityId": "ba09f981925263de", "scanner": "scanner-primary", "fingerprint": "e8ae8feebffeb3ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9438605775f62d86", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/review/orchestrator.py:209"}, "properties": {"repobilityId": "862dd9144782b787", "scanner": "scanner-primary", "fingerprint": "9438605775f62d86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98b6aa2848bbd54b", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/review/selection.py:171"}, "properties": {"repobilityId": "9c597c10e63afd87", "scanner": "scanner-primary", "fingerprint": "98b6aa2848bbd54b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2daf32b4ee79ec5", "level": "note", "message": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/progress.py:22"}, "properties": {"repobilityId": "9fb0db635423d914", "scanner": "scanner-primary", "fingerprint": "e2daf32b4ee79ec5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-6e6f771e2df7ad72", "level": "note", "message": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/review/debug_capture.py:22"}, "properties": {"repobilityId": "e18524833aac9888", "scanner": "scanner-primary", "fingerprint": "6e6f771e2df7ad72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8a1948fc6eafd6dd", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/review/changeset.py:58"}, "properties": {"repobilityId": "0d07e20007fc35ea", "scanner": "scanner-primary", "fingerprint": "8a1948fc6eafd6dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5e83baf13f416f03", "level": "note", "message": {"text": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/toolkit/nl_router.py:172"}, "properties": {"repobilityId": "f289fedc49061744", "scanner": "scanner-primary", "fingerprint": "5e83baf13f416f03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-fb01b90f0ed54131", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pipeline/engine/source/toolkit/team_home.py:81"}, "properties": {"repobilityId": "d84a5d7433ff545d", "scanner": "scanner-primary", "fingerprint": "fb01b90f0ed54131", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8ae5aca3590180d", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/llm_providers/dispatcher.py:43"}, "properties": {"repobilityId": "2a0c76c8c406bca7", "scanner": "scanner-primary", "fingerprint": "f8ae5aca3590180d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67148fb4f8462e2d", "level": "none", "message": {"text": "Commented-code block (6 lines) in pipeline/engine/source/toolkit/llm_providers/claude_code.py:31"}, "properties": {"repobilityId": "b6be796a9ca6a73e", "scanner": "scanner-primary", "fingerprint": "67148fb4f8462e2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c9b73ef160f825", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/toolkit/storage_provider/sqlite_storage.py:42"}, "properties": {"repobilityId": "6fd3b67d8f788ac5", "scanner": "scanner-primary", "fingerprint": "29c9b73ef160f825", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-418fc24bf42f5b32", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/objective_planner.py:70"}, "properties": {"repobilityId": "5aab7804fbe9ad12", "scanner": "scanner-primary", "fingerprint": "418fc24bf42f5b32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4d56b91e61ce0d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in pipeline/engine/source/engine/conductor/command_conductor.py:62"}, "properties": {"repobilityId": "493db457be9bc824", "scanner": "scanner-primary", "fingerprint": "f4d56b91e61ce0d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183b85a77a1100e6", "level": "note", "message": {"text": "Stub function `_sink` (body is just `pass`/`return`) \u2014 pipeline/engine/source/engine/conductor/plan_realizer.py:133"}, "properties": {"repobilityId": "5c8411eea280f7cb", "scanner": "scanner-primary", "fingerprint": "183b85a77a1100e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-9c33736e3a24c392", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/conductor/team_loader.py:226"}, "properties": {"repobilityId": "91f8a6620102ff9e", "scanner": "scanner-primary", "fingerprint": "9c33736e3a24c392", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a7c72bb888502e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/specialist_pipeline.py:594"}, "properties": {"repobilityId": "feb743ea35164e08", "scanner": "scanner-primary", "fingerprint": "3a7c72bb888502e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73ff71ed7e658fa4", "level": "none", "message": {"text": "Commented-code block (5 lines) in pipeline/engine/source/engine/workflows/unit_schema.py:23"}, "properties": {"repobilityId": "361e797e28b1ffba", "scanner": "scanner-primary", "fingerprint": "73ff71ed7e658fa4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f79ee186144c00a", "level": "note", "message": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 pipeline/engine/source/contract/executor/run_executor.py:9"}, "properties": {"repobilityId": "3e677db1906beeb2", "scanner": "scanner-primary", "fingerprint": "3f79ee186144c00a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-ba4a4b365c01f0b7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 claude/skills/legacy-dev-team/scripts/capture_screenshots.py:45"}, "properties": {"repobilityId": "4e351223942f8354", "scanner": "scanner-primary", "fingerprint": "ba4a4b365c01f0b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aca8de8c2c50f0f8", "level": "none", "message": {"text": "Commented-code block (12 lines) in claude/skills/legacy-dev-team/scripts/db/schema_lint.py:32"}, "properties": {"repobilityId": "b59d9fdc34422da1", "scanner": "scanner-primary", "fingerprint": "aca8de8c2c50f0f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d01b21324ff0756", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/update-team/scripts/cookbook_drift.py:46"}, "properties": {"repobilityId": "16ff89720f9cf434", "scanner": "scanner-primary", "fingerprint": "2d01b21324ff0756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acfaf151440e51f1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/update-team/scripts/cookbook_drift.py:389"}, "properties": {"repobilityId": "4fdb5795383520b5", "scanner": "scanner-primary", "fingerprint": "acfaf151440e51f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f1f9ae704df6fec", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/lint-specialist/scripts/lint_specialist.py:43"}, "properties": {"repobilityId": "0f5370eb3f5f30b8", "scanner": "scanner-primary", "fingerprint": "9f1f9ae704df6fec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "4e9209b6b0d169d6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "937b87179022800e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "58b59bccb9ea400e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7a7d8f4e4c3fef5b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "608aa87407da86d7", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "d4f6b8d50b4bbda6", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "351f988173dddfc2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ef5146b6144ccfea", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "01a4a6e3dbd72974", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6ac0b50be44a10d8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "486d8d4d56108239", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "d43e3da56ef5897a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f050de9b1d598c20", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "554b36b34735bdbd", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "4411bbf8b33a4854", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "887f68b817a1b026", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0eee325fbee4d668", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "30c1b34ac8b17a0f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b687e201c4cb38e4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2f0acb1dbdbb78d4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}