mapify-cli 1.2.1__tar.gz → 1.2.3__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 (64) hide show
  1. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/.claude/hooks/README.md +54 -6
  2. mapify_cli-1.2.3/.claude/skills/README.md +205 -0
  3. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/.gitignore +13 -1
  4. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/PKG-INFO +47 -1
  5. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/README.md +46 -0
  6. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/pyproject.toml +1 -1
  7. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/__init__.py +20 -8
  8. mapify_cli-1.2.3/src/mapify_cli/contradiction_detector.py +723 -0
  9. mapify_cli-1.2.3/src/mapify_cli/entity_extractor.py +723 -0
  10. mapify_cli-1.2.3/src/mapify_cli/graph_query.py +731 -0
  11. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/playbook_manager.py +110 -15
  12. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/recitation_manager.py +50 -12
  13. mapify_cli-1.2.3/src/mapify_cli/relationship_detector.py +633 -0
  14. mapify_cli-1.2.3/src/mapify_cli/schemas.py +197 -0
  15. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/actor.md +53 -2
  16. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/curator.md +217 -2
  17. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/evaluator.md +101 -2
  18. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/monitor.md +47 -7
  19. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/predictor.md +52 -2
  20. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/reflector.md +180 -2
  21. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-efficient.md +21 -7
  22. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-feature.md +21 -9
  23. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/README.md +319 -0
  24. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/hooks/helpers/inject_playbook_bullets.py +18 -3
  25. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/helpers/suggest_skill.py +376 -0
  26. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/helpers/suggest_workflow.py +383 -0
  27. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/helpers/validate_checkpoint_file.py +349 -0
  28. {mapify_cli-1.2.1/src/mapify_cli/templates → mapify_cli-1.2.3/src/mapify_cli/templates/hooks}/settings.hooks.json +15 -2
  29. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/tests/test_auto_activation.sh +106 -0
  30. mapify_cli-1.2.3/src/mapify_cli/templates/hooks/user-prompt-submit.sh +241 -0
  31. mapify_cli-1.2.3/src/mapify_cli/templates/skills/README.md +205 -0
  32. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/SKILL.md +578 -0
  33. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/agent-architecture.md +247 -0
  34. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/cipher-integration.md +346 -0
  35. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-debug-deep-dive.md +261 -0
  36. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-efficient-deep-dive.md +203 -0
  37. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-fast-deep-dive.md +243 -0
  38. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-feature-deep-dive.md +238 -0
  39. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/map-refactor-deep-dive.md +333 -0
  40. mapify_cli-1.2.3/src/mapify_cli/templates/skills/map-workflows-guide/resources/playbook-system.md +331 -0
  41. mapify_cli-1.2.3/src/mapify_cli/templates/skills/skill-rules.json +29 -0
  42. mapify_cli-1.2.3/src/mapify_cli/templates/workflow-rules.json +114 -0
  43. mapify_cli-1.2.1/src/mapify_cli/templates/hooks/user-prompt-submit.sh +0 -66
  44. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/.claude/agents/README.md +0 -0
  45. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/docs/context-engineering/README.md +0 -0
  46. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/playbook_query.py +0 -0
  47. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/semantic_search.py +0 -0
  48. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/CHANGELOG.md +0 -0
  49. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/MCP-PATTERNS.md +0 -0
  50. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/README.md +0 -0
  51. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
  52. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/agents/task-decomposer.md +0 -0
  53. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-debug.md +0 -0
  54. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-fast.md +0 -0
  55. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-refactor.md +0 -0
  56. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/commands/map-review.md +0 -0
  57. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/hooks/helpers/__init__.py +0 -0
  58. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/hooks/helpers/quality_gates.py +0 -0
  59. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/hooks/stop.sh +0 -0
  60. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/templates/hooks/validate-agent-templates.sh +0 -0
  61. {mapify_cli-1.2.1/src/mapify_cli/templates/hooks → mapify_cli-1.2.3/src/mapify_cli/templates}/settings.hooks.json +0 -0
  62. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/tools/__init__.py +0 -0
  63. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/tools/validate_dependencies.py +0 -0
  64. {mapify_cli-1.2.1 → mapify_cli-1.2.3}/src/mapify_cli/workflow_logger.py +0 -0
@@ -4,17 +4,16 @@ This directory contains Claude Code hooks for the MAP Framework.
4
4
 
5
5
  ## Active Hooks
6
6
 
7
- ### UserPromptSubmit - Playbook Auto-Injection
7
+ ### UserPromptSubmit - Playbook Auto-Injection + Workflow Suggestion
8
8
 
9
9
  **Hook**: `user-prompt-submit.sh`
10
10
  **Triggers**: Before user prompt is submitted to Claude Code
11
- **Purpose**: Automatically injects relevant playbook bullets to enhance context
11
+ **Purpose**: Automatically injects relevant playbook bullets AND suggests appropriate MAP workflows based on context
12
12
 
13
13
  **How It Works**:
14
- 1. Extracts keywords from user message (filters stop words, handles unicode)
15
- 2. Queries local playbook using `mapify playbook query` CLI
16
- 3. Formats top 5 relevant bullets as markdown
17
- 4. Injects as `additionalContext` field in JSON response
14
+ 1. **Playbook Injection**: Extracts keywords from user message, queries playbook, formats top 5 relevant bullets
15
+ 2. **Workflow Suggestion**: Matches user message against workflow-rules.json triggers, suggests best workflow (map-debug, map-feature, etc.)
16
+ 3. Combines both outputs as `additionalContext` field in JSON response
18
17
 
19
18
  **Configuration** (edit `user-prompt-submit.sh`):
20
19
  ```bash
@@ -269,3 +268,52 @@ The following hooks were removed because **bash hooks cannot call MCP tools**:
269
268
  - ❌ MCP tool calls
270
269
  - ❌ Interactive prompts
271
270
  - ❌ Long operations (>10s timeout)
271
+
272
+ ## Workflow Auto-Activation System
273
+
274
+ **File**: `.claude/workflow-rules.json`
275
+ **Purpose**: Automatically suggest appropriate MAP workflows based on user prompt keywords
276
+
277
+ **How It Works**:
278
+ 1. User submits prompt: "Fix the failing tests in auth.test.ts"
279
+ 2. Hook matches keywords against workflow-rules.json triggers
280
+ 3. Suggests `/map-debug` workflow with reason: "Keywords: fix, failing test"
281
+ 4. Session tracking prevents repeated suggestions
282
+
283
+ **Supported Workflows**:
284
+ - `map-debug` - Bug fixes, test failures, debugging
285
+ - `map-feature` - New features, critical implementations
286
+ - `map-efficient` - Production code, optimizations
287
+ - `map-refactor` - Code restructuring, cleanup
288
+ - `map-fast` - Quick prototypes, throwaway code
289
+
290
+ **Customization** (edit `.claude/workflow-rules.json`):
291
+ ```json
292
+ {
293
+ "workflows": {
294
+ "map-debug": {
295
+ "priority": "high",
296
+ "promptTriggers": {
297
+ "keywords": ["bug", "error", "failing test", "fix"],
298
+ "intentPatterns": ["(fix|debug).*?(bug|test)"]
299
+ }
300
+ }
301
+ }
302
+ }
303
+ ```
304
+
305
+ **Session Tracking**:
306
+ - Suggestions stored in `.claude/cache/workflow_suggestions_session.txt`
307
+ - One workflow suggested per session (avoids annoyance)
308
+ - Clear cache: `rm .claude/cache/workflow_suggestions_session.txt`
309
+
310
+ **Testing**:
311
+ ```bash
312
+ # Run auto-activation tests
313
+ .claude/hooks/tests/test_auto_activation.sh
314
+ ```
315
+
316
+ **Security** (P0 fixes applied):
317
+ - ✅ Stdin input (prevents command injection)
318
+ - ✅ Quoted heredoc (prevents variable expansion)
319
+ - ✅ Regex timeout protection (prevents ReDoS attacks)
@@ -0,0 +1,205 @@
1
+ # MAP Skills System
2
+
3
+ ## What are Skills?
4
+
5
+ **Skills** = Passive documentation modules (NOT agents!)
6
+
7
+ Skills provide specialized guidance without executing code. They help users understand MAP Framework concepts and make informed decisions.
8
+
9
+ ## Skills vs Agents
10
+
11
+ | Skills | Agents |
12
+ |--------|--------|
13
+ | **Passive** documentation | **Active** execution |
14
+ | Load via Skill tool | Execute via Task tool |
15
+ | Provide guidance | Write code |
16
+ | Progressive disclosure (<500 lines) | Full specification (orchestrated) |
17
+ | User-initiated | Workflow-initiated |
18
+
19
+ **Example:**
20
+ - **Skill:** map-workflows-guide (explains when to use each workflow)
21
+ - **Agent:** actor.md (implements code based on workflow)
22
+
23
+ ---
24
+
25
+ ## Available Skills
26
+
27
+ ### map-workflows-guide
28
+
29
+ **Purpose:** Help users choose the right MAP workflow for their task
30
+
31
+ **Triggers:** (auto-suggested when user prompts match)
32
+ - Keywords: "which workflow", "difference between", "when to use"
33
+ - Intent patterns: Questions about workflow selection
34
+
35
+ **Content:**
36
+ - Quick decision tree (5 questions)
37
+ - Workflow comparison matrix (5 workflows)
38
+ - Detailed workflow descriptions
39
+ - Agent architecture overview
40
+ - 8 deep-dive resource files
41
+
42
+ **How to use:**
43
+ ```
44
+ User: "Which workflow should I use for implementing auth?"
45
+ MAP: [Auto-suggests map-workflows-guide skill]
46
+ User: "Load map-workflows-guide"
47
+ MAP: [Shows decision tree and comparison matrix]
48
+ ```
49
+
50
+ **Resources available:**
51
+ - `map-fast-deep-dive.md` - When (not) to use /map-fast
52
+ - `map-efficient-deep-dive.md` - Optimization strategies
53
+ - `map-feature-deep-dive.md` - Full validation workflow
54
+ - `map-debug-deep-dive.md` - Debugging techniques
55
+ - `map-refactor-deep-dive.md` - Dependency analysis
56
+ - `agent-architecture.md` - How 8 agents orchestrate
57
+ - `playbook-system.md` - Knowledge storage and search
58
+ - `cipher-integration.md` - Cross-project learning
59
+
60
+ ---
61
+
62
+ ## Creating New Skills
63
+
64
+ See [docs/P1_SKILLS_SYSTEM_IMPLEMENTATION.md](../docs/P1_SKILLS_SYSTEM_IMPLEMENTATION.md) for:
65
+ - Skill structure (SKILL.md + resources/)
66
+ - 500-line rule (progressive disclosure pattern)
67
+ - Integration with auto-activation
68
+ - Testing procedures
69
+
70
+ ### Skill Structure Template
71
+
72
+ ```
73
+ .claude/skills/my-skill/
74
+ ├── SKILL.md # Main entry (<500 lines)
75
+ │ ├── Frontmatter (YAML)
76
+ │ ├── Quick overview
77
+ │ ├── Decision support
78
+ │ └── Links to resources/
79
+ └── resources/
80
+ ├── topic-1-deep-dive.md # Detailed exploration
81
+ ├── topic-2-deep-dive.md
82
+ └── reference-guide.md # Quick reference
83
+ ```
84
+
85
+ ### Frontmatter Format
86
+
87
+ ```yaml
88
+ ---
89
+ name: my-skill
90
+ description: Brief description of what this skill provides
91
+ version: 1.0
92
+ ---
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Integration with Auto-Activation
98
+
99
+ Skills work seamlessly with P0 auto-activation system:
100
+
101
+ **How it works:**
102
+ 1. User prompt analyzed by `user-prompt-submit.sh` hook
103
+ 2. Hook checks `skill-rules.json` for matching triggers
104
+ 3. If match found: Suggests skill to user
105
+ 4. User can load skill for detailed guidance
106
+
107
+ **Configuration:**
108
+ - **Trigger definitions:** `.claude/skills/skill-rules.json`
109
+ - **Auto-activation hook:** `.claude/hooks/user-prompt-submit.sh`
110
+ - **Helper script:** `.claude/hooks/helpers/suggest_skill.py`
111
+
112
+ ---
113
+
114
+ ## File Structure
115
+
116
+ ```
117
+ .claude/skills/
118
+ ├── skill-rules.json # Trigger configuration for all skills
119
+ ├── README.md # This file
120
+ └── map-workflows-guide/
121
+ ├── SKILL.md # Main entry (<500 lines)
122
+ └── resources/
123
+ ├── map-fast-deep-dive.md
124
+ ├── map-efficient-deep-dive.md
125
+ ├── map-feature-deep-dive.md
126
+ ├── map-debug-deep-dive.md
127
+ ├── map-refactor-deep-dive.md
128
+ ├── agent-architecture.md
129
+ ├── playbook-system.md
130
+ └── cipher-integration.md
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Best Practices
136
+
137
+ ### For Skill Authors
138
+
139
+ 1. **Follow 500-line rule** - Main SKILL.md should be scannable (~5 min read)
140
+ 2. **Progressive disclosure** - Details in resources/, linked from main
141
+ 3. **Clear triggers** - Define specific keywords and intent patterns
142
+ 4. **Examples over theory** - Show concrete use cases
143
+ 5. **Link related resources** - Cross-reference other skills/docs
144
+
145
+ ### For Users
146
+
147
+ 1. **Trust auto-suggestions** - Skills are triggered for good reasons
148
+ 2. **Load skills proactively** - Don't guess, get guidance
149
+ 3. **Explore resources** - Deep-dives provide comprehensive context
150
+ 4. **Apply patterns** - Skills show "why" and "when", not just "how"
151
+
152
+ ---
153
+
154
+ ## Troubleshooting
155
+
156
+ ### Skill not auto-suggesting
157
+
158
+ **Check:**
159
+ 1. `skill-rules.json` has correct triggers
160
+ 2. Hook reads `skill-rules.json` successfully
161
+ 3. Test keyword matching manually:
162
+ ```bash
163
+ echo "which workflow should I use" | .claude/hooks/helpers/suggest_skill.py --rules .claude/skills/skill-rules.json
164
+ ```
165
+
166
+ **Fix:** Update trigger patterns in `skill-rules.json`
167
+
168
+ ### Skill content too long
169
+
170
+ **Problem:** Main SKILL.md exceeds 500 lines
171
+
172
+ **Solution:**
173
+ 1. Move detailed sections to `resources/`
174
+ 2. Keep only overview + navigation in main file
175
+ 3. Add links to resources for deep dives
176
+
177
+ ### Resources not loading
178
+
179
+ **Check:**
180
+ 1. Resource files exist in `resources/` directory
181
+ 2. Links in SKILL.md use correct paths
182
+ 3. Markdown link syntax is valid
183
+
184
+ ---
185
+
186
+ ## Metrics
187
+
188
+ **Track skill effectiveness:**
189
+ - Activation rate (how often skills are suggested)
190
+ - Load rate (how often users load suggested skills)
191
+ - Resource access (which deep-dives are most popular)
192
+ - Workflow confusion reduction (before/after P1)
193
+
194
+ **Target metrics:**
195
+ - >30% of sessions load a skill
196
+ - ~50% reduction in "which workflow?" questions
197
+ - Correct workflow selection rate >80%
198
+
199
+ ---
200
+
201
+ ## See Also
202
+
203
+ - [P1 Implementation Plan](../docs/P1_SKILLS_SYSTEM_IMPLEMENTATION.md)
204
+ - [Auto-Activation System](../docs/auto-activation-comparison.md)
205
+ - [MAP Architecture](../docs/ARCHITECTURE.md)
@@ -43,7 +43,6 @@ htmlcov/
43
43
  .claude/playbook.db-shm
44
44
  .claude/playbook.db-wal
45
45
  .claude/mcp_config.json
46
- .claude/commands/
47
46
 
48
47
  # Agent template backups
49
48
  src/mapify_cli/templates/agents.backup/
@@ -55,6 +54,7 @@ coverage.json
55
54
  # Claude Code hooks runtime files
56
55
  .claude/sessions/
57
56
  .claude/metrics/
57
+ .claude/cache/
58
58
  .map/
59
59
 
60
60
  # Temporary verification files
@@ -62,3 +62,15 @@ mapify_cli_verification_*.json
62
62
 
63
63
  docs/claude-task-master
64
64
  docs/awesome-claude-code
65
+ docs/core
66
+ docs/claude-code-infrastructure-showcase
67
+ docs/claude-code-subagents
68
+
69
+
70
+ # Curator temporary files
71
+ .claude/curator_delta_operations.json
72
+ .claude/curator_integration_report.json
73
+ .claude/curator_operations.json
74
+ .claude/*_integration_report.json
75
+ .claude/apply_*_deltas.py
76
+ .claude/insert_*_bullets.sql
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapify-cli
3
- Version: 1.2.1
3
+ Version: 1.2.3
4
4
  Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
5
5
  Project-URL: Homepage, https://github.com/azalio/map-framework
6
6
  Project-URL: Repository, https://github.com/azalio/map-framework.git
@@ -168,6 +168,30 @@ MAP Framework offers three workflow variants optimized for different scenarios:
168
168
  - 🗑️ Learning/tutorial contexts where failure is acceptable
169
169
  - ⚠️ **NEVER for production code** - no learning, quality risks
170
170
 
171
+ ### 🎯 Auto-Activation System
172
+
173
+ **Don't remember which workflow to use?** MAP automatically suggests the right workflow based on your request!
174
+
175
+ Just describe your task naturally - no need to remember slash commands:
176
+
177
+ | Your Request | MAP Suggests | Why |
178
+ |--------------|--------------|-----|
179
+ | "Fix the failing tests" | `/map-debug` | Keywords: fix, failing test |
180
+ | "Implement user login" | `/map-feature` | Keywords: implement, feature |
181
+ | "Optimize database queries" | `/map-efficient` | Keywords: optimize |
182
+ | "Restructure auth module" | `/map-refactor` | Keywords: restructure |
183
+ | "Quick prototype for testing" | `/map-fast` | Keywords: quick, prototype |
184
+
185
+ **How it works:**
186
+ 1. Start typing your request normally
187
+ 2. MAP analyzes keywords and intent patterns
188
+ 3. Suggests the most appropriate workflow
189
+ 4. You can accept the suggestion or proceed with your request
190
+
191
+ **Customization:**
192
+ Edit `.claude/workflow-rules.json` to add project-specific trigger words and patterns.
193
+
194
+
171
195
  ### Key Differences
172
196
 
173
197
  **`/map-efficient` optimizations:**
@@ -186,6 +210,28 @@ MAP Framework offers three workflow variants optimized for different scenarios:
186
210
 
187
211
  **See [USAGE.md](docs/USAGE.md#workflow-variants) for detailed decision guide and real-world token usage examples.**
188
212
 
213
+ ## 📚 Skills System
214
+
215
+ MAP includes interactive skills that provide specialized guidance:
216
+
217
+ **map-workflows-guide** - Helps you choose the right workflow
218
+
219
+ **Auto-suggested when you ask:**
220
+ - "Which workflow should I use?"
221
+ - "What's the difference between workflows?"
222
+ - "When to use /map-efficient vs /map-feature?"
223
+
224
+ **What you get:**
225
+ - Quick decision tree (5 questions → recommended workflow)
226
+ - Comparison matrix (token cost, learning, agents, use cases)
227
+ - 8 detailed resource guides (progressive disclosure)
228
+
229
+ **Skills vs Agents:**
230
+ - **Skills** = Passive documentation (guidance)
231
+ - **Agents** = Active execution (code generation)
232
+
233
+ **See [docs/USAGE.md](docs/USAGE.md#skills-system) for full details.**
234
+
189
235
  ## Requirements
190
236
 
191
237
  - **Claude Code CLI** — installed and configured
@@ -138,6 +138,30 @@ MAP Framework offers three workflow variants optimized for different scenarios:
138
138
  - 🗑️ Learning/tutorial contexts where failure is acceptable
139
139
  - ⚠️ **NEVER for production code** - no learning, quality risks
140
140
 
141
+ ### 🎯 Auto-Activation System
142
+
143
+ **Don't remember which workflow to use?** MAP automatically suggests the right workflow based on your request!
144
+
145
+ Just describe your task naturally - no need to remember slash commands:
146
+
147
+ | Your Request | MAP Suggests | Why |
148
+ |--------------|--------------|-----|
149
+ | "Fix the failing tests" | `/map-debug` | Keywords: fix, failing test |
150
+ | "Implement user login" | `/map-feature` | Keywords: implement, feature |
151
+ | "Optimize database queries" | `/map-efficient` | Keywords: optimize |
152
+ | "Restructure auth module" | `/map-refactor` | Keywords: restructure |
153
+ | "Quick prototype for testing" | `/map-fast` | Keywords: quick, prototype |
154
+
155
+ **How it works:**
156
+ 1. Start typing your request normally
157
+ 2. MAP analyzes keywords and intent patterns
158
+ 3. Suggests the most appropriate workflow
159
+ 4. You can accept the suggestion or proceed with your request
160
+
161
+ **Customization:**
162
+ Edit `.claude/workflow-rules.json` to add project-specific trigger words and patterns.
163
+
164
+
141
165
  ### Key Differences
142
166
 
143
167
  **`/map-efficient` optimizations:**
@@ -156,6 +180,28 @@ MAP Framework offers three workflow variants optimized for different scenarios:
156
180
 
157
181
  **See [USAGE.md](docs/USAGE.md#workflow-variants) for detailed decision guide and real-world token usage examples.**
158
182
 
183
+ ## 📚 Skills System
184
+
185
+ MAP includes interactive skills that provide specialized guidance:
186
+
187
+ **map-workflows-guide** - Helps you choose the right workflow
188
+
189
+ **Auto-suggested when you ask:**
190
+ - "Which workflow should I use?"
191
+ - "What's the difference between workflows?"
192
+ - "When to use /map-efficient vs /map-feature?"
193
+
194
+ **What you get:**
195
+ - Quick decision tree (5 questions → recommended workflow)
196
+ - Comparison matrix (token cost, learning, agents, use cases)
197
+ - 8 detailed resource guides (progressive disclosure)
198
+
199
+ **Skills vs Agents:**
200
+ - **Skills** = Passive documentation (guidance)
201
+ - **Agents** = Active execution (code generation)
202
+
203
+ **See [docs/USAGE.md](docs/USAGE.md#skills-system) for full details.**
204
+
159
205
  ## Requirements
160
206
 
161
207
  - **Claude Code CLI** — installed and configured
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mapify-cli"
3
- version = "1.2.1"
3
+ version = "1.2.3"
4
4
  description = "MAP Framework installer - Modular Agentic Planner for Claude Code"
5
5
  authors = [{ name = "MAP Framework Contributors" }]
6
6
  readme = "README.md"
@@ -1116,16 +1116,28 @@ def install_hooks(project_path: Path, with_hooks: bool = True) -> int:
1116
1116
  hooks_count += 1
1117
1117
 
1118
1118
  # Copy helpers directory (Python helper scripts)
1119
+ # IMPORTANT: Only copy/update files from templates, preserve user's custom files
1119
1120
  helpers_src = hooks_template_dir / "helpers"
1120
1121
  if helpers_src.exists() and helpers_src.is_dir():
1121
1122
  helpers_dest = hooks_dir / "helpers"
1122
- if helpers_dest.exists():
1123
- shutil.rmtree(helpers_dest)
1124
- shutil.copytree(helpers_src, helpers_dest)
1125
- # Make Python scripts executable
1126
- for py_file in helpers_dest.glob("*.py"):
1127
- if py_file.name != "__init__.py":
1128
- py_file.chmod(py_file.stat().st_mode | stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH)
1123
+ helpers_dest.mkdir(exist_ok=True) # Create dir if doesn't exist
1124
+
1125
+ # Copy each file individually (preserves user files not in templates)
1126
+ for helper_file in helpers_src.rglob("*"):
1127
+ if helper_file.is_file():
1128
+ # Compute relative path from helpers_src
1129
+ rel_path = helper_file.relative_to(helpers_src)
1130
+ dest_file = helpers_dest / rel_path
1131
+
1132
+ # Create parent directory if needed
1133
+ dest_file.parent.mkdir(parents=True, exist_ok=True)
1134
+
1135
+ # Copy template file (overwrites if exists)
1136
+ shutil.copy2(helper_file, dest_file)
1137
+
1138
+ # Make Python scripts executable (except __init__.py)
1139
+ if dest_file.suffix == ".py" and dest_file.name != "__init__.py":
1140
+ dest_file.chmod(dest_file.stat().st_mode | stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH)
1129
1141
 
1130
1142
  # Copy README.md
1131
1143
  readme_src = hooks_template_dir / "README.md"
@@ -1837,7 +1849,7 @@ def recitation_create(
1837
1849
 
1838
1850
  @recitation_app.command("update")
1839
1851
  def recitation_update(
1840
- subtask_id: int,
1852
+ subtask_id: str,
1841
1853
  status: str,
1842
1854
  error: Optional[str] = typer.Argument(None)
1843
1855
  ):