mapify-cli 3.1.0__tar.gz → 3.2.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 (101) hide show
  1. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/.claude/skills/README.md +4 -4
  2. mapify_cli-3.2.0/PKG-INFO +134 -0
  3. mapify_cli-3.2.0/README.md +102 -0
  4. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/pyproject.toml +1 -1
  5. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/__init__.py +51 -47
  6. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/entity_extractor.py +7 -2
  7. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/schemas.py +2 -2
  8. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/actor.md +34 -11
  9. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/debate-arbiter.md +1 -1
  10. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +1 -1
  11. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/final-verifier.md +8 -8
  12. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/monitor.md +27 -2
  13. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/predictor.md +28 -6
  14. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/reflector.md +3 -1
  15. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/research-agent.md +1 -1
  16. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/task-decomposer.md +5 -1
  17. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-check.md +8 -8
  18. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-debate.md +15 -17
  19. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-debug.md +1 -1
  20. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-efficient.md +82 -38
  21. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-fast.md +2 -3
  22. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-learn.md +2 -2
  23. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-plan.md +23 -18
  24. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-release.md +9 -17
  25. mapify_cli-3.2.0/src/mapify_cli/templates/commands/map-resume.md +454 -0
  26. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/commands/map-review.md +19 -17
  27. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/post-edit-reminder.py +13 -2
  28. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +1 -0
  29. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +1 -0
  30. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/workflow-context-injector.py +12 -2
  31. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/workflow-gate.py +12 -3
  32. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +7 -1
  33. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +327 -15
  34. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +5 -5
  35. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/step-state-schema.md +6 -7
  36. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/workflow-state-schema.md +1 -1
  37. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/settings.hooks.json +2 -2
  38. mapify_cli-3.2.0/src/mapify_cli/templates/settings.json +38 -0
  39. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/README.md +4 -4
  40. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-cli-reference/SKILL.md +61 -1
  41. mapify_cli-3.2.0/src/mapify_cli/templates/skills/map-cli-reference/scripts/check-command.sh +126 -0
  42. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/SKILL.md +72 -9
  43. mapify_cli-3.2.0/src/mapify_cli/templates/skills/map-planning/scripts/get-plan-path.sh +40 -0
  44. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/scripts/init-session.sh +14 -9
  45. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/SKILL.md +141 -151
  46. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/agent-architecture.md +52 -19
  47. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-efficient-deep-dive.md +39 -36
  48. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-fast-deep-dive.md +14 -9
  49. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-feature-deep-dive.md +4 -0
  50. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-refactor-deep-dive.md +4 -0
  51. mapify_cli-3.2.0/src/mapify_cli/templates/skills/map-workflows-guide/scripts/validate-workflow-choice.py +159 -0
  52. mapify_cli-3.2.0/src/mapify_cli/templates/skills/skill-rules.json +76 -0
  53. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/workflow-rules.json +27 -28
  54. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/verification_recorder.py +11 -8
  55. mapify_cli-3.1.0/PKG-INFO +0 -33
  56. mapify_cli-3.1.0/README.md +0 -1
  57. mapify_cli-3.1.0/src/mapify_cli/templates/commands/map-resume.md +0 -423
  58. mapify_cli-3.1.0/src/mapify_cli/templates/settings.json +0 -38
  59. mapify_cli-3.1.0/src/mapify_cli/templates/skills/map-planning/scripts/get-plan-path.sh +0 -35
  60. mapify_cli-3.1.0/src/mapify_cli/templates/skills/skill-rules.json +0 -29
  61. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/.gitignore +0 -0
  62. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/contradiction_detector.py +0 -0
  63. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/dependency_graph.py +0 -0
  64. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/graph_query.py +0 -0
  65. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/intent_detector.py +0 -0
  66. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/ralph_state.py +0 -0
  67. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/relationship_detector.py +0 -0
  68. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/repo_insight.py +0 -0
  69. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
  70. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/curator.md +0 -0
  71. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
  72. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/agents/synthesizer.md +0 -0
  73. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/block-dangerous.sh +0 -0
  74. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/block-secrets.py +0 -0
  75. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
  76. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/improve-prompt.py +0 -0
  77. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
  78. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
  79. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
  80. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
  81. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
  82. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
  83. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
  84. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
  85. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
  86. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
  87. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
  88. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
  89. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/scripts/check-complete.sh +0 -0
  90. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/scripts/show-focus.sh +0 -0
  91. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/templates/findings.md +0 -0
  92. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/templates/iteration_history.md +0 -0
  93. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/templates/progress.md +0 -0
  94. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-planning/templates/task_plan.md +0 -0
  95. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-debug-deep-dive.md +0 -0
  96. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/templates/skills/map-workflows-guide/resources/playbook-system.md +0 -0
  97. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/tools/__init__.py +0 -0
  98. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
  99. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/workflow_finalizer.py +0 -0
  100. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/workflow_logger.py +0 -0
  101. {mapify_cli-3.1.0 → mapify_cli-3.2.0}/src/mapify_cli/workflow_state.py +0 -0
@@ -34,7 +34,7 @@ Skills provide specialized guidance without executing code. They help users unde
34
34
 
35
35
  **Content:**
36
36
  - Quick decision tree (5 questions)
37
- - Workflow comparison matrix (5 workflows)
37
+ - Workflow comparison matrix (4 implemented + 2 planned)
38
38
  - Detailed workflow descriptions
39
39
  - Agent architecture overview
40
40
  - 8 deep-dive resource files
@@ -50,10 +50,10 @@ MAP: [Shows decision tree and comparison matrix]
50
50
  **Resources available:**
51
51
  - `map-fast-deep-dive.md` - When (not) to use /map-fast
52
52
  - `map-efficient-deep-dive.md` - Optimization strategies
53
- - `map-feature-deep-dive.md` - Full validation workflow
54
53
  - `map-debug-deep-dive.md` - Debugging techniques
55
- - `map-refactor-deep-dive.md` - Dependency analysis
56
- - `agent-architecture.md` - How 8 agents orchestrate
54
+ - `map-feature-deep-dive.md` - Full validation workflow (PLANNED)
55
+ - `map-refactor-deep-dive.md` - Dependency analysis (PLANNED)
56
+ - `agent-architecture.md` - How 12 agents orchestrate
57
57
  - `playbook-system.md` - Knowledge storage and search
58
58
 
59
59
  ---
@@ -0,0 +1,134 @@
1
+ Metadata-Version: 2.4
2
+ Name: mapify-cli
3
+ Version: 3.2.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
+ Requires-Python: >=3.11
10
+ Requires-Dist: httpx>=0.25.0
11
+ Requires-Dist: platformdirs>=4.0.0
12
+ Requires-Dist: questionary>=2.0.0
13
+ Requires-Dist: readchar>=4.0.0
14
+ Requires-Dist: rich>=13.0.0
15
+ Requires-Dist: typer>=0.9.0
16
+ Provides-Extra: dev
17
+ Requires-Dist: black>=23.0.0; extra == 'dev'
18
+ Requires-Dist: mypy>=1.0.0; extra == 'dev'
19
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
20
+ Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
21
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
22
+ Requires-Dist: pyyaml>=6.0.0; extra == 'dev'
23
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
24
+ Provides-Extra: ssl
25
+ Requires-Dist: truststore>=0.9.0; extra == 'ssl'
26
+ Provides-Extra: test
27
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
28
+ Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
29
+ Requires-Dist: pytest>=7.0.0; extra == 'test'
30
+ Requires-Dist: pyyaml>=6.0.0; extra == 'test'
31
+ Description-Content-Type: text/markdown
32
+
33
+ # MAP Framework for Claude Code
34
+
35
+ [![PyPI version](https://badge.fury.io/py/mapify-cli.svg)](https://pypi.org/project/mapify-cli/)
36
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
37
+
38
+ > Structured AI development workflows that replace ad-hoc prompting with **plan → execute → validate** loops.
39
+
40
+ Based on [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025) — 74% improvement in planning tasks.
41
+
42
+ ## Why MAP?
43
+
44
+ - **Structured workflows** — 12 specialized agents instead of single-prompt chaos
45
+ - **Quality gates** — automatic validation catches errors before they compound
46
+ - **40-60% cost savings** — prevents circular reasoning and scope creep
47
+ - **Learning system** — captures patterns for reuse across projects
48
+
49
+ ## Quick Start
50
+
51
+ **1. Install**
52
+ ```bash
53
+ uv tool install mapify-cli
54
+
55
+ # or with pip
56
+ pip install mapify-cli
57
+ ```
58
+
59
+ **2. Initialize** (in your project)
60
+ ```bash
61
+ cd your-project
62
+ mapify init
63
+ ```
64
+
65
+ **3. Start Claude Code and run your first workflow**
66
+ ```bash
67
+ claude
68
+ ```
69
+ ```
70
+ /map-efficient implement user authentication with JWT tokens
71
+ ```
72
+
73
+ **You'll know it's working when:** Claude spawns specialized agents (TaskDecomposer → Actor → Monitor) with structured output instead of freeform responses.
74
+
75
+ ## Core Commands
76
+
77
+ | Command | Use For |
78
+ |---------|---------|
79
+ | `/map-efficient` | Production features, refactoring, complex tasks (recommended) |
80
+ | `/map-debug` | Bug fixes and debugging |
81
+ | `/map-fast` | Small, low-risk changes |
82
+ | `/map-debate` | Complex decisions with multi-variant synthesis |
83
+ | `/map-review` | Pre-commit code review |
84
+ | `/map-check` | Quality gates and verification |
85
+ | `/map-plan` | Task decomposition without implementation |
86
+ | `/map-release` | Package release workflow |
87
+ | `/map-resume` | Resume interrupted workflows |
88
+ | `/map-learn` | Extract lessons after workflow completion |
89
+
90
+ [Detailed usage and options →](docs/USAGE.md)
91
+
92
+ ## How It Works
93
+
94
+ MAP orchestrates specialized agents through slash commands:
95
+
96
+ ```
97
+ TaskDecomposer → breaks goal into subtasks
98
+
99
+ Actor → generates code
100
+
101
+ Monitor → validates quality (loop if needed)
102
+
103
+ Predictor → analyzes impact (for risky changes)
104
+ ```
105
+
106
+ The orchestration lives in `.claude/commands/map-*.md` prompts created by `mapify init`.
107
+
108
+ [Architecture deep-dive →](docs/ARCHITECTURE.md)
109
+
110
+ ## Documentation
111
+
112
+ | Guide | Description |
113
+ |-------|-------------|
114
+ | [Installation](docs/INSTALL.md) | All install methods, PATH setup, troubleshooting |
115
+ | [Usage Guide](docs/USAGE.md) | Workflows, examples, cost optimization, playbook |
116
+ | [Architecture](docs/ARCHITECTURE.md) | Agents, MCP integration, customization |
117
+
118
+ ## Trouble?
119
+
120
+ - **Command not found** → Run `mapify init` in your project first
121
+ - **Agent errors** → Check `.claude/agents/` has all 12 `.md` files
122
+ - [More help →](docs/INSTALL.md#troubleshooting)
123
+
124
+ ## Contributing
125
+
126
+ Improvements welcome: prompts for specific languages, new agents, CI/CD integrations.
127
+
128
+ ## License
129
+
130
+ MIT
131
+
132
+ ---
133
+
134
+ **MAP brings structure to AI-assisted development.** Start with `/map-efficient` and see the difference.
@@ -0,0 +1,102 @@
1
+ # MAP Framework for Claude Code
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
+
6
+ > Structured AI development workflows that replace ad-hoc prompting with **plan → execute → validate** loops.
7
+
8
+ Based on [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025) — 74% improvement in planning tasks.
9
+
10
+ ## Why MAP?
11
+
12
+ - **Structured workflows** — 12 specialized agents instead of single-prompt chaos
13
+ - **Quality gates** — automatic validation catches errors before they compound
14
+ - **40-60% cost savings** — prevents circular reasoning and scope creep
15
+ - **Learning system** — captures patterns for reuse across projects
16
+
17
+ ## Quick Start
18
+
19
+ **1. Install**
20
+ ```bash
21
+ uv tool install mapify-cli
22
+
23
+ # or with pip
24
+ pip install mapify-cli
25
+ ```
26
+
27
+ **2. Initialize** (in your project)
28
+ ```bash
29
+ cd your-project
30
+ mapify init
31
+ ```
32
+
33
+ **3. Start Claude Code and run your first workflow**
34
+ ```bash
35
+ claude
36
+ ```
37
+ ```
38
+ /map-efficient implement user authentication with JWT tokens
39
+ ```
40
+
41
+ **You'll know it's working when:** Claude spawns specialized agents (TaskDecomposer → Actor → Monitor) with structured output instead of freeform responses.
42
+
43
+ ## Core Commands
44
+
45
+ | Command | Use For |
46
+ |---------|---------|
47
+ | `/map-efficient` | Production features, refactoring, complex tasks (recommended) |
48
+ | `/map-debug` | Bug fixes and debugging |
49
+ | `/map-fast` | Small, low-risk changes |
50
+ | `/map-debate` | Complex decisions with multi-variant synthesis |
51
+ | `/map-review` | Pre-commit code review |
52
+ | `/map-check` | Quality gates and verification |
53
+ | `/map-plan` | Task decomposition without implementation |
54
+ | `/map-release` | Package release workflow |
55
+ | `/map-resume` | Resume interrupted workflows |
56
+ | `/map-learn` | Extract lessons after workflow completion |
57
+
58
+ [Detailed usage and options →](docs/USAGE.md)
59
+
60
+ ## How It Works
61
+
62
+ MAP orchestrates specialized agents through slash commands:
63
+
64
+ ```
65
+ TaskDecomposer → breaks goal into subtasks
66
+
67
+ Actor → generates code
68
+
69
+ Monitor → validates quality (loop if needed)
70
+
71
+ Predictor → analyzes impact (for risky changes)
72
+ ```
73
+
74
+ The orchestration lives in `.claude/commands/map-*.md` prompts created by `mapify init`.
75
+
76
+ [Architecture deep-dive →](docs/ARCHITECTURE.md)
77
+
78
+ ## Documentation
79
+
80
+ | Guide | Description |
81
+ |-------|-------------|
82
+ | [Installation](docs/INSTALL.md) | All install methods, PATH setup, troubleshooting |
83
+ | [Usage Guide](docs/USAGE.md) | Workflows, examples, cost optimization, playbook |
84
+ | [Architecture](docs/ARCHITECTURE.md) | Agents, MCP integration, customization |
85
+
86
+ ## Trouble?
87
+
88
+ - **Command not found** → Run `mapify init` in your project first
89
+ - **Agent errors** → Check `.claude/agents/` has all 12 `.md` files
90
+ - [More help →](docs/INSTALL.md#troubleshooting)
91
+
92
+ ## Contributing
93
+
94
+ Improvements welcome: prompts for specific languages, new agents, CI/CD integrations.
95
+
96
+ ## License
97
+
98
+ MIT
99
+
100
+ ---
101
+
102
+ **MAP brings structure to AI-assisted development.** Start with `/map-efficient` and see the difference.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mapify-cli"
3
- version = "3.1.0"
3
+ version = "3.2.0"
4
4
  description = "MAP Framework installer - Modular Agentic Planner for Claude Code"
5
5
  authors = [{ name = "MAP Framework Contributors" }]
6
6
  readme = "README.md"
@@ -23,7 +23,7 @@ Or install globally:
23
23
  mapify check
24
24
  """
25
25
 
26
- __version__ = "3.1.0"
26
+ __version__ = "3.2.0"
27
27
 
28
28
  import copy
29
29
  import os
@@ -1195,38 +1195,39 @@ def configure_global_permissions() -> None:
1195
1195
  # Default permissions for read-only commands
1196
1196
  default_permissions = {
1197
1197
  "allow": [
1198
- "Bash(git status:*)",
1199
- "Bash(git log:*)",
1200
- "Bash(git diff:*)",
1201
- "Bash(git show:*)",
1202
- "Bash(git check-ignore:*)",
1203
- "Bash(git branch --show-current:*)",
1204
- "Bash(git branch -a:*)",
1205
- "Bash(git ls-files:*)",
1206
- "Bash(ls :*)",
1207
- "Bash(cat :*)",
1208
- "Bash(head :*)",
1209
- "Bash(tail :*)",
1210
- "Bash(wc :*)",
1211
- "Bash(grep :*)",
1212
- "Bash(find :*)",
1213
- "Bash(sort :*)",
1214
- "Bash(uniq :*)",
1215
- "Bash(jq :*)",
1216
- "Bash(which :*)",
1217
- "Bash(echo :*)",
1218
- "Bash(pwd:*)",
1219
- "Bash(whoami:*)",
1220
- "Bash(ruby -c :*)",
1221
- "Bash(go fmt /tmp/:*)",
1222
- "Bash(gofmt -l :*)",
1223
- "Bash(gofmt -d :*)",
1224
- "Bash(go vet :*)",
1225
- "Bash(go build:*)",
1226
- "Bash(go test -c:*)",
1227
- "Bash(go mod download:*)",
1228
- "Bash(go mod tidy:*)",
1229
- "Bash(chmod +x:*)",
1198
+ "Bash(git status *)",
1199
+ "Bash(git log *)",
1200
+ "Bash(git diff *)",
1201
+ "Bash(git show *)",
1202
+ "Bash(git check-ignore *)",
1203
+ "Bash(git branch --show-current *)",
1204
+ "Bash(git branch -a *)",
1205
+ "Bash(git rev-parse *)",
1206
+ "Bash(git ls-files *)",
1207
+ "Bash(ls *)",
1208
+ "Bash(cat *)",
1209
+ "Bash(head *)",
1210
+ "Bash(tail *)",
1211
+ "Bash(wc *)",
1212
+ "Bash(grep *)",
1213
+ "Bash(find *)",
1214
+ "Bash(sort *)",
1215
+ "Bash(uniq *)",
1216
+ "Bash(jq *)",
1217
+ "Bash(which *)",
1218
+ "Bash(echo *)",
1219
+ "Bash(pwd *)",
1220
+ "Bash(whoami *)",
1221
+ "Bash(ruby -c *)",
1222
+ "Bash(go fmt /tmp/ *)",
1223
+ "Bash(gofmt -l *)",
1224
+ "Bash(gofmt -d *)",
1225
+ "Bash(go vet *)",
1226
+ "Bash(go build *)",
1227
+ "Bash(go test -c *)",
1228
+ "Bash(go mod download *)",
1229
+ "Bash(go mod tidy *)",
1230
+ "Bash(chmod +x *)",
1230
1231
  "Read(//Users/**)",
1231
1232
  "Read(//private/tmp/**)",
1232
1233
  "Glob(**)",
@@ -1292,19 +1293,19 @@ def create_or_merge_project_settings_local(project_path: Path) -> None:
1292
1293
  # SourceCraft MCP helpers (project-scoped)
1293
1294
  "mcp__sourcecraft__list_pull_request_comments",
1294
1295
  # Common safe Go workflows (project-scoped)
1295
- "Bash(go test:*)",
1296
- "Bash(go test -c:*)",
1297
- "Bash(go vet :*)",
1298
- "Bash(go build:*)",
1299
- "Bash(go mod download:*)",
1300
- "Bash(go mod tidy:*)",
1301
- "Bash(gofmt -l :*)",
1302
- "Bash(gofmt -d :*)",
1296
+ "Bash(go test *)",
1297
+ "Bash(go test -c *)",
1298
+ "Bash(go vet *)",
1299
+ "Bash(go build *)",
1300
+ "Bash(go mod download *)",
1301
+ "Bash(go mod tidy *)",
1302
+ "Bash(gofmt -l *)",
1303
+ "Bash(gofmt -d *)",
1303
1304
  # Common safe Make targets
1304
1305
  "Bash(make generate manifests)",
1305
1306
  "Bash(make manifests)",
1306
1307
  # Common git workflows
1307
- "Bash(git worktree add:*)",
1308
+ "Bash(git worktree add *)",
1308
1309
  # Used by some test/dev scripts to produce temporary dev certs
1309
1310
  'Bash(openssl req -x509 -newkey rsa:512 -keyout /dev/null -out /dev/stdout -days 365 -nodes -subj "/CN=test" 2>/dev/null)',
1310
1311
  ],
@@ -1369,10 +1370,13 @@ def create_mcp_config(project_path: Path, mcp_servers: List[str]) -> None:
1369
1370
  "monitor": [],
1370
1371
  "predictor": [],
1371
1372
  "evaluator": [],
1372
- "orchestrator": [],
1373
1373
  "reflector": [],
1374
1374
  "curator": [],
1375
1375
  "documentation-reviewer": [],
1376
+ "debate-arbiter": [],
1377
+ "synthesizer": [],
1378
+ "research-agent": [],
1379
+ "final-verifier": [],
1376
1380
  },
1377
1381
  "workflow_settings": {
1378
1382
  "always_retrieve_knowledge": True,
@@ -1426,14 +1430,14 @@ def create_mcp_config(project_path: Path, mcp_servers: List[str]) -> None:
1426
1430
  "task-decomposer",
1427
1431
  "monitor",
1428
1432
  "evaluator",
1429
- "orchestrator",
1430
1433
  "reflector",
1434
+ "debate-arbiter",
1431
1435
  ]:
1432
1436
  if agent in config["agent_mcp_mappings"]:
1433
1437
  config["agent_mcp_mappings"][agent].append("sequential-thinking")
1434
1438
 
1435
1439
  if "claude-reviewer" in mcp_servers:
1436
- for agent in ["monitor", "evaluator", "orchestrator"]:
1440
+ for agent in ["monitor", "evaluator", "final-verifier"]:
1437
1441
  if agent in config["agent_mcp_mappings"]:
1438
1442
  config["agent_mcp_mappings"][agent].append("claude-reviewer")
1439
1443
 
@@ -2089,12 +2093,12 @@ def init(
2089
2093
  tracker.add("create-agents", "Create MAP agents")
2090
2094
  tracker.start("create-agents")
2091
2095
  create_agent_files(project_path, selected_mcp_servers)
2092
- tracker.complete("create-agents", "8 agents")
2096
+ tracker.complete("create-agents", "12 agents")
2093
2097
 
2094
2098
  tracker.add("create-commands", "Create slash commands")
2095
2099
  tracker.start("create-commands")
2096
2100
  create_command_files(project_path)
2097
- tracker.complete("create-commands", "4 commands")
2101
+ tracker.complete("create-commands", "10 commands")
2098
2102
 
2099
2103
  tracker.add("create-skills", "Create skills")
2100
2104
  tracker.start("create-skills")
@@ -283,9 +283,14 @@ class EntityExtractor:
283
283
  "trunk-based": "trunk-based-development",
284
284
  "code-review": "code-review-process",
285
285
  "pair-programming": "pair-programming",
286
- "map-feature": "map-feature-workflow",
286
+ "map-efficient": "map-efficient-workflow",
287
+ "map-fast": "map-fast-workflow",
287
288
  "map-debug": "map-debug-workflow",
288
- "map-refactor": "map-refactor-workflow",
289
+ "map-debate": "map-debate-workflow",
290
+ "map-review": "map-review-workflow",
291
+ "map-plan": "map-plan-workflow",
292
+ "map-check": "map-check-workflow",
293
+ "map-release": "map-release-workflow",
289
294
  "agile": "agile-methodology",
290
295
  "scrum": "scrum-framework",
291
296
  "kanban": "kanban-method",
@@ -217,8 +217,8 @@ STATE_ARTIFACT_SCHEMA = {
217
217
  "properties": {
218
218
  "workflow": {
219
219
  "type": "string",
220
- "description": "Type of MAP workflow (e.g., 'map-efficient', 'map-debug', 'map-feature')",
221
- "examples": ["map-efficient", "map-debug", "map-feature", "map-refactor"],
220
+ "description": "Type of MAP workflow (e.g., 'map-efficient', 'map-debug', 'map-fast')",
221
+ "examples": ["map-efficient", "map-debug", "map-fast"],
222
222
  },
223
223
  "terminal_status": {
224
224
  "type": "string",
@@ -271,15 +271,15 @@ Task(
271
271
 
272
272
  # Required Output Structure
273
273
 
274
- **CRITICAL: Actor outputs CODE AS TEXT, NOT file edits**
274
+ **Actor applies code directly using Edit/Write tools.**
275
275
 
276
- You are a **proposal generator**, NOT a code executor. Your output is reviewed by Monitor before application.
276
+ You are a code implementer. Read affected files, then apply changes with Edit/Write tools.
277
+ Monitor will validate the written code afterward.
277
278
 
278
- - DO: Output complete code in markdown code blocks
279
- - NEVER: Use Edit, Write, or MultiEdit tools
280
- - NEVER: Modify files directly
281
- - 📋 WHY: workflow-gate.py will BLOCK Edit/Write until actor+monitor steps complete
282
- - 🔄 FLOW: You output → Monitor reviews → Orchestrator applies with Edit/Write
279
+ - Use Edit tool for modifying existing files
280
+ - Use Write tool for creating new files
281
+ - Read files before editing to understand current state
282
+ - Apply changes incrementally one logical change per Edit call
283
283
 
284
284
  ---
285
285
 
@@ -422,7 +422,7 @@ Only include if changes affect:
422
422
  ## Pre-Submission Checklist
423
423
 
424
424
  ### Code Quality (Mandatory)
425
- - [ ] Follows {{standards_url}} style guide
425
+ - [ ] Follows {{standards_doc}} style guide
426
426
  - [ ] Complete implementations (no placeholders, no `...`)
427
427
  - [ ] Self-documenting names (clear variables/functions)
428
428
  - [ ] Comments for complex logic only
@@ -502,6 +502,29 @@ When assessing performance impact, use these as default baselines unless project
502
502
 
503
503
  **Protocol**: Document rationale → Add TODO if needed → Proceed
504
504
 
505
+ ### Evidence File (Artifact-Gated Validation)
506
+
507
+ After applying all code changes, write an evidence file so the orchestrator can verify this step ran. Use Bash (not Write tool) to create the file:
508
+
509
+ ```bash
510
+ cat > .map/<branch>/evidence/actor_<subtask_id>.json << 'EVIDENCE'
511
+ {
512
+ "phase": "ACTOR",
513
+ "subtask_id": "<subtask_id>",
514
+ "timestamp": "<ISO 8601 UTC>",
515
+ "summary": "<one-line description of what was implemented>",
516
+ "aag_contract": "<the AAG contract line>",
517
+ "files_changed": ["<list of modified file paths>"],
518
+ "status": "applied"
519
+ }
520
+ EVIDENCE
521
+ ```
522
+
523
+ **Required fields** (orchestrator validates these): `phase`, `subtask_id`, `timestamp`.
524
+ Other fields are informational but recommended for audit trail.
525
+
526
+ **CRITICAL**: Without this file, `validate_step("2.3")` will reject the step.
527
+
505
528
  </Actor_Quality_v3_1>
506
529
 
507
530
  ---
@@ -670,8 +693,8 @@ output:
670
693
  - **Project**: {{project_name}}
671
694
  - **Language**: {{language}}
672
695
  - **Framework**: {{framework}}
673
- - **Standards**: {{standards_url}}
674
- - **Branch**: {{branch}}
696
+ - **Standards**: {{standards_doc}}
697
+ - **Branch**: {{branch_name}}
675
698
  - **Allowed Scope**: {{allowed_scope}}
676
699
  - **Related Files**: {{related_files}}
677
700
 
@@ -733,7 +756,7 @@ output:
733
756
 
734
757
  Follow this protocol exactly — do not infer "how seniors write" or add stylistic flourishes.
735
758
 
736
- 1. **Style standard**: Use {{standards_url}}. If unavailable: Python→PEP8, JS/TS→Google Style, Go→gofmt, Rust→rustfmt.
759
+ 1. **Style standard**: Use {{standards_doc}}. If unavailable: Python→PEP8, JS/TS→Google Style, Go→gofmt, Rust→rustfmt.
737
760
  2. **Architecture**: Dependency injection where applicable. No global mutable state.
738
761
  3. **Naming**: Self-documenting (`user_count` not `n`, `is_valid` not `flag`). No abbreviations except industry-standard ones (URL, HTTP, ID).
739
762
  4. **Intent comments**: Add a one-line `# Intent: <why>` comment above any non-obvious logic block. Do NOT comment obvious code.
@@ -3,7 +3,7 @@ name: debate-arbiter
3
3
  description: Cross-evaluates Actor variants with explicit reasoning and synthesizes optimal solution (MAP Debate)
4
4
  model: opus
5
5
  version: 1.0.0
6
- last_updated: 2025-01-08
6
+ last_updated: 2026-02-14
7
7
  ---
8
8
 
9
9
  # QUICK REFERENCE (Read First)
@@ -444,7 +444,7 @@ mcp__deepwiki__ask_question(
444
444
  # 4. Check historical patterns (if mem0 available)
445
445
  mcp__mem0__map_tiered_search(
446
446
  query="CRD installation documentation patterns",
447
- top_k=5,
447
+ limit=5,
448
448
  similarity_threshold=0.7
449
449
  )
450
450
  ```
@@ -18,36 +18,36 @@ You catch premature completion and hallucinated success.
18
18
 
19
19
  | Data | Source | How to Read |
20
20
  |------|--------|-------------|
21
- | Original Goal | `.map/task_plan_<branch>.md` | Section "## Goal" or first paragraph |
22
- | Acceptance Criteria | `.map/task_plan_<branch>.md` | Section "## Acceptance Criteria" (table) |
23
- | Completed Subtasks | `.map/progress_<branch>.md` | Checkboxes marked `[x]` |
21
+ | Original Goal | `.map/<branch>/task_plan_<branch>.md` | Section "## Goal" or first paragraph |
22
+ | Acceptance Criteria | `.map/<branch>/task_plan_<branch>.md` | Section "## Acceptance Criteria" (table) |
23
+ | Completed Subtasks | `.map/<branch>/progress_<branch>.md` | Checkboxes marked `[x]` |
24
24
  | Global Validation | Task argument `$VALIDATION_CRITERIA` | Passed from map-efficient.md |
25
25
 
26
26
  ### OUTPUT Destinations (where to store results)
27
27
 
28
28
  | Data | Destination | Format | Written By |
29
29
  |------|-------------|--------|------------|
30
- | Verification Result | `.map/progress_<branch>.md` | Append "## Final Verification" section | **final-verifier agent** |
30
+ | Verification Result | `.map/<branch>/progress_<branch>.md` | Append "## Final Verification" section | **final-verifier agent** |
31
31
  | Structured Result | `.map/<branch>/final_verification.json` | JSON (for programmatic access) | **final-verifier agent** |
32
32
  | Root Cause (if failed) | `.map/<branch>/final_verification.json` | In `root_cause` field | **final-verifier agent** |
33
33
 
34
34
  **WHO WRITES FILES:**
35
35
  - **final-verifier agent** writes verification results to BOTH markdown and JSON
36
36
  - **Orchestrator (map-efficient.md)** reads results and decides next action (COMPLETE/RE_DECOMPOSE/ESCALATE)
37
- - **Orchestrator (map-efficient.md)** ensures Acceptance Criteria section exists in `task_plan_<branch>.md` (derived from decomposition output)
37
+ - **Orchestrator (map-efficient.md)** ensures Acceptance Criteria section exists in `.map/<branch>/task_plan_<branch>.md` (derived from decomposition output)
38
38
 
39
39
  **IMPORTANT:** Always use sanitized branch name (e.g., `feature-foo` not `feature/foo`).
40
40
 
41
41
  **SOURCE OF TRUTH CONTRACT:**
42
42
  - `.map/<branch>/final_verification.json` is the **ONLY** source of truth for orchestrator decisions
43
- - `.map/progress_<branch>.md` "## Final Verification" section is for **human readability only**
43
+ - `.map/<branch>/progress_<branch>.md` "## Final Verification" section is for **human readability only**
44
44
  - **Orchestrator (map-efficient.md) MUST read JSON**, not parse markdown
45
45
  - Both must be written, but only JSON is used programmatically
46
46
 
47
47
  ## Verification Protocol
48
48
 
49
49
  ### Step 1: Goal Extraction
50
- Read `.map/task_plan_<branch>.md` to extract:
50
+ Read `.map/<branch>/task_plan_<branch>.md` to extract:
51
51
  - Original goal from "## Goal" section
52
52
  - Acceptance criteria from "## Acceptance Criteria" table (if present)
53
53
 
@@ -101,7 +101,7 @@ Score confidence (0.0-1.0):
101
101
 
102
102
  **CRITICAL:** `root_cause` is REQUIRED if `passed=false`
103
103
 
104
- ### 2. Append to `.map/progress_<branch>.md`
104
+ ### 2. Append to `.map/<branch>/progress_<branch>.md`
105
105
 
106
106
  ```markdown
107
107
  ## Final Verification
@@ -94,8 +94,8 @@ If implementation deviates from the AAG contract — `valid: false` — regardle
94
94
  |-------------|------|-------------|---------|
95
95
  | `{{project_name}}` | string | Project identifier | `"auth-service"` |
96
96
  | `{{language}}` | enum | Primary language | `"python"`, `"typescript"`, `"go"` |
97
- | `{{solution}}` | string | Code/docs to review | Full code block or diff |
98
- | `{{requirements}}` | string | Subtask requirements | "Implement JWT validation" |
97
+ | `{{solution}}` | string | Code/docs to review (in MAP workflow: provided via `<MAP_Written>` tag) | Full code block or diff |
98
+ | `{{requirements}}` | string | Subtask requirements (in MAP workflow: provided via `<MAP_Contract>` tag) | "Implement JWT validation" |
99
99
  | `{{review_mode}}` | enum | Review scope mode | `"full"` or `"diff"` |
100
100
 
101
101
  ### Optional Placeholders
@@ -105,6 +105,7 @@ If implementation deviates from the AAG contract — `valid: false` — regardle
105
105
  | `{{framework}}` | string | `""` | Framework/runtime (Express, FastAPI, etc.) |
106
106
  | `{{standards_doc}}` | string | `""` | URL/path to style guide |
107
107
  | `{{security_policy}}` | string | `""` | URL/path to security policy |
108
+ | `{{changed_files}}` | array | `[]` | List of modified file paths (for static analysis) |
108
109
  | `{{subtask_description}}` | string | `""` | Additional context |
109
110
  | `{{existing_patterns}}` | array | `[]` | Learned patterns from previous reviews |
110
111
  | `{{feedback}}` | array | `[]` | Previous review findings to verify |
@@ -2494,3 +2495,27 @@ def check_rate_limit(user_id, action, limit=100, window=3600):
2494
2495
  - Only MEDIUM/LOW issues → valid=true (with feedback)
2495
2496
 
2496
2497
  </Monitor_Critical_Reminders>
2498
+
2499
+ ### Evidence File (Artifact-Gated Validation)
2500
+
2501
+ **Exception to read-only rule**: Monitor writes evidence files to `.map/` artifacts directory via Bash (not Write tool). This does NOT violate the read-only-for-project-code rule — `.map/` is a workflow artifact directory, not project code.
2502
+
2503
+ After completing validation, write an evidence file:
2504
+
2505
+ ```bash
2506
+ cat > .map/<branch>/evidence/monitor_<subtask_id>.json << 'EVIDENCE'
2507
+ {
2508
+ "phase": "MONITOR",
2509
+ "subtask_id": "<subtask_id>",
2510
+ "timestamp": "<ISO 8601 UTC>",
2511
+ "valid": true,
2512
+ "issues_found": <number of issues>,
2513
+ "recommendation": "approve|reject|revise"
2514
+ }
2515
+ EVIDENCE
2516
+ ```
2517
+
2518
+ **Required fields** (orchestrator validates these): `phase`, `subtask_id`, `timestamp`.
2519
+ Other fields are informational but recommended for audit trail.
2520
+
2521
+ **CRITICAL**: Without this file, `validate_step("2.4")` will reject the step.