mapify-cli 1.0.0__tar.gz → 1.0.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 (33) hide show
  1. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.gitignore +2 -0
  2. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/PKG-INFO +14 -2
  3. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/README.md +13 -1
  4. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/pyproject.toml +1 -1
  5. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/__init__.py +64 -0
  6. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/actor.md +489 -8
  7. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/evaluator.md +4 -0
  8. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/monitor.md +111 -0
  9. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/task-decomposer.md +432 -5
  10. mapify_cli-1.0.3/src/mapify_cli/tools/__init__.py +28 -0
  11. mapify_cli-1.0.3/src/mapify_cli/tools/validate_dependencies.py +765 -0
  12. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.claude/agents/README.md +0 -0
  13. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.claude/hooks/README.md +0 -0
  14. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/docs/context-engineering/README.md +0 -0
  15. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/playbook_manager.py +0 -0
  16. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/recitation_manager.py +0 -0
  17. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/semantic_search.py +0 -0
  18. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/CHANGELOG.md +0 -0
  19. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/MCP-PATTERNS.md +0 -0
  20. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/README.md +0 -0
  21. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/curator.md +0 -0
  22. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
  23. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/predictor.md +0 -0
  24. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/reflector.md +0 -0
  25. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/test-generator.md +0 -0
  26. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-debug.md +0 -0
  27. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-feature.md +0 -0
  28. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-refactor.md +0 -0
  29. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-review.md +0 -0
  30. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/hooks/README.md +0 -0
  31. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/hooks/validate-agent-templates.sh +0 -0
  32. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/settings.hooks.json +0 -0
  33. {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/workflow_logger.py +0 -0
@@ -55,3 +55,5 @@ coverage.json
55
55
 
56
56
  # Temporary verification files
57
57
  mapify_cli_verification_*.json
58
+
59
+ docs/claude-task-master
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapify-cli
3
- Version: 1.0.0
3
+ Version: 1.0.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
@@ -40,7 +40,7 @@ Implementation of **Modular Agentic Planner (MAP)** — a cognitive architecture
40
40
  - **README** (this file) - Quick start and overview
41
41
  - **[INSTALL.md](docs/INSTALL.md)** - Complete installation guide with PATH setup and troubleshooting
42
42
  - **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** - Technical deep dive, customization, and MCP integration
43
- - **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, and cost optimization
43
+ - **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, cost optimization, and dependency validation
44
44
 
45
45
  ## 🚀 Quick Start
46
46
 
@@ -92,6 +92,12 @@ mapify --version
92
92
  # Initialize in your project
93
93
  cd your-project
94
94
  mapify init
95
+
96
+ # Available commands
97
+ mapify --help # Show all available commands
98
+ mapify validate graph <file> # Validate task dependency graphs
99
+ mapify playbook search <query> # Search playbook patterns
100
+ mapify recitation get-context # Get current task plan
95
101
  ```
96
102
 
97
103
  **Version Pinning:**
@@ -192,6 +198,7 @@ Built-in learning system that improves with each task:
192
198
  - **Reflector** extracts patterns from successes and failures
193
199
  - **Curator** maintains structured knowledge base with quality tracking
194
200
  - **Semantic search** (optional) finds patterns by meaning, not keywords
201
+ - **Dependency validation** ensures valid task graphs before execution
195
202
  - Automatically grows high-quality pattern library
196
203
 
197
204
  ### Playbook Commands
@@ -205,12 +212,17 @@ mapify playbook search "JWT authentication"
205
212
 
206
213
  # View high-quality patterns
207
214
  mapify playbook sync
215
+
216
+ # Validate task dependencies with visualization
217
+ python scripts/validate-dependencies.py decomposer-output.json --visualize
208
218
  ```
209
219
 
210
220
  **Optional semantic search**: `pip install -r requirements-semantic.txt` for meaning-based matching. Details in [SEMANTIC_SEARCH_SETUP.md](docs/SEMANTIC_SEARCH_SETUP.md) and [ARCHITECTURE.md](docs/ARCHITECTURE.md#semantic-search).
211
221
 
212
222
  **Playbook configuration**: See [ARCHITECTURE.md](docs/ARCHITECTURE.md#playbook-configuration) for top_k settings and optimization.
213
223
 
224
+ **Dependency validation**: See [USAGE.md](docs/USAGE.md#dependency-validation) for comprehensive guide on validating TaskDecomposer output, including cycle detection, visualization, and CI/CD integration.
225
+
214
226
  ## 💰 Cost Optimization
215
227
 
216
228
  MAP Framework uses intelligent model selection per agent:
@@ -10,7 +10,7 @@ Implementation of **Modular Agentic Planner (MAP)** — a cognitive architecture
10
10
  - **README** (this file) - Quick start and overview
11
11
  - **[INSTALL.md](docs/INSTALL.md)** - Complete installation guide with PATH setup and troubleshooting
12
12
  - **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** - Technical deep dive, customization, and MCP integration
13
- - **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, and cost optimization
13
+ - **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, cost optimization, and dependency validation
14
14
 
15
15
  ## 🚀 Quick Start
16
16
 
@@ -62,6 +62,12 @@ mapify --version
62
62
  # Initialize in your project
63
63
  cd your-project
64
64
  mapify init
65
+
66
+ # Available commands
67
+ mapify --help # Show all available commands
68
+ mapify validate graph <file> # Validate task dependency graphs
69
+ mapify playbook search <query> # Search playbook patterns
70
+ mapify recitation get-context # Get current task plan
65
71
  ```
66
72
 
67
73
  **Version Pinning:**
@@ -162,6 +168,7 @@ Built-in learning system that improves with each task:
162
168
  - **Reflector** extracts patterns from successes and failures
163
169
  - **Curator** maintains structured knowledge base with quality tracking
164
170
  - **Semantic search** (optional) finds patterns by meaning, not keywords
171
+ - **Dependency validation** ensures valid task graphs before execution
165
172
  - Automatically grows high-quality pattern library
166
173
 
167
174
  ### Playbook Commands
@@ -175,12 +182,17 @@ mapify playbook search "JWT authentication"
175
182
 
176
183
  # View high-quality patterns
177
184
  mapify playbook sync
185
+
186
+ # Validate task dependencies with visualization
187
+ python scripts/validate-dependencies.py decomposer-output.json --visualize
178
188
  ```
179
189
 
180
190
  **Optional semantic search**: `pip install -r requirements-semantic.txt` for meaning-based matching. Details in [SEMANTIC_SEARCH_SETUP.md](docs/SEMANTIC_SEARCH_SETUP.md) and [ARCHITECTURE.md](docs/ARCHITECTURE.md#semantic-search).
181
191
 
182
192
  **Playbook configuration**: See [ARCHITECTURE.md](docs/ARCHITECTURE.md#playbook-configuration) for top_k settings and optimization.
183
193
 
194
+ **Dependency validation**: See [USAGE.md](docs/USAGE.md#dependency-validation) for comprehensive guide on validating TaskDecomposer output, including cycle detection, visualization, and CI/CD integration.
195
+
184
196
  ## 💰 Cost Optimization
185
197
 
186
198
  MAP Framework uses intelligent model selection per agent:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mapify-cli"
3
- version = "1.0.0"
3
+ version = "1.0.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"
@@ -358,9 +358,11 @@ app = typer.Typer(
358
358
  # Create subcommand groups
359
359
  recitation_app = typer.Typer(name="recitation", help="Manage task execution plans (recitation pattern)")
360
360
  playbook_app = typer.Typer(name="playbook", help="Manage and search playbook patterns")
361
+ validate_app = typer.Typer(name="validate", help="Validate task dependency graphs")
361
362
 
362
363
  app.add_typer(recitation_app, name="recitation")
363
364
  app.add_typer(playbook_app, name="playbook")
365
+ app.add_typer(validate_app, name="validate")
364
366
 
365
367
 
366
368
  def show_banner():
@@ -1937,6 +1939,68 @@ def playbook_sync(threshold: int = typer.Option(5, help="Minimum helpful count")
1937
1939
  patterns = manager.get_bullets_for_sync(threshold=threshold)
1938
1940
  console.print_json(data={"threshold": threshold, "count": len(patterns), "patterns": [{"id": p.get("id"), "helpful_count": p.get("helpful_count")} for p in patterns]})
1939
1941
 
1942
+ # Validate commands
1943
+
1944
+ @validate_app.command("graph")
1945
+ def validate_graph(
1946
+ input_file: Optional[Path] = typer.Argument(None, help="JSON file to validate (or use stdin)"),
1947
+ visualize: bool = typer.Option(False, "--visualize", help="Show ASCII dependency tree"),
1948
+ no_color: bool = typer.Option(False, "--no-color", help="Disable colored output"),
1949
+ format: str = typer.Option("json", "-f", "--format", help="Output format: json or text"),
1950
+ strict: bool = typer.Option(False, "--strict", help="Fail on warnings (e.g., orphaned tasks), not just critical errors (cycles, forward refs)")
1951
+ ):
1952
+ """Validate TaskDecomposer dependency graph
1953
+
1954
+ Exit codes:
1955
+ 0 - Valid graph (no critical errors; warnings allowed unless --strict)
1956
+ 1 - Invalid graph (critical errors found, or warnings with --strict)
1957
+ 2 - Malformed input (invalid JSON or missing required fields)
1958
+ """
1959
+ from mapify_cli.tools.validate_dependencies import (
1960
+ load_input, DependencyValidator, ASCIIGraphRenderer, print_report
1961
+ )
1962
+
1963
+ try:
1964
+ # Load input
1965
+ data = load_input(str(input_file) if input_file else None)
1966
+
1967
+ # Validate
1968
+ validator = DependencyValidator(data)
1969
+ is_valid = validator.validate_all()
1970
+ report = validator.get_report()
1971
+
1972
+ # Print report
1973
+ print_report(report, format)
1974
+
1975
+ # Display visualization if requested
1976
+ if visualize:
1977
+ console.print() # Add blank line separator
1978
+ renderer = ASCIIGraphRenderer(validator)
1979
+ visualization = renderer.render(use_colors=not no_color)
1980
+ console.print(visualization)
1981
+
1982
+ # Determine exit code based on issue severity
1983
+ has_critical = report.get("critical_issues", 0) > 0
1984
+ has_warnings = report.get("warnings", 0) > 0
1985
+
1986
+ if has_critical:
1987
+ # Critical errors always fail
1988
+ raise typer.Exit(1)
1989
+ elif has_warnings and strict:
1990
+ # Warnings fail only in strict mode
1991
+ raise typer.Exit(1)
1992
+ # Otherwise exit 0 (success)
1993
+
1994
+ except ValueError as e:
1995
+ # Input validation error (malformed JSON, missing fields)
1996
+ error_report = {
1997
+ "valid": False,
1998
+ "error": str(e),
1999
+ "error_type": "input_validation"
2000
+ }
2001
+ console.print_json(data=error_report)
2002
+ raise typer.Exit(2)
2003
+
1940
2004
 
1941
2005
  def main():
1942
2006
  app()