mapify-cli 3.35.2__tar.gz → 3.37.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/PKG-INFO +1 -1
  2. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/pyproject.toml +1 -1
  3. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/__init__.py +1 -1
  4. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/auto_update.py +119 -1
  5. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/file_copier.py +137 -16
  6. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/monitor.md +8 -1
  7. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/task-decomposer.md +1 -0
  8. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +1 -0
  9. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/monitor.toml +6 -0
  10. {mapify_cli-3.35.2/src/mapify_cli/templates → mapify_cli-3.37.0/src/mapify_cli/templates/codex}/hooks/post-compact-context.py +21 -0
  11. {mapify_cli-3.35.2/src/mapify_cli/templates → mapify_cli-3.37.0/src/mapify_cli/templates/codex}/hooks/workflow-context-injector.py +32 -4
  12. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +22 -26
  13. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +73 -79
  14. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +12 -12
  15. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +105 -5
  16. {mapify_cli-3.35.2/src/mapify_cli/templates/codex → mapify_cli-3.37.0/src/mapify_cli/templates}/hooks/post-compact-context.py +20 -1
  17. {mapify_cli-3.35.2/src/mapify_cli/templates/codex → mapify_cli-3.37.0/src/mapify_cli/templates}/hooks/workflow-context-injector.py +31 -5
  18. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_runner.py +55 -47
  19. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +1890 -146
  20. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +6 -6
  21. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +5 -1
  22. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +22 -26
  23. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +73 -109
  24. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +16 -16
  25. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +2 -2
  26. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +105 -5
  27. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +8 -1
  28. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +1 -0
  29. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +1 -0
  30. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +6 -0
  31. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +20 -0
  32. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +31 -4
  33. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_runner.py.jinja +54 -46
  34. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +1890 -146
  35. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +6 -6
  36. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +5 -1
  37. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +23 -31
  38. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +73 -120
  39. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +16 -16
  40. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +2 -2
  41. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +105 -5
  42. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_context_helpers.py +23 -7
  43. mapify_cli-3.37.0/tests/test_auto_update_stale_project.py +214 -0
  44. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_review_host.py +95 -3
  45. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_post_compact_context.py +30 -0
  46. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_release_ci_gates.py +50 -0
  47. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_attribution_receipts.py +16 -6
  48. mapify_cli-3.37.0/tests/test_review_changed_scope.py +1443 -0
  49. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_check_timeouts.py +27 -0
  50. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_context_transport.py +24 -7
  51. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base.py +2 -2
  52. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base_stale_readers.py +2 -2
  53. mapify_cli-3.37.0/tests/test_review_mapify_managed.py +223 -0
  54. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pending_collection.py +1 -1
  55. mapify_cli-3.37.0/tests/test_review_prompt_overhead.py +140 -0
  56. mapify_cli-3.37.0/tests/test_review_roster_budget.py +130 -0
  57. mapify_cli-3.37.0/tests/test_review_shard_docs.py +21 -0
  58. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_verdict_ledger.py +3 -2
  59. mapify_cli-3.37.0/tests/test_review_windowed_followups.py +270 -0
  60. mapify_cli-3.37.0/tests/test_review_windowed_sources.py +269 -0
  61. mapify_cli-3.37.0/tests/test_runtime_info_exclude.py +188 -0
  62. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_runtime_privacy_ignores.py +2 -1
  63. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills.py +13 -11
  64. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_sofa_client.py +2 -2
  65. mapify_cli-3.37.0/tests/test_unrun_verification_contract.py +27 -0
  66. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_abort_preservation.py +135 -0
  67. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_parallel_harness.py +3 -3
  68. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_context_injector.py +33 -0
  69. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_worktree_isolation.py +23 -2
  70. mapify_cli-3.35.2/tests/test_review_changed_scope.py +0 -251
  71. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.claude/hooks/README.md +0 -0
  72. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.claude/skills/README.md +0 -0
  73. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.gitignore +0 -0
  74. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/LICENSE +0 -0
  75. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/README.md +0 -0
  76. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/__main__.py +0 -0
  77. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/_locking.py +0 -0
  78. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/_python_guard.py +0 -0
  79. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/boundary_quality_report.py +0 -0
  80. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/cli_ui.py +0 -0
  81. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/code_map.py +0 -0
  82. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/codex_exec.py +0 -0
  83. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/__init__.py +0 -0
  84. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/mcp.py +0 -0
  85. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/project_config.py +0 -0
  86. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/settings.py +0 -0
  87. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/__init__.py +0 -0
  88. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
  89. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
  90. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
  91. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/governance_report.py +0 -0
  92. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
  93. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/providers.py +0 -0
  94. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
  95. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/dependency_graph.py +0 -0
  96. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
  97. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/schema.py +0 -0
  98. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
  99. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/install_manifest.py +0 -0
  100. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/intent_detector.py +0 -0
  101. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/__init__.py +0 -0
  102. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/capture.py +0 -0
  103. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/digest_schema.py +0 -0
  104. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/evidence.py +0 -0
  105. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/finalize.py +0 -0
  106. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/recall.py +0 -0
  107. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/minimality_eval.py +0 -0
  108. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/minimality_report.py +0 -0
  109. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/parallelism_observability.py +0 -0
  110. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/provider_registry.py +0 -0
  111. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/python_runtime.py +0 -0
  112. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/ralph_state.py +0 -0
  113. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/repo_insight.py +0 -0
  114. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/research_eval.py +0 -0
  115. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/research_eval_compare.py +0 -0
  116. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/schemas.py +0 -0
  117. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/scope_classifier.py +0 -0
  118. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skill_ir.py +0 -0
  119. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
  120. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
  121. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
  122. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
  123. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
  124. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
  125. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
  126. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
  127. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_corpus.py +0 -0
  128. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_pilot.py +0 -0
  129. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/runner.py +0 -0
  130. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
  131. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
  132. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
  133. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
  134. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
  135. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
  136. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
  137. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
  138. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
  139. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
  140. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
  141. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/.gitignore +0 -0
  142. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
  143. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/actor.md +0 -0
  144. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
  145. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
  146. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
  147. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
  148. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
  149. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
  150. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/review-reader.md +0 -0
  151. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
  152. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/actor.toml +0 -0
  153. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +0 -0
  154. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
  155. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +0 -0
  156. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
  157. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
  158. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
  159. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/review-reader.toml +0 -0
  160. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/config.toml +0 -0
  161. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/context-meter.py +0 -0
  162. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
  163. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
  164. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
  165. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
  166. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
  167. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
  168. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
  169. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-token-meter.py +0 -0
  170. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/pre-compact-save-transcript.py +0 -0
  171. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-context-pruner.py +0 -0
  172. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-iteration-logger.py +0 -0
  173. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
  174. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/scrub-internal-ids.py +0 -0
  175. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
  176. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
  177. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
  178. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
  179. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
  180. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +0 -0
  181. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +0 -0
  182. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +0 -0
  183. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
  184. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
  185. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
  186. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
  187. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
  188. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
  189. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
  190. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
  191. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
  192. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
  193. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
  194. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
  195. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
  196. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +0 -0
  197. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
  198. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +0 -0
  199. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
  200. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +0 -0
  201. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
  202. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
  203. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
  204. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
  205. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
  206. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +0 -0
  207. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +0 -0
  208. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
  209. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
  210. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
  211. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
  212. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
  213. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +0 -0
  214. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +0 -0
  215. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +0 -0
  216. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
  217. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
  218. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +0 -0
  219. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +0 -0
  220. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/README.md +0 -0
  221. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
  222. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
  223. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
  224. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
  225. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
  226. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
  227. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
  228. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
  229. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
  230. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
  231. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
  232. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
  233. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
  234. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
  235. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
  236. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
  237. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_host.py +0 -0
  238. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
  239. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +0 -0
  240. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
  241. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
  242. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +0 -0
  243. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
  244. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
  245. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +0 -0
  246. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
  247. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
  248. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
  249. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
  250. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
  251. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
  252. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
  253. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
  254. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
  255. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
  256. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
  257. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
  258. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
  259. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
  260. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
  261. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
  262. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
  263. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
  264. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
  265. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/settings.json +0 -0
  266. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/README.md +0 -0
  267. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -0
  268. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -0
  269. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
  270. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
  271. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
  272. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
  273. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
  274. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
  275. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
  276. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
  277. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
  278. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
  279. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
  280. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
  281. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
  282. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
  283. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
  284. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
  285. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
  286. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
  287. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
  288. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
  289. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
  290. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
  291. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
  292. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
  293. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
  294. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
  295. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
  296. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
  297. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
  298. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
  299. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
  300. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
  301. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
  302. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
  303. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
  304. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +0 -0
  305. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
  306. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
  307. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
  308. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
  309. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +0 -0
  310. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
  311. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
  312. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
  313. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
  314. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +0 -0
  315. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
  316. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
  317. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
  318. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/vacuous-test-check.md.jinja +0 -0
  319. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
  320. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
  321. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
  322. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
  323. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
  324. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
  325. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
  326. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/review-reader.md.jinja +0 -0
  327. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
  328. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +0 -0
  329. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +0 -0
  330. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
  331. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +0 -0
  332. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
  333. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
  334. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
  335. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +0 -0
  336. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
  337. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
  338. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
  339. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
  340. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
  341. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
  342. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
  343. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
  344. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
  345. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
  346. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
  347. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
  348. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
  349. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
  350. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
  351. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
  352. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
  353. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
  354. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
  355. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
  356. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
  357. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
  358. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
  359. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
  360. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
  361. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
  362. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
  363. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
  364. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
  365. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
  366. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
  367. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
  368. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
  369. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
  370. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
  371. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
  372. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
  373. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
  374. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
  375. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
  376. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
  377. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
  378. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
  379. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
  380. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
  381. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
  382. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
  383. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
  384. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
  385. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
  386. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
  387. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
  388. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
  389. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
  390. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
  391. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
  392. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
  393. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
  394. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
  395. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
  396. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
  397. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
  398. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
  399. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
  400. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
  401. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
  402. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
  403. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
  404. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
  405. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
  406. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
  407. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
  408. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
  409. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
  410. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
  411. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
  412. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
  413. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
  414. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
  415. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
  416. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
  417. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
  418. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
  419. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_host.py.jinja +0 -0
  420. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
  421. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +0 -0
  422. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
  423. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
  424. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +0 -0
  425. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
  426. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
  427. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +0 -0
  428. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
  429. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
  430. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
  431. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
  432. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
  433. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
  434. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
  435. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
  436. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
  437. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
  438. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
  439. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
  440. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
  441. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
  442. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
  443. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
  444. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
  445. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
  446. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
  447. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
  448. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
  449. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -0
  450. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -0
  451. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
  452. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
  453. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
  454. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
  455. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
  456. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
  457. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
  458. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
  459. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
  460. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
  461. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
  462. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
  463. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
  464. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
  465. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
  466. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
  467. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
  468. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
  469. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
  470. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
  471. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
  472. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
  473. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
  474. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
  475. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
  476. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
  477. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
  478. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
  479. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
  480. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
  481. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
  482. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
  483. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
  484. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
  485. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
  486. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
  487. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
  488. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
  489. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/token_budget.py +0 -0
  490. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tool_output_offload.py +0 -0
  491. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tools/__init__.py +0 -0
  492. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
  493. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_install.py +0 -0
  494. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_state.py +0 -0
  495. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_versions.py +0 -0
  496. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/verification_recorder.py +0 -0
  497. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_finalizer.py +0 -0
  498. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_logger.py +0 -0
  499. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_state.py +0 -0
  500. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/__init__.py +0 -0
  501. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/_fake_task_tool.py +0 -0
  502. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/conftest.py +0 -0
  503. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
  504. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/codex/config.toml +0 -0
  505. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/wave_blueprints.py +0 -0
  506. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
  507. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_end_of_turn.py +0 -0
  508. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
  509. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_safety_guardrails.py +0 -0
  510. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
  511. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/__init__.py +0 -0
  512. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/blueprint.json +0 -0
  513. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/code_review.md +0 -0
  514. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/plan_handoff.json +0 -0
  515. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/spec.md +0 -0
  516. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
  517. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
  518. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/task_plan.md +0 -0
  519. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/verification_summary.md +0 -0
  520. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
  521. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
  522. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_pilot_git_cache.py +0 -0
  523. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_process_lifecycle.py +0 -0
  524. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/README.md +0 -0
  525. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
  526. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
  527. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
  528. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
  529. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
  530. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
  531. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
  532. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
  533. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
  534. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
  535. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
  536. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
  537. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
  538. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
  539. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
  540. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
  541. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
  542. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
  543. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
  544. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
  545. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
  546. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
  547. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
  548. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
  549. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
  550. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
  551. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
  552. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
  553. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
  554. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
  555. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
  556. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
  557. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
  558. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
  559. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
  560. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
  561. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
  562. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
  563. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
  564. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
  565. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
  566. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
  567. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
  568. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
  569. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
  570. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
  571. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
  572. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
  573. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
  574. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
  575. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
  576. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
  577. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
  578. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
  579. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
  580. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
  581. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
  582. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
  583. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
  584. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
  585. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
  586. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
  587. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
  588. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
  589. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
  590. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
  591. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
  592. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
  593. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
  594. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
  595. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
  596. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
  597. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
  598. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
  599. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
  600. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
  601. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
  602. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
  603. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/corpus.json +0 -0
  604. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/adjudication.json +0 -0
  605. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/control-audit.json +0 -0
  606. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.json +0 -0
  607. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.log +0 -0
  608. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual_repro.py +0 -0
  609. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +0 -0
  610. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
  611. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision.py +0 -0
  612. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision_review.py +0 -0
  613. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_proofs.py +0 -0
  614. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_cli_correctness.py +0 -0
  615. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_dispatch_audit.py +0 -0
  616. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_frontmatter.py +0 -0
  617. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_memory.py +0 -0
  618. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_approval_hold.py +0 -0
  619. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_approved_baseline_gate_contract.py +0 -0
  620. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_artifact_schemas.py +0 -0
  621. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_auto_update.py +0 -0
  622. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_boundary_quality_report.py +0 -0
  623. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_bump_version.py +0 -0
  624. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_classify_scope_script.py +0 -0
  625. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_code_map.py +0 -0
  626. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_map_review_live.py +0 -0
  627. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_review_native.py +0 -0
  628. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_compaction_offload_integration.py +0 -0
  629. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_concurrent_dispatch_harness.py +0 -0
  630. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_context_usefulness.py +0 -0
  631. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_cross_ai_config.py +0 -0
  632. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_debug_reference_install.py +0 -0
  633. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_decomposition.py +0 -0
  634. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_dependency_graph.py +0 -0
  635. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_diagnostics.py +0 -0
  636. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_digest_schema.py +0 -0
  637. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_domain_skill.py +0 -0
  638. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_file_copier.py +0 -0
  639. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_governance_attack_fixtures.py +0 -0
  640. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_governance_report.py +0 -0
  641. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_grace_eval_schema.py +0 -0
  642. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_grace_eval_sweep.py +0 -0
  643. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_hook_patterns.py +0 -0
  644. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_init_import_graph.py +0 -0
  645. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_install_manifest.py +0 -0
  646. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_intent_detector.py +0 -0
  647. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
  648. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_jinja2_dep.py +0 -0
  649. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_locking.py +0 -0
  650. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_managed_file_copier.py +0 -0
  651. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_auto.py +0 -0
  652. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_interruption.py +0 -0
  653. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_orchestrator.py +0 -0
  654. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_step_runner.py +0 -0
  655. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_token_meter.py +0 -0
  656. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_utils_sanitize.py +0 -0
  657. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_mapify_cli.py +0 -0
  658. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_capture.py +0 -0
  659. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events.py +0 -0
  660. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_compat.py +0 -0
  661. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_exit_status.py +0 -0
  662. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_privacy.py +0 -0
  663. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_review.py +0 -0
  664. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_tools.py +0 -0
  665. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_finalize.py +0 -0
  666. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_integration.py +0 -0
  667. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_recall.py +0 -0
  668. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_review_fixes.py +0 -0
  669. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_minimality_eval.py +0 -0
  670. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_minimality_report.py +0 -0
  671. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_model_invocable_skills.py +0 -0
  672. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_monitor_worktree_context.py +0 -0
  673. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_mutation_path_normalization.py +0 -0
  674. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_orchestrator_acceptance.py +0 -0
  675. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_parallelism_observability.py +0 -0
  676. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_preset_commands.py +0 -0
  677. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_project_config.py +0 -0
  678. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_prompt_layering.py +0 -0
  679. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_prompt_profile_commands.py +0 -0
  680. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_python_version_requirement.py +0 -0
  681. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_pyyaml_dep.py +0 -0
  682. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_hooks.py +0 -0
  683. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_response_types.py +0 -0
  684. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_state.py +0 -0
  685. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repair_attribution.py +0 -0
  686. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repair_workflow_gate.py +0 -0
  687. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repo_insight.py +0 -0
  688. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_research_eval.py +0 -0
  689. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_research_eval_compare.py +0 -0
  690. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_resequence_pending.py +0 -0
  691. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_branch_receipts.py +0 -0
  692. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_context_delivery.py +0 -0
  693. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_corpus.py +0 -0
  694. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base_legacy_override.py +0 -0
  695. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_finding_validation.py +0 -0
  696. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pilot.py +0 -0
  697. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pilot_git_cache.py +0 -0
  698. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_process_lifecycle.py +0 -0
  699. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_reader_capabilities.py +0 -0
  700. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_receipt_edge_cases.py +0 -0
  701. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_security_gates.py +0 -0
  702. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_trusted_policy.py +0 -0
  703. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_role_coverage_receipts.py +0 -0
  704. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_schemas.py +0 -0
  705. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_scope_classifier.py +0 -0
  706. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_scrub_internal_ids.py +0 -0
  707. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_settings_deny_globs.py +0 -0
  708. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_shell_json_pipes.py +0 -0
  709. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skill_ir.py +0 -0
  710. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_consistency.py +0 -0
  711. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_aggregator.py +0 -0
  712. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_apply.py +0 -0
  713. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_cli_optimize.py +0 -0
  714. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
  715. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
  716. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_fixtures.py +0 -0
  717. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer.py +0 -0
  718. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
  719. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_proposer.py +0 -0
  720. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_runner.py +0 -0
  721. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_schema.py +0 -0
  722. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
  723. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
  724. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
  725. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
  726. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
  727. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_report.py +0 -0
  728. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
  729. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
  730. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_viewer.py +0 -0
  731. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_slice5b_leak_guards.py +0 -0
  732. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_sofa_search.py +0 -0
  733. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_static_analysis_bash.py +0 -0
  734. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_statusline.py +0 -0
  735. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_template_render.py +0 -0
  736. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_token_budget.py +0 -0
  737. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_tool_output_offload.py +0 -0
  738. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_unborn_branch_scope.py +0 -0
  739. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_install.py +0 -0
  740. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_state.py +0 -0
  741. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_versions.py +0 -0
  742. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_vacuous_test_check.py +0 -0
  743. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_validate_dependencies.py +0 -0
  744. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_validate_spec_citations.py +0 -0
  745. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_verification_recorder.py +0 -0
  746. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_eval_harness.py +0 -0
  747. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_fixtures.py +0 -0
  748. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_install.py +0 -0
  749. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_research.py +0 -0
  750. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_runner.py +0 -0
  751. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_finalizer.py +0 -0
  752. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_gate.py +0 -0
  753. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_logger.py +0 -0
  754. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_state.py +0 -0
  755. {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_worktree_commit_hooks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mapify-cli
3
- Version: 3.35.2
3
+ Version: 3.37.0
4
4
  Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
5
5
  Project-URL: Homepage, https://github.com/azalio/map-framework
6
6
  Project-URL: Repository, https://github.com/azalio/map-framework.git
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mapify-cli"
3
- version = "3.35.2"
3
+ version = "3.37.0"
4
4
  description = "MAP Framework installer - Modular Agentic Planner for Claude Code"
5
5
  authors = [{ name = "MAP Framework Contributors" }]
6
6
  readme = "README.md"
@@ -23,7 +23,7 @@ Or install globally:
23
23
  mapify check
24
24
  """
25
25
 
26
- __version__ = "3.35.2"
26
+ __version__ = "3.37.0"
27
27
 
28
28
  # MUST stay the first import: it turns "this interpreter is older than 3.11" into
29
29
  # a message that says so, instead of the ImportError raised by `from datetime
@@ -12,6 +12,7 @@ import httpx
12
12
 
13
13
  from mapify_cli import create_ssl_context
14
14
  from mapify_cli.config import load_map_config
15
+ from mapify_cli.install_manifest import read_manifest
15
16
  from mapify_cli.update_install import (
16
17
  InstallKind,
17
18
  PackageUpdateError,
@@ -175,10 +176,22 @@ def record_declined_major(
175
176
  declined = StableVersion.parse(declined_major)
176
177
  if current is None:
177
178
  raise ValueError("installed MAP version is not a stable version")
178
- if declined is None or declined.major <= current.major:
179
+ if declined is None:
179
180
  raise ValueError(
180
181
  "declined major must be a stable version above the installed major"
181
182
  )
183
+ if declined.major <= current.major:
184
+ # Intent: a project a major behind the running CLI is offered the CLI's own
185
+ # major (#643); that exact offer may be declined too.
186
+ stale = _stale_project_providers(Path(project_path).resolve(), current)
187
+ if (
188
+ declined != current
189
+ or stale is None
190
+ or not _major_behind(stale[0], current)
191
+ ):
192
+ raise ValueError(
193
+ "declined major must be a stable version above the installed major"
194
+ )
182
195
 
183
196
  project = Path(project_path).resolve()
184
197
  with project_update_lock(project, timeout_s=LOCK_TIMEOUT_SECONDS):
@@ -443,6 +456,60 @@ def _metadata_unavailable_result(
443
456
  )
444
457
 
445
458
 
459
+ def _stale_project_providers(
460
+ project_path: Path, current: StableVersion
461
+ ) -> tuple[StableVersion, tuple[str, ...]] | None:
462
+ """Return (installed version, providers) when project files predate the CLI.
463
+
464
+ Intent: PyPI-based discovery only asks whether a newer CLI exists, so a CLI
465
+ upgraded outside the updater (#643) left project files stale while the result
466
+ stayed ``current``. The lock's ``mapify_version`` is the project's installed
467
+ version; an older stable value is local proof a refresh is owed. A newer or
468
+ unreadable project version never downgrades.
469
+ """
470
+ manifest = read_manifest(project_path)
471
+ if manifest is None:
472
+ return None
473
+ installed = StableVersion.parse(manifest.mapify_version)
474
+ if installed is None or installed >= current:
475
+ return None
476
+ providers = installed_providers(project_path)
477
+ if not providers:
478
+ return None
479
+ return installed, providers
480
+
481
+
482
+ def _major_behind(installed: StableVersion, current: StableVersion) -> bool:
483
+ return installed.major < current.major
484
+
485
+
486
+ def _stale_project_state(
487
+ project_path: Path,
488
+ state: UpdateState,
489
+ current: StableVersion,
490
+ mode: UpdateMode,
491
+ ) -> UpdateState | None:
492
+ """Return a pending-refresh state when a stale project may refresh now.
493
+
494
+ Same-major staleness refreshes in both modes. A project a MAJOR behind
495
+ refreshes only in manual mode; automatic mode offers it through the existing
496
+ major-consent flow instead (see ``_check_locked``).
497
+ """
498
+ stale = _stale_project_providers(project_path, current)
499
+ if stale is None:
500
+ return None
501
+ installed, providers = stale
502
+ if mode is UpdateMode.AUTOMATIC and _major_behind(installed, current):
503
+ return None
504
+ return replace(
505
+ state,
506
+ last_installed_version=str(current),
507
+ pending_install_version=None,
508
+ pending_refresh=True,
509
+ pending_providers=providers,
510
+ )
511
+
512
+
446
513
  def _check_locked(
447
514
  project_path: Path,
448
515
  current_version: str,
@@ -489,6 +556,14 @@ def _check_locked(
489
556
  write_update_state(project_path, cleared)
490
557
  progress.state = cleared
491
558
 
559
+ if not progress.state.pending_refresh:
560
+ stale_state = _stale_project_state(
561
+ project_path, progress.state, current, mode
562
+ )
563
+ if stale_state is not None:
564
+ write_update_state(project_path, stale_state)
565
+ progress.state = stale_state
566
+
492
567
  if progress.state.pending_refresh:
493
568
  if mode is UpdateMode.AUTOMATIC and not refresh_retry_due(
494
569
  progress.state,
@@ -567,6 +642,17 @@ def _check_locked(
567
642
  refresh_complete=True,
568
643
  )
569
644
  progress.recovered_refresh = True
645
+ if approved_major == str(current):
646
+ # Intent: approving the CLI's own major for a project a major
647
+ # behind is a refresh only; there is no newer package to install.
648
+ return UpdateResult(
649
+ UpdateStatus.UPDATED,
650
+ current_version,
651
+ installed_version=progress.installed_version,
652
+ refreshed_providers=progress.refreshed_providers,
653
+ reload_current_skill=True,
654
+ refresh_complete=True,
655
+ )
570
656
 
571
657
  if mode is UpdateMode.AUTOMATIC and not automatic_check_due(
572
658
  progress.state,
@@ -591,6 +677,38 @@ def _check_locked(
591
677
  )
592
678
  write_update_state(project_path, progress.state)
593
679
 
680
+ if mode is UpdateMode.AUTOMATIC:
681
+ stale = _stale_project_providers(project_path, current)
682
+ if (
683
+ stale is not None
684
+ and _major_behind(stale[0], current)
685
+ and progress.state.declined_major_version != str(current)
686
+ ):
687
+ # Intent: a project a major behind the running CLI is stale, not
688
+ # current (#643). Reuse the major-consent signal: approving
689
+ # refreshes the project (no package install), declining records
690
+ # the exact offer so it does not repeat.
691
+ with httpx.Client(verify=create_ssl_context()) as offer_client:
692
+ offer = fetch_release_highlights(current, offer_client)
693
+ if offer is None:
694
+ return _metadata_unavailable_result(
695
+ mode,
696
+ current_version,
697
+ installed_version=progress.installed_version,
698
+ refreshed_providers=progress.refreshed_providers,
699
+ reload_current_skill=progress.reload_current_skill,
700
+ refresh_complete=progress.refresh_complete,
701
+ )
702
+ return UpdateResult(
703
+ UpdateStatus.MAJOR_AVAILABLE,
704
+ current_version,
705
+ installed_version=progress.installed_version,
706
+ major=offer,
707
+ refreshed_providers=progress.refreshed_providers,
708
+ reload_current_skill=progress.reload_current_skill,
709
+ refresh_complete=progress.refresh_complete,
710
+ )
711
+
594
712
  with httpx.Client(verify=create_ssl_context()) as client:
595
713
  targets = fetch_version_targets(current, client)
596
714
  _validate_targets(targets, current)
@@ -13,9 +13,10 @@ import os
13
13
  import secrets
14
14
  import shutil
15
15
  import stat
16
+ import subprocess
16
17
  import tempfile
17
18
  import time
18
- from collections.abc import Iterator
19
+ from collections.abc import Generator
19
20
  from dataclasses import dataclass
20
21
  from fnmatch import fnmatchcase
21
22
  from pathlib import Path
@@ -608,7 +609,7 @@ def _windows_gitignore_mutex_name(project_stat: os.stat_result) -> str:
608
609
  @contextlib.contextmanager
609
610
  def _windows_project_gitignore_mutex(
610
611
  project_stat: os.stat_result,
611
- ) -> Iterator[None]:
612
+ ) -> Generator[None, None, None]:
612
613
  """Acquire a process-shared Windows mutex without a filesystem artifact."""
613
614
  ctypes: Any = importlib.import_module("ctypes")
614
615
  wintypes: Any = importlib.import_module("ctypes.wintypes")
@@ -672,7 +673,7 @@ def _windows_project_gitignore_mutex(
672
673
  def _windows_pinned_project_root(
673
674
  project_root: Path,
674
675
  project_original: os.stat_result,
675
- ) -> Iterator[None]:
676
+ ) -> Generator[None, None, None]:
676
677
  """Prevent replacement of a Windows project directory during mutation."""
677
678
  ctypes: Any = importlib.import_module("ctypes")
678
679
  wintypes: Any = importlib.import_module("ctypes.wintypes")
@@ -726,7 +727,7 @@ def _windows_pinned_project_root(
726
727
  def _pinned_project_root(
727
728
  project_root: Path,
728
729
  project_original: os.stat_result,
729
- ) -> Iterator[int | None]:
730
+ ) -> Generator[int | None, None, None]:
730
731
  """Pin the project identity used by every relative .gitignore operation."""
731
732
  if os.name == "nt":
732
733
  with _windows_pinned_project_root(project_root, project_original):
@@ -765,14 +766,6 @@ def _pinned_project_root(
765
766
  os.close(descriptor)
766
767
 
767
768
 
768
- def _gitignore_lock_path(project_root: Path) -> Path:
769
- """Resolve the shared lock from stable filesystem identity, not spelling."""
770
- return _gitignore_lock_path_for_stat(
771
- project_root,
772
- _validated_project_root_stat(project_root),
773
- )
774
-
775
-
776
769
  def _unsafe_gitignore_lock(lock_path: Path, reason: str) -> NoReturn:
777
770
  raise UpdateRuntimeGitignoreSecurityError(
778
771
  f"unsafe MAP .gitignore lock at {lock_path}: {reason}"
@@ -900,7 +893,7 @@ def _unlock_descriptor(descriptor: int) -> None:
900
893
  @contextlib.contextmanager
901
894
  def _project_gitignore_lock(
902
895
  project_root: Path,
903
- ) -> Iterator[tuple[int | None, os.stat_result]]:
896
+ ) -> Generator[tuple[int | None, os.stat_result], None, None]:
904
897
  """Serialize a complete MAP-owned root .gitignore transaction."""
905
898
  project_original = _validated_project_root_stat(project_root)
906
899
  with _pinned_project_root(project_root, project_original) as directory_fd:
@@ -1220,11 +1213,106 @@ def _has_effective_gitignore_path(lines: list[bytes], required_path: str) -> boo
1220
1213
  )
1221
1214
 
1222
1215
 
1216
+ def _git_info_exclude_path(project_root: Path) -> Path | None:
1217
+ """Return ``<git-common-dir>/info/exclude`` for a repo rooted at *project_root*.
1218
+
1219
+ ``info/exclude`` patterns anchor at the repository top level, so a project
1220
+ root that is merely a subdirectory of a repo (or not a repo at all, or git
1221
+ is unavailable) returns None and the caller keeps the tracked ``.gitignore``.
1222
+ Linked worktrees share the common dir, hence one exclude file per clone.
1223
+ """
1224
+ try:
1225
+ proc = subprocess.run(
1226
+ ["git", "rev-parse", "--show-toplevel", "--git-common-dir"],
1227
+ cwd=project_root,
1228
+ capture_output=True,
1229
+ text=True,
1230
+ timeout=10,
1231
+ check=False,
1232
+ )
1233
+ except (OSError, subprocess.SubprocessError):
1234
+ return None
1235
+ lines = proc.stdout.splitlines()
1236
+ if proc.returncode != 0 or len(lines) != 2:
1237
+ return None
1238
+ toplevel, common = Path(lines[0]), Path(lines[1])
1239
+ try:
1240
+ if toplevel.resolve() != project_root.resolve():
1241
+ return None
1242
+ except OSError:
1243
+ return None
1244
+ if not common.is_absolute():
1245
+ common = project_root / common
1246
+ return common / "info" / "exclude"
1247
+
1248
+
1249
+ def _prepare_info_exclude_directory(exclude: Path) -> None:
1250
+ """Create ``info/`` when missing and require it to be a direct directory."""
1251
+ try:
1252
+ exclude.parent.mkdir(parents=True, exist_ok=True)
1253
+ current = os.lstat(exclude.parent)
1254
+ except OSError as exc:
1255
+ _unsafe_project_gitignore(
1256
+ exclude, f"could not prepare {exclude.parent} ({exc})"
1257
+ )
1258
+ if stat.S_ISLNK(current.st_mode) or not stat.S_ISDIR(current.st_mode):
1259
+ _unsafe_project_gitignore(
1260
+ exclude, "the info directory must be a direct directory"
1261
+ )
1262
+
1263
+
1223
1264
  def _has_gitignore_marker(lines: list[bytes], marker: str) -> bool:
1224
1265
  encoded = marker.encode()
1225
1266
  return any(line == encoded or line.startswith(encoded + b" ") for line in lines)
1226
1267
 
1227
1268
 
1269
+ def _merge_runtime_exclude(
1270
+ exclude: Path,
1271
+ gitignore_lines: list[bytes],
1272
+ project_root: Path,
1273
+ project_original: os.stat_result,
1274
+ ) -> bool | None:
1275
+ """Append missing runtime paths to the git exclude file.
1276
+
1277
+ Presence in either file counts (OR). Returns True when the exclude file
1278
+ was rewritten, False when nothing was needed, and None when a ``.gitignore``
1279
+ negation (which outranks ``info/exclude``) defeats an exclude entry, so the
1280
+ caller must repair the tracked ``.gitignore`` instead.
1281
+ """
1282
+ existing, original = _read_safe_gitignore(exclude, None)
1283
+ exclude_lines = existing.splitlines()
1284
+ # .gitignore outranks info/exclude: evaluate exclude rules first.
1285
+ combined = exclude_lines + gitignore_lines
1286
+ missing = [
1287
+ path
1288
+ for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
1289
+ if not _has_effective_gitignore_path(combined, path)
1290
+ ]
1291
+ if not missing:
1292
+ return False
1293
+ if any(
1294
+ line.startswith(b"!") and _negation_targets_path(line, path.encode())
1295
+ for path in missing
1296
+ for line in gitignore_lines
1297
+ ):
1298
+ return None
1299
+ _prepare_info_exclude_directory(exclude)
1300
+ block: list[bytes] = []
1301
+ if not _has_gitignore_marker(exclude_lines, _UPDATE_RUNTIME_GITIGNORE_MARKER):
1302
+ block.append(_UPDATE_RUNTIME_GITIGNORE_MARKER.encode())
1303
+ block.extend(path.encode() for path in missing)
1304
+ separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
1305
+ _atomic_replace_gitignore(
1306
+ exclude,
1307
+ existing + separator + b"\n".join(block) + b"\n",
1308
+ original,
1309
+ None,
1310
+ project_root,
1311
+ project_original,
1312
+ )
1313
+ return True
1314
+
1315
+
1228
1316
  def _merge_project_gitignore_locked(
1229
1317
  project_root: Path,
1230
1318
  directory_fd: int | None,
@@ -1234,20 +1322,39 @@ def _merge_project_gitignore_locked(
1234
1322
  include_sofa: bool = False,
1235
1323
  include_agent_memory_local: bool = False,
1236
1324
  include_settings_local: bool = False,
1325
+ runtime_exclude: Path | None = None,
1237
1326
  ) -> int:
1238
- """Append selected MAP-owned blocks while the shared lock is held."""
1327
+ """Append selected MAP-owned blocks while the shared lock is held.
1328
+
1329
+ With ``runtime_exclude`` set, the runtime block goes to that git exclude
1330
+ file instead of the tracked ``.gitignore``; privacy blocks always stay in
1331
+ ``.gitignore``.
1332
+ """
1239
1333
  gitignore = project_root / ".gitignore"
1240
1334
  existing, original = _read_safe_gitignore(gitignore, directory_fd)
1241
1335
  _validate_project_root_unchanged(project_root, project_original)
1242
1336
  existing_lines = existing.splitlines()
1243
1337
 
1244
1338
  additions: list[bytes] = []
1339
+ exclude_changed = False
1245
1340
  if include_runtime:
1246
1341
  missing_runtime_paths = [
1247
1342
  path
1248
1343
  for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
1249
1344
  if not _has_effective_gitignore_path(existing_lines, path)
1250
1345
  ]
1346
+ if runtime_exclude is not None:
1347
+ outcome = _merge_runtime_exclude(
1348
+ runtime_exclude,
1349
+ existing_lines,
1350
+ project_root,
1351
+ project_original,
1352
+ )
1353
+ # None: a .gitignore negation outranks info/exclude, so the
1354
+ # tracked-file repair below still applies.
1355
+ if outcome is not None:
1356
+ exclude_changed = outcome
1357
+ missing_runtime_paths = []
1251
1358
  if missing_runtime_paths:
1252
1359
  runtime_lines: list[bytes] = []
1253
1360
  marker = _UPDATE_RUNTIME_GITIGNORE_MARKER.encode()
@@ -1291,7 +1398,7 @@ def _merge_project_gitignore_locked(
1291
1398
 
1292
1399
  if not additions:
1293
1400
  _validate_gitignore_unchanged(gitignore, original, directory_fd)
1294
- return 0
1401
+ return 1 if exclude_changed else 0
1295
1402
  separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
1296
1403
  replacement = existing + separator + b"".join(additions)
1297
1404
  _atomic_replace_gitignore(
@@ -1312,11 +1419,17 @@ def _merge_project_gitignore(
1312
1419
  include_sofa: bool = False,
1313
1420
  include_agent_memory_local: bool = False,
1314
1421
  include_settings_local: bool = False,
1422
+ runtime_to_git_exclude: bool = False,
1315
1423
  ) -> int:
1316
1424
  """Safely, atomically, and serially append MAP-owned ignore blocks."""
1317
1425
  project_root = project_path.resolve(strict=True)
1318
1426
  if not project_root.is_dir():
1319
1427
  raise NotADirectoryError(f"MAP project root is not a directory: {project_root}")
1428
+ runtime_exclude = (
1429
+ _git_info_exclude_path(project_root)
1430
+ if include_runtime and runtime_to_git_exclude
1431
+ else None
1432
+ )
1320
1433
  with _project_gitignore_lock(project_root) as (directory_fd, project_original):
1321
1434
  return _merge_project_gitignore_locked(
1322
1435
  project_root,
@@ -1326,6 +1439,7 @@ def _merge_project_gitignore(
1326
1439
  include_sofa=include_sofa,
1327
1440
  include_agent_memory_local=include_agent_memory_local,
1328
1441
  include_settings_local=include_settings_local,
1442
+ runtime_exclude=runtime_exclude,
1329
1443
  )
1330
1444
 
1331
1445
 
@@ -1336,10 +1450,17 @@ def merge_update_runtime_gitignore(
1336
1450
  agent_memory_local: bool = False,
1337
1451
  settings_local: bool = False,
1338
1452
  ) -> int:
1339
- """Atomically establish runtime and requested privacy ignore entries."""
1453
+ """Atomically establish runtime and requested privacy ignore entries.
1454
+
1455
+ The runtime block is local state, so in a git repo rooted at *project_path*
1456
+ it goes to ``<git-common-dir>/info/exclude`` and leaves the tracked
1457
+ ``.gitignore`` clean; elsewhere it falls back to ``.gitignore``. Privacy
1458
+ blocks are repo policy and always go to ``.gitignore``.
1459
+ """
1340
1460
  return _merge_project_gitignore(
1341
1461
  project_path,
1342
1462
  include_runtime=True,
1463
+ runtime_to_git_exclude=True,
1343
1464
  include_sofa=sofa,
1344
1465
  include_agent_memory_local=agent_memory_local,
1345
1466
  include_settings_local=settings_local,
@@ -136,6 +136,10 @@ state-changing orchestration continues in its original checkout. A standalone
136
136
  Only a diagnostic satisfying every condition in “Explicitly approved
137
137
  baseline gate failures” may be excluded from the scoped verdict; keep
138
138
  the full build gate failed and continue the other checks.
139
+ **VERIFICATION EXECUTION GATE (MANDATORY — same weight as BUILD GATE):** an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute — tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 — is NOT a pass.
140
+ - Set `valid: false` with issue `verification not executed: <tool> (<reason>)`.
141
+ - List the tool in `tools_run` with status `unavailable` or `skipped`; never omit it.
142
+ - Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
139
143
  3. Verify Goal is achieved — trace code path to confirm the stated outcome
140
144
  4. Verify Action is implemented — check that the specified method/operation exists
141
145
  5. **Verify mutation boundary (MANDATORY):** Run
@@ -329,7 +333,7 @@ All language handlers produce a standardized JSON format:
329
333
  "findings": [
330
334
  { "tool": "ruff", "file": "src/main.py", "line": 42, "severity": "error", "code": "F821", "message": "Undefined name" }
331
335
  ],
332
- "tools_run": ["ruff", "mypy"]
336
+ "tools_run": ["ruff", "mypy", {"tool": "golangci-lint", "status": "unavailable"}]
333
337
  }
334
338
  ```
335
339
 
@@ -1741,6 +1745,9 @@ GOOD: "suggestion": "Use path\\to\\file"
1741
1745
  Before returning JSON, verify:
1742
1746
 
1743
1747
  ```
1748
+ □ 0. VERIFICATION EXECUTION GATE: every applicable lint/type/test check actually ran;
1749
+ any that could not run is an issue (`verification not executed: <tool> (<reason>)`) → valid=false
1750
+
1744
1751
  □ 1. All required fields present:
1745
1752
  valid, summary, issues, passed_checks, failed_checks,
1746
1753
  feedback_for_actor, estimated_fix_time, mcp_tools_used
@@ -342,6 +342,7 @@ Return **ONLY** valid JSON in this exact structure:
342
342
  - Example: "Use existing RateLimiter middleware, configure for /api/* routes"
343
343
  **subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
344
344
  - **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
345
+ - **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
345
346
  - MUST map `validation_criteria` → tests:
346
347
  - For each `VCn:` criterion, include at least one planned test name that covers it.
347
348
  - Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
@@ -307,6 +307,7 @@ Return **ONLY** valid JSON in this exact structure:
307
307
  - Example: "Use existing RateLimiter middleware, configure for /api/* routes"
308
308
  **subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
309
309
  - **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
310
+ - **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
310
311
  - MUST map `validation_criteria` → tests:
311
312
  - For each `VCn:` criterion, include at least one planned test name that covers it.
312
313
  - Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
@@ -127,6 +127,11 @@ Verification sequence (execute in order):
127
127
  If build/compile fails -> valid: false immediately with compilation errors.
128
128
  Do NOT proceed to other checks.
129
129
 
130
+ VERIFICATION EXECUTION GATE (MANDATORY -- same weight as BUILD GATE): an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute -- tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 -- is NOT a pass.
131
+ - Set valid: false with issue `verification not executed: <tool> (<reason>)`.
132
+ - List the tool in tools_run with status `unavailable` or `skipped`; never omit it.
133
+ - Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
134
+
130
135
  3. Verify Goal is achieved -- trace code path to confirm the stated outcome
131
136
  4. Verify Action is implemented -- check that the specified method/operation exists
132
137
  5. Verify mutation boundary (MANDATORY): Run
@@ -1260,6 +1265,7 @@ Expected output:
1260
1265
 
1261
1266
  Before returning your review JSON:
1262
1267
  1. Did I run the BUILD GATE (build/compile command)?
1268
+ 1a. Did I run the VERIFICATION EXECUTION GATE (every applicable lint/type/test check executed, none unavailable/skipped)?
1263
1269
  2. Did I check all 11 validation dimensions systematically?
1264
1270
  3. Did I verify documentation against source of truth (if applicable)?
1265
1271
  4. Are all issues specific with location and actionable suggestions?
@@ -110,6 +110,19 @@ def state_string(state: dict, key: str, default: str = "") -> str:
110
110
  return default
111
111
 
112
112
 
113
+ def active_wave_bits(state: dict) -> list[str]:
114
+ """Return ``wave=i/n`` and ``phases=...`` bits when the wave loop is engaged."""
115
+ waves = state.get("execution_waves")
116
+ phases = state.get("subtask_phases")
117
+ wave_idx = state.get("current_wave_index", 0)
118
+ if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
119
+ return []
120
+ if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
121
+ return []
122
+ per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
123
+ return [f"wave={wave_idx + 1}/{len(waves)}", f"phases=[{per_subtask}]"]
124
+
125
+
113
126
  def load_json(path: Path) -> dict | None:
114
127
  try:
115
128
  data = json.loads(path.read_text(encoding="utf-8"))
@@ -209,10 +222,17 @@ def build_reprime(branch: str, branch_dir: Path) -> str | None:
209
222
  step_id = state_string(state, "current_step_id")
210
223
  subtask_id = state_string(state, "current_subtask_id")
211
224
 
225
+ wave_bits = active_wave_bits(state)
226
+ if wave_bits:
227
+ # Wave loop engaged: current_step_*/current_subtask_id are stale
228
+ # sequential leftovers; subtask_phases is the live progress record.
229
+ phase = step_id = subtask_id = ""
230
+
212
231
  lines = ["MAP RE-PRIME after compaction:"]
213
232
  state_bits = []
214
233
  if workflow:
215
234
  state_bits.append(f"workflow={workflow}")
235
+ state_bits.extend(wave_bits)
216
236
  if step_id:
217
237
  state_bits.append(f"step={step_id}")
218
238
  if phase:
@@ -335,3 +355,4 @@ def main() -> None:
335
355
 
336
356
  if __name__ == "__main__":
337
357
  main()
358
+
@@ -501,6 +501,24 @@ def state_string(state: dict, key: str, default: str = "") -> str:
501
501
  return default
502
502
 
503
503
 
504
+ def active_wave_label(state: dict) -> str | None:
505
+ """Return ``WAVE i/n [ST-x:phase ...]`` when the wave loop is engaged.
506
+
507
+ Waves track progress only in ``subtask_phases``; ``current_step_*`` is a
508
+ stale sequential leftover (advance_wave resets it to 2.2/RESEARCH), so it
509
+ must not drive the banner while the wave loop is active.
510
+ """
511
+ waves = state.get("execution_waves")
512
+ phases = state.get("subtask_phases")
513
+ wave_idx = state.get("current_wave_index", 0)
514
+ if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
515
+ return None
516
+ if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
517
+ return None
518
+ per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
519
+ return f"WAVE {wave_idx + 1}/{len(waves)} [{per_subtask}]"
520
+
521
+
504
522
  def required_action_for_step(step_id: str, step_phase: str) -> str | None:
505
523
  """Return a short required-next-action hint for common steps."""
506
524
  if step_id == "1.55":
@@ -713,6 +731,15 @@ def format_reminder(
713
731
  mode = "batch:parallel"
714
732
 
715
733
  required = required_action_for_step(step_id, step_phase)
734
+ step_label = f"{step_id} {step_phase}"
735
+ wave_label = active_wave_label(state)
736
+ if wave_label:
737
+ # Wave loop engaged: current_step_*/current_subtask_id are stale
738
+ # sequential leftovers, so show per-subtask phases instead.
739
+ step_label = wave_label
740
+ wave_hint = ""
741
+ subtask_id = "-"
742
+ required = None
716
743
 
717
744
  diag_hint = ""
718
745
  diag_file = (
@@ -738,7 +765,7 @@ def format_reminder(
738
765
  if len(current_files) > 5:
739
766
  files_hint += f" +{len(current_files) - 5}"
740
767
 
741
- if not step_id and not step_phase:
768
+ if not step_id and not step_phase and not wave_label:
742
769
  return None
743
770
 
744
771
  # Context-aware: add goal and subtask title
@@ -772,15 +799,15 @@ def format_reminder(
772
799
  except OSError:
773
800
  pass
774
801
  ts_hint = f" @ {now_utc.strftime('%H:%M:%S.%f')[:-3]}Z (state {state_age_str})"
775
- base = f"[MAP]{ts_hint} {step_id} {step_phase}{goal_hint} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
802
+ base = f"[MAP]{ts_hint} {step_label}{goal_hint} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
776
803
 
777
804
  # Enforce limit: trim goal first, then constraint detail, then word-boundary truncate.
778
805
  if len(base) > REMINDER_LIMIT:
779
806
  goal_hint = ""
780
- base = f"[MAP]{ts_hint} {step_id} {step_phase} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
807
+ base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
781
808
  if len(base) > REMINDER_LIMIT:
782
809
  hard_hint = ""
783
- base = f"[MAP]{ts_hint} {step_id} {step_phase} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{tag_hint}{authority_hint}"
810
+ base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{tag_hint}{authority_hint}"
784
811
  if len(base) > REMINDER_LIMIT:
785
812
  base = _truncate_at_word(base, REMINDER_LIMIT)
786
813
 
@@ -1126,3 +1153,4 @@ def main() -> None:
1126
1153
 
1127
1154
  if __name__ == "__main__":
1128
1155
  main()
1156
+