mapify-cli 3.12.1__tar.gz → 3.14.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 (413) hide show
  1. mapify_cli-3.14.0/LICENSE +21 -0
  2. mapify_cli-3.14.0/PKG-INFO +301 -0
  3. mapify_cli-3.14.0/README.md +257 -0
  4. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/pyproject.toml +1 -1
  5. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/__init__.py +24 -18
  6. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/cli_ui.py +3 -1
  7. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/config/mcp.py +1 -14
  8. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/config/project_config.py +24 -1
  9. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/agent_generator.py +8 -37
  10. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/actor.md +62 -47
  11. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +3 -23
  12. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/evaluator.md +180 -123
  13. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/monitor.md +15 -60
  14. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/predictor.md +8 -25
  15. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/reflector.md +1 -18
  16. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/task-decomposer.md +0 -3
  17. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/agents/monitor.toml +6 -0
  18. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +26 -6
  19. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +232 -28
  20. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +228 -22
  21. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +4 -22
  22. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -1
  23. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +12 -14
  24. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +10 -1
  25. mapify_cli-3.14.0/src/mapify_cli/templates/skills/map-review/review-reference.md +69 -0
  26. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +62 -47
  27. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +3 -23
  28. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +180 -123
  29. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +15 -60
  30. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +8 -25
  31. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +1 -18
  32. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +0 -3
  33. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +6 -0
  34. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +26 -6
  35. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +232 -28
  36. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +228 -22
  37. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +4 -22
  38. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -1
  39. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +12 -14
  40. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +10 -1
  41. mapify_cli-3.14.0/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +69 -0
  42. mapify_cli-3.14.0/tests/test_bump_version.py +86 -0
  43. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_decomposition.py +30 -2
  44. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_map_orchestrator.py +72 -0
  45. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_map_step_runner.py +122 -0
  46. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_mapify_cli.py +25 -31
  47. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills.py +59 -0
  48. mapify_cli-3.12.1/PKG-INFO +0 -290
  49. mapify_cli-3.12.1/README.md +0 -247
  50. mapify_cli-3.12.1/src/mapify_cli/templates/skills/map-review/review-reference.md +0 -43
  51. mapify_cli-3.12.1/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +0 -43
  52. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/.claude/hooks/README.md +0 -0
  53. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/.claude/skills/README.md +0 -0
  54. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/.gitignore +0 -0
  55. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/_locking.py +0 -0
  56. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/config/__init__.py +0 -0
  57. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/config/settings.py +0 -0
  58. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/__init__.py +0 -0
  59. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
  60. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/file_copier.py +0 -0
  61. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
  62. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/providers.py +0 -0
  63. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
  64. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/dependency_graph.py +0 -0
  65. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/intent_detector.py +0 -0
  66. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/memory/__init__.py +0 -0
  67. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/memory/capture.py +0 -0
  68. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/memory/digest_schema.py +0 -0
  69. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/memory/finalize.py +0 -0
  70. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/memory/recall.py +0 -0
  71. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/ralph_state.py +0 -0
  72. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/repo_insight.py +0 -0
  73. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/schemas.py +0 -0
  74. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skill_ir.py +0 -0
  75. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
  76. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
  77. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
  78. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
  79. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
  80. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
  81. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
  82. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
  83. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/runner.py +0 -0
  84. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
  85. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/.gitignore +0 -0
  86. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
  87. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/debate-arbiter.md +0 -0
  88. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
  89. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
  90. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/agents/synthesizer.md +0 -0
  91. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
  92. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +0 -0
  93. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
  94. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/config.toml +0 -0
  95. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
  96. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
  97. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
  98. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
  99. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
  100. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
  101. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
  102. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
  103. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/README.md +0 -0
  104. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
  105. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
  106. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
  107. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
  108. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
  109. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
  110. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
  111. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
  112. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/post-compact-context.py +0 -0
  113. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
  114. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
  115. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
  116. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/workflow-context-injector.py +0 -0
  117. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
  118. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
  119. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
  120. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +0 -0
  121. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
  122. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
  123. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
  124. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
  125. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
  126. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
  127. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
  128. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
  129. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
  130. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
  131. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
  132. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
  133. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
  134. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
  135. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
  136. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
  137. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
  138. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
  139. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
  140. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/settings.json +0 -0
  141. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/README.md +0 -0
  142. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
  143. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
  144. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
  145. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +0 -0
  146. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
  147. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
  148. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
  149. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
  150. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
  151. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
  152. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
  153. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
  154. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
  155. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
  156. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
  157. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
  158. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
  159. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
  160. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
  161. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
  162. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
  163. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
  164. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
  165. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
  166. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
  167. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
  168. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
  169. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
  170. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
  171. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
  172. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
  173. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
  174. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
  175. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
  176. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/debate-arbiter.md.jinja +0 -0
  177. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
  178. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
  179. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/agents/synthesizer.md.jinja +0 -0
  180. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
  181. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +0 -0
  182. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
  183. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
  184. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
  185. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
  186. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
  187. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
  188. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
  189. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
  190. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
  191. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
  192. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
  193. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
  194. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
  195. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
  196. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
  197. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
  198. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
  199. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
  200. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
  201. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +0 -0
  202. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
  203. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
  204. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
  205. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +0 -0
  206. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
  207. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
  208. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
  209. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +0 -0
  210. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
  211. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
  212. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
  213. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
  214. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
  215. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
  216. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
  217. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
  218. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
  219. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
  220. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
  221. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
  222. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
  223. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
  224. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
  225. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
  226. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
  227. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
  228. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
  229. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
  230. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
  231. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
  232. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
  233. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
  234. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +0 -0
  235. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
  236. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
  237. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
  238. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
  239. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
  240. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
  241. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
  242. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
  243. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
  244. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
  245. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
  246. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
  247. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
  248. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
  249. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
  250. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
  251. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
  252. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
  253. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
  254. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
  255. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
  256. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
  257. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
  258. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
  259. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
  260. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
  261. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
  262. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
  263. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/token_budget.py +0 -0
  264. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/tools/__init__.py +0 -0
  265. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
  266. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/verification_recorder.py +0 -0
  267. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/workflow_finalizer.py +0 -0
  268. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/workflow_logger.py +0 -0
  269. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/src/mapify_cli/workflow_state.py +0 -0
  270. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/__init__.py +0 -0
  271. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/conftest.py +0 -0
  272. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
  273. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/fixtures/codex/config.toml +0 -0
  274. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
  275. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/hooks/test_end_of_turn.py +0 -0
  276. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
  277. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/hooks/test_safety_guardrails.py +0 -0
  278. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/__init__.py +0 -0
  279. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/blueprint.json +0 -0
  280. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/code_review.md +0 -0
  281. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/plan_handoff.json +0 -0
  282. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/spec.md +0 -0
  283. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
  284. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
  285. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/task_plan.md +0 -0
  286. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/fixtures/verification_summary.md +0 -0
  287. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
  288. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
  289. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/README.md +0 -0
  290. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
  291. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
  292. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
  293. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
  294. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
  295. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
  296. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
  297. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
  298. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
  299. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
  300. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
  301. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
  302. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
  303. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
  304. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
  305. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
  306. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
  307. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
  308. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
  309. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
  310. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
  311. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
  312. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
  313. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
  314. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
  315. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
  316. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
  317. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
  318. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
  319. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
  320. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
  321. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
  322. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
  323. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
  324. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
  325. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
  326. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
  327. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
  328. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
  329. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
  330. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
  331. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
  332. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
  333. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
  334. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
  335. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
  336. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
  337. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
  338. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
  339. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
  340. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
  341. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
  342. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
  343. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
  344. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
  345. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
  346. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
  347. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
  348. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
  349. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
  350. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
  351. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
  352. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
  353. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
  354. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
  355. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
  356. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
  357. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
  358. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
  359. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
  360. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
  361. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
  362. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_agent_cli_correctness.py +0 -0
  363. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_agent_frontmatter.py +0 -0
  364. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_artifact_schemas.py +0 -0
  365. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_dependency_graph.py +0 -0
  366. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_diagnostics.py +0 -0
  367. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_digest_schema.py +0 -0
  368. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_file_copier.py +0 -0
  369. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_hook_patterns.py +0 -0
  370. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_init_import_graph.py +0 -0
  371. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_intent_detector.py +0 -0
  372. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
  373. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_jinja2_dep.py +0 -0
  374. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_locking.py +0 -0
  375. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_managed_file_copier.py +0 -0
  376. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_map_token_meter.py +0 -0
  377. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_map_utils_sanitize.py +0 -0
  378. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_memory_capture.py +0 -0
  379. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_memory_finalize.py +0 -0
  380. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_memory_integration.py +0 -0
  381. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_memory_recall.py +0 -0
  382. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_memory_review_fixes.py +0 -0
  383. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_post_compact_context.py +0 -0
  384. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_ralph_hooks.py +0 -0
  385. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_ralph_state.py +0 -0
  386. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_repo_insight.py +0 -0
  387. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_schemas.py +0 -0
  388. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skill_ir.py +0 -0
  389. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_consistency.py +0 -0
  390. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_aggregator.py +0 -0
  391. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_apply.py +0 -0
  392. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_cli_optimize.py +0 -0
  393. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
  394. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
  395. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_fixtures.py +0 -0
  396. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_optimizer.py +0 -0
  397. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
  398. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_proposer.py +0 -0
  399. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_runner.py +0 -0
  400. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_schema.py +0 -0
  401. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_skills_eval_viewer.py +0 -0
  402. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_sofa_client.py +0 -0
  403. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_sofa_search.py +0 -0
  404. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_template_render.py +0 -0
  405. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_token_budget.py +0 -0
  406. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_validate_dependencies.py +0 -0
  407. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_validate_spec_citations.py +0 -0
  408. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_verification_recorder.py +0 -0
  409. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_workflow_context_injector.py +0 -0
  410. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_workflow_finalizer.py +0 -0
  411. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_workflow_gate.py +0 -0
  412. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_workflow_logger.py +0 -0
  413. {mapify_cli-3.12.1 → mapify_cli-3.14.0}/tests/test_workflow_state.py +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MAP Framework Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,301 @@
1
+ Metadata-Version: 2.4
2
+ Name: mapify-cli
3
+ Version: 3.14.0
4
+ Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
5
+ Project-URL: Homepage, https://github.com/azalio/map-framework
6
+ Project-URL: Repository, https://github.com/azalio/map-framework.git
7
+ Project-URL: Issues, https://github.com/azalio/map-framework/issues
8
+ Author: MAP Framework Contributors
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.11
11
+ Requires-Dist: httpx>=0.25.0
12
+ Requires-Dist: jinja2<4,>=3.1
13
+ Requires-Dist: platformdirs>=4.0.0
14
+ Requires-Dist: questionary>=2.0.0
15
+ Requires-Dist: readchar>=4.0.0
16
+ Requires-Dist: rich>=13.0.0
17
+ Requires-Dist: typer>=0.9.0
18
+ Provides-Extra: dev
19
+ Requires-Dist: black>=23.0.0; extra == 'dev'
20
+ Requires-Dist: hypothesis>=6.0.0; extra == 'dev'
21
+ Requires-Dist: jsonschema>=4.0.0; extra == 'dev'
22
+ Requires-Dist: mypy>=1.0.0; extra == 'dev'
23
+ Requires-Dist: pyright>=1.1.400; extra == 'dev'
24
+ Requires-Dist: pytest-asyncio>=0.26.0; extra == 'dev'
25
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
26
+ Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
27
+ Requires-Dist: pytest-timeout>=2.1.0; extra == 'dev'
28
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
29
+ Requires-Dist: pyyaml>=6.0.0; extra == 'dev'
30
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
31
+ Requires-Dist: truststore>=0.9.0; extra == 'dev'
32
+ Provides-Extra: ssl
33
+ Requires-Dist: truststore>=0.9.0; extra == 'ssl'
34
+ Provides-Extra: test
35
+ Requires-Dist: hypothesis>=6.0.0; extra == 'test'
36
+ Requires-Dist: jsonschema>=4.0.0; extra == 'test'
37
+ Requires-Dist: pytest-asyncio>=0.26.0; extra == 'test'
38
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
39
+ Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
40
+ Requires-Dist: pytest-timeout>=2.1.0; extra == 'test'
41
+ Requires-Dist: pytest>=7.0.0; extra == 'test'
42
+ Requires-Dist: pyyaml>=6.0.0; extra == 'test'
43
+ Description-Content-Type: text/markdown
44
+
45
+ # MAP Framework
46
+
47
+ [![PyPI version](https://badge.fury.io/py/mapify-cli.svg)](https://pypi.org/project/mapify-cli/)
48
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
49
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
50
+ [![GitHub stars](https://img.shields.io/github/stars/azalio/map-framework?style=social)](https://github.com/azalio/map-framework)
51
+
52
+ > **Plan-then-build AI coding for Claude Code & Codex CLI.** `/map-plan` decomposes your task into small, reviewable subtasks you approve *before* any code is written; `/map-efficient` implements the approved plan, subtask by subtask. The AI still writes the code — you keep the architecture, scope, and review.
53
+
54
+ ![MAP in action: /map-plan decomposes the task into reviewable subtasks, /map-efficient implements the approved plan, then /map-check, /map-review, and /map-learn close the loop](docs/demo.gif)
55
+
56
+ ## The MAP loop
57
+
58
+ Most AI agents rush straight to code before they understand the task — so you get fast wrong answers and silent rework. MAP inserts a plan you approve first, then implements it in reviewable steps:
59
+
60
+ ```text
61
+ idea -> prompt -> code -> hope # without MAP
62
+ SPEC -> PLAN -> TEST -> CODE -> REVIEW -> LEARN # with MAP
63
+ ```
64
+
65
+ You drive the whole loop with two core commands plus three gates:
66
+
67
+ ```text
68
+ /map-plan "add rate limiting to the public API" # 1. PLAN — decompose the task; you approve before any code
69
+ /map-efficient # 2. BUILD — implement the approved plan, subtask by subtask
70
+ /map-check # 3. CHECK — quality gates against the plan
71
+ /map-review # 4. REVIEW — semantic review vs spec, tests, and diff
72
+ /map-learn # 5. LEARN — save the gotchas for next session
73
+ ```
74
+
75
+ - **Start with `/map-plan`** for anything non-trivial — it clarifies behavior and splits the work into contract-sized subtasks.
76
+ - **Already scoped?** Go straight to `/map-efficient`.
77
+ - **Tiny edit?** `/map-plan` off-ramps you to a direct edit or `/map-fast` instead of forcing full planning.
78
+
79
+ > Codex CLI users invoke the same skills with `$`: `$map-plan`, `$map-efficient`, `$map-check`. See the [Usage Guide](docs/USAGE.md#codex-cli-provider).
80
+
81
+ ## Quick Start
82
+
83
+ **1. Install**
84
+
85
+ ```bash
86
+ uv tool install mapify-cli
87
+
88
+ # or with pip
89
+ pip install mapify-cli
90
+ ```
91
+
92
+ **2. Initialize your project**
93
+
94
+ Claude Code is the default provider:
95
+
96
+ ```bash
97
+ cd your-project
98
+ mapify init
99
+ claude
100
+ ```
101
+
102
+ Codex CLI is also supported:
103
+
104
+ ```bash
105
+ cd your-project
106
+ mapify init . --provider codex
107
+ codex
108
+ ```
109
+
110
+ Then enable the Codex hook manually: run `/hooks`, select `PreToolUse`, press `t` to toggle it on, then press `Esc`. If your Codex version does not support the `hooks` feature key yet, start it with `codex --enable codex_hooks` or upgrade Codex first (upgrading is recommended).
111
+
112
+ **3. Run the loop**
113
+
114
+ ```text
115
+ /map-plan define the behavior and split the task
116
+ /map-efficient implement the approved plan
117
+ /map-check
118
+ /map-review
119
+ /map-learn
120
+ ```
121
+
122
+ That's the whole golden path. Everything below explains *why* it works and *when* to reach for it.
123
+
124
+ ## Why MAP Exists
125
+
126
+ Ad-hoc prompting feels fast on simple tasks. On complex systems it creates a different problem: code appears quickly, but the engineering process disappears.
127
+
128
+ Common failure modes:
129
+
130
+ - AI silently makes architecture decisions you did not approve.
131
+ - One prompt produces a large diff that is hard to review.
132
+ - Tests are written around the generated implementation, including its mistakes.
133
+ - The output compiles, but you cannot explain why the design is correct.
134
+ - The next session forgets the gotchas you already paid to discover.
135
+
136
+ MAP moves engineering judgment earlier: write down the behavior, split the work into small contracts, verify each stage, review against the spec, and save lessons for the next run.
137
+
138
+ ## When To Use MAP
139
+
140
+ | Good fits | Poor fits |
141
+ |-----------|-----------|
142
+ | Complex backend features | Typos and tiny edits |
143
+ | Kubernetes controllers and operators | Small one-off scripts |
144
+ | Internal platform tooling | Product ideas where the desired behavior is still unknown |
145
+ | API, CRD, or domain-model changes with invariants | Broad rewrites without clear boundaries |
146
+ | Refactoring with a meaningful test harness | Tasks cheaper to do directly than to plan |
147
+
148
+ ## What Success Looks Like
149
+
150
+ After a good first workflow, you should see:
151
+
152
+ - a written plan or spec before implementation starts;
153
+ - small implementation contracts instead of one giant AI diff;
154
+ - verification and review artifacts under `.map/<branch>/`;
155
+ - review comments focused on correctness and semantics, not formatting noise;
156
+ - `/map-learn` preserving project rules, gotchas, and handoffs for future sessions.
157
+
158
+ MAP review is useful, but it is not a replacement for engineering judgment. Serious changes still need human review. The goal is to make that review smaller, earlier, and better grounded.
159
+
160
+ ## Case Study: 90 days → 7 days
161
+
162
+ The DevOpsConf 2026 case study applies this process to a production Kubernetes Project Operator, not a toy CRUD app:
163
+
164
+ - human estimate: **90 days**;
165
+ - MAP-style delivery: **7 days**;
166
+ - workflow: `SPEC -> PLAN -> TEST -> CODE -> REVIEW -> LEARN`;
167
+ - small reviewable PRs instead of one giant generated diff;
168
+ - tests before implementation for critical pieces;
169
+ - semantic bugs caught in review before merge.
170
+
171
+ [DevOpsConf 2026 case study ->](https://github.com/azalio/devopsconf-ai-develop)
172
+
173
+ ## Core Commands
174
+
175
+ | Command | Use For |
176
+ |---------|---------|
177
+ | `/map-plan` | **Start here** for non-trivial work; clarify behavior and decompose tasks |
178
+ | `/map-efficient` | **Implement** an approved plan or already-scoped task |
179
+ | `/map-fast` | Small, low-risk changes where full planning would be overhead |
180
+ | `/map-check` | Quality gates, verification, and artifact checks |
181
+ | `/map-review` | Pre-commit semantic review against the plan, tests, and diff |
182
+ | `/map-learn` | Capture project memory and reusable lessons |
183
+ | `/map-debug` | Bug fixes and debugging |
184
+ | `/map-task` | Execute a single subtask from an existing plan |
185
+ | `/map-tdd` | Test-first implementation workflow |
186
+ | `/map-release` | Package release workflow |
187
+ | `/map-resume` | Resume interrupted workflows |
188
+
189
+ [Detailed usage and options ->](docs/USAGE.md)
190
+
191
+ Canonical MAP flows:
192
+
193
+ - **Standard:** `/map-plan` -> `/map-efficient` -> `/map-check` -> `/map-review` -> `/map-learn`
194
+ - **Full TDD:** `/map-plan` -> `/map-tdd` -> `/map-check` -> `/map-review` -> `/map-learn`
195
+ - **Targeted subtask TDD:** `/map-plan` -> `/map-tdd ST-001` -> `/map-task ST-001` -> ... -> `/map-check` -> `/map-review` -> `/map-learn`
196
+
197
+ These flows maintain branch-scoped artifacts under `.map/<branch>/` — `blueprint.json` (subtask size/concern contracts), `code-review-001.md`, `verification-summary.md`, `pr-draft.md`, run dossiers, and more — so research, review lineage, and verification survive context resets.
198
+
199
+ ## Why Engineers Stick With It
200
+
201
+ - **Daily-driver speed** — optimized for repeated use, not occasional demo workflows. Structured enough to prevent chaos, lightweight enough to keep token and time cost under control.
202
+ - **Reviewable diffs** — `/map-plan` and `/map-efficient` require per-subtask size, concern, and constraint metadata, then validate `blueprint.json` *before* implementation, so oversized or mixed-concern plans fail early instead of surprising reviewers later.
203
+ - **Gates that check the plan, not vibes** — `/map-check` and `/map-review` validate against the spec, tests, and diff instead of asking whether code "looks fine".
204
+ - **Clean-room review** — `/map-review` auto-bundles spec, plan, tests, verification, and coverage evidence into a single durable input (`.map/<branch>/review-bundle.json`); `--detached` opens a read-only worktree for inspection without touching your branch. With `minimality` enabled, review also runs an advisory what-to-delete lens for over-engineering cuts.
205
+ - **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them.
206
+
207
+ <details>
208
+ <summary><b>More under the hood</b> (calibrated effort, mutation boundaries, token budgets, retry quarantine, run-health diagnostics, skill IR audit)</summary>
209
+
210
+ - **Calibrated workflow effort** — each shipped slash skill declares a `thinking_policy` and `parallel_tool_policy`, so lightweight commands stay direct while planning, review, and release workflows reserve deeper reasoning and parallel fan-out for the stages that benefit. Non-release prompts use targeted guardrails instead of blanket all-caps prohibition blocks, reducing over-triggered agents and tool calls while keeping true hard stops explicit.
211
+ - **Mutation boundary constraints** — write-capable Claude and Codex surfaces tell agents not to edit unrelated files, add or upgrade dependencies, or refactor neighboring code unless the current subtask requires it. Broader scope is reported as a blocker or tradeoff instead of silently expanding the diff.
212
+ - **Context-first prompt envelopes** — high-context `/map-plan`, `/map-efficient`, `/map-debug`, and `/map-review` prompts wrap branch artifacts in XML-style `<documents>`, then state the `<task>` and `<expected_output>`, so specs, diffs, logs, and schemas stay separated for the model.
213
+ - **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask; soft constraints can be traded off only with explicit `tradeoff_rationale`.
214
+ - **Token budget report** — Actor and review prompt builders append active-path budget decisions to `.map/<branch>/token_budget.json` (before/after estimated tokens, clipped sections, source artifacts). The operator breadcrumb for diagnosing missing context.
215
+ - **Clean retry quarantine** — after repeated Monitor rejection, write-capable workflows switch the next attempt into clean-retry mode using `.map/<branch>/retry_quarantine.json` (constraints, required evidence, do-not-repeat feedback) instead of raw failed-session context.
216
+ - **Run health report** — workflows write `.map/<branch>/run_health_report.json` during closeout: terminal status, step progress, retry counters, artifact presence, hook-injection status. CI can fail inconsistent closeouts with `python3 .map/scripts/map_step_runner.py validate_run_health_report`.
217
+ - **Compact recovery surface** — `/map-resume` keeps the active recovery flow short and moves low-frequency notes to `resume-reference.md`, so recovery after `/clear` or context exhaustion gives the next checkpoint action without loading the whole appendix.
218
+ - **Skill IR audit** — release checks lower shipped Claude and Codex `SKILL.md` files into a typed `SkillIR`, verify content hashes, catch unsupported frontmatter, reject missing supporting-file links, and block injection-like instructions before `mapify init` copies surfaces into user repos.
219
+
220
+ </details>
221
+
222
+ ## How It Works
223
+
224
+ MAP orchestrates specialized roles through slash commands and skills:
225
+
226
+ ```text
227
+ TaskDecomposer -> breaks goals into subtasks
228
+ Actor -> implements scoped tasks
229
+ Monitor -> validates quality and blocks invalid output
230
+ Predictor -> analyzes impact for risky changes
231
+ Learner -> captures reusable project memory
232
+ ```
233
+
234
+ For Claude Code, MAP slash surfaces live in `.claude/skills/map-*/SKILL.md` files created by `mapify init`. For Codex CLI, `mapify init . --provider codex` creates `.agents/skills/`, `.codex/agents/`, `.codex/config.toml`, hooks, and shared `.map/scripts/`.
235
+
236
+ MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025), which reported a 74% improvement on planning tasks. The CLI turns that idea into a practical software-development workflow.
237
+
238
+ [Architecture deep-dive ->](docs/ARCHITECTURE.md)
239
+
240
+ ## Options
241
+
242
+ <details>
243
+ <summary>Minimality doctrine, context-compression policy, Stack Overflow for Agents (SOFA), and other init flags</summary>
244
+
245
+ **Minimality doctrine** (controls how strongly MAP pushes Actor/Monitor/Evaluator toward the smallest sufficient safe change):
246
+
247
+ ```yaml
248
+ # .map/config.yaml
249
+ minimality: lite # new installs default to lite; existing repos without the key stay off
250
+ ```
251
+
252
+ Allowed values: `off`, `lite`, `full`, `ultra`. Phase 1 ships conservative `lite` defaults: Actor prefers the fewest moving parts, Monitor blocks scope drift only when it affects required behavior, and Evaluator scores simplicity without letting it hide missing required work. `/map-review` also adds an advisory what-to-delete lens when minimality is not `off`; its `net: -N` estimate is informational, not a gate.
253
+
254
+ **Context-compression policy** (controls the `/compact` nudge; default `never` — opt-in):
255
+
256
+ ```bash
257
+ mapify init . --compression never # default — no nudge
258
+ mapify init . --compression auto # nudge at threshold
259
+ mapify init . --compression aggressive # nudge at 0.4 x threshold
260
+ mapify init . --compression-threshold 250000 # Opus 1M / 50+ subtask plans
261
+ ```
262
+
263
+ Actor and reviewer prompts always carry the full bundled context — context-block truncation was removed. If the conversation grows beyond your model's window, opt into `/compact` via `--compression auto` or trigger it manually. See [docs/USAGE.md#context-budget-policy](docs/USAGE.md).
264
+
265
+ **Stack Overflow for Agents (SOFA)** read-only prior-art search — **off by default**, no network or credentials unless you enable it:
266
+
267
+ ```bash
268
+ mapify init . --sofa # opt-in: enable the map-so-search skill
269
+ ```
270
+
271
+ This writes `sofa.enabled: true` to `.map/config.yaml` and adds `.sofa/` to your `.gitignore`. Without the flag, no SOFA code path runs. See the [SOFA usage guide](docs/USAGE.md#stack-overflow-for-agents-sofa).
272
+
273
+ </details>
274
+
275
+ ## Documentation
276
+
277
+ | Guide | Description |
278
+ |-------|-------------|
279
+ | [Installation](docs/INSTALL.md) | All install methods, PATH setup, troubleshooting |
280
+ | [Usage Guide](docs/USAGE.md) | Workflows, examples, cost optimization, playbook |
281
+ | [Architecture](docs/ARCHITECTURE.md) | Agents, MCP integration, customization |
282
+ | [Platform Spec](docs/MAP_PLATFORM_SPEC.md) | Platform refactor roadmap, codebase analysis |
283
+
284
+ ## Trouble?
285
+
286
+ - **Command not found** -> Run `mapify init` in your project first.
287
+ - **Agent errors** -> Check `.claude/agents/` has all shipped agent `.md` files, or run `mapify doctor`.
288
+ - **Poor output on a complex task** -> Start with `/map-plan` and feed `/map-efficient` the approved plan instead of asking it to infer the architecture.
289
+ - [More help ->](docs/INSTALL.md#troubleshooting)
290
+
291
+ ## Contributing
292
+
293
+ Improvements welcome: prompts for specific languages, new agents, provider integrations, and CI/CD workflow support.
294
+
295
+ ## License
296
+
297
+ MIT
298
+
299
+ ---
300
+
301
+ Start with `/map-plan`. Keep the model inside your engineering process, not the other way around.
@@ -0,0 +1,257 @@
1
+ # MAP Framework
2
+
3
+ [![PyPI version](https://badge.fury.io/py/mapify-cli.svg)](https://pypi.org/project/mapify-cli/)
4
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
5
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
6
+ [![GitHub stars](https://img.shields.io/github/stars/azalio/map-framework?style=social)](https://github.com/azalio/map-framework)
7
+
8
+ > **Plan-then-build AI coding for Claude Code & Codex CLI.** `/map-plan` decomposes your task into small, reviewable subtasks you approve *before* any code is written; `/map-efficient` implements the approved plan, subtask by subtask. The AI still writes the code — you keep the architecture, scope, and review.
9
+
10
+ ![MAP in action: /map-plan decomposes the task into reviewable subtasks, /map-efficient implements the approved plan, then /map-check, /map-review, and /map-learn close the loop](docs/demo.gif)
11
+
12
+ ## The MAP loop
13
+
14
+ Most AI agents rush straight to code before they understand the task — so you get fast wrong answers and silent rework. MAP inserts a plan you approve first, then implements it in reviewable steps:
15
+
16
+ ```text
17
+ idea -> prompt -> code -> hope # without MAP
18
+ SPEC -> PLAN -> TEST -> CODE -> REVIEW -> LEARN # with MAP
19
+ ```
20
+
21
+ You drive the whole loop with two core commands plus three gates:
22
+
23
+ ```text
24
+ /map-plan "add rate limiting to the public API" # 1. PLAN — decompose the task; you approve before any code
25
+ /map-efficient # 2. BUILD — implement the approved plan, subtask by subtask
26
+ /map-check # 3. CHECK — quality gates against the plan
27
+ /map-review # 4. REVIEW — semantic review vs spec, tests, and diff
28
+ /map-learn # 5. LEARN — save the gotchas for next session
29
+ ```
30
+
31
+ - **Start with `/map-plan`** for anything non-trivial — it clarifies behavior and splits the work into contract-sized subtasks.
32
+ - **Already scoped?** Go straight to `/map-efficient`.
33
+ - **Tiny edit?** `/map-plan` off-ramps you to a direct edit or `/map-fast` instead of forcing full planning.
34
+
35
+ > Codex CLI users invoke the same skills with `$`: `$map-plan`, `$map-efficient`, `$map-check`. See the [Usage Guide](docs/USAGE.md#codex-cli-provider).
36
+
37
+ ## Quick Start
38
+
39
+ **1. Install**
40
+
41
+ ```bash
42
+ uv tool install mapify-cli
43
+
44
+ # or with pip
45
+ pip install mapify-cli
46
+ ```
47
+
48
+ **2. Initialize your project**
49
+
50
+ Claude Code is the default provider:
51
+
52
+ ```bash
53
+ cd your-project
54
+ mapify init
55
+ claude
56
+ ```
57
+
58
+ Codex CLI is also supported:
59
+
60
+ ```bash
61
+ cd your-project
62
+ mapify init . --provider codex
63
+ codex
64
+ ```
65
+
66
+ Then enable the Codex hook manually: run `/hooks`, select `PreToolUse`, press `t` to toggle it on, then press `Esc`. If your Codex version does not support the `hooks` feature key yet, start it with `codex --enable codex_hooks` or upgrade Codex first (upgrading is recommended).
67
+
68
+ **3. Run the loop**
69
+
70
+ ```text
71
+ /map-plan define the behavior and split the task
72
+ /map-efficient implement the approved plan
73
+ /map-check
74
+ /map-review
75
+ /map-learn
76
+ ```
77
+
78
+ That's the whole golden path. Everything below explains *why* it works and *when* to reach for it.
79
+
80
+ ## Why MAP Exists
81
+
82
+ Ad-hoc prompting feels fast on simple tasks. On complex systems it creates a different problem: code appears quickly, but the engineering process disappears.
83
+
84
+ Common failure modes:
85
+
86
+ - AI silently makes architecture decisions you did not approve.
87
+ - One prompt produces a large diff that is hard to review.
88
+ - Tests are written around the generated implementation, including its mistakes.
89
+ - The output compiles, but you cannot explain why the design is correct.
90
+ - The next session forgets the gotchas you already paid to discover.
91
+
92
+ MAP moves engineering judgment earlier: write down the behavior, split the work into small contracts, verify each stage, review against the spec, and save lessons for the next run.
93
+
94
+ ## When To Use MAP
95
+
96
+ | Good fits | Poor fits |
97
+ |-----------|-----------|
98
+ | Complex backend features | Typos and tiny edits |
99
+ | Kubernetes controllers and operators | Small one-off scripts |
100
+ | Internal platform tooling | Product ideas where the desired behavior is still unknown |
101
+ | API, CRD, or domain-model changes with invariants | Broad rewrites without clear boundaries |
102
+ | Refactoring with a meaningful test harness | Tasks cheaper to do directly than to plan |
103
+
104
+ ## What Success Looks Like
105
+
106
+ After a good first workflow, you should see:
107
+
108
+ - a written plan or spec before implementation starts;
109
+ - small implementation contracts instead of one giant AI diff;
110
+ - verification and review artifacts under `.map/<branch>/`;
111
+ - review comments focused on correctness and semantics, not formatting noise;
112
+ - `/map-learn` preserving project rules, gotchas, and handoffs for future sessions.
113
+
114
+ MAP review is useful, but it is not a replacement for engineering judgment. Serious changes still need human review. The goal is to make that review smaller, earlier, and better grounded.
115
+
116
+ ## Case Study: 90 days → 7 days
117
+
118
+ The DevOpsConf 2026 case study applies this process to a production Kubernetes Project Operator, not a toy CRUD app:
119
+
120
+ - human estimate: **90 days**;
121
+ - MAP-style delivery: **7 days**;
122
+ - workflow: `SPEC -> PLAN -> TEST -> CODE -> REVIEW -> LEARN`;
123
+ - small reviewable PRs instead of one giant generated diff;
124
+ - tests before implementation for critical pieces;
125
+ - semantic bugs caught in review before merge.
126
+
127
+ [DevOpsConf 2026 case study ->](https://github.com/azalio/devopsconf-ai-develop)
128
+
129
+ ## Core Commands
130
+
131
+ | Command | Use For |
132
+ |---------|---------|
133
+ | `/map-plan` | **Start here** for non-trivial work; clarify behavior and decompose tasks |
134
+ | `/map-efficient` | **Implement** an approved plan or already-scoped task |
135
+ | `/map-fast` | Small, low-risk changes where full planning would be overhead |
136
+ | `/map-check` | Quality gates, verification, and artifact checks |
137
+ | `/map-review` | Pre-commit semantic review against the plan, tests, and diff |
138
+ | `/map-learn` | Capture project memory and reusable lessons |
139
+ | `/map-debug` | Bug fixes and debugging |
140
+ | `/map-task` | Execute a single subtask from an existing plan |
141
+ | `/map-tdd` | Test-first implementation workflow |
142
+ | `/map-release` | Package release workflow |
143
+ | `/map-resume` | Resume interrupted workflows |
144
+
145
+ [Detailed usage and options ->](docs/USAGE.md)
146
+
147
+ Canonical MAP flows:
148
+
149
+ - **Standard:** `/map-plan` -> `/map-efficient` -> `/map-check` -> `/map-review` -> `/map-learn`
150
+ - **Full TDD:** `/map-plan` -> `/map-tdd` -> `/map-check` -> `/map-review` -> `/map-learn`
151
+ - **Targeted subtask TDD:** `/map-plan` -> `/map-tdd ST-001` -> `/map-task ST-001` -> ... -> `/map-check` -> `/map-review` -> `/map-learn`
152
+
153
+ These flows maintain branch-scoped artifacts under `.map/<branch>/` — `blueprint.json` (subtask size/concern contracts), `code-review-001.md`, `verification-summary.md`, `pr-draft.md`, run dossiers, and more — so research, review lineage, and verification survive context resets.
154
+
155
+ ## Why Engineers Stick With It
156
+
157
+ - **Daily-driver speed** — optimized for repeated use, not occasional demo workflows. Structured enough to prevent chaos, lightweight enough to keep token and time cost under control.
158
+ - **Reviewable diffs** — `/map-plan` and `/map-efficient` require per-subtask size, concern, and constraint metadata, then validate `blueprint.json` *before* implementation, so oversized or mixed-concern plans fail early instead of surprising reviewers later.
159
+ - **Gates that check the plan, not vibes** — `/map-check` and `/map-review` validate against the spec, tests, and diff instead of asking whether code "looks fine".
160
+ - **Clean-room review** — `/map-review` auto-bundles spec, plan, tests, verification, and coverage evidence into a single durable input (`.map/<branch>/review-bundle.json`); `--detached` opens a read-only worktree for inspection without touching your branch. With `minimality` enabled, review also runs an advisory what-to-delete lens for over-engineering cuts.
161
+ - **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them.
162
+
163
+ <details>
164
+ <summary><b>More under the hood</b> (calibrated effort, mutation boundaries, token budgets, retry quarantine, run-health diagnostics, skill IR audit)</summary>
165
+
166
+ - **Calibrated workflow effort** — each shipped slash skill declares a `thinking_policy` and `parallel_tool_policy`, so lightweight commands stay direct while planning, review, and release workflows reserve deeper reasoning and parallel fan-out for the stages that benefit. Non-release prompts use targeted guardrails instead of blanket all-caps prohibition blocks, reducing over-triggered agents and tool calls while keeping true hard stops explicit.
167
+ - **Mutation boundary constraints** — write-capable Claude and Codex surfaces tell agents not to edit unrelated files, add or upgrade dependencies, or refactor neighboring code unless the current subtask requires it. Broader scope is reported as a blocker or tradeoff instead of silently expanding the diff.
168
+ - **Context-first prompt envelopes** — high-context `/map-plan`, `/map-efficient`, `/map-debug`, and `/map-review` prompts wrap branch artifacts in XML-style `<documents>`, then state the `<task>` and `<expected_output>`, so specs, diffs, logs, and schemas stay separated for the model.
169
+ - **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask; soft constraints can be traded off only with explicit `tradeoff_rationale`.
170
+ - **Token budget report** — Actor and review prompt builders append active-path budget decisions to `.map/<branch>/token_budget.json` (before/after estimated tokens, clipped sections, source artifacts). The operator breadcrumb for diagnosing missing context.
171
+ - **Clean retry quarantine** — after repeated Monitor rejection, write-capable workflows switch the next attempt into clean-retry mode using `.map/<branch>/retry_quarantine.json` (constraints, required evidence, do-not-repeat feedback) instead of raw failed-session context.
172
+ - **Run health report** — workflows write `.map/<branch>/run_health_report.json` during closeout: terminal status, step progress, retry counters, artifact presence, hook-injection status. CI can fail inconsistent closeouts with `python3 .map/scripts/map_step_runner.py validate_run_health_report`.
173
+ - **Compact recovery surface** — `/map-resume` keeps the active recovery flow short and moves low-frequency notes to `resume-reference.md`, so recovery after `/clear` or context exhaustion gives the next checkpoint action without loading the whole appendix.
174
+ - **Skill IR audit** — release checks lower shipped Claude and Codex `SKILL.md` files into a typed `SkillIR`, verify content hashes, catch unsupported frontmatter, reject missing supporting-file links, and block injection-like instructions before `mapify init` copies surfaces into user repos.
175
+
176
+ </details>
177
+
178
+ ## How It Works
179
+
180
+ MAP orchestrates specialized roles through slash commands and skills:
181
+
182
+ ```text
183
+ TaskDecomposer -> breaks goals into subtasks
184
+ Actor -> implements scoped tasks
185
+ Monitor -> validates quality and blocks invalid output
186
+ Predictor -> analyzes impact for risky changes
187
+ Learner -> captures reusable project memory
188
+ ```
189
+
190
+ For Claude Code, MAP slash surfaces live in `.claude/skills/map-*/SKILL.md` files created by `mapify init`. For Codex CLI, `mapify init . --provider codex` creates `.agents/skills/`, `.codex/agents/`, `.codex/config.toml`, hooks, and shared `.map/scripts/`.
191
+
192
+ MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025), which reported a 74% improvement on planning tasks. The CLI turns that idea into a practical software-development workflow.
193
+
194
+ [Architecture deep-dive ->](docs/ARCHITECTURE.md)
195
+
196
+ ## Options
197
+
198
+ <details>
199
+ <summary>Minimality doctrine, context-compression policy, Stack Overflow for Agents (SOFA), and other init flags</summary>
200
+
201
+ **Minimality doctrine** (controls how strongly MAP pushes Actor/Monitor/Evaluator toward the smallest sufficient safe change):
202
+
203
+ ```yaml
204
+ # .map/config.yaml
205
+ minimality: lite # new installs default to lite; existing repos without the key stay off
206
+ ```
207
+
208
+ Allowed values: `off`, `lite`, `full`, `ultra`. Phase 1 ships conservative `lite` defaults: Actor prefers the fewest moving parts, Monitor blocks scope drift only when it affects required behavior, and Evaluator scores simplicity without letting it hide missing required work. `/map-review` also adds an advisory what-to-delete lens when minimality is not `off`; its `net: -N` estimate is informational, not a gate.
209
+
210
+ **Context-compression policy** (controls the `/compact` nudge; default `never` — opt-in):
211
+
212
+ ```bash
213
+ mapify init . --compression never # default — no nudge
214
+ mapify init . --compression auto # nudge at threshold
215
+ mapify init . --compression aggressive # nudge at 0.4 x threshold
216
+ mapify init . --compression-threshold 250000 # Opus 1M / 50+ subtask plans
217
+ ```
218
+
219
+ Actor and reviewer prompts always carry the full bundled context — context-block truncation was removed. If the conversation grows beyond your model's window, opt into `/compact` via `--compression auto` or trigger it manually. See [docs/USAGE.md#context-budget-policy](docs/USAGE.md).
220
+
221
+ **Stack Overflow for Agents (SOFA)** read-only prior-art search — **off by default**, no network or credentials unless you enable it:
222
+
223
+ ```bash
224
+ mapify init . --sofa # opt-in: enable the map-so-search skill
225
+ ```
226
+
227
+ This writes `sofa.enabled: true` to `.map/config.yaml` and adds `.sofa/` to your `.gitignore`. Without the flag, no SOFA code path runs. See the [SOFA usage guide](docs/USAGE.md#stack-overflow-for-agents-sofa).
228
+
229
+ </details>
230
+
231
+ ## Documentation
232
+
233
+ | Guide | Description |
234
+ |-------|-------------|
235
+ | [Installation](docs/INSTALL.md) | All install methods, PATH setup, troubleshooting |
236
+ | [Usage Guide](docs/USAGE.md) | Workflows, examples, cost optimization, playbook |
237
+ | [Architecture](docs/ARCHITECTURE.md) | Agents, MCP integration, customization |
238
+ | [Platform Spec](docs/MAP_PLATFORM_SPEC.md) | Platform refactor roadmap, codebase analysis |
239
+
240
+ ## Trouble?
241
+
242
+ - **Command not found** -> Run `mapify init` in your project first.
243
+ - **Agent errors** -> Check `.claude/agents/` has all shipped agent `.md` files, or run `mapify doctor`.
244
+ - **Poor output on a complex task** -> Start with `/map-plan` and feed `/map-efficient` the approved plan instead of asking it to infer the architecture.
245
+ - [More help ->](docs/INSTALL.md#troubleshooting)
246
+
247
+ ## Contributing
248
+
249
+ Improvements welcome: prompts for specific languages, new agents, provider integrations, and CI/CD workflow support.
250
+
251
+ ## License
252
+
253
+ MIT
254
+
255
+ ---
256
+
257
+ Start with `/map-plan`. Keep the model inside your engineering process, not the other way around.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mapify-cli"
3
- version = "3.12.1"
3
+ version = "3.14.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"