mapify-cli 3.13.1__tar.gz → 3.15.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.
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/PKG-INFO +3 -3
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/README.md +2 -2
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/pyproject.toml +1 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/__init__.py +1 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/agents/researcher.toml +32 -26
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +4 -2
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +3 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +26 -6
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/workflow-gate.py +4 -2
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +21 -9
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +394 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +4 -3
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +1 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +10 -1
- mapify_cli-3.15.0/src/mapify_cli/templates/skills/map-review/review-reference.md +69 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +32 -26
- {mapify_cli-3.13.1/src/mapify_cli/templates_src → mapify_cli-3.15.0/src/mapify_cli/templates_src/codex}/hooks/workflow-gate.py.jinja +4 -2
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +3 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +26 -6
- {mapify_cli-3.13.1/src/mapify_cli/templates_src/codex → mapify_cli-3.15.0/src/mapify_cli/templates_src}/hooks/workflow-gate.py.jinja +4 -2
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +21 -9
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +394 -1
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +4 -3
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +1 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +10 -1
- mapify_cli-3.15.0/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +69 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/test_e2e_artifact_contracts.py +36 -4
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_map_orchestrator.py +57 -4
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_map_step_runner.py +150 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills.py +70 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_workflow_gate.py +2 -1
- mapify_cli-3.13.1/src/mapify_cli/templates/skills/map-review/review-reference.md +0 -43
- mapify_cli-3.13.1/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +0 -43
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/.claude/skills/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/.gitignore +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/LICENSE +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/config/project_config.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/file_copier.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/memory/capture.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/memory/digest_schema.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/memory/finalize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/ralph_state.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/schemas.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/actor.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/debate-arbiter.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/monitor.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/synthesizer.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/agents/task-decomposer.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/agents/monitor.toml +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/config.toml +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/post-compact-context.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/hooks/workflow-context-injector.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/debate-arbiter.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/synthesizer.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/verification_recorder.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/conftest.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/fixtures/codex/config.toml +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/hooks/test_end_of_turn.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_locking.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_map_utils_sanitize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_mapify_cli.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_memory_capture.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_post_compact_context.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_ralph_state.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_schemas.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_apply.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_sofa_client.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_template_render.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_validate_spec_citations.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_workflow_context_injector.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.13.1 → mapify_cli-3.15.0}/tests/test_workflow_state.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.15.0
|
|
4
4
|
Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
|
|
5
5
|
Project-URL: Homepage, https://github.com/azalio/map-framework
|
|
6
6
|
Project-URL: Repository, https://github.com/azalio/map-framework.git
|
|
@@ -201,7 +201,7 @@ These flows maintain branch-scoped artifacts under `.map/<branch>/` — `bluepri
|
|
|
201
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
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
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.
|
|
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
205
|
- **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them.
|
|
206
206
|
|
|
207
207
|
<details>
|
|
@@ -249,7 +249,7 @@ MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123
|
|
|
249
249
|
minimality: lite # new installs default to lite; existing repos without the key stay off
|
|
250
250
|
```
|
|
251
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.
|
|
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
253
|
|
|
254
254
|
**Context-compression policy** (controls the `/compact` nudge; default `never` — opt-in):
|
|
255
255
|
|
|
@@ -157,7 +157,7 @@ These flows maintain branch-scoped artifacts under `.map/<branch>/` — `bluepri
|
|
|
157
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
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
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.
|
|
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
161
|
- **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them.
|
|
162
162
|
|
|
163
163
|
<details>
|
|
@@ -205,7 +205,7 @@ MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123
|
|
|
205
205
|
minimality: lite # new installs default to lite; existing repos without the key stay off
|
|
206
206
|
```
|
|
207
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.
|
|
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
209
|
|
|
210
210
|
**Context-compression policy** (controls the `/compact` nudge; default `never` — opt-in):
|
|
211
211
|
|
{mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/agents/researcher.toml
RENAMED
|
@@ -8,40 +8,46 @@ You are a research agent. Your job is to explore the codebase and gather actiona
|
|
|
8
8
|
findings for downstream agents (decomposer, actor). You do NOT implement anything.
|
|
9
9
|
You observe, summarize, and report.
|
|
10
10
|
|
|
11
|
-
## OUTPUT FORMAT
|
|
11
|
+
## OUTPUT FORMAT (STRICT JSON)
|
|
12
12
|
|
|
13
|
-
Write ONLY to the findings file specified in your task.
|
|
14
|
-
|
|
13
|
+
Write ONLY one JSON object to the findings file specified in your task. Do not
|
|
14
|
+
wrap it in markdown or prose. The downstream `validate_research` gate rejects
|
|
15
|
+
malformed JSON, missing confidence, missing line ranges, unsafe paths, and more
|
|
16
|
+
than 5 locations.
|
|
15
17
|
|
|
16
18
|
```
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
19
|
+
{
|
|
20
|
+
"confidence": 0.85,
|
|
21
|
+
"status": "OK",
|
|
22
|
+
"search_method": "glob_grep",
|
|
23
|
+
"search_stats": {
|
|
24
|
+
"files_scanned": 50,
|
|
25
|
+
"total_matches_found": 23,
|
|
26
|
+
"results_truncated": true
|
|
27
|
+
},
|
|
28
|
+
"executive_summary": "One paragraph summary, max 100 words",
|
|
29
|
+
"relevant_locations": [
|
|
30
|
+
{
|
|
31
|
+
"path": "src/auth/service.py",
|
|
32
|
+
"lines": [45, 67],
|
|
33
|
+
"signature": "def validate_token(token: str) -> User",
|
|
34
|
+
"relevance": "Core JWT validation with expiry check",
|
|
35
|
+
"relevance_score": 0.95,
|
|
36
|
+
"has_intent": true
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"patterns_discovered": ["JWT with HS256", "decorator-based auth"]
|
|
40
|
+
}
|
|
37
41
|
```
|
|
38
42
|
|
|
43
|
+
Status values: `OK`, `PARTIAL_RESULTS`, `NO_RESULTS`, `SEARCH_FAILED`.
|
|
44
|
+
|
|
39
45
|
## RULES
|
|
40
46
|
|
|
41
47
|
1. Target: under 1500 tokens in the findings file.
|
|
42
|
-
2. Include: file paths, line ranges, function signatures, import patterns.
|
|
43
|
-
3. Exclude: raw search output, full file contents, speculation.
|
|
44
|
-
4.
|
|
48
|
+
2. Include: safe relative file paths, inclusive line ranges, function signatures, import patterns.
|
|
49
|
+
3. Exclude: raw search output, full file contents, markdown fences, speculation.
|
|
50
|
+
4. Return at most 5 `relevant_locations`, prioritized by relevance.
|
|
45
51
|
5. Read files to understand patterns — do not guess.
|
|
46
52
|
6. Focus on WHAT EXISTS, not what should be built.
|
|
47
53
|
7. If the task mentions external libraries, note their current usage patterns in the codebase.
|
{mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py
RENAMED
|
@@ -390,8 +390,10 @@ def is_editing_phase(branch: str) -> tuple[bool, Optional[str]]:
|
|
|
390
390
|
"Required:\n"
|
|
391
391
|
f" 1. echo '<findings>' | python3 .map/scripts/map_step_runner.py \\\n"
|
|
392
392
|
f" save_research <branch> {subtask} # default kind=actor\n"
|
|
393
|
-
f" 2. python3 .map/scripts/
|
|
394
|
-
"
|
|
393
|
+
f" 2. python3 .map/scripts/map_step_runner.py validate_research \\\n"
|
|
394
|
+
f" <branch> {subtask}\n"
|
|
395
|
+
f" 3. python3 .map/scripts/map_orchestrator.py validate_step 2.2\n"
|
|
396
|
+
" 4. Then Edit/Write opens (ACTOR phase).\n"
|
|
395
397
|
"\n"
|
|
396
398
|
f"Note: this block is scoped to {subtask}'s affected_files. Edits to\n"
|
|
397
399
|
"files OUTSIDE that surface (orthogonal hotfixes, repo-root config,\n"
|
{mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md
RENAMED
|
@@ -160,12 +160,14 @@ fi
|
|
|
160
160
|
### RESEARCH
|
|
161
161
|
|
|
162
162
|
Use `researcher` when independent exploration is useful; otherwise research in
|
|
163
|
-
the current session. Persist concise findings
|
|
163
|
+
the current session. Persist concise strict-JSON findings, validate the research
|
|
164
|
+
contract, then close RESEARCH before Actor work:
|
|
164
165
|
|
|
165
166
|
```bash
|
|
166
167
|
SUBTASK_ID=$(jq -r '.current_subtask_id' ".map/${BRANCH}/step_state.json")
|
|
167
168
|
printf '%s' "$RESEARCH_FINDINGS" | \
|
|
168
169
|
python3 .map/scripts/map_step_runner.py save_research "$BRANCH" "$SUBTASK_ID"
|
|
170
|
+
python3 .map/scripts/map_step_runner.py validate_research "$BRANCH" "$SUBTASK_ID"
|
|
169
171
|
python3 .map/scripts/map_orchestrator.py validate_step "$STEP_ID"
|
|
170
172
|
```
|
|
171
173
|
|
|
@@ -14,9 +14,7 @@ Exit codes:
|
|
|
14
14
|
|
|
15
15
|
import json
|
|
16
16
|
import os
|
|
17
|
-
import re
|
|
18
17
|
import sys
|
|
19
|
-
from pathlib import Path
|
|
20
18
|
|
|
21
19
|
# =============================================================================
|
|
22
20
|
# Default constants (overridable via .map/config.yaml → safe_path_prefixes)
|
|
@@ -36,6 +34,19 @@ _DEFAULT_DANGEROUS_FILE_PATTERNS = [
|
|
|
36
34
|
r"tokens?\.(json|ya?ml|toml|txt)$", # token files, not any file with "token" in path
|
|
37
35
|
]
|
|
38
36
|
|
|
37
|
+
_DEFAULT_DANGEROUS_FILE_MARKERS = (
|
|
38
|
+
".env",
|
|
39
|
+
"credential",
|
|
40
|
+
"private",
|
|
41
|
+
"key",
|
|
42
|
+
".pem",
|
|
43
|
+
"secret",
|
|
44
|
+
"id_rsa",
|
|
45
|
+
"id_ed25519",
|
|
46
|
+
"password",
|
|
47
|
+
"token",
|
|
48
|
+
)
|
|
49
|
+
|
|
39
50
|
# Dangerous bash command patterns
|
|
40
51
|
_DEFAULT_DANGEROUS_COMMANDS = [
|
|
41
52
|
# Block `rm -rf /` (bare root), `rm -rf /etc`, `rm -rf /home/user`, etc.,
|
|
@@ -81,14 +92,14 @@ def _load_config_overrides() -> dict:
|
|
|
81
92
|
Reads safe_path_prefixes from project config to allow customization.
|
|
82
93
|
Falls back to defaults when config is missing or unreadable.
|
|
83
94
|
"""
|
|
84
|
-
project_dir =
|
|
85
|
-
config_path = project_dir
|
|
86
|
-
if not
|
|
95
|
+
project_dir = os.environ.get("CLAUDE_PROJECT_DIR", os.getcwd())
|
|
96
|
+
config_path = os.path.join(project_dir, ".map", "config.yaml")
|
|
97
|
+
if not os.path.exists(config_path):
|
|
87
98
|
return {}
|
|
88
99
|
try:
|
|
89
100
|
import yaml # type: ignore[import-untyped]
|
|
90
101
|
|
|
91
|
-
with open(config_path) as f:
|
|
102
|
+
with open(config_path, encoding="utf-8") as f:
|
|
92
103
|
data = yaml.safe_load(f)
|
|
93
104
|
return data if isinstance(data, dict) else {}
|
|
94
105
|
except Exception:
|
|
@@ -121,6 +132,13 @@ def check_file_safety(path: str) -> tuple[bool, str]:
|
|
|
121
132
|
|
|
122
133
|
# Check dangerous patterns
|
|
123
134
|
path_lower = path.lower()
|
|
135
|
+
if DANGEROUS_FILE_PATTERNS == _DEFAULT_DANGEROUS_FILE_PATTERNS and not any(
|
|
136
|
+
marker in path_lower for marker in _DEFAULT_DANGEROUS_FILE_MARKERS
|
|
137
|
+
):
|
|
138
|
+
return True, ""
|
|
139
|
+
|
|
140
|
+
import re
|
|
141
|
+
|
|
124
142
|
for pattern in DANGEROUS_FILE_PATTERNS:
|
|
125
143
|
if re.search(pattern, path_lower, re.IGNORECASE):
|
|
126
144
|
return (
|
|
@@ -136,6 +154,8 @@ def check_command_safety(command: str) -> tuple[bool, str]:
|
|
|
136
154
|
if not command:
|
|
137
155
|
return True, ""
|
|
138
156
|
|
|
157
|
+
import re
|
|
158
|
+
|
|
139
159
|
for pattern in DANGEROUS_COMMANDS:
|
|
140
160
|
if re.search(pattern, command, re.IGNORECASE):
|
|
141
161
|
return False, f"Blocked: Dangerous command pattern detected: {pattern}"
|
|
@@ -390,8 +390,10 @@ def is_editing_phase(branch: str) -> tuple[bool, Optional[str]]:
|
|
|
390
390
|
"Required:\n"
|
|
391
391
|
f" 1. echo '<findings>' | python3 .map/scripts/map_step_runner.py \\\n"
|
|
392
392
|
f" save_research <branch> {subtask} # default kind=actor\n"
|
|
393
|
-
f" 2. python3 .map/scripts/
|
|
394
|
-
"
|
|
393
|
+
f" 2. python3 .map/scripts/map_step_runner.py validate_research \\\n"
|
|
394
|
+
f" <branch> {subtask}\n"
|
|
395
|
+
f" 3. python3 .map/scripts/map_orchestrator.py validate_step 2.2\n"
|
|
396
|
+
" 4. Then Edit/Write opens (ACTOR phase).\n"
|
|
395
397
|
"\n"
|
|
396
398
|
f"Note: this block is scoped to {subtask}'s affected_files. Edits to\n"
|
|
397
399
|
"files OUTSIDE that surface (orthogonal hotfixes, repo-root config,\n"
|
{mapify_cli-3.13.1 → mapify_cli-3.15.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py
RENAMED
|
@@ -1333,22 +1333,34 @@ def validate_step(
|
|
|
1333
1333
|
"recommendation": normalized_rec,
|
|
1334
1334
|
}
|
|
1335
1335
|
# RESEARCH (2.2) is documented MANDATORY for every subtask — enforce that
|
|
1336
|
-
# save_research wrote
|
|
1337
|
-
# check, "MANDATORY" was prompt-text only and
|
|
1336
|
+
# save_research wrote a machine-checkable artifact before letting Actor
|
|
1337
|
+
# proceed. Without this check, "MANDATORY" was prompt-text only and
|
|
1338
|
+
# malformed markdown could be silently passed downstream.
|
|
1338
1339
|
if step_id == "2.2" and state.current_subtask_id:
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1340
|
+
try:
|
|
1341
|
+
from map_step_runner import validate_research # pyright: ignore[reportMissingImports]
|
|
1342
|
+
research_report = validate_research(branch, state.current_subtask_id)
|
|
1343
|
+
except ImportError:
|
|
1344
|
+
research_report = {
|
|
1345
|
+
"valid": False,
|
|
1346
|
+
"errors": ["map_step_runner.validate_research could not be imported"],
|
|
1347
|
+
}
|
|
1348
|
+
if not research_report.get("valid"):
|
|
1349
|
+
research_errors = research_report.get("errors")
|
|
1350
|
+
if isinstance(research_errors, list) and research_errors:
|
|
1351
|
+
detail = "; ".join(str(err) for err in research_errors[:3])
|
|
1352
|
+
else:
|
|
1353
|
+
detail = "research artifact is missing or invalid"
|
|
1344
1354
|
return {
|
|
1345
1355
|
"valid": False,
|
|
1346
1356
|
"message": (
|
|
1347
|
-
f"RESEARCH
|
|
1357
|
+
f"RESEARCH artifact invalid for {state.current_subtask_id}: "
|
|
1358
|
+
f"{detail}. "
|
|
1348
1359
|
f"Run: python3 .map/scripts/map_step_runner.py save_research "
|
|
1349
1360
|
f"<branch> {state.current_subtask_id} (defaults kind=actor) "
|
|
1350
|
-
"before validate_step 2.2."
|
|
1361
|
+
"then validate_research before validate_step 2.2."
|
|
1351
1362
|
),
|
|
1363
|
+
"research_report": research_report,
|
|
1352
1364
|
}
|
|
1353
1365
|
# Auto-snapshot per-subtask baseline at RESEARCH-complete so the
|
|
1354
1366
|
# MONITOR-side validate_mutation_boundary check only flags files
|