mapify-cli 3.35.1__tar.gz → 3.36.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.35.1 → mapify_cli-3.36.0}/PKG-INFO +3 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/pyproject.toml +3 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/__init__.py +1 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/file_copier.py +137 -16
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/monitor.md +8 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/task-decomposer.md +1 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +1 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/monitor.toml +6 -0
- {mapify_cli-3.35.1/src/mapify_cli/templates → mapify_cli-3.36.0/src/mapify_cli/templates/codex}/hooks/post-compact-context.py +21 -0
- {mapify_cli-3.35.1/src/mapify_cli/templates → mapify_cli-3.36.0/src/mapify_cli/templates/codex}/hooks/workflow-context-injector.py +32 -4
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +3 -3
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +6 -4
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +1 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +11 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +12 -12
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +75 -5
- {mapify_cli-3.35.1/src/mapify_cli/templates/codex → mapify_cli-3.36.0/src/mapify_cli/templates}/hooks/post-compact-context.py +20 -1
- {mapify_cli-3.35.1/src/mapify_cli/templates/codex → mapify_cli-3.36.0/src/mapify_cli/templates}/hooks/workflow-context-injector.py +31 -5
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/codex_review_runner.py +55 -47
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +1388 -105
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +6 -6
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +3 -3
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +6 -4
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +5 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +1 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +11 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +16 -16
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +2 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +75 -5
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +8 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +1 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +1 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +6 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +20 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +31 -4
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/codex_review_runner.py.jinja +54 -46
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +1388 -105
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +6 -6
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +3 -3
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +6 -4
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +5 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +1 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +11 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +16 -16
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +2 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +75 -5
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/review_context_helpers.py +23 -7
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_codex_review_host.py +95 -3
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_locking.py +4 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_step_runner.py +125 -13
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_post_compact_context.py +30 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_release_ci_gates.py +127 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_attribution_receipts.py +16 -6
- mapify_cli-3.36.0/tests/test_review_changed_scope.py +1437 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_check_timeouts.py +27 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_context_transport.py +14 -5
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_explicit_base.py +2 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_explicit_base_stale_readers.py +2 -2
- mapify_cli-3.36.0/tests/test_review_mapify_managed.py +223 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_pending_collection.py +1 -1
- mapify_cli-3.36.0/tests/test_review_shard_docs.py +21 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_verdict_ledger.py +3 -2
- mapify_cli-3.36.0/tests/test_runtime_info_exclude.py +188 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_runtime_privacy_ignores.py +2 -1
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills.py +3 -2
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_sofa_client.py +2 -2
- mapify_cli-3.36.0/tests/test_unrun_verification_contract.py +27 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wave_abort_preservation.py +135 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wave_parallel_harness.py +3 -3
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_workflow_context_injector.py +33 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_worktree_isolation.py +23 -2
- mapify_cli-3.35.1/tests/test_review_changed_scope.py +0 -251
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/.claude/skills/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/.gitignore +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/LICENSE +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/__main__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/_python_guard.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/auto_update.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/boundary_quality_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/code_map.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/codex_exec.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/config/project_config.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/governance_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/grace_eval/schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/install_manifest.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/capture.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/digest_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/evidence.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/finalize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/minimality_eval.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/minimality_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/parallelism_observability.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/provider_registry.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/python_runtime.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/ralph_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/research_eval.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/research_eval_compare.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/schemas.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/scope_classifier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/review_corpus.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/review_pilot.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/actor.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/agents/review-reader.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/actor.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/review-reader.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/config.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/context-meter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/codex_review_host.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/_partials/vacuous-test-check.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/agents/review-reader.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/codex_review_host.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/tool_output_offload.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/update_install.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/update_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/update_versions.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/verification_recorder.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/_fake_task_tool.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/conftest.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/fixtures/codex/config.toml +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/fixtures/wave_blueprints.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/hooks/test_end_of_turn.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/review_pilot_git_cache.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/review_process_lifecycle.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/corpus.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/evidence/adjudication.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/evidence/control-audit.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/evidence/manual-run.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/evidence/manual-run.log +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_corpus/evidence/manual_repro.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_acceptance_additive_revision.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_acceptance_additive_revision_review.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_acceptance_proofs.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_agent_dispatch_audit.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_agent_memory.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_approval_hold.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_approved_baseline_gate_contract.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_auto_update.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_boundary_quality_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_classify_scope_script.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_code_map.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_codex_map_review_live.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_codex_review_native.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_compaction_offload_integration.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_concurrent_dispatch_harness.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_context_usefulness.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_cross_ai_config.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_debug_reference_install.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_domain_skill.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_governance_attack_fixtures.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_governance_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_grace_eval_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_grace_eval_sweep.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_install_manifest.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_auto.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_interruption.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_orchestrator.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_map_utils_sanitize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_mapify_cli.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_capture.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events_compat.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events_exit_status.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events_privacy.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events_review.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_events_tools.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_minimality_eval.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_minimality_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_model_invocable_skills.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_monitor_worktree_context.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_mutation_path_normalization.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_orchestrator_acceptance.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_parallelism_observability.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_preset_commands.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_project_config.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_prompt_layering.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_prompt_profile_commands.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_python_version_requirement.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_pyyaml_dep.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_ralph_response_types.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_ralph_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_repair_attribution.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_repair_workflow_gate.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_research_eval.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_research_eval_compare.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_resequence_pending.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_branch_receipts.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_context_delivery.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_corpus.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_explicit_base_legacy_override.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_finding_validation.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_pilot.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_pilot_git_cache.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_process_lifecycle.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_reader_capabilities.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_receipt_edge_cases.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_security_gates.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_review_trusted_policy.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_role_coverage_receipts.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_schemas.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_scope_classifier.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_scrub_internal_ids.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_settings_deny_globs.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_shell_json_pipes.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_apply.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_report.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_slice5b_leak_guards.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_static_analysis_bash.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_statusline.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_template_render.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_tool_output_offload.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_unborn_branch_scope.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_update_install.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_update_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_update_versions.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_vacuous_test_check.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_validate_spec_citations.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wave_eval_harness.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wave_fixtures.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wayfind_install.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wayfind_research.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_wayfind_runner.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_workflow_gate.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_workflow_state.py +0 -0
- {mapify_cli-3.35.1 → mapify_cli-3.36.0}/tests/test_worktree_commit_hooks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.36.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
|
|
@@ -26,6 +26,7 @@ Requires-Dist: pytest-asyncio>=0.26.0; extra == 'dev'
|
|
|
26
26
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
27
27
|
Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
|
|
28
28
|
Requires-Dist: pytest-timeout>=2.1.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
|
|
29
30
|
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
30
31
|
Requires-Dist: pyyaml>=6.0.0; extra == 'dev'
|
|
31
32
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
@@ -39,6 +40,7 @@ Requires-Dist: pytest-asyncio>=0.26.0; extra == 'test'
|
|
|
39
40
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
|
|
40
41
|
Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
|
|
41
42
|
Requires-Dist: pytest-timeout>=2.1.0; extra == 'test'
|
|
43
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == 'test'
|
|
42
44
|
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
43
45
|
Requires-Dist: pyyaml>=6.0.0; extra == 'test'
|
|
44
46
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mapify-cli"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.36.0"
|
|
4
4
|
description = "MAP Framework installer - Modular Agentic Planner for Claude Code"
|
|
5
5
|
authors = [{ name = "MAP Framework Contributors" }]
|
|
6
6
|
readme = "README.md"
|
|
@@ -29,6 +29,7 @@ test = [
|
|
|
29
29
|
"pytest-cov>=4.0.0",
|
|
30
30
|
"pytest-mock>=3.10.0",
|
|
31
31
|
"pytest-timeout>=2.1.0",
|
|
32
|
+
"pytest-xdist>=3.5.0",
|
|
32
33
|
"pyyaml>=6.0.0",
|
|
33
34
|
"hypothesis>=6.0.0",
|
|
34
35
|
"jsonschema>=4.0.0",
|
|
@@ -39,6 +40,7 @@ dev = [
|
|
|
39
40
|
"pytest-cov>=4.0.0",
|
|
40
41
|
"pytest-mock>=3.10.0",
|
|
41
42
|
"pytest-timeout>=2.1.0",
|
|
43
|
+
"pytest-xdist>=3.5.0",
|
|
42
44
|
"pyyaml>=6.0.0",
|
|
43
45
|
"hypothesis>=6.0.0",
|
|
44
46
|
"jsonschema>=4.0.0",
|
|
@@ -23,7 +23,7 @@ Or install globally:
|
|
|
23
23
|
mapify check
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
|
-
__version__ = "3.
|
|
26
|
+
__version__ = "3.36.0"
|
|
27
27
|
|
|
28
28
|
# MUST stay the first import: it turns "this interpreter is older than 3.11" into
|
|
29
29
|
# a message that says so, instead of the ImportError raised by `from datetime
|
|
@@ -13,9 +13,10 @@ import os
|
|
|
13
13
|
import secrets
|
|
14
14
|
import shutil
|
|
15
15
|
import stat
|
|
16
|
+
import subprocess
|
|
16
17
|
import tempfile
|
|
17
18
|
import time
|
|
18
|
-
from collections.abc import
|
|
19
|
+
from collections.abc import Generator
|
|
19
20
|
from dataclasses import dataclass
|
|
20
21
|
from fnmatch import fnmatchcase
|
|
21
22
|
from pathlib import Path
|
|
@@ -608,7 +609,7 @@ def _windows_gitignore_mutex_name(project_stat: os.stat_result) -> str:
|
|
|
608
609
|
@contextlib.contextmanager
|
|
609
610
|
def _windows_project_gitignore_mutex(
|
|
610
611
|
project_stat: os.stat_result,
|
|
611
|
-
) ->
|
|
612
|
+
) -> Generator[None, None, None]:
|
|
612
613
|
"""Acquire a process-shared Windows mutex without a filesystem artifact."""
|
|
613
614
|
ctypes: Any = importlib.import_module("ctypes")
|
|
614
615
|
wintypes: Any = importlib.import_module("ctypes.wintypes")
|
|
@@ -672,7 +673,7 @@ def _windows_project_gitignore_mutex(
|
|
|
672
673
|
def _windows_pinned_project_root(
|
|
673
674
|
project_root: Path,
|
|
674
675
|
project_original: os.stat_result,
|
|
675
|
-
) ->
|
|
676
|
+
) -> Generator[None, None, None]:
|
|
676
677
|
"""Prevent replacement of a Windows project directory during mutation."""
|
|
677
678
|
ctypes: Any = importlib.import_module("ctypes")
|
|
678
679
|
wintypes: Any = importlib.import_module("ctypes.wintypes")
|
|
@@ -726,7 +727,7 @@ def _windows_pinned_project_root(
|
|
|
726
727
|
def _pinned_project_root(
|
|
727
728
|
project_root: Path,
|
|
728
729
|
project_original: os.stat_result,
|
|
729
|
-
) ->
|
|
730
|
+
) -> Generator[int | None, None, None]:
|
|
730
731
|
"""Pin the project identity used by every relative .gitignore operation."""
|
|
731
732
|
if os.name == "nt":
|
|
732
733
|
with _windows_pinned_project_root(project_root, project_original):
|
|
@@ -765,14 +766,6 @@ def _pinned_project_root(
|
|
|
765
766
|
os.close(descriptor)
|
|
766
767
|
|
|
767
768
|
|
|
768
|
-
def _gitignore_lock_path(project_root: Path) -> Path:
|
|
769
|
-
"""Resolve the shared lock from stable filesystem identity, not spelling."""
|
|
770
|
-
return _gitignore_lock_path_for_stat(
|
|
771
|
-
project_root,
|
|
772
|
-
_validated_project_root_stat(project_root),
|
|
773
|
-
)
|
|
774
|
-
|
|
775
|
-
|
|
776
769
|
def _unsafe_gitignore_lock(lock_path: Path, reason: str) -> NoReturn:
|
|
777
770
|
raise UpdateRuntimeGitignoreSecurityError(
|
|
778
771
|
f"unsafe MAP .gitignore lock at {lock_path}: {reason}"
|
|
@@ -900,7 +893,7 @@ def _unlock_descriptor(descriptor: int) -> None:
|
|
|
900
893
|
@contextlib.contextmanager
|
|
901
894
|
def _project_gitignore_lock(
|
|
902
895
|
project_root: Path,
|
|
903
|
-
) ->
|
|
896
|
+
) -> Generator[tuple[int | None, os.stat_result], None, None]:
|
|
904
897
|
"""Serialize a complete MAP-owned root .gitignore transaction."""
|
|
905
898
|
project_original = _validated_project_root_stat(project_root)
|
|
906
899
|
with _pinned_project_root(project_root, project_original) as directory_fd:
|
|
@@ -1220,11 +1213,106 @@ def _has_effective_gitignore_path(lines: list[bytes], required_path: str) -> boo
|
|
|
1220
1213
|
)
|
|
1221
1214
|
|
|
1222
1215
|
|
|
1216
|
+
def _git_info_exclude_path(project_root: Path) -> Path | None:
|
|
1217
|
+
"""Return ``<git-common-dir>/info/exclude`` for a repo rooted at *project_root*.
|
|
1218
|
+
|
|
1219
|
+
``info/exclude`` patterns anchor at the repository top level, so a project
|
|
1220
|
+
root that is merely a subdirectory of a repo (or not a repo at all, or git
|
|
1221
|
+
is unavailable) returns None and the caller keeps the tracked ``.gitignore``.
|
|
1222
|
+
Linked worktrees share the common dir, hence one exclude file per clone.
|
|
1223
|
+
"""
|
|
1224
|
+
try:
|
|
1225
|
+
proc = subprocess.run(
|
|
1226
|
+
["git", "rev-parse", "--show-toplevel", "--git-common-dir"],
|
|
1227
|
+
cwd=project_root,
|
|
1228
|
+
capture_output=True,
|
|
1229
|
+
text=True,
|
|
1230
|
+
timeout=10,
|
|
1231
|
+
check=False,
|
|
1232
|
+
)
|
|
1233
|
+
except (OSError, subprocess.SubprocessError):
|
|
1234
|
+
return None
|
|
1235
|
+
lines = proc.stdout.splitlines()
|
|
1236
|
+
if proc.returncode != 0 or len(lines) != 2:
|
|
1237
|
+
return None
|
|
1238
|
+
toplevel, common = Path(lines[0]), Path(lines[1])
|
|
1239
|
+
try:
|
|
1240
|
+
if toplevel.resolve() != project_root.resolve():
|
|
1241
|
+
return None
|
|
1242
|
+
except OSError:
|
|
1243
|
+
return None
|
|
1244
|
+
if not common.is_absolute():
|
|
1245
|
+
common = project_root / common
|
|
1246
|
+
return common / "info" / "exclude"
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
def _prepare_info_exclude_directory(exclude: Path) -> None:
|
|
1250
|
+
"""Create ``info/`` when missing and require it to be a direct directory."""
|
|
1251
|
+
try:
|
|
1252
|
+
exclude.parent.mkdir(parents=True, exist_ok=True)
|
|
1253
|
+
current = os.lstat(exclude.parent)
|
|
1254
|
+
except OSError as exc:
|
|
1255
|
+
_unsafe_project_gitignore(
|
|
1256
|
+
exclude, f"could not prepare {exclude.parent} ({exc})"
|
|
1257
|
+
)
|
|
1258
|
+
if stat.S_ISLNK(current.st_mode) or not stat.S_ISDIR(current.st_mode):
|
|
1259
|
+
_unsafe_project_gitignore(
|
|
1260
|
+
exclude, "the info directory must be a direct directory"
|
|
1261
|
+
)
|
|
1262
|
+
|
|
1263
|
+
|
|
1223
1264
|
def _has_gitignore_marker(lines: list[bytes], marker: str) -> bool:
|
|
1224
1265
|
encoded = marker.encode()
|
|
1225
1266
|
return any(line == encoded or line.startswith(encoded + b" ") for line in lines)
|
|
1226
1267
|
|
|
1227
1268
|
|
|
1269
|
+
def _merge_runtime_exclude(
|
|
1270
|
+
exclude: Path,
|
|
1271
|
+
gitignore_lines: list[bytes],
|
|
1272
|
+
project_root: Path,
|
|
1273
|
+
project_original: os.stat_result,
|
|
1274
|
+
) -> bool | None:
|
|
1275
|
+
"""Append missing runtime paths to the git exclude file.
|
|
1276
|
+
|
|
1277
|
+
Presence in either file counts (OR). Returns True when the exclude file
|
|
1278
|
+
was rewritten, False when nothing was needed, and None when a ``.gitignore``
|
|
1279
|
+
negation (which outranks ``info/exclude``) defeats an exclude entry, so the
|
|
1280
|
+
caller must repair the tracked ``.gitignore`` instead.
|
|
1281
|
+
"""
|
|
1282
|
+
existing, original = _read_safe_gitignore(exclude, None)
|
|
1283
|
+
exclude_lines = existing.splitlines()
|
|
1284
|
+
# .gitignore outranks info/exclude: evaluate exclude rules first.
|
|
1285
|
+
combined = exclude_lines + gitignore_lines
|
|
1286
|
+
missing = [
|
|
1287
|
+
path
|
|
1288
|
+
for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
|
|
1289
|
+
if not _has_effective_gitignore_path(combined, path)
|
|
1290
|
+
]
|
|
1291
|
+
if not missing:
|
|
1292
|
+
return False
|
|
1293
|
+
if any(
|
|
1294
|
+
line.startswith(b"!") and _negation_targets_path(line, path.encode())
|
|
1295
|
+
for path in missing
|
|
1296
|
+
for line in gitignore_lines
|
|
1297
|
+
):
|
|
1298
|
+
return None
|
|
1299
|
+
_prepare_info_exclude_directory(exclude)
|
|
1300
|
+
block: list[bytes] = []
|
|
1301
|
+
if not _has_gitignore_marker(exclude_lines, _UPDATE_RUNTIME_GITIGNORE_MARKER):
|
|
1302
|
+
block.append(_UPDATE_RUNTIME_GITIGNORE_MARKER.encode())
|
|
1303
|
+
block.extend(path.encode() for path in missing)
|
|
1304
|
+
separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
|
|
1305
|
+
_atomic_replace_gitignore(
|
|
1306
|
+
exclude,
|
|
1307
|
+
existing + separator + b"\n".join(block) + b"\n",
|
|
1308
|
+
original,
|
|
1309
|
+
None,
|
|
1310
|
+
project_root,
|
|
1311
|
+
project_original,
|
|
1312
|
+
)
|
|
1313
|
+
return True
|
|
1314
|
+
|
|
1315
|
+
|
|
1228
1316
|
def _merge_project_gitignore_locked(
|
|
1229
1317
|
project_root: Path,
|
|
1230
1318
|
directory_fd: int | None,
|
|
@@ -1234,20 +1322,39 @@ def _merge_project_gitignore_locked(
|
|
|
1234
1322
|
include_sofa: bool = False,
|
|
1235
1323
|
include_agent_memory_local: bool = False,
|
|
1236
1324
|
include_settings_local: bool = False,
|
|
1325
|
+
runtime_exclude: Path | None = None,
|
|
1237
1326
|
) -> int:
|
|
1238
|
-
"""Append selected MAP-owned blocks while the shared lock is held.
|
|
1327
|
+
"""Append selected MAP-owned blocks while the shared lock is held.
|
|
1328
|
+
|
|
1329
|
+
With ``runtime_exclude`` set, the runtime block goes to that git exclude
|
|
1330
|
+
file instead of the tracked ``.gitignore``; privacy blocks always stay in
|
|
1331
|
+
``.gitignore``.
|
|
1332
|
+
"""
|
|
1239
1333
|
gitignore = project_root / ".gitignore"
|
|
1240
1334
|
existing, original = _read_safe_gitignore(gitignore, directory_fd)
|
|
1241
1335
|
_validate_project_root_unchanged(project_root, project_original)
|
|
1242
1336
|
existing_lines = existing.splitlines()
|
|
1243
1337
|
|
|
1244
1338
|
additions: list[bytes] = []
|
|
1339
|
+
exclude_changed = False
|
|
1245
1340
|
if include_runtime:
|
|
1246
1341
|
missing_runtime_paths = [
|
|
1247
1342
|
path
|
|
1248
1343
|
for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
|
|
1249
1344
|
if not _has_effective_gitignore_path(existing_lines, path)
|
|
1250
1345
|
]
|
|
1346
|
+
if runtime_exclude is not None:
|
|
1347
|
+
outcome = _merge_runtime_exclude(
|
|
1348
|
+
runtime_exclude,
|
|
1349
|
+
existing_lines,
|
|
1350
|
+
project_root,
|
|
1351
|
+
project_original,
|
|
1352
|
+
)
|
|
1353
|
+
# None: a .gitignore negation outranks info/exclude, so the
|
|
1354
|
+
# tracked-file repair below still applies.
|
|
1355
|
+
if outcome is not None:
|
|
1356
|
+
exclude_changed = outcome
|
|
1357
|
+
missing_runtime_paths = []
|
|
1251
1358
|
if missing_runtime_paths:
|
|
1252
1359
|
runtime_lines: list[bytes] = []
|
|
1253
1360
|
marker = _UPDATE_RUNTIME_GITIGNORE_MARKER.encode()
|
|
@@ -1291,7 +1398,7 @@ def _merge_project_gitignore_locked(
|
|
|
1291
1398
|
|
|
1292
1399
|
if not additions:
|
|
1293
1400
|
_validate_gitignore_unchanged(gitignore, original, directory_fd)
|
|
1294
|
-
return 0
|
|
1401
|
+
return 1 if exclude_changed else 0
|
|
1295
1402
|
separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
|
|
1296
1403
|
replacement = existing + separator + b"".join(additions)
|
|
1297
1404
|
_atomic_replace_gitignore(
|
|
@@ -1312,11 +1419,17 @@ def _merge_project_gitignore(
|
|
|
1312
1419
|
include_sofa: bool = False,
|
|
1313
1420
|
include_agent_memory_local: bool = False,
|
|
1314
1421
|
include_settings_local: bool = False,
|
|
1422
|
+
runtime_to_git_exclude: bool = False,
|
|
1315
1423
|
) -> int:
|
|
1316
1424
|
"""Safely, atomically, and serially append MAP-owned ignore blocks."""
|
|
1317
1425
|
project_root = project_path.resolve(strict=True)
|
|
1318
1426
|
if not project_root.is_dir():
|
|
1319
1427
|
raise NotADirectoryError(f"MAP project root is not a directory: {project_root}")
|
|
1428
|
+
runtime_exclude = (
|
|
1429
|
+
_git_info_exclude_path(project_root)
|
|
1430
|
+
if include_runtime and runtime_to_git_exclude
|
|
1431
|
+
else None
|
|
1432
|
+
)
|
|
1320
1433
|
with _project_gitignore_lock(project_root) as (directory_fd, project_original):
|
|
1321
1434
|
return _merge_project_gitignore_locked(
|
|
1322
1435
|
project_root,
|
|
@@ -1326,6 +1439,7 @@ def _merge_project_gitignore(
|
|
|
1326
1439
|
include_sofa=include_sofa,
|
|
1327
1440
|
include_agent_memory_local=include_agent_memory_local,
|
|
1328
1441
|
include_settings_local=include_settings_local,
|
|
1442
|
+
runtime_exclude=runtime_exclude,
|
|
1329
1443
|
)
|
|
1330
1444
|
|
|
1331
1445
|
|
|
@@ -1336,10 +1450,17 @@ def merge_update_runtime_gitignore(
|
|
|
1336
1450
|
agent_memory_local: bool = False,
|
|
1337
1451
|
settings_local: bool = False,
|
|
1338
1452
|
) -> int:
|
|
1339
|
-
"""Atomically establish runtime and requested privacy ignore entries.
|
|
1453
|
+
"""Atomically establish runtime and requested privacy ignore entries.
|
|
1454
|
+
|
|
1455
|
+
The runtime block is local state, so in a git repo rooted at *project_path*
|
|
1456
|
+
it goes to ``<git-common-dir>/info/exclude`` and leaves the tracked
|
|
1457
|
+
``.gitignore`` clean; elsewhere it falls back to ``.gitignore``. Privacy
|
|
1458
|
+
blocks are repo policy and always go to ``.gitignore``.
|
|
1459
|
+
"""
|
|
1340
1460
|
return _merge_project_gitignore(
|
|
1341
1461
|
project_path,
|
|
1342
1462
|
include_runtime=True,
|
|
1463
|
+
runtime_to_git_exclude=True,
|
|
1343
1464
|
include_sofa=sofa,
|
|
1344
1465
|
include_agent_memory_local=agent_memory_local,
|
|
1345
1466
|
include_settings_local=settings_local,
|
|
@@ -136,6 +136,10 @@ state-changing orchestration continues in its original checkout. A standalone
|
|
|
136
136
|
Only a diagnostic satisfying every condition in “Explicitly approved
|
|
137
137
|
baseline gate failures” may be excluded from the scoped verdict; keep
|
|
138
138
|
the full build gate failed and continue the other checks.
|
|
139
|
+
**VERIFICATION EXECUTION GATE (MANDATORY — same weight as BUILD GATE):** an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute — tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 — is NOT a pass.
|
|
140
|
+
- Set `valid: false` with issue `verification not executed: <tool> (<reason>)`.
|
|
141
|
+
- List the tool in `tools_run` with status `unavailable` or `skipped`; never omit it.
|
|
142
|
+
- Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
|
|
139
143
|
3. Verify Goal is achieved — trace code path to confirm the stated outcome
|
|
140
144
|
4. Verify Action is implemented — check that the specified method/operation exists
|
|
141
145
|
5. **Verify mutation boundary (MANDATORY):** Run
|
|
@@ -329,7 +333,7 @@ All language handlers produce a standardized JSON format:
|
|
|
329
333
|
"findings": [
|
|
330
334
|
{ "tool": "ruff", "file": "src/main.py", "line": 42, "severity": "error", "code": "F821", "message": "Undefined name" }
|
|
331
335
|
],
|
|
332
|
-
"tools_run": ["ruff", "mypy"]
|
|
336
|
+
"tools_run": ["ruff", "mypy", {"tool": "golangci-lint", "status": "unavailable"}]
|
|
333
337
|
}
|
|
334
338
|
```
|
|
335
339
|
|
|
@@ -1741,6 +1745,9 @@ GOOD: "suggestion": "Use path\\to\\file"
|
|
|
1741
1745
|
Before returning JSON, verify:
|
|
1742
1746
|
|
|
1743
1747
|
```
|
|
1748
|
+
□ 0. VERIFICATION EXECUTION GATE: every applicable lint/type/test check actually ran;
|
|
1749
|
+
any that could not run is an issue (`verification not executed: <tool> (<reason>)`) → valid=false
|
|
1750
|
+
|
|
1744
1751
|
□ 1. All required fields present:
|
|
1745
1752
|
valid, summary, issues, passed_checks, failed_checks,
|
|
1746
1753
|
feedback_for_actor, estimated_fix_time, mcp_tools_used
|
|
@@ -342,6 +342,7 @@ Return **ONLY** valid JSON in this exact structure:
|
|
|
342
342
|
- Example: "Use existing RateLimiter middleware, configure for /api/* routes"
|
|
343
343
|
**subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
|
|
344
344
|
- **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
|
|
345
|
+
- **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
|
|
345
346
|
- MUST map `validation_criteria` → tests:
|
|
346
347
|
- For each `VCn:` criterion, include at least one planned test name that covers it.
|
|
347
348
|
- Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
|
{mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/agents/decomposer.toml
RENAMED
|
@@ -307,6 +307,7 @@ Return **ONLY** valid JSON in this exact structure:
|
|
|
307
307
|
- Example: "Use existing RateLimiter middleware, configure for /api/* routes"
|
|
308
308
|
**subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
|
|
309
309
|
- **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
|
|
310
|
+
- **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
|
|
310
311
|
- MUST map `validation_criteria` → tests:
|
|
311
312
|
- For each `VCn:` criterion, include at least one planned test name that covers it.
|
|
312
313
|
- Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
|
|
@@ -127,6 +127,11 @@ Verification sequence (execute in order):
|
|
|
127
127
|
If build/compile fails -> valid: false immediately with compilation errors.
|
|
128
128
|
Do NOT proceed to other checks.
|
|
129
129
|
|
|
130
|
+
VERIFICATION EXECUTION GATE (MANDATORY -- same weight as BUILD GATE): an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute -- tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 -- is NOT a pass.
|
|
131
|
+
- Set valid: false with issue `verification not executed: <tool> (<reason>)`.
|
|
132
|
+
- List the tool in tools_run with status `unavailable` or `skipped`; never omit it.
|
|
133
|
+
- Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
|
|
134
|
+
|
|
130
135
|
3. Verify Goal is achieved -- trace code path to confirm the stated outcome
|
|
131
136
|
4. Verify Action is implemented -- check that the specified method/operation exists
|
|
132
137
|
5. Verify mutation boundary (MANDATORY): Run
|
|
@@ -1260,6 +1265,7 @@ Expected output:
|
|
|
1260
1265
|
|
|
1261
1266
|
Before returning your review JSON:
|
|
1262
1267
|
1. Did I run the BUILD GATE (build/compile command)?
|
|
1268
|
+
1a. Did I run the VERIFICATION EXECUTION GATE (every applicable lint/type/test check executed, none unavailable/skipped)?
|
|
1263
1269
|
2. Did I check all 11 validation dimensions systematically?
|
|
1264
1270
|
3. Did I verify documentation against source of truth (if applicable)?
|
|
1265
1271
|
4. Are all issues specific with location and actionable suggestions?
|
|
@@ -110,6 +110,19 @@ def state_string(state: dict, key: str, default: str = "") -> str:
|
|
|
110
110
|
return default
|
|
111
111
|
|
|
112
112
|
|
|
113
|
+
def active_wave_bits(state: dict) -> list[str]:
|
|
114
|
+
"""Return ``wave=i/n`` and ``phases=...`` bits when the wave loop is engaged."""
|
|
115
|
+
waves = state.get("execution_waves")
|
|
116
|
+
phases = state.get("subtask_phases")
|
|
117
|
+
wave_idx = state.get("current_wave_index", 0)
|
|
118
|
+
if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
|
|
119
|
+
return []
|
|
120
|
+
if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
|
|
121
|
+
return []
|
|
122
|
+
per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
|
|
123
|
+
return [f"wave={wave_idx + 1}/{len(waves)}", f"phases=[{per_subtask}]"]
|
|
124
|
+
|
|
125
|
+
|
|
113
126
|
def load_json(path: Path) -> dict | None:
|
|
114
127
|
try:
|
|
115
128
|
data = json.loads(path.read_text(encoding="utf-8"))
|
|
@@ -209,10 +222,17 @@ def build_reprime(branch: str, branch_dir: Path) -> str | None:
|
|
|
209
222
|
step_id = state_string(state, "current_step_id")
|
|
210
223
|
subtask_id = state_string(state, "current_subtask_id")
|
|
211
224
|
|
|
225
|
+
wave_bits = active_wave_bits(state)
|
|
226
|
+
if wave_bits:
|
|
227
|
+
# Wave loop engaged: current_step_*/current_subtask_id are stale
|
|
228
|
+
# sequential leftovers; subtask_phases is the live progress record.
|
|
229
|
+
phase = step_id = subtask_id = ""
|
|
230
|
+
|
|
212
231
|
lines = ["MAP RE-PRIME after compaction:"]
|
|
213
232
|
state_bits = []
|
|
214
233
|
if workflow:
|
|
215
234
|
state_bits.append(f"workflow={workflow}")
|
|
235
|
+
state_bits.extend(wave_bits)
|
|
216
236
|
if step_id:
|
|
217
237
|
state_bits.append(f"step={step_id}")
|
|
218
238
|
if phase:
|
|
@@ -335,3 +355,4 @@ def main() -> None:
|
|
|
335
355
|
|
|
336
356
|
if __name__ == "__main__":
|
|
337
357
|
main()
|
|
358
|
+
|
|
@@ -501,6 +501,24 @@ def state_string(state: dict, key: str, default: str = "") -> str:
|
|
|
501
501
|
return default
|
|
502
502
|
|
|
503
503
|
|
|
504
|
+
def active_wave_label(state: dict) -> str | None:
|
|
505
|
+
"""Return ``WAVE i/n [ST-x:phase ...]`` when the wave loop is engaged.
|
|
506
|
+
|
|
507
|
+
Waves track progress only in ``subtask_phases``; ``current_step_*`` is a
|
|
508
|
+
stale sequential leftover (advance_wave resets it to 2.2/RESEARCH), so it
|
|
509
|
+
must not drive the banner while the wave loop is active.
|
|
510
|
+
"""
|
|
511
|
+
waves = state.get("execution_waves")
|
|
512
|
+
phases = state.get("subtask_phases")
|
|
513
|
+
wave_idx = state.get("current_wave_index", 0)
|
|
514
|
+
if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
|
|
515
|
+
return None
|
|
516
|
+
if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
|
|
517
|
+
return None
|
|
518
|
+
per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
|
|
519
|
+
return f"WAVE {wave_idx + 1}/{len(waves)} [{per_subtask}]"
|
|
520
|
+
|
|
521
|
+
|
|
504
522
|
def required_action_for_step(step_id: str, step_phase: str) -> str | None:
|
|
505
523
|
"""Return a short required-next-action hint for common steps."""
|
|
506
524
|
if step_id == "1.55":
|
|
@@ -713,6 +731,15 @@ def format_reminder(
|
|
|
713
731
|
mode = "batch:parallel"
|
|
714
732
|
|
|
715
733
|
required = required_action_for_step(step_id, step_phase)
|
|
734
|
+
step_label = f"{step_id} {step_phase}"
|
|
735
|
+
wave_label = active_wave_label(state)
|
|
736
|
+
if wave_label:
|
|
737
|
+
# Wave loop engaged: current_step_*/current_subtask_id are stale
|
|
738
|
+
# sequential leftovers, so show per-subtask phases instead.
|
|
739
|
+
step_label = wave_label
|
|
740
|
+
wave_hint = ""
|
|
741
|
+
subtask_id = "-"
|
|
742
|
+
required = None
|
|
716
743
|
|
|
717
744
|
diag_hint = ""
|
|
718
745
|
diag_file = (
|
|
@@ -738,7 +765,7 @@ def format_reminder(
|
|
|
738
765
|
if len(current_files) > 5:
|
|
739
766
|
files_hint += f" +{len(current_files) - 5}"
|
|
740
767
|
|
|
741
|
-
if not step_id and not step_phase:
|
|
768
|
+
if not step_id and not step_phase and not wave_label:
|
|
742
769
|
return None
|
|
743
770
|
|
|
744
771
|
# Context-aware: add goal and subtask title
|
|
@@ -772,15 +799,15 @@ def format_reminder(
|
|
|
772
799
|
except OSError:
|
|
773
800
|
pass
|
|
774
801
|
ts_hint = f" @ {now_utc.strftime('%H:%M:%S.%f')[:-3]}Z (state {state_age_str})"
|
|
775
|
-
base = f"[MAP]{ts_hint} {
|
|
802
|
+
base = f"[MAP]{ts_hint} {step_label}{goal_hint} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
|
|
776
803
|
|
|
777
804
|
# Enforce limit: trim goal first, then constraint detail, then word-boundary truncate.
|
|
778
805
|
if len(base) > REMINDER_LIMIT:
|
|
779
806
|
goal_hint = ""
|
|
780
|
-
base = f"[MAP]{ts_hint} {
|
|
807
|
+
base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
|
|
781
808
|
if len(base) > REMINDER_LIMIT:
|
|
782
809
|
hard_hint = ""
|
|
783
|
-
base = f"[MAP]{ts_hint} {
|
|
810
|
+
base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{tag_hint}{authority_hint}"
|
|
784
811
|
if len(base) > REMINDER_LIMIT:
|
|
785
812
|
base = _truncate_at_word(base, REMINDER_LIMIT)
|
|
786
813
|
|
|
@@ -1126,3 +1153,4 @@ def main() -> None:
|
|
|
1126
1153
|
|
|
1127
1154
|
if __name__ == "__main__":
|
|
1128
1155
|
main()
|
|
1156
|
+
|
{mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md
RENAMED
|
@@ -72,7 +72,7 @@ python3 .map/scripts/map_step_runner.py record_auto_phase "<phase>" "<status>" \
|
|
|
72
72
|
--reason "<why this status>"
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
`<phase>` is the workflow name being entered/exited (`map-plan`, `map-efficient`, `map-check`, or `map-review`). `<status>` follows the phase's own vocabulary -- use `completed` on a clean phase close and `aborted`/`failed` on a phase you cannot recover; anything else leaves the chain `in_progress`. Pass every hold id that `auto_decide_holds` auto-approved for this phase in `--evidence-refs`, so the approval is recorded twice: once in the hold's own audit note, once in the phase ledger.
|
|
75
|
+
`<phase>` is the workflow name being entered/exited (`map-plan`, `map-efficient`, `map-check`, or `map-review`). `<status>` follows the phase's own vocabulary -- use `completed` on a clean phase close and `aborted`/`failed` on a phase you cannot recover; anything else leaves the chain `in_progress`. Phase completion and route completion are separate: a `completed` phase closes the chain only when it is the last phase of the selected route -- `map-review` for the multi-phase `map-plan` and `map-efficient` routes, or the route's only phase for the single-phase `map-resume`, `map-check`, and `map-fast` routes. Any earlier `completed` leaves the chain `in_progress` so the next phase is accepted. Pass every hold id that `auto_decide_holds` auto-approved for this phase in `--evidence-refs`, so the approval is recorded twice: once in the hold's own audit note, once in the phase ledger.
|
|
76
76
|
|
|
77
77
|
**At most one re-entry per phase (HC-2):** `record_auto_phase` mechanically enforces this -- the first record of a phase name is `attempt: 1`, a re-entry is `attempt: 2`, and a third call for the SAME phase name is refused and force-aborts the chain (`chain_status: "aborted"`). Before spending the single permitted re-entry, inspect ground truth -- `git status`/`git diff` and the phase's own `step_state.json` (or equivalent phase artifacts, test output, Monitor verdict) -- to confirm the phase genuinely needs a fresh attempt rather than a partial success being misread as a failure. A second failure of the same phase means STOP and hand off to `$map-resume` -- never attempt a third call for that phase. A chain already `chain_status: "aborted"` or `"blocked"` refuses every further `record_auto_phase` call regardless of phase name; a new `route_task` call is the ONLY legitimate way to continue.
|
|
78
78
|
|
|
@@ -84,8 +84,8 @@ Once routed, drive the selected chain by invoking the existing slash workflows e
|
|
|
84
84
|
route_task -> [map-plan] -> [map-efficient] -> [map-check] -> [map-review]
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
- `map-resume`, `map-check`, and `map-fast` routes are single-phase: run the one workflow, record its result with `record_auto_phase`, and finish.
|
|
88
|
-
- `map-plan` and `map-efficient` routes continue the chain: `map-plan` produces the task plan that `map-efficient` consumes, `map-efficient` implements it, and the chain then continues to `map-check` and `map-review` to close the loop.
|
|
87
|
+
- `map-resume`, `map-check`, and `map-fast` routes are single-phase: run the one workflow, record its result with `record_auto_phase`, and finish -- the route's only phase closes the chain.
|
|
88
|
+
- `map-plan` and `map-efficient` routes continue the chain: `map-plan` produces the task plan that `map-efficient` consumes, `map-efficient` implements it, and the chain then continues to `map-check` and `map-review` to close the loop. The route stays `chain_status: in_progress` after each intermediate phase completes and closes only when `map-review` completes.
|
|
89
89
|
- Invoke each phase by reading and following its own `SKILL.md` in full, exactly as if the user had typed the corresponding slash command -- do not summarize, skip, or reimplement its internal steps. `$map-auto` never shells out to a separate Claude process, a new Python execution engine, or any other new phase-driving mechanism to do this -- phases are driven ONLY by invoking the existing slash workflows above and the three runner subcommands from Steps 1-3.
|
|
90
90
|
- A `valid=false` Monitor verdict INSIDE a phase is that phase's own hard stop: its owning workflow's existing retry/escalation rules apply unchanged. `$map-auto` never overrides, suppresses, or re-runs past a Monitor rejection on the phase's behalf -- a phase that cannot get past Monitor is a failed phase for the purposes of Step 3's re-entry bound.
|
|
91
91
|
- The autopilot run ends at a committed feature branch. `$map-auto` never opens a pull request, never merges, and never polls CI -- report the committed branch, the phases recorded, and stop.
|
|
@@ -15,7 +15,7 @@ python3 .map/scripts/map_step_runner.py record_auto_phase <phase> <status> [--br
|
|
|
15
15
|
|
|
16
16
|
- `route_task <task>` -- `<task>` is the free-text task description (quote it). `--branch` defaults to the current branch. `--dry-run` recommends a route without marking the chain `in_progress` (see Dry-run usage below).
|
|
17
17
|
- `auto_decide_holds` -- no positional arguments; only `--branch` (defaults to current branch).
|
|
18
|
-
- `record_auto_phase <phase> <status>` -- `<phase>` is the workflow name (`map-plan`, `map-efficient`, `map-check`, `map-review`); `<status>` is the phase's own outcome word (`completed`, `failed`, `aborted`, or any other phase-specific status, which leaves `chain_status` at `in_progress`). `--evidence-refs` takes a comma-separated list of ids (auto-approved hold ids from the surrounding `auto_decide_holds` calls); `--reason` is a free-text note stored on the ledger entry.
|
|
18
|
+
- `record_auto_phase <phase> <status>` -- `<phase>` is the workflow name (`map-plan`, `map-efficient`, `map-check`, `map-review`); `<status>` is the phase's own outcome word (`completed`, `failed`, `aborted`, or any other phase-specific status, which leaves `chain_status` at `in_progress`). A `completed` status closes the chain (`chain_status: "completed"`) only on the LAST phase of the selected route -- `map-review` for multi-phase `map-plan`/`map-efficient` routes, or the single phase of `map-resume`/`map-check`/`map-fast`; a `completed` intermediate phase keeps the chain `in_progress`. `--evidence-refs` takes a comma-separated list of ids (auto-approved hold ids from the surrounding `auto_decide_holds` calls); `--reason` is a free-text note stored on the ledger entry.
|
|
19
19
|
|
|
20
20
|
## Chain Walkthrough Example
|
|
21
21
|
|
|
@@ -35,10 +35,12 @@ $ python3 .map/scripts/map_step_runner.py auto_decide_holds
|
|
|
35
35
|
|
|
36
36
|
$ python3 .map/scripts/map_step_runner.py record_auto_phase "map-efficient" "completed" \
|
|
37
37
|
--evidence-refs "hold-1" --reason "all subtasks closed, make check green"
|
|
38
|
-
{"status": "success", "chain_status": "
|
|
38
|
+
{"status": "success", "chain_status": "in_progress", "phase": "map-efficient", "attempt": 1, ...}
|
|
39
39
|
|
|
40
|
-
# --
|
|
41
|
-
#
|
|
40
|
+
# -- map-efficient is not the last phase of this route: the chain stays
|
|
41
|
+
# in_progress and continues to map-check, then map-review, each following the
|
|
42
|
+
# same poll -> drive -> poll -> record loop. Only map-review completing closes
|
|
43
|
+
# the route (chain_status: "completed") --
|
|
42
44
|
```
|
|
43
45
|
|
|
44
46
|
The run ends there: a committed feature branch, `phases[]` in `auto-route.json` holding one entry per phase attempt, and no PR/merge/CI step of any kind.
|
{mapify_cli-3.35.1 → mapify_cli-3.36.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md
RENAMED
|
@@ -71,7 +71,7 @@ Execute all 12 gates. Read the full gate scripts in [release-reference.md § Pha
|
|
|
71
71
|
**Gate summary (full commands in reference):**
|
|
72
72
|
- **Gates 1–4:** `make check` — tests, ruff, mypy, pyright, rendered-template parity
|
|
73
73
|
- **Gates 5–6:** Build + twine check
|
|
74
|
-
- **Gate 7:** Security audit (`pip-audit`)
|
|
74
|
+
- **Gate 7:** Security audit of the project's resolved requirements (`uv export` + `pip-audit -r`)
|
|
75
75
|
- **Gates 8–10:** Git state — main branch, clean working directory, up-to-date with origin
|
|
76
76
|
- **Gate 11:** CI run for `git merge-base HEAD origin/main` must have `conclusion: "success"`; unpushed commits may touch only release metadata
|
|
77
77
|
- **Gate 12:** CHANGELOG.md completeness (Unreleased section exists and has content; commit/entry gap check)
|
|
@@ -35,11 +35,20 @@ uv run --with twine twine check dist/*
|
|
|
35
35
|
### Gate 7: Security Audit
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
set -euo pipefail
|
|
39
|
+
# Audit the project's resolved dependency set, not the runner interpreter.
|
|
40
|
+
REQS_FILE=$(mktemp "${TMPDIR:-/tmp}/mapify-release-reqs.XXXXXX")
|
|
41
|
+
trap 'rm -f "$REQS_FILE"' EXIT
|
|
42
|
+
uv export --all-extras --all-groups --no-hashes --no-emit-project \
|
|
43
|
+
--format requirements-txt > "$REQS_FILE"
|
|
44
|
+
# --no-deps audits exactly the exported pins; --disable-pip stops pip from
|
|
45
|
+
# resolving or mutating the runner environment.
|
|
46
|
+
uvx pip-audit -r "$REQS_FILE" --disable-pip --no-deps
|
|
40
47
|
```
|
|
41
48
|
|
|
42
49
|
**Expected Results:**
|
|
50
|
+
- ✅ `uv export` resolves the project's dependencies (all extras and groups)
|
|
51
|
+
- ✅ `pip-audit` audits the exported pinned requirements, not the runner environment
|
|
43
52
|
- ✅ No known security vulnerabilities in dependencies
|
|
44
53
|
|
|
45
54
|
**If vulnerabilities found:** Assess severity; update dependencies if critical.
|