Agent Package Manager
This report presents the forensic synthetic code analysis of microsoft/apm, a Python project with 3,234 GitHub stars. SynthScan v2.0 examined 755,593 lines of code across 2284 source files, recording 37546 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 75.0 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 37546 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tch-docs_src_content_docs_enterprise_apm-policy_md.txt | 413 | "snippet": "# ── Result data classes ───────────────────────────────────────────", | CODE |
| MEDIUM | …docs_src_content_docs_enterprise_apm-policy_md_c4.json | 1 | {"claim_id":"c4","claim_text":"MCP transport policy accepts http and stdio but blocks sse and streamable-http by default | CODE |
| MEDIUM⚡ | tests/test_gitlab_git_transport.py | 68 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_gitlab_git_transport.py | 70 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 495 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 497 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_apm_resolver.py | 477 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_apm_resolver.py | 479 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_lockfile.py | 543 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_lockfile.py | 545 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_github_downloader.py | 2229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_github_downloader.py | 2231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_apm_package_models.py | 681 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_apm_package_models.py | 684 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_plugin_parser.py | 1178 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_plugin_parser.py | 1182 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 431 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 433 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 573 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 575 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 678 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 680 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 804 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_overlays.py | 806 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_mcp_overlays.py | 12 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_mcp_overlays.py | 14 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 377 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 379 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 460 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 462 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 512 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 514 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 572 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 574 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 640 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 642 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 659 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 661 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 689 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 691 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 809 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 811 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 936 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 938 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1010 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1012 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1081 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1083 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1288 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 1290 | # --------------------------------------------------------------------------- | COMMENT |
| 8680 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tch-docs_src_content_docs_reference_cli_install_md.txt | 176 | "snippet": " def _add_dependency_to_config(self, package_ref: str) -> None:", | CODE |
| LOW | …docs_src_content_docs_reference_cli_install_md_c3.json | 1 | {"claim_id":"c3","claim_text":"With no arguments installs everything from apm.yml; with PACKAGE_REF arguments adds those | CODE |
| LOW | …e-batch-docs_src_content_docs_guides_registries_md.txt | 806 | "snippet": "def get_config_json_default_registry() -> str | None:", | CODE |
| LOW | …e-batch-docs_src_content_docs_guides_registries_md.txt | 812 | "snippet": "def _route_unscoped_to_default_registry(", | CODE |
| LOW | …nce/docs_src_content_docs_guides_registries_md_c9.json | 1 | {"claim_id":"c9","claim_text":"When a default registry is configured, plain owner/repo#<ref> shorthand entries route thr | CODE |
| LOW | …h-docs_src_content_docs_reference_package-types_md.txt | 509 | "snippet": "def merge_structured_entry_into_current_deps(", | CODE |
| LOW | …cs_src_content_docs_reference_package-types_md_c4.json | 1 | {"claim_id":"c4","claim_text":"In HYBRID packages, apm.yml.description and SKILL.md description are independent fields t | CODE |
| LOW | …tch-docs_src_content_docs_enterprise_apm-policy_md.txt | 851 | "snippet": "def _coerce_unmanaged_directories_for_union(value: tuple[str, ...] | None) -> tuple[str, ...]:", | CODE |
| LOW | …docs_src_content_docs_enterprise_apm-policy_md_c8.json | 1 | {"claim_id":"c8","claim_text":"Deny list merge rule: child adds to parent's deny list (union).","evidence":[{"file":"src | CODE |
| LOW | tests/test_collision_integration.py | 34 | def test_collision_detection_with_helpful_error(self, tmp_path): | CODE |
| LOW | tests/test_collision_integration.py | 71 | def test_qualified_path_resolves_collision(self, tmp_path): | CODE |
| LOW | tests/test_collision_integration.py | 107 | def test_no_collision_with_single_dependency(self, tmp_path): | CODE |
| LOW | tests/test_collision_integration.py | 124 | def test_local_overrides_all_dependencies_no_collision(self, tmp_path): | CODE |
| LOW⚡ | tests/test_token_manager.py | 63 | def test_scheme_allowlist_is_case_insensitive(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 72 | def test_gh_token_used_when_no_other_tokens(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 79 | def test_github_apm_pat_takes_precedence_over_gh_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 122 | def test_modules_precedence_order(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 130 | def test_no_tokens_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 140 | def test_success_returns_password(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 150 | def test_no_password_line_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 159 | def test_empty_password_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 168 | def test_nonzero_exit_code_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 174 | def test_timeout_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 179 | def test_file_not_found_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 184 | def test_os_error_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 197 | def test_path_appended_to_stdin(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 207 | def test_path_leading_slash_stripped(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 215 | def test_path_none_preserves_legacy_stdin(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 222 | def test_path_with_newline_is_rejected(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 266 | def test_git_terminal_prompt_disabled(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 274 | def test_git_askpass_set_to_empty(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 283 | def test_rejects_password_prompt_as_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 292 | def test_rejects_username_prompt_as_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 301 | def test_rejects_token_with_spaces(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 310 | def test_rejects_token_with_tabs(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 319 | def test_rejects_excessively_long_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 328 | def test_accepts_valid_ghp_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 338 | def test_accepts_valid_gho_token(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 363 | def test_ineligible_host_skips_subprocess(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 371 | def test_nonzero_exit_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 376 | def test_invalid_output_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 381 | def test_timeout_returns_none(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 389 | def test_none_and_empty_unsupported(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 396 | def test_github_com_supported(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 402 | def test_ghes_supported_when_matches_default_host(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 406 | def test_ghes_unsupported_when_mismatches_default_host(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 410 | def test_ghes_unsupported_when_no_default_host(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 452 | def test_empty_string_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 455 | def test_none_coerced_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 459 | def test_whitespace_only_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 471 | def test_password_for_prompt_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 476 | def test_username_for_prompt_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 481 | def test_newline_in_token_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 484 | def test_tab_in_token_invalid(self): | CODE |
| LOW⚡ | tests/test_token_manager.py | 491 | def test_returns_env_token_without_credential_fill(self): | CODE |
| LOW | tests/test_token_manager.py | 93 | def test_github_token_takes_precedence_over_gh_token(self): | CODE |
| LOW | tests/test_token_manager.py | 107 | def test_all_three_tokens_apm_pat_wins(self): | CODE |
| LOW | tests/test_token_manager.py | 234 | def test_path_with_carriage_return_is_rejected(self): | CODE |
| LOW | tests/test_token_manager.py | 245 | def test_path_with_whitespace_is_rejected(self): | CODE |
| LOW | tests/test_token_manager.py | 253 | def test_path_with_full_url_is_extracted_via_urlparse(self): | CODE |
| 24886 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_gitlab_git_transport.py | 13 | CODE | |
| LOW | tests/test_apm_resolver.py | 11 | CODE | |
| LOW | tests/test_enhanced_discovery.py | 17 | CODE | |
| LOW | tests/test_enhanced_discovery.py | 17 | CODE | |
| LOW | tests/test_enhanced_discovery.py | 25 | CODE | |
| LOW | tests/test_codex_docker_args_fix.py | 12 | CODE | |
| LOW | tests/basic_workflow_test.py | 15 | CODE | |
| LOW | tests/test_codex_empty_string_and_defaults.py | 14 | CODE | |
| LOW | tests/test_runnable_prompts.py | 4 | CODE | |
| LOW | tests/test_runnable_prompts.py | 5 | CODE | |
| LOW | tests/test_runnable_prompts.py | 7 | CODE | |
| LOW | tests/test_runnable_prompts.py | 7 | CODE | |
| LOW | tests/test_console.py | 3 | CODE | |
| LOW | tests/test_console.py | 6 | CODE | |
| LOW | tests/test_console.py | 8 | CODE | |
| LOW | tests/manual_workflow_script.py | 11 | CODE | |
| LOW | tests/test_lockfile.py | 3 | CODE | |
| LOW | tests/test_github_downloader_token_precedence.py | 6 | CODE | |
| LOW | tests/test_runtime_manager_token_precedence.py | 4 | CODE | |
| LOW | tests/test_runtime_manager_token_precedence.py | 7 | CODE | |
| LOW | tests/test_apm_package_models.py | 6 | CODE | |
| LOW | tests/test_apm_package_models.py | 6 | CODE | |
| LOW | tests/test_apm_package_models.py | 12 | CODE | |
| LOW | tests/test_virtual_package_multi_install.py | 3 | CODE | |
| LOW | tests/test_distributed_compilation.py | 3 | CODE | |
| LOW | tests/test_empty_string_and_defaults.py | 13 | CODE | |
| LOW | tests/unit/test_plugin_parser.py | 4 | CODE | |
| LOW | tests/unit/test_mcp_overlays.py | 4 | CODE | |
| LOW | tests/unit/test_kiro_mcp.py | 3 | CODE | |
| LOW | tests/unit/test_copilot_adapter_phase3.py | 24 | CODE | |
| LOW | tests/unit/test_package_manager_base.py | 10 | CODE | |
| LOW | tests/unit/test_target_filter.py | 3 | CODE | |
| LOW | tests/unit/test_path_security.py | 9 | CODE | |
| LOW | tests/unit/test_init_command.py | 3 | CODE | |
| LOW | tests/unit/test_init_command.py | 11 | CODE | |
| LOW | tests/unit/test_workflow_runner_phase3w4.py | 6 | CODE | |
| LOW | tests/unit/test_diagnostics.py | 5 | CODE | |
| LOW | tests/unit/test_content_hash.py | 3 | CODE | |
| LOW | tests/unit/test_content_hash.py | 4 | CODE | |
| LOW | tests/unit/test_version.py | 12 | CODE | |
| LOW | tests/unit/test_bootstrap_mirror.py | 3 | CODE | |
| LOW | tests/unit/test_external_scanners.py | 12 | CODE | |
| LOW | tests/unit/test_mcp_integrator_coverage.py | 4 | CODE | |
| LOW | tests/unit/test_lockfile_v2_bump.py | 8 | CODE | |
| LOW | tests/unit/test_runtime_factory.py | 3 | CODE | |
| LOW | tests/unit/test_runtime_factory.py | 3 | CODE | |
| LOW | tests/unit/test_reflink_phase3w5.py | 14 | CODE | |
| LOW | tests/unit/test_mcp_integrator_overlay.py | 6 | CODE | |
| LOW | tests/unit/test_compile_rich_output.py | 1 | CODE | |
| LOW | tests/unit/test_compile_rich_output.py | 5 | CODE | |
| LOW | tests/unit/test_path_home_override.py | 11 | CODE | |
| LOW | tests/unit/test_tls_docs_scope.py | 10 | CODE | |
| LOW | tests/unit/test_git_cache_phase3w4.py | 6 | CODE | |
| LOW | tests/unit/test_deps_clean_command.py | 8 | CODE | |
| LOW | tests/unit/test_lifecycle_executor_paths.py | 14 | CODE | |
| LOW | tests/unit/test_dev_dependencies.py | 9 | CODE | |
| LOW | tests/unit/test_deps.py | 9 | CODE | |
| LOW | tests/unit/test_dep_targets_persistence.py | 3 | CODE | |
| LOW | tests/unit/test_mcp_integrator_install_hermetic.py | 6 | CODE | |
| LOW | tests/unit/test_deps_utils.py | 8 | CODE | |
| 1602 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 225 | echo " apm init my-app # Create a new APM project" | CODE |
| MEDIUM | install.sh | 777 | echo " apm init my-app # Create a new APM project" | CODE |
| MEDIUM | .apm/docs-index.yml | 3 | # This file is the LOAD-BEARING ARTIFACT for the docs-sync agentic | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 186 | # Create a file outside the work dir. | COMMENT |
| MEDIUM | tests/test_gitlab_git_transport.py | 190 | # Create a symlink inside the work dir pointing outside. | COMMENT |
| MEDIUM⚡ | tests/test_apm_resolver.py | 301 | # Create a mock dependency graph | COMMENT |
| MEDIUM | tests/test_apm_resolver.py | 171 | # Create a simple tree without cycles | COMMENT |
| MEDIUM | tests/test_apm_resolver.py | 197 | # Create a circular dependency: A -> B -> A | COMMENT |
| MEDIUM | tests/test_apm_resolver.py | 211 | # Create the cycle by making B depend back on A (existing node) | COMMENT |
| MEDIUM | tests/manual_workflow_script.py | 24 | # Create a temporary directory for testing | COMMENT |
| MEDIUM | tests/noninteractive_workflow_test.py | 20 | # Create a temporary directory for testing | COMMENT |
| MEDIUM | tests/test_github_downloader.py | 1072 | # Create the subdirectory structure that download_subdirectory_package expects | COMMENT |
| MEDIUM | tests/test_distributed_compilation.py | 150 | # Create a primitive collection | COMMENT |
| MEDIUM | tests/test_distributed_compilation.py | 172 | # Create a primitive collection | COMMENT |
| MEDIUM | tests/unit/test_plugin_parser.py | 197 | # Create a symlink inside agents/ | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_phase3.py | 478 | # Create an adapter with runtime substitution disabled by monkeypatching | COMMENT |
| MEDIUM | tests/unit/test_prune_command.py | 403 | # Create the deployed file | STRING |
| MEDIUM | tests/unit/test_content_hash.py | 149 | # Create a symlink | COMMENT |
| MEDIUM⚡ | tests/unit/test_git_cache_phase3w4.py | 337 | # Create a fake shard directory in db_root | COMMENT |
| MEDIUM | tests/unit/test_symlink_containment.py | 33 | # Create a file outside the project | COMMENT |
| MEDIUM | tests/unit/test_deps.py | 86 | # Create a test configuration file | COMMENT |
| MEDIUM⚡ | tests/unit/test_init_phase3w5.py | 489 | # Create a dir with invalid plugin name (contains uppercase) | COMMENT |
| MEDIUM⚡ | tests/unit/test_git_cache_branch_coverage.py | 337 | # Create a fake shard directory in db_root | COMMENT |
| MEDIUM⚡ | tests/unit/test_install_scanning.py | 170 | # Create a directory outside the package with a critical file | COMMENT |
| MEDIUM⚡ | tests/unit/test_install_command.py | 768 | # Create a minimal apm.yml with a direct dep | COMMENT |
| MEDIUM | tests/unit/test_install_command.py | 306 | # Create a directory with a specific name to test project name detection | COMMENT |
| MEDIUM | tests/unit/test_install_command.py | 999 | # Create a fake home with no manifest so the command errors early | COMMENT |
| MEDIUM⚡ | tests/unit/test_init_command_selection.py | 489 | # Create a dir with invalid plugin name (contains uppercase) | COMMENT |
| MEDIUM | tests/unit/test_runtime_manager.py | 304 | # Create a fake script where the code looks for it | COMMENT |
| MEDIUM | tests/unit/test_vscode_adapter.py | 150 | # Create a config with an existing server | COMMENT |
| MEDIUM⚡ | tests/unit/test_skill_bundle.py | 252 | # Create a dir named ".."; on most filesystems this isn't creatable | COMMENT |
| MEDIUM | tests/unit/test_env_variables.py | 23 | # Create a temporary MCP configuration file | COMMENT |
| MEDIUM | tests/unit/test_env_variables.py | 69 | # Create the adapter and configure the server | COMMENT |
| MEDIUM | tests/unit/test_conflict_detection.py | 15 | # Create a mock adapter | COMMENT |
| MEDIUM⚡ | tests/unit/test_local_content_install.py | 165 | # Create a root-level SKILL.md that must be ignored | COMMENT |
| MEDIUM⚡ | tests/unit/test_local_deps.py | 457 | # Create a local package | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 403 | # Create a lockfile so pack_bundle doesn't fail on missing lockfile | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 434 | # Create an empty lockfile | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 508 | # Create a Claude Skill package (SKILL.md but no apm.yml) | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 537 | # Create a directory without apm.yml or SKILL.md | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 554 | # Create a local package | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 599 | # Create a secret file outside the package | COMMENT |
| MEDIUM | tests/unit/test_local_deps.py | 604 | # Create a local package with a symlink pointing outside | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_adapter_compatibility.py | 478 | # Create an adapter with runtime substitution disabled by monkeypatching | COMMENT |
| MEDIUM | tests/unit/test_unpack_security.py | 131 | # Create a symlink inside the bundle pointing to a file with critical content | COMMENT |
| MEDIUM | tests/unit/test_packer.py | 497 | # Create a file with hidden chars inside the project tree | COMMENT |
| MEDIUM⚡ | tests/unit/install/test_install_local_bundle.py | 447 | # Create a tarball that contains junk -- no plugin.json. | COMMENT |
| MEDIUM | tests/unit/install/test_skill_path_migration.py | 460 | # Create a file outside the project root to serve as the "escape" target. | COMMENT |
| MEDIUM | tests/unit/install/test_sources_phase3.py | 264 | # Create a minimal apm.yml in the install path | COMMENT |
| MEDIUM⚡ | tests/unit/install/test_services_phase3.py | 145 | # Create a regular cowork target that will fail the first relative_to check, | COMMENT |
| MEDIUM | tests/unit/install/test_local_content_symlink_deref.py | 365 | # Create a symlink from dir_a/link_to_b -> dir_b (in-package, not escaping) | COMMENT |
| MEDIUM | tests/unit/install/test_validation_proxy.py | 244 | # Create a virtual dep_ref mock (simulating a virtual package). | COMMENT |
| MEDIUM | tests/unit/install/test_validation_proxy.py | 288 | # Create a virtual dep_ref mock (simulating a virtual package). | COMMENT |
| MEDIUM | tests/unit/install/test_sources_materialisation.py | 264 | # Create a minimal apm.yml in the install path | COMMENT |
| MEDIUM⚡ | tests/unit/install/test_services_branches.py | 145 | # Create a regular cowork target that will fail the first relative_to check, | COMMENT |
| MEDIUM | tests/unit/install/test_drift.py | 510 | # Create the local package dir so path resolution succeeds. | COMMENT |
| MEDIUM⚡ | tests/unit/core/test_plugin_manifest.py | 588 | # Create a malformed plugin.json at the root | COMMENT |
| MEDIUM⚡ | tests/unit/cache/test_git_cache.py | 185 | # Create a checkout with old mtime | COMMENT |
| MEDIUM⚡ | tests/unit/cache/test_git_cache.py | 193 | # Create a recent checkout | COMMENT |
| MEDIUM | tests/unit/cache/test_locking.py | 135 | # Create a valid shard (should NOT be removed) | COMMENT |
| 167 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_enhanced_discovery.py | 0 | create an apm.yml file with the specified dependencies. | STRING |
| HIGH | tests/integration/test_apm_dependencies.py | 0 | create an apm.yml file with the specified dependencies. | STRING |
| HIGH | tests/unit/test_ado_path_structure.py | 0 | create an apm.yml file with the specified dependencies. | STRING |
| HIGH | tests/basic_workflow_test.py | 0 | safely remove a directory with retry logic for windows. args: path (str): path to directory to remove | STRING |
| HIGH | tests/integration/test_registry.py | 0 | safely remove a directory with retry logic for windows. args: path (str): path to directory to remove | STRING |
| HIGH | tests/integration/test_integration.py | 0 | safely remove a directory with retry logic for windows. args: path (str): path to directory to remove | STRING |
| HIGH | tests/unit/test_prune_command.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/test_deps_clean_command.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/test_outdated_command.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/test_deps_update_command.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/install/test_install_pkg_policy_rollback.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/install/test_no_policy_flag.py | 0 | create a temp dir, chdir into it, restore cwd on exit. | STRING |
| HIGH | tests/unit/test_audit_policy_command.py | 0 | \ name: test-project version: '1.0.0' dependencies: apm: - owner/repo#v1.0.0 | STRING |
| HIGH | tests/unit/test_audit_ci_auto_discovery.py | 0 | \ name: test-project version: '1.0.0' dependencies: apm: - owner/repo#v1.0.0 | STRING |
| HIGH | tests/unit/test_audit_ci_command.py | 0 | \ name: test-project version: '1.0.0' dependencies: apm: - owner/repo#v1.0.0 | STRING |
| HIGH | tests/integration/test_install_silent_skip_e2e.py | 0 | \ name: test-project version: '1.0.0' dependencies: apm: - owner/repo#v1.0.0 | STRING |
| HIGH | tests/unit/test_audit_policy_command.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00z' dependencies: - repo_url: owner/repo resolved_ref: v1.0.0 d | STRING |
| HIGH | tests/unit/test_audit_ci_command.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00z' dependencies: - repo_url: owner/repo resolved_ref: v1.0.0 d | STRING |
| HIGH | tests/unit/policy/test_ci_checks.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00z' dependencies: - repo_url: owner/repo resolved_ref: v1.0.0 d | STRING |
| HIGH | tests/integration/test_audit_silent_skip_e2e.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00z' dependencies: - repo_url: owner/repo resolved_ref: v1.0.0 d | STRING |
| HIGH | tests/unit/test_audit_ci_auto_discovery.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00z' dependencies: - repo_url: owner/repo resolved_ref: v1.0.0 d | STRING |
| HIGH | tests/unit/install/test_services_rendering.py | 0 | convert a dict of old-style integrator kwargs to an integratorbundle. | STRING |
| HIGH | tests/unit/install/test_services_phase3.py | 0 | convert a dict of old-style integrator kwargs to an integratorbundle. | STRING |
| HIGH | tests/unit/install/test_services_branches.py | 0 | convert a dict of old-style integrator kwargs to an integratorbundle. | STRING |
| HIGH | tests/unit/install/test_services_rendering.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/install/test_services.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/install/phases/test_integrate_phase.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/install/phases/test_targets_phase.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/core/test_experimental.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/integration/test_copilot_cowork_target.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/commands/test_experimental_command.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/commands/test_helpers_version.py | 0 | reset the in-process config cache before and after every test. | STRING |
| HIGH | tests/unit/install/test_services.py | 0 | directly inject a dict into the config cache -- no disk i/o. | STRING |
| HIGH | tests/unit/install/phases/test_targets_phase.py | 0 | directly inject a dict into the config cache -- no disk i/o. | STRING |
| HIGH | tests/unit/core/test_experimental.py | 0 | directly inject a dict into the config cache -- no disk i/o. | STRING |
| HIGH | tests/unit/integration/test_copilot_cowork_target.py | 0 | directly inject a dict into the config cache -- no disk i/o. | STRING |
| HIGH | tests/unit/install/test_services.py | 0 | return a frozen targetprofile with resolved_deploy_root set for cowork. args: cowork_root: the resolved cowork skills ro | STRING |
| HIGH | tests/unit/install/phases/test_integrate_phase.py | 0 | return a frozen targetprofile with resolved_deploy_root set for cowork. args: cowork_root: the resolved cowork skills ro | STRING |
| HIGH | tests/unit/install/phases/test_targets_phase.py | 0 | return a frozen targetprofile with resolved_deploy_root set for cowork. args: cowork_root: the resolved cowork skills ro | STRING |
| HIGH | tests/unit/integration/test_skill_integrator.py | 0 | return a frozen targetprofile with resolved_deploy_root set for cowork. args: cowork_root: the resolved cowork skills ro | STRING |
| HIGH | tests/unit/marketplace/test_drift_check.py | 0 | \ name: my-project description: a project. version: 1.0.0 marketplace: owner: name: acme packages: - name: local-tool so | STRING |
| HIGH | tests/unit/commands/test_marketplace_doctor.py | 0 | \ name: my-project description: a project. version: 1.0.0 marketplace: owner: name: acme packages: - name: local-tool so | STRING |
| HIGH | tests/unit/commands/test_pack.py | 0 | \ name: my-project description: a project. version: 1.0.0 marketplace: owner: name: acme packages: - name: local-tool so | STRING |
| HIGH | tests/unit/commands/test_pack_cli_flags.py | 0 | \ name: my-project description: a project. version: 1.0.0 marketplace: owner: name: acme packages: - name: local-tool so | STRING |
| HIGH | tests/unit/marketplace/test_builder_logging.py | 0 | \ name: test description: x version: 1.0.0 marketplace: owner: name: acme packages: - name: remote-tool source: acme/rem | STRING |
| HIGH | tests/unit/marketplace/test_builder_security.py | 0 | \ name: test description: x version: 1.0.0 marketplace: owner: name: acme packages: - name: remote-tool source: acme/rem | STRING |
| HIGH | tests/unit/marketplace/test_builder.py | 0 | \ name: test description: x version: 1.0.0 marketplace: owner: name: acme packages: - name: remote-tool source: acme/rem | STRING |
| HIGH | tests/unit/commands/test_marketplace_doctor.py | 0 | \ name: test-marketplace description: test marketplace version: 1.0.0 owner: name: test owner packages: - name: solo sou | STRING |
| HIGH | tests/unit/commands/test_marketplace_check.py | 0 | \ name: test-marketplace description: test marketplace version: 1.0.0 owner: name: test owner packages: - name: solo sou | STRING |
| HIGH | tests/unit/commands/test_marketplace_outdated.py | 0 | \ name: test-marketplace description: test marketplace version: 1.0.0 owner: name: test owner packages: - name: solo sou | STRING |
| HIGH | tests/unit/commands/test_pack_cli_flags.py | 0 | --marketplace-output was removed in v0.16 (breaking change, #1318). | STRING |
| HIGH | tests/unit/commands/test_pack_cli_surface.py | 0 | --marketplace-output was removed in v0.16 (breaking change, #1318). | STRING |
| HIGH | tests/unit/commands/test_pack_phase3.py | 0 | --marketplace-output was removed in v0.16 (breaking change, #1318). | STRING |
| HIGH | tests/unit/policy/test_discovery_phase3w4.py | 0 | unsupported algorithm raises projectpolicyconfigerror. | STRING |
| HIGH | tests/unit/policy/test_discovery_policy_resolution.py | 0 | unsupported algorithm raises projectpolicyconfigerror. | STRING |
| HIGH | tests/integration/test_uninstall_policy_pack_phase3.py | 0 | unsupported algorithm raises projectpolicyconfigerror. | STRING |
| HIGH | tests/integration/test_uninstall_policy_pack_flow.py | 0 | unsupported algorithm raises projectpolicyconfigerror. | STRING |
| HIGH | tests/integration/test_commands_auth_flow.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00+00:00' dependencies: [] | STRING |
| HIGH | tests/integration/test_commands_mcp_phase3c.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00+00:00' dependencies: [] | STRING |
| HIGH | tests/integration/test_uninstall_policy_pack_phase3.py | 0 | \ lockfile_version: '1' generated_at: '2025-01-01t00:00:00+00:00' dependencies: [] | STRING |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .apm/instructions/cli.instructions.md | 83 | except Exception as e: | CODE |
| MEDIUM | tests/manual_workflow_script.py | 49 | print(f"Error: {result}") | CODE |
| MEDIUM⚡ | tests/manual_workflow_script.py | 66 | print(f"Error: {result}") | CODE |
| LOW⚡ | tests/manual_workflow_script.py | 67 | except Exception as e: | CODE |
| MEDIUM⚡ | tests/manual_workflow_script.py | 68 | print(f"Error: {e}") | CODE |
| LOW | tests/test_apm_package_models.py | 1990 | except Exception: | CODE |
| MEDIUM | tests/unit/test_diagnostics.py | 649 | def add(): | CODE |
| LOW | tests/unit/test_diagnostics.py | 652 | except Exception as e: | CODE |
| LOW | tests/unit/test_thread_safety.py | 107 | except Exception as exc: | CODE |
| MEDIUM | tests/unit/test_thread_safety.py | 101 | def _worker() -> None: | CODE |
| LOW | tests/unit/install/test_install_local_bundle.py | 271 | except Exception as exc: | CODE |
| LOW | tests/unit/install/test_validation_rate_limit.py | 90 | except Exception: | CODE |
| MEDIUM | tests/unit/install/test_validation_rate_limit.py | 87 | def _throttled_fallback(host, op, **kwargs): | CODE |
| LOW | tests/unit/install/test_install_cmd_auth_rendering.py | 74 | except Exception: | CODE |
| LOW | tests/unit/install/test_validation_tls.py | 144 | except Exception: | CODE |
| LOW | tests/unit/install/test_validation_tls.py | 147 | except Exception: | CODE |
| MEDIUM | tests/unit/install/test_validation_tls.py | 141 | def _retrying_fallback(host, op, **kwargs): | CODE |
| LOW⚡ | tests/unit/install/test_drift.py | 418 | except Exception as exc: # pragma: no cover -- only inspecting message | CODE |
| MEDIUM | tests/unit/core/test_auth_validation.py | 913 | def _resolve(): | CODE |
| LOW⚡ | tests/unit/core/test_auth_validation.py | 916 | except Exception as exc: | CODE |
| MEDIUM | tests/unit/core/test_auth_phase3.py | 922 | def _resolve(): | CODE |
| LOW⚡ | tests/unit/core/test_auth_phase3.py | 925 | except Exception as exc: | CODE |
| MEDIUM | tests/unit/deps/test_shared_clone_cache.py | 125 | def worker() -> None: | CODE |
| MEDIUM | tests/unit/deps/test_shared_clone_cache.py | 309 | def thread_a() -> None: | CODE |
| MEDIUM | tests/unit/deps/test_shared_clone_cache.py | 340 | def thread_b() -> None: | CODE |
| LOW | tests/unit/deps/test_shared_clone_cache.py | 129 | except Exception as e: | CODE |
| LOW | tests/unit/deps/test_shared_clone_cache.py | 337 | except Exception as e: | CODE |
| LOW | tests/unit/deps/test_shared_clone_cache.py | 367 | except Exception as e: | CODE |
| LOW | tests/unit/compilation/test_watcher_phase3.py | 484 | except Exception: | CODE |
| LOW | tests/unit/compilation/test_watcher_events.py | 484 | except Exception: | CODE |
| LOW | tests/unit/compilation/test_compilation.py | 426 | except Exception as e: | CODE |
| LOW | tests/integration/test_registry.py | 134 | except Exception as exc: | CODE |
| LOW | tests/integration/test_tls_r3_verify.py | 151 | except Exception: # pragma: no cover - environment guard | CODE |
| LOW⚡ | tests/integration/test_wave2_adapters_coverage.py | 1497 | except Exception as exc: | CODE |
| LOW | tests/integration/test_policy_coverage.py | 550 | except Exception: | CODE |
| LOW | tests/integration/test_ado_bearer_e2e.py | 63 | except Exception: | CODE |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 272 | except Exception as e: | CODE |
| LOW | tests/integration/test_tls_frozen_hook.py | 121 | except Exception: | CODE |
| LOW | tests/integration/_tls_ca_server.py | 40 | except Exception: | CODE |
| LOW | tests/integration/test_tls_custom_ca.py | 155 | except Exception: | CODE |
| LOW⚡ | tests/integration/test_tls_custom_ca.py | 192 | except Exception: | CODE |
| LOW | tests/integration/test_compilation_coverage.py | 471 | except Exception: | CODE |
| LOW⚡ | tests/integration/test_wave3_integrators_coverage.py | 624 | except Exception: | CODE |
| LOW⚡ | …ts/integration/test_transport_selection_integration.py | 119 | except Exception: | CODE |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 725 | except Exception: | CODE |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 742 | except Exception: | CODE |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 756 | except Exception: | CODE |
| LOW | tests/integration/test_mcp_registry_e2e.py | 63 | except Exception: | CODE |
| LOW | tests/integration/test_mcp_registry_e2e.py | 361 | except Exception as e: | CODE |
| LOW⚡ | tests/red_team/install/test_failure_isolation.py | 46 | except Exception: | CODE |
| LOW⚡ | tests/red_team/parser/test_timeout_subprocess.py | 73 | except Exception as exc: | CODE |
| LOW⚡ | tests/red_team/parser/test_toplevel_shape.py | 66 | except Exception as exc: | CODE |
| LOW⚡ | tests/red_team/parser/test_toplevel_shape.py | 84 | except Exception as exc: | CODE |
| LOW | tests/red_team/parser/test_toplevel_shape.py | 121 | except Exception as exc: | CODE |
| LOW | tests/red_team/parser/test_nonascii_control.py | 40 | except Exception as exc: | CODE |
| MEDIUM | tests/benchmarks/test_audit_benchmarks.py | 334 | def worker(): | CODE |
| LOW | tests/benchmarks/test_audit_benchmarks.py | 337 | except Exception as e: | CODE |
| LOW | scripts/generate-notice.py | 390 | except Exception as e: # pragma: no cover -- defensive | CODE |
| LOW | .github/instructions/cli.instructions.md | 83 | except Exception as e: | CODE |
| LOW | .github/workflows/cli-consistency-checker.lock.yml | 788 | except Exception as e: | CODE |
| 475 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_github_downloader.py | 840 | CODE | |
| LOW | tests/test_runtime_manager_token_precedence.py | 45 | CODE | |
| LOW | tests/test_runtime_manager_token_precedence.py | 63 | CODE | |
| LOW | tests/test_runtime_manager_token_precedence.py | 112 | CODE | |
| LOW | tests/test_empty_string_and_defaults.py | 132 | CODE | |
| LOW | tests/test_empty_string_and_defaults.py | 211 | CODE | |
| LOW | tests/test_empty_string_and_defaults.py | 283 | CODE | |
| LOW | tests/unit/test_version.py | 73 | CODE | |
| LOW | tests/unit/test_version.py | 126 | CODE | |
| LOW | tests/unit/test_version.py | 142 | CODE | |
| LOW | tests/unit/test_version.py | 158 | CODE | |
| LOW | tests/unit/test_version.py | 175 | CODE | |
| LOW | tests/unit/test_version.py | 204 | CODE | |
| LOW | tests/unit/test_version.py | 295 | CODE | |
| LOW | tests/unit/test_install_update_refs.py | 236 | CODE | |
| LOW | tests/unit/test_auth.py | 1018 | CODE | |
| LOW | tests/unit/test_auth.py | 1394 | CODE | |
| LOW | tests/unit/test_auth.py | 1616 | CODE | |
| LOW | tests/unit/test_command_helpers.py | 579 | CODE | |
| LOW | tests/unit/test_command_helpers.py | 589 | CODE | |
| LOW | tests/unit/test_install_update.py | 689 | CODE | |
| LOW | tests/unit/test_package_identity.py | 275 | CODE | |
| LOW | tests/unit/test_install_tui.py | 125 | CODE | |
| LOW | tests/unit/test_build_spec.py | 123 | CODE | |
| LOW | tests/unit/test_global_mcp_scope.py | 304 | CODE | |
| LOW | tests/unit/install/test_install_exit_owner_invariant.py | 37 | CODE | |
| LOW | tests/unit/core/test_deployment_owner_invariant.py | 29 | CODE | |
| LOW | tests/unit/integration/test_data_driven_dispatch.py | 148 | CODE | |
| LOW | tests/unit/integration/test_data_driven_dispatch.py | 172 | CODE | |
| LOW | tests/unit/integration/test_data_driven_dispatch.py | 195 | CODE | |
| LOW | tests/unit/integration/test_mcp_integrator.py | 860 | CODE | |
| LOW | tests/unit/commands/test_audit_error_handling.py | 471 | CODE | |
| LOW | tests/unit/commands/test_audit_error_handling.py | 521 | CODE | |
| LOW | tests/unit/commands/test_install_phase3.py | 271 | CODE | |
| LOW | tests/unit/commands/test_install_phase3.py | 368 | CODE | |
| LOW | tests/unit/commands/test_install_phase3.py | 407 | CODE | |
| LOW | tests/unit/commands/test_install_phase3.py | 425 | CODE | |
| LOW | tests/unit/commands/test_pack_cli_surface.py | 285 | CODE | |
| LOW | tests/unit/commands/test_audit_phase3.py | 471 | CODE | |
| LOW | tests/unit/commands/test_audit_phase3.py | 521 | CODE | |
| LOW | tests/unit/commands/test_pack_phase3.py | 270 | CODE | |
| LOW | …s/unit/commands/test_install_context_and_resolution.py | 270 | CODE | |
| LOW | …s/unit/commands/test_install_context_and_resolution.py | 409 | CODE | |
| LOW | …s/unit/commands/test_install_context_and_resolution.py | 448 | CODE | |
| LOW | …s/unit/commands/test_install_context_and_resolution.py | 466 | CODE | |
| LOW | tests/unit/compilation/test_context_optimizer.py | 229 | CODE | |
| LOW | …ts/unit/compilation/test_sibling_directory_coverage.py | 46 | CODE | |
| LOW | …ts/unit/compilation/test_sibling_directory_coverage.py | 101 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 99 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 175 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 223 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 291 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 347 | CODE | |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 325 | CODE | |
| LOW | tests/unit/policy/test_ci_checks.py | 34 | CODE | |
| LOW | tests/unit/policy/test_cache_atomicity.py | 45 | CODE | |
| LOW | tests/unit/policy/test_cache_atomicity.py | 87 | CODE | |
| LOW | tests/integration/test_cache_coverage.py | 360 | CODE | |
| LOW | tests/integration/test_cache_coverage.py | 402 | CODE | |
| LOW | tests/integration/test_cache_coverage.py | 523 | CODE | |
| 373 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/apm_cli/config.py | 193 | Persist a default install target after validation. Args: target: Target token or comma-separated target lis | STRING |
| HIGH | src/apm_cli/config.py | 219 | Normalize and validate a self-update channel name. Args: channel: Channel token supplied by the user or env | STRING |
| HIGH | src/apm_cli/factory.py | 50 | Create a client adapter based on the specified type. Args: client_type (str): Type of client adapte | STRING |
| HIGH | src/apm_cli/factory.py | 90 | Create a package manager adapter based on the specified type. Args: manager_type (str, optional): T | STRING |
| HIGH | src/apm_cli/install/mcp/integration.py | 39 | Run MCP server integration after APM package installation. Mirrors the LSP integration pattern: 1. Collect dire | STRING |
| HIGH | src/apm_cli/install/phases/local_content.py | 185 | Copy a local package to apm_modules/. Args: dep_ref: DependencyReference with is_local=True. instal | STRING |
| HIGH | src/apm_cli/core/install_audit.py | 91 | Collapse the ``--audit``/``--no-audit`` CLI flags into one override. Args: no_audit: ``True`` when ``--no-a | STRING |
| HIGH | src/apm_cli/core/experimental.py | 186 | Check whether an experimental flag is currently enabled. Derives directly from ``get_config()`` (already cached in | STRING |
| HIGH | src/apm_cli/core/target_detection.py | 570 | Parse, validate, and normalize a target value from any entry point. Single source of truth for the ``target`` field | STRING |
| HIGH | src/apm_cli/core/script_runner.py | 574 | Discover prompt files by name across local and dependencies. Supports both simple names and qualified paths: | STRING |
| HIGH | src/apm_cli/core/script_runner.py | 1002 | Resolve prompt file path, checking local directory first, then common directories, then dependencies. Symlinks | STRING |
| HIGH | src/apm_cli/cache/git_cache.py | 224 | Resolve a ref to SHA via git ls-remote. Args: url: Repository URL. ref: Ref to resolve | STRING |
| HIGH | src/apm_cli/cache/paths.py | 45 | Resolve the cache root directory. Args: no_cache: If True, returns a temporary directory that will be | STRING |
| HIGH | src/apm_cli/cache/locking.py | 82 | Atomically move *staged* to *final* under *lock*. Protocol: 1. Acquire the file lock. 2. Re-check that *fin | STRING |
| HIGH | src/apm_cli/cache/url_normalize.py | 46 | Normalize a Git repository URL for cache key derivation. The result is a canonical string suitable for hashing. It | STRING |
| HIGH | src/apm_cli/security/executables.py | 517 | Run the interactive approval flow for packages with executables. Args: declarations: Executable declaration | STRING |
| HIGH | src/apm_cli/security/external/options.py | 134 | Validate passthrough *args* against an adapter allowlist (fail-closed). A token is rejected when it (a) names or ca | STRING |
| HIGH | src/apm_cli/security/external/runner.py | 51 | Resolve, validate, run, and merge external scanners. Args: external: Scanner names to run (e.g. ``("skillsp | STRING |
| HIGH | src/apm_cli/security/external/sarif_ingest.py | 97 | Convert a parsed SARIF 2.1.0 document into findings grouped by file. Args: document: A parsed SARIF documen | STRING |
| HIGH | src/apm_cli/security/external/base.py | 61 | Run the scanner over *paths* and return findings grouped by file. Args: paths: Files or directories | STRING |
| HIGH | src/apm_cli/integration/copilot_cowork_paths.py | 176 | Encode an absolute cowork path as a ``cowork://`` lockfile entry. Args: absolute: Absolute path to a deploy | STRING |
| HIGH | src/apm_cli/integration/copilot_cowork_paths.py | 199 | Decode a ``cowork://`` lockfile entry to an absolute ``Path``. Args: lockfile_path: A string like ``cowork: | STRING |
| HIGH | src/apm_cli/integration/utils.py | 5 | Normalize a repo URL to owner/repo format. Handles various URL formats: - Full URLs: https://github.com/owner/r | STRING |
| HIGH | src/apm_cli/marketplace/client.py | 1096 | Fetch and parse a marketplace manifest. Uses the JSON sidecar cache for ``kind in ("github", "gitlab", "ado", " | STRING |
| HIGH | src/apm_cli/marketplace/version_resolver.py | 60 | Resolve a semver range to the highest matching git tag. Lists tags on *owner_repo*, filters to those matching *tag_ | STRING |
| HIGH | src/apm_cli/marketplace/resolver.py | 666 | Resolve a plugin's source to a canonical ``owner/repo[#ref]`` string. Handles 4 source types: relative, github, url | STRING |
| HIGH | src/apm_cli/marketplace/resolver.py | 747 | Resolve a marketplace plugin reference to a canonical string and plugin row. For non-GitHub, non-ADO marketplace ho | STRING |
| HIGH | src/apm_cli/runtime/factory.py | 56 | Get a runtime adapter by name. Args: runtime_name: Name of the runtime to get ('llm', 'codex') | STRING |
| HIGH | src/apm_cli/runtime/factory.py | 82 | Get the best available runtime based on preference order. Args: model_name: Optional model name for | STRING |
| HIGH | src/apm_cli/bundle/packer.py | 42 | Create a self-contained bundle from installed APM dependencies. Args: project_root: Root of the project con | STRING |
| HIGH | src/apm_cli/bundle/unpacker.py | 44 | Extract and apply an APM bundle to a project directory. Additive-only semantics (v1): only writes files listed in t | STRING |
| HIGH | src/apm_cli/utils/exclude.py | 21 | Validate and normalize exclude patterns, rejecting dangerous ones. Args: patterns: Raw patterns from apm.ym | STRING |
| HIGH | src/apm_cli/models/apm_package.py | 406 | Load APM package from apm.yml file. Results are cached by ``(resolved apm.yml path, resolved source_path)`` | STRING |
| HIGH | src/apm_cli/models/plugin.py | 91 | Load a plugin from its installation directory. Plugin structure: plugin.json can be in root, .github/plugin/, o | STRING |
| HIGH | src/apm_cli/models/validation.py | 51 | Parse a string value into a PackageContentType enum. Args: value: String value to parse (e.g., "ins | STRING |
| HIGH | src/apm_cli/models/dependency/reference.py | 445 | Get the canonical filesystem path where this package should be installed. This is the single source of truth fo | STRING |
| HIGH | src/apm_cli/models/dependency/reference.py | 738 | Parse an object-style dependency entry from apm.yml. Supports the Cargo-inspired object format: - | STRING |
| HIGH | src/apm_cli/models/dependency/reference.py | 1848 | Parse a dependency string into a DependencyReference. Supports formats: - user/repo - user/repo | STRING |
| HIGH | src/apm_cli/primitives/parser.py | 11 | Parse a SKILL.md file. SKILL.md files are package meta-guides that describe how to use the package. They have a | STRING |
| HIGH | src/apm_cli/primitives/parser.py | 52 | Parse a primitive file. Determines the primitive type based on file extension and parses accordingly. Args: | STRING |
| HIGH | src/apm_cli/adapters/client/vscode.py | 135 | Configure an MCP server in VS Code mcp.json file. This method updates the .vscode/mcp.json file to add or updat | STRING |
| HIGH | src/apm_cli/registry/client.py | 325 | List all available servers in the registry. Calls ``GET /v0.1/servers`` per the MCP Registry spec. Arg | STRING |
| HIGH | src/apm_cli/registry/client.py | 359 | Search for servers in the registry using the spec ``?search=`` query param. Calls ``GET /v0.1/servers?search=<q | STRING |
| HIGH | src/apm_cli/registry/client.py | 456 | Get detailed information about a specific server version. Calls ``GET /v0.1/servers/{urlencoded-serverName}/ver | STRING |
| HIGH | src/apm_cli/registry/client.py | 532 | Find a server by its name using the search API. Args: name (str): Name of the server to find. | STRING |
| HIGH | src/apm_cli/registry/client.py | 557 | Find a server by exact name match. The legacy UUID strategy was removed because the MCP Registry v0.1 s | STRING |
| HIGH | src/apm_cli/registry/client.py | 598 | Extract the repository name from various identifier formats. This method handles various naming patterns by ext | STRING |
| HIGH | src/apm_cli/registry/integration.py | 45 | Get detailed information about a specific package. Args: name (str): Name of the package. | STRING |
| HIGH | src/apm_cli/registry/integration.py | 67 | Get the latest version of a package. Args: name (str): Name of the package. Returns: | STRING |
| HIGH | src/apm_cli/deps/github_downloader.py | 730 | Download a single file from repository (GitHub or Azure DevOps). Args: dep_ref: Parsed dependency r | STRING |
| HIGH | src/apm_cli/deps/github_downloader.py | 893 | Download a single file as a virtual APM package. Creates a minimal APM package structure with the file placed i | STRING |
| HIGH | src/apm_cli/deps/github_downloader.py | 1114 | Download a subdirectory from a repo as an APM package. Used for Claude Skills or APM packages nested in monorep | STRING |
| HIGH | src/apm_cli/deps/github_downloader.py | 1552 | Download a GitHub repository and validate it as an APM package. For virtual packages (individual files or colle | STRING |
| HIGH | src/apm_cli/deps/plugin_parser.py | 138 | Parse a plugin.json manifest file. Args: plugin_json_path: Path to the plugin.json file Returns: | STRING |
| HIGH | src/apm_cli/deps/plugin_parser.py | 1001 | Create a minimal ``plugin.json`` dict from ``apm.yml`` identity fields. Reads ``apm.yml`` and extracts ``name``, `` | STRING |
| HIGH | src/apm_cli/deps/shared_clone_cache.py | 77 | Return a path to a shared clone, cloning on first access. Args: host: Git host (e.g. "github.com"). | STRING |
| HIGH | src/apm_cli/deps/_shared.py | 9 | Check *validation_result*, clean up *target_path* on failure, and return the package. Args: validation_resu | STRING |
| HIGH | src/apm_cli/deps/download_strategies.py | 131 | HTTP GET with retry on 429/503 and rate-limit header awareness. Args: url: Request URL | STRING |
| HIGH | src/apm_cli/deps/git_file_transport.py | 210 | Fetch a single file from a git repo via sparse/partial checkout. Performs a depth-1, blob:none sparse checkout to e | STRING |
| HIGH | src/apm_cli/deps/apm_resolver.py | 464 | Resolve a marketplace dependency to a concrete DependencyReference. Uses :func:`resolve_marketplace_plugin` to | STRING |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apm.yml | 1 | name: apm | COMMENT |
| LOW | install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .apm/docs-index.yml | 1 | # docs-index.yml -- corpus map for the docs-sync skill | COMMENT |
| LOW | …s/docs-corpus-audit/scripts/scan-cross-corpus-drift.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .apm/skills/docs-grounding-verifier/evals/run-evals.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/skills/docs-grounding-verifier/scripts/verify-page.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/docs-grounding-verifier/scripts/retrieve-evidence.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .apm/skills/cut-release/scripts/bump-version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …m/skills/cut-release/scripts/list-changes-since-tag.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .apm/skills/cut-release/scripts/verify-lint-mirror.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/conftest.py | 1 | # Root conftest.py -- shared pytest configuration | COMMENT |
| LOW | tests/unit/test_self_entry_caller_guards.py | 121 | # Self-entry's owner string would have been '<self>' if not skipped. | COMMENT |
| LOW | tests/unit/install/test_install_local_bundle.py | 121 | COMMENT | |
| LOW | tests/unit/install/phases/test_targets_phase_v2.py | 1 | """Unit tests for the v2 targets phase three-guard collapse (#1154). | COMMENT |
| LOW | tests/unit/core/test_error_renderer.py | 1 | """Unit tests for the unified error renderer (#1154). | COMMENT |
| LOW | tests/unit/core/test_target_resolution_v2.py | 1 | """Unit tests for the target resolution v2 algorithm (#1154). | COMMENT |
| LOW | tests/unit/core/test_target_resolution_v2.py | 21 | # Priority: flag > yaml_targets > auto-detect signals. | COMMENT |
| LOW | tests/unit/core/test_target_resolution_v2.py | 41 | # Resolves --target all to (signals U yaml_targets), NOT all 7 | COMMENT |
| LOW | tests/unit/integration/test_mcp_integrator.py | 1241 | # canonical `Targets: X (source: Y)`. Without this, a future | COMMENT |
| LOW | tests/unit/integration/test_copilot_app_ws.py | 361 | client._connect() | COMMENT |
| LOW | tests/unit/marketplace/test_schema_conformance.py | 201 | assert src["path"] == "tools/claude-plugin" | COMMENT |
| LOW | tests/integration/test_diff_aware_install_e2e.py | 341 | # (single .agent.md + skill, declared via ``path: virtual-pkg``) | COMMENT |
| LOW | tests/integration/test_target_resolution_e2e.py | 1 | """E2E integration tests for target resolution overhaul (#1154). | COMMENT |
| LOW | tests/integration/marketplace/__init__.py | 1 | # Integration tests for apm marketplace commands. | COMMENT |
| LOW | tests/spec_conformance/test_resolution_reqs.py | 241 | COMMENT | |
| LOW | tests/spec_conformance/critical_paths.txt | 1 | # Critical paths for the OpenAPM Mode B (silent-extension) detector. | COMMENT |
| LOW | tests/spec_conformance/mode_b_detector.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .agents/skills/shepherd-driver/apm.yml | 1 | name: shepherd-driver | COMMENT |
| LOW | …s/docs-corpus-audit/scripts/scan-cross-corpus-drift.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ents/skills/docs-grounding-verifier/evals/run-evals.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/skills/docs-grounding-verifier/scripts/verify-page.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/docs-grounding-verifier/scripts/retrieve-evidence.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .agents/skills/cut-release/scripts/bump-version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/skills/cut-release/scripts/list-changes-since-tag.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …gents/skills/cut-release/scripts/verify-lint-mirror.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/public/specs/manifests/openapm-v0.1.requirements.yml | 1 | # OpenAPM v0.1 -- machine-readable requirements manifest. | COMMENT |
| LOW | docs/src/content/docs/specs/openapm-v0.1.md | 1701 | # tag in [1.5.0, 2.0.0) per req-rs-001 clause (1). | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 21 | # A7 ADO_APM_PAT Azure DevOps PAT | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 41 | # ============================================================================= | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 61 | # 17 | Fine-grained wrong owner | A2 | H1 | V3 | Fails, no crash | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 81 | # export AUTH_TEST_EMU_REPO="emu-org/internal-repo" # optional | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 101 | # ============================================================================= | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 821 | $SCENARIO_OK && record_pass "$name" || record_fail "$name" | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 841 | # The resolver must: | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 981 | # If private deps were included, verify token sources appear in verbose | COMMENT |
| LOW | scripts/lint-auth-signals.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/lint-auth-signals.sh | 41 | # Exempt sites (tracked here, not via inline annotations, so the boundary is | COMMENT |
| LOW | scripts/bootstrap_requirements.py | 81 | HEADER = """\ | COMMENT |
| LOW | scripts/github-token-helper.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/test-integration.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/test-integration.sh | 21 | # - invoke pytest tests/integration/ exactly once | COMMENT |
| LOW | scripts/test-release-validation.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/e2e/marketplace_local_e2e.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/apm-issue-autopilot/apm.yml | 1 | name: apm-issue-autopilot | COMMENT |
| LOW | packages/shepherd-driver/apm.yml | 1 | name: shepherd-driver | COMMENT |
| LOW | packages/batch-bug-shepherd/apm.yml | 1 | name: batch-bug-shepherd | COMMENT |
| LOW | .github/workflows/cli-consistency-checker.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"5a9d052a38597a88a66140c25dc36adf95f169ba6aede00fd0fc1607bd4 | COMMENT |
| LOW | .github/workflows/cli-consistency-checker.lock.yml | 21 | # gh aw compile | COMMENT |
| LOW | .github/workflows/cli-consistency-checker.lock.yml | 41 | # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | COMMENT |
| 160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .apm/skills/docs-impact-architect/SKILL.md | 39 | ## Step 1: read the corpus map, not the corpus | COMMENT |
| LOW | .apm/skills/docs-impact-architect/SKILL.md | 45 | ## Step 2: classify the structural shape | COMMENT |
| LOW | .apm/skills/docs-impact-architect/SKILL.md | 60 | ## Step 3: design the TOC delta | COMMENT |
| LOW | .apm/skills/docs-impact-architect/SKILL.md | 101 | ## Step 4: validate against the 3-promise narrative | COMMENT |
| LOW | .apm/skills/docs-impact-architect/SKILL.md | 111 | ## Step 5: emit the architect report | COMMENT |
| LOW | .apm/skills/docs-impact-localizer/SKILL.md | 36 | ## Step 1: load page contents | COMMENT |
| LOW | .apm/skills/docs-impact-localizer/SKILL.md | 42 | ## Step 2: narrow scope inside each page | COMMENT |
| LOW | .apm/skills/docs-impact-localizer/SKILL.md | 63 | ## Step 3: detect cross-page conflicts | COMMENT |
| LOW | .apm/skills/docs-impact-localizer/SKILL.md | 77 | ## Step 4: emit the per-page task brief | COMMENT |
| LOW | .apm/skills/docs-impact-classifier/SKILL.md | 31 | ## Step 1: L0 deterministic path gate (no LLM) | COMMENT |
| LOW | .apm/skills/docs-impact-classifier/SKILL.md | 51 | ## Step 2: L1 symbol extraction + corpus grep (no LLM) | COMMENT |
| LOW | .apm/skills/docs-impact-classifier/SKILL.md | 67 | ## Step 3: L2 LLM verdict (1 call, bounded context) | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 128 | # Step 1: install pinned to an older commit SHA. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 142 | # Step 2: bump apm.yml to point at main. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 145 | # Step 3: run `apm deps update` with no positional args. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 151 | # Step 4: lockfile SHA must differ from old. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 161 | # Step 5: deployed files must still exist (re-integrated). | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 276 | # Step 2: bump the user manifest to main. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 279 | # Step 3: run `apm deps update -g` from a directory with no project. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 295 | # Step 5: scope was respected -- no project lockfile in cwd. | COMMENT |
| LOW | tests/integration/test_deps_update_e2e.py | 264 | # Step 1: install -g to populate ~/.apm/apm.lock.yaml. | COMMENT |
| LOW⚡ | tests/integration/test_producer_journey.py | 101 | # Step 1: consumer init | COMMENT |
| LOW⚡ | tests/integration/test_producer_journey.py | 106 | # Step 2: bolt on a marketplace | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 193 | # Step 1: Setup Copilot runtime (equivalent to: apm runtime setup copilot) | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 225 | # Step 2: Initialize project (equivalent to: apm init my-ai-native-project) | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 595 | # Step 1: Setup LLM runtime (equivalent to: apm runtime setup llm) | COMMENT |
| LOW | tests/integration/test_golden_scenario_e2e.py | 611 | # Step 2: Use existing project or create new one | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 338 | # Step 6: Execute agentic workflows (equivalent to: apm run start --param name="<YourGitHubHandle>") | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 439 | # Step 1: Setup Codex runtime | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 518 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 523 | # Step 4: Install dependencies | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 669 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 674 | # Step 4: Install dependencies | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 743 | # Step 1: Setup Gemini runtime (npm install -g @google/gemini-cli) | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 827 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 832 | # Step 4: Install dependencies (targets gemini since .gemini/ exists) | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 840 | # Step 5: Run with Gemini CLI | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 308 | # Step 4: Compile Agent Primitives for any coding agent (equivalent to: apm compile) | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 322 | # Step 5: Install MCP dependencies (equivalent to: apm install) | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 460 | # Step 2: Use existing project or create new one | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 534 | # Step 5: Run with Codex CLI (equivalent to: apm run debug --param name="<YourGitHubHandle>") | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 685 | # Step 5: Run with LLM runtime (equivalent to: apm run llm --param name="<YourGitHubHandle>") | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 768 | # Step 2: Create test project | STRING |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 126 | # Step 1: apm init my-project | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 141 | # Step 2: apm install microsoft/apm-sample-package | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 159 | # Step 3: apm install github/awesome-copilot/instructions/code-review-generic.instructions.md | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 185 | # Step 4: apm compile | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 223 | # Step 5: apm run design-review | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 826 | # Step 1: Legacy install so the lockfile records .github/skills/. | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 833 | # Step 2: Hand-edit the legacy file so its content diverges from what | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 837 | # Step 3: Converged install — integrate writes the canonical content | COMMENT |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 238 | # Step 1: Set up Codex runtime | COMMENT |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 247 | # Step 2: Create test project with MCP dependencies | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 291 | # Step 3: Test installation with environment variable prompting | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 307 | # Step 4: Verify Codex configuration was updated | COMMENT |
| LOW | .agents/skills/docs-impact-architect/SKILL.md | 39 | ## Step 1: read the corpus map, not the corpus | COMMENT |
| LOW | .agents/skills/docs-impact-architect/SKILL.md | 45 | ## Step 2: classify the structural shape | COMMENT |
| LOW | .agents/skills/docs-impact-architect/SKILL.md | 60 | ## Step 3: design the TOC delta | COMMENT |
| LOW | .agents/skills/docs-impact-architect/SKILL.md | 101 | ## Step 4: validate against the 3-promise narrative | COMMENT |
| LOW | .agents/skills/docs-impact-architect/SKILL.md | 111 | ## Step 5: emit the architect report | COMMENT |
| 50 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 154 | # Check if Python is available | COMMENT |
| LOW | install.sh | 210 | # Check if apm is now available | COMMENT |
| LOW | install.sh | 253 | # Check if Python/pip are available | COMMENT |
| LOW | install.sh | 286 | # Check if we have permission to install to the configured directory. | COMMENT |
| LOW | install.sh | 344 | # Check if the response indicates authentication is required (private repo) | COMMENT |
| LOW | install.sh | 351 | # Check if we have GitHub token for private repo access | COMMENT |
| LOW | install.sh | 380 | # Check if we got a valid response (should contain tag_name) | COMMENT |
| LOW | install.sh | 390 | # Check if the response contains an error message | COMMENT |
| LOW | tests/unit/test_selective_install.py | 35 | # Check if dep_str ends with "/<pkg>" to ensure path boundary matching | COMMENT |
| LOW | tests/unit/test_artifactory_support.py | 1277 | # Set limit to 0 MB so any archive is too large | COMMENT |
| LOW | tests/unit/test_env_variables.py | 99 | # Check if the input variable for the API key is present | COMMENT |
| LOW⚡ | tests/unit/test_unpacker.py | 652 | # Set external_attr to Unix symlink mode (S_IFLNK = 0o120000) | COMMENT |
| LOW⚡ | tests/unit/cache/test_git_cache.py | 189 | # Set mtime to 60 days ago | COMMENT |
| LOW | tests/unit/primitives/test_primitives.py | 611 | # Write files | STRING |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 159 | # Check if instruction applies to this file | COMMENT |
| LOW | tests/unit/compilation/test_coverage_guarantees.py | 375 | # Check if this directory has any files that match instruction patterns | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 217 | # Check if copilot is in PATH | COMMENT |
| LOW⚡ | tests/integration/test_audit_phase3w4.py | 267 | # Write file with strippable content | COMMENT |
| LOW⚡ | tests/integration/test_audit_scan_hermetic.py | 267 | # Write file with strippable content | COMMENT |
| LOW⚡ | tests/integration/test_wave2_commands_coverage.py | 807 | # Set last_compile to now so the first event also triggers debounce | COMMENT |
| LOW | …s/integration/test_virtual_package_orphan_detection.py | 81 | # Check if level2 has apm.yml or .apm (GitHub 2-level structure) | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 52 | # Check if server has packages (healthy) vs remote-only (unhealthy) | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 427 | # Check if Copilot configuration was created | COMMENT |
| LOW⚡ | tests/integration/marketplace/test_init_integration.py | 31 | # Write files into the isolated filesystem's CWD | COMMENT |
| LOW | scripts/test-auth-acceptance.sh | 302 | # Check if a required env var is set; skip scenario if not | COMMENT |
| LOW | scripts/common.sh | 14 | # Check if current branch is a feature branch | COMMENT |
| LOW | scripts/common.sh | 53 | # Check if a file exists and report | COMMENT |
| LOW | scripts/common.sh | 66 | # Check if a directory exists and has files | COMMENT |
| LOW | scripts/build-binary.sh | 52 | # Check if PyInstaller is available via uv | COMMENT |
| LOW | scripts/build-binary.sh | 58 | # Check if UPX is available (optional, for compression) | COMMENT |
| LOW | scripts/build-binary.sh | 79 | # Check if build was successful (onedir mode creates dist/apm/apm) | COMMENT |
| LOW | scripts/setup-plan.sh | 23 | # Check if on feature branch | COMMENT |
| LOW | scripts/check-task-prerequisites.sh | 22 | # Check if on feature branch | COMMENT |
| LOW | scripts/check-task-prerequisites.sh | 25 | # Check if feature directory exists | COMMENT |
| LOW | scripts/update-agent-context.sh | 49 | # Check if this is the SDD repo itself | COMMENT |
| LOW | scripts/update-agent-context.sh | 109 | # Check if new tech already exists | COMMENT |
| LOW | scripts/get-feature-paths.sh | 14 | # Check if on feature branch | COMMENT |
| LOW | scripts/test-integration.sh | 131 | # Check if we're in CI with pre-built artifacts (binary exists in ./dist/) | COMMENT |
| LOW | scripts/test-integration.sh | 286 | # Check if uv is available, otherwise use pip | COMMENT |
| LOW | scripts/test-integration.sh | 290 | # Check if .venv already exists (CI mode where workflow already ran uv sync) | COMMENT |
| LOW | scripts/create-new-feature.sh | 92 | # Output results for the LLM to use (legacy key: value format) | COMMENT |
| LOW | scripts/runtime/setup-llm.sh | 38 | # Check if Python is available | COMMENT |
| LOW | scripts/runtime/setup-common.sh | 113 | # Check if shell RC already contains the runtime directory | COMMENT |
| LOW | .github/workflows/build-release.yml | 624 | # Check if tag matches stable semver pattern (e.g., v1.2.3, v0.2.0) | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 53 | # Check if this is a virtual package (before loading config) | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 182 | # Check if this command needs subprocess execution (has compiled content) | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 256 | # Check if this is a runtime command before transformation | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 596 | # Check if this is a qualified path (contains /) | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 672 | # Check if owner directory exists | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 714 | # Check if owner is in the path | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 718 | # Check if prompt name matches | COMMENT |
| LOW | src/apm_cli/core/script_runner.py | 827 | # Check if already installed | COMMENT |
| LOW⚡ | src/apm_cli/core/conflict_detector.py | 36 | # Check if any existing server has the same UUID | COMMENT |
| LOW⚡ | src/apm_cli/core/conflict_detector.py | 51 | # Check if any existing server resolves to the same canonical name | COMMENT |
| LOW | src/apm_cli/core/conflict_detector.py | 150 | # Check if any existing server resolves to the same canonical name | COMMENT |
| LOW | src/apm_cli/integration/cleanup.py | 122 | # Check if directory is empty -- safe to rmdir. | COMMENT |
| LOW | src/apm_cli/integration/cleanup.py | 170 | # Check if it was in the stale set (already processed | COMMENT |
| LOW | src/apm_cli/integration/skill_integrator.py | 218 | # Check if package has SKILL.md (via package_type field) | COMMENT |
| LOW | src/apm_cli/integration/skill_integrator.py | 335 | # Check if package type allows skill installation (T4 routing) | COMMENT |
| LOW | src/apm_cli/integration/skill_integrator.py | 700 | # Check if this is a user-authored skill (not managed by APM) | COMMENT |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .apm/docs-index.yml | 3 | # This file is the LOAD-BEARING ARTIFACT for the docs-sync agentic | COMMENT |
| MEDIUM | .apm/agents/agentic-workflows.agent.md | 33 | - Configuration: https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflows.md | CODE |
| MEDIUM⚡ | .apm/agents/agentic-workflows.agent.md | 55 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-agentic-workflow.md | CODE |
| MEDIUM⚡ | .apm/agents/agentic-workflows.agent.md | 65 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/update-agentic-workflow.md | CODE |
| MEDIUM⚡ | .apm/agents/agentic-workflows.agent.md | 75 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/debug-agentic-workflow.md | CODE |
| MEDIUM⚡ | .apm/agents/agentic-workflows.agent.md | 85 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/upgrade-agentic-workflows.md | CODE |
| MEDIUM | .apm/agents/agentic-workflows.agent.md | 105 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-shared-agentic-workflow.md | CODE |
| MEDIUM | .apm/agents/agentic-workflows.agent.md | 144 | # Initialize repository for agentic workflows | COMMENT |
| MEDIUM | .apm/agents/agentic-workflows.agent.md | 172 | - Always reference the instructions file at https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflow | CODE |
| MEDIUM | tests/unit/test_plugin_exporter_schema.py | 26 | # don't duplicate the apm.yml + lockfile + .apm/ scaffolding. | COMMENT |
| MEDIUM | tests/unit/install/test_architecture_invariants.py | 150 | PR #999 (Ruff guardrails) raised 1980 -> 2100 for noqa directives | STRING |
| MEDIUM⚡ | tests/unit/install/test_lsp_integration.py | 47 | # Basic orchestration | COMMENT |
| MEDIUM⚡ | tests/unit/marketplace/test_init_template.py | 83 | # render_marketplace_block (apm.yml marketplace: block scaffold) | COMMENT |
| MEDIUM⚡ | tests/unit/registry/test_resolver_e2e_http.py | 39 | # Test HTTP server scaffolding | COMMENT |
| MEDIUM | tests/unit/commands/test_marketplace_init.py | 74 | # Single collapsed success line for scaffold-and-inject path. | COMMENT |
| MEDIUM | …s/integration/test_install_compile_claude_dedup_e2e.py | 122 | # CLAUDE.md to keep Claude's context window lean. | STRING |
| MEDIUM⚡ | tests/integration/test_marketplace_adapters_coverage.py | 292 | # 2. marketplace/audit.py -- pure classification + orchestration | COMMENT |
| MEDIUM⚡ | tests/integration/test_golden_scenario_e2e.py | 338 | # Step 6: Execute agentic workflows (equivalent to: apm run start --param name="<YourGitHubHandle>") | STRING |
| MEDIUM | tests/integration/test_golden_scenario_e2e.py | 16 | # 5. Install MCP dependencies and execute agentic workflows (*.prompt.md files) | STRING |
| MEDIUM⚡ | .agents/skills/apm-issue-autopilot/scripts/run_evals.py | 249 | # orchestration | COMMENT |
| MEDIUM⚡ | …gents/skills/pr-description-skill/scripts/run_evals.py | 244 | # orchestration | COMMENT |
| MEDIUM⚡ | .agents/skills/batch-bug-shepherd/scripts/run_evals.py | 249 | # orchestration | COMMENT |
| MEDIUM | docs/src/content/docs/enterprise/lifecycle-scripts.md | 307 | apm lifecycle init # scaffold lifecycle: block in apm.yml | CODE |
| MEDIUM | …src/content/docs/integrations/runtime-compatibility.md | 19 | | [**Google Gemini CLI**](https://github.com/google-gemini/gemini-cli) | Google's Gemini CLI | Gemini models, sandboxed | CODE |
| MEDIUM | scripts/test-release-validation.sh | 291 | # surface Copilot reads directly). Validate that compiled guardrails | COMMENT |
| MEDIUM⚡ | …t/.apm/skills/apm-issue-autopilot/scripts/run_evals.py | 249 | # orchestration | COMMENT |
| MEDIUM⚡ | packages/pr-description-skill/scripts/run_evals.py | 244 | # orchestration | COMMENT |
| MEDIUM⚡ | …rd/.apm/skills/batch-bug-shepherd/scripts/run_evals.py | 249 | # orchestration | COMMENT |
| MEDIUM | .github/workflows/triage-panel.md | 34 | # ~24h agentic latency is a strict improvement and matches OSS | COMMENT |
| MEDIUM | .github/workflows/triage-panel.lock.yml | 26 | # Auto-invoke the apm-triage-panel skill on a daily sweep of untriaged issues plus an opt-in fast path for explicit re-t | COMMENT |
| MEDIUM | .github/workflows/agentics-maintenance.yml | 24 | # This file defines the generated agentic maintenance workflow for this repository. | COMMENT |
| MEDIUM | .github/workflows/shared/apm.md | 3 | # Install Microsoft APM packages in your agentic workflow. | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 33 | - Configuration: https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflows.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 55 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 65 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/update-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 75 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/debug-agentic-workflow.md | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.agent.md | 85 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/upgrade-agentic-workflows.md | CODE |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 105 | **Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-shared-agentic-workflow.md | CODE |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 144 | # Initialize repository for agentic workflows | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.agent.md | 172 | - Always reference the instructions file at https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflow | CODE |
| MEDIUM | src/apm_cli/integration/targets.py | 666 | # Antigravity CLI (agy) -- Google's Gemini-derived agentic CLI. | COMMENT |
| MEDIUM⚡ | src/apm_cli/marketplace/audit.py | 212 | # Fetchers and orchestration | COMMENT |
| MEDIUM | src/apm_cli/deps/github_downloader.py | 239 | # Artifactory orchestration is encapsulated in a dedicated facade | COMMENT |
| MEDIUM⚡ | src/apm_cli/deps/artifactory_orchestrator.py | 135 | # Download orchestration | COMMENT |
| MEDIUM | src/apm_cli/commands/_helpers.py | 686 | # Issue #887: scaffold with explicit consent for local content | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …docs_src_content_docs_reference_cli_install_md_c7.json | 1 | {"claim_id":"c7","claim_text":"--target accepts: copilot, claude, cursor, opencode, codex, gemini, windsurf, agent-skill | CODE |
| MEDIUM⚡ | tests/unit/test_install_command.py | 778 | # v2 target resolution requires a harness signal (#1154). | COMMENT |
| MEDIUM | tests/unit/test_install_command.py | 838 | # v2 target resolution requires a harness signal (#1154). | COMMENT |
| MEDIUM⚡ | tests/unit/test_view_command.py | 727 | # More robust: "info" should not be in the commands listing | COMMENT |
| LOW⚡ | tests/unit/test_registry_operations_state.py | 202 | # Should not raise, just return empty | COMMENT |
| LOW⚡ | tests/unit/test_registry_operations_phase3.py | 202 | # Should not raise, just return empty | COMMENT |
| MEDIUM⚡ | tests/unit/test_generic_git_urls.py | 708 | """Dict format remains the robust choice for ambiguous nested + virtual. | STRING |
| MEDIUM | tests/unit/core/test_error_renderer.py | 13 | # (a) "what APM saw" headline (e.g. 'no harness detected', 'multiple | STRING |
| MEDIUM⚡ | tests/unit/integration/test_copilot_app_ws.py | 27 | # Server harness | COMMENT |
| LOW | tests/unit/deps/test_apm_resolver_parallel.py | 57 | # All packages are pre-laid-out; just return the install path. | COMMENT |
| MEDIUM | tests/unit/deps/test_shared_clone_cache.py | 195 | # New paradigm: SharedCloneCache holds bare clones; consumers | COMMENT |
| MEDIUM | tests/unit/compilation/test_context_optimizer.py | 528 | # With coverage-first optimization, efficiency comparison is more nuanced | COMMENT |
| LOW⚡ | tests/integration/test_integrators_validation_rules.py | 1344 | # Should not raise, just return silently | COMMENT |
| MEDIUM | tests/integration/test_plugin_skill_subset_pack_e2e.py | 314 | # so the assertion is robust against terminal-width line breaks. | COMMENT |
| LOW⚡ | …sts/integration/test_integrators_validation_phase3b.py | 1344 | # Should not raise, just return silently | COMMENT |
| MEDIUM⚡ | tests/integration/test_integrators_phase3.py | 1419 | # Without any harness signals, gate fails closed → empty list | COMMENT |
| LOW⚡ | tests/integration/test_copilot_app_targets_coverage.py | 774 | # some form of user support. Use an unknown name: should just return []. | COMMENT |
| MEDIUM | tests/integration/test_global_scope_e2e.py | 55 | # Mark the home dir as a copilot harness so install --global passes | COMMENT |
| MEDIUM | tests/integration/test_install_root_redirect_e2e.py | 72 | # integrated harness file all live in ``deploy``. | COMMENT |
| MEDIUM | tests/integration/test_selective_install_mcp.py | 129 | # Mark project as a copilot harness so target detection succeeds | COMMENT |
| MEDIUM⚡ | tests/integration/test_integrators_end_to_end.py | 1419 | # Without any harness signals, gate fails closed → empty list | COMMENT |
| MEDIUM | tests/integration/test_target_resolution_e2e.py | 15 | # - Exit code 2 for every target-resolution user error (no harness, | STRING |
| MEDIUM | tests/integration/test_compilation_coverage.py | 512 | # Create comprehensive .apm structure | COMMENT |
| MEDIUM⚡ | tests/red_team/parser/test_toplevel_shape.py | 41 | # Top-levels that already degrade safely (control group -- must stay robust). | COMMENT |
| MEDIUM | …docs_src_content_docs_reference_cli_install_md_c7.json | 1 | {"claim_id":"c7","claim_text":"--target accepts: copilot, claude, cursor, opencode, codex, gemini, windsurf, agent-skill | CODE |
| MEDIUM | docs/package-lock.json | 6780 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | scripts/test-dependency-integration.sh | 4 | # Used in CI pipeline for comprehensive dependency validation | COMMENT |
| MEDIUM | src/apm_cli/core/script_runner.py | 291 | # More robust approach: split by runtime commands to separate env vars from command | COMMENT |
| MEDIUM | src/apm_cli/core/errors.py | 87 | " apm install <pkg> --target claude # deploy to a specific harness\n" | CODE |
| MEDIUM | src/apm_cli/integration/mcp_integrator.py | 307 | # Pass through harness-specific extra keys for adapters to merge | COMMENT |
| MEDIUM | src/apm_cli/integration/mcp_integrator.py | 372 | # Pass through harness-specific extra keys for adapters to merge | COMMENT |
| MEDIUM | src/apm_cli/marketplace/resolver.py | 358 | # too, so the guard is robust even if a future upstream refactor lets | COMMENT |
| MEDIUM | src/apm_cli/runtime/manager.py | 170 | # Set up comprehensive GitHub token environment for all runtimes | COMMENT |
| LOW | src/apm_cli/primitives/models.py | 201 | # No conflict, just add the primitive | COMMENT |
| MEDIUM | src/apm_cli/adapters/client/copilot.py | 422 | # so secrets are not baked into the persisted config when the harness | COMMENT |
| MEDIUM⚡ | src/apm_cli/adapters/client/base.py | 32 | # Config keys that ``_extra`` passthrough must NEVER set on a rendered harness | COMMENT |
| MEDIUM⚡ | src/apm_cli/adapters/client/base.py | 34 | # plus harness-specific aliases that mirror a modeled field under a different | COMMENT |
| MEDIUM | src/apm_cli/deps/host_backends.py | 211 | # is safe and makes URL construction robust against partially | COMMENT |
| LOW | src/apm_cli/deps/dependency_graph.py | 149 | # If this is the first occurrence, just add it | COMMENT |
| MEDIUM⚡ | src/apm_cli/commands/targets.py | 61 | # agent-skills is a meta-target (multi-harness fan-out), not a | COMMENT |
| MEDIUM⚡ | src/apm_cli/commands/targets.py | 62 | # harness in itself. Excluded from the apm targets table; visible | COMMENT |
| MEDIUM⚡ | src/apm_cli/commands/targets.py | 66 | # On ambiguous-harness, show all detected signals (the user ran | COMMENT |
| MEDIUM⚡ | src/apm_cli/commands/targets.py | 68 | # On no-harness error, report empty active list. | COMMENT |
| MEDIUM | src/apm_cli/compilation/context_optimizer.py | 361 | """Generate comprehensive compilation results for output formatting. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_audit_policy_command.py | 33 | def _setup_clean_project(project: Path) -> None: | CODE |
| LOW | tests/unit/test_audit_ci_auto_discovery.py | 41 | def _setup_project_with_unmanaged_file(project: Path) -> None: | CODE |
| LOW | tests/unit/test_audit_ci_command.py | 32 | def _setup_clean_project(project: Path) -> None: | CODE |
| LOW | tests/unit/test_audit_ci_command.py | 63 | def _setup_failing_project(project: Path) -> None: | STRING |
| LOW | tests/unit/integration/test_skill_integrator.py | 31 | def _setup_agents_orphan_cleanup(project_root: Path, skill_names: list[str]) -> None: | CODE |
| LOW | tests/unit/integration/test_scope_install_uninstall.py | 28 | def _set_home(monkeypatch, home: Path) -> None: | CODE |
| LOW | tests/unit/integration/test_scope_integration.py | 25 | def _set_home(monkeypatch, home: Path) -> None: | CODE |
| LOW⚡ | tests/unit/deps/test_download_strategies_phase3.py | 1141 | def _setup_host_info(self, host_mock: MagicMock) -> None: | CODE |
| LOW⚡ | tests/unit/deps/test_download_strategies_selection.py | 988 | def _setup_host_info(self, host_mock: MagicMock) -> None: | CODE |
| LOW | tests/unit/compilation/test_compile_cli_surface.py | 597 | def _setup_project_dir(self) -> None: | CODE |
| LOW | tests/unit/compilation/test_compile_cli_phase3.py | 600 | def _setup_project_dir(self) -> None: | CODE |
| LOW | tests/integration/test_remaining_modules_phase3.py | 1643 | def _setup_project(self, root: Path) -> None: | CODE |
| LOW | tests/integration/test_audit_silent_skip_e2e.py | 64 | def _setup_clean_project(project: Path, *, fetch_failure_default: str | None = None) -> None: | CODE |
| LOW | tests/integration/release_homebrew_update_harness.py | 44 | def update_tap(workflow_path: Path, release_path: Path, tap_repo: Path) -> None: | CODE |
| LOW | tests/integration/test_remaining_modules_coverage.py | 1643 | def _setup_project(self, root: Path) -> None: | CODE |
| LOW⚡ | src/apm_cli/config.py | 311 | def set_allow_protocol_fallback(enabled: bool) -> None: | CODE |
| LOW⚡ | src/apm_cli/config.py | 436 | def set_copilot_cowork_skills_dir(path: str) -> None: | CODE |
| LOW | src/apm_cli/config.py | 110 | def set_auto_integrate(enabled: bool) -> None: | CODE |
| LOW | src/apm_cli/config.py | 128 | def set_temp_dir(path: str) -> None: | CODE |
| LOW | src/apm_cli/config.py | 329 | def set_prefer_ssh(enabled: bool) -> None: | CODE |
| LOW | src/apm_cli/config.py | 478 | def set_registry_url(name: str, url: str) -> None: | CODE |
| LOW | src/apm_cli/config.py | 487 | def set_registry_token(name: str, token: str) -> None: | CODE |
| LOW | src/apm_cli/config.py | 541 | def set_registry_default(name: str, is_default: bool) -> None: | CODE |
| LOW | src/apm_cli/config.py | 617 | def set_audit_on_install(mode: str) -> None: | CODE |
| LOW | src/apm_cli/config.py | 673 | def set_scanner_llm(name: str, llm: bool) -> None: | CODE |
| LOW | src/apm_cli/config.py | 682 | def set_scanner_args(name: str, args: "list[str]") -> None: | CODE |
| LOW | src/apm_cli/config.py | 794 | def set_mcp_registry_url(url: str) -> None: | CODE |
| LOW | src/apm_cli/install/plan.py | 465 | __all__ = [ | CODE |
| LOW⚡ | src/apm_cli/install/cache_pin.py | 232 | __all__ = [ | CODE |
| LOW | src/apm_cli/install/lsp/__init__.py | 5 | __all__ = ["run_lsp_integration"] | CODE |
| LOW | src/apm_cli/install/mcp/ownership.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/install/mcp/__init__.py | 23 | __all__ = ["run_mcp_integration"] | CODE |
| LOW | src/apm_cli/install/heals/__init__.py | 27 | __all__ = [ | CODE |
| LOW⚡ | src/apm_cli/install/phases/resolve.py | 282 | def _setup_downloader(ctx: InstallContext) -> None: | CODE |
| LOW⚡ | src/apm_cli/install/phases/policy_gate.py | 29 | __all__ = ["PolicyViolationError", "run"] | CODE |
| LOW⚡ | src/apm_cli/core/auth.py | 57 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/core/auth.py | 237 | def set_logger(self, logger: object) -> None: | CODE |
| LOW | src/apm_cli/core/token_manager.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/core/tls_trust.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/core/__init__.py | 5 | __all__ = ["AuthContext", "AuthResolver", "HostInfo"] | CODE |
| LOW | src/apm_cli/core/scope.py | 76 | def set_source_root_override(path: Path | None) -> None: | CODE |
| LOW | src/apm_cli/cache/__init__.py | 16 | __all__ = ["GitCache", "HttpCache", "get_cache_root"] | CODE |
| LOW | src/apm_cli/security/__init__.py | 20 | __all__ = [ | CODE |
| LOW | src/apm_cli/security/external/__init__.py | 27 | __all__ = ["ExternalScanError", "ExternalScanner"] | CODE |
| LOW | src/apm_cli/integration/command_integrator.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/integration/__init__.py | 32 | __all__ = [ | CODE |
| LOW⚡ | src/apm_cli/integration/prompt_integrator.py | 369 | __all__ = [ | CODE |
| LOW | src/apm_cli/marketplace/tag_pattern.py | 20 | __all__ = [ | CODE |
| LOW⚡ | src/apm_cli/marketplace/semver.py | 24 | __all__ = [ | CODE |
| LOW | src/apm_cli/marketplace/audit.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/models.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/_io.py | 8 | __all__ = ["atomic_write"] | CODE |
| LOW | src/apm_cli/marketplace/registry.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/client.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/version_resolver.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/__init__.py | 45 | __all__ = [ | CODE |
| LOW⚡ | src/apm_cli/marketplace/builder.py | 91 | __all__ = [ | CODE |
| LOW | src/apm_cli/marketplace/builder.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/shadow_detector.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/apm_cli/marketplace/yml_schema.py | 46 | __all__ = [ | CODE |
| 52 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 128 | # Step 1: install pinned to an older commit SHA. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 142 | # Step 2: bump apm.yml to point at main. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 145 | # Step 3: run `apm deps update` with no positional args. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 151 | # Step 4: lockfile SHA must differ from old. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 161 | # Step 5: deployed files must still exist (re-integrated). | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 276 | # Step 2: bump the user manifest to main. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 279 | # Step 3: run `apm deps update -g` from a directory with no project. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 285 | # Step 4: ~/.apm/apm.lock.yaml must reflect the new SHA. | COMMENT |
| LOW⚡ | tests/integration/test_deps_update_e2e.py | 295 | # Step 5: scope was respected -- no project lockfile in cwd. | COMMENT |
| LOW | tests/integration/test_deps_update_e2e.py | 264 | # Step 1: install -g to populate ~/.apm/apm.lock.yaml. | COMMENT |
| LOW⚡ | tests/integration/test_producer_journey.py | 101 | # Step 1: consumer init | COMMENT |
| LOW⚡ | tests/integration/test_producer_journey.py | 106 | # Step 2: bolt on a marketplace | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 193 | # Step 1: Setup Copilot runtime (equivalent to: apm runtime setup copilot) | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 225 | # Step 2: Initialize project (equivalent to: apm init my-ai-native-project) | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 595 | # Step 1: Setup LLM runtime (equivalent to: apm runtime setup llm) | COMMENT |
| LOW | tests/integration/test_golden_scenario_e2e.py | 611 | # Step 2: Use existing project or create new one | COMMENT |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 338 | # Step 6: Execute agentic workflows (equivalent to: apm run start --param name="<YourGitHubHandle>") | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 439 | # Step 1: Setup Codex runtime | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 518 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 523 | # Step 4: Install dependencies | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 669 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 674 | # Step 4: Install dependencies | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 743 | # Step 1: Setup Gemini runtime (npm install -g @google/gemini-cli) | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 827 | # Step 3: Compile Agent Primitives | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 832 | # Step 4: Install dependencies (targets gemini since .gemini/ exists) | STRING |
| LOW⚡ | tests/integration/test_golden_scenario_e2e.py | 840 | # Step 5: Run with Gemini CLI | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 308 | # Step 4: Compile Agent Primitives for any coding agent (equivalent to: apm compile) | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 322 | # Step 5: Install MCP dependencies (equivalent to: apm install) | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 460 | # Step 2: Use existing project or create new one | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 534 | # Step 5: Run with Codex CLI (equivalent to: apm run debug --param name="<YourGitHubHandle>") | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 685 | # Step 5: Run with LLM runtime (equivalent to: apm run llm --param name="<YourGitHubHandle>") | STRING |
| LOW | tests/integration/test_golden_scenario_e2e.py | 768 | # Step 2: Create test project | STRING |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 126 | # Step 1: apm init my-project | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 141 | # Step 2: apm install microsoft/apm-sample-package | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 159 | # Step 3: apm install github/awesome-copilot/instructions/code-review-generic.instructions.md | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 185 | # Step 4: apm compile | COMMENT |
| LOW | tests/integration/test_guardrailing_hero_e2e.py | 223 | # Step 5: apm run design-review | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 826 | # Step 1: Legacy install so the lockfile records .github/skills/. | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 833 | # Step 2: Hand-edit the legacy file so its content diverges from what | COMMENT |
| LOW⚡ | tests/integration/test_agent_skills_target.py | 837 | # Step 3: Converged install — integrate writes the canonical content | COMMENT |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 238 | # Step 1: Set up Codex runtime | COMMENT |
| LOW⚡ | tests/integration/test_mcp_registry_e2e.py | 247 | # Step 2: Create test project with MCP dependencies | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 291 | # Step 3: Test installation with environment variable prompting | COMMENT |
| LOW | tests/integration/test_mcp_registry_e2e.py | 307 | # Step 4: Verify Codex configuration was updated | COMMENT |
| LOW | scripts/test-release-validation.sh | 221 | # Step 1: apm init my-project | COMMENT |
| LOW | scripts/test-release-validation.sh | 243 | # Step 2: apm install microsoft/apm-sample-package | COMMENT |
| LOW | scripts/test-release-validation.sh | 259 | # Step 3: apm install github/awesome-copilot/skills/review-and-refactor | COMMENT |
| LOW | scripts/test-release-validation.sh | 275 | # Step 4: apm compile | COMMENT |
| LOW | scripts/test-release-validation.sh | 303 | # Step 5: apm run design-review (from installed package) | COMMENT |
| LOW | src/apm_cli/cache/url_normalize.py | 65 | # Step 2: Convert SCP-like to ssh:// form | COMMENT |
| LOW⚡ | src/apm_cli/cache/url_normalize.py | 103 | # Step 5: Strip default ports | COMMENT |
| LOW⚡ | src/apm_cli/cache/url_normalize.py | 111 | # Step 1: Strip trailing .git from path | COMMENT |
| LOW⚡ | src/apm_cli/integration/mcp_integrator_install.py | 384 | # Step 1: Get all installed runtimes on the system | COMMENT |
| LOW⚡ | src/apm_cli/integration/mcp_integrator_install.py | 387 | # Step 2: Get runtimes referenced in apm.yml scripts | COMMENT |
| LOW⚡ | src/apm_cli/integration/mcp_integrator_install.py | 392 | # Step 3: Target runtimes BOTH installed AND referenced in scripts | COMMENT |
| LOW⚡ | src/apm_cli/deps/bare_cache.py | 440 | # Step 1: check first -- no network if SHA already present. | COMMENT |
| LOW⚡ | src/apm_cli/deps/bare_cache.py | 447 | # Step 2: shallow fetch by full SHA (only for full 40-char SHAs). | COMMENT |
| LOW⚡ | src/apm_cli/deps/bare_cache.py | 489 | # Step 3: broaden shallow -- fetch all refs without a SHA argument. | COMMENT |
| LOW⚡ | src/apm_cli/commands/uninstall/cli.py | 145 | # Step 2: Dry run | COMMENT |
| LOW⚡ | src/apm_cli/commands/uninstall/cli.py | 151 | # Step 3: Remove from apm.yml | COMMENT |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_env_variables.py | 59 | {"description": "YOUR_API_KEY", "name": "AGENTQL_API_KEY"} | CODE |
| HIGH | tests/unit/test_runtime_args.py | 35 | "value_hint": "<YOUR_API_KEY>", | CODE |
| HIGH | tests/unit/test_runtime_args.py | 35 | "value_hint": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 58 | self.assertEqual(server_config["args"][2], "<YOUR_API_KEY>") | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 58 | self.assertEqual(server_config["args"][2], "<YOUR_API_KEY>") | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 86 | "value": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 86 | "value": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 87 | "default": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 87 | "default": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 89 | "value_hint": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 89 | "value_hint": "<YOUR_API_KEY>", | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 122 | self.assertEqual(server_config["args"][2], "<YOUR_API_KEY>") | CODE |
| HIGH⚡ | tests/unit/test_runtime_args.py | 122 | self.assertEqual(server_config["args"][2], "<YOUR_API_KEY>") | CODE |
| HIGH | …src/content/docs/integrations/runtime-compatibility.md | 146 | export GOOGLE_API_KEY=your_api_key | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_lockfile.py | 358 | """Lockfiles with mcp_configs: (null) should get an empty dict, not raise TypeError.""" | STRING |
| HIGH⚡ | tests/unit/test_ado_path_structure.py | 594 | # Must use path_parts[0], not org_name (which was undefined) | COMMENT |
| HIGH⚡ | tests/unit/test_runtime_detection.py | 42 | "dev": "npm run build && copilot -p prompt.md", | CODE |
| HIGH⚡ | tests/unit/test_runtime_detection.py | 43 | "ai": "export MODEL=gpt-4 && llm prompt.md", | CODE |
| HIGH | tests/unit/test_windows_installer_launchers.py | 39 | assert "command -v apm && apm --version" in test_script | CODE |
| HIGH | tests/unit/test_transport_selection.py | 360 | The downloader's locked-down git_env sets GIT_CONFIG_GLOBAL=/dev/null, | STRING |
| HIGH⚡ | tests/unit/install/test_mcp_warnings.py | 245 | warn_shell_metachars({"RUN": "true && bad"}, logger) | CODE |
| HIGH⚡ | tests/unit/install/test_mcp_warnings.py | 250 | warn_shell_metachars({"FALLBACK": "a || b"}, logger) | CODE |
| HIGH⚡ | tests/integration/test_golden_scenario_e2e.py | 188 | 4. cd my-ai-native-project && apm compile | STRING |
| HIGH | tests/integration/test_guardrailing_hero_e2e.py | 5 | 1. apm init my-project && cd my-project | STRING |
| HIGH | src/apm_cli/install/validation.py | 438 | # (GIT_CONFIG_GLOBAL=/dev/null, GIT_CONFIG_NOSYSTEM=1) is only | COMMENT |
| HIGH | src/apm_cli/marketplace/builder.py | 228 | unchanged, skipped}]}, bundle: null} | STRING |
| HIGH | src/apm_cli/deps/bare_cache.py | 141 | - Tier 1 (SHA refs): ``git init --bare && git remote add | STRING |
| HIGH | src/apm_cli/commands/pack.py | 556 | logger.info(f" apm pack && git add -- {out_path}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/unit/test_plugin_parser.py | 21 | from apm_cli.utils.helpers import find_plugin_json | CODE |
| CRITICAL | tests/unit/install/phases/test_finalize_user_compile.py | 90 | assert ctx.logger.info.call_args.kwargs.get("symbol") == "info" | CODE |
| CRITICAL⚡ | tests/integration/test_plugin_e2e.py | 31 | from apm_cli.utils.helpers import find_plugin_json | CODE |
| CRITICAL | src/apm_cli/install/validation.py | 190 | from apm_cli.utils.helpers import find_plugin_json | CODE |
| CRITICAL | src/apm_cli/install/validation.py | 242 | from apm_cli.utils.helpers import find_plugin_json | CODE |
| CRITICAL | src/apm_cli/install/phases/local_content.py | 254 | from apm_cli.utils.helpers import find_plugin_json | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 13 | {name = "Daniel Meppiel", email = "user@example.com"} | CODE |
| LOW | tests/test_codex_empty_string_and_defaults.py | 254 | "LITERAL_EMAIL": "user@example.com", | CODE |
| LOW | tests/test_codex_empty_string_and_defaults.py | 273 | assert env_block["LITERAL_EMAIL"] == "user@example.com" | CODE |
| LOW | tests/unit/test_gemini_mcp.py | 407 | "LITERAL_EMAIL": "user@example.com", | CODE |
| LOW | tests/unit/test_gemini_mcp.py | 425 | self.assertEqual(env_block["LITERAL_EMAIL"], "user@example.com") | CODE |
| LOW⚡ | tests/unit/test_plugin_parser.py | 489 | "author": {"name": "Foo Bar", "email": "foo@bar.com"}, | CODE |
| LOW | tests/unit/test_cursor_mcp.py | 381 | "LITERAL_EMAIL": "user@example.com", | CODE |
| LOW | tests/unit/test_cursor_mcp.py | 399 | self.assertEqual(env_block["LITERAL_EMAIL"], "user@example.com") | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 32 | "author": "Jane Doe", | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 42 | assert result["author"] == {"name": "Jane Doe"} | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 248 | "name": "Jane Doe", | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 258 | "name": "Jane Doe", | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 267 | {"name": "test", "version": "1.0.0", "author": {"name": "Jane Doe"}}, | CODE |
| LOW⚡ | tests/unit/test_plugin_synthesis.py | 272 | assert result["author"] == {"name": "Jane Doe"} | CODE |
| LOW | tests/unit/test_plugin_synthesis.py | 162 | "author": "Acme Corp", | CODE |
| LOW⚡ | tests/unit/test_plugin_exporter_schema.py | 100 | "name": "Acme Inc", | CODE |
| LOW⚡ | tests/unit/core/test_plugin_manifest.py | 138 | apm = _minimal_apm_yml(tmp_path, author="Jane Doe") | CODE |
| LOW⚡ | tests/unit/core/test_plugin_manifest.py | 143 | assert manifest["author"] == {"name": "Jane Doe"} | CODE |
| LOW | tests/unit/marketplace/test_yml_schema.py | 94 | assert result.owner.name == "Acme Corp" | CODE |
| LOW⚡ | tests/unit/marketplace/test_marketplace_models.py | 345 | data = {"name": "Test", "owner": "John Doe", "plugins": []} | CODE |
| LOW⚡ | tests/unit/marketplace/test_marketplace_models.py | 347 | assert manifest.owner_name == "John Doe" | CODE |
| LOW | tests/unit/compilation/test_link_resolver.py | 743 | (compiled_dir / "AGENTS.md").write_text("placeholder", encoding="utf-8") | CODE |
| LOW | tests/unit/compilation/test_link_resolver.py | 777 | source_file.write_text("placeholder", encoding="utf-8") | CODE |
| LOW | tests/unit/compilation/test_link_resolver.py | 806 | source_file.write_text("placeholder", encoding="utf-8") | CODE |
| LOW | tests/unit/compilation/test_link_resolver.py | 830 | source_file.write_text("placeholder", encoding="utf-8") | CODE |
| LOW⚡ | tests/integration/test_yml_schema_validation.py | 87 | assert _parse_author(" Jane Doe ", 1) == {"name": "Jane Doe"} | STRING |
| LOW | tests/integration/test_bare_cache_integration.py | 51 | _git(src, "config", "user.email", "test@test.com") | CODE |
| LOW | tests/integration/test_bare_cache_integration.py | 124 | _git(src, "config", "user.email", "test@test.com") | CODE |
| LOW | tests/integration/test_compile_permission_denied.py | 22 | agents.write_text("placeholder", encoding="utf-8") | CODE |
| LOW⚡ | tests/integration/test_yml_schema_phase3w5.py | 87 | assert _parse_author(" Jane Doe ", 1) == {"name": "Jane Doe"} | STRING |
| LOW⚡ | tests/integration/test_remaining_modules_phase3.py | 408 | assert cfg.packages[0].author == {"name": "Jane Doe"} | CODE |
| LOW | tests/integration/test_remaining_modules_phase3.py | 427 | "name": "Jane Doe", | CODE |
| LOW | tests/integration/test_remaining_modules_phase3.py | 482 | with pytest.raises(MarketplaceYmlError, match="placeholder"): | CODE |
| LOW⚡ | tests/integration/test_remaining_modules_phase3.py | 404 | author: "Jane Doe" | STRING |
| LOW⚡ | tests/integration/test_remaining_modules_coverage.py | 408 | assert cfg.packages[0].author == {"name": "Jane Doe"} | CODE |
| LOW | tests/integration/test_remaining_modules_coverage.py | 427 | "name": "Jane Doe", | CODE |
| LOW | tests/integration/test_remaining_modules_coverage.py | 482 | with pytest.raises(MarketplaceYmlError, match="placeholder"): | CODE |
| LOW⚡ | tests/integration/test_remaining_modules_coverage.py | 404 | author: "Jane Doe" | STRING |
| LOW | tests/integration/test_integrators_hooks_phase3c.py | 294 | mock_auth.resolve_for_dep.return_value = MagicMock(token="fake-token") | CODE |
| LOW | tests/integration/test_integrators_hooks_execution.py | 294 | mock_auth.resolve_for_dep.return_value = MagicMock(token="fake-token") | CODE |
| LOW | docs/src/content/docs/producer/pack-a-bundle.md | 77 | The `author` field accepts a plain string (`"Jane Doe"` maps to `{name: "Jane Doe"}`) or a | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_mcp_integrator_overlay.py | 56 | CODE | |
| LOW | tests/unit/test_outdated_phase3w5.py | 28 | CODE | |
| LOW | tests/unit/test_output_formatters_phase3.py | 124 | CODE | |
| LOW | tests/unit/test_output_formatters_rendering.py | 124 | CODE | |
| LOW | tests/unit/test_plugin_exporter.py | 102 | CODE | |
| LOW | tests/unit/test_mcp_integrator_phase3w4.py | 56 | CODE | |
| LOW | tests/unit/test_outdated_marketplace_detection.py | 28 | CODE | |
| LOW | tests/unit/install/test_sources_phase3.py | 53 | CODE | |
| LOW | tests/unit/install/test_sources_materialisation.py | 53 | CODE | |
| LOW | tests/unit/integration/test_skill_integrator.py | 329 | CODE | |
| LOW | tests/unit/integration/test_skill_integrator.py | 1006 | CODE | |
| LOW | tests/unit/marketplace/test_builder_json.py | 19 | CODE | |
| LOW | tests/unit/deps/test_download_strategies_phase3.py | 89 | CODE | |
| LOW | tests/unit/deps/test_download_strategies_selection.py | 92 | CODE | |
| LOW | tests/unit/commands/test_deps_cli_phase3w4.py | 47 | CODE | |
| LOW | tests/unit/commands/test_deps_cli_branch_coverage.py | 47 | CODE | |
| LOW | tests/integration/test_ado_e2e.py | 48 | CODE | |
| LOW | …sts/integration/test_install_services_orchestration.py | 118 | CODE | |
| LOW | tests/integration/test_install_services_phase3w5.py | 118 | CODE | |
| LOW | tests/integration/test_deps_resolver_phase3b.py | 35 | CODE | |
| LOW | tests/integration/test_download_strategies_selection.py | 19 | CODE | |
| LOW | tests/integration/test_mcp_integrator_phase3w5.py | 13 | CODE | |
| LOW | tests/integration/test_deps_resolver_resolution.py | 35 | CODE | |
| LOW | …ts/integration/test_mcp_integrator_characterisation.py | 13 | CODE | |
| LOW | tests/integration/test_wave4_pure_logic_coverage.py | 59 | CODE | |
| LOW | tests/integration/test_wave5_e2e_coverage.py | 29 | CODE | |
| LOW | tests/integration/test_download_strategies_phase3w5.py | 17 | CODE | |
| LOW | tests/integration/test_download_copilot_end_to_end.py | 96 | CODE | |
| LOW | tests/integration/test_download_copilot_phase3.py | 96 | CODE | |
| LOW | src/apm_cli/install/services.py | 189 | CODE | |
| LOW | src/apm_cli/install/pipeline.py | 444 | CODE | |
| LOW | src/apm_cli/install/mcp/integration.py | 15 | CODE | |
| LOW | src/apm_cli/core/target_catalog.py | 30 | CODE | |
| LOW | src/apm_cli/integration/skill_transformer.py | 34 | CODE | |
| LOW | src/apm_cli/integration/lsp_integrator.py | 218 | CODE | |
| LOW | src/apm_cli/integration/mcp_integrator_install.py | 648 | CODE | |
| LOW | src/apm_cli/integration/mcp_integrator.py | 1161 | CODE | |
| LOW | src/apm_cli/integration/skill_integrator.py | 633 | CODE | |
| LOW | src/apm_cli/integration/skill_integrator.py | 1258 | CODE | |
| LOW | src/apm_cli/marketplace/tag_pattern.py | 68 | CODE | |
| LOW | src/apm_cli/marketplace/ref_resolver.py | 153 | CODE | |
| LOW | src/apm_cli/models/dependency/identity.py | 65 | CODE | |
| LOW | src/apm_cli/commands/install.py | 578 | CODE | |
| LOW | src/apm_cli/commands/install.py | 1981 | CODE | |
| LOW | src/apm_cli/policy/policy_checks.py | 1098 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/integration/test_git_cache_phase3w5.py | 853 | CODE | |
| MEDIUM | tests/integration/test_git_cache_hermetic.py | 853 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/docs-corpus-audit/scripts/scan-cross-corpus-drift.sh | 13 | # Usage: | COMMENT |
| LOW | …s/docs-corpus-audit/scripts/scan-cross-corpus-drift.sh | 13 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/apm_cli/core/experimental.py | 12 | def my_function(): | STRING |