maintainability-agent 3.3.0__tar.gz → 3.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {maintainability_agent-3.3.0/src/maintainability_agent.egg-info → maintainability_agent-3.4.0}/PKG-INFO +2 -2
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/README.md +1 -1
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/pyproject.toml +1 -1
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0/src/maintainability_agent.egg-info}/PKG-INFO +2 -2
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/__init__.py +1 -1
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/config.py +1 -1
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/metrics.py +60 -2
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_operator_named_reads.py +128 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/LICENSE +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/setup.cfg +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_agent.egg-info/SOURCES.txt +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_agent.egg-info/dependency_links.txt +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_agent.egg-info/entry_points.txt +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_agent.egg-info/requires.txt +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_agent.egg-info/top_level.txt +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/__main__.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_analysis.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_analyzer_sections.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_anchor.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_arguments.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_aspects.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_assets/analyzer-catalog.json +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_assets/standard.md +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_attestation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_backfill.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_bands.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_banner.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_built_ins.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_calibration.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_catalog.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_charts.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_cognitive.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_config_defaults.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_conformance.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_corroborate.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_coverage_notes.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_criteria_scope.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_delegated_pillar.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_derive.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_discovery.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_documents.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_economics.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_economics_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_environment.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_evidence_reader.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_evidence_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_finding_match.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_first_run.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_formula.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_gates.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_generic.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_grammar.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_grant_ledger.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_history_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_hostile_prompt.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_hotspots.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_html_report_sections.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_html_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_identity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_in_loop.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_in_loop_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_jvm_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_markdown_sections.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_masking.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_audit.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_gate.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_grants.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_refusals.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_resources.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_setup.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_metric_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_metrics_types.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_operator_reads.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_pillars.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_practice.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_precommit.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_precommit_install.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_precommit_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_pressures.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_prompt_sections.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_c.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_cobol.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_core.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_cpp.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_csharp.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_fortran.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_go.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_java.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_js.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_php.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_ruby.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_rust.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_swift.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ratchet.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ratio_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_recurrence.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_run_comparison.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_runner.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_safe_write.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_scan_history.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_scan_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_second_source.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_selection.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_semantic.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_semantic_policy.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_semantic_ts.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_semantic_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_setup_errors.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_setup_persist.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/SKILL.md +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/agents/anthropic.yaml +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/agents/copilot.yaml +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/agents/openai.yaml +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/copilot/maintainability-agent.prompt.md +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_data/references/finding-taxonomy.md +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_skill_install.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_stored_grants.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_tdd_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_test_commands.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_test_execution.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_test_pairing.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_tokens.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_tool_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_trends.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_user_config.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_verdict_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_verification.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_work_order.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_work_order_view.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_work_order_weights.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_xml.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/baseline.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/cli.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/deadcode.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/duplication.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/evidence.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/git_tools.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/history.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/idioms.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/instructions.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/mcp_server.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/prompts.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/renderers.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/report.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/sarif.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/scoring.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/similarity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/source.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_acquisition_trust.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_adapter_docs.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_adapter_recordings.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_added_lines.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analysis_coverage.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analysis_execution.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_bridge.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_config_isolation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_estimate_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_pinning.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_primary_estimate.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_provenance.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_provenance_exclusions.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_scoring_path.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_spread_range.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_analyzer_xml_bounds.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_anchor_and_mode.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_anchor_disclosure.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_annotations_match_behaviour.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_anticipated_refusals.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_architecture.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_artifact_write_route_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_aspect_coverage.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_asset_snapshot_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_ast_reading_resolves_spellings.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_attestation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_audit_components.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_authorization_freshness.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_authorship_gates.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_backfill.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_band_concealment_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_band_concealment_p3.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_band_pressures.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_bands.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_body_or_signature_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_c_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_calibration_corpus.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_calibration_drift.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_calibration_tooling.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_catalog_selection.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_catalog_tier_promise.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_chat_primary_docs.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_check_refuses_plus_only_fragments.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_checkstyle_adapter.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_checkstyle_catalog.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_child_sandbox.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_ci_history_recipe.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_ci_installs_the_analyzer_pool.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_claimed_languages.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_cli.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_clone_group_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_cobol_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_cognitive_complexity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_cohort_statistics.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_concealment_properties.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_config_shape.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_consent_and_grant.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_consumer_migration.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_contract_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_corroborate.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_coverage_by_language.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_cpp_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_criteria_completion.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_csharp_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_d15_composition.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_d15_goal_directed.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_dead_code.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declaration_criteria_scope.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declaration_edge_cases.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declaration_grading.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declaration_ranges.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declaration_source.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declarative_parsers.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declared_authorship.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_declared_imports.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_delegated_security_pillar.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_derivation_mix.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_determinism.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_dimension_ratchet.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_direct_runner_availability_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_discovery.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_doc_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_docs_links.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_economic_context.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_empty_output_not_clean.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_empty_output_not_clean_adapters.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_environment_work_order.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_evidence_invariants.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_evidence_normalization.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_evidence_properties.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_exclusion_dialects.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_falsifier_standard.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_file_list_cap_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_finding_identity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_first_run_elicitation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_first_run_prompt.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_first_run_reelicitation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_fix_breadth_window.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_fixed_form_fortran.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_format_ask.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_fortran_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_fortran_metrics.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_fortran_practice.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_git_argv.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_git_read_only.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_git_readonly_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_go_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_grammar_constructs.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_grammar_token_coverage.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_grant_only_user_tier.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_history.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_history_boundary.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_history_manifest.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_history_schema2.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_history_window.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_hostile_prompt.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_html_executive.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_html_section_parity_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_identity_docs.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_identity_resolution.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_idiom_divergence.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_in_loop_budgets.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_in_loop_check.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_installed_wheel_runtime.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_instruction_targets.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_java_range_guard.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_java_ranges.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_java_scored.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_java_wiring.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_js_complexity_operators.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_js_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_language_coverage.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_language_support_honesty.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_mcp_baseline_payload.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_mcp_format_contract.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_mcp_history.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_mcp_server.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_migration_1_0.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_near_duplicates.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_network_disclosure.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_one_setup_across_surfaces_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_operator_named_paths.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pairing_reads_imports.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pattern_budget.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_phase6_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_php_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pillars_and_practice.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_platform_claim.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pmd_adapter.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pmd_audit_closures.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_policy_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_pool_runs_by_config.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_population_floors.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_practice_nested_gates_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_precommit_staged.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_presentation_refusals.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_promises.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_prompt_escalation_once.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_prompt_honesty.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_prompt_location_escalation_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_prove_falsifiers.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_python_complexity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_python_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_read_boundary.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_readme_claims.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_recurrence.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_release_needs_an_empty_ledger.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_release_plan.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_release_plan_status.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_report_remedy_copy.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_roles_recorded.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_root_grants.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_rubric_ignores_project_lint_config.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_ruby_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_run_comparison.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_runner.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_rust_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_sarif.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scan_history.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scan_scope.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scanner_unsafe_direction.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scanning.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_schema_fidelity.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scope_conformance.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_scoring_calibration.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_semantic_policy.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_setup_gate_completeness.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_setup_gate_independent_contract.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_setup_precondition.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_skill_install.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_sonar_resolve.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_source_index.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_spotbugs_adapter.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_spotbugs_catalog.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_stage8_contract.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_suite_isolation.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_swift_declarations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_tdd_structure.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_terminal_asks_the_same_questions.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_test_commands.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_test_execution_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_three_presentations.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_tool_resolution.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_tree_cannot_opt_the_host_in.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_tree_chosen_spawn.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_tree_reads_use_the_primitive.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_trends.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_type_fields_not_functions_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_uat_falsifiers.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_unanchored_set_matches_corpus.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_unread_code.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_user_config_tier.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_verification_audit_closures.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_verified_grade.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_version_claim.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_wheel_contents.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_work_order.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_work_order_binds_to_this_interpreter.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_work_order_items.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_work_order_selection.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_workflow_supply_chain.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_write_boundary.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_write_route_class.py +0 -0
- {maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_written_record.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maintainability-agent
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: Maintainability gate and AI remediation prompt generator for CI.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -45,7 +45,7 @@ Dynamic: license-file
|
|
|
45
45
|
**A deterministic, offline maintainability audit whose output is a _bounded
|
|
46
46
|
work order_ for an AI coding agent** — a copy-paste prompt, per finding, that
|
|
47
47
|
says *fix exactly these and refactor nothing else*. Chat-primary; CLI for CI.
|
|
48
|
-
Version **3.
|
|
48
|
+
Version **3.4.0**.
|
|
49
49
|
|
|
50
50
|
**Planned, not shipped:** the audit tool will become `maintainability-audit`;
|
|
51
51
|
a new `maintainability-agent` companion will run it and automate human-selected
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
**A deterministic, offline maintainability audit whose output is a _bounded
|
|
6
6
|
work order_ for an AI coding agent** — a copy-paste prompt, per finding, that
|
|
7
7
|
says *fix exactly these and refactor nothing else*. Chat-primary; CLI for CI.
|
|
8
|
-
Version **3.
|
|
8
|
+
Version **3.4.0**.
|
|
9
9
|
|
|
10
10
|
**Planned, not shipped:** the audit tool will become `maintainability-audit`;
|
|
11
11
|
a new `maintainability-agent` companion will run it and automate human-selected
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "maintainability-agent"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.4.0"
|
|
8
8
|
description = "Maintainability gate and AI remediation prompt generator for CI."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
# 3.11, not 3.10. `_discovery`, `_pillars` and `_runner` all import
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maintainability-agent
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: Maintainability gate and AI remediation prompt generator for CI.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -45,7 +45,7 @@ Dynamic: license-file
|
|
|
45
45
|
**A deterministic, offline maintainability audit whose output is a _bounded
|
|
46
46
|
work order_ for an AI coding agent** — a copy-paste prompt, per finding, that
|
|
47
47
|
says *fix exactly these and refactor nothing else*. Chat-primary; CLI for CI.
|
|
48
|
-
Version **3.
|
|
48
|
+
Version **3.4.0**.
|
|
49
49
|
|
|
50
50
|
**Planned, not shipped:** the audit tool will become `maintainability-audit`;
|
|
51
51
|
a new `maintainability-agent` companion will run it and automate human-selected
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/config.py
RENAMED
|
@@ -20,7 +20,7 @@ from ._operator_reads import (
|
|
|
20
20
|
# still the door every caller comes through.
|
|
21
21
|
__all__ = ["DEFAULT_CONFIG", "DEFAULT_IDIOM_GROUPS", "PROJECT_URL", "VERSION"]
|
|
22
22
|
|
|
23
|
-
VERSION = "3.
|
|
23
|
+
VERSION = "3.4.0"
|
|
24
24
|
|
|
25
25
|
PROJECT_URL = "https://github.com/marshallguillory86/maintainability-agent"
|
|
26
26
|
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/metrics.py
RENAMED
|
@@ -27,12 +27,70 @@ from .declarations import DECLARATION_SUFFIXES, detect_functions
|
|
|
27
27
|
from .source import SourceIndex, index_or_new
|
|
28
28
|
|
|
29
29
|
|
|
30
|
+
def _directory_matches(normalized: str, bare: str) -> bool:
|
|
31
|
+
"""Whether a trailing-slash pattern names a directory on this path.
|
|
32
|
+
|
|
33
|
+
Matched against each **directory** component and each rooted prefix
|
|
34
|
+
of them, so `build/` catches `a/b/build/x.o` and
|
|
35
|
+
`tools/validation/reports/` catches its own file. The final
|
|
36
|
+
component is excluded: the trailing slash says directory, and
|
|
37
|
+
`*.egg-info/` must not match a *file* called `notes.egg-info`.
|
|
38
|
+
|
|
39
|
+
Globbed through `fnmatch` rather than compared as text, which is the
|
|
40
|
+
half D156's first fix left undone. `**/dir/` was one spelling of a
|
|
41
|
+
wider defect: **any** directory pattern holding a glob matched
|
|
42
|
+
nothing. The literal branch cannot see `*.egg-info/`, `fnmatch` on
|
|
43
|
+
the whole path needs a trailing slash no path has, and the
|
|
44
|
+
containment branch is skipped for patterns with glob characters.
|
|
45
|
+
|
|
46
|
+
Found by turning the producer's own lesson on this repository. They
|
|
47
|
+
reported a liveness test that iterated only half its population and
|
|
48
|
+
called it structural; sweeping MA's 35 configured patterns the same
|
|
49
|
+
way found `*.egg-info/` matching nothing while
|
|
50
|
+
`src/maintainability_agent.egg-info/` sat in the tree being scanned.
|
|
51
|
+
"""
|
|
52
|
+
directories = normalized.split("/")[:-1]
|
|
53
|
+
for index, component in enumerate(directories):
|
|
54
|
+
if fnmatch.fnmatch(component, bare):
|
|
55
|
+
return True
|
|
56
|
+
if fnmatch.fnmatch("/".join(directories[:index + 1]), bare):
|
|
57
|
+
return True
|
|
58
|
+
return normalized == bare
|
|
59
|
+
|
|
60
|
+
|
|
30
61
|
def is_excluded(rel: str, patterns: list[str]) -> bool:
|
|
31
62
|
normalized = rel.replace("\\", "/").replace(os.sep, "/")
|
|
32
63
|
for raw_pattern in patterns:
|
|
33
64
|
pattern = raw_pattern.replace("\\", "/")
|
|
34
|
-
|
|
35
|
-
|
|
65
|
+
# `**/dir/` is the gitignore spelling for "this directory at any
|
|
66
|
+
# depth", and it matched **nothing** — at any depth, including
|
|
67
|
+
# the one it names. The directory branch below compares against
|
|
68
|
+
# the literal prefix, `fnmatch` needs a trailing slash the path
|
|
69
|
+
# never has, and the containment branch is skipped because the
|
|
70
|
+
# pattern holds glob characters. So it read as intent, never
|
|
71
|
+
# errored, and silently scanned what it was written to exclude.
|
|
72
|
+
#
|
|
73
|
+
# The bare `dir/` spelling has always matched at any depth via
|
|
74
|
+
# the containment branch, so the two spellings of one intent
|
|
75
|
+
# differed by everything. Stripping the prefix makes them agree;
|
|
76
|
+
# a file pattern like `**/*.min.js` already worked and is
|
|
77
|
+
# unaffected, because `*` matches a separator here.
|
|
78
|
+
#
|
|
79
|
+
# Only the **directory** form. A file pattern like
|
|
80
|
+
# `**/generated/*.py` already matches through `fnmatch`, where
|
|
81
|
+
# `*` crosses separators, and stripping its prefix would anchor
|
|
82
|
+
# it to the root — which this project's own exclude test caught
|
|
83
|
+
# within a minute of the first attempt.
|
|
84
|
+
#
|
|
85
|
+
# Reported by the `secure-code-agent` session, which found the
|
|
86
|
+
# identical defect in its own matcher — `.pyc` files had been
|
|
87
|
+
# scanned as source for its entire life (D156).
|
|
88
|
+
if pattern.startswith("**/") and pattern.endswith("/"):
|
|
89
|
+
pattern = pattern[3:]
|
|
90
|
+
if pattern.endswith("/"):
|
|
91
|
+
if _directory_matches(normalized, pattern[:-1]):
|
|
92
|
+
return True
|
|
93
|
+
continue
|
|
36
94
|
if fnmatch.fnmatch(normalized, pattern) or fnmatch.fnmatch(Path(normalized).name, pattern):
|
|
37
95
|
return True
|
|
38
96
|
if not any(char in pattern for char in "*?[]") and f"/{pattern.rstrip('/')}/" in f"/{normalized}/":
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/tests/test_operator_named_reads.py
RENAMED
|
@@ -468,3 +468,131 @@ def test_what_is_validated_is_what_is_read(tmp_path: Path) -> None:
|
|
|
468
468
|
read_operator_file(target)
|
|
469
469
|
finally:
|
|
470
470
|
target.unlink()
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
def test_both_spellings_of_a_directory_exclude_agree_at_every_depth() -> None:
|
|
474
|
+
"""`**/dir/` and `dir/` are one intent, so they must be one behaviour.
|
|
475
|
+
|
|
476
|
+
`**/dir/` matched **nothing** — at any depth, including the one it
|
|
477
|
+
names. The directory branch compares against the literal prefix,
|
|
478
|
+
`fnmatch` needs a trailing slash the path never has, and the
|
|
479
|
+
containment branch is skipped because the pattern holds glob
|
|
480
|
+
characters. It read as intent, never errored, and silently scanned
|
|
481
|
+
what it was written to exclude.
|
|
482
|
+
|
|
483
|
+
An inert exclude has no symptom of its own. The only sign is
|
|
484
|
+
findings you believed you had excluded, which is why this is asserted
|
|
485
|
+
over depths rather than on one example: the bug was uniform, so a
|
|
486
|
+
single case could have passed against a matcher that only handled
|
|
487
|
+
the depth it was written at.
|
|
488
|
+
|
|
489
|
+
Reported by the `secure-code-agent` session, which found the
|
|
490
|
+
identical defect in its own matcher (D156).
|
|
491
|
+
"""
|
|
492
|
+
from maintainability_audit.metrics import is_excluded
|
|
493
|
+
|
|
494
|
+
for depth in range(4):
|
|
495
|
+
prefix = "/".join(f"d{n}" for n in range(depth))
|
|
496
|
+
path = f"{prefix}/__pycache__/x.pyc" if prefix else "__pycache__/x.pyc"
|
|
497
|
+
assert is_excluded(path, ["__pycache__/"]), f"bare spelling missed {path}"
|
|
498
|
+
assert is_excluded(path, ["**/__pycache__/"]), f"**/ spelling missed {path}"
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
def test_the_file_form_of_a_double_star_pattern_still_matches() -> None:
|
|
502
|
+
"""Only the directory form is rewritten; file patterns are untouched.
|
|
503
|
+
|
|
504
|
+
The first fix stripped `**/` from every pattern, which anchored
|
|
505
|
+
`**/generated/*.py` to the repository root and stopped it matching
|
|
506
|
+
`src/generated/client.py`. `test_exclude_patterns_use_glob_and_normalized_separators`
|
|
507
|
+
caught it — a file pattern already works through `fnmatch`, where
|
|
508
|
+
`*` crosses separators, so it needed no help and resented the help
|
|
509
|
+
it got.
|
|
510
|
+
|
|
511
|
+
Covers existing behaviour: this passed at the base, because file
|
|
512
|
+
patterns were never broken. It guards the fix's blast radius rather
|
|
513
|
+
than the defect, which is why it is not cited as D156's falsifier.
|
|
514
|
+
"""
|
|
515
|
+
from maintainability_audit.metrics import is_excluded
|
|
516
|
+
|
|
517
|
+
assert is_excluded("src/generated/client.py", ["**/generated/*.py"])
|
|
518
|
+
assert is_excluded("a/b.min.js", ["**/*.min.js"])
|
|
519
|
+
assert not is_excluded("src/app.py", ["**/generated/*.py"])
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
def test_a_directory_exclude_does_not_swallow_a_similar_name() -> None:
|
|
523
|
+
"""Widening the matcher must not turn an exclude into a prefix match.
|
|
524
|
+
|
|
525
|
+
Covers existing behaviour: the matcher never swallowed a similar
|
|
526
|
+
name, so this passes at the base. It bounds the fix — a wider
|
|
527
|
+
matcher could have started excluding `pycache_notes.py` — and bounds
|
|
528
|
+
are not falsifiers.
|
|
529
|
+
"""
|
|
530
|
+
from maintainability_audit.metrics import is_excluded
|
|
531
|
+
|
|
532
|
+
for pattern in ("__pycache__/", "**/__pycache__/"):
|
|
533
|
+
assert not is_excluded("src/pycache_notes.py", [pattern])
|
|
534
|
+
assert not is_excluded("src/my__pycache__helper.py", [pattern])
|
|
535
|
+
assert not is_excluded("src/app.py", [pattern])
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
def test_a_globbed_directory_pattern_is_not_inert() -> None:
|
|
539
|
+
"""`*.egg-info/` is a directory pattern holding a glob, and it matched
|
|
540
|
+
nothing.
|
|
541
|
+
|
|
542
|
+
D156's first fix handled one spelling — `**/dir/` — and left the
|
|
543
|
+
class. Any directory pattern with a glob in it fell through all
|
|
544
|
+
three branches: the literal branch cannot see a `*`, `fnmatch` on
|
|
545
|
+
the whole path needs a trailing slash no path has, and the
|
|
546
|
+
containment branch is skipped precisely because the pattern holds
|
|
547
|
+
glob characters.
|
|
548
|
+
|
|
549
|
+
This repository's own config carried `*.egg-info/` while
|
|
550
|
+
`src/maintainability_agent.egg-info/` sat in the tree being scanned.
|
|
551
|
+
"""
|
|
552
|
+
from maintainability_audit.metrics import is_excluded
|
|
553
|
+
|
|
554
|
+
assert is_excluded("src/maintainability_agent.egg-info/PKG-INFO", ["*.egg-info/"])
|
|
555
|
+
assert is_excluded("pkg.egg-info/SOURCES.txt", ["*.egg-info/"])
|
|
556
|
+
# The trailing slash says directory, so a *file* with that suffix stays.
|
|
557
|
+
assert not is_excluded("src/notes.egg-info", ["*.egg-info/"])
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
def test_every_configured_exclude_pattern_matches_something() -> None:
|
|
561
|
+
"""A liveness sweep over this repository's whole exclude set.
|
|
562
|
+
|
|
563
|
+
The `secure-code-agent` session reported a liveness test of its own
|
|
564
|
+
that iterated only the directory half of its patterns — "half a
|
|
565
|
+
structural rule, which is the kind that reads as covered". Turning
|
|
566
|
+
that lesson on MA's config is what found `*.egg-info/` dead.
|
|
567
|
+
|
|
568
|
+
Asserted over every pattern rather than a sample, because an inert
|
|
569
|
+
exclude has no symptom of its own: it never errors, and the only
|
|
570
|
+
evidence is findings in files the operator believed were excluded.
|
|
571
|
+
|
|
572
|
+
Patterns are checked against paths constructed *from the pattern
|
|
573
|
+
itself*, so this stays true as the config changes and does not
|
|
574
|
+
depend on which generated artifacts happen to exist today.
|
|
575
|
+
"""
|
|
576
|
+
import json
|
|
577
|
+
|
|
578
|
+
from maintainability_audit.metrics import is_excluded
|
|
579
|
+
|
|
580
|
+
patterns = json.loads(
|
|
581
|
+
(ROOT / "maintainability-agent.json").read_text(encoding="utf-8")
|
|
582
|
+
)["paths"]["exclude_patterns"]
|
|
583
|
+
assert patterns, "no exclude patterns configured; this sweep would be vacuous"
|
|
584
|
+
|
|
585
|
+
dead = []
|
|
586
|
+
for pattern in patterns:
|
|
587
|
+
bare = pattern.replace("**/", "").rstrip("/")
|
|
588
|
+
if pattern.endswith("/"):
|
|
589
|
+
probes = [f"{bare}/f.py".replace("*", "x"), f"deep/{bare}/f.py".replace("*", "x")]
|
|
590
|
+
else:
|
|
591
|
+
probes = [bare.replace("*", "x"), f"deep/{bare.replace('*', 'x')}"]
|
|
592
|
+
if not any(is_excluded(probe, [pattern]) for probe in probes):
|
|
593
|
+
dead.append(pattern)
|
|
594
|
+
|
|
595
|
+
assert not dead, (
|
|
596
|
+
"these configured exclude patterns match nothing and silently scan "
|
|
597
|
+
f"what they name: {dead}"
|
|
598
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/__main__.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_adapters.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_anchor.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_arguments.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_aspects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_backfill.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_bands.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_banner.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_built_ins.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_catalog.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_charts.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_cognitive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_derive.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_discovery.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_documents.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_economics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_first_run.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_formula.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_gates.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_generic.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_grammar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_hotspots.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_html_view.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_identity.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_in_loop.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_masking.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_audit.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_gate.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_grants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_mcp_setup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_pillars.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_practice.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_precommit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_pressures.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_c.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_cpp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_go.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_js.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ranges_php.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_ratchet.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_recurrence.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_runner.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_safe_write.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_scan_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_selection.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_semantic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_tdd_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_tokens.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_trends.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_work_order.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/_xml.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/baseline.py
RENAMED
|
File without changes
|
{maintainability_agent-3.3.0 → maintainability_agent-3.4.0}/src/maintainability_audit/cli.py
RENAMED
|
File without changes
|