mapify-cli 3.36.0__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 (754) hide show
  1. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/PKG-INFO +1 -1
  2. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/pyproject.toml +1 -1
  3. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/__init__.py +1 -1
  4. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/auto_update.py +119 -1
  5. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +22 -26
  6. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +73 -79
  7. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +31 -1
  8. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +595 -91
  9. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +22 -26
  10. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +73 -109
  11. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +31 -1
  12. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +595 -91
  13. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +23 -31
  14. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +73 -120
  15. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +31 -1
  16. mapify_cli-3.37.0/tests/test_auto_update_stale_project.py +214 -0
  17. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_release_ci_gates.py +50 -0
  18. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_changed_scope.py +13 -7
  19. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_context_transport.py +15 -7
  20. mapify_cli-3.37.0/tests/test_review_prompt_overhead.py +140 -0
  21. mapify_cli-3.37.0/tests/test_review_roster_budget.py +130 -0
  22. mapify_cli-3.37.0/tests/test_review_windowed_followups.py +270 -0
  23. mapify_cli-3.37.0/tests/test_review_windowed_sources.py +269 -0
  24. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills.py +10 -9
  25. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/.claude/hooks/README.md +0 -0
  26. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/.claude/skills/README.md +0 -0
  27. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/.gitignore +0 -0
  28. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/LICENSE +0 -0
  29. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/README.md +0 -0
  30. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/__main__.py +0 -0
  31. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/_locking.py +0 -0
  32. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/_python_guard.py +0 -0
  33. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/boundary_quality_report.py +0 -0
  34. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/cli_ui.py +0 -0
  35. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/code_map.py +0 -0
  36. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/codex_exec.py +0 -0
  37. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/config/__init__.py +0 -0
  38. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/config/mcp.py +0 -0
  39. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/config/project_config.py +0 -0
  40. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/config/settings.py +0 -0
  41. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/__init__.py +0 -0
  42. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
  43. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
  44. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
  45. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/file_copier.py +0 -0
  46. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/governance_report.py +0 -0
  47. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
  48. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/providers.py +0 -0
  49. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
  50. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/dependency_graph.py +0 -0
  51. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
  52. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/schema.py +0 -0
  53. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
  54. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/install_manifest.py +0 -0
  55. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/intent_detector.py +0 -0
  56. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/__init__.py +0 -0
  57. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/capture.py +0 -0
  58. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/digest_schema.py +0 -0
  59. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/evidence.py +0 -0
  60. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/finalize.py +0 -0
  61. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/memory/recall.py +0 -0
  62. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/minimality_eval.py +0 -0
  63. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/minimality_report.py +0 -0
  64. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/parallelism_observability.py +0 -0
  65. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/provider_registry.py +0 -0
  66. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/python_runtime.py +0 -0
  67. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/ralph_state.py +0 -0
  68. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/repo_insight.py +0 -0
  69. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/research_eval.py +0 -0
  70. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/research_eval_compare.py +0 -0
  71. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/schemas.py +0 -0
  72. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/scope_classifier.py +0 -0
  73. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skill_ir.py +0 -0
  74. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
  75. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
  76. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
  77. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
  78. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
  79. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
  80. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
  81. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
  82. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_corpus.py +0 -0
  83. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_pilot.py +0 -0
  84. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/runner.py +0 -0
  85. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
  86. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
  87. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
  88. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
  89. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
  90. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
  91. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
  92. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
  93. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
  94. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
  95. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
  96. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/.gitignore +0 -0
  97. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
  98. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/actor.md +0 -0
  99. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
  100. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
  101. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
  102. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/monitor.md +0 -0
  103. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
  104. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
  105. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
  106. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/review-reader.md +0 -0
  107. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/task-decomposer.md +0 -0
  108. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
  109. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/actor.toml +0 -0
  110. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +0 -0
  111. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +0 -0
  112. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
  113. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +0 -0
  114. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/monitor.toml +0 -0
  115. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
  116. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
  117. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
  118. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/review-reader.toml +0 -0
  119. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/config.toml +0 -0
  120. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/context-meter.py +0 -0
  121. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
  122. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
  123. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
  124. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
  125. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
  126. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
  127. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
  128. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-token-meter.py +0 -0
  129. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/post-compact-context.py +0 -0
  130. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/pre-compact-save-transcript.py +0 -0
  131. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-context-pruner.py +0 -0
  132. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-iteration-logger.py +0 -0
  133. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
  134. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/scrub-internal-ids.py +0 -0
  135. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/workflow-context-injector.py +0 -0
  136. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
  137. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
  138. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
  139. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
  140. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
  141. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +0 -0
  142. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +0 -0
  143. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +0 -0
  144. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
  145. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
  146. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
  147. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
  148. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
  149. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
  150. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
  151. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
  152. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
  153. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
  154. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
  155. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
  156. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
  157. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +0 -0
  158. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
  159. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +0 -0
  160. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
  161. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +0 -0
  162. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +0 -0
  163. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
  164. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
  165. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
  166. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
  167. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
  168. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +0 -0
  169. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +0 -0
  170. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
  171. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
  172. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
  173. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
  174. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
  175. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +0 -0
  176. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +0 -0
  177. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +0 -0
  178. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
  179. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
  180. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +0 -0
  181. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +0 -0
  182. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/README.md +0 -0
  183. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
  184. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
  185. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
  186. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
  187. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
  188. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
  189. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
  190. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
  191. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
  192. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/post-compact-context.py +0 -0
  193. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
  194. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
  195. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
  196. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
  197. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
  198. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/workflow-context-injector.py +0 -0
  199. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
  200. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
  201. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_host.py +0 -0
  202. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_runner.py +0 -0
  203. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
  204. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +0 -0
  205. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
  206. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
  207. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +0 -0
  208. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
  209. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +0 -0
  210. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
  211. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +0 -0
  212. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
  213. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
  214. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
  215. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
  216. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
  217. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
  218. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
  219. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
  220. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
  221. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
  222. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
  223. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
  224. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
  225. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
  226. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
  227. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
  228. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
  229. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
  230. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
  231. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/settings.json +0 -0
  232. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/README.md +0 -0
  233. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -0
  234. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -0
  235. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
  236. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
  237. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
  238. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
  239. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
  240. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +0 -0
  241. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
  242. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
  243. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
  244. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
  245. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
  246. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
  247. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
  248. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
  249. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
  250. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
  251. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
  252. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
  253. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +0 -0
  254. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +0 -0
  255. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
  256. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
  257. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
  258. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
  259. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
  260. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
  261. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
  262. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
  263. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
  264. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
  265. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
  266. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
  267. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
  268. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
  269. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
  270. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
  271. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
  272. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
  273. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +0 -0
  274. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
  275. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
  276. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
  277. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
  278. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +0 -0
  279. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
  280. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
  281. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
  282. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
  283. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +0 -0
  284. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
  285. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
  286. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
  287. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/vacuous-test-check.md.jinja +0 -0
  288. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
  289. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
  290. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
  291. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
  292. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +0 -0
  293. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
  294. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
  295. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
  296. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/review-reader.md.jinja +0 -0
  297. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +0 -0
  298. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
  299. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +0 -0
  300. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +0 -0
  301. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +0 -0
  302. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
  303. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +0 -0
  304. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +0 -0
  305. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
  306. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
  307. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
  308. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +0 -0
  309. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
  310. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
  311. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
  312. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
  313. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
  314. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
  315. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
  316. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
  317. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
  318. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
  319. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
  320. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
  321. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
  322. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
  323. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
  324. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
  325. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
  326. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
  327. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
  328. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
  329. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
  330. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
  331. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
  332. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
  333. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
  334. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
  335. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
  336. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
  337. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
  338. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
  339. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
  340. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
  341. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
  342. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
  343. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
  344. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
  345. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
  346. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
  347. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
  348. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
  349. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
  350. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
  351. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
  352. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
  353. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
  354. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
  355. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
  356. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
  357. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
  358. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
  359. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
  360. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
  361. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
  362. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
  363. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
  364. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
  365. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
  366. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
  367. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
  368. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
  369. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
  370. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
  371. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
  372. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
  373. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
  374. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
  375. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
  376. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
  377. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
  378. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
  379. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
  380. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
  381. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
  382. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
  383. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
  384. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
  385. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +0 -0
  386. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
  387. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
  388. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
  389. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
  390. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
  391. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +0 -0
  392. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
  393. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
  394. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_host.py.jinja +0 -0
  395. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_runner.py.jinja +0 -0
  396. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
  397. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +0 -0
  398. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
  399. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
  400. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +0 -0
  401. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
  402. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +0 -0
  403. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
  404. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +0 -0
  405. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
  406. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
  407. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
  408. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
  409. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
  410. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
  411. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
  412. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
  413. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
  414. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
  415. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
  416. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
  417. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
  418. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
  419. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
  420. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
  421. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
  422. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
  423. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
  424. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
  425. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
  426. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -0
  427. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -0
  428. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
  429. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
  430. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
  431. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
  432. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
  433. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +0 -0
  434. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
  435. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
  436. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
  437. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
  438. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
  439. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
  440. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
  441. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
  442. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
  443. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
  444. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
  445. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
  446. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +0 -0
  447. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +0 -0
  448. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
  449. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
  450. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
  451. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
  452. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
  453. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
  454. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
  455. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
  456. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
  457. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
  458. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
  459. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
  460. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
  461. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
  462. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
  463. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
  464. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
  465. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
  466. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
  467. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
  468. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
  469. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/token_budget.py +0 -0
  470. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/tool_output_offload.py +0 -0
  471. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/tools/__init__.py +0 -0
  472. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
  473. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/update_install.py +0 -0
  474. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/update_state.py +0 -0
  475. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/update_versions.py +0 -0
  476. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/verification_recorder.py +0 -0
  477. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/workflow_finalizer.py +0 -0
  478. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/workflow_logger.py +0 -0
  479. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/src/mapify_cli/workflow_state.py +0 -0
  480. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/__init__.py +0 -0
  481. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/_fake_task_tool.py +0 -0
  482. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/conftest.py +0 -0
  483. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
  484. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/fixtures/codex/config.toml +0 -0
  485. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/fixtures/wave_blueprints.py +0 -0
  486. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
  487. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/hooks/test_end_of_turn.py +0 -0
  488. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
  489. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/hooks/test_safety_guardrails.py +0 -0
  490. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
  491. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/__init__.py +0 -0
  492. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/blueprint.json +0 -0
  493. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/code_review.md +0 -0
  494. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/plan_handoff.json +0 -0
  495. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/spec.md +0 -0
  496. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
  497. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
  498. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/task_plan.md +0 -0
  499. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/fixtures/verification_summary.md +0 -0
  500. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
  501. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
  502. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/review_context_helpers.py +0 -0
  503. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/review_pilot_git_cache.py +0 -0
  504. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/review_process_lifecycle.py +0 -0
  505. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/README.md +0 -0
  506. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
  507. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
  508. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
  509. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
  510. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
  511. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
  512. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
  513. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
  514. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
  515. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
  516. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
  517. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
  518. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
  519. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
  520. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
  521. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
  522. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
  523. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
  524. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
  525. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
  526. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
  527. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
  528. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
  529. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
  530. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
  531. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
  532. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
  533. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
  534. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
  535. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
  536. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
  537. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
  538. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
  539. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
  540. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
  541. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
  542. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
  543. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
  544. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
  545. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
  546. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
  547. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
  548. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
  549. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
  550. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
  551. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
  552. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
  553. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
  554. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
  555. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
  556. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
  557. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
  558. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
  559. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
  560. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
  561. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
  562. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
  563. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
  564. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
  565. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
  566. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
  567. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
  568. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
  569. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
  570. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
  571. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
  572. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
  573. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
  574. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
  575. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
  576. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
  577. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
  578. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
  579. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
  580. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
  581. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
  582. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
  583. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
  584. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/corpus.json +0 -0
  585. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/adjudication.json +0 -0
  586. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/control-audit.json +0 -0
  587. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.json +0 -0
  588. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.log +0 -0
  589. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual_repro.py +0 -0
  590. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +0 -0
  591. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
  592. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision.py +0 -0
  593. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision_review.py +0 -0
  594. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_acceptance_proofs.py +0 -0
  595. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_agent_cli_correctness.py +0 -0
  596. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_agent_dispatch_audit.py +0 -0
  597. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_agent_frontmatter.py +0 -0
  598. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_agent_memory.py +0 -0
  599. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_approval_hold.py +0 -0
  600. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_approved_baseline_gate_contract.py +0 -0
  601. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_artifact_schemas.py +0 -0
  602. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_auto_update.py +0 -0
  603. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_boundary_quality_report.py +0 -0
  604. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_bump_version.py +0 -0
  605. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_classify_scope_script.py +0 -0
  606. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_code_map.py +0 -0
  607. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_codex_map_review_live.py +0 -0
  608. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_codex_review_host.py +0 -0
  609. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_codex_review_native.py +0 -0
  610. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_compaction_offload_integration.py +0 -0
  611. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_concurrent_dispatch_harness.py +0 -0
  612. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_context_usefulness.py +0 -0
  613. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_cross_ai_config.py +0 -0
  614. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_debug_reference_install.py +0 -0
  615. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_decomposition.py +0 -0
  616. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_dependency_graph.py +0 -0
  617. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_diagnostics.py +0 -0
  618. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_digest_schema.py +0 -0
  619. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_domain_skill.py +0 -0
  620. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_file_copier.py +0 -0
  621. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_governance_attack_fixtures.py +0 -0
  622. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_governance_report.py +0 -0
  623. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_grace_eval_schema.py +0 -0
  624. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_grace_eval_sweep.py +0 -0
  625. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_hook_patterns.py +0 -0
  626. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_init_import_graph.py +0 -0
  627. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_install_manifest.py +0 -0
  628. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_intent_detector.py +0 -0
  629. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
  630. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_jinja2_dep.py +0 -0
  631. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_locking.py +0 -0
  632. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_managed_file_copier.py +0 -0
  633. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_auto.py +0 -0
  634. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_interruption.py +0 -0
  635. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_orchestrator.py +0 -0
  636. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_step_runner.py +0 -0
  637. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_token_meter.py +0 -0
  638. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_map_utils_sanitize.py +0 -0
  639. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_mapify_cli.py +0 -0
  640. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_capture.py +0 -0
  641. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events.py +0 -0
  642. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events_compat.py +0 -0
  643. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events_exit_status.py +0 -0
  644. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events_privacy.py +0 -0
  645. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events_review.py +0 -0
  646. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_events_tools.py +0 -0
  647. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_finalize.py +0 -0
  648. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_integration.py +0 -0
  649. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_recall.py +0 -0
  650. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_memory_review_fixes.py +0 -0
  651. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_minimality_eval.py +0 -0
  652. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_minimality_report.py +0 -0
  653. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_model_invocable_skills.py +0 -0
  654. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_monitor_worktree_context.py +0 -0
  655. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_mutation_path_normalization.py +0 -0
  656. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_orchestrator_acceptance.py +0 -0
  657. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_parallelism_observability.py +0 -0
  658. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_post_compact_context.py +0 -0
  659. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_preset_commands.py +0 -0
  660. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_project_config.py +0 -0
  661. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_prompt_layering.py +0 -0
  662. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_prompt_profile_commands.py +0 -0
  663. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_python_version_requirement.py +0 -0
  664. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_pyyaml_dep.py +0 -0
  665. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_ralph_hooks.py +0 -0
  666. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_ralph_response_types.py +0 -0
  667. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_ralph_state.py +0 -0
  668. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_repair_attribution.py +0 -0
  669. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_repair_workflow_gate.py +0 -0
  670. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_repo_insight.py +0 -0
  671. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_research_eval.py +0 -0
  672. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_research_eval_compare.py +0 -0
  673. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_resequence_pending.py +0 -0
  674. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_attribution_receipts.py +0 -0
  675. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_branch_receipts.py +0 -0
  676. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_check_timeouts.py +0 -0
  677. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_context_delivery.py +0 -0
  678. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_corpus.py +0 -0
  679. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_explicit_base.py +0 -0
  680. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_explicit_base_legacy_override.py +0 -0
  681. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_explicit_base_stale_readers.py +0 -0
  682. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_finding_validation.py +0 -0
  683. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_mapify_managed.py +0 -0
  684. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_pending_collection.py +0 -0
  685. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_pilot.py +0 -0
  686. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_pilot_git_cache.py +0 -0
  687. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_process_lifecycle.py +0 -0
  688. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_reader_capabilities.py +0 -0
  689. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_receipt_edge_cases.py +0 -0
  690. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_security_gates.py +0 -0
  691. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_shard_docs.py +0 -0
  692. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_trusted_policy.py +0 -0
  693. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_review_verdict_ledger.py +0 -0
  694. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_role_coverage_receipts.py +0 -0
  695. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_runtime_info_exclude.py +0 -0
  696. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_runtime_privacy_ignores.py +0 -0
  697. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_schemas.py +0 -0
  698. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_scope_classifier.py +0 -0
  699. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_scrub_internal_ids.py +0 -0
  700. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_settings_deny_globs.py +0 -0
  701. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_shell_json_pipes.py +0 -0
  702. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skill_ir.py +0 -0
  703. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_consistency.py +0 -0
  704. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_aggregator.py +0 -0
  705. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_apply.py +0 -0
  706. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_cli_optimize.py +0 -0
  707. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
  708. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
  709. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_fixtures.py +0 -0
  710. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer.py +0 -0
  711. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
  712. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_proposer.py +0 -0
  713. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_runner.py +0 -0
  714. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_schema.py +0 -0
  715. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
  716. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
  717. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
  718. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
  719. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
  720. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_report.py +0 -0
  721. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
  722. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
  723. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_skills_eval_viewer.py +0 -0
  724. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_slice5b_leak_guards.py +0 -0
  725. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_sofa_client.py +0 -0
  726. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_sofa_search.py +0 -0
  727. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_static_analysis_bash.py +0 -0
  728. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_statusline.py +0 -0
  729. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_template_render.py +0 -0
  730. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_token_budget.py +0 -0
  731. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_tool_output_offload.py +0 -0
  732. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_unborn_branch_scope.py +0 -0
  733. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_unrun_verification_contract.py +0 -0
  734. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_update_install.py +0 -0
  735. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_update_state.py +0 -0
  736. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_update_versions.py +0 -0
  737. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_vacuous_test_check.py +0 -0
  738. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_validate_dependencies.py +0 -0
  739. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_validate_spec_citations.py +0 -0
  740. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_verification_recorder.py +0 -0
  741. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wave_abort_preservation.py +0 -0
  742. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wave_eval_harness.py +0 -0
  743. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wave_fixtures.py +0 -0
  744. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wave_parallel_harness.py +0 -0
  745. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wayfind_install.py +0 -0
  746. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wayfind_research.py +0 -0
  747. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_wayfind_runner.py +0 -0
  748. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_workflow_context_injector.py +0 -0
  749. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_workflow_finalizer.py +0 -0
  750. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_workflow_gate.py +0 -0
  751. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_workflow_logger.py +0 -0
  752. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_workflow_state.py +0 -0
  753. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_worktree_commit_hooks.py +0 -0
  754. {mapify_cli-3.36.0 → mapify_cli-3.37.0}/tests/test_worktree_isolation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mapify-cli
3
- Version: 3.36.0
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.36.0"
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.36.0"
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)
@@ -11,7 +11,7 @@ For `updated`, re-read this invoked skill's installed `SKILL.md`, skip its alrea
11
11
 
12
12
  # MAP Framework Release Workflow
13
13
 
14
- **CRITICAL INSTRUCTION:** This is an **automated sequential workflow with IRREVERSIBLE operations**. You MUST execute ALL validation gates and get explicit user confirmation before pushing tags.
14
+ **CRITICAL INSTRUCTION:** This is an **automated sequential workflow with IRREVERSIBLE operations**. You MUST execute ALL validation gates; any failing gate aborts the release. Invoking this skill is the operator's authorization to publish the version Phase 2 computes — never ask the operator questions.
15
15
 
16
16
  **🚨 ABSOLUTELY FORBIDDEN 🚨**
17
17
 
@@ -20,7 +20,7 @@ You are **STRICTLY PROHIBITED** from:
20
20
  ❌ Skipping validation gates to save time — every gate exists for a reason
21
21
  ❌ Pushing tags without CI confirmation — tag push triggers release workflow immediately
22
22
  ❌ Assuming tests passed without checking — always verify CI status explicitly
23
- ❌ Proceeding without user confirmation on IRREVERSIBLE steps — tag push cannot be undone easily
23
+ ❌ Pushing a tag when any gate or the Phase 4.1 re-verification did not pass in this run — tag push cannot be undone easily
24
24
  ❌ Creating releases without updating CHANGELOG.md — users need to know what changed
25
25
  ❌ Pushing tag without verifying `__version__` in `__init__.py` — CRITICAL: bump-version.sh has known bug
26
26
  ❌ Any variation of "I'll optimize the release process" — follow the workflow exactly
@@ -38,7 +38,7 @@ parallel_tool_policy: validation_gates_only
38
38
 
39
39
  - Use deeper reasoning for version selection, release safety, CI interpretation, and rollback decisions.
40
40
  - Parallelize only independent pre-release validation gates when their outputs do not depend on one another.
41
- - Keep version bumping, commits, tags, pushes, PyPI verification, and any irreversible or state-mutating operation sequential with the required user confirmation gates.
41
+ - Keep version bumping, commits, tags, pushes, PyPI verification, and any irreversible or state-mutating operation sequential, each gated by the preceding verification block.
42
42
 
43
43
  ## Workflow Overview
44
44
 
@@ -47,7 +47,7 @@ This workflow orchestrates a complete package release through 7 sequential phase
47
47
  ```
48
48
  Phase 1: Pre-Release Validation (12 gates)
49
49
  ↓
50
- Phase 2: Version Determination (user decision)
50
+ Phase 2: Version Determination (recommended bump, no prompt)
51
51
  ↓
52
52
  Phase 3: Execute Version Bump Script (updates code + git commit + tag)
53
53
  ↓
@@ -80,19 +80,18 @@ Execute all 12 gates. Read the full gate scripts in [release-reference.md § Pha
80
80
 
81
81
  ## Phase 2: Version Determination
82
82
 
83
- Read CHANGELOG.md `[Unreleased]` section to determine bump type (MAJOR/MINOR/PATCH/EXPLICIT).
84
- Get current version from `pyproject.toml`.
83
+ Run the Phase 2 reference block with `RELEASE_REQUEST` set to the release argument
84
+ (empty when none). It never asks: an explicit `X.Y.Z` or `patch`/`minor`/`major`
85
+ argument wins, otherwise the recommended bump is chosen from `[Unreleased]`
86
+ (an entry starting with `BREAKING` or a `### Removed`/`### Breaking` section → MAJOR,
87
+ `### Added`/`### Changed` → MINOR, else PATCH) and a version that does not move forward aborts. Carry exactly the printed
88
+ `BUMP_TYPE` and `NEW_VERSION` into Phase 3 and 4; each command runs in a fresh shell.
85
89
 
86
- Ask the user directly for PATCH / MINOR / MAJOR / EXPLICIT, and wait for their answer.
87
-
88
- For EXPLICIT, ask separately for the exact version. Carry only the user's approved
89
- `BUMP_TYPE` and exact `NEW_VERSION` into Phase 3; each command runs in a fresh shell.
90
-
91
- See [release-reference.md § Phase 2](release-reference.md#phase-2-version-determination) for the full question/option block.
90
+ See [release-reference.md § Phase 2](release-reference.md#phase-2-version-determination).
92
91
 
93
92
  ## Phase 3: Execute Version Bump Script
94
93
 
95
- Show the exact approved version and bump type, then execute the Phase 3 reference
94
+ Show the exact Phase 2 version and bump type, then execute the Phase 3 reference
96
95
  blocks with those values explicitly supplied in each invocation. Never rely on
97
96
  variables left by a previous shell. Verify the version-derived `vX.Y.Z` tag points
98
97
  to HEAD and both version fields match it using the Phase 3.3 reference block.
@@ -105,16 +104,13 @@ If `__version__` mismatches, follow the fix procedure in [release-reference.md
105
104
 
106
105
  Re-verify: on main branch, exact merge-base CI completed successfully with matching
107
106
  `headSha`, only the three allowed metadata files changed, version-derived tag
108
- points to HEAD and does not already exist on remote. Then request **explicit user
109
- confirmation** (YES / NO / REVIEW options).
110
-
111
- Ask the user directly and wait; only an unambiguous YES authorizes pushing.
107
+ points to HEAD and does not already exist on remote. Then push without asking —
108
+ invoking the release is the authorization. If the version, commit or tag changed
109
+ since Phase 2, stop and re-run Phases 2–4.1 instead of pushing.
112
110
 
113
111
  Read [release-reference.md § Phase 4](release-reference.md#phase-4-push-commit-and-tag-irreversible)
114
- for the confirmation and push blocks. Recompute the tag in the push invocation;
115
- consent for an earlier version or commit does not authorize a changed release.
116
-
117
- If user aborts: stop workflow, exit gracefully. Tag remains local only.
112
+ for the verification and push blocks. Recompute the tag in the push invocation and
113
+ pass `NEW_VERSION` so a changed release aborts.
118
114
 
119
115
  ## Phase 5: CI/CD Monitoring
120
116
 
@@ -136,7 +132,7 @@ Print release statistics (version, tag, PyPI URL, GitHub Release URL, CI run). O
136
132
 
137
133
  - **NEVER skip validation gates** — all 12 gates must pass before Phase 4
138
134
  - **NEVER push tag without CI confirmation** — verify CI passed on main before Phase 4
139
- - **NEVER proceed without user confirmation on IRREVERSIBLE operations**
135
+ - **NEVER push unless Phase 4.1 passed in this run for the Phase 2 version** — no operator prompt replaces a gate
140
136
  - **ALWAYS monitor CI/CD pipeline** — don't assume success
141
137
  - **ALWAYS verify PyPI availability** before declaring success
142
138
 
@@ -147,10 +143,10 @@ Print release statistics (version, tag, PyPI URL, GitHub Release URL, CI run). O
147
143
  | 1 | Pytest tests | ❌ NO |
148
144
  | 2 | Pyright + hook lint | ❌ NO |
149
145
  | 3 | Ruff lint | ❌ NO |
150
- | 4 | Mypy types | ⚠️ Review |
146
+ | 4 | Mypy types | ❌ NO |
151
147
  | 5 | Package build | ❌ NO |
152
148
  | 6 | Twine check | ❌ NO |
153
- | 7 | Security audit | ⚠️ Review |
149
+ | 7 | Security audit | ❌ NO (update the vulnerable pin first) |
154
150
  | 8 | Git branch | ❌ NO |
155
151
  | 9 | Git clean | ❌ NO |
156
152
  | 10 | Git sync | ❌ NO |
@@ -162,8 +158,8 @@ Begin now with the release request above. Read the relevant [release-reference.m
162
158
  ## Examples
163
159
 
164
160
  ```
165
- $map-release # full release workflow; bump type chosen at the confirmation gate
166
- $map-release patch # hint to the version-determination phase
161
+ $map-release # full release; recommended bump chosen from [Unreleased]
162
+ $map-release patch # force a bump type (patch|minor|major)
167
163
  ```
168
164
 
169
165
  ## Troubleshooting
@@ -160,36 +160,10 @@ if [[ -n "$LAST_TAG" ]]; then
160
160
  awk '/^## \[Unreleased\]/{f=1;next} /^## \[/{f=0} f' CHANGELOG.md
161
161
  echo ""
162
162
 
163
- # Ask user to update CHANGELOG
164
- read -p "CHANGELOG appears incomplete. Update it now? (y/n): " UPDATE_CHANGELOG
165
-
166
- if [[ "$UPDATE_CHANGELOG" == "y" ]]; then
167
- echo ""
168
- echo "Suggested CHANGELOG entries (review and add manually):"
169
- echo "────────────────────────────────────────────────────────"
170
- git log ${LAST_TAG}..HEAD --no-merges --format="%s (%h)" | while read -r commit_msg; do
171
- if [[ "$commit_msg" =~ ^feat ]]; then
172
- echo "### Changed"
173
- echo "- ${commit_msg#feat*: }"
174
- elif [[ "$commit_msg" =~ ^fix ]]; then
175
- echo "### Fixed"
176
- echo "- ${commit_msg#fix*: }"
177
- elif [[ "$commit_msg" =~ ^docs ]]; then
178
- echo "### Documentation"
179
- echo "- ${commit_msg#docs*: }"
180
- else
181
- echo "### Changed"
182
- echo "- $commit_msg"
183
- fi
184
- done
185
- echo "────────────────────────────────────────────────────────"
186
- echo ""
187
- echo "Please update CHANGELOG.md manually, then re-run the release."
188
- exit 1
189
- else
190
- read -p "Continue with potentially incomplete CHANGELOG? (y/N): " PROCEED_ANYWAY
191
- [[ "$PROCEED_ANYWAY" != "y" ]] && exit 1
192
- fi
163
+ # Never prompt: the release agent reconciles the CHANGELOG itself.
164
+ echo "ACTION: add the missing user-visible entries to [Unreleased] from the commits above"
165
+ echo " in a docs(changelog) commit, then re-run Phase 1 Gates 8-12."
166
+ exit 2
193
167
  fi
194
168
  else
195
169
  echo "ℹ️ No previous tag found, skipping completeness check"
@@ -198,33 +172,58 @@ fi
198
172
 
199
173
  ## Phase 2: Version Determination
200
174
 
175
+ Invoking the release is the authorization: never ask the operator. Run this block
176
+ with `RELEASE_REQUEST` set to the release argument (empty when none). An explicit
177
+ `X.Y.Z` or `patch`/`minor`/`major` argument wins; anything else selects the
178
+ recommended bump from `[Unreleased]`.
179
+
201
180
  ```bash
202
- # Get current version from pyproject.toml
181
+ set -euo pipefail
203
182
  CURRENT_VERSION=$(grep -m1 -E '^version = ' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
204
- echo "Current version: $CURRENT_VERSION"
205
-
206
- # Read CHANGELOG unreleased section
207
- UNRELEASED_CHANGES=$(awk '/^## \[Unreleased\]/{f=1;next} /^## \[/{f=0} f' CHANGELOG.md)
183
+ SEMVER='^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$'
184
+ [[ "$CURRENT_VERSION" =~ $SEMVER ]] || { echo "ABORT: invalid current version '$CURRENT_VERSION'"; exit 1; }
185
+ UNRELEASED=$(awk '/^## \[Unreleased\]/{f=1;next} /^## \[/{f=0} f' CHANGELOG.md)
186
+ REQUEST=$(printf '%s' "${RELEASE_REQUEST:-}" | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]')
187
+ IFS=. read -r MAJ MIN PAT <<< "$CURRENT_VERSION"
188
+ if [[ "$REQUEST" =~ $SEMVER ]]; then
189
+ BUMP_TYPE="$REQUEST"; NEW_VERSION="$REQUEST"
190
+ else
191
+ case "$REQUEST" in
192
+ patch|minor|major) BUMP_TYPE="$REQUEST" ;;
193
+ *)
194
+ # Recommended bump: explicit breaking markers -> major, added/changed -> minor, else patch.
195
+ # Only an entry that STARTS with BREAKING (or a Removed/Breaking section) counts; the word
196
+ # inside prose (e.g. an entry describing this rule) must not force a major release.
197
+ if grep -qE '^- (\*\*)?BREAKING' <<< "$UNRELEASED" || grep -qE '^### (Removed|Breaking)' <<< "$UNRELEASED"; then
198
+ BUMP_TYPE=major
199
+ elif grep -qE '^### (Added|Changed)' <<< "$UNRELEASED"; then
200
+ BUMP_TYPE=minor
201
+ else
202
+ BUMP_TYPE=patch
203
+ fi ;;
204
+ esac
205
+ case "$BUMP_TYPE" in
206
+ major) NEW_VERSION="$((MAJ + 1)).0.0" ;;
207
+ minor) NEW_VERSION="$MAJ.$((MIN + 1)).0" ;;
208
+ patch) NEW_VERSION="$MAJ.$MIN.$((PAT + 1))" ;;
209
+ esac
210
+ fi
211
+ IFS=. read -r NMAJ NMIN NPAT <<< "$NEW_VERSION"
212
+ if (( NMAJ < MAJ || (NMAJ == MAJ && (NMIN < MIN || (NMIN == MIN && NPAT <= PAT))) )); then
213
+ echo "ABORT: $NEW_VERSION does not move forward from $CURRENT_VERSION"; exit 1
214
+ fi
215
+ echo "BUMP_TYPE=$BUMP_TYPE"
216
+ echo "NEW_VERSION=$NEW_VERSION"
208
217
  ```
209
218
 
210
- **Semantic Versioning Rules:**
211
- - **MAJOR (X.0.0):** Breaking changes, incompatible API/workflow changes
212
- - **MINOR (x.Y.0):** New features, backward-compatible additions
213
- - **PATCH (x.y.Z):** Bug fixes and minor improvements
214
-
219
+ **Semantic Versioning Rules (applied above):**
220
+ - **MAJOR (X.0.0):** an entry starting with `BREAKING` (or `**BREAKING**`), or a `### Removed` / `### Breaking` section
221
+ - **MINOR (x.Y.0):** an `### Added` or `### Changed` section
222
+ - **PATCH (x.y.Z):** only fixes
215
223
 
216
- Ask the user directly which bump to perform: PATCH for fixes, MINOR for
217
- backward-compatible features, MAJOR for breaking changes, or EXPLICIT.
218
- Do not choose on the user's behalf and do not continue until they answer.
219
-
220
-
221
- For EXPLICIT, ask a separate question for the exact `X.Y.Z` value; selecting the
222
- option alone supplies no version. Validate `^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$`.
223
- Calculate the proposed `NEW_VERSION` from the user's bump choice and current
224
- version (or their explicit version). Show the exact result before execution.
225
- Supply `BUMP_TYPE` (`patch`, `minor`, `major`, or the exact version) and
226
- `NEW_VERSION` explicitly to **each** Phase 3 shell invocation, using only these
227
- approved values. Missing values abort; never assume a previous shell survives.
224
+ Print the selected bump and version, then carry exactly these `BUMP_TYPE` and
225
+ `NEW_VERSION` values into **each** Phase 3 and Phase 4 shell invocation. Missing
226
+ values abort; never assume a previous shell survives.
228
227
 
229
228
  ## Phase 3: Execute Version Bump Script
230
229
 
@@ -232,9 +231,9 @@ approved values. Missing values abort; never assume a previous shell survives.
232
231
 
233
232
  ```bash
234
233
  set -euo pipefail
235
- : "${BUMP_TYPE:?Supply the user-approved bump type for this invocation}"
236
- : "${NEW_VERSION:?Supply the user-approved exact version for this invocation}"
237
- [[ "$NEW_VERSION" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]] || { echo "ABORT: invalid approved version"; exit 1; }
234
+ : "${BUMP_TYPE:?Supply the Phase 2 bump type for this invocation}"
235
+ : "${NEW_VERSION:?Supply the Phase 2 exact version for this invocation}"
236
+ [[ "$NEW_VERSION" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]] || { echo "ABORT: invalid Phase 2 version"; exit 1; }
238
237
  echo "Version Bump Script Will Execute:"
239
238
  echo "1. Update pyproject.toml: version = \"$NEW_VERSION\""
240
239
  echo "2. Update CHANGELOG.md: [Unreleased] → [$NEW_VERSION] - $(date +%Y-%m-%d)"
@@ -247,11 +246,11 @@ echo "Changes will be committed locally but NOT pushed yet."
247
246
 
248
247
  ```bash
249
248
  set -euo pipefail
250
- : "${BUMP_TYPE:?Supply the user-approved bump type for this invocation}"
251
- : "${NEW_VERSION:?Supply the user-approved exact version for this invocation}"
252
- [[ "$NEW_VERSION" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]] || { echo "ABORT: invalid approved version"; exit 1; }
253
- [[ "$BUMP_TYPE" =~ ^(patch|minor|major)$ || "$BUMP_TYPE" == "$NEW_VERSION" ]] || { echo "ABORT: invalid approved bump type"; exit 1; }
254
- # Intent: use the approved exact version so a changed current version cannot alter the bump.
249
+ : "${BUMP_TYPE:?Supply the Phase 2 bump type for this invocation}"
250
+ : "${NEW_VERSION:?Supply the Phase 2 exact version for this invocation}"
251
+ [[ "$NEW_VERSION" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]] || { echo "ABORT: invalid Phase 2 version"; exit 1; }
252
+ [[ "$BUMP_TYPE" =~ ^(patch|minor|major)$ || "$BUMP_TYPE" == "$NEW_VERSION" ]] || { echo "ABORT: invalid Phase 2 bump type"; exit 1; }
253
+ # Intent: use the Phase 2 exact version so a changed current version cannot alter the bump.
255
254
  ./scripts/bump-version.sh --yes "$NEW_VERSION"
256
255
  ```
257
256
 
@@ -343,18 +342,13 @@ REMOTE_TAG=$(git ls-remote --tags origin "refs/tags/$LAST_TAG" "refs/tags/$LAST_
343
342
  echo "✅ Pre-push safety checks passed"
344
343
  ```
345
344
 
346
- ### 4.2 User Confirmation
347
-
348
-
349
- Ask the user directly for explicit confirmation before pushing. State that
350
- `$LAST_TAG` to `origin/main` will trigger GitHub Actions, publish to PyPI, and
351
- create a public GitHub release. Accept only an unambiguous YES; NO aborts, and
352
- REVIEW shows the commit, tag, and CHANGELOG before asking again.
345
+ ### 4.2 Authorization
353
346
 
354
-
355
- If `REVIEW`: show `git show`, `git tag -l -n50 "$LAST_TAG"`, and CHANGELOG excerpt, then ask again.
356
- Only YES permits Phase 4.3. Repeat Phase 4.1 and ask again if the commit or version
357
- changes; never interpret REVIEW, silence, or an earlier bump choice as push consent.
347
+ Invoking the release authorizes publishing the version computed in Phase 2; do not
348
+ ask the operator. Proceed to 4.3 only when 4.1 printed its success line in this
349
+ run. Before pushing, print the version, release commit and tag. If anything
350
+ changed since Phase 2 (version, commit, tag), stop and re-run Phases 2–4.1 instead
351
+ of pushing.
358
352
 
359
353
  ### 4.3 Push
360
354
 
@@ -366,7 +360,8 @@ LAST_TAG="v$PYPROJECT_VERSION"
366
360
  TAG_COMMIT=$(git rev-parse "$LAST_TAG^{commit}")
367
361
  HEAD_COMMIT=$(git rev-parse HEAD)
368
362
  [[ "$TAG_COMMIT" == "$HEAD_COMMIT" ]] || { echo "ABORT: release tag does not point to HEAD"; exit 1; }
369
- # Execute only after the user approved this exact tag and commit in Phase 4.2.
363
+ : "${NEW_VERSION:?Supply the Phase 2 version for this invocation}"
364
+ [[ "$PYPROJECT_VERSION" == "$NEW_VERSION" ]] || { echo "ABORT: release version $PYPROJECT_VERSION differs from Phase 2 ($NEW_VERSION)"; exit 1; }
370
365
  git push origin main
371
366
  git push origin "$LAST_TAG"
372
367
  PUSH_TIMESTAMP=$(date +%s)
@@ -529,9 +524,9 @@ You CANNOT delete packages from PyPI. Only option is yank.
529
524
  ### Scenario 5: PyPI Not Available After 5+ Minutes
530
525
 
531
526
  ```bash
532
- # Supply the exact release run ID from Phase 5 and the approved exact version.
527
+ # Supply the exact release run ID from Phase 5 and the Phase 2 exact version.
533
528
  : "${RUN_ID:?Supply the verified release run ID for this invocation}"
534
- : "${TAG_VERSION:?Supply the approved exact release version for this invocation}"
529
+ : "${TAG_VERSION:?Supply the Phase 2 exact release version for this invocation}"
535
530
  gh run view "$RUN_ID" --log | grep -A 10 "pypi-publish"
536
531
  # Check https://status.python.org/
537
532
  # Wait up to 15 minutes, probing the simple index pip resolves against —
@@ -560,15 +555,14 @@ gh run view <run-id> --log
560
555
  ## MCP Tools
561
556
 
562
557
  - **`mcp__sequential-thinking__sequentialthinking`** — complex decision making for version bump
563
-
564
- - **Direct user confirmation** — wait for explicit consent for IRREVERSIBLE operations
565
-
558
+ - Invoking the release is the authorization; the workflow never prompts the operator. Hard gates abort instead.
566
559
 
567
560
  ## Examples
568
561
 
569
562
  ```
570
- $map-release # full release workflow; bump type chosen at confirmation gate
571
- $map-release patch # hint to version-determination phase
563
+ $map-release # full release; recommended bump chosen from [Unreleased]
564
+ $map-release patch # force a bump type (patch|minor|major)
565
+ $map-release 4.0.0 # force an exact version (must move forward)
572
566
  ```
573
567
 
574
568
  ## Troubleshooting
@@ -49,10 +49,40 @@ user tails, missing or malformed headers and files whose JSON was reformatted st
49
49
  any file and it is skipped (visibly, in `skipped_scope`). Use strict `review.security_gates` when PR
50
50
  authors are untrusted; it disables this skip. `review.exclude_mapify_managed: false` opts out.
51
51
 
52
+ ## Compact Prompt Context
53
+
54
+ Execution checks appear as one line each (exit code, duration, command, `output_sha256`, size and the
55
+ `check:<id>` resource for the full log). The trusted policy text appears once per prompt as UTF-8, marked
56
+ `[trusted-policy:<hash>]`; `shadow_risk` is a summary (tier, reason count and sample, digest) and the
57
+ inventory resource carries hashes and counts. Request `check:<id>` when a log is needed.
58
+
59
+ Windowed sources carry `line_mapping_scope: "windowed"`: their `line_mapping` covers only the delivered
60
+ windows, so a line outside every window is unknown, not new. `base:<path>` / `current:<path>` return the full
61
+ mapping. A renamed file is windowed against its old blob (`renamed_from`); the old path is a `renamed_to` stub.
62
+ The complete `shadow_risk` record is the optional resource `risk:shadow`.
63
+
64
+ ## Shard Capacity
65
+
66
+ Shards are packed to the per-reviewer budget minus a measured overhead (the worst scheduled reviewer's
67
+ rendered prompt, inventory, frozen task artifacts and, for Codex, inlined role rubrics, plus a margin;
68
+ never below 64 KiB), also for unsharded rounds.
69
+
70
+ ## Windowed Large Files
71
+
72
+ A changed text file whose full base+current source resource would exceed `review.full_source_max_bytes`
73
+ (trusted config, default 48 KiB) is a required **windowed** source: its diff hunks plus
74
+ `review.hunk_context_lines` (default 40) numbered lines of base and current context, marked
75
+ `"windowed": true`. Reading it counts as delivery for that file; report it in `covered_files` as usual.
76
+ When the window is not enough to judge a finding, request the optional full content as
77
+ `resource_id` `base:<path>` or `current:<path>` (frozen on first use, same delivery guard as `repo:`;
78
+ never available to diff-only/blind reviewers). Small files, binary/non-UTF-8 files and files without a
79
+ verified base keep the full-content resource. A single file whose windowed hunks still exceed the
80
+ shard capacity fails admission with `file_too_large`; split that change.
81
+
52
82
  ## Sharded Rounds
53
83
 
54
84
  When the required scope does not fit one reviewer's budget, admission plans `row.shards`
55
- (deterministic, directory-aware, disjoint; at most `review.max_shards`, default 8) and returns
85
+ (deterministic, directory-aware, disjoint; at most `review.max_shards`, default 8; the operator-local env `MAP_REVIEW_MAX_SHARDS` (positive int, invalid values ignored) overrides the trusted config and the default, and the `too_many_shards` error hints the exact count needed) and returns
56
86
  `shard_ids`. A single file above the per-shard capacity or more than `max_shards` shards fails
57
87
  admission with `review_context_budget_exceeded` (`reason: file_too_large | too_many_shards`).
58
88
  Unsharded rounds never see any of this.