maintainability-agent 3.7.1__tar.gz → 3.7.3__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.7.1/src/maintainability_agent.egg-info → maintainability_agent-3.7.3}/PKG-INFO +14 -3
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/README.md +13 -1
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/pyproject.toml +1 -9
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3/src/maintainability_agent.egg-info}/PKG-INFO +14 -3
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_agent.egg-info/SOURCES.txt +1 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_agent.egg-info/requires.txt +0 -1
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/__init__.py +1 -1
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_security_delegate.py +44 -2
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/config.py +1 -1
- maintainability_agent-3.7.3/tests/test_security_delegate_versions_agree.py +86 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_security_pillar_runs_and_shows.py +38 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/LICENSE +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/setup.cfg +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_agent.egg-info/dependency_links.txt +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_agent.egg-info/entry_points.txt +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_agent.egg-info/top_level.txt +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/__main__.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_analysis.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_analyzer_sections.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_anchor.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_arguments.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_aspects.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_assets/analyzer-catalog.json +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_assets/standard.md +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_attestation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_backfill.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_bands.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_banner.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_built_ins.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_calibration.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_catalog.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_charts.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_cognitive.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_config_defaults.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_conformance.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_corroborate.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_coverage_notes.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_criteria_scope.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_delegated_pillar.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_derive.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_discovery.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_documents.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_economics.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_economics_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_environment.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_evidence_reader.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_evidence_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_finding_match.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_first_run.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_formula.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_gates.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_generic.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_grammar.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_grant_ledger.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_history_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_hostile_prompt.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_hotspots.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_html_report_sections.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_html_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_identity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_in_loop.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_in_loop_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_jvm_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_markdown_sections.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_masking.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_audit.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_gate.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_grants.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_refusals.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_resources.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_setup.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_metric_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_metrics_types.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_operator_reads.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_pillars.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_practice.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_precommit.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_precommit_install.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_precommit_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_pressures.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_prompt_sections.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_c.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_cobol.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_core.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_cpp.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_csharp.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_fortran.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_go.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_java.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_js.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_php.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_ruby.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_rust.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_swift.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ratchet.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ratio_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_recurrence.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_run_comparison.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_runner.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_safe_write.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_scan_history.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_scan_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_second_source.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_selection.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_semantic.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_semantic_policy.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_semantic_ts.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_semantic_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_setup_errors.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_setup_persist.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/SKILL.md +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/agents/anthropic.yaml +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/agents/copilot.yaml +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/agents/openai.yaml +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/copilot/maintainability-agent.prompt.md +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_data/references/finding-taxonomy.md +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_skill_install.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_stored_grants.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_tdd_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_test_commands.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_test_execution.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_test_pairing.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_tokens.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_tool_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_trends.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_user_config.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_verdict_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_verification.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_work_order.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_work_order_view.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_work_order_weights.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_xml.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/baseline.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/cli.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/deadcode.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/duplication.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/evidence.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/git_tools.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/history.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/idioms.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/instructions.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/mcp_server.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/metrics.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/prompts.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/renderers.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/report.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/sarif.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/scoring.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/similarity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/source.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_acquisition_trust.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_adapter_docs.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_adapter_recordings.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_added_lines.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analysis_coverage.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analysis_execution.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_bridge.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_config_isolation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_estimate_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_pinning.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_primary_estimate.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_provenance.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_provenance_exclusions.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_scoring_path.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_spread_range.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_analyzer_xml_bounds.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_anchor_and_mode.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_anchor_caveat_and_counts_follow_the_run.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_anchor_disclosure.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_annotations_match_behaviour.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_anticipated_refusals.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_architecture.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_artifact_write_route_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_aspect_coverage.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_asset_snapshot_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_ast_reading_resolves_spellings.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_attestation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_audit_components.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_authorization_freshness.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_authorship_gates.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_backfill.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_band_concealment_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_band_concealment_p3.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_band_pressures.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_bands.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_body_or_signature_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_build_output_is_not_the_repositorys_code.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_c_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_calibration_corpus.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_calibration_drift.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_calibration_tooling.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_catalog_selection.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_catalog_tier_promise.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_chat_leads_with_the_work_order.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_chat_primary_docs.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_check_refuses_plus_only_fragments.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_checkstyle_adapter.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_checkstyle_catalog.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_child_sandbox.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_ci_history_recipe.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_ci_installs_the_analyzer_pool.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_claimed_languages.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_cli.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_clone_group_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_cobol_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_cognitive_complexity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_cohort_statistics.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_concealment_properties.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_config_shape.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_consent_and_grant.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_consumer_migration.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_contract_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_corroborate.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_coverage_by_language.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_cpp_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_criteria_completion.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_csharp_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_d15_composition.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_d15_goal_directed.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_dead_code.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declaration_criteria_scope.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declaration_edge_cases.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declaration_grading.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declaration_ranges.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declaration_source.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declarative_parsers.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declared_authorship.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_declared_imports.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_delegated_security_pillar.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_demo_tree.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_derivation_mix.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_determinism.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_dimension_ratchet.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_direct_runner_availability_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_discovery.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_doc_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_docs_links.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_economic_context.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_empty_output_not_clean.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_empty_output_not_clean_adapters.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_environment_work_order.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_every_surface_says_what_the_run_found.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_evidence_invariants.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_evidence_normalization.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_evidence_properties.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_example_config_opens_claimed_languages.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_exclusion_dialects.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_exposure_never_outranks_band.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_falsifier_standard.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_file_list_cap_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_finding_identity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_first_run_elicitation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_first_run_prompt.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_first_run_reelicitation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_fix_breadth_window.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_fixed_form_fortran.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_format_ask.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_fortran_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_fortran_metrics.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_fortran_practice.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_git_argv.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_git_read_only.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_git_readonly_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_go_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_grammar_constructs.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_grammar_token_coverage.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_grant_only_user_tier.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_history.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_history_boundary.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_history_manifest.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_history_schema2.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_history_window.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_hostile_prompt.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_html_executive.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_html_section_parity_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_identity_docs.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_identity_resolution.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_idiom_divergence.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_in_loop_budgets.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_in_loop_check.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_installed_wheel_runtime.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_instruction_targets.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_java_range_guard.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_java_ranges.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_java_scored.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_java_wiring.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_js_complexity_operators.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_js_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_language_coverage.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_language_support_honesty.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_mcp_baseline_payload.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_mcp_format_contract.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_mcp_history.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_mcp_server.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_mcp_start_failure_names_what_is_installed.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_migration_1_0.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_near_duplicates.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_network_disclosure.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_one_setup_across_surfaces_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_operator_named_paths.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_operator_named_reads.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pairing_reads_imports.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pattern_budget.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_phase6_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_php_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pillars_and_practice.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_platform_claim.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pmd_adapter.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pmd_audit_closures.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_policy_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_pool_runs_by_config.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_population_floors.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_practice_nested_gates_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_precommit_staged.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_presentation_refusals.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_promises.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_prompt_does_not_issue_rates_when_unscored.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_prompt_escalation_once.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_prompt_honesty.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_prompt_location_escalation_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_prove_falsifiers.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_python_complexity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_python_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_read_boundary.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_readme_claims.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_recurrence.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_release_needs_an_empty_ledger.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_release_plan.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_release_plan_status.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_report_remedy_copy.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_roles_recorded.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_root_grants.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_rubric_ignores_project_lint_config.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_ruby_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_run_comparison.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_runner.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_rust_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_sarif.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scan_history.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scan_scope.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scanner_unsafe_direction.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scanning.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_schema_fidelity.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scope_conformance.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_scoring_calibration.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_semantic_policy.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_setup_gate_completeness.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_setup_gate_independent_contract.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_setup_precondition.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_skill_install.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_sonar_resolve.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_source_index.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_spotbugs_adapter.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_spotbugs_catalog.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_stage8_contract.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_stdout_outputs.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_suite_isolation.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_swift_declarations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_tdd_structure.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_terminal_asks_the_same_questions.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_test_commands.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_test_execution_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_three_presentations.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_tool_resolution.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_tree_cannot_opt_the_host_in.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_tree_chosen_spawn.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_tree_reads_use_the_primitive.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_trends.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_type_fields_not_functions_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_uat_falsifiers.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_unanchored_set_matches_corpus.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_unread_code.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_user_config_tier.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_verification_audit_closures.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_verified_grade.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_version_claim.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_wheel_contents.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_work_items_state_their_own_finding.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_work_order.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_work_order_binds_to_this_interpreter.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_work_order_items.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_work_order_selection.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_workflow_supply_chain.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_write_boundary.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/tests/test_write_route_class.py +0 -0
- {maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/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.7.
|
|
3
|
+
Version: 3.7.3
|
|
4
4
|
Summary: Maintainability gate and AI remediation prompt generator for CI.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -19,7 +19,6 @@ Classifier: Topic :: Software Development :: Quality Assurance
|
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: secure-code-agent<0.11,>=0.10
|
|
23
22
|
Provides-Extra: test
|
|
24
23
|
Requires-Dist: pytest>=8; extra == "test"
|
|
25
24
|
Requires-Dist: pytest-cov>=5; extra == "test"
|
|
@@ -47,7 +46,7 @@ Dynamic: license-file
|
|
|
47
46
|
**A deterministic, offline maintainability audit whose output is a _bounded
|
|
48
47
|
work order_ for an AI coding agent** — a copy-paste prompt, per finding, that
|
|
49
48
|
says *fix exactly these and refactor nothing else*. Chat-primary; CLI for CI.
|
|
50
|
-
Version **3.7.
|
|
49
|
+
Version **3.7.3**.
|
|
51
50
|
|
|
52
51
|
**Languages parsed:** Python, Java, C, C++, C#, Go, Rust, PHP, Ruby, Swift,
|
|
53
52
|
COBOL, Fortran (free-form *and* fixed-form), and the JS/TS/HTML family — each
|
|
@@ -81,6 +80,18 @@ and `test_the_readme_names_the_analyzer_pool_ci_installs` fails if the two ever
|
|
|
81
80
|
disagree. Nothing here is required — the audit runs without any of it and tells
|
|
82
81
|
you what it could not measure.
|
|
83
82
|
|
|
83
|
+
**Install secure-code-agent for the security pillar.** Every audit runs it; it is
|
|
84
|
+
installed alongside rather than as a dependency, so the two tools release
|
|
85
|
+
independently. Without it the report says the security pillar was not measured
|
|
86
|
+
and gives this command. Its scanners decide what it can grade — see
|
|
87
|
+
[machine setup](docs/machine-setup.md#4-toolchain) for which to install, and
|
|
88
|
+
don't add its `[mcp]` extra to this environment (it pins `mcp<2`).
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pip install 'secure-code-agent>=0.12.1'
|
|
92
|
+
brew install gitleaks osv-scanner semgrep checkov # its scanners; pip install bandit
|
|
93
|
+
```
|
|
94
|
+
|
|
84
95
|
**One command to a work order.** A config file is the whole setup — with one
|
|
85
96
|
present, nothing is asked and nothing is written into your tree:
|
|
86
97
|
|
|
@@ -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.7.
|
|
8
|
+
Version **3.7.3**.
|
|
9
9
|
|
|
10
10
|
**Languages parsed:** Python, Java, C, C++, C#, Go, Rust, PHP, Ruby, Swift,
|
|
11
11
|
COBOL, Fortran (free-form *and* fixed-form), and the JS/TS/HTML family — each
|
|
@@ -39,6 +39,18 @@ and `test_the_readme_names_the_analyzer_pool_ci_installs` fails if the two ever
|
|
|
39
39
|
disagree. Nothing here is required — the audit runs without any of it and tells
|
|
40
40
|
you what it could not measure.
|
|
41
41
|
|
|
42
|
+
**Install secure-code-agent for the security pillar.** Every audit runs it; it is
|
|
43
|
+
installed alongside rather than as a dependency, so the two tools release
|
|
44
|
+
independently. Without it the report says the security pillar was not measured
|
|
45
|
+
and gives this command. Its scanners decide what it can grade — see
|
|
46
|
+
[machine setup](docs/machine-setup.md#4-toolchain) for which to install, and
|
|
47
|
+
don't add its `[mcp]` extra to this environment (it pins `mcp<2`).
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pip install 'secure-code-agent>=0.12.1'
|
|
51
|
+
brew install gitleaks osv-scanner semgrep checkov # its scanners; pip install bandit
|
|
52
|
+
```
|
|
53
|
+
|
|
42
54
|
**One command to a work order.** A config file is the whole setup — with one
|
|
43
55
|
present, nothing is asked and nothing is written into your tree:
|
|
44
56
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "maintainability-agent"
|
|
7
|
-
version = "3.7.
|
|
7
|
+
version = "3.7.3"
|
|
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
|
|
@@ -13,14 +13,6 @@ readme = "README.md"
|
|
|
13
13
|
# metadata said a user could stand: the suite runs 3.12 and the
|
|
14
14
|
# composite action pins 3.11 (D42).
|
|
15
15
|
requires-python = ">=3.11"
|
|
16
|
-
# The security pillar is complete (D177): every audit runs secure-code-agent,
|
|
17
|
-
# so it installs with this package rather than being left to the operator.
|
|
18
|
-
# Its own dependency is PyYAML; this package still imports no YAML
|
|
19
|
-
# (`test_the_shipped_package_does_not_import_yaml`) — it runs the tool as a
|
|
20
|
-
# child and reads the JSON document it writes.
|
|
21
|
-
dependencies = [
|
|
22
|
-
"secure-code-agent>=0.10,<0.11",
|
|
23
|
-
]
|
|
24
16
|
license = { text = "MIT" }
|
|
25
17
|
authors = [
|
|
26
18
|
{ name = "Marshall Guillory" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maintainability-agent
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.3
|
|
4
4
|
Summary: Maintainability gate and AI remediation prompt generator for CI.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -19,7 +19,6 @@ Classifier: Topic :: Software Development :: Quality Assurance
|
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: secure-code-agent<0.11,>=0.10
|
|
23
22
|
Provides-Extra: test
|
|
24
23
|
Requires-Dist: pytest>=8; extra == "test"
|
|
25
24
|
Requires-Dist: pytest-cov>=5; extra == "test"
|
|
@@ -47,7 +46,7 @@ Dynamic: license-file
|
|
|
47
46
|
**A deterministic, offline maintainability audit whose output is a _bounded
|
|
48
47
|
work order_ for an AI coding agent** — a copy-paste prompt, per finding, that
|
|
49
48
|
says *fix exactly these and refactor nothing else*. Chat-primary; CLI for CI.
|
|
50
|
-
Version **3.7.
|
|
49
|
+
Version **3.7.3**.
|
|
51
50
|
|
|
52
51
|
**Languages parsed:** Python, Java, C, C++, C#, Go, Rust, PHP, Ruby, Swift,
|
|
53
52
|
COBOL, Fortran (free-form *and* fixed-form), and the JS/TS/HTML family — each
|
|
@@ -81,6 +80,18 @@ and `test_the_readme_names_the_analyzer_pool_ci_installs` fails if the two ever
|
|
|
81
80
|
disagree. Nothing here is required — the audit runs without any of it and tells
|
|
82
81
|
you what it could not measure.
|
|
83
82
|
|
|
83
|
+
**Install secure-code-agent for the security pillar.** Every audit runs it; it is
|
|
84
|
+
installed alongside rather than as a dependency, so the two tools release
|
|
85
|
+
independently. Without it the report says the security pillar was not measured
|
|
86
|
+
and gives this command. Its scanners decide what it can grade — see
|
|
87
|
+
[machine setup](docs/machine-setup.md#4-toolchain) for which to install, and
|
|
88
|
+
don't add its `[mcp]` extra to this environment (it pins `mcp<2`).
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pip install 'secure-code-agent>=0.12.1'
|
|
92
|
+
brew install gitleaks osv-scanner semgrep checkov # its scanners; pip install bandit
|
|
93
|
+
```
|
|
94
|
+
|
|
84
95
|
**One command to a work order.** A config file is the whole setup — with one
|
|
85
96
|
present, nothing is asked and nothing is written into your tree:
|
|
86
97
|
|
|
@@ -342,6 +342,7 @@ tests/test_scanning.py
|
|
|
342
342
|
tests/test_schema_fidelity.py
|
|
343
343
|
tests/test_scope_conformance.py
|
|
344
344
|
tests/test_scoring_calibration.py
|
|
345
|
+
tests/test_security_delegate_versions_agree.py
|
|
345
346
|
tests/test_security_pillar_runs_and_shows.py
|
|
346
347
|
tests/test_semantic_policy.py
|
|
347
348
|
tests/test_setup_gate_completeness.py
|
|
@@ -44,8 +44,19 @@ from typing import Any
|
|
|
44
44
|
from ._delegated_pillar import read_produced
|
|
45
45
|
from ._runner import Invocation, Outcome, run
|
|
46
46
|
|
|
47
|
-
#: The
|
|
48
|
-
|
|
47
|
+
#: The releases this audit runs, and the install command's requirement.
|
|
48
|
+
#:
|
|
49
|
+
#: **Not a package dependency.** 3.7.0 made it one, and within the day it
|
|
50
|
+
#: capped the tool below its current release — installing this package
|
|
51
|
+
#: downgraded a machine's secure-code-agent — and put the two tools' opposed
|
|
52
|
+
#: `mcp` pins into one environment. secure-code-agent's D3 and this project's
|
|
53
|
+
#: ADR 008 both hold the tools independently releasable. So the audit runs
|
|
54
|
+
#: whichever release is installed, when it falls in this range, and says so
|
|
55
|
+
#: when it does not. The ceiling is the next major: within 0.x the pillar
|
|
56
|
+
#: document is versioned by its own `schema_version`, which the reader checks.
|
|
57
|
+
SUPPORTED_FLOOR = (0, 12, 1)
|
|
58
|
+
SUPPORTED_CEILING = (1,)
|
|
59
|
+
REQUIREMENT = "secure-code-agent>=0.12.1,<1"
|
|
49
60
|
|
|
50
61
|
#: How long the child may run before the pillar is reported as unmeasured.
|
|
51
62
|
DEFAULT_TIMEOUT_SECONDS = 300
|
|
@@ -82,6 +93,12 @@ def run_security_delegate(
|
|
|
82
93
|
if importlib.util.find_spec("secure_code_audit") is None:
|
|
83
94
|
reason = "secure-code-agent is not installed for the interpreter running this audit"
|
|
84
95
|
return DelegateRun(None, reason, [_install_remedy(reason)])
|
|
96
|
+
installed = _installed_version()
|
|
97
|
+
if installed is None or not (SUPPORTED_FLOOR <= installed < SUPPORTED_CEILING):
|
|
98
|
+
shown = ".".join(map(str, installed)) if installed else "an unreadable version"
|
|
99
|
+
reason = (f"secure-code-agent {shown} is installed; this audit runs "
|
|
100
|
+
f"{REQUIREMENT.removeprefix('secure-code-agent')}")
|
|
101
|
+
return DelegateRun(None, reason, [_install_remedy(reason)])
|
|
85
102
|
with tempfile.TemporaryDirectory(prefix="ma-security-") as scratch:
|
|
86
103
|
out = Path(scratch)
|
|
87
104
|
pillar = out / "security-pillar.json"
|
|
@@ -116,6 +133,31 @@ def run_security_delegate(
|
|
|
116
133
|
return DelegateRun(None, reason)
|
|
117
134
|
|
|
118
135
|
|
|
136
|
+
def _installed_version() -> tuple[int, ...] | None:
|
|
137
|
+
"""The installed release as integers, or `None` when it cannot be read.
|
|
138
|
+
|
|
139
|
+
No `packaging` import: this package has no runtime dependencies. A
|
|
140
|
+
pre-release or local suffix is cut at the first non-numeric part, which
|
|
141
|
+
compares a `0.13.0rc1` as `0.13.0` — conservative at the ceiling.
|
|
142
|
+
"""
|
|
143
|
+
import importlib.metadata as metadata
|
|
144
|
+
import re
|
|
145
|
+
|
|
146
|
+
try:
|
|
147
|
+
text = metadata.version("secure-code-agent")
|
|
148
|
+
except metadata.PackageNotFoundError:
|
|
149
|
+
return None
|
|
150
|
+
parts = []
|
|
151
|
+
for piece in text.split("."):
|
|
152
|
+
match = re.match(r"\d+", piece)
|
|
153
|
+
if not match:
|
|
154
|
+
break
|
|
155
|
+
parts.append(int(match.group()))
|
|
156
|
+
if match.group() != piece:
|
|
157
|
+
break
|
|
158
|
+
return tuple(parts) or None
|
|
159
|
+
|
|
160
|
+
|
|
119
161
|
def _last_line(text: str | None) -> str:
|
|
120
162
|
lines = [line.strip() for line in (text or "").splitlines() if line.strip()]
|
|
121
163
|
return lines[-1][:200] if lines else ""
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/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.7.
|
|
23
|
+
VERSION = "3.7.3"
|
|
24
24
|
|
|
25
25
|
PROJECT_URL = "https://github.com/marshallguillory86/maintainability-agent"
|
|
26
26
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""The secure-code-agent this project gates on is one this audit will run.
|
|
2
|
+
|
|
3
|
+
3.7.0 made secure-code-agent a package dependency pinned `>=0.10,<0.11`, repeated in
|
|
4
|
+
`_security_delegate.REQUIREMENT`, with CI on `==0.10.0` — all taken from the pin CI
|
|
5
|
+
already had, while the published tool was at 0.12.1. It is no longer a dependency
|
|
6
|
+
(secure-code-agent D3, ADR 008: independently releasable), so the audit's own supported
|
|
7
|
+
range is the one declaration, and every CI pin has to fall inside it.
|
|
8
|
+
|
|
9
|
+
Covers existing behaviour: CI's pin sat inside the declared range before this change
|
|
10
|
+
too — on the wrong version. Knowing the current release needs the index, which an
|
|
11
|
+
offline suite cannot read; this guard keeps the declarations together from here.
|
|
12
|
+
"""
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
import re
|
|
16
|
+
import tomllib
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _version_tuple(text: str) -> tuple[int, ...]:
|
|
23
|
+
return tuple(int(part) for part in text.split("."))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_the_supported_range_and_the_install_remedy_are_one_declaration() -> None:
|
|
27
|
+
from maintainability_audit._security_delegate import (
|
|
28
|
+
REQUIREMENT,
|
|
29
|
+
SUPPORTED_CEILING,
|
|
30
|
+
SUPPORTED_FLOOR,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
bounds = dict(re.findall(r"(>=|<)([0-9][0-9.]*)", REQUIREMENT))
|
|
34
|
+
assert _version_tuple(bounds[">="]) == SUPPORTED_FLOOR, (REQUIREMENT, SUPPORTED_FLOOR)
|
|
35
|
+
assert _version_tuple(bounds["<"]) == SUPPORTED_CEILING, (REQUIREMENT, SUPPORTED_CEILING)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_secure_code_agent_is_not_a_package_dependency() -> None:
|
|
39
|
+
project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8"))["project"]
|
|
40
|
+
coupled = [dep for dep in project.get("dependencies", []) if dep.startswith("secure-code-agent")]
|
|
41
|
+
assert not coupled, (
|
|
42
|
+
f"secure-code-agent is a package dependency again ({coupled}); the tools are "
|
|
43
|
+
"independently releasable (secure-code-agent D3, ADR 008)"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def test_every_ci_pin_is_a_release_the_audit_runs() -> None:
|
|
48
|
+
from maintainability_audit._security_delegate import SUPPORTED_CEILING, SUPPORTED_FLOOR
|
|
49
|
+
|
|
50
|
+
workflows = sorted((ROOT / ".github" / "workflows").glob("*.yml"))
|
|
51
|
+
assert workflows, "no workflows found"
|
|
52
|
+
pins = [(path.name, pin) for path in workflows
|
|
53
|
+
for pin in re.findall(r"secure-code-agent==([0-9][0-9.]*)", path.read_text(encoding="utf-8"))]
|
|
54
|
+
assert pins, "no workflow pins secure-code-agent; the gate would run whatever pip picks"
|
|
55
|
+
outside = [(name, pin) for name, pin in pins
|
|
56
|
+
if not (SUPPORTED_FLOOR <= _version_tuple(pin) < SUPPORTED_CEILING)]
|
|
57
|
+
assert not outside, f"CI pins a secure-code-agent this audit refuses to run: {outside}"
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _jobs(text: str) -> dict[str, str]:
|
|
61
|
+
"""Each job's text in a workflow, split on the two-space job keys under `jobs:`.
|
|
62
|
+
|
|
63
|
+
Read as text, as `test_ci_installs_the_analyzer_pool` does: the suite does
|
|
64
|
+
not import a YAML parser.
|
|
65
|
+
"""
|
|
66
|
+
body = text.split("\njobs:\n", 1)[1] if "\njobs:\n" in text else ""
|
|
67
|
+
parts = re.split(r"^ ([A-Za-z0-9_-]+):\s*$", body, flags=re.MULTILINE)
|
|
68
|
+
return {parts[index]: parts[index + 1] for index in range(1, len(parts) - 1, 2)}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def test_every_job_that_runs_the_suite_installs_secure_code_agent() -> None:
|
|
72
|
+
"""The 3.7.2 tag failed in `release.yml`: it ran the suite without the tool.
|
|
73
|
+
|
|
74
|
+
`test_every_ci_pin_is_a_release_the_audit_runs` checked the pins that
|
|
75
|
+
existed, and the release job had none. The population here is every job,
|
|
76
|
+
in every workflow, whose steps run pytest.
|
|
77
|
+
"""
|
|
78
|
+
running = [
|
|
79
|
+
(path.name, job, body)
|
|
80
|
+
for path in sorted((ROOT / ".github" / "workflows").glob("*.yml"))
|
|
81
|
+
for job, body in _jobs(path.read_text(encoding="utf-8")).items()
|
|
82
|
+
if re.search(r"-m pytest\b", body)
|
|
83
|
+
]
|
|
84
|
+
assert running, "no workflow job runs pytest; the sweep would pass vacuously"
|
|
85
|
+
missing = [(name, job) for name, job, body in running if "secure-code-agent==" not in body]
|
|
86
|
+
assert not missing, f"jobs that run the suite without installing secure-code-agent: {missing}"
|
|
@@ -151,6 +151,44 @@ def test_a_missing_delegate_is_stated_with_its_remedy(tmp_path, monkeypatch) ->
|
|
|
151
151
|
assert remedies and "pip install" in remedies[0]["install"], report["environment_work_order"]
|
|
152
152
|
|
|
153
153
|
|
|
154
|
+
@pytest.mark.parametrize("installed", ["0.10.0", "0.12.0", "1.0.0"])
|
|
155
|
+
def test_an_unsupported_release_is_stated_not_run(tmp_path, monkeypatch, installed) -> None:
|
|
156
|
+
"""D177: installed but outside the supported range is a reason and a remedy, never a run.
|
|
157
|
+
|
|
158
|
+
secure-code-agent is no longer a package dependency, so the version a machine has is
|
|
159
|
+
whatever it has. Running a release outside the range would read a contract this
|
|
160
|
+
audit has not been checked against.
|
|
161
|
+
"""
|
|
162
|
+
import importlib.machinery
|
|
163
|
+
import importlib.metadata as metadata
|
|
164
|
+
|
|
165
|
+
from maintainability_audit import _security_delegate
|
|
166
|
+
from maintainability_audit import report as report_module
|
|
167
|
+
from maintainability_audit.config import load_config
|
|
168
|
+
from maintainability_audit.report import build_report
|
|
169
|
+
|
|
170
|
+
real_version = metadata.version
|
|
171
|
+
monkeypatch.setattr(metadata, "version",
|
|
172
|
+
lambda name: installed if name == "secure-code-agent" else real_version(name))
|
|
173
|
+
# Installed, as far as the audit can tell, whatever this environment holds:
|
|
174
|
+
# the release build ran this without secure-code-agent and read "not installed".
|
|
175
|
+
real_find = _security_delegate.importlib.util.find_spec
|
|
176
|
+
monkeypatch.setattr(_security_delegate.importlib.util, "find_spec",
|
|
177
|
+
lambda name, *a: importlib.machinery.ModuleSpec(name, None)
|
|
178
|
+
if name == "secure_code_audit" else real_find(name, *a))
|
|
179
|
+
monkeypatch.setattr(_security_delegate, "run",
|
|
180
|
+
lambda *a, **k: (_ for _ in ()).throw(AssertionError("an unsupported release ran")),
|
|
181
|
+
raising=False)
|
|
182
|
+
monkeypatch.setattr(report_module, "run_security_delegate",
|
|
183
|
+
_security_delegate.run_security_delegate, raising=False)
|
|
184
|
+
|
|
185
|
+
report = build_report(_repo(tmp_path), load_config(None), run_analyzers=False)
|
|
186
|
+
entry = _security(report)
|
|
187
|
+
assert installed in entry["reason"] and "is installed" in entry["reason"], entry["reason"]
|
|
188
|
+
remedies = [item for item in report["environment_work_order"] if item["tool"] == "secure-code-agent"]
|
|
189
|
+
assert remedies and "secure-code-agent>=" in remedies[0]["install"], report["environment_work_order"]
|
|
190
|
+
|
|
191
|
+
|
|
154
192
|
def _states() -> dict[str, dict[str, Any]]:
|
|
155
193
|
"""Every state the security pillar can be in, as `pillar_report` builds it."""
|
|
156
194
|
from maintainability_audit._pillars import pillar_report
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/__main__.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_adapters.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_anchor.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_arguments.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_aspects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_backfill.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_bands.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_banner.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_built_ins.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_catalog.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_charts.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/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.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_derive.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_discovery.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_documents.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/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.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_first_run.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_formula.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_gates.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_generic.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_grammar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_hotspots.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_html_view.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_identity.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_in_loop.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_masking.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_audit.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_gate.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_grants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_mcp_setup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_pillars.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_practice.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_precommit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_pressures.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_c.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_cpp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_go.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_js.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ranges_php.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_ratchet.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_recurrence.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_runner.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_safe_write.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_scan_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_selection.py
RENAMED
|
File without changes
|
{maintainability_agent-3.7.1 → maintainability_agent-3.7.3}/src/maintainability_audit/_semantic.py
RENAMED
|
File without changes
|
|
File without changes
|