{"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-ddf0ec6eb979a89a", "name": "Possibly dead Python function: order_key", "shortDescription": {"text": "Possibly dead Python function: order_key"}, "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-6938c7185547fbae", "name": "Possibly dead Python function: to_dict", "shortDescription": {"text": "Possibly dead Python function: to_dict"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-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-c4938506be90e994", "name": "Agent authority lacks a verifier contract: src/untaped_awx/skills/untaped-awx/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/untaped_awx/skills/untaped-awx/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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8a9df8e3346e9b7", "name": "Commented-code block (5 lines) in tests/conftest.py:363", "shortDescription": {"text": "Commented-code block (5 lines) in tests/conftest.py:363"}, "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-abe3becaa1b03d34", "name": "Commented-code block (5 lines) in tests/unit/test_apply_resource.py:651", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_apply_resource.py:651"}, "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-f0c8a8b5fd66b94d", "name": "Commented-code block (7 lines) in tests/unit/test_format_raw_first_key.py:98", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/test_format_raw_first_key.py:98"}, "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-3d14fe5ce0d8744b", "name": "Commented-code block (5 lines) in tests/unit/test_apply_file.py:421", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_apply_file.py:421"}, "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-1fe0148d2a2221ea", "name": "Commented-code block (5 lines) in tests/unit/test_layering.py:105", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_layering.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-67bd9384de23f645", "name": "Legacy-named symbol `test_returns_a_top_level_copy` in tests/unit/test_names.py:157", "shortDescription": {"text": "Legacy-named symbol `test_returns_a_top_level_copy` in tests/unit/test_names.py:157"}, "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-5b631273643e16dd", "name": "Commented-code block (5 lines) in tests/integration/test_group_cli.py:389", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_group_cli.py:389"}, "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-2c83a7aa7c96feaa", "name": "Commented-code block (5 lines) in tests/integration/test_workflow_nodes_cli.py:719", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_workflow_nodes_cli.py:719"}, "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-92baa97729fa13c7", "name": "Legacy-named symbol `model_copy` in tests/integration/test_jobs_cli.py:582", "shortDescription": {"text": "Legacy-named symbol `model_copy` in tests/integration/test_jobs_cli.py:582"}, "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-535989a869768ef3", "name": "Commented-code block (6 lines) in src/untaped_awx/application/save_resource.py:69", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/application/save_resource.py:69"}, "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-96134d08c501f181", "name": "Commented-code block (11 lines) in src/untaped_awx/application/apply_planner.py:103", "shortDescription": {"text": "Commented-code block (11 lines) in src/untaped_awx/application/apply_planner.py: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-d5d3dd1911dbc9c0", "name": "Commented-code block (7 lines) in src/untaped_awx/application/apply_resource.py:84", "shortDescription": {"text": "Commented-code block (7 lines) in src/untaped_awx/application/apply_resource.py:84"}, "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-f179c928834c63ed", "name": "Commented-code block (5 lines) in src/untaped_awx/application/apply_membership.py:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/apply_membership.py:76"}, "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-f84d64c91523346e", "name": "Legacy-named symbol `model_copy` in src/untaped_awx/application/apply_file.py:114", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/untaped_awx/application/apply_file.py:114"}, "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-4ae2ec63800bc93b", "name": "Commented-code block (5 lines) in src/untaped_awx/application/apply_file.py:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/apply_file.py:36"}, "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-65ccc655611b6152", "name": "Commented-code block (5 lines) in src/untaped_awx/application/tail_job_logs.py:64", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/tail_job_logs.py: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-bd2af335d4b07d94", "name": "Commented-code block (6 lines) in src/untaped_awx/application/apply_secret_policy.py:57", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/application/apply_secret_policy.py:57"}, "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-f6b24368db069df5", "name": "Commented-code block (8 lines) in src/untaped_awx/application/apply_ordering.py:34", "shortDescription": {"text": "Commented-code block (8 lines) in src/untaped_awx/application/apply_ordering.py:34"}, "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-a1198d90d8916f2d", "name": "Commented-code block (6 lines) in src/untaped_awx/infrastructure/pagination.py:18", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/infrastructure/pagination.py:18"}, "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-c0d374c48eb7320f", "name": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/fk_resolver.py:126", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/fk_resolver.py:126"}, "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-32e030df0bd150ff", "name": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/unified_template_repo.py:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/unified_template_repo.py:33"}, "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-7a4d81281bff9045", "name": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/specs/_support.py:90", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/specs/_support.py:90"}, "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-0e75508a7ba7738a", "name": "Commented-code block (6 lines) in src/untaped_awx/cli/_list.py:119", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_list.py:119"}, "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-600e0bdd9068540c", "name": "Commented-code block (5 lines) in src/untaped_awx/cli/test_commands.py:317", "shortDescription": {"text": "Commented-code block (5 lines) in src/untaped_awx/cli/test_commands.py:317"}, "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-98663a37d8b3ee2f", "name": "Commented-code block (6 lines) in src/untaped_awx/cli/_factory.py:55", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_factory.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea37138dacbe6e25", "name": "Commented-code block (6 lines) in src/untaped_awx/cli/_delete.py:149", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_delete.py:149"}, "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-e8b4f4f6848bfb10", "name": "Commented-code block (10 lines) in src/untaped_awx/cli/_launch.py:35", "shortDescription": {"text": "Commented-code block (10 lines) in src/untaped_awx/cli/_launch.py:35"}, "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-ea5a6302c3822929", "name": "Commented-code block (6 lines) in src/untaped_awx/cli/commands.py:405", "shortDescription": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/commands.py:405"}, "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-77cdc7151dd42c7a", "name": "Legacy-named symbol `model_copy` in src/untaped_awx/domain/outcomes.py:37", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/untaped_awx/domain/outcomes.py:37"}, "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-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/untaped_awx/application/ports.py:get, src/untaped_awx/application/ports.py:get, src/untaped_awx/application/ports.py:get, src/untaped_awx/application/ports.py:get\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-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:\nsrc/untaped_awx/application/ports.py:find_by_identity, src/untaped_awx/infrastructure/resource_repo.py:find_by_identity\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:\nsrc/untaped_awx/infrastructure/strategies.py:create, src/untaped_awx/infrastructure/strategies.py:create, src/untaped_awx/infrastructure/strategies.py:create\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/24068"}, "properties": {"repository": "alexisbeaulieu97/untaped-awx", "repoUrl": "https://github.com/alexisbeaulieu97/untaped-awx", "branch": "main"}, "results": [{"ruleId": "scanner-ddf0ec6eb979a89a", "level": "note", "message": {"text": "Possibly dead Python function: order_key"}, "properties": {"repobilityId": "e29bc6821878a777", "scanner": "scanner-primary", "fingerprint": "ddf0ec6eb979a89a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/untaped_awx/application/apply_ordering.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6938c7185547fbae", "level": "note", "message": {"text": "Possibly dead Python function: to_dict"}, "properties": {"repobilityId": "017f31ed997ca27d", "scanner": "scanner-primary", "fingerprint": "6938c7185547fbae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/untaped_awx/infrastructure/yaml_io.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "930c646885e8ff24", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c6572a8df6a2eab0", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-c4938506be90e994", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/untaped_awx/skills/untaped-awx/SKILL.md"}, "properties": {"repobilityId": "7078fe3698c10b2b", "scanner": "scanner-primary", "fingerprint": "c4938506be90e994", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/untaped_awx/skills/untaped-awx/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-d8a9df8e3346e9b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/conftest.py:363"}, "properties": {"repobilityId": "855bcbcd0a4065c0", "scanner": "scanner-primary", "fingerprint": "d8a9df8e3346e9b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abe3becaa1b03d34", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_apply_resource.py:651"}, "properties": {"repobilityId": "7a9c4aa2d2c127dc", "scanner": "scanner-primary", "fingerprint": "abe3becaa1b03d34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0c8a8b5fd66b94d", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/test_format_raw_first_key.py:98"}, "properties": {"repobilityId": "1f2568e657cdbdd5", "scanner": "scanner-primary", "fingerprint": "f0c8a8b5fd66b94d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d14fe5ce0d8744b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_apply_file.py:421"}, "properties": {"repobilityId": "227e7f84fa86e1c1", "scanner": "scanner-primary", "fingerprint": "3d14fe5ce0d8744b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fe0148d2a2221ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_layering.py:105"}, "properties": {"repobilityId": "ddd611aea772911e", "scanner": "scanner-primary", "fingerprint": "1fe0148d2a2221ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67bd9384de23f645", "level": "note", "message": {"text": "Legacy-named symbol `test_returns_a_top_level_copy` in tests/unit/test_names.py:157"}, "properties": {"repobilityId": "5828f09a6a92c66e", "scanner": "scanner-primary", "fingerprint": "67bd9384de23f645", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5b631273643e16dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_group_cli.py:389"}, "properties": {"repobilityId": "c7cb6ff89939bb39", "scanner": "scanner-primary", "fingerprint": "5b631273643e16dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c83a7aa7c96feaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_workflow_nodes_cli.py:719"}, "properties": {"repobilityId": "b049cf7aca2e99ef", "scanner": "scanner-primary", "fingerprint": "2c83a7aa7c96feaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92baa97729fa13c7", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in tests/integration/test_jobs_cli.py:582"}, "properties": {"repobilityId": "d81bb56393e96f41", "scanner": "scanner-primary", "fingerprint": "92baa97729fa13c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-535989a869768ef3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/application/save_resource.py:69"}, "properties": {"repobilityId": "50fa40683905e269", "scanner": "scanner-primary", "fingerprint": "535989a869768ef3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96134d08c501f181", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/untaped_awx/application/apply_planner.py:103"}, "properties": {"repobilityId": "15ad8f1362ee69ae", "scanner": "scanner-primary", "fingerprint": "96134d08c501f181", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5d3dd1911dbc9c0", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/untaped_awx/application/apply_resource.py:84"}, "properties": {"repobilityId": "0fcfc6ecc97124b1", "scanner": "scanner-primary", "fingerprint": "d5d3dd1911dbc9c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f179c928834c63ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/apply_membership.py:76"}, "properties": {"repobilityId": "6716b5abd2ddf16e", "scanner": "scanner-primary", "fingerprint": "f179c928834c63ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f84d64c91523346e", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/untaped_awx/application/apply_file.py:114"}, "properties": {"repobilityId": "78baa8e338219072", "scanner": "scanner-primary", "fingerprint": "f84d64c91523346e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4ae2ec63800bc93b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/apply_file.py:36"}, "properties": {"repobilityId": "c6efb61211ac4610", "scanner": "scanner-primary", "fingerprint": "4ae2ec63800bc93b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65ccc655611b6152", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/application/tail_job_logs.py:64"}, "properties": {"repobilityId": "2447fdd7b7150054", "scanner": "scanner-primary", "fingerprint": "65ccc655611b6152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd2af335d4b07d94", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/application/apply_secret_policy.py:57"}, "properties": {"repobilityId": "9e2cb3edeeac53d8", "scanner": "scanner-primary", "fingerprint": "bd2af335d4b07d94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6b24368db069df5", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/untaped_awx/application/apply_ordering.py:34"}, "properties": {"repobilityId": "4bddfb2a8db402f7", "scanner": "scanner-primary", "fingerprint": "f6b24368db069df5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1198d90d8916f2d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/infrastructure/pagination.py:18"}, "properties": {"repobilityId": "d14e55f3de651d8d", "scanner": "scanner-primary", "fingerprint": "a1198d90d8916f2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0d374c48eb7320f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/fk_resolver.py:126"}, "properties": {"repobilityId": "43a3606a5b20d4a6", "scanner": "scanner-primary", "fingerprint": "c0d374c48eb7320f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32e030df0bd150ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/unified_template_repo.py:33"}, "properties": {"repobilityId": "446f5a48c8ae0d92", "scanner": "scanner-primary", "fingerprint": "32e030df0bd150ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a4d81281bff9045", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/infrastructure/specs/_support.py:90"}, "properties": {"repobilityId": "3fa3a17e2212e048", "scanner": "scanner-primary", "fingerprint": "7a4d81281bff9045", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e75508a7ba7738a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_list.py:119"}, "properties": {"repobilityId": "42a6274b93f0b9c2", "scanner": "scanner-primary", "fingerprint": "0e75508a7ba7738a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-600e0bdd9068540c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/untaped_awx/cli/test_commands.py:317"}, "properties": {"repobilityId": "9fba0f5ca727ea2f", "scanner": "scanner-primary", "fingerprint": "600e0bdd9068540c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98663a37d8b3ee2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_factory.py:55"}, "properties": {"repobilityId": "b1d8013a1292fa83", "scanner": "scanner-primary", "fingerprint": "98663a37d8b3ee2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea37138dacbe6e25", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/_delete.py:149"}, "properties": {"repobilityId": "70e9c614593a2f4b", "scanner": "scanner-primary", "fingerprint": "ea37138dacbe6e25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8b4f4f6848bfb10", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/untaped_awx/cli/_launch.py:35"}, "properties": {"repobilityId": "629e68be1c63d9f0", "scanner": "scanner-primary", "fingerprint": "e8b4f4f6848bfb10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea5a6302c3822929", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/untaped_awx/cli/commands.py:405"}, "properties": {"repobilityId": "56f791281edccd51", "scanner": "scanner-primary", "fingerprint": "ea5a6302c3822929", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77cdc7151dd42c7a", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/untaped_awx/domain/outcomes.py:37"}, "properties": {"repobilityId": "07a8705ededf5598", "scanner": "scanner-primary", "fingerprint": "77cdc7151dd42c7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "a1dae3e55da9f3c7", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "dc2a6c068a11c7c5", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "91a43b4b94e7d86d", "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": "de8969b4c7c38a04", "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": "dbfdaf96f9fa4496", "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": "6f79557a6f616531", "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": "cd23d960e17f1d92", "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": "d4b4a49e191fbbd0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "982fa10445d8264b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "04b076e01ed8430d", "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": "805034601d5d1ad8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "c935fd4b3853b39f", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "4880bc88e8353908", "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": "6e352e8255736b9f", "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": "aae37a3be2a745f2", "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": "9c2ce1968386d7b6", "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": "08e97a1d61f9e2d6", "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": "356f4c3d8533e8f3", "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": "15895e8dd1dc2fb2", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "b0370beeffa1c137", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}