code-mower 1.0.9__tar.gz → 1.0.10__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.
- {code_mower-1.0.9 → code_mower-1.0.10}/PKG-INFO +43 -17
- {code_mower-1.0.9 → code_mower-1.0.10}/README.md +42 -16
- {code_mower-1.0.9 → code_mower-1.0.10}/pyproject.toml +1 -1
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/__init__.py +1 -1
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/builder_runs.py +4 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/campaign_adapters.py +207 -20
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cli.py +19 -12
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_telemetry.py +2 -0
- code_mower-1.0.10/src/code_mower/devin_cli_audit_pr.py +1483 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/campaign_auth.py +34 -7
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli.py +99 -20
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/init.py +76 -2
- code_mower-1.0.10/src/code_mower/lane_configs/devin_cli.py +36 -0
- code_mower-1.0.10/src/code_mower/lane_delivery.py +1375 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_status.py +1 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_install.py +9 -17
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_rehearsal.py +1 -1
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/next_steps.py +161 -44
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_manifest.py +12 -0
- code_mower-1.0.10/src/code_mower/participants.py +179 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_registry.py +52 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_campaigns.py +185 -23
- code_mower-1.0.10/src/code_mower/session.py +154 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/code-mower.example.yml +9 -4
- code_mower-1.0.10/src/code_mower/templates/lanes/devin.md +41 -0
- code_mower-1.0.10/src/code_mower/templates/lanes/run_mac_lane.sh +1232 -0
- code_mower-1.0.10/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +63 -0
- {code_mower-1.0.9 → code_mower-1.0.10/src/code_mower}/templates/providers.yml +74 -5
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +1 -1
- {code_mower-1.0.9 → code_mower-1.0.10/src/code_mower}/templates/workflows/local-cli-audit.yml.j2 +1 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/PKG-INFO +43 -17
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/SOURCES.txt +15 -0
- code_mower-1.0.10/templates/lanes/devin.md +41 -0
- code_mower-1.0.10/templates/lanes/run_mac_lane.sh +1232 -0
- code_mower-1.0.10/templates/providers/devin_cli.yml +70 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/gitar.yml +1 -1
- {code_mower-1.0.9/src/code_mower → code_mower-1.0.10}/templates/providers.yml +74 -5
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/builder-provenance.yml.j2 +1 -1
- {code_mower-1.0.9/src/code_mower → code_mower-1.0.10}/templates/workflows/local-cli-audit.yml.j2 +1 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_identity.py +4 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_adapters.py +633 -6
- code_mower-1.0.10/tests/test_devin_builder_lane.py +1538 -0
- code_mower-1.0.10/tests/test_devin_cli_audit_pr.py +974 -0
- code_mower-1.0.10/tests/test_devin_provider_contract.py +743 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_campaign_auth.py +6 -2
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_init_build_loop.py +318 -15
- code_mower-1.0.10/tests/test_lane_delivery_contract.py +2175 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_migration_rehearsal.py +71 -16
- code_mower-1.0.10/tests/test_next_steps.py +147 -0
- code_mower-1.0.10/tests/test_participant_sessions.py +210 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_fixture_contracts.py +3 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_campaigns.py +224 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_hygiene.py +91 -78
- code_mower-1.0.9/src/code_mower/templates/lanes/run_mac_lane.sh +0 -532
- code_mower-1.0.9/templates/lanes/run_mac_lane.sh +0 -532
- {code_mower-1.0.9 → code_mower-1.0.10}/CODE_OF_CONDUCT.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/LICENSE +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/MANIFEST.in +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/NOTICE +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/SUPPORT.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/requirements/requirements.txt +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/setup.cfg +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/_base.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/cursor_bugbot.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/gitar.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/greptile.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/qodo.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/antigravity_sdk_probe.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_handoff_log.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_labeler_lib.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_limits.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_progress.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/blind_review_artifacts.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/blind_review_coordinator.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/board.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/board_store.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/bootstrap.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/builder_experiment.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/arms.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/auto_discovery.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/commands.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/context_inputs.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/corpus.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/effect_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/evidence.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/evidence_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/identity.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/metrics.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/overlap.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/planning.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/policy.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/results.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/run_results.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/run_status.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/runner.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/truth.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/value_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/campaign_discovery.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/checks.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_cli_bounce.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_cli_environment.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/clear_stale.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/adoption_runs.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/bundle.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/doctor.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/dogfood.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/endpoints.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/errors.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/events.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/export.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/git_metadata.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/manifest.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/operations.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/productivity.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/reports.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/setup.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/tokens.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/upload.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/work_types.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_calibration.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_context_packs.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_merge.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_env_preflight.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_schema_smoke.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_verdict.schema.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/config.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/controller.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/decisions.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/adoption.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/audit_limits.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/cloud.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/common.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_api.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_branch.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_config.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_human_token.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_provider.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_repo.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/groups.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/models.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/output.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/presets.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/privacy.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/providers.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/registry.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runner.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runtime.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/supervised_pilot.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/file_locks.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/gate_health.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/gemini_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/git_identity.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/grok_build_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/hermes_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/aider.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/claude.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/codex.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/devin.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/gemini_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/grok_build.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/hermes_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/local_llm.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/muse_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_bakeoff.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_calibration.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_profiles.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_mirror.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_readiness.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/muse_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_content.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_paths.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_rendering.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_static.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/plan_context.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/productivity_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/prompts.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/comments.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/exit_codes.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/git.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/github_auth.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/github_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/pr_worktree.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/process.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/repo_paths.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/text_schema.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/workspace.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/__init__.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/local_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/provenance.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_qualify.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_readiness.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/reviewer_metrics.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/reviewer_spend.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/saas_reviewer_labeler.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/secrets.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/builder-experiment.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/calibration-corpus.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/calibration-corpus.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/context-packs.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/operability.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/README.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/claude.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/codex.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/cursor.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/generic.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/status_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/reviewer-spend.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/trailer_comment_labeler.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/versioning.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/work_orders.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/workflow_actionlint.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/dependency_links.txt +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/entry_points.txt +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/requires.txt +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/top_level.txt +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/builder-experiment.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/calibration-corpus.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/calibration-corpus.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/code-mower.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/context-packs.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/cursor/BUGBOT.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/README.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/claude.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/codex.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/cursor.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/generic.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/acp_bridge.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/aider.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/antigravity_cli.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/claude_audit.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/claude_review.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/coderabbit_cli.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/codex.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/cursor_bugbot.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/cursor_cloud_agent.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/devin.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/gemini_cli.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/greptile.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/hermes_cli.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/local_llm.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/muse_cli.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/qodo.yml +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/reviewer-spend.example.json +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/reviewer-value-report.example.md +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-gate.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_diagnostics.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_result_semantics.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_run_contract.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_antigravity_sdk_probe.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_audit_comment_posture.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_audit_limits.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_board.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_experiment.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_runs.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_calibration_effect_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_calibration_truth.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_discovery.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_retry_evidence_711.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_checks.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_claude_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_claude_cli_bounce.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_clear_stale.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_client.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_git_metadata.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_manifest.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_reports.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_coderabbit_cli_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_codex_audit_env_preflight.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_codex_audit_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_controller.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_decision_audit_integration.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_decisions.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_actions_cost_summary.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_actions_failure_selection.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_boundaries.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_campaign_readiness.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_github_checks.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_output.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_privacy.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_env_required.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_env_tokens.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_local_audit_setup.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_probe.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_review_hygiene.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_registry.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_runtime.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_self_hosted_runner.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_supervised_pilot.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_file_locks.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_fork_pr_guard.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_gate_automerge.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_gate_health.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_hosted_dispatch_profile.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_init_actionlint.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_lane_status.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_local_llm_github_helpers.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_migration_setup_drift.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_package_install_failure_taxonomy.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_plan_context.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_pr_outcome_contract.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_productivity_metrics_contract.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_productivity_report.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_prompts.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_local_cli.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_comments.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_git.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_github_pr.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_pr_worktree.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_process.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_repo_paths.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_text_schema.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_workspace.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_qualify.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_reviewer_metrics_core.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_reviewer_spend.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_supervised_pilot_contract.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_trailer_comment_labeler.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_work_orders.py +0 -0
- {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_work_type_contract.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-mower
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.10
|
|
4
4
|
Summary: Multi-reviewer AI code audit orchestration
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Project-URL: Homepage, https://github.com/codemower-ai/code-mower
|
|
@@ -40,8 +40,7 @@ gate.
|
|
|
40
40
|
|
|
41
41
|
The short version:
|
|
42
42
|
|
|
43
|
-
- create safe, manual-first
|
|
44
|
-
AI review tools;
|
|
43
|
+
- create safe, manual-first peer-review lanes for Codex and Claude;
|
|
45
44
|
- run setup diagnostics before a lane can surprise you with spend, source
|
|
46
45
|
exposure, or GitHub Actions churn;
|
|
47
46
|
- turn issue text, external docs, and project doctrine into local work orders
|
|
@@ -73,6 +72,18 @@ Code Mower should feel like an engineering tool, not a demo harness:
|
|
|
73
72
|
|
|
74
73
|
## What It Looks Like
|
|
75
74
|
|
|
75
|
+
Start with Claude Code and Codex, or choose your participants during setup with
|
|
76
|
+
`code-mower init --interactive`. For example, `code-mower init --with
|
|
77
|
+
claude,codex,devin` previews that selection. The generated configuration remembers
|
|
78
|
+
your choices for later sessions.
|
|
79
|
+
|
|
80
|
+
Ask the agent you are using to start a Code Mower session; that agent is the
|
|
81
|
+
default orchestrator. `code-mower session start --repo OWNER/REPO --with
|
|
82
|
+
claude,codex,devin --host codex` prepares the operating brief when invoked from
|
|
83
|
+
Codex. The host agent drives the work using available execution paths.
|
|
84
|
+
See [Participants And Sessions](docs/sessions.md) for setup, host identity,
|
|
85
|
+
and product-specific capabilities.
|
|
86
|
+
|
|
76
87
|
`code-mower doctor --adoption --repo OWNER/REPO` is the first useful command
|
|
77
88
|
for a real repository. It checks your runtime, GitHub setup, provider CLIs,
|
|
78
89
|
token posture, optional cloud setup, private-repo Actions cost traps, and
|
|
@@ -92,7 +103,7 @@ Example, shortened:
|
|
|
92
103
|
```text
|
|
93
104
|
$ code-mower doctor --adoption --repo OWNER/REPO
|
|
94
105
|
PASS config.validate config validates
|
|
95
|
-
PASS profile.select selected profile: codex, claude_audit
|
|
106
|
+
PASS profile.select selected profile: codex, claude_audit
|
|
96
107
|
PASS runtime.python Python 3.12 satisfies Code Mower requirements
|
|
97
108
|
PASS runtime.github_auth GitHub CLI auth probe succeeded
|
|
98
109
|
PASS runtime.local_cli codex codex found
|
|
@@ -205,6 +216,12 @@ Cold adopters should start with the reviewer gate, then add builders, then
|
|
|
205
216
|
measure builder experiments; provider experiments come after that base loop is
|
|
206
217
|
observable.
|
|
207
218
|
|
|
219
|
+
The initial reviewer and builder paths default to Claude + Codex. Other
|
|
220
|
+
participants require an explicit setup selection. `code-mower next-steps --repo
|
|
221
|
+
OWNER/REPO --pr NUMBER` shows setup, peer-audit requests, status, and local
|
|
222
|
+
evidence. Add `--advanced` for calibration, migration, package rehearsal, and
|
|
223
|
+
optional cloud guidance after the initial loop works.
|
|
224
|
+
|
|
208
225
|
Install first from the [Install And Bootstrap](docs/install.md) matrix: pipx for
|
|
209
226
|
laptops, uv tool installs for hosted agents or CI boxes, and an editable venv
|
|
210
227
|
for Code Mower contributors. All paths require Python 3.12 or newer. For
|
|
@@ -224,7 +241,7 @@ agent report its actual host posture, exact installed version, doctor result,
|
|
|
224
241
|
Board URL, and any owner-only click-list before it mutates the repo.
|
|
225
242
|
|
|
226
243
|
The current package-index announcement entry point is the tagged
|
|
227
|
-
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.
|
|
244
|
+
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.10/docs/try-in-10-minutes.md)
|
|
228
245
|
guide. The v1.0 supervised-pilot release includes the native Board, the
|
|
229
246
|
controller dry-run and policy contract, adoption and upgrade hardening from
|
|
230
247
|
recent install rehearsals, package-index release checks, provider-diversity
|
|
@@ -263,6 +280,11 @@ The v1.0.9 patch makes Board refresh recovery deterministic, turns package
|
|
|
263
280
|
installation failures into bounded actionable diagnostics, and lets release
|
|
264
281
|
campaigns require established providers while retaining slower or experimental
|
|
265
282
|
providers as informational evidence.
|
|
283
|
+
The v1.0.10 patch makes local builder lanes deliverable and recoverable: a
|
|
284
|
+
provider-neutral delivery contract with bounded no-change and owner-action
|
|
285
|
+
outcomes, process-group cleanup so a finished provider is not reported as a
|
|
286
|
+
timeout, simpler first-run defaults, host-led participant sessions, and a
|
|
287
|
+
published 20-sample provider calibration scorecard.
|
|
266
288
|
Package-only users can start from the public package rather than a source
|
|
267
289
|
checkout.
|
|
268
290
|
|
|
@@ -295,7 +317,7 @@ Provider-contract baseline for the next release train:
|
|
|
295
317
|
|
|
296
318
|
For release verification,
|
|
297
319
|
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
|
|
298
|
-
the package-index procedure for `v1.0.
|
|
320
|
+
the package-index procedure for `v1.0.10` / `code-mower==1.0.10`. The
|
|
299
321
|
GitHub release records the workflow and rehearsal evidence for the exact tag.
|
|
300
322
|
After publication, [Release Qualification](docs/release-qualification.md)
|
|
301
323
|
coordinates provider-specific install and operational checks without treating
|
|
@@ -358,10 +380,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
|
|
|
358
380
|
Mower's templates now support that loop end to end; humans still own
|
|
359
381
|
credentials, branch protection, calibration, and owner decisions.
|
|
360
382
|
|
|
361
|
-
The
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
383
|
+
The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
|
|
384
|
+
and peer reviewer. The owning builder remains the only writer, and the other
|
|
385
|
+
provider supplies independent review. Other builders and reviewers are explicit
|
|
386
|
+
later additions; they follow the same lane policy with provider-specific
|
|
387
|
+
execution and authentication where needed.
|
|
365
388
|
|
|
366
389
|
## Why Not Just Run Codex Or Claude Yourself?
|
|
367
390
|
|
|
@@ -443,10 +466,10 @@ The first recommended lanes are local/manual:
|
|
|
443
466
|
| --- | --- | --- |
|
|
444
467
|
| Codex audit | structured local peer audit | merge-gating eligible after setup |
|
|
445
468
|
| Claude audit | structured local peer audit | merge-gating eligible after setup |
|
|
446
|
-
| Gitar | advisory third signal | informational until calibrated |
|
|
447
469
|
|
|
448
|
-
Everything else
|
|
449
|
-
proves it is useful:
|
|
470
|
+
Everything else is opt-in after the Claude + Codex loop works and stays manual
|
|
471
|
+
or informational until your own calibration data proves it is useful: Gitar,
|
|
472
|
+
Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
|
|
450
473
|
BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
|
|
451
474
|
|
|
452
475
|
Gemini CLI and Antigravity are distinct lane ids even though both are Google
|
|
@@ -484,8 +507,8 @@ measurement work.
|
|
|
484
507
|
|
|
485
508
|
## Installation Status
|
|
486
509
|
|
|
487
|
-
The current package-index release baseline is `v1.0.
|
|
488
|
-
install spec `code-mower==1.0.
|
|
510
|
+
The current package-index release baseline is `v1.0.10`, with pinned package
|
|
511
|
+
install spec `code-mower==1.0.10`. Release evidence is recorded on the GitHub
|
|
489
512
|
release and in the first-user install rehearsal. The public repository is
|
|
490
513
|
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
|
|
491
514
|
GitHub releases remain the auditable source for tags, build artifacts, and
|
|
@@ -520,8 +543,9 @@ first so local work exercises the same package entrypoint users install.
|
|
|
520
543
|
conservative and team-controlled while automated retention jobs are roadmap
|
|
521
544
|
work.
|
|
522
545
|
- Advanced/provider/operator commands remain available behind
|
|
523
|
-
`code-mower --help-all`. The default help path stays focused on
|
|
524
|
-
`
|
|
546
|
+
`code-mower --help-all`. The default help path stays focused on setup,
|
|
547
|
+
`next-steps`, lane status, and local evidence; calibration and cloud commands
|
|
548
|
+
remain available through `--help-all`.
|
|
525
549
|
|
|
526
550
|
## Docs Map
|
|
527
551
|
|
|
@@ -541,6 +565,7 @@ first so local work exercises the same package entrypoint users install.
|
|
|
541
565
|
- [Claude Lane Standing Instructions](docs/lanes/claude.md)
|
|
542
566
|
- [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
|
|
543
567
|
- [Provider Matrix](docs/provider-matrix.md)
|
|
568
|
+
- [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
|
|
544
569
|
- [GitHub Setup](docs/github-setup.md)
|
|
545
570
|
- [First Run Transcript](docs/first-run-transcript.md)
|
|
546
571
|
- [First-User Demo Transcript](docs/first-user-demo-transcript.md)
|
|
@@ -561,6 +586,7 @@ first so local work exercises the same package entrypoint users install.
|
|
|
561
586
|
- [v1.0.7 Release Notes](docs/v107-release-notes.md)
|
|
562
587
|
- [v1.0.8 Release Notes](docs/v108-release-notes.md)
|
|
563
588
|
- [v1.0.9 Release Notes](docs/v109-release-notes.md)
|
|
589
|
+
- [v1.0.10 Release Notes](docs/v1010-release-notes.md)
|
|
564
590
|
- [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
|
|
565
591
|
- [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
|
|
566
592
|
- [Demo Calibration Example](examples/demo-calibration/README.md)
|
|
@@ -10,8 +10,7 @@ gate.
|
|
|
10
10
|
|
|
11
11
|
The short version:
|
|
12
12
|
|
|
13
|
-
- create safe, manual-first
|
|
14
|
-
AI review tools;
|
|
13
|
+
- create safe, manual-first peer-review lanes for Codex and Claude;
|
|
15
14
|
- run setup diagnostics before a lane can surprise you with spend, source
|
|
16
15
|
exposure, or GitHub Actions churn;
|
|
17
16
|
- turn issue text, external docs, and project doctrine into local work orders
|
|
@@ -43,6 +42,18 @@ Code Mower should feel like an engineering tool, not a demo harness:
|
|
|
43
42
|
|
|
44
43
|
## What It Looks Like
|
|
45
44
|
|
|
45
|
+
Start with Claude Code and Codex, or choose your participants during setup with
|
|
46
|
+
`code-mower init --interactive`. For example, `code-mower init --with
|
|
47
|
+
claude,codex,devin` previews that selection. The generated configuration remembers
|
|
48
|
+
your choices for later sessions.
|
|
49
|
+
|
|
50
|
+
Ask the agent you are using to start a Code Mower session; that agent is the
|
|
51
|
+
default orchestrator. `code-mower session start --repo OWNER/REPO --with
|
|
52
|
+
claude,codex,devin --host codex` prepares the operating brief when invoked from
|
|
53
|
+
Codex. The host agent drives the work using available execution paths.
|
|
54
|
+
See [Participants And Sessions](docs/sessions.md) for setup, host identity,
|
|
55
|
+
and product-specific capabilities.
|
|
56
|
+
|
|
46
57
|
`code-mower doctor --adoption --repo OWNER/REPO` is the first useful command
|
|
47
58
|
for a real repository. It checks your runtime, GitHub setup, provider CLIs,
|
|
48
59
|
token posture, optional cloud setup, private-repo Actions cost traps, and
|
|
@@ -62,7 +73,7 @@ Example, shortened:
|
|
|
62
73
|
```text
|
|
63
74
|
$ code-mower doctor --adoption --repo OWNER/REPO
|
|
64
75
|
PASS config.validate config validates
|
|
65
|
-
PASS profile.select selected profile: codex, claude_audit
|
|
76
|
+
PASS profile.select selected profile: codex, claude_audit
|
|
66
77
|
PASS runtime.python Python 3.12 satisfies Code Mower requirements
|
|
67
78
|
PASS runtime.github_auth GitHub CLI auth probe succeeded
|
|
68
79
|
PASS runtime.local_cli codex codex found
|
|
@@ -175,6 +186,12 @@ Cold adopters should start with the reviewer gate, then add builders, then
|
|
|
175
186
|
measure builder experiments; provider experiments come after that base loop is
|
|
176
187
|
observable.
|
|
177
188
|
|
|
189
|
+
The initial reviewer and builder paths default to Claude + Codex. Other
|
|
190
|
+
participants require an explicit setup selection. `code-mower next-steps --repo
|
|
191
|
+
OWNER/REPO --pr NUMBER` shows setup, peer-audit requests, status, and local
|
|
192
|
+
evidence. Add `--advanced` for calibration, migration, package rehearsal, and
|
|
193
|
+
optional cloud guidance after the initial loop works.
|
|
194
|
+
|
|
178
195
|
Install first from the [Install And Bootstrap](docs/install.md) matrix: pipx for
|
|
179
196
|
laptops, uv tool installs for hosted agents or CI boxes, and an editable venv
|
|
180
197
|
for Code Mower contributors. All paths require Python 3.12 or newer. For
|
|
@@ -194,7 +211,7 @@ agent report its actual host posture, exact installed version, doctor result,
|
|
|
194
211
|
Board URL, and any owner-only click-list before it mutates the repo.
|
|
195
212
|
|
|
196
213
|
The current package-index announcement entry point is the tagged
|
|
197
|
-
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.
|
|
214
|
+
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.10/docs/try-in-10-minutes.md)
|
|
198
215
|
guide. The v1.0 supervised-pilot release includes the native Board, the
|
|
199
216
|
controller dry-run and policy contract, adoption and upgrade hardening from
|
|
200
217
|
recent install rehearsals, package-index release checks, provider-diversity
|
|
@@ -233,6 +250,11 @@ The v1.0.9 patch makes Board refresh recovery deterministic, turns package
|
|
|
233
250
|
installation failures into bounded actionable diagnostics, and lets release
|
|
234
251
|
campaigns require established providers while retaining slower or experimental
|
|
235
252
|
providers as informational evidence.
|
|
253
|
+
The v1.0.10 patch makes local builder lanes deliverable and recoverable: a
|
|
254
|
+
provider-neutral delivery contract with bounded no-change and owner-action
|
|
255
|
+
outcomes, process-group cleanup so a finished provider is not reported as a
|
|
256
|
+
timeout, simpler first-run defaults, host-led participant sessions, and a
|
|
257
|
+
published 20-sample provider calibration scorecard.
|
|
236
258
|
Package-only users can start from the public package rather than a source
|
|
237
259
|
checkout.
|
|
238
260
|
|
|
@@ -265,7 +287,7 @@ Provider-contract baseline for the next release train:
|
|
|
265
287
|
|
|
266
288
|
For release verification,
|
|
267
289
|
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
|
|
268
|
-
the package-index procedure for `v1.0.
|
|
290
|
+
the package-index procedure for `v1.0.10` / `code-mower==1.0.10`. The
|
|
269
291
|
GitHub release records the workflow and rehearsal evidence for the exact tag.
|
|
270
292
|
After publication, [Release Qualification](docs/release-qualification.md)
|
|
271
293
|
coordinates provider-specific install and operational checks without treating
|
|
@@ -328,10 +350,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
|
|
|
328
350
|
Mower's templates now support that loop end to end; humans still own
|
|
329
351
|
credentials, branch protection, calibration, and owner decisions.
|
|
330
352
|
|
|
331
|
-
The
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
353
|
+
The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
|
|
354
|
+
and peer reviewer. The owning builder remains the only writer, and the other
|
|
355
|
+
provider supplies independent review. Other builders and reviewers are explicit
|
|
356
|
+
later additions; they follow the same lane policy with provider-specific
|
|
357
|
+
execution and authentication where needed.
|
|
335
358
|
|
|
336
359
|
## Why Not Just Run Codex Or Claude Yourself?
|
|
337
360
|
|
|
@@ -413,10 +436,10 @@ The first recommended lanes are local/manual:
|
|
|
413
436
|
| --- | --- | --- |
|
|
414
437
|
| Codex audit | structured local peer audit | merge-gating eligible after setup |
|
|
415
438
|
| Claude audit | structured local peer audit | merge-gating eligible after setup |
|
|
416
|
-
| Gitar | advisory third signal | informational until calibrated |
|
|
417
439
|
|
|
418
|
-
Everything else
|
|
419
|
-
proves it is useful:
|
|
440
|
+
Everything else is opt-in after the Claude + Codex loop works and stays manual
|
|
441
|
+
or informational until your own calibration data proves it is useful: Gitar,
|
|
442
|
+
Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
|
|
420
443
|
BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
|
|
421
444
|
|
|
422
445
|
Gemini CLI and Antigravity are distinct lane ids even though both are Google
|
|
@@ -454,8 +477,8 @@ measurement work.
|
|
|
454
477
|
|
|
455
478
|
## Installation Status
|
|
456
479
|
|
|
457
|
-
The current package-index release baseline is `v1.0.
|
|
458
|
-
install spec `code-mower==1.0.
|
|
480
|
+
The current package-index release baseline is `v1.0.10`, with pinned package
|
|
481
|
+
install spec `code-mower==1.0.10`. Release evidence is recorded on the GitHub
|
|
459
482
|
release and in the first-user install rehearsal. The public repository is
|
|
460
483
|
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
|
|
461
484
|
GitHub releases remain the auditable source for tags, build artifacts, and
|
|
@@ -490,8 +513,9 @@ first so local work exercises the same package entrypoint users install.
|
|
|
490
513
|
conservative and team-controlled while automated retention jobs are roadmap
|
|
491
514
|
work.
|
|
492
515
|
- Advanced/provider/operator commands remain available behind
|
|
493
|
-
`code-mower --help-all`. The default help path stays focused on
|
|
494
|
-
`
|
|
516
|
+
`code-mower --help-all`. The default help path stays focused on setup,
|
|
517
|
+
`next-steps`, lane status, and local evidence; calibration and cloud commands
|
|
518
|
+
remain available through `--help-all`.
|
|
495
519
|
|
|
496
520
|
## Docs Map
|
|
497
521
|
|
|
@@ -511,6 +535,7 @@ first so local work exercises the same package entrypoint users install.
|
|
|
511
535
|
- [Claude Lane Standing Instructions](docs/lanes/claude.md)
|
|
512
536
|
- [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
|
|
513
537
|
- [Provider Matrix](docs/provider-matrix.md)
|
|
538
|
+
- [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
|
|
514
539
|
- [GitHub Setup](docs/github-setup.md)
|
|
515
540
|
- [First Run Transcript](docs/first-run-transcript.md)
|
|
516
541
|
- [First-User Demo Transcript](docs/first-user-demo-transcript.md)
|
|
@@ -531,6 +556,7 @@ first so local work exercises the same package entrypoint users install.
|
|
|
531
556
|
- [v1.0.7 Release Notes](docs/v107-release-notes.md)
|
|
532
557
|
- [v1.0.8 Release Notes](docs/v108-release-notes.md)
|
|
533
558
|
- [v1.0.9 Release Notes](docs/v109-release-notes.md)
|
|
559
|
+
- [v1.0.10 Release Notes](docs/v1010-release-notes.md)
|
|
534
560
|
- [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
|
|
535
561
|
- [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
|
|
536
562
|
- [Demo Calibration Example](examples/demo-calibration/README.md)
|
|
@@ -39,6 +39,8 @@ AUTHOR_INFERENCE_RULES = {
|
|
|
39
39
|
"claude-bot": ("claude", "claude_code_action"),
|
|
40
40
|
"cursor[bot]": ("cursor_cloud_agent", "cursor_cloud_agent"),
|
|
41
41
|
"cursor": ("cursor_cloud_agent", "cursor_cloud_agent"),
|
|
42
|
+
"devin-ai-integration": ("devin", "devin"),
|
|
43
|
+
"devin-ai-integration[bot]": ("devin", "devin"),
|
|
42
44
|
}
|
|
43
45
|
BRANCH_PREFIX_INFERENCE_RULES = (
|
|
44
46
|
("cursor/", "cursor_cloud_agent", "cursor_cloud_agent"),
|
|
@@ -49,6 +51,8 @@ BRANCH_PREFIX_INFERENCE_RULES = (
|
|
|
49
51
|
("chatgpt-codex-", "codex", "chatgpt-codex-connector"),
|
|
50
52
|
("claude/", "claude", "claude_code_action"),
|
|
51
53
|
("claude-", "claude", "claude_code_action"),
|
|
54
|
+
("devin/", "devin_cli", "devin_cli"),
|
|
55
|
+
("devin-", "devin_cli", "devin_cli"),
|
|
52
56
|
)
|
|
53
57
|
|
|
54
58
|
|