LICENSE
README.md
pyproject.toml
src/emkeel/__init__.py
src/emkeel/adopt.py
src/emkeel/cli.py
src/emkeel/coverage_map.py
src/emkeel/install.py
src/emkeel/local_layer.py
src/emkeel/prerequisites.py
src/emkeel/uninstall.py
src/emkeel.egg-info/PKG-INFO
src/emkeel.egg-info/SOURCES.txt
src/emkeel.egg-info/dependency_links.txt
src/emkeel.egg-info/entry_points.txt
src/emkeel.egg-info/requires.txt
src/emkeel.egg-info/top_level.txt
src/emkeel/ci/__init__.py
src/emkeel/ci/gates/__init__.py
src/emkeel/ci/gates/anchored_config.py
src/emkeel/ci/gates/approval.py
src/emkeel/ci/gates/branch_vocabulary.py
src/emkeel/ci/gates/canary.py
src/emkeel/ci/gates/checklists.py
src/emkeel/ci/gates/clarifications.py
src/emkeel/ci/gates/cycle_drift.py
src/emkeel/ci/gates/decisions.py
src/emkeel/ci/gates/issue_close.py
src/emkeel/ci/gates/issue_precedence.py
src/emkeel/ci/gates/maintenance.py
src/emkeel/ci/gates/naming.py
src/emkeel/ci/gates/phase0_anchor.py
src/emkeel/ci/gates/protected_paths.py
src/emkeel/ci/gates/standard_armed.py
src/emkeel/ci/gates/traceability.py
src/emkeel/ci/gates/trivial_class.py
src/emkeel/ci/keel_ci/__init__.py
src/emkeel/ci/keel_ci/anchored.py
src/emkeel/ci/keel_ci/artifacts.py
src/emkeel/ci/keel_ci/cli.py
src/emkeel/ci/keel_ci/digest.py
src/emkeel/ci/keel_ci/forge.py
src/emkeel/ci/keel_ci/handover.py
src/emkeel/ci/keel_ci/preconditions.py
src/emkeel/ci/keel_ci/slug.py
src/emkeel/ci/keel_ci/verdict.py
src/emkeel/docs/GOVERNANCE.md
src/emkeel/docs/process/lifecycle.md
src/emkeel/fixtures/__init__.py
src/emkeel/fixtures/adopter/.claude/settings.json
src/emkeel/fixtures/adopter/.specify/init-options.json
src/emkeel/fixtures/adopter/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/adopter/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/adopter/docs/manual.md
src/emkeel/fixtures/adopter/specs/001-suyo/spec.md
src/emkeel/fixtures/anchored_config/bad_git_extension/keel.toml
src/emkeel/fixtures/anchored_config/bad_git_extension/.claude/keel-contract.md
src/emkeel/fixtures/anchored_config/bad_git_extension/.claude/keel-local.md
src/emkeel/fixtures/anchored_config/bad_git_extension/.specify/extensions.yml
src/emkeel/fixtures/anchored_config/bad_git_extension/.specify/init-options.json
src/emkeel/fixtures/anchored_config/bad_git_extension/.specify/scripts/bash/create-new-feature-branch.sh
src/emkeel/fixtures/anchored_config/bad_git_extension/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/anchored_config/bad_git_extension/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/anchored_config/bad_git_extension/docs/GOVERNANCE.md
src/emkeel/fixtures/anchored_config/bad_missing_override/keel.toml
src/emkeel/fixtures/anchored_config/bad_missing_override/.claude/keel-contract.md
src/emkeel/fixtures/anchored_config/bad_missing_override/.claude/keel-local.md
src/emkeel/fixtures/anchored_config/bad_missing_override/.specify/init-options.json
src/emkeel/fixtures/anchored_config/bad_missing_override/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/anchored_config/bad_missing_override/docs/GOVERNANCE.md
src/emkeel/fixtures/anchored_config/bad_version_drift/keel.toml
src/emkeel/fixtures/anchored_config/bad_version_drift/.claude/keel-contract.md
src/emkeel/fixtures/anchored_config/bad_version_drift/.claude/keel-local.md
src/emkeel/fixtures/anchored_config/bad_version_drift/.specify/init-options.json
src/emkeel/fixtures/anchored_config/bad_version_drift/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/anchored_config/bad_version_drift/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/anchored_config/bad_version_drift/docs/GOVERNANCE.md
src/emkeel/fixtures/anchored_config/good/keel.toml
src/emkeel/fixtures/anchored_config/good/.claude/keel-contract.md
src/emkeel/fixtures/anchored_config/good/.claude/keel-local.md
src/emkeel/fixtures/anchored_config/good/.specify/init-options.json
src/emkeel/fixtures/anchored_config/good/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/anchored_config/good/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/anchored_config/good/docs/GOVERNANCE.md
src/emkeel/fixtures/approval/bad_after_work.json
src/emkeel/fixtures/approval/bad_missing.json
src/emkeel/fixtures/approval/bad_stale_digest.json
src/emkeel/fixtures/approval/bad_work_before_any_approval.json
src/emkeel/fixtures/approval/good.json
src/emkeel/fixtures/approval/good_no_plan_yet.json
src/emkeel/fixtures/approval/good_reapproval.json
src/emkeel/fixtures/approval/good_repeated.json
src/emkeel/fixtures/approval/spec.md
src/emkeel/fixtures/branch_vocabulary/bad_unknown_slug/forge.json
src/emkeel/fixtures/branch_vocabulary/bad_unknown_slug/keel.toml
src/emkeel/fixtures/branch_vocabulary/good/keel.toml
src/emkeel/fixtures/canary/always_pass_gate.py
src/emkeel/fixtures/checklists/bad_unchecked/requirements.md
src/emkeel/fixtures/checklists/good/requirements.md
src/emkeel/fixtures/clarifications/bad_no_section/spec.md
src/emkeel/fixtures/clarifications/good/spec.md
src/emkeel/fixtures/cycle_drift/bad_absent_guarantor/docs/GOVERNANCE.md
src/emkeel/fixtures/cycle_drift/bad_absent_guarantor/docs/process/lifecycle.md
src/emkeel/fixtures/cycle_drift/bad_absent_guarantor/docs/standard/code.md
src/emkeel/fixtures/cycle_drift/bad_drift/docs/GOVERNANCE.md
src/emkeel/fixtures/cycle_drift/bad_drift/docs/process/lifecycle.md
src/emkeel/fixtures/cycle_drift/bad_drift/docs/standard/code.md
src/emkeel/fixtures/cycle_drift/bad_stale_prose/docs/GOVERNANCE.md
src/emkeel/fixtures/cycle_drift/bad_stale_prose/docs/decisions/0001-clarifications.md
src/emkeel/fixtures/cycle_drift/bad_stale_prose/docs/process/lifecycle.md
src/emkeel/fixtures/cycle_drift/bad_stale_prose/docs/standard/code.md
src/emkeel/fixtures/cycle_drift/good/docs/GOVERNANCE.md
src/emkeel/fixtures/cycle_drift/good/docs/process/lifecycle.md
src/emkeel/fixtures/cycle_drift/good/docs/standard/code.md
src/emkeel/fixtures/decisions/bad_dangling_row/docs/GOVERNANCE.md
src/emkeel/fixtures/decisions/bad_dangling_row/docs/decisions/0002-otra.md
src/emkeel/fixtures/decisions/bad_unindexed/docs/GOVERNANCE.md
src/emkeel/fixtures/decisions/bad_unindexed/docs/decisions/0001-indexada.md
src/emkeel/fixtures/decisions/bad_unindexed/docs/decisions/0002-huerfana.md
src/emkeel/fixtures/decisions/bad_without_status/docs/GOVERNANCE.md
src/emkeel/fixtures/decisions/bad_without_status/docs/decisions/0001-sin-estado.md
src/emkeel/fixtures/forge/issue-4.json
src/emkeel/fixtures/guard/approval/bad/specs/004-x/spec.md
src/emkeel/fixtures/guard/approval/good/specs/004-x/README.md
src/emkeel/fixtures/guard/checklists/bad/specs/004-x/plan.md
src/emkeel/fixtures/guard/checklists/bad/specs/004-x/spec.md
src/emkeel/fixtures/guard/checklists/bad/specs/004-x/tasks.md
src/emkeel/fixtures/guard/checklists/bad/specs/004-x/checklists/requirements.md
src/emkeel/fixtures/guard/checklists/good/specs/004-x/plan.md
src/emkeel/fixtures/guard/checklists/good/specs/004-x/spec.md
src/emkeel/fixtures/guard/checklists/good/specs/004-x/tasks.md
src/emkeel/fixtures/guard/checklists/good/specs/004-x/checklists/requirements.md
src/emkeel/fixtures/guard/clarifications/bad/specs/004-x/spec.md
src/emkeel/fixtures/guard/clarifications/good/specs/004-x/spec.md
src/emkeel/fixtures/guard/funnel/bad/keel.toml
src/emkeel/fixtures/guard/funnel/bad/specs/004-x/spec.md
src/emkeel/fixtures/guard/funnel/bad_no_directory/keel.toml
src/emkeel/fixtures/guard/funnel/good/keel.toml
src/emkeel/fixtures/guard/funnel/good/specs/004-x/plan.md
src/emkeel/fixtures/guard/funnel/good/specs/004-x/spec.md
src/emkeel/fixtures/guard/funnel/good/specs/004-x/tasks.md
src/emkeel/fixtures/guard/funnel/good/specs/004-x/checklists/requirements.md
src/emkeel/fixtures/guard/language/bad/docs/note.md
src/emkeel/fixtures/guard/language/good/docs/note.md
src/emkeel/fixtures/guard/naming/bad/docs/decisions/0060-la-decisión.md
src/emkeel/fixtures/guard/naming/good/docs/decisions/0060-the-operator-choice.md
src/emkeel/fixtures/guard/protected/bad/.claude/keel-contract.md
src/emkeel/fixtures/guard/protected/good/module.py
src/emkeel/fixtures/guard/protection/protected.json
src/emkeel/fixtures/guard/response/long.jsonl
src/emkeel/fixtures/guard/response/short.jsonl
src/emkeel/fixtures/guard/test_first/bad/specs/004-x/tasks.md
src/emkeel/fixtures/guard/test_first/good/specs/004-x/tasks.md
src/emkeel/fixtures/installer/bad_edited_contract/canary.json
src/emkeel/fixtures/installer/bad_edited_contract/.claude/keel-contract.md
src/emkeel/fixtures/installer/bad_edited_contract/.specify/init-options.json
src/emkeel/fixtures/installer/bad_edited_contract/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/installer/bad_edited_contract/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/installer/bad_missing_spec_kit/canary.json
src/emkeel/fixtures/installer/bad_over_budget/CLAUDE.md
src/emkeel/fixtures/installer/bad_over_budget/canary.json
src/emkeel/fixtures/installer/bad_over_budget/.specify/init-options.json
src/emkeel/fixtures/installer/bad_over_budget/.specify/templates/overrides/spec-template.md
src/emkeel/fixtures/installer/bad_over_budget/.specify/templates/overrides/tasks-template.md
src/emkeel/fixtures/issue_close/already_rejected.json
src/emkeel/fixtures/issue_close/bad_extra_box.json
src/emkeel/fixtures/issue_close/bad_no_bijection.json
src/emkeel/fixtures/issue_close/bad_stale_rejection.json
src/emkeel/fixtures/issue_close/bad_unchecked.json
src/emkeel/fixtures/issue_close/good.json
src/emkeel/fixtures/issue_close/spec.md
src/emkeel/fixtures/issue_precedence/bad_branch_before_issue.json
src/emkeel/fixtures/issue_precedence/bad_no_activity.json
src/emkeel/fixtures/issue_precedence/bad_no_link.json
src/emkeel/fixtures/issue_precedence/bad_pr_other_issue.json
src/emkeel/fixtures/issue_precedence/good.json
src/emkeel/fixtures/issue_precedence/good_via_pr.json
src/emkeel/fixtures/maintenance/bad_stale_date/docs/GOVERNANCE.md
src/emkeel/fixtures/maintenance/bad_unjudged_row/docs/GOVERNANCE.md
src/emkeel/fixtures/maintenance/bad_unpinned_tool/docs/GOVERNANCE.md
src/emkeel/fixtures/maintenance/good/docs/GOVERNANCE.md
src/emkeel/fixtures/naming/bad_file_name.json
src/emkeel/fixtures/naming/good.json
src/emkeel/fixtures/naming/good_canonical.json
src/emkeel/fixtures/phase0_anchor/issue-checked.json
src/emkeel/fixtures/phase0_anchor/issue.json
src/emkeel/fixtures/phase0_anchor/bad_filler/spec.md
src/emkeel/fixtures/phase0_anchor/bad_stale_digest/spec.md
src/emkeel/fixtures/phase0_anchor/good/spec.md
src/emkeel/fixtures/protected_paths/bad_self_authorised/forge.json
src/emkeel/fixtures/protected_paths/bad_undeclared/forge.json
src/emkeel/fixtures/protected_paths/good/forge.json
src/emkeel/fixtures/standard_armed/bad_declared_not_run/pyproject.toml
src/emkeel/fixtures/standard_armed/bad_declared_not_run/src/module.py
src/emkeel/fixtures/standard_armed/good/keel-run.json
src/emkeel/fixtures/standard_armed/good/pyproject.toml
src/emkeel/fixtures/standard_armed/good/src/module.py
src/emkeel/fixtures/standard_armed/no_code/pyproject.toml
src/emkeel/fixtures/traceability/bad_fr_without_task/spec.md
src/emkeel/fixtures/traceability/bad_fr_without_task/tasks.md
src/emkeel/fixtures/traceability/bad_missing_impl_file/spec.md
src/emkeel/fixtures/traceability/bad_missing_impl_file/tasks.md
src/emkeel/fixtures/traceability/bad_missing_test_file/spec.md
src/emkeel/fixtures/traceability/bad_missing_test_file/tasks.md
src/emkeel/fixtures/traceability/bad_orphan_task/spec.md
src/emkeel/fixtures/traceability/bad_orphan_task/tasks.md
src/emkeel/fixtures/traceability/good/spec.md
src/emkeel/fixtures/traceability/good/tasks.md
src/emkeel/fixtures/trivial_class/bad_missing_toml/README.md
src/emkeel/fixtures/trivial_class/good/keel.toml
src/emkeel/guard/__init__.py
src/emkeel/guard/announce.py
src/emkeel/guard/config.py
src/emkeel/guard/credential.py
src/emkeel/guard/denial.py
src/emkeel/guard/hygiene.py
src/emkeel/guard/protection.py
src/emkeel/guard/request.py
src/emkeel/guard/response.py
src/emkeel/guard/selftest.py
src/emkeel/guard/denials/__init__.py
src/emkeel/guard/denials/approval.py
src/emkeel/guard/denials/checklists.py
src/emkeel/guard/denials/clarifications.py
src/emkeel/guard/denials/funnel.py
src/emkeel/guard/denials/naming.py
src/emkeel/guard/denials/prose_language.py
src/emkeel/guard/denials/protected_paths.py
src/emkeel/guard/denials/test_first.py
src/emkeel/guard/hooks/__init__.py
src/emkeel/guard/hooks/post_tool_use.py
src/emkeel/guard/hooks/pre_tool_use.py
src/emkeel/guard/hooks/session_start.py
src/emkeel/guard/hooks/stop.py
src/emkeel/layer/CLAUDE.md
src/emkeel/layer/keel-contract.md
src/emkeel/layer/keel-local.template.md
src/emkeel/layer/settings.json
src/emkeel/templates/spec-template.md
src/emkeel/templates/tasks-template.md
tests/test_adopt.py
tests/test_adopt_cli.py
tests/test_adopter_still_judged.py
tests/test_anchored.py
tests/test_anchored_config.py
tests/test_anchored_config_scope.py
tests/test_approval.py
tests/test_artifacts.py
tests/test_branch_class.py
tests/test_branch_vocabulary.py
tests/test_canary.py
tests/test_checklists.py
tests/test_clarifications.py
tests/test_cli.py
tests/test_close_wait.py
tests/test_coverage_map.py
tests/test_cycle_drift.py
tests/test_decisions.py
tests/test_declared_context.py
tests/test_digest.py
tests/test_findings_format.py
tests/test_fixtures_travel.py
tests/test_forge.py
tests/test_gate_abstention.py
tests/test_gate_scope.py
tests/test_guard_announce.py
tests/test_guard_config.py
tests/test_guard_credential.py
tests/test_guard_denial.py
tests/test_guard_funnel.py
tests/test_guard_hook_assembly.py
tests/test_guard_hooks.py
tests/test_guard_hygiene.py
tests/test_guard_language.py
tests/test_guard_naming.py
tests/test_guard_no_duplication.py
tests/test_guard_notice.py
tests/test_guard_phase_gates.py
tests/test_guard_protected.py
tests/test_guard_protection.py
tests/test_guard_response.py
tests/test_guard_selftest.py
tests/test_guard_three_data.py
tests/test_handover.py
tests/test_installer.py
tests/test_installer_cli.py
tests/test_issue_close.py
tests/test_issue_precedence.py
tests/test_local_layer.py
tests/test_maintenance.py
tests/test_naming.py
tests/test_naming_gate.py
tests/test_package_data.py
tests/test_package_is_self_sufficient.py
tests/test_package_metadata.py
tests/test_packaging.py
tests/test_phase0_anchor.py
tests/test_precondition_issue.py
tests/test_prerequisites.py
tests/test_protected_paths.py
tests/test_provenance.py
tests/test_publish_workflow.py
tests/test_records.py
tests/test_slug.py
tests/test_standard_armed.py
tests/test_traceability.py
tests/test_trivial_class.py
tests/test_uninstaller.py
tests/test_verdict.py
tests/test_workflows.py