SUMD - Structured Unified Markdown Descriptor for AI-aware project refactorization
- Metadata
- Architecture
- Workflows
- Quality Pipeline (
pyqual.yaml) - Dependencies
- Source Map
- Call Graph
- Test Contracts
- Refactoring Analysis
- Intent
- name:
redeploy - version:
0.2.77 - python_requires:
>=3.11 - license: Apache-2.0
- ai_model:
openrouter/qwen/qwen3-coder-next - ecosystem: SUMD + DOQL + testql + taskfile
- generated_from: pyproject.toml, Makefile, testql(2), app.doql.less, pyqual.yaml, goal.yaml, .env.example, src(13 mod), project/(6 analysis files)
SUMD (description) → DOQL/source (code) → taskfile (automation) → testql (verification)
// LESS format — define @variables here as needed
// Generated by sumd for redeploy
app {
name: redeploy;
version: 0.2.77;
}
interface[type="cli"] {
framework: click;
}
workflow[name="install"] {
trigger: manual;
step-1: run cmd=pip install -e .;
}
workflow[name="dev"] {
trigger: manual;
step-1: run cmd=pip install -e ".[dev]";
}
workflow[name="build"] {
trigger: manual;
step-1: run cmd=python -m build;
}
workflow[name="test"] {
trigger: manual;
step-1: run cmd=pytest -q;
}
workflow[name="lint"] {
trigger: manual;
step-1: run cmd=ruff check .;
}
workflow[name="fmt"] {
trigger: manual;
step-1: run cmd=ruff format .;
}
workflow[name="clean"] {
trigger: manual;
step-1: run cmd=rm -rf build/ dist/ *.egg-info;
}
workflow[name="help"] {
trigger: manual;
step-1: run cmd=task --list;
}
deploy {
target: pip;
}
environment[name="local"] {
runtime: python;
}redeploy.cliredeploy.data_syncredeploy.fleetredeploy.healredeploy.mcp_serverredeploy.observeredeploy.parseredeploy.patternsredeploy.schemaredeploy.spec_loaderredeploy.sshredeploy.verifyredeploy.version
pipeline:
name: redeploy-quality
metrics:
cc_max: 15
critical_max: 80
stages:
- name: analyze
tool: code2llm-filtered
- name: validate
tool: vallm-filtered
- name: prefact
tool: prefact
optional: true
when: any_stage_fail
timeout: 900
- name: test
tool: pytest
timeout: 600
loop:
max_iterations: 3
on_fail: report
ticket_backends:
- markdown
env:
LLM_MODEL: openrouter/qwen/qwen3-coder-nextpydantic>=2.0
pyyaml>=6.0
markdown-it-py>=3.0
click>=8.0
loguru>=0.7
paramiko>=3.0
httpx>=0.25
rich>=13.0
jmespath>=1.0
goal>=2.1.0
costs>=0.1.20
pfix>=0.1.60
pytest>=8.0
ruff>=0.4
goal>=2.1.0
costs>=0.1.20
pfix>=0.1.60
Top 5 modules by symbol density — signatures for LLM orientation.
class AuditEntry: # Single audit log entry — immutable snapshot of one deploymen
def __init__(data) # CC=1
def ts() # CC=1
def host() # CC=1
def app() # CC=1
def from_strategy() # CC=1
def to_strategy() # CC=1
def ok() # CC=1
def elapsed_s() # CC=1
def steps_total() # CC=1
def steps_ok() # CC=1
def steps_failed() # CC=1
def pattern() # CC=1
def version() # CC=1
def dry_run() # CC=1
def steps() # CC=1
def error() # CC=1
def to_dict() # CC=1
def __repr__() # CC=2
class DeployAuditLog: # Persistent audit log — newline-delimited JSON at ``path``.
def __init__(path) # CC=1
def record(plan, completed_steps) # CC=11 ⚠
def _append(entry) # CC=1
def load(limit) # CC=5
def tail(n) # CC=1
def filter(host, app, ok, since) # CC=12 ⚠
def clear() # CC=2
class DeployReport: # Human-readable post-deploy report from an AuditEntry.
def __init__(entry) # CC=1
def text() # CC=8
def yaml() # CC=1
def summary_line() # CC=2class DeviceArch:
class Stage:
class DeviceExpectation: # Declarative assertions about required infrastructure on a de
class FleetDevice: # Generic device descriptor — superset of ``deploy``'s DeviceC
def ssh_user() # CC=2
def ssh_ip() # CC=2
def is_local() # CC=1
def is_prod() # CC=2
def has_tag(tag) # CC=1
def has_expectation(exp) # CC=1
def verify_expectations(state) # CC=25 ⚠
class FleetConfig: # Top-level fleet manifest — list of devices with stage / tag
def get_device(device_id) # CC=3
def by_tag(tag) # CC=3
def by_stage(stage) # CC=3
def by_strategy(strategy) # CC=3
def prod_devices() # CC=1
def from_file(cls, path, workspace_root) # CC=1
class Fleet: # Unified first-class fleet — wraps FleetConfig and/or DeviceR
def __init__(devices) # CC=1
def from_file(cls, path) # CC=1
def from_registry(cls, path) # CC=6
def from_config(cls, config) # CC=1
def devices() # CC=1
def get(device_id) # CC=3
def by_tag(tag) # CC=3
def by_stage(stage) # CC=3
def by_strategy(strategy) # CC=3
def prod() # CC=1
def reachable(within_seconds) # CC=5
def merge(other) # CC=3
def __len__() # CC=1
def __iter__() # CC=1
def __repr__() # CC=1class SshResult:
def ok() # CC=1
def success() # CC=1
def out() # CC=1
class SshClient: # Execute commands on a remote host via SSH (or locally).
def __init__(host, port, key, ssh_id) # CC=1
def key() # CC=1
def key(v) # CC=1
def run(cmd, timeout) # CC=5
def rsync(local_path, remote_path, exclude, delete, timeout) # CC=7
def scp(local_path, remote_path, timeout) # CC=4
def put_file(content, remote_path, mode) # CC=5
def is_reachable(timeout) # CC=3
def is_ssh_ready() # CC=2
def ping() # CC=4
def _run_local(cmd, timeout) # CC=3
def _ssh_opts() # CC=2
def _scp_opts() # CC=2
def _detect_ssh_key() # CC=1
def _detect_key() # CC=6
class RemoteProbe: # Thin wrapper kept for redeploy.detect compatibility.
def __init__(host) # CC=1
def is_local() # CC=1
def is_local(v) # CC=1
class RemoteExecutor: # Thin wrapper kept for deploy.core compatibility.
def __init__(device) # CC=1
def ssh_target() # CC=1
def ssh_opts() # CC=1
def scp_opts() # CC=1def _ssh(host, command) # CC=3, fan=2
def collect_diagnostics(host, failed_step) # CC=2, fan=4
def ask_llm(failed_step, step_output, diag, spec_text, fix_hint) # CC=8, fan=5
def apply_fix_to_spec(spec_path, failed_step, llm_response) # CC=6, fan=10
def write_repair_log(spec_path, version, repairs) # CC=6, fan=9
def parse_failed_step(executor_summary, executor) # CC=8, fan=7
class HealLoopDetector: # Detect repeated non-converging heal hints for a given step.
def __init__(max_identical_hints) # CC=2
def observe(step_id, hint) # CC=5
def reset(step_id) # CC=1
class HealRunner: # Wraps Executor with self-healing loop.
def __init__(migration, spec_path, host, fix_hint, max_retries, dry_run, console, version) # CC=2
def _make_executor(resume) # CC=4
def _reload_migration() # CC=1
def _run_executor_attempt(executor) # CC=1
def _collect_diag_with_hint(failed_step) # CC=2
def _extract_diag_hint(diag) # CC=5
def _ask_and_apply_fix(failed_step, step_output, diag) # CC=7
def _record_repair(failed_step, attempt, summary, diag_hint, fixed) # CC=1
def _is_repeating_loop(failed_step, summary, diag_hint) # CC=1
def _retry_after_heal() # CC=1
def run() # CC=8def _redeploy_bin() # CC=5, fan=4
def _run() # CC=4, fan=4
def _validate_exec_ssh_inputs(host, command) # CC=5, fan=3
def schema(directory) # CC=1, fan=5
def plan_spec(spec, cwd) # CC=1, fan=2
def run_spec(spec, force, dry_run, heal, fix_hint, cwd) # CC=5, fan=3
def fix_spec(spec_or_dir, hint, bump, retries, dry_run, cwd) # CC=4, fan=4
def bump_version(spec_or_dir, level, cwd) # CC=3, fan=3
def diagnose(host) # CC=1, fan=2
def list_specs(directory) # CC=1, fan=6
def exec_ssh(host, command) # CC=4, fan=4
def nlp_command(instruction, dry_run, cwd) # CC=2, fan=2
def get_spec_content(path) # CC=3, fan=5
def get_workspace() # CC=1, fan=3
def serve(transport, host, port) # CC=4, fan=4438 nodes · 406 edges · 118 modules · CC̄=5.0
| Function | CC | in | out | total |
|---|---|---|---|---|
list (in redeploy.steps.StepLibrary) |
1 | 51 | 2 | 53 |
snapshot_to_hardware_info (in redeploy.integrations.op3_bridge) |
10 ⚠ | 2 | 49 | 51 |
gh_workflow_run (in redeploy.cli.commands.gh_workflow) |
19 ⚠ | 0 | 49 | 49 |
lint (in redeploy.cli.commands.lint) |
19 ⚠ | 0 | 44 | 44 |
_heal_step (in redeploy.heal.runner.HealRunner) |
14 ⚠ | 0 | 40 | 40 |
exec_cmd (in redeploy.cli.commands.exec_) |
9 | 0 | 40 | 40 |
_bump_single (in redeploy.cli.commands.version.helpers) |
25 ⚠ | 4 | 35 | 39 |
version_list (in redeploy.cli.commands.version.commands) |
13 ⚠ | 0 | 38 | 38 |
# code2llm call graph | /home/tom/github/maskservice/redeploy
# generated in 0.22s
# nodes: 438 | edges: 406 | modules: 118
# CC̄=5.0
HUBS[20]:
redeploy.steps.StepLibrary.list
CC=1 in:51 out:2 total:53
redeploy.integrations.op3_bridge.snapshot_to_hardware_info
CC=10 in:2 out:49 total:51
redeploy.cli.commands.gh_workflow.gh_workflow_run
CC=19 in:0 out:49 total:49
redeploy.cli.commands.lint.lint
CC=19 in:0 out:44 total:44
redeploy.heal.runner.HealRunner._heal_step
CC=14 in:0 out:40 total:40
redeploy.cli.commands.exec_.exec_cmd
CC=9 in:0 out:40 total:40
redeploy.cli.commands.version.helpers._bump_single
CC=25 in:4 out:35 total:39
redeploy.cli.commands.version.commands.version_list
CC=13 in:0 out:38 total:38
redeploy.iac.config_hints.ConfigHintsParser._parse_k8s_yaml
CC=26 in:0 out:38 total:38
redeploy.cli.commands.plugin.plugin_cmd
CC=13 in:0 out:38 total:38
redeploy.cli.commands.prompt_cmd.prompt_cmd
CC=15 in:0 out:37 total:37
redeploy.discovery.auto_probe.auto_probe
CC=7 in:4 out:33 total:37
redeploy.blueprint.sources.compose._merge_compose
CC=21 in:1 out:33 total:34
redeploy.plugins.builtin.hardware_diagnostic._analyze_hardware
CC=14 in:1 out:32 total:33
redeploy.cli.commands.target.target
CC=10 in:1 out:31 total:32
redeploy.heal.hint_provider.apply_fix_to_spec
CC=16 in:0 out:30 total:30
redeploy.detect.detector.Detector.run
CC=9 in:0 out:30 total:30
examples.redeploy_iac_parsers.helm_kustomize.HelmTemplatesParser.parse
CC=17 in:0 out:27 total:27
redeploy.apply.executor.Executor._execute_step
CC=4 in:0 out:27 total:27
redeploy.apply.state_apply.HardwareStateHandler.apply
CC=18 in:0 out:27 total:27
MODULES:
examples.redeploy_iac_parsers.gitops_ci [2 funcs]
can_parse CC=11 out:9
_is_gitops_command CC=2 out:2
examples.redeploy_iac_parsers.helm_kustomize [1 funcs]
parse CC=17 out:27
redeploy.analyze.checkers.binary [2 funcs]
check CC=7 out:8
extract_binaries CC=14 out:8
redeploy.analyze.checkers.command_ref [1 funcs]
_check_external_ref CC=6 out:8
redeploy.analyze.checkers.compose [6 funcs]
check CC=7 out:7
_check_build_section CC=7 out:12
_check_env_files CC=6 out:8
_check_volumes CC=11 out:12
_is_ignored CC=2 out:4
scan_compose_file CC=6 out:9
redeploy.analyze.checkers.docker_build [6 funcs]
_check_remote_context CC=12 out:12
check CC=4 out:8
collect_sync_mappings CC=5 out:10
match_local_src CC=5 out:3
parse_docker_build CC=9 out:7
resolve_local_dockerfile CC=3 out:6
redeploy.analyze.checkers.path [4 funcs]
check CC=9 out:13
_check_field CC=9 out:15
is_inside CC=2 out:3
resolve_local_path CC=3 out:6
redeploy.analyze.ignore [2 funcs]
is_ignored CC=9 out:10
ensure_redeployignore CC=2 out:2
redeploy.analyze.models [1 funcs]
add CC=2 out:2
redeploy.analyze.preflight_schema [6 funcs]
_collect_local_artifacts CC=6 out:16
_collect_remote_checks CC=8 out:14
_resolve_command_refs CC=11 out:20
_resolve_local_path CC=4 out:7
generate_preflight_schema CC=14 out:25
save_preflight_schema CC=1 out:3
redeploy.analyze.spec_analyzer [2 funcs]
__init__ CC=3 out:2
analyze_file CC=7 out:10
redeploy.apply.executor [3 funcs]
__init__ CC=14 out:8
_execute_step CC=4 out:27
_rollback CC=1 out:1
redeploy.apply.handlers [15 funcs]
_all_containers_healthy CC=5 out:2
_ensure_remote_parent_dir CC=7 out:6
_format_step_output CC=6 out:7
_parse_container_statuses CC=6 out:8
_resolve_command_ref CC=6 out:10
run_docker_build CC=1 out:1
run_docker_health_wait CC=10 out:11
run_ensure_autostart_entry CC=16 out:21
run_ensure_config_line CC=7 out:9
run_inline_script CC=6 out:7
redeploy.apply.rollback [1 funcs]
rollback_steps CC=8 out:8
redeploy.apply.state [6 funcs]
reset CC=1 out:2
save CC=5 out:11
_now_iso CC=1 out:2
_slug CC=5 out:3
default_state_path CC=2 out:2
state_key CC=1 out:7
redeploy.apply.state_apply [4 funcs]
apply CC=18 out:27
_update_kanshi CC=9 out:17
apply_state CC=2 out:4
detect_handler CC=3 out:1
redeploy.apply.utils.run_container_build [1 funcs]
run_container_build CC=10 out:21
redeploy.audit [1 funcs]
audit_spec CC=1 out:3
redeploy.audit.extractor [1 funcs]
_from_target CC=7 out:9
redeploy.audit.paths [2 funcs]
extract_port CC=5 out:6
normalize_path CC=3 out:5
redeploy.blueprint.extractor [1 funcs]
extract_blueprint CC=22 out:23
redeploy.blueprint.generators.docker_compose [2 funcs]
_build_service CC=20 out:8
generate_twin CC=11 out:3
redeploy.blueprint.sources.compose [6 funcs]
_merge_compose CC=21 out:33
_parse_compose_env CC=7 out:8
_parse_compose_healthcheck CC=6 out:6
_parse_compose_ports CC=7 out:21
_parse_compose_volumes CC=8 out:13
merge_compose_files CC=2 out:1
redeploy.blueprint.sources.hardware [1 funcs]
build_hw_requirements CC=13 out:15
redeploy.blueprint.sources.infra [1 funcs]
infer_app_url CC=8 out:1
redeploy.cli [3 funcs]
_resolve_device CC=5 out:12
_setup_logging CC=2 out:2
cli CC=1 out:5
redeploy.cli.commands.blueprint [2 funcs]
_execute_query_blueprint CC=1 out:1
show CC=4 out:18
redeploy.cli.commands.bump_fix [9 funcs]
_bump_patch CC=2 out:7
_bump_version_file CC=1 out:5
_detect_version CC=2 out:3
_find_spec CC=15 out:22
_find_version_file CC=3 out:2
_prompt_choose_spec CC=5 out:9
_update_migration_header CC=2 out:7
_update_quadlet_service_version CC=6 out:9
bump_cmd CC=6 out:23
redeploy.cli.commands.device_map_actions [2 funcs]
execute_query_device_map CC=1 out:1
probe_device_map CC=9 out:15
redeploy.cli.commands.device_map_renderers [5 funcs]
_build_drm_table CC=9 out:8
_build_header_panel CC=4 out:3
_build_issues_table CC=3 out:12
_build_services_table CC=7 out:9
render_rich CC=22 out:22
redeploy.cli.commands.devices [1 funcs]
devices CC=4 out:14
redeploy.cli.commands.devices_display [2 funcs]
filter_devices CC=13 out:0
render_devices_table CC=7 out:16
redeploy.cli.commands.diagnose [1 funcs]
diagnose CC=5 out:19
redeploy.cli.commands.exec_ [3 funcs]
_extract_all_scripts CC=3 out:7
_extract_script_for_ref CC=2 out:1
exec_cmd CC=9 out:40
redeploy.cli.commands.export [4 funcs]
_export_to_css CC=2 out:2
_find_export_source CC=9 out:10
_load_manifest_from_css CC=1 out:1
export_cmd CC=7 out:23
redeploy.cli.commands.gh_workflow [12 funcs]
_collect_workflow_meta CC=3 out:10
_find_repo_root CC=4 out:3
_has_workflow_dispatch CC=4 out:3
_load_yaml CC=4 out:5
_on_section CC=1 out:2
_resolve_repo_root CC=3 out:5
_resolve_workflow_identifier CC=10 out:11
_trigger_list CC=6 out:6
_workflows_dir CC=2 out:2
gh_workflow_analyze CC=7 out:20
redeploy.cli.commands.hardware [4 funcs]
_apply_fix CC=8 out:18
_apply_transform CC=4 out:4
_execute_query CC=1 out:2
_probe_hardware CC=4 out:6
redeploy.cli.commands.import_ [4 funcs]
_copy_plugin_template CC=3 out:12
_examples_plugin_dir CC=1 out:2
_plugin_templates CC=1 out:0
_print_plugin_templates CC=2 out:4
redeploy.cli.commands.inspect [2 funcs]
_find_css_path CC=4 out:4
inspect CC=4 out:22
redeploy.cli.commands.lint [1 funcs]
lint CC=19 out:44
redeploy.cli.commands.mcp_cmd [1 funcs]
mcp_cmd CC=1 out:6
redeploy.cli.commands.plan_apply_report [10 funcs]
_parse_rsync_output CC=13 out:8
_render_checksum_section CC=7 out:13
_run_rsync_checksum CC=6 out:10
_skipped_checksum CC=1 out:1
build_checksum_verification CC=14 out:15
default_report_path CC=1 out:0
render_markdown_report CC=12 out:13
resolve_audit_entry CC=10 out:16
step_command_block CC=14 out:5
write_markdown_report CC=2 out:7
redeploy.cli.commands.plan_apply_run [1 funcs]
run_preflight_phase CC=8 out:19
redeploy.cli.commands.plan_apply_shared [2 funcs]
apply_manifest_to_spec CC=8 out:9
load_spec_for_run CC=4 out:6
redeploy.cli.commands.plugin [1 funcs]
plugin_cmd CC=13 out:38
redeploy.cli.commands.probe_display [1 funcs]
collect_probe_hosts CC=6 out:8
redeploy.cli.commands.prompt_cmd [1 funcs]
prompt_cmd CC=15 out:37
redeploy.cli.commands.state [4 funcs]
_get_state_path CC=5 out:5
_list_checkpoints CC=7 out:17
_show_checkpoint CC=4 out:11
state_cmd CC=4 out:16
redeploy.cli.commands.target [1 funcs]
target CC=10 out:31
redeploy.cli.commands.version.commands [2 funcs]
version_list CC=13 out:38
version_verify CC=7 out:18
redeploy.cli.commands.version.helpers [10 funcs]
_build_package_version_manifest CC=2 out:5
_bump_single CC=25 out:35
_load_live_version_diff CC=3 out:4
_load_spec_version_diff CC=8 out:13
_print_source_drift_status CC=7 out:6
_print_verify_result CC=6 out:5
_resolve_monorepo_targets CC=8 out:11
_resolve_package_release_changelog_config CC=5 out:2
_resolve_package_release_git_config CC=5 out:5
_run_version_diff_for_manifest CC=7 out:11
redeploy.cli.commands.version.monorepo [5 funcs]
_create_version_set_git CC=6 out:3
_create_version_set_taggers CC=2 out:2
_finalize_monorepo_version_set CC=11 out:8
_print_monorepo_set_dry_run CC=3 out:5
_set_monorepo_version CC=8 out:13
redeploy.cli.commands.version.release [5 funcs]
_create_release_tags CC=3 out:5
_format_release_tag CC=1 out:1
_resolve_package_release_changelog_config CC=5 out:2
_update_monorepo_release_changelogs CC=5 out:12
_update_release_changelog CC=7 out:7
redeploy.cli.commands.version.scanner [17 funcs]
_classify_version_scan_source_confidence CC=3 out:0
_default_keep_scanned_source CC=2 out:0
_derive_scanned_package_name CC=4 out:5
_detect_source_version CC=2 out:1
_detect_version_sources_in_dir CC=13 out:17
_format_version_scan_source_status CC=2 out:2
_is_scannable_version_path CC=2 out:1
_iter_version_scan_groups CC=4 out:1
_print_version_scan_group CC=3 out:4
_print_version_scan_review CC=6 out:5
redeploy.cli.commands.workflow [2 funcs]
_execute_workflow CC=6 out:8
workflow_cmd CC=10 out:21
redeploy.cli.core [5 funcs]
find_manifest_path CC=3 out:5
load_spec_or_exit CC=2 out:3
load_spec_with_manifest CC=5 out:8
resolve_device CC=5 out:12
run_detect_workflow CC=4 out:8
redeploy.cli.display [18 funcs]
_format_workflow_header CC=2 out:1
_get_plugin_hint CC=5 out:1
_get_status_color CC=3 out:0
_print_alternatives CC=5 out:2
_print_host_header CC=1 out:1
_print_services_table CC=9 out:14
_print_spec_metadata CC=4 out:6
_print_template_match CC=5 out:7
_print_workflow_step CC=4 out:4
generate_workflow_output_css CC=8 out:9
redeploy.cli.query [1 funcs]
execute_query CC=5 out:9
redeploy.config_apply.applier [3 funcs]
_normalize_hardware CC=4 out:2
apply_config_dict CC=1 out:2
apply_config_file CC=4 out:6
redeploy.config_apply.handlers.display [2 funcs]
_validate_display_inputs CC=3 out:4
apply_display_transform CC=7 out:25
redeploy.config_apply.loader [1 funcs]
load_config_file CC=3 out:4
redeploy.detect.detector [2 funcs]
probe_hardware CC=2 out:4
run CC=9 out:30
redeploy.detect.hardware [2 funcs]
_wrap_remote_probe CC=1 out:2
probe_hardware CC=4 out:10
redeploy.detect.hardware_rules [3 funcs]
_hw_info_to_dict CC=2 out:2
_op3_diag_to_hw_diag CC=1 out:5
analyze CC=3 out:4
redeploy.detect.probes [4 funcs]
detect_conflicts CC=13 out:12
probe_iptables_dnat CC=7 out:5
probe_ports CC=6 out:11
probe_runtime CC=5 out:16
redeploy.detect.templates [4 funcs]
detect CC=2 out:3
_build_templates CC=1 out:1
_load_templates_from_yaml CC=9 out:22
build_context CC=2 out:1
redeploy.detect.workflow [2 funcs]
_collect_hosts CC=18 out:14
_probe_ssh CC=3 out:3
redeploy.discovery.auto_probe [6 funcs]
auto_probe CC=7 out:33
build_probe_command CC=1 out:0
build_ssh_command CC=1 out:1
detect_strategy_remote CC=3 out:5
parse_probe_input CC=4 out:1
run_ssh_probe CC=3 out:1
redeploy.discovery.helpers [2 funcs]
is_ip CC=1 out:2
run_shell CC=2 out:1
redeploy.discovery.registry [3 funcs]
_new_discovered_device CC=3 out:2
_update_existing_device CC=7 out:1
update_registry CC=9 out:9
redeploy.discovery.scanners [8 funcs]
detect_local_subnet CC=9 out:11
discover CC=14 out:22
merge_hosts CC=11 out:2
ping_sweep CC=6 out:20
probe_ssh_batch CC=1 out:6
scan_arp_cache CC=10 out:23
scan_known_hosts CC=10 out:18
scan_mdns CC=6 out:11
redeploy.discovery.ssh_credentials [3 funcs]
collect_ssh_keys CC=14 out:16
tcp_reachable CC=2 out:1
try_ssh_credentials CC=14 out:15
redeploy.discovery_probe [2 funcs]
infer_strategy CC=8 out:5
parse_probe_output CC=16 out:20
redeploy.dsl.loader [9 funcs]
_build_from_nodes CC=1 out:4
_build_manifest CC=25 out:23
_build_templates CC=14 out:24
_build_workflows CC=8 out:16
_condition_key CC=4 out:5
load_css CC=1 out:4
load_css_text CC=2 out:4
manifest_to_css CC=14 out:17
templates_to_css CC=6 out:13
redeploy.dsl.parser [3 funcs]
__repr__ CC=2 out:4
parse CC=6 out:23
_strip_comments CC=1 out:3
redeploy.dsl_python.runner [1 funcs]
list_migrations CC=5 out:13
redeploy.dsl_python.steps [2 funcs]
ssh CC=4 out:4
version_check CC=7 out:10
redeploy.fleet [4 funcs]
__init__ CC=1 out:1
from_registry CC=6 out:5
get CC=3 out:1
merge CC=3 out:3
redeploy.hardware.config_txt [2 funcs]
ensure_line CC=14 out:20
ensure_lines CC=4 out:4
redeploy.hardware.fixes [6 funcs]
_detect_port CC=6 out:0
_step CC=1 out:1
fix_dsi_not_enabled CC=6 out:20
fix_enable_i2c CC=1 out:1
fix_enable_spi CC=1 out:1
generate_fix_plan CC=7 out:3
redeploy.hardware.kiosk.autostart [1 funcs]
ensure_autostart_entry CC=6 out:6
redeploy.hardware.kiosk.browsers [1 funcs]
build_launch_cmd CC=5 out:3
redeploy.hardware.panels [1 funcs]
infer_from_hardware CC=1 out:0
redeploy.hardware.raspi_config [1 funcs]
build_raspi_config_command CC=3 out:2
redeploy.heal [12 funcs]
observe CC=5 out:4
_ask_and_apply_fix CC=7 out:15
_collect_diag_with_hint CC=2 out:2
_record_repair CC=1 out:2
_reload_migration CC=1 out:4
run CC=8 out:19
_ssh CC=3 out:2
apply_fix_to_spec CC=6 out:15
ask_llm CC=8 out:8
collect_diagnostics CC=2 out:4
redeploy.heal.hint_provider [6 funcs]
_extract_step_block CC=2 out:4
_parse_step_block CC=6 out:4
_ssh CC=3 out:2
apply_fix_to_spec CC=16 out:30
ask_llm CC=12 out:22
collect_diagnostics CC=2 out:4
redeploy.heal.loop_detector [1 funcs]
observe CC=5 out:4
redeploy.heal.runner [3 funcs]
_heal_step CC=14 out:40
_reload_migration CC=1 out:4
run CC=10 out:24
redeploy.iac.config_hints [1 funcs]
_parse_k8s_yaml CC=26 out:38
redeploy.iac.docker_compose [11 funcs]
_load_merged CC=6 out:9
_parse_service_depends_on CC=4 out:6
_parse_service_env CC=2 out:4
_parse_service_networks CC=4 out:6
_parse_service_ports CC=5 out:6
_parse_service_volumes CC=4 out:3
_resolve_image_and_build CC=7 out:8
_env_dict CC=7 out:6
_parse_port CC=10 out:21
_parse_volume CC=5 out:14
redeploy.iac.parsers.compose [2 funcs]
_parse_depends_on CC=5 out:6
_parse_service_networks CC=2 out:2
redeploy.integrations.op3_bridge [3 funcs]
snapshot_to_device_map CC=7 out:10
snapshot_to_hardware_info CC=10 out:49
snapshot_to_infra_state CC=3 out:2
redeploy.markpact.compiler [6 funcs]
_deep_merge CC=5 out:4
_extract_steps CC=9 out:20
_load_block_payload CC=8 out:7
_normalize_config_payload CC=11 out:18
compile_markpact_document CC=2 out:4
compile_markpact_document_to_data CC=6 out:8
redeploy.markpact.parser [10 funcs]
_check_heading CC=5 out:5
_handle_fence_line CC=7 out:7
_normalize_section_id CC=1 out:3
_parse_markpact_fence_info CC=14 out:10
extract_script_by_ref CC=12 out:11
extract_script_from_markdown CC=10 out:10
parse_markpact_file CC=1 out:3
parse_markpact_file_with_refs CC=6 out:6
parse_markpact_text CC=7 out:8
resolve_script_ref CC=6 out:5
redeploy.mcp_server [14 funcs]
_redeploy_bin CC=5 out:4
_run CC=4 out:4
_validate_exec_ssh_inputs CC=5 out:3
bump_version CC=3 out:4
diagnose CC=1 out:2
exec_ssh CC=4 out:4
fix_spec CC=4 out:5
get_workspace CC=1 out:3
list_specs CC=1 out:6
nlp_command CC=2 out:2
redeploy.models.manifest [2 funcs]
find_and_load CC=6 out:9
find_css CC=4 out:4
redeploy.models.spec [3 funcs]
from_file CC=2 out:5
to_target_config CC=2 out:2
_migrate_legacy_post_deploy CC=5 out:20
redeploy.observe [1 funcs]
record CC=11 out:20
redeploy.parse [7 funcs]
_apply_git_line CC=3 out:3
_apply_health_line CC=2 out:1
_apply_network_line CC=3 out:2
_apply_system_line CC=8 out:10
_parse_section_line CC=7 out:6
parse_container_line CC=3 out:3
parse_diagnostics CC=5 out:4
redeploy.patterns [6 funcs]
expand CC=2 out:14
expand CC=5 out:13
expand CC=1 out:8
_step CC=1 out:1
get_pattern CC=1 out:1
list_patterns CC=1 out:2
redeploy.plan.planner [1 funcs]
_plan_pattern CC=10 out:17
redeploy.plugins [5 funcs]
_ensure_builtins CC=2 out:1
names CC=1 out:2
_load_builtin_plugins CC=6 out:7
load_user_plugins CC=3 out:4
register_plugin CC=1 out:1
redeploy.plugins.builtin.browser_reload [1 funcs]
browser_reload CC=16 out:26
redeploy.plugins.builtin.hardware_diagnostic [11 funcs]
_analyze_hardware CC=14 out:32
_check_gpio CC=2 out:2
_detect_platform CC=10 out:6
_get_audio_devices CC=3 out:5
_get_cpu_info CC=5 out:10
_get_memory_mb CC=3 out:5
_get_network_interfaces CC=5 out:6
_get_storage_gb CC=6 out:11
_get_usb_devices CC=4 out:5
_run_command CC=2 out:3
redeploy.plugins.builtin.notify [6 funcs]
_fmt CC=1 out:3
_http_post CC=5 out:10
_notify_slack CC=3 out:7
_notify_webhook CC=6 out:16
_resolve_env CC=1 out:1
notify CC=4 out:5
redeploy.plugins.builtin.process_control [2 funcs]
_find_pid_on_port CC=11 out:14
process_control CC=9 out:19
redeploy.plugins.builtin.systemd_reload [1 funcs]
systemd_reload CC=12 out:23
redeploy.schema [5 funcs]
_discover_specs CC=14 out:26
_git_branch CC=3 out:2
_iac_info CC=2 out:0
_read_version CC=3 out:4
build_schema CC=2 out:7
redeploy.spec_loader [1 funcs]
load_migration_spec CC=4 out:8
redeploy.steps [2 funcs]
all CC=2 out:2
list CC=1 out:2
redeploy.version [1 funcs]
read_remote_version CC=4 out:3
redeploy.version.bump [6 funcs]
_calculate_bump CC=8 out:10
bump_all_packages CC=3 out:5
bump_package CC=9 out:13
bump_version CC=6 out:9
bump_version_with_git CC=13 out:14
verify_sources CC=4 out:7
redeploy.version.changelog [2 funcs]
_categorize_commits CC=3 out:3
get_commits_since_tag CC=5 out:3
redeploy.version.commits [3 funcs]
analyze_commits CC=18 out:25
format_analysis_report CC=2 out:3
parse_conventional CC=4 out:6
redeploy.version.diff [2 funcs]
diff_manifest_vs_live CC=2 out:2
diff_manifest_vs_spec CC=4 out:7
redeploy.version.manifest [1 funcs]
list_packages CC=2 out:2
redeploy.version.sources [1 funcs]
get_adapter CC=2 out:1
redeploy.version.transaction [1 funcs]
_stage_one CC=6 out:7
EDGES:
redeploy.schema.build_schema → redeploy.schema._read_version
redeploy.schema.build_schema → redeploy.schema._git_branch
redeploy.schema.build_schema → redeploy.schema._discover_specs
redeploy.schema.build_schema → redeploy.schema._iac_info
redeploy.observe.DeployAuditLog.record → redeploy.steps.StepLibrary.list
redeploy.heal.collect_diagnostics → redeploy.heal._ssh
redeploy.heal.HealLoopDetector.observe → redeploy.steps.StepLibrary.all
redeploy.heal.HealRunner._reload_migration → redeploy.spec_loader.load_migration_spec
redeploy.heal.HealRunner._collect_diag_with_hint → redeploy.heal.collect_diagnostics
redeploy.heal.HealRunner._ask_and_apply_fix → redeploy.heal.ask_llm
redeploy.heal.HealRunner._ask_and_apply_fix → redeploy.heal.apply_fix_to_spec
redeploy.heal.HealRunner._record_repair → redeploy.heal.write_repair_log
redeploy.heal.HealRunner.run → redeploy.heal.write_repair_log
redeploy.heal.HealRunner.run → redeploy.heal.parse_failed_step
redeploy.parse.parse_diagnostics → redeploy.parse._parse_section_line
redeploy.parse._parse_section_line → redeploy.parse._apply_system_line
redeploy.parse._parse_section_line → redeploy.parse.parse_container_line
redeploy.parse._parse_section_line → redeploy.parse._apply_git_line
redeploy.parse._parse_section_line → redeploy.parse._apply_health_line
redeploy.parse._parse_section_line → redeploy.parse._apply_network_line
redeploy.fleet.Fleet.__init__ → redeploy.steps.StepLibrary.list
redeploy.fleet.Fleet.from_registry → redeploy.steps.StepLibrary.list
redeploy.fleet.Fleet.merge → redeploy.steps.StepLibrary.list
redeploy.spec_loader.load_migration_spec → redeploy.markpact.compiler.compile_markpact_document
redeploy.spec_loader.load_migration_spec → redeploy.markpact.parser.parse_markpact_file
redeploy.patterns.BlueGreenPattern.expand → redeploy.patterns._step
redeploy.patterns.CanaryPattern.expand → redeploy.patterns._step
redeploy.patterns.RollbackOnFailurePattern.expand → redeploy.patterns._step
redeploy.patterns.list_patterns → redeploy.steps.StepLibrary.list
redeploy.mcp_server._run → redeploy.mcp_server._redeploy_bin
redeploy.mcp_server.schema → redeploy.schema.build_schema
redeploy.mcp_server.plan_spec → redeploy.mcp_server._run
redeploy.mcp_server.run_spec → redeploy.mcp_server._run
redeploy.mcp_server.fix_spec → redeploy.mcp_server._run
redeploy.mcp_server.bump_version → redeploy.mcp_server._run
redeploy.mcp_server.diagnose → redeploy.mcp_server._run
redeploy.mcp_server.list_specs → redeploy.schema.build_schema
redeploy.mcp_server.exec_ssh → redeploy.mcp_server._validate_exec_ssh_inputs
redeploy.mcp_server.nlp_command → redeploy.mcp_server._run
redeploy.mcp_server.get_workspace → redeploy.schema.build_schema
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_runtime
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_ports
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_iptables_dnat
redeploy.detect.hardware.probe_hardware → redeploy.detect.hardware._wrap_remote_probe
redeploy.detect.hardware.probe_hardware → redeploy.integrations.op3_bridge.snapshot_to_hardware_info
redeploy.detect.hardware.probe_hardware → redeploy.steps.StepLibrary.list
redeploy.detect.hardware_rules.analyze → redeploy.detect.hardware_rules._hw_info_to_dict
redeploy.detect.hardware_rules.analyze → redeploy.detect.hardware_rules._op3_diag_to_hw_diag
redeploy.detect.templates._build_templates → redeploy.detect.templates._load_templates_from_yaml
redeploy.detect.templates.TemplateEngine.detect → redeploy.detect.templates.build_context
Scenarios as contract signatures — what the system guarantees.
CLI Command Tests
Auto-generated from Python Tests
Pre-refactoring snapshot — use this section to identify targets. Generated from project/ toon files.
# code2llm call graph | /home/tom/github/maskservice/redeploy
# generated in 0.22s
# nodes: 438 | edges: 406 | modules: 118
# CC̄=5.0
HUBS[20]:
redeploy.steps.StepLibrary.list
CC=1 in:51 out:2 total:53
redeploy.integrations.op3_bridge.snapshot_to_hardware_info
CC=10 in:2 out:49 total:51
redeploy.cli.commands.gh_workflow.gh_workflow_run
CC=19 in:0 out:49 total:49
redeploy.cli.commands.lint.lint
CC=19 in:0 out:44 total:44
redeploy.heal.runner.HealRunner._heal_step
CC=14 in:0 out:40 total:40
redeploy.cli.commands.exec_.exec_cmd
CC=9 in:0 out:40 total:40
redeploy.cli.commands.version.helpers._bump_single
CC=25 in:4 out:35 total:39
redeploy.cli.commands.version.commands.version_list
CC=13 in:0 out:38 total:38
redeploy.iac.config_hints.ConfigHintsParser._parse_k8s_yaml
CC=26 in:0 out:38 total:38
redeploy.cli.commands.plugin.plugin_cmd
CC=13 in:0 out:38 total:38
redeploy.cli.commands.prompt_cmd.prompt_cmd
CC=15 in:0 out:37 total:37
redeploy.discovery.auto_probe.auto_probe
CC=7 in:4 out:33 total:37
redeploy.blueprint.sources.compose._merge_compose
CC=21 in:1 out:33 total:34
redeploy.plugins.builtin.hardware_diagnostic._analyze_hardware
CC=14 in:1 out:32 total:33
redeploy.cli.commands.target.target
CC=10 in:1 out:31 total:32
redeploy.heal.hint_provider.apply_fix_to_spec
CC=16 in:0 out:30 total:30
redeploy.detect.detector.Detector.run
CC=9 in:0 out:30 total:30
examples.redeploy_iac_parsers.helm_kustomize.HelmTemplatesParser.parse
CC=17 in:0 out:27 total:27
redeploy.apply.executor.Executor._execute_step
CC=4 in:0 out:27 total:27
redeploy.apply.state_apply.HardwareStateHandler.apply
CC=18 in:0 out:27 total:27
MODULES:
examples.redeploy_iac_parsers.gitops_ci [2 funcs]
can_parse CC=11 out:9
_is_gitops_command CC=2 out:2
examples.redeploy_iac_parsers.helm_kustomize [1 funcs]
parse CC=17 out:27
redeploy.analyze.checkers.binary [2 funcs]
check CC=7 out:8
extract_binaries CC=14 out:8
redeploy.analyze.checkers.command_ref [1 funcs]
_check_external_ref CC=6 out:8
redeploy.analyze.checkers.compose [6 funcs]
check CC=7 out:7
_check_build_section CC=7 out:12
_check_env_files CC=6 out:8
_check_volumes CC=11 out:12
_is_ignored CC=2 out:4
scan_compose_file CC=6 out:9
redeploy.analyze.checkers.docker_build [6 funcs]
_check_remote_context CC=12 out:12
check CC=4 out:8
collect_sync_mappings CC=5 out:10
match_local_src CC=5 out:3
parse_docker_build CC=9 out:7
resolve_local_dockerfile CC=3 out:6
redeploy.analyze.checkers.path [4 funcs]
check CC=9 out:13
_check_field CC=9 out:15
is_inside CC=2 out:3
resolve_local_path CC=3 out:6
redeploy.analyze.ignore [2 funcs]
is_ignored CC=9 out:10
ensure_redeployignore CC=2 out:2
redeploy.analyze.models [1 funcs]
add CC=2 out:2
redeploy.analyze.preflight_schema [6 funcs]
_collect_local_artifacts CC=6 out:16
_collect_remote_checks CC=8 out:14
_resolve_command_refs CC=11 out:20
_resolve_local_path CC=4 out:7
generate_preflight_schema CC=14 out:25
save_preflight_schema CC=1 out:3
redeploy.analyze.spec_analyzer [2 funcs]
__init__ CC=3 out:2
analyze_file CC=7 out:10
redeploy.apply.executor [3 funcs]
__init__ CC=14 out:8
_execute_step CC=4 out:27
_rollback CC=1 out:1
redeploy.apply.handlers [15 funcs]
_all_containers_healthy CC=5 out:2
_ensure_remote_parent_dir CC=7 out:6
_format_step_output CC=6 out:7
_parse_container_statuses CC=6 out:8
_resolve_command_ref CC=6 out:10
run_docker_build CC=1 out:1
run_docker_health_wait CC=10 out:11
run_ensure_autostart_entry CC=16 out:21
run_ensure_config_line CC=7 out:9
run_inline_script CC=6 out:7
redeploy.apply.rollback [1 funcs]
rollback_steps CC=8 out:8
redeploy.apply.state [6 funcs]
reset CC=1 out:2
save CC=5 out:11
_now_iso CC=1 out:2
_slug CC=5 out:3
default_state_path CC=2 out:2
state_key CC=1 out:7
redeploy.apply.state_apply [4 funcs]
apply CC=18 out:27
_update_kanshi CC=9 out:17
apply_state CC=2 out:4
detect_handler CC=3 out:1
redeploy.apply.utils.run_container_build [1 funcs]
run_container_build CC=10 out:21
redeploy.audit [1 funcs]
audit_spec CC=1 out:3
redeploy.audit.extractor [1 funcs]
_from_target CC=7 out:9
redeploy.audit.paths [2 funcs]
extract_port CC=5 out:6
normalize_path CC=3 out:5
redeploy.blueprint.extractor [1 funcs]
extract_blueprint CC=22 out:23
redeploy.blueprint.generators.docker_compose [2 funcs]
_build_service CC=20 out:8
generate_twin CC=11 out:3
redeploy.blueprint.sources.compose [6 funcs]
_merge_compose CC=21 out:33
_parse_compose_env CC=7 out:8
_parse_compose_healthcheck CC=6 out:6
_parse_compose_ports CC=7 out:21
_parse_compose_volumes CC=8 out:13
merge_compose_files CC=2 out:1
redeploy.blueprint.sources.hardware [1 funcs]
build_hw_requirements CC=13 out:15
redeploy.blueprint.sources.infra [1 funcs]
infer_app_url CC=8 out:1
redeploy.cli [3 funcs]
_resolve_device CC=5 out:12
_setup_logging CC=2 out:2
cli CC=1 out:5
redeploy.cli.commands.blueprint [2 funcs]
_execute_query_blueprint CC=1 out:1
show CC=4 out:18
redeploy.cli.commands.bump_fix [9 funcs]
_bump_patch CC=2 out:7
_bump_version_file CC=1 out:5
_detect_version CC=2 out:3
_find_spec CC=15 out:22
_find_version_file CC=3 out:2
_prompt_choose_spec CC=5 out:9
_update_migration_header CC=2 out:7
_update_quadlet_service_version CC=6 out:9
bump_cmd CC=6 out:23
redeploy.cli.commands.device_map_actions [2 funcs]
execute_query_device_map CC=1 out:1
probe_device_map CC=9 out:15
redeploy.cli.commands.device_map_renderers [5 funcs]
_build_drm_table CC=9 out:8
_build_header_panel CC=4 out:3
_build_issues_table CC=3 out:12
_build_services_table CC=7 out:9
render_rich CC=22 out:22
redeploy.cli.commands.devices [1 funcs]
devices CC=4 out:14
redeploy.cli.commands.devices_display [2 funcs]
filter_devices CC=13 out:0
render_devices_table CC=7 out:16
redeploy.cli.commands.diagnose [1 funcs]
diagnose CC=5 out:19
redeploy.cli.commands.exec_ [3 funcs]
_extract_all_scripts CC=3 out:7
_extract_script_for_ref CC=2 out:1
exec_cmd CC=9 out:40
redeploy.cli.commands.export [4 funcs]
_export_to_css CC=2 out:2
_find_export_source CC=9 out:10
_load_manifest_from_css CC=1 out:1
export_cmd CC=7 out:23
redeploy.cli.commands.gh_workflow [12 funcs]
_collect_workflow_meta CC=3 out:10
_find_repo_root CC=4 out:3
_has_workflow_dispatch CC=4 out:3
_load_yaml CC=4 out:5
_on_section CC=1 out:2
_resolve_repo_root CC=3 out:5
_resolve_workflow_identifier CC=10 out:11
_trigger_list CC=6 out:6
_workflows_dir CC=2 out:2
gh_workflow_analyze CC=7 out:20
redeploy.cli.commands.hardware [4 funcs]
_apply_fix CC=8 out:18
_apply_transform CC=4 out:4
_execute_query CC=1 out:2
_probe_hardware CC=4 out:6
redeploy.cli.commands.import_ [4 funcs]
_copy_plugin_template CC=3 out:12
_examples_plugin_dir CC=1 out:2
_plugin_templates CC=1 out:0
_print_plugin_templates CC=2 out:4
redeploy.cli.commands.inspect [2 funcs]
_find_css_path CC=4 out:4
inspect CC=4 out:22
redeploy.cli.commands.lint [1 funcs]
lint CC=19 out:44
redeploy.cli.commands.mcp_cmd [1 funcs]
mcp_cmd CC=1 out:6
redeploy.cli.commands.plan_apply_report [10 funcs]
_parse_rsync_output CC=13 out:8
_render_checksum_section CC=7 out:13
_run_rsync_checksum CC=6 out:10
_skipped_checksum CC=1 out:1
build_checksum_verification CC=14 out:15
default_report_path CC=1 out:0
render_markdown_report CC=12 out:13
resolve_audit_entry CC=10 out:16
step_command_block CC=14 out:5
write_markdown_report CC=2 out:7
redeploy.cli.commands.plan_apply_run [1 funcs]
run_preflight_phase CC=8 out:19
redeploy.cli.commands.plan_apply_shared [2 funcs]
apply_manifest_to_spec CC=8 out:9
load_spec_for_run CC=4 out:6
redeploy.cli.commands.plugin [1 funcs]
plugin_cmd CC=13 out:38
redeploy.cli.commands.probe_display [1 funcs]
collect_probe_hosts CC=6 out:8
redeploy.cli.commands.prompt_cmd [1 funcs]
prompt_cmd CC=15 out:37
redeploy.cli.commands.state [4 funcs]
_get_state_path CC=5 out:5
_list_checkpoints CC=7 out:17
_show_checkpoint CC=4 out:11
state_cmd CC=4 out:16
redeploy.cli.commands.target [1 funcs]
target CC=10 out:31
redeploy.cli.commands.version.commands [2 funcs]
version_list CC=13 out:38
version_verify CC=7 out:18
redeploy.cli.commands.version.helpers [10 funcs]
_build_package_version_manifest CC=2 out:5
_bump_single CC=25 out:35
_load_live_version_diff CC=3 out:4
_load_spec_version_diff CC=8 out:13
_print_source_drift_status CC=7 out:6
_print_verify_result CC=6 out:5
_resolve_monorepo_targets CC=8 out:11
_resolve_package_release_changelog_config CC=5 out:2
_resolve_package_release_git_config CC=5 out:5
_run_version_diff_for_manifest CC=7 out:11
redeploy.cli.commands.version.monorepo [5 funcs]
_create_version_set_git CC=6 out:3
_create_version_set_taggers CC=2 out:2
_finalize_monorepo_version_set CC=11 out:8
_print_monorepo_set_dry_run CC=3 out:5
_set_monorepo_version CC=8 out:13
redeploy.cli.commands.version.release [5 funcs]
_create_release_tags CC=3 out:5
_format_release_tag CC=1 out:1
_resolve_package_release_changelog_config CC=5 out:2
_update_monorepo_release_changelogs CC=5 out:12
_update_release_changelog CC=7 out:7
redeploy.cli.commands.version.scanner [17 funcs]
_classify_version_scan_source_confidence CC=3 out:0
_default_keep_scanned_source CC=2 out:0
_derive_scanned_package_name CC=4 out:5
_detect_source_version CC=2 out:1
_detect_version_sources_in_dir CC=13 out:17
_format_version_scan_source_status CC=2 out:2
_is_scannable_version_path CC=2 out:1
_iter_version_scan_groups CC=4 out:1
_print_version_scan_group CC=3 out:4
_print_version_scan_review CC=6 out:5
redeploy.cli.commands.workflow [2 funcs]
_execute_workflow CC=6 out:8
workflow_cmd CC=10 out:21
redeploy.cli.core [5 funcs]
find_manifest_path CC=3 out:5
load_spec_or_exit CC=2 out:3
load_spec_with_manifest CC=5 out:8
resolve_device CC=5 out:12
run_detect_workflow CC=4 out:8
redeploy.cli.display [18 funcs]
_format_workflow_header CC=2 out:1
_get_plugin_hint CC=5 out:1
_get_status_color CC=3 out:0
_print_alternatives CC=5 out:2
_print_host_header CC=1 out:1
_print_services_table CC=9 out:14
_print_spec_metadata CC=4 out:6
_print_template_match CC=5 out:7
_print_workflow_step CC=4 out:4
generate_workflow_output_css CC=8 out:9
redeploy.cli.query [1 funcs]
execute_query CC=5 out:9
redeploy.config_apply.applier [3 funcs]
_normalize_hardware CC=4 out:2
apply_config_dict CC=1 out:2
apply_config_file CC=4 out:6
redeploy.config_apply.handlers.display [2 funcs]
_validate_display_inputs CC=3 out:4
apply_display_transform CC=7 out:25
redeploy.config_apply.loader [1 funcs]
load_config_file CC=3 out:4
redeploy.detect.detector [2 funcs]
probe_hardware CC=2 out:4
run CC=9 out:30
redeploy.detect.hardware [2 funcs]
_wrap_remote_probe CC=1 out:2
probe_hardware CC=4 out:10
redeploy.detect.hardware_rules [3 funcs]
_hw_info_to_dict CC=2 out:2
_op3_diag_to_hw_diag CC=1 out:5
analyze CC=3 out:4
redeploy.detect.probes [4 funcs]
detect_conflicts CC=13 out:12
probe_iptables_dnat CC=7 out:5
probe_ports CC=6 out:11
probe_runtime CC=5 out:16
redeploy.detect.templates [4 funcs]
detect CC=2 out:3
_build_templates CC=1 out:1
_load_templates_from_yaml CC=9 out:22
build_context CC=2 out:1
redeploy.detect.workflow [2 funcs]
_collect_hosts CC=18 out:14
_probe_ssh CC=3 out:3
redeploy.discovery.auto_probe [6 funcs]
auto_probe CC=7 out:33
build_probe_command CC=1 out:0
build_ssh_command CC=1 out:1
detect_strategy_remote CC=3 out:5
parse_probe_input CC=4 out:1
run_ssh_probe CC=3 out:1
redeploy.discovery.helpers [2 funcs]
is_ip CC=1 out:2
run_shell CC=2 out:1
redeploy.discovery.registry [3 funcs]
_new_discovered_device CC=3 out:2
_update_existing_device CC=7 out:1
update_registry CC=9 out:9
redeploy.discovery.scanners [8 funcs]
detect_local_subnet CC=9 out:11
discover CC=14 out:22
merge_hosts CC=11 out:2
ping_sweep CC=6 out:20
probe_ssh_batch CC=1 out:6
scan_arp_cache CC=10 out:23
scan_known_hosts CC=10 out:18
scan_mdns CC=6 out:11
redeploy.discovery.ssh_credentials [3 funcs]
collect_ssh_keys CC=14 out:16
tcp_reachable CC=2 out:1
try_ssh_credentials CC=14 out:15
redeploy.discovery_probe [2 funcs]
infer_strategy CC=8 out:5
parse_probe_output CC=16 out:20
redeploy.dsl.loader [9 funcs]
_build_from_nodes CC=1 out:4
_build_manifest CC=25 out:23
_build_templates CC=14 out:24
_build_workflows CC=8 out:16
_condition_key CC=4 out:5
load_css CC=1 out:4
load_css_text CC=2 out:4
manifest_to_css CC=14 out:17
templates_to_css CC=6 out:13
redeploy.dsl.parser [3 funcs]
__repr__ CC=2 out:4
parse CC=6 out:23
_strip_comments CC=1 out:3
redeploy.dsl_python.runner [1 funcs]
list_migrations CC=5 out:13
redeploy.dsl_python.steps [2 funcs]
ssh CC=4 out:4
version_check CC=7 out:10
redeploy.fleet [4 funcs]
__init__ CC=1 out:1
from_registry CC=6 out:5
get CC=3 out:1
merge CC=3 out:3
redeploy.hardware.config_txt [2 funcs]
ensure_line CC=14 out:20
ensure_lines CC=4 out:4
redeploy.hardware.fixes [6 funcs]
_detect_port CC=6 out:0
_step CC=1 out:1
fix_dsi_not_enabled CC=6 out:20
fix_enable_i2c CC=1 out:1
fix_enable_spi CC=1 out:1
generate_fix_plan CC=7 out:3
redeploy.hardware.kiosk.autostart [1 funcs]
ensure_autostart_entry CC=6 out:6
redeploy.hardware.kiosk.browsers [1 funcs]
build_launch_cmd CC=5 out:3
redeploy.hardware.panels [1 funcs]
infer_from_hardware CC=1 out:0
redeploy.hardware.raspi_config [1 funcs]
build_raspi_config_command CC=3 out:2
redeploy.heal [12 funcs]
observe CC=5 out:4
_ask_and_apply_fix CC=7 out:15
_collect_diag_with_hint CC=2 out:2
_record_repair CC=1 out:2
_reload_migration CC=1 out:4
run CC=8 out:19
_ssh CC=3 out:2
apply_fix_to_spec CC=6 out:15
ask_llm CC=8 out:8
collect_diagnostics CC=2 out:4
redeploy.heal.hint_provider [6 funcs]
_extract_step_block CC=2 out:4
_parse_step_block CC=6 out:4
_ssh CC=3 out:2
apply_fix_to_spec CC=16 out:30
ask_llm CC=12 out:22
collect_diagnostics CC=2 out:4
redeploy.heal.loop_detector [1 funcs]
observe CC=5 out:4
redeploy.heal.runner [3 funcs]
_heal_step CC=14 out:40
_reload_migration CC=1 out:4
run CC=10 out:24
redeploy.iac.config_hints [1 funcs]
_parse_k8s_yaml CC=26 out:38
redeploy.iac.docker_compose [11 funcs]
_load_merged CC=6 out:9
_parse_service_depends_on CC=4 out:6
_parse_service_env CC=2 out:4
_parse_service_networks CC=4 out:6
_parse_service_ports CC=5 out:6
_parse_service_volumes CC=4 out:3
_resolve_image_and_build CC=7 out:8
_env_dict CC=7 out:6
_parse_port CC=10 out:21
_parse_volume CC=5 out:14
redeploy.iac.parsers.compose [2 funcs]
_parse_depends_on CC=5 out:6
_parse_service_networks CC=2 out:2
redeploy.integrations.op3_bridge [3 funcs]
snapshot_to_device_map CC=7 out:10
snapshot_to_hardware_info CC=10 out:49
snapshot_to_infra_state CC=3 out:2
redeploy.markpact.compiler [6 funcs]
_deep_merge CC=5 out:4
_extract_steps CC=9 out:20
_load_block_payload CC=8 out:7
_normalize_config_payload CC=11 out:18
compile_markpact_document CC=2 out:4
compile_markpact_document_to_data CC=6 out:8
redeploy.markpact.parser [10 funcs]
_check_heading CC=5 out:5
_handle_fence_line CC=7 out:7
_normalize_section_id CC=1 out:3
_parse_markpact_fence_info CC=14 out:10
extract_script_by_ref CC=12 out:11
extract_script_from_markdown CC=10 out:10
parse_markpact_file CC=1 out:3
parse_markpact_file_with_refs CC=6 out:6
parse_markpact_text CC=7 out:8
resolve_script_ref CC=6 out:5
redeploy.mcp_server [14 funcs]
_redeploy_bin CC=5 out:4
_run CC=4 out:4
_validate_exec_ssh_inputs CC=5 out:3
bump_version CC=3 out:4
diagnose CC=1 out:2
exec_ssh CC=4 out:4
fix_spec CC=4 out:5
get_workspace CC=1 out:3
list_specs CC=1 out:6
nlp_command CC=2 out:2
redeploy.models.manifest [2 funcs]
find_and_load CC=6 out:9
find_css CC=4 out:4
redeploy.models.spec [3 funcs]
from_file CC=2 out:5
to_target_config CC=2 out:2
_migrate_legacy_post_deploy CC=5 out:20
redeploy.observe [1 funcs]
record CC=11 out:20
redeploy.parse [7 funcs]
_apply_git_line CC=3 out:3
_apply_health_line CC=2 out:1
_apply_network_line CC=3 out:2
_apply_system_line CC=8 out:10
_parse_section_line CC=7 out:6
parse_container_line CC=3 out:3
parse_diagnostics CC=5 out:4
redeploy.patterns [6 funcs]
expand CC=2 out:14
expand CC=5 out:13
expand CC=1 out:8
_step CC=1 out:1
get_pattern CC=1 out:1
list_patterns CC=1 out:2
redeploy.plan.planner [1 funcs]
_plan_pattern CC=10 out:17
redeploy.plugins [5 funcs]
_ensure_builtins CC=2 out:1
names CC=1 out:2
_load_builtin_plugins CC=6 out:7
load_user_plugins CC=3 out:4
register_plugin CC=1 out:1
redeploy.plugins.builtin.browser_reload [1 funcs]
browser_reload CC=16 out:26
redeploy.plugins.builtin.hardware_diagnostic [11 funcs]
_analyze_hardware CC=14 out:32
_check_gpio CC=2 out:2
_detect_platform CC=10 out:6
_get_audio_devices CC=3 out:5
_get_cpu_info CC=5 out:10
_get_memory_mb CC=3 out:5
_get_network_interfaces CC=5 out:6
_get_storage_gb CC=6 out:11
_get_usb_devices CC=4 out:5
_run_command CC=2 out:3
redeploy.plugins.builtin.notify [6 funcs]
_fmt CC=1 out:3
_http_post CC=5 out:10
_notify_slack CC=3 out:7
_notify_webhook CC=6 out:16
_resolve_env CC=1 out:1
notify CC=4 out:5
redeploy.plugins.builtin.process_control [2 funcs]
_find_pid_on_port CC=11 out:14
process_control CC=9 out:19
redeploy.plugins.builtin.systemd_reload [1 funcs]
systemd_reload CC=12 out:23
redeploy.schema [5 funcs]
_discover_specs CC=14 out:26
_git_branch CC=3 out:2
_iac_info CC=2 out:0
_read_version CC=3 out:4
build_schema CC=2 out:7
redeploy.spec_loader [1 funcs]
load_migration_spec CC=4 out:8
redeploy.steps [2 funcs]
all CC=2 out:2
list CC=1 out:2
redeploy.version [1 funcs]
read_remote_version CC=4 out:3
redeploy.version.bump [6 funcs]
_calculate_bump CC=8 out:10
bump_all_packages CC=3 out:5
bump_package CC=9 out:13
bump_version CC=6 out:9
bump_version_with_git CC=13 out:14
verify_sources CC=4 out:7
redeploy.version.changelog [2 funcs]
_categorize_commits CC=3 out:3
get_commits_since_tag CC=5 out:3
redeploy.version.commits [3 funcs]
analyze_commits CC=18 out:25
format_analysis_report CC=2 out:3
parse_conventional CC=4 out:6
redeploy.version.diff [2 funcs]
diff_manifest_vs_live CC=2 out:2
diff_manifest_vs_spec CC=4 out:7
redeploy.version.manifest [1 funcs]
list_packages CC=2 out:2
redeploy.version.sources [1 funcs]
get_adapter CC=2 out:1
redeploy.version.transaction [1 funcs]
_stage_one CC=6 out:7
EDGES:
redeploy.schema.build_schema → redeploy.schema._read_version
redeploy.schema.build_schema → redeploy.schema._git_branch
redeploy.schema.build_schema → redeploy.schema._discover_specs
redeploy.schema.build_schema → redeploy.schema._iac_info
redeploy.observe.DeployAuditLog.record → redeploy.steps.StepLibrary.list
redeploy.heal.collect_diagnostics → redeploy.heal._ssh
redeploy.heal.HealLoopDetector.observe → redeploy.steps.StepLibrary.all
redeploy.heal.HealRunner._reload_migration → redeploy.spec_loader.load_migration_spec
redeploy.heal.HealRunner._collect_diag_with_hint → redeploy.heal.collect_diagnostics
redeploy.heal.HealRunner._ask_and_apply_fix → redeploy.heal.ask_llm
redeploy.heal.HealRunner._ask_and_apply_fix → redeploy.heal.apply_fix_to_spec
redeploy.heal.HealRunner._record_repair → redeploy.heal.write_repair_log
redeploy.heal.HealRunner.run → redeploy.heal.write_repair_log
redeploy.heal.HealRunner.run → redeploy.heal.parse_failed_step
redeploy.parse.parse_diagnostics → redeploy.parse._parse_section_line
redeploy.parse._parse_section_line → redeploy.parse._apply_system_line
redeploy.parse._parse_section_line → redeploy.parse.parse_container_line
redeploy.parse._parse_section_line → redeploy.parse._apply_git_line
redeploy.parse._parse_section_line → redeploy.parse._apply_health_line
redeploy.parse._parse_section_line → redeploy.parse._apply_network_line
redeploy.fleet.Fleet.__init__ → redeploy.steps.StepLibrary.list
redeploy.fleet.Fleet.from_registry → redeploy.steps.StepLibrary.list
redeploy.fleet.Fleet.merge → redeploy.steps.StepLibrary.list
redeploy.spec_loader.load_migration_spec → redeploy.markpact.compiler.compile_markpact_document
redeploy.spec_loader.load_migration_spec → redeploy.markpact.parser.parse_markpact_file
redeploy.patterns.BlueGreenPattern.expand → redeploy.patterns._step
redeploy.patterns.CanaryPattern.expand → redeploy.patterns._step
redeploy.patterns.RollbackOnFailurePattern.expand → redeploy.patterns._step
redeploy.patterns.list_patterns → redeploy.steps.StepLibrary.list
redeploy.mcp_server._run → redeploy.mcp_server._redeploy_bin
redeploy.mcp_server.schema → redeploy.schema.build_schema
redeploy.mcp_server.plan_spec → redeploy.mcp_server._run
redeploy.mcp_server.run_spec → redeploy.mcp_server._run
redeploy.mcp_server.fix_spec → redeploy.mcp_server._run
redeploy.mcp_server.bump_version → redeploy.mcp_server._run
redeploy.mcp_server.diagnose → redeploy.mcp_server._run
redeploy.mcp_server.list_specs → redeploy.schema.build_schema
redeploy.mcp_server.exec_ssh → redeploy.mcp_server._validate_exec_ssh_inputs
redeploy.mcp_server.nlp_command → redeploy.mcp_server._run
redeploy.mcp_server.get_workspace → redeploy.schema.build_schema
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_runtime
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_ports
redeploy.detect.detector.Detector.run → redeploy.detect.probes.probe_iptables_dnat
redeploy.detect.hardware.probe_hardware → redeploy.detect.hardware._wrap_remote_probe
redeploy.detect.hardware.probe_hardware → redeploy.integrations.op3_bridge.snapshot_to_hardware_info
redeploy.detect.hardware.probe_hardware → redeploy.steps.StepLibrary.list
redeploy.detect.hardware_rules.analyze → redeploy.detect.hardware_rules._hw_info_to_dict
redeploy.detect.hardware_rules.analyze → redeploy.detect.hardware_rules._op3_diag_to_hw_diag
redeploy.detect.templates._build_templates → redeploy.detect.templates._load_templates_from_yaml
redeploy.detect.templates.TemplateEngine.detect → redeploy.detect.templates.build_context
# code2llm | 310f 40584L | python:220,md:44,yaml:37,yml:3,shell:2,json:1,toml:1 | 2026-05-20
# generated in 0.07s
# CC̄=5.0 | critical:37/985 | dups:0 | cycles:0
HEALTH[20]:
🟡 CC verify_expectations CC=25 (limit:15)
🟡 CC _collect_hosts CC=18 (limit:15)
🟡 CC apply_fix_to_spec CC=16 (limit:15)
🟡 CC parse_probe_output CC=16 (limit:15)
🟡 CC apply_to_spec CC=20 (limit:15)
🟡 CC render_rich CC=22 (limit:15)
🟡 CC _find_spec CC=15 (limit:15)
🟡 CC fix_cmd CC=17 (limit:15)
🟡 CC _print_blueprint CC=20 (limit:15)
🟡 CC import_cmd CC=21 (limit:15)
🟡 CC _print_import_spec CC=15 (limit:15)
🟡 CC _spec_to_migration_yaml CC=22 (limit:15)
🟡 CC gh_workflow_run CC=19 (limit:15)
🟡 CC lint CC=19 (limit:15)
🟡 CC prompt_cmd CC=15 (limit:15)
🟡 CC push CC=15 (limit:15)
🟡 CC audit CC=18 (limit:15)
🟡 CC version_init CC=26 (limit:15)
🟡 CC _bump_single CC=25 (limit:15)
🟡 CC browser_reload CC=16 (limit:15)
REFACTOR[1]:
1. split 20 high-CC methods (CC>15)
PIPELINES[518]:
[1] Src [to_dict]: to_dict
PURITY: 100% pure
[2] Src [record]: record → list
PURITY: 100% pure
[3] Src [_append]: _append
PURITY: 100% pure
[4] Src [load]: load
PURITY: 100% pure
[5] Src [tail]: tail
PURITY: 100% pure
LAYERS:
examples/ CC̄=8.7 ←in:0 →out:0
│ migration.md 312L 0C 0m CC=0.0 ←0
│ migration.md 255L 0C 0m CC=0.0 ←0
│ rpi5-waveshare-kiosk.md 196L 0C 0m CC=0.0 ←0
│ migration.md 145L 0C 0m CC=0.0 ←0
│ migration.md 138L 0C 0m CC=0.0 ←0
│ !! gitops_ci 137L 2C 5m CC=16 ←0
│ argocd_flux 129L 2C 4m CC=13 ←0
│ fleet.yaml 128L 0C 0m CC=0.0 ←0
│ !! helm_kustomize 113L 2C 5m CC=17 ←0
│ helm_ansible 94L 2C 4m CC=11 ←0
│ migration-rpi5.yaml 85L 0C 0m CC=0.0 ←0
│ README.md 81L 0C 0m CC=0.0 ←0
│ migration.yaml 72L 0C 0m CC=0.0 ←0
│ README.md 67L 0C 0m CC=0.0 ←0
│ waveshare-8-inch-dsi.md 64L 0C 0m CC=0.0 ←0
│ README.md 63L 0C 0m CC=0.0 ←0
│ fleet.yaml 62L 0C 0m CC=0.0 ←0
│ migration.yaml 62L 0C 0m CC=0.0 ←0
│ README.md 62L 0C 0m CC=0.0 ←0
│ migration.yaml 61L 0C 0m CC=0.0 ←0
│ official-dsi-7-inch.md 58L 0C 0m CC=0.0 ←0
│ README.md 55L 0C 0m CC=0.0 ←0
│ migration.yaml 52L 0C 0m CC=0.0 ←0
│ migration.yaml 52L 0C 0m CC=0.0 ←0
│ migration.md 51L 0C 0m CC=0.0 ←0
│ README.md 49L 0C 0m CC=0.0 ←0
│ README.md 48L 0C 0m CC=0.0 ←0
│ migration.yaml 46L 0C 0m CC=0.0 ←0
│ enable-i2c-spi.md 45L 0C 0m CC=0.0 ←0
│ README.md 45L 0C 0m CC=0.0 ←0
│ migration.md 45L 0C 0m CC=0.0 ←0
│ migration.yaml 44L 0C 0m CC=0.0 ←0
│ README.md 44L 0C 0m CC=0.0 ←0
│ migration.yaml 43L 0C 0m CC=0.0 ←0
│ README.md 41L 0C 0m CC=0.0 ←0
│ README.md 41L 0C 0m CC=0.0 ←0
│ README.md 40L 0C 0m CC=0.0 ←0
│ README.md 40L 0C 0m CC=0.0 ←0
│ migration.yaml 40L 0C 0m CC=0.0 ←0
│ migration.md 39L 0C 0m CC=0.0 ←0
│ 14-blue-green.yaml 38L 0C 0m CC=0.0 ←0
│ deploy.github.yml 38L 0C 0m CC=0.0 ←0
│ migration.yaml 37L 0C 0m CC=0.0 ←0
│ 15-canary.yaml 36L 0C 0m CC=0.0 ←0
│ README.md 36L 0C 0m CC=0.0 ←0
│ 16-auto-rollback.yaml 35L 0C 0m CC=0.0 ←0
│ migration.yaml 35L 0C 0m CC=0.0 ←0
│ README.md 35L 0C 0m CC=0.0 ←0
│ prod.yaml 34L 0C 0m CC=0.0 ←0
│ 13-kiosk-appliance.yaml 33L 0C 0m CC=0.0 ←0
│ staging.yaml 33L 0C 0m CC=0.0 ←0
│ README.md 29L 0C 0m CC=0.0 ←0
│ README.md 29L 0C 0m CC=0.0 ←0
│ README.md 29L 0C 0m CC=0.0 ←0
│ dev.yaml 28L 0C 0m CC=0.0 ←0
│ deploy.gitlab.yml 21L 0C 0m CC=0.0 ←0
│ redeploy.yaml 11L 0C 0m CC=0.0 ←0
│ redeploy.yaml 6L 0C 0m CC=0.0 ←0
│ redeploy.yaml 6L 0C 0m CC=0.0 ←0
│ redeploy.yaml 6L 0C 0m CC=0.0 ←0
│ redeploy.yaml 5L 0C 0m CC=0.0 ←0
│ redeploy.yaml 5L 0C 0m CC=0.0 ←0
│ tls.yml 4L 0C 0m CC=0.0 ←0
│ redeploy.yaml 4L 0C 0m CC=0.0 ←0
│ redeploy.yaml 3L 0C 0m CC=0.0 ←0
│
redeploy/ CC̄=4.9 ←in:77 →out:3
│ !! handlers 655L 0C 22m CC=16 ←2
│ !! planner 627L 1C 21m CC=10 ←0
│ !! commands 594L 0C 8m CC=26 ←0
│ !! docker_compose 476L 1C 23m CC=25 ←0
│ templates 419L 6C 13m CC=9 ←0
│ !! workflow 418L 3C 12m CC=18 ←0
│ patterns 407L 4C 11m CC=5 ←1
│ !! loader 403L 3C 12m CC=25 ←5
│ hardware 398L 0C 11m CC=13 ←0
│ !! fleet 396L 6C 23m CC=25 ←1
│ display 389L 0C 25m CC=9 ←6
│ !! import_ 357L 0C 8m CC=22 ←0
│ mcp_server 356L 0C 15m CC=5 ←2
│ executor 354L 1C 17m CC=14 ←0
│ !! helpers 349L 0C 10m CC=25 ←2
│ !! bump_fix 348L 0C 12m CC=17 ←0
│ !! prompt_cmd 343L 0C 4m CC=15 ←0
│ !! blueprint 339L 0C 8m CC=20 ←0
│ !! hint_provider 327L 0C 8m CC=16 ←0
│ observe 313L 3C 14m CC=12 ←0
│ schema 311L 0C 6m CC=14 ←2
│ parser 310L 1C 10m CC=14 ←6
│ ssh 301L 4C 17m CC=7 ←0
│ !! compose 299L 1C 18m CC=18 ←0
│ plan_apply_report 296L 0C 10m CC=14 ←1
│ steps 294L 0C 7m CC=7 ←0
│ !! gh_workflow 291L 0C 15m CC=19 ←0
│ !! config_hints 289L 1C 15m CC=26 ←0
│ bump 284L 0C 6m CC=13 ←3
│ probes 283L 0C 9m CC=13 ←1
│ hardware_diagnostic 282L 1C 11m CC=14 ←0
│ preflight_schema 279L 1C 6m CC=14 ←1
│ base 275L 7C 13m CC=7 ←1
│ runner 265L 1C 5m CC=14 ←0
│ scanner 262L 0C 18m CC=13 ←1
│ parser 261L 2C 8m CC=8 ←0
│ scanners 254L 0C 8m CC=14 ←3
│ op3_bridge 250L 0C 5m CC=10 ←3
│ exec_ 240L 0C 6m CC=10 ←0
│ plan_apply_shared 235L 0C 10m CC=13 ←1
│ !! state_apply 222L 4C 9m CC=18 ←2
│ !! commits 218L 2C 3m CC=18 ←2
│ templates.yaml 215L 0C 0m CC=0.0 ←0
│ docker_steps 211L 2C 6m CC=7 ←0
│ !! runner 205L 1C 5m CC=15 ←0
│ changelog 204L 1C 15m CC=7 ←1
│ fixes 203L 0C 6m CC=7 ←1
│ devices 192L 0C 4m CC=14 ←0
│ parse 190L 0C 10m CC=12 ←0
│ !! docker_compose 190L 0C 2m CC=20 ←1
│ auto_probe 186L 0C 9m CC=7 ←4
│ spec 182L 3C 6m CC=5 ←1
│ extractor 182L 1C 5m CC=14 ←0
│ compiler 182L 1C 6m CC=11 ←3
│ __init__ 180L 2C 10m CC=7 ←8
│ core 179L 0C 7m CC=10 ←7
│ !! migration 179L 0C 1m CC=19 ←1
│ device_map_actions 174L 0C 5m CC=13 ←1
│ devices 170L 4C 13m CC=5 ←0
│ !! device_map_renderers 170L 0C 7m CC=22 ←0
│ manifest 169L 8C 10m CC=6 ←0
│ notify 168L 0C 7m CC=6 ←0
│ run_cmd 168L 0C 1m CC=13 ←0
│ process_control_template.yaml 164L 0C 0m CC=0.0 ←0
│ transaction 162L 2C 6m CC=12 ←0
│ state 161L 1C 13m CC=5 ←2
│ docker_build 160L 1C 7m CC=12 ←0
│ auditor 155L 1C 13m CC=4 ←0
│ release 153L 0C 6m CC=7 ←2
│ __init__ 153L 0C 0m CC=0.0 ←0
│ !! manifest 151L 2C 6m CC=20 ←0
│ __init__ 148L 0C 4m CC=8 ←1
│ !! compose 146L 0C 6m CC=21 ←1
│ compose 143L 1C 6m CC=11 ←0
│ git_integration 142L 2C 13m CC=4 ←0
│ !! extractor 140L 0C 1m CC=22 ←1
│ monorepo 139L 0C 5m CC=11 ←1
│ detect 137L 0C 1m CC=11 ←0
│ decorators 137L 4C 8m CC=3 ←0
│ __init__ 126L 0C 3m CC=5 ←0
│ export 126L 0C 6m CC=9 ←0
│ !! audit 126L 0C 1m CC=18 ←0
│ display 125L 0C 2m CC=7 ←1
│ process_control 123L 0C 3m CC=11 ←0
│ __init__ 121L 0C 0m CC=0.0 ←0
│ !! browser_reload 120L 0C 3m CC=16 ←0
│ spec_analyzer 118L 1C 3m CC=7 ←0
│ state 118L 0C 4m CC=7 ←0
│ diff 118L 1C 3m CC=8 ←1
│ hardware 117L 5C 0m CC=0.0 ←0
│ init 111L 0C 1m CC=10 ←0
│ ssh_credentials 111L 0C 3m CC=14 ←1
│ !! push 110L 0C 1m CC=15 ←0
│ progress 107L 1C 11m CC=2 ←0
│ registry 107L 0C 4m CC=14 ←1
│ git_transaction 105L 2C 5m CC=9 ←0
│ detector 104L 1C 4m CC=9 ←2
│ plan_apply_run 104L 0C 3m CC=8 ←1
│ patterns 104L 0C 1m CC=8 ←0
│ toml_ 104L 1C 3m CC=10 ←0
│ systemd_reload 98L 0C 2m CC=12 ←0
│ __init__ 97L 1C 4m CC=4 ←43
│ target 97L 0C 1m CC=10 ←1
│ blueprint 95L 6C 3m CC=3 ←0
│ path 94L 2C 5m CC=9 ←1
│ yaml_ 94L 1C 3m CC=10 ←0
│ verify 92L 1C 7m CC=8 ←0
│ probe 91L 0C 1m CC=11 ←0
│ json_ 90L 1C 3m CC=9 ←0
│ config_txt 88L 1C 2m CC=14 ←1
│ generic 87L 0C 1m CC=1 ←0
│ workflow 87L 0C 3m CC=10 ←0
│ ignore 86L 1C 4m CC=9 ←2
│ !! lint 86L 0C 1m CC=19 ←0
│ decider 85L 2C 2m CC=7 ←1
│ autostart 84L 1C 3m CC=6 ←1
│ hardware 83L 0C 2m CC=4 ←0
│ command_ref 83L 1C 2m CC=10 ←0
│ plan 83L 2C 0m CC=0.0 ←0
│ models 81L 3C 3m CC=2 ←0
│ compositors 80L 1C 1m CC=2 ←0
│ plugin 79L 0C 1m CC=13 ←0
│ probe 78L 1C 8m CC=4 ←0
│ browsers 78L 1C 1m CC=5 ←0
│ device_map 78L 0C 1m CC=11 ←0
│ plan_cmd 78L 0C 1m CC=11 ←0
│ probe_display 77L 0C 3m CC=9 ←1
│ infra 77L 6C 0m CC=0.0 ←0
│ __init__ 77L 0C 0m CC=0.0 ←0
│ migrate_cmd 75L 0C 1m CC=13 ←0
│ binary 74L 1C 2m CC=14 ←0
│ inspect 73L 0C 2m CC=4 ←0
│ applier 72L 0C 3m CC=4 ←3
│ run_container_build 69L 0C 1m CC=10 ←1
│ enums 69L 4C 0m CC=0.0 ←0
│ output_profiles 68L 1C 2m CC=5 ←0
│ regex 65L 1C 2m CC=5 ←0
│ __init__ 65L 1C 5m CC=2 ←3
│ registry 64L 0C 3m CC=9 ←1
│ loop_detector 61L 2C 4m CC=5 ←0
│ devices_display 61L 0C 2m CC=13 ←1
│ __init__ 59L 0C 0m CC=0.0 ←0
│ k3s 58L 0C 1m CC=1 ←0
│ hardware_rules 56L 0C 3m CC=3 ←0
│ status 55L 0C 1m CC=12 ←0
│ mcp_cmd 54L 0C 1m CC=1 ←0
│ __init__ 52L 0C 0m CC=0.0 ←0
│ log_writer 51L 0C 1m CC=6 ←0
│ __init__ 51L 0C 1m CC=1 ←1
│ panels 51L 1C 5m CC=2 ←2
│ apply_cmd 51L 0C 1m CC=9 ←0
│ base 49L 1C 5m CC=3 ←0
│ kiosk 49L 0C 0m CC=0.0 ←0
│ models 48L 3C 3m CC=3 ←1
│ waveshare 48L 0C 0m CC=0.0 ←0
│ spec_loader 47L 2C 1m CC=4 ←4
│ diagnose 47L 0C 1m CC=5 ←0
│ __init__ 47L 0C 0m CC=0.0 ←0
│ data_sync 45L 0C 2m CC=7 ←0
│ hardware 45L 0C 1m CC=13 ←1
│ exceptions 44L 6C 4m CC=1 ←0
│ rollback 44L 0C 1m CC=8 ←1
│ __init__ 44L 0C 0m CC=0.0 ←0
│ infra 43L 0C 2m CC=8 ←1
│ query 42L 0C 1m CC=5 ←3
│ podman 41L 0C 1m CC=1 ←0
│ hyperpixel 41L 0C 0m CC=0.0 ←0
│ docker 40L 0C 1m CC=1 ←0
│ reference 39L 1C 1m CC=12 ←0
│ context 39L 1C 3m CC=1 ←0
│ types 38L 2C 0m CC=0.0 ←0
│ __init__ 37L 0C 0m CC=0.0 ←0
│ pipeline 35L 1C 0m CC=0.0 ←0
│ paths 34L 0C 3m CC=5 ←1
│ migration 34L 0C 1m CC=9 ←1
│ diff 33L 0C 1m CC=1 ←0
│ process 32L 0C 1m CC=1 ←0
│ helpers 32L 0C 3m CC=2 ←1
│ raspi_config 32L 0C 1m CC=3 ←1
│ __init__ 31L 0C 0m CC=0.0 ←0
│ __init__ 30L 0C 0m CC=0.0 ←0
│ patterns 28L 0C 0m CC=0.0 ←0
│ persisted 27L 1C 2m CC=1 ←0
│ git_config 27L 0C 1m CC=5 ←0
│ changelog_config 27L 0C 1m CC=5 ←0
│ models 26L 2C 0m CC=0.0 ←0
│ __init__ 26L 0C 0m CC=0.0 ←0
│ plain 24L 1C 2m CC=2 ←0
│ env 23L 1C 1m CC=5 ←0
│ scm 22L 0C 1m CC=1 ←0
│ hardware 22L 0C 1m CC=1 ←0
│ transfer 22L 0C 1m CC=1 ←0
│ base 19L 1C 1m CC=1 ←0
│ __init__ 18L 0C 0m CC=0.0 ←0
│ official 18L 0C 0m CC=0.0 ←0
│ loader 17L 0C 1m CC=3 ←1
│ __init__ 15L 0C 0m CC=0.0 ←0
│ __init__ 15L 0C 0m CC=0.0 ←0
│ exceptions 12L 1C 1m CC=1 ←0
│ __init__ 11L 0C 0m CC=0.0 ←0
│ __init__ 10L 0C 0m CC=0.0 ←0
│ plan_apply 9L 0C 0m CC=0.0 ←0
│ __init__ 8L 0C 0m CC=0.0 ←0
│ __init__ 8L 0C 0m CC=0.0 ←0
│ __init__ 8L 0C 0m CC=0.0 ←0
│ __init__ 6L 0C 0m CC=0.0 ←0
│ __init__ 6L 0C 0m CC=0.0 ←0
│ __init__ 5L 0C 0m CC=0.0 ←0
│ remote 4L 0C 0m CC=0.0 ←0
│ __init__ 4L 0C 0m CC=0.0 ←0
│ __init__ 4L 0C 0m CC=0.0 ←0
│ __init__ 2L 0C 0m CC=0.0 ←0
│ __init__ 1L 0C 0m CC=0.0 ←0
│ __init__ 1L 0C 0m CC=0.0 ←0
│ __init__ 1L 0C 0m CC=0.0 ←0
│ heal 0L 2C 20m CC=8 ←1
│ !! discovery_probe 0L 0C 2m CC=16 ←1
│ __init__ 0L 0C 0m CC=0.0 ←0
│
./ CC̄=0.0 ←in:0 →out:0
│ !! CHANGELOG.md 1526L 0C 0m CC=0.0 ←0
│ !! README.md 1117L 0C 0m CC=0.0 ←0
│ !! goal.yaml 512L 0C 0m CC=0.0 ←0
│ REFACTORING.md 399L 0C 0m CC=0.0 ←0
│ TODO.md 287L 0C 0m CC=0.0 ←0
│ DOQL-INTEGRATION.md 197L 0C 0m CC=0.0 ←0
│ sumd.json 156L 0C 0m CC=0.0 ←0
│ Makefile 154L 0C 0m CC=0.0 ←0
│ pyproject.toml 74L 0C 0m CC=0.0 ←0
│ project.sh 42L 0C 0m CC=0.0 ←0
│ REPAIR_LOG.md 37L 0C 0m CC=0.0 ←0
│ pyqual.yaml 32L 0C 0m CC=0.0 ←0
│ tree.sh 1L 0C 0m CC=0.0 ←0
│
docs/ CC̄=0.0 ←in:0 →out:0
│ !! README.md 1176L 0C 0m CC=0.0 ←0
│ dsl-migration.md 478L 0C 0m CC=0.0 ←0
│ fleet.md 366L 0C 0m CC=0.0 ←0
│ patterns.md 304L 0C 0m CC=0.0 ←0
│ observe.md 302L 0C 0m CC=0.0 ←0
│ markpact-implementation-plan.md 284L 0C 0m CC=0.0 ←0
│ README.md 202L 0C 0m CC=0.0 ←0
│ markpact-audit.md 81L 0C 0m CC=0.0 ←0
│ op3-migration.md 44L 0C 0m CC=0.0 ←0
│
scripts/ CC̄=0.0 ←in:0 →out:0
│ quality_gate 48L 0C 0m CC=0.0 ←0
│
reports/ CC̄=0.0 ←in:0 →out:0
│ hardware-108.yaml 224L 0C 0m CC=0.0 ←0
│ hardware-109.yaml 200L 0C 0m CC=0.0 ←0
│
testql-scenarios/ CC̄=0.0 ←in:0 →out:0
│ generated-from-pytests.testql.toon.yaml 22L 0C 0m CC=0.0 ←0
│ generated-cli-tests.testql.toon.yaml 12L 0C 0m CC=0.0 ←0
│
── zero ──
redeploy/blueprint/generators/__init__.py 0L
redeploy/discovery_probe.py 0L
redeploy/heal.py 0L
COUPLING:
redeploy redeploy.cli redeploy.version redeploy.apply redeploy.discovery redeploy.markpact redeploy.analyze redeploy.heal redeploy.iac redeploy.dsl redeploy.detect redeploy.models redeploy.blueprint redeploy.hardware redeploy.config_apply
redeploy ── ←25 ←1 ←2 1 2 ←3 ←11 ←7 ←1 ←3 ←4 ←2 ←1 hub
redeploy.cli 25 ── 15 7 5 1 3 2 7 2 3 2 4 !! fan-out
redeploy.version 1 ←15 ── hub
redeploy.apply 2 ←7 ── 1 3 ←1 hub
redeploy.discovery 5 ←5 ── ←2 hub
redeploy.markpact ←2 ←1 ←1 ── ←5 ←1 2 hub
redeploy.analyze 3 ←3 5 ── !! fan-out
redeploy.heal 11 ── !! fan-out
redeploy.iac 7 ←2 1 ── !! fan-out
redeploy.dsl 1 ←7 ── ←1 hub
redeploy.detect 3 ←2 2 ──
redeploy.models 4 ←2 1 ──
redeploy.blueprint 2 ←3 ──
redeploy.hardware 1 ←2 ←3 ── hub
redeploy.config_apply ←4 1 ──
CYCLES: none
HUB: redeploy.hardware/ (fan-in=5)
HUB: redeploy.apply/ (fan-in=8)
HUB: redeploy/ (fan-in=77)
HUB: redeploy.version/ (fan-in=15)
HUB: redeploy.dsl/ (fan-in=8)
HUB: redeploy.markpact/ (fan-in=10)
HUB: redeploy.discovery/ (fan-in=8)
SMELL: redeploy.analyze/ fan-out=8 → split needed
SMELL: redeploy.heal/ fan-out=11 → split needed
SMELL: redeploy.iac/ fan-out=8 → split needed
SMELL: redeploy.cli/ fan-out=77 → split needed
EXTERNAL:
validation: run `vallm batch .` → validation.toon
duplication: run `redup scan .` → duplication.toon
# redup/duplication | 11 groups | 216f 28973L | 2026-05-19
SUMMARY:
files_scanned: 216
total_lines: 28973
dup_groups: 11
dup_fragments: 22
saved_lines: 121
scan_ms: 2758
HOTSPOTS[7] (files with most duplication):
redeploy/cli/commands/version/helpers.py dup=38L groups=2 frags=2 (0.1%)
redeploy/cli/commands/version/release.py dup=38L groups=2 frags=2 (0.1%)
redeploy/hardware/fixes.py dup=26L groups=1 frags=2 (0.1%)
redeploy/cli/commands/version/utils/changelog_config.py dup=21L groups=1 frags=1 (0.1%)
redeploy/cli/commands/version/utils/git_config.py dup=21L groups=1 frags=1 (0.1%)
examples/redeploy_iac_parsers/argocd_flux.py dup=20L groups=1 frags=2 (0.1%)
redeploy/heal.py dup=18L groups=3 frags=3 (0.1%)
DUPLICATES[11] (ranked by impact):
[bb546964bbb3b9b9] EXAC _resolve_package_release_git_config L=22 N=2 saved=22 sim=1.00
redeploy/cli/commands/version/helpers.py:60-81 (_resolve_package_release_git_config)
redeploy/cli/commands/version/release.py:114-135 (_resolve_package_release_git_config)
[110f695b3d13b4e5] STRU resolve_package_release_changelog_config L=21 N=2 saved=21 sim=1.00
redeploy/cli/commands/version/utils/changelog_config.py:7-27 (resolve_package_release_changelog_config)
redeploy/cli/commands/version/utils/git_config.py:7-27 (resolve_package_release_git_config)
[7764f64185066b87] EXAC _resolve_package_release_changelog_config L=16 N=2 saved=16 sim=1.00
redeploy/cli/commands/version/helpers.py:84-99 (_resolve_package_release_changelog_config)
redeploy/cli/commands/version/release.py:138-153 (_resolve_package_release_changelog_config)
[834af96e195aeafb] STRU fix_enable_i2c L=13 N=2 saved=13 sim=1.00
redeploy/hardware/fixes.py:137-149 (fix_enable_i2c)
redeploy/hardware/fixes.py:152-164 (fix_enable_spi)
[6378b1bc4c001c05] STRU can_parse L=10 N=2 saved=10 sim=1.00
examples/redeploy_iac_parsers/argocd_flux.py:27-36 (can_parse)
examples/redeploy_iac_parsers/argocd_flux.py:81-90 (can_parse)
[38b4a0d706405cb1] STRU _load_dotenv L=9 N=2 saved=9 sim=1.00
redeploy/cli/commands/bump_fix.py:163-171 (_load_dotenv)
redeploy/cli/commands/plan_apply_shared.py:119-127 (load_dotenv_for_heal)
[fc600e8d2f11c2ec] EXAC collect_diagnostics L=8 N=2 saved=8 sim=1.00
redeploy/heal/hint_provider.py:82-89 (collect_diagnostics)
redeploy/heal.py:87-94 (collect_diagnostics)
[069a3d8b69b2d778] STRU run_docker_build L=8 N=2 saved=8 sim=1.00
redeploy/apply/handlers.py:119-126 (run_docker_build)
redeploy/apply/handlers.py:129-136 (run_podman_build)
[2bcb64b1eb9fa406] EXAC _ssh L=7 N=2 saved=7 sim=1.00
redeploy/heal/hint_provider.py:73-79 (_ssh)
redeploy/heal.py:78-84 (_ssh)
[18c2c8acae3b5cbb] STRU _print_banner L=4 N=2 saved=4 sim=1.00
redeploy/cli/commands/bump_fix.py:340-343 (_print_banner)
redeploy/cli/commands/plan_apply_shared.py:141-144 (print_heal_banner)
[cd12ee27f7030458] EXAC reset L=3 N=2 saved=3 sim=1.00
redeploy/heal/loop_detector.py:55-57 (reset)
redeploy/heal.py:271-273 (reset)
REFACTOR[11] (ranked by priority):
[1] ○ extract_function → redeploy/cli/commands/version/utils/_resolve_package_release_git_config.py
WHY: 2 occurrences of 22-line block across 2 files — saves 22 lines
FILES: redeploy/cli/commands/version/helpers.py, redeploy/cli/commands/version/release.py
[2] ○ extract_function → redeploy/cli/commands/version/utils/utils/resolve_package_release_changelog_config.py
WHY: 2 occurrences of 21-line block across 2 files — saves 21 lines
FILES: redeploy/cli/commands/version/utils/changelog_config.py, redeploy/cli/commands/version/utils/git_config.py
[3] ○ extract_function → redeploy/cli/commands/version/utils/_resolve_package_release_changelog_config.py
WHY: 2 occurrences of 16-line block across 2 files — saves 16 lines
FILES: redeploy/cli/commands/version/helpers.py, redeploy/cli/commands/version/release.py
[4] ○ extract_function → redeploy/hardware/utils/fix_enable_i2c.py
WHY: 2 occurrences of 13-line block across 1 files — saves 13 lines
FILES: redeploy/hardware/fixes.py
[5] ○ extract_function → examples/redeploy_iac_parsers/utils/can_parse.py
WHY: 2 occurrences of 10-line block across 1 files — saves 10 lines
FILES: examples/redeploy_iac_parsers/argocd_flux.py
[6] ○ extract_function → redeploy/cli/commands/utils/_load_dotenv.py
WHY: 2 occurrences of 9-line block across 2 files — saves 9 lines
FILES: redeploy/cli/commands/bump_fix.py, redeploy/cli/commands/plan_apply_shared.py
[7] ○ extract_function → redeploy/utils/collect_diagnostics.py
WHY: 2 occurrences of 8-line block across 2 files — saves 8 lines
FILES: redeploy/heal.py, redeploy/heal/hint_provider.py
[8] ○ extract_function → redeploy/apply/utils/run_docker_build.py
WHY: 2 occurrences of 8-line block across 1 files — saves 8 lines
FILES: redeploy/apply/handlers.py
[9] ○ extract_function → redeploy/utils/_ssh.py
WHY: 2 occurrences of 7-line block across 2 files — saves 7 lines
FILES: redeploy/heal.py, redeploy/heal/hint_provider.py
[10] ○ extract_function → redeploy/cli/commands/utils/_print_banner.py
WHY: 2 occurrences of 4-line block across 2 files — saves 4 lines
FILES: redeploy/cli/commands/bump_fix.py, redeploy/cli/commands/plan_apply_shared.py
[11] ○ extract_class → redeploy/utils/reset.py
WHY: 2 occurrences of 3-line block across 2 files — saves 3 lines
FILES: redeploy/heal.py, redeploy/heal/loop_detector.py
QUICK_WINS[9] (low risk, high savings — do first):
[1] extract_function saved=22L → redeploy/cli/commands/version/utils/_resolve_package_release_git_config.py
FILES: helpers.py, release.py
[2] extract_function saved=21L → redeploy/cli/commands/version/utils/utils/resolve_package_release_changelog_config.py
FILES: changelog_config.py, git_config.py
[3] extract_function saved=16L → redeploy/cli/commands/version/utils/_resolve_package_release_changelog_config.py
FILES: helpers.py, release.py
[4] extract_function saved=13L → redeploy/hardware/utils/fix_enable_i2c.py
FILES: fixes.py
[5] extract_function saved=10L → examples/redeploy_iac_parsers/utils/can_parse.py
FILES: argocd_flux.py
[6] extract_function saved=9L → redeploy/cli/commands/utils/_load_dotenv.py
FILES: bump_fix.py, plan_apply_shared.py
[7] extract_function saved=8L → redeploy/utils/collect_diagnostics.py
FILES: heal.py, hint_provider.py
[8] extract_function saved=8L → redeploy/apply/utils/run_docker_build.py
FILES: handlers.py
[9] extract_function saved=7L → redeploy/utils/_ssh.py
FILES: heal.py, hint_provider.py
EFFORT_ESTIMATE (total ≈ 4.0h):
medium _resolve_package_release_git_config saved=22L ~44min
medium resolve_package_release_changelog_config saved=21L ~42min
medium _resolve_package_release_changelog_config saved=16L ~32min
easy fix_enable_i2c saved=13L ~26min
easy can_parse saved=10L ~20min
easy _load_dotenv saved=9L ~18min
easy collect_diagnostics saved=8L ~16min
easy run_docker_build saved=8L ~16min
easy _ssh saved=7L ~14min
easy _print_banner saved=4L ~8min
... +1 more (~6min)
METRICS-TARGET:
dup_groups: 11 → 0
saved_lines: 121 lines recoverable
# code2llm/evolution | 967 func | 173f | 2026-05-20
# generated in 0.00s
NEXT[10] (ranked by impact):
[1] !! SPLIT-FUNC version_init CC=26 fan=26
WHY: CC=26 exceeds 15
EFFORT: ~1h IMPACT: 676
[2] !! SPLIT-FUNC DockerComposeParser.parse CC=25 fan=24
WHY: CC=25 exceeds 15
EFFORT: ~1h IMPACT: 600
[3] ! SPLIT-FUNC import_cmd CC=21 fan=26
WHY: CC=21 exceeds 15
EFFORT: ~1h IMPACT: 546
[4] !! SPLIT-FUNC ConfigHintsParser._parse_k8s_yaml CC=26 fan=20
WHY: CC=26 exceeds 15
EFFORT: ~1h IMPACT: 520
[5] ! SPLIT-FUNC fix_cmd CC=17 fan=30
WHY: CC=17 exceeds 15
EFFORT: ~1h IMPACT: 510
[6] ! SPLIT-FUNC gh_workflow_run CC=19 fan=25
WHY: CC=19 exceeds 15
EFFORT: ~1h IMPACT: 475
[7] ! SPLIT-FUNC ConfigHintsParser._parse_github_actions CC=22 fan=21
WHY: CC=22 exceeds 15
EFFORT: ~1h IMPACT: 462
[8] ! SPLIT-FUNC extract_blueprint CC=22 fan=20
WHY: CC=22 exceeds 15
EFFORT: ~1h IMPACT: 440
[9] ! SPLIT-FUNC audit CC=18 fan=24
WHY: CC=18 exceeds 15
EFFORT: ~1h IMPACT: 432
[10] ! SPLIT-FUNC lint CC=19 fan=22
WHY: CC=19 exceeds 15
EFFORT: ~1h IMPACT: 418
RISKS[3]:
⚠ Splitting CHANGELOG.md may break 0 import paths
⚠ Splitting docs/README.md may break 0 import paths
⚠ Splitting README.md may break 0 import paths
METRICS-TARGET:
CC̄: 4.9 → ≤3.4
max-CC: 26 → ≤13
god-modules: 7 → 0
high-CC(≥15): 34 → ≤17
hub-types: 0 → ≤0
PATTERNS (language parser shared logic):
_extract_declarations() in base.py — unified extraction for:
- TypeScript: interfaces, types, classes, functions, arrow funcs
- PHP: namespaces, traits, classes, functions, includes
- Ruby: modules, classes, methods, requires
- C++: classes, structs, functions, #includes
- C#: classes, interfaces, methods, usings
- Java: classes, interfaces, methods, imports
- Go: packages, functions, structs
- Rust: modules, functions, traits, use statements
Shared regex patterns per language:
- import: language-specific import/require/using patterns
- class: class/struct/trait declarations with inheritance
- function: function/method signatures with visibility
- brace_tracking: for C-family languages ({ })
- end_keyword_tracking: for Ruby (module/class/def...end)
Benefits:
- Consistent extraction logic across all languages
- Reduced code duplication (~70% reduction in parser LOC)
- Easier maintenance: fix once, apply everywhere
- Standardized FunctionInfo/ClassInfo models
HISTORY:
prev CC̄=5.0 → now CC̄=4.9
# vallm batch | 270f | 0✓ 214⚠ 0✗ | 2026-04-21
SUMMARY:
scanned: 270 passed: 0 (0.0%) warnings: 214 errors: 0 unsupported: 0
WARNINGS[214]{path,score}:
redeploy/detect/hardware.py,0.68
issues[4]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,probe_wlr_randr: CC=17 exceeds limit 15,95
complexity.lizard_cc,warning,_analyze: CC=43 exceeds limit 15,223
complexity.lizard_length,warning,_analyze: 147 lines exceeds limit 100,223
redeploy/blueprint/extractor.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,extract_blueprint: CC=31 exceeds limit 15,32
complexity.lizard_cc,warning,_merge_compose: CC=21 exceeds limit 15,141
redeploy/blueprint/generators/migration.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,generate_migration: CC=18 exceeds limit 15,17
complexity.lizard_length,warning,generate_migration: 122 lines exceeds limit 100,17
redeploy/cli/commands/device_map.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,device_map_cmd: CC=19 exceeds limit 15,55
complexity.lizard_cc,warning,_render: CC=34 exceeds limit 15,182
redeploy/cli/commands/hardware.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,hardware: CC=44 exceeds limit 15,62
complexity.lizard_length,warning,hardware: 129 lines exceeds limit 100,62
redeploy/cli/commands/import_.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,import_cmd: CC=17 exceeds limit 15,39
complexity.lizard_cc,warning,_spec_to_migration_yaml: CC=22 exceeds limit 15,187
redeploy/cli/commands/version.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,version_init: CC=25 exceeds limit 15,410
complexity.lizard_cc,warning,_bump_single: CC=25 exceeds limit 15,796
redeploy/detect/templates.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,build_context: CC=36 exceeds limit 15,87
complexity.lizard_length,warning,_build_templates: 155 lines exceeds limit 100,180
redeploy/discovery.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,update_registry: CC=17 exceeds limit 15,350
complexity.lizard_cc,warning,_parse_probe_output: CC=16 exceeds limit 15,618
redeploy/iac/docker_compose.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,parse: CC=25 exceeds limit 15,168
complexity.lizard_cc,warning,_parse_service: CC=36 exceeds limit 15,294
redeploy/iac/parsers/compose.py,0.71
issues[3]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,parse: CC=19 exceeds limit 15,58
complexity.lizard_cc,warning,_parse_service: CC=21 exceeds limit 15,116
redeploy/blueprint/generators/docker_compose.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,_build_service: CC=20 exceeds limit 15,114
redeploy/cli/commands/audit.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,audit: CC=17 exceeds limit 15,28
redeploy/cli/commands/blueprint.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,_print_blueprint: CC=16 exceeds limit 15,234
redeploy/cli/commands/devices.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,devices: CC=22 exceeds limit 15,19
redeploy/cli/commands/probe.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,probe: CC=26 exceeds limit 15,29
redeploy/detect/workflow.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,_collect_hosts: CC=18 exceeds limit 15,244
redeploy/dsl/loader.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,_build_manifest: CC=25 exceeds limit 15,167
redeploy/fleet.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,verify_expectations: CC=25 exceeds limit 15,138
redeploy/models.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,apply_to_spec: CC=19 exceeds limit 15,577
redeploy/plugins/builtin/browser_reload.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,browser_reload: CC=16 exceeds limit 15,33
redeploy/version/commits.py,0.74
issues[2]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
complexity.lizard_cc,warning,analyze_commits: CC=18 exceeds limit 15,78
.redeploy/state/test-local-09b68243.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-24cd498c.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-36935faf.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-46c5e2ce.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-50622a24.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-563ceb24.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-56cb0635.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-5a1d7483.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-6279ef2c.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-63f620b6.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-68ae2b20.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-7f5ddd97.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-831fd1ab.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-891787e9.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-9c9d5826.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-a70e54ce.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-a929f336.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-be94eb0c.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-da199855.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-db469906.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-df0d6ff6.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-e1009318.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-e322f022.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-e3a0f31a.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-ea908429.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-eac354f9.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-ec3c5638.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-ed7da478.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/state/test-local-efd3d620.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
.redeploy/version.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/01-vps-version-bump/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/01-vps-version-bump/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/02-k3s-to-docker/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/02-k3s-to-docker/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/03-docker-to-podman-quadlet/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/03-docker-to-podman-quadlet/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/04-rpi-kiosk/migration-rpi5.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/04-rpi-kiosk/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/04-rpi-kiosk/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/05-iot-fleet-ota/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/05-iot-fleet-ota/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/06-local-dev/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/06-local-dev/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/07-staging-to-prod/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/07-staging-to-prod/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/08-rollback/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/08-rollback/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/09-fleet-yaml/fleet.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/09-fleet-yaml/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/10-multienv/dev.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/10-multienv/prod.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/10-multienv/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/10-multienv/staging.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/11-traefik-tls/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/11-traefik-tls/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/12-ci-pipeline/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/12-ci-pipeline/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/13-kiosk-appliance.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/13-multi-app-monorepo/fleet.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/13-multi-app-monorepo/migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/13-multi-app-monorepo/redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/14-blue-green.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/15-canary.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
examples/yaml/16-auto-rollback.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
goal.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
migration.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
project.sh,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse BASH: Download error: Language 'BASH' not available for download. Available groups: [""all""]",
project/calls.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
pyproject.toml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse TOML: Download error: Language 'TOML' not available for download. Available groups: [""all""]",
redeploy.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
redeploy/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/exceptions.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/executor.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/handlers.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/progress.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/rollback.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/apply/state.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/audit.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/blueprint/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/blueprint/generators/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/detect.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/diagnose.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/diff.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/exec_.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/export.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/init.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/inspect.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/patterns.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/plan_apply.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/plugin.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/state.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/status.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/target.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/commands/workflow.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/core.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/cli/display.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/data_sync.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/detect/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/detect/detector.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/detect/probes.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/detect/remote.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl/parser.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/context.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/decorators.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/docker_steps.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/exceptions.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/runner.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/dsl_python/steps.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/iac/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/iac/base.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/iac/parsers/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/iac/registry.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/markpact/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/markpact/compiler.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/markpact/models.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/markpact/parser.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/observe.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/parse.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/patterns.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plan/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plan/planner.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/builtin/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/builtin/hardware_diagnostic.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/builtin/notify.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/builtin/process_control.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/plugins/builtin/systemd_reload.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/spec_loader.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/ssh.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/steps.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/templates/process_control_template.yaml,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse YAML: Download error: Language 'YAML' not available for download. Available groups: [""all""]",
redeploy/tests/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_audit.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_cli.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_data_sync.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_discovery.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_dsl.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_examples.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_executor.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_fleet.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_git_integration.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_iac.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_manifest.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_markpact_compiler.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_markpact_parser.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_models.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_observe.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_parse.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_patterns.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_planner_edge.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_plugins.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_probes.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_public_api.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_resume.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_spec_loader.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_ssh.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_templates.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_verify.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_version.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_version_changelog.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_version_cli.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_version_manifest.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_version_sources.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/tests/test_workflow.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/verify.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/bump.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/changelog.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/diff.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/git_integration.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/git_transaction.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/manifest.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/__init__.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/base.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/json_.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/plain.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/regex.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/toml_.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/sources/yaml_.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
redeploy/version/transaction.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
sumd.json,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse JSON: Download error: Language 'JSON' not available for download. Available groups: [""all""]",
tests/test_iac.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
tests/test_parse.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
tests/test_redeploy.py,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse PYTHON: Download error: Language 'PYTHON' not available for download. Available groups: [""all""]",
tree.sh,0.78
issues[1]{rule,severity,message,line}:
syntax.unsupported,warning,"Could not parse BASH: Download error: Language 'BASH' not available for download. Available groups: [""all""]",
Infrastructure migration toolkit: detect → plan → apply