LICENSE
README.md
pyproject.toml
src/spec_runner/__init__.py
src/spec_runner/__main__.py
src/spec_runner/audit.py
src/spec_runner/audit_log.py
src/spec_runner/bookkeeping.py
src/spec_runner/budget.py
src/spec_runner/budget_cmd.py
src/spec_runner/change_commands.py
src/spec_runner/claims.py
src/spec_runner/cli.py
src/spec_runner/cli_info.py
src/spec_runner/cli_plan.py
src/spec_runner/config.py
src/spec_runner/doctor.py
src/spec_runner/errors.py
src/spec_runner/events.py
src/spec_runner/execution.py
src/spec_runner/executor.py
src/spec_runner/gates.py
src/spec_runner/git_ops.py
src/spec_runner/github_sync.py
src/spec_runner/harness.py
src/spec_runner/hooks.py
src/spec_runner/init_cmd.py
src/spec_runner/lifecycle.py
src/spec_runner/live_verify.py
src/spec_runner/logging.py
src/spec_runner/mcp_launch.py
src/spec_runner/mcp_server.py
src/spec_runner/notifications.py
src/spec_runner/obs.py
src/spec_runner/phases.py
src/spec_runner/plugins.py
src/spec_runner/preflight.py
src/spec_runner/preset_cmd.py
src/spec_runner/prompt.py
src/spec_runner/prompts_log.py
src/spec_runner/py.typed
src/spec_runner/remedy.py
src/spec_runner/report.py
src/spec_runner/requirements.py
src/spec_runner/review.py
src/spec_runner/review_pr.py
src/spec_runner/runner.py
src/spec_runner/spec.py
src/spec_runner/spec_commands.py
src/spec_runner/spec_merge.py
src/spec_runner/stages.py
src/spec_runner/state.py
src/spec_runner/sync_cmd.py
src/spec_runner/task.py
src/spec_runner/task_commands.py
src/spec_runner/tdd.py
src/spec_runner/tdd_runners.py
src/spec_runner/tdd_status.py
src/spec_runner/tui.py
src/spec_runner/validate.py
src/spec_runner/verify.py
src/spec_runner.egg-info/PKG-INFO
src/spec_runner.egg-info/SOURCES.txt
src/spec_runner.egg-info/dependency_links.txt
src/spec_runner.egg-info/entry_points.txt
src/spec_runner.egg-info/requires.txt
src/spec_runner.egg-info/top_level.txt
src/spec_runner/contract_fixtures/__init__.py
src/spec_runner/contract_fixtures/spec_meta_contract_v2.md
src/spec_runner/presets/claude.yaml
src/spec_runner/presets/codex.yaml
src/spec_runner/presets/copilot.yaml
src/spec_runner/presets/llama-cli.yaml
src/spec_runner/presets/ollama.yaml
src/spec_runner/presets/opencode.yaml
src/spec_runner/presets/pi.yaml
src/spec_runner/presets/qwen.yaml
src/spec_runner/profiles/lite.yaml
src/spec_runner/skills/spec-generator-skill/SKILL.md
src/spec_runner/skills/spec-generator-skill/templates/Makefile.template
src/spec_runner/skills/spec-generator-skill/templates/design.template.md
src/spec_runner/skills/spec-generator-skill/templates/executor.config.yaml
src/spec_runner/skills/spec-generator-skill/templates/executor.py
src/spec_runner/skills/spec-generator-skill/templates/phase-design.template.md
src/spec_runner/skills/spec-generator-skill/templates/phase-requirements.template.md
src/spec_runner/skills/spec-generator-skill/templates/phase-tasks.template.md
src/spec_runner/skills/spec-generator-skill/templates/requirements.template.md
src/spec_runner/skills/spec-generator-skill/templates/task.py
src/spec_runner/skills/spec-generator-skill/templates/tasks.template.md
src/spec_runner/skills/spec-generator-skill/templates/workflow.template.md
src/spec_runner/skills/spec-generator-skill/templates/pi/spec-runner.pi.config.yaml
src/spec_runner/skills/spec-generator-skill/templates/pi/skills/pi-implementer/SKILL.md
src/spec_runner/skills/spec-generator-skill/templates/pi/skills/pi-reviewer/SKILL.md
src/spec_runner/skills/spec-generator-skill/templates/pi/skills/pi-tester/SKILL.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.claude.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.codex.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.llama.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.ollama.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.opencode.md
src/spec_runner/skills/spec-generator-skill/templates/prompts/review.pi.md
tests/test_adopt_gate.py
tests/test_agent_answer.py
tests/test_ancestry_instrument_error.py
tests/test_audit.py
tests/test_audit_log.py
tests/test_authoring_links.py
tests/test_authorize_is_all_or_nothing.py
tests/test_autofix_does_not_whiten_red.py
tests/test_belt_popen_subscriptable.py
tests/test_blocked_after_skip.py
tests/test_blocked_bookkeeping.py
tests/test_budget_after_success.py
tests/test_budget_authorization.py
tests/test_budget_domain_is_named.py
tests/test_budget_dormancy.py
tests/test_budget_guard.py
tests/test_budget_one_resolver.py
tests/test_c1_zero_behaviour.py
tests/test_candidate_commit.py
tests/test_change_folders.py
tests/test_changelog_links.py
tests/test_claim_ownership.py
tests/test_claims.py
tests/test_claims_released_at_completion.py
tests/test_cli_flags.py
tests/test_cli_info.py
tests/test_cli_run_reset.py
tests/test_commit_provenance.py
tests/test_config.py
tests/test_costs.py
tests/test_dag_profiles.py
tests/test_dirty_spec_guard.py
tests/test_doctor.py
tests/test_dry_run_output.py
tests/test_e2e.py
tests/test_errors.py
tests/test_events.py
tests/test_every_artefact_says_what_happened.py
tests/test_evidential_file_is_new.py
tests/test_execution.py
tests/test_execution_mode.py
tests/test_exit_contract.py
tests/test_exunit_adapter.py
tests/test_failure_reason_reaches_the_caller.py
tests/test_frozen_bytes_are_the_replayed_bytes.py
tests/test_frozen_prompt.py
tests/test_gated_plan.py
tests/test_generated_spec_meets_run_contract.py
tests/test_gh_sync.py
tests/test_governed_run_findings.py
tests/test_harness_guard.py
tests/test_harness_guard_retry.py
tests/test_harness_guards.py
tests/test_hooks.py
tests/test_infrastructure_classification.py
tests/test_integration_pr.py
tests/test_integration_pr_never_touches_main.py
tests/test_json_result_contract.py
tests/test_lazy_mcp_import.py
tests/test_lifecycle_reads_the_evidence.py
tests/test_logging.py
tests/test_markers_are_lines.py
tests/test_mcp.py
tests/test_mcp_e2e_485.py
tests/test_mcp_launch_scope.py
tests/test_mcp_serializer.py
tests/test_mcp_v2_wire.py
tests/test_missing_config_warning.py
tests/test_mixed_config.py
tests/test_neighbour_ws_file_does_not_block.py
tests/test_noop_marker.py
tests/test_notifications.py
tests/test_obs.py
tests/test_obs_contract.py
tests/test_one_review_classifier.py
tests/test_overshoot_is_announced.py
tests/test_phase_outcomes.py
tests/test_plan_confirm.py
tests/test_plan_full.py
tests/test_plugins.py
tests/test_policy_gates.py
tests/test_post_green_resume.py
tests/test_post_pr_stage.py
tests/test_post_review_plugin_edge.py
tests/test_pr_agent_calls.py
tests/test_preflight.py
tests/test_presets.py
tests/test_prompt.py
tests/test_prompt_profile.py
tests/test_prompt_template_resolution.py
tests/test_provider_exhaustion.py
tests/test_red_absorb_format.py
tests/test_red_autofix_agent_round.py
tests/test_red_autofix_cost.py
tests/test_red_autofix_scope.py
tests/test_red_checkpoint.py
tests/test_red_gate.py
tests/test_red_lint_autofix.py
tests/test_red_lint_autofix_composite.py
tests/test_red_lint_autofix_refusal.py
tests/test_red_lint_scope.py
tests/test_red_prompt_is_logged.py
tests/test_red_reuse_and_cost.py
tests/test_rejected_red_is_adopted.py
tests/test_rejected_red_remainder_is_adopted.py
tests/test_remedy.py
tests/test_repair_reads_the_replay.py
tests/test_report.py
tests/test_requirements.py
tests/test_rescue_uncommitted.py
tests/test_review.py
tests/test_review_cost_ledger.py
tests/test_review_gate_rerun.py
tests/test_review_policy.py
tests/test_review_pr.py
tests/test_review_pr_cost_guard.py
tests/test_review_prompt_is_logged.py
tests/test_review_reserve.py
tests/test_review_status.py
tests/test_review_verdict_honesty.py
tests/test_run_exit_contract.py
tests/test_run_gate.py
tests/test_run_reconciliation.py
tests/test_run_summary.py
tests/test_runner.py
tests/test_runner_recognition.py
tests/test_runtime_state_commits.py
tests/test_scoped_test_command.py
tests/test_source_prompt_version.py
tests/test_spec_commands.py
tests/test_spec_lock.py
tests/test_spec_merge.py
tests/test_spec_meta.py
tests/test_spec_meta_contract.py
tests/test_spec_prefix.py
tests/test_spec_profile_config.py
tests/test_spec_rules_context.py
tests/test_stage_profile.py
tests/test_stages.py
tests/test_state.py
tests/test_subdir_detection.py
tests/test_sync_cmd.py
tests/test_sync_deps.py
tests/test_task.py
tests/test_task_001_55403b38f9226be0_14df0641_red.py
tests/test_task_001_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_001_88012a1afd18fa55_6fc99bbb_red.py
tests/test_task_001_red.py
tests/test_task_002_55403b38f9226be0_14df0641_red.py
tests/test_task_002_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_002_88012a1afd18fa55_6fc99bbb_red.py
tests/test_task_002_red.py
tests/test_task_003_55403b38f9226be0_14df0641_red.py
tests/test_task_003_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_003_red.py
tests/test_task_004_55403b38f9226be0_14df0641_red.py
tests/test_task_004_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_004_88012a1afd18fa55_6fc99bbb_red.py
tests/test_task_004_red.py
tests/test_task_005_55403b38f9226be0_14df0641_red.py
tests/test_task_005_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_005_red.py
tests/test_task_006_55403b38f9226be0_14df0641_red.py
tests/test_task_006_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_006_red.py
tests/test_task_007_55403b38f9226be0_14df0641_red.py
tests/test_task_007_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_008_55403b38f9226be0_14df0641_red.py
tests/test_task_008_red.py
tests/test_task_009_55403b38f9226be0_14df0641_red.py
tests/test_task_009_red.py
tests/test_task_010_55403b38f9226be0_14df0641_red.py
tests/test_task_010_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_010_c560727b864370c7_1eb83bfd_red.py
tests/test_task_011_55403b38f9226be0_14df0641_red.py
tests/test_task_012_55403b38f9226be0_14df0641_red.py
tests/test_task_012_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_013_55403b38f9226be0_14df0641_red.py
tests/test_task_013_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_014_55403b38f9226be0_14df0641_red.py
tests/test_task_014_c560727b864370c7_1eb83bfd_red.py
tests/test_task_015_55403b38f9226be0_14df0641_red.py
tests/test_task_015_73c7da4131bf7975_fb8ef9f9_red.py
tests/test_task_015_c560727b864370c7_1eb83bfd_red.py
tests/test_task_016_c560727b864370c7_1eb83bfd_red.py
tests/test_task_018_c560727b864370c7_1eb83bfd_red.py
tests/test_task_diff.py
tests/test_task_meta_bullet.py
tests/test_task_meta_strictness.py
tests/test_task_status_update.py
tests/test_tdd_battle.py
tests/test_tdd_lifecycle.py
tests/test_tdd_runner_config.py
tests/test_tdd_runners.py
tests/test_terminal_refusal.py
tests/test_tracked_state_db_refused.py
tests/test_tui.py
tests/test_validate.py
tests/test_validate_before_write.py
tests/test_verify.py
tests/test_verify_branching.py
tests/test_verify_claims.py
tests/test_verify_cli.py
tests/test_verify_evidence.py
tests/test_verify_file_composition.py
tests/test_verify_file_target_adapter.py
tests/test_verify_file_target_branching.py
tests/test_verify_file_target_contracts.py
tests/test_verify_file_target_cost.py
tests/test_verify_file_target_declaration.py
tests/test_verify_file_target_dictionary.py
tests/test_verify_file_target_gates.py
tests/test_verify_file_target_outcomes.py
tests/test_verify_first_cost.py
tests/test_verify_first_declaration.py
tests/test_verify_first_mode.py
tests/test_verify_first_validate.py
tests/test_verify_gates.py
tests/test_verify_outcomes.py
tests/test_verify_run_order.py
tests/test_vscode_contract.py
tests/test_waived_standard.py
tests/test_waiver_reaches_the_reviewer.py
tests/test_watch.py
tests/test_ws_scoped_red_names.py
tests/test_ws_scoped_red_names_backcompat.py