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