mapify-cli 3.34.2__tar.gz → 3.35.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.34.2 → mapify_cli-3.35.0}/PKG-INFO +23 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/README.md +22 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/pyproject.toml +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/__init__.py +6 -5
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/file_copier.py +48 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/capture.py +2 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/ralph_state.py +2 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/actor.md +27 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/evaluator.md +26 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/monitor.md +51 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/review-reader.md +10 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/actor.toml +26 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +25 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/monitor.toml +49 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/review-reader.toml +10 -1
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/context-meter.py +21 -9
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/map-token-meter.py +21 -9
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/post-compact-context.py +20 -9
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/pre-compact-save-transcript.py +20 -9
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/ralph-context-pruner.py +20 -9
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/ralph-iteration-logger.py +23 -11
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/scrub-internal-ids.py +19 -7
- {mapify_cli-3.34.2/src/mapify_cli/templates → mapify_cli-3.35.0/src/mapify_cli/templates/codex}/hooks/workflow-context-injector.py +20 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +15 -5
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +41 -11
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +7 -7
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +16 -7
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +3 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +17 -17
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +11 -5
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +96 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +5 -17
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +3 -12
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +5 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +9 -2
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/context-meter.py +20 -10
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/map-statusline.py +2 -1
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/map-token-meter.py +20 -10
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/post-compact-context.py +19 -10
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/pre-compact-save-transcript.py +19 -10
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/ralph-context-pruner.py +19 -10
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/ralph-iteration-logger.py +22 -12
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/scrub-internal-ids.py +18 -8
- {mapify_cli-3.34.2/src/mapify_cli/templates/codex → mapify_cli-3.35.0/src/mapify_cli/templates}/hooks/workflow-context-injector.py +19 -10
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/workflow-gate.py +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +20 -8
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +1393 -210
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/map_utils.py +37 -15
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +110 -74
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +46 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +17 -6
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +6 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +5 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +51 -10
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +16 -7
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +3 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +16 -16
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +10 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +96 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +5 -17
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +3 -12
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +5 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +9 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/skill-rules.json +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +20 -0
- mapify_cli-3.35.0/src/mapify_cli/templates_src/_partials/vacuous-test-check.md.jinja +21 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +6 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +5 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +10 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/review-reader.md.jinja +10 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +5 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +4 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +8 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +10 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +20 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +2 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +20 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +22 -11
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +18 -7
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +19 -9
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +20 -8
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +1393 -210
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +37 -15
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +110 -74
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +46 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +17 -6
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +6 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +19 -8
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +65 -21
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +8 -8
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +16 -7
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +3 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +17 -17
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +11 -5
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +100 -4
- mapify_cli-3.35.0/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +29 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +3 -13
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +2 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +5 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +9 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/verification_recorder.py +2 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/hooks/test_scrub_internal_ids_hook.py +57 -9
- mapify_cli-3.35.0/tests/review_context_helpers.py +29 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_codex_map_review_live.py +49 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_step_runner.py +175 -57
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_utils_sanitize.py +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_mapify_cli.py +2 -0
- mapify_cli-3.35.0/tests/test_monitor_worktree_context.py +249 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_post_compact_context.py +8 -3
- mapify_cli-3.35.0/tests/test_ralph_response_types.py +72 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_ralph_state.py +1 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_release_ci_gates.py +36 -1
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_attribution_receipts.py +3 -2
- mapify_cli-3.35.0/tests/test_review_context_delivery.py +323 -0
- mapify_cli-3.35.0/tests/test_review_context_transport.py +354 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_explicit_base.py +6 -2
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_explicit_base_stale_readers.py +15 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_finding_validation.py +11 -4
- mapify_cli-3.35.0/tests/test_review_pending_collection.py +148 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_receipt_edge_cases.py +19 -5
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_security_gates.py +118 -3
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_trusted_policy.py +9 -4
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_verdict_ledger.py +118 -32
- mapify_cli-3.35.0/tests/test_role_coverage_receipts.py +271 -0
- mapify_cli-3.35.0/tests/test_runtime_privacy_ignores.py +101 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_scrub_internal_ids.py +111 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills.py +5 -2
- mapify_cli-3.35.0/tests/test_unborn_branch_scope.py +295 -0
- mapify_cli-3.35.0/tests/test_vacuous_test_check.py +179 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_validate_spec_citations.py +4 -1
- mapify_cli-3.35.0/tests/test_wave_abort_preservation.py +619 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wayfind_research.py +79 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_workflow_context_injector.py +27 -22
- mapify_cli-3.35.0/tests/test_worktree_commit_hooks.py +540 -0
- mapify_cli-3.34.2/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -42
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/.claude/skills/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/.gitignore +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/LICENSE +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/__main__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/_python_guard.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/auto_update.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/boundary_quality_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/code_map.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/codex_exec.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/config/project_config.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/governance_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/grace_eval/schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/install_manifest.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/digest_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/evidence.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/finalize.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/minimality_eval.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/minimality_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/parallelism_observability.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/provider_registry.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/python_runtime.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/research_eval.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/research_eval_compare.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/schemas.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/scope_classifier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/review_corpus.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/review_pilot.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/agents/task-decomposer.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/config.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/tool_output_offload.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/update_install.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/update_state.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/update_versions.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/_fake_task_tool.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/conftest.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/fixtures/codex/config.toml +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/fixtures/wave_blueprints.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/hooks/test_end_of_turn.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/review_pilot_git_cache.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/review_process_lifecycle.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/corpus.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/evidence/adjudication.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/evidence/control-audit.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/evidence/manual-run.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/evidence/manual-run.log +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_corpus/evidence/manual_repro.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_acceptance_additive_revision.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_acceptance_additive_revision_review.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_acceptance_proofs.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_agent_dispatch_audit.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_agent_memory.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_approval_hold.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_approved_baseline_gate_contract.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_auto_update.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_boundary_quality_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_classify_scope_script.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_code_map.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_compaction_offload_integration.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_concurrent_dispatch_harness.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_context_usefulness.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_cross_ai_config.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_debug_reference_install.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_domain_skill.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_governance_attack_fixtures.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_governance_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_grace_eval_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_grace_eval_sweep.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_install_manifest.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_locking.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_auto.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_interruption.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_orchestrator.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_capture.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events_compat.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events_exit_status.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events_privacy.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events_review.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_events_tools.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_minimality_eval.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_minimality_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_model_invocable_skills.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_mutation_path_normalization.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_orchestrator_acceptance.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_parallelism_observability.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_preset_commands.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_project_config.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_prompt_layering.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_prompt_profile_commands.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_python_version_requirement.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_pyyaml_dep.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_repair_attribution.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_repair_workflow_gate.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_research_eval.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_research_eval_compare.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_resequence_pending.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_branch_receipts.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_check_timeouts.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_corpus.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_explicit_base_legacy_override.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_pilot.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_pilot_git_cache.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_process_lifecycle.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_review_reader_capabilities.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_schemas.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_scope_classifier.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_settings_deny_globs.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_shell_json_pipes.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_apply.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_report.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_slice5b_leak_guards.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_sofa_client.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_static_analysis_bash.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_statusline.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_template_render.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_tool_output_offload.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_update_install.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_update_state.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_update_versions.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wave_eval_harness.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wave_fixtures.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wave_parallel_harness.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wayfind_install.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_wayfind_runner.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_workflow_gate.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_workflow_state.py +0 -0
- {mapify_cli-3.34.2 → mapify_cli-3.35.0}/tests/test_worktree_isolation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.35.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
|
|
@@ -221,7 +221,7 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
221
221
|
| `/map-auto` | Single-entry autonomous autopilot: routes a task through existing MAP workflows and drives the chain to a committed branch |
|
|
222
222
|
| `/map-plan` | **Start here** for non-trivial work; clarify behavior and decompose tasks |
|
|
223
223
|
| `/map-prd-review` | Review a PRD with a 0-10 readiness score, strengths, risks, and uncovered edge cases |
|
|
224
|
-
| `/map-wayfind` | Too foggy to plan? Resolve design decisions on a durable map *before* `/map-plan
|
|
224
|
+
| `/map-wayfind` | Too foggy to plan? Resolve design decisions on a durable map *before* `/map-plan`; cite HTTP(S) docs, repo sources or hashed ticket-local observations |
|
|
225
225
|
| `/map-efficient` | **Implement** an approved plan or already-scoped task |
|
|
226
226
|
| `/map-fast` | Small, low-risk changes where full planning is overhead |
|
|
227
227
|
| `/map-check` | Quality gates, verification, and artifact checks |
|
|
@@ -236,6 +236,8 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
236
236
|
|
|
237
237
|
For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --base-ref runtime`) to review only the child branch's changes against its parent's merge-base, including dirty work. Trusted review policy still comes from the default branch.
|
|
238
238
|
|
|
239
|
+
Large `/map-review` bundles are delivered in bounded portions by the parent to the same reviewer. The full admitted evidence remains available within the 512 KiB message limit, including for Codex reviewers without shell or MCP access; missing or stale context keeps the review incomplete. Durable delivery acknowledgments and a post-delivery finalization token prevent premature final captures.
|
|
240
|
+
|
|
239
241
|
[Detailed usage and options →](docs/USAGE.md)
|
|
240
242
|
|
|
241
243
|
## Why Engineers Stick With It
|
|
@@ -245,9 +247,10 @@ For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --bas
|
|
|
245
247
|
- **Gates that check the plan, not vibes** — `/map-check` and `/map-review` validate against the spec, tests, and diff instead of asking whether code "looks fine".
|
|
246
248
|
- **Clean-room review** — `/map-review` auto-bundles available spec, plan, tests, verification, and coverage evidence into a single durable input (`.map/<branch>/review-bundle.json`); standalone external-PR review needs no Actor blueprint. `--detached` opens a read-only worktree for inspection without touching your branch.
|
|
247
249
|
- **Bounded review/fix cycles** — `/map-review` retains round history and unresolved findings across restarts, suppresses acknowledged repeat publications, and stops after three unsuccessful attempts for reconsideration—not approval. Explicit abandonment recovers stale pending rounds without resetting that budget. Incremental re-review falls back to full review when baseline or dependency coverage is uncertain.
|
|
248
|
-
- **Snapshot-bound review receipts** — review completeness, code approval, runner-executed checks and human consent are separate records. Missing reviewers, scope gaps or stale evidence cannot approve a changed snapshot. Read-only reviewers receive base/current source and attribution in the bundle; Codex findings remain available with explicit `INCOMPLETE` status until capability enforcement is verified.
|
|
250
|
+
- **Snapshot-bound review receipts** — review completeness, code approval, runner-executed checks and human consent are separate records. Role-reviewer schemas require coverage receipts, and malformed receipts are rejected before capture. Missing reviewers, scope gaps or stale evidence cannot approve a changed snapshot. Incomplete or blocked collection stays pending in the same round until evidence is completed or the operator explicitly abandons it. Read-only reviewers receive base/current source and attribution in the bundle; Codex findings remain available with explicit `INCOMPLETE` status until capability enforcement is verified.
|
|
249
251
|
- **Trusted review policy (shadow rollout)** — root and applicable ancestor `REVIEW.md` guidance comes from pinned default-branch Git objects, not proposed head content. Its hash joins the existing runtime/capability fingerprint; unknown authority prevents approval. New security/consent gates default to **shadow**: record diagnostics and pending snapshot/policy/action-bound holds without new blockers or weakening existing checks. Opt into **strict** with `review: {security_gates: strict}` in trusted-default `.map/config.yaml`; sensitive/unknown changes then require full coverage and independent security receipts regardless of auto/quick or disabled ledger enforcement. Human provenance is not yet verifiable: holds never become consent, and strict review-ready stays blocked. Corpus and evaluated promotion remain later #523 stages.
|
|
250
252
|
- **Evidence-backed findings** — the existing Step A.3 separates confirmed defects, refuted claims and insufficient evidence. Validation checks the failure scenario, reachability and baseline; remediation searches a bounded scope for the same bug class. Adversarial agreement requires independent evidence-backed validations, not votes. Author reactions cannot close findings on their own.
|
|
253
|
+
- **Comment cleanup at workflow close** — internal IDs are removed from run-changed comments while preserving documentation delimiters and surrounding code. Ambiguous prose stays intact for manual review; cleanup is left unstaged for your normal commit process ([details](docs/USAGE.md)).
|
|
251
254
|
- **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them. Automatic session memory also records bounded, redacted prompt topics and conservative tool observations, even outside a MAP workflow; observed references are not proof of successful outcomes. See [session memory](docs/USAGE.md#session-memory) for limits and recovery behavior.
|
|
252
255
|
|
|
253
256
|
<details>
|
|
@@ -256,8 +259,9 @@ For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --bas
|
|
|
256
259
|
- **Calibrated workflow effort** — each shipped slash skill declares a `thinking_policy` and `parallel_tool_policy`, so lightweight commands stay direct while planning, review, and release workflows reserve deeper reasoning and parallel fan-out for the stages that benefit.
|
|
257
260
|
- **Mutation boundary constraints** — write-capable Claude and Codex surfaces tell agents not to edit unrelated files, add or upgrade dependencies, or refactor neighboring code unless the current subtask requires it. With `worktree.isolation: off`, Actor write checks inspect main even when a recovery worktree remains on disk.
|
|
258
261
|
- **Live isolation dispatch gate** — before concurrent Actor fan-out, `auto` isolation falls back to sequential on dirty or unsupported checkouts; `required` isolation stops dispatch instead. Wave guidance forwards the live decision and warning.
|
|
262
|
+
- **Monitor in managed worktrees** — Actor gates read authoritative parent metadata while checking the registered candidate diff from its creation SHA. Dispatch carries explicit metadata and worktree paths; no mutable runtime snapshot needs to be copied into candidates.
|
|
259
263
|
- **Context-first prompt envelopes** — high-context prompts wrap branch artifacts in XML-style `<documents>`, then state the `<task>` and `<expected_output>`, so specs, diffs, logs, and schemas stay separated for the model.
|
|
260
|
-
- **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask.
|
|
264
|
+
- **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask. Soft constraints need coverage or a tradeoff rationale. File-drift checks recognize files that earlier dependencies explicitly create.
|
|
261
265
|
- **Token budget and research ROI reports** — Actor and review prompt builders append active-path budget decisions to `.map/<branch>/token_budget.json`, while `token_accounting.json` and `/map-tokenreport` separate research-agent/researcher cost from Actor/Monitor cost.
|
|
262
266
|
- **Clean retry quarantine** — after repeated Monitor rejection, write-capable workflows switch the next attempt into clean-retry mode using `.map/<branch>/retry_quarantine.json` instead of raw failed-session context.
|
|
263
267
|
- **Run health report** — workflows write `.map/<branch>/run_health_report.json` during closeout: terminal status, step progress, retry counters, artifact presence, hook-injection status, and advisory signals. CI can fail inconsistent closeouts with `python3 .map/scripts/map_step_runner.py validate_run_health_report`. All runner subcommands support read-only `--help` / `-h`; for example, `python3 .map/scripts/map_step_runner.py write_run_health_report --help`.
|
|
@@ -288,12 +292,20 @@ command-driven dynamic status-line renderer. Codex supports project-level
|
|
|
288
292
|
`[tui].status_line`, but only as an ordered list of built-in item identifiers,
|
|
289
293
|
so MAP does not install the Claude renderer there.
|
|
290
294
|
|
|
295
|
+
The shared iteration logger accepts textual tool responses from either provider
|
|
296
|
+
without interrupting logging; effectiveness uses structured indicators when available.
|
|
297
|
+
|
|
291
298
|
MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025), which reported a 74% improvement on planning tasks. The CLI turns that idea into a practical software-development workflow.
|
|
292
299
|
|
|
293
300
|
[Architecture deep-dive →](docs/ARCHITECTURE.md)
|
|
294
301
|
|
|
295
302
|
## What Success Looks Like
|
|
296
303
|
|
|
304
|
+
Planning and handoff manifest registration work before the first commit: a branch such as `feat/new-project` uses `.map/feat-new-project/`. Isolated Actor worktrees still require an initial commit.
|
|
305
|
+
|
|
306
|
+
`mapify init` keeps session logs, memory digests and Python bytecode out of Git
|
|
307
|
+
by adding runtime ignore rules. Specs and planning artifacts remain shareable.
|
|
308
|
+
|
|
297
309
|
After a good first workflow, you should see:
|
|
298
310
|
|
|
299
311
|
- a written plan or spec before implementation starts;
|
|
@@ -304,6 +316,13 @@ After a good first workflow, you should see:
|
|
|
304
316
|
|
|
305
317
|
MAP review is useful, but it is not a replacement for engineering judgment. Serious changes still need human review. The goal is to make that review smaller, earlier, and better grounded.
|
|
306
318
|
|
|
319
|
+
Concurrent worktree groups must fit `execution.max_actors` (default 4, maximum 8).
|
|
320
|
+
Create later batches after earlier batches merge. Aborting a group preserves
|
|
321
|
+
recovery patches before deleting its worktrees.
|
|
322
|
+
|
|
323
|
+
Candidate and acceptance commits run the project's Git hooks. A hook rejection
|
|
324
|
+
blocks acceptance; configured verification checks also validate the merged result.
|
|
325
|
+
|
|
307
326
|
## Options
|
|
308
327
|
|
|
309
328
|
<details>
|
|
@@ -176,7 +176,7 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
176
176
|
| `/map-auto` | Single-entry autonomous autopilot: routes a task through existing MAP workflows and drives the chain to a committed branch |
|
|
177
177
|
| `/map-plan` | **Start here** for non-trivial work; clarify behavior and decompose tasks |
|
|
178
178
|
| `/map-prd-review` | Review a PRD with a 0-10 readiness score, strengths, risks, and uncovered edge cases |
|
|
179
|
-
| `/map-wayfind` | Too foggy to plan? Resolve design decisions on a durable map *before* `/map-plan
|
|
179
|
+
| `/map-wayfind` | Too foggy to plan? Resolve design decisions on a durable map *before* `/map-plan`; cite HTTP(S) docs, repo sources or hashed ticket-local observations |
|
|
180
180
|
| `/map-efficient` | **Implement** an approved plan or already-scoped task |
|
|
181
181
|
| `/map-fast` | Small, low-risk changes where full planning is overhead |
|
|
182
182
|
| `/map-check` | Quality gates, verification, and artifact checks |
|
|
@@ -191,6 +191,8 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
191
191
|
|
|
192
192
|
For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --base-ref runtime`) to review only the child branch's changes against its parent's merge-base, including dirty work. Trusted review policy still comes from the default branch.
|
|
193
193
|
|
|
194
|
+
Large `/map-review` bundles are delivered in bounded portions by the parent to the same reviewer. The full admitted evidence remains available within the 512 KiB message limit, including for Codex reviewers without shell or MCP access; missing or stale context keeps the review incomplete. Durable delivery acknowledgments and a post-delivery finalization token prevent premature final captures.
|
|
195
|
+
|
|
194
196
|
[Detailed usage and options →](docs/USAGE.md)
|
|
195
197
|
|
|
196
198
|
## Why Engineers Stick With It
|
|
@@ -200,9 +202,10 @@ For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --bas
|
|
|
200
202
|
- **Gates that check the plan, not vibes** — `/map-check` and `/map-review` validate against the spec, tests, and diff instead of asking whether code "looks fine".
|
|
201
203
|
- **Clean-room review** — `/map-review` auto-bundles available spec, plan, tests, verification, and coverage evidence into a single durable input (`.map/<branch>/review-bundle.json`); standalone external-PR review needs no Actor blueprint. `--detached` opens a read-only worktree for inspection without touching your branch.
|
|
202
204
|
- **Bounded review/fix cycles** — `/map-review` retains round history and unresolved findings across restarts, suppresses acknowledged repeat publications, and stops after three unsuccessful attempts for reconsideration—not approval. Explicit abandonment recovers stale pending rounds without resetting that budget. Incremental re-review falls back to full review when baseline or dependency coverage is uncertain.
|
|
203
|
-
- **Snapshot-bound review receipts** — review completeness, code approval, runner-executed checks and human consent are separate records. Missing reviewers, scope gaps or stale evidence cannot approve a changed snapshot. Read-only reviewers receive base/current source and attribution in the bundle; Codex findings remain available with explicit `INCOMPLETE` status until capability enforcement is verified.
|
|
205
|
+
- **Snapshot-bound review receipts** — review completeness, code approval, runner-executed checks and human consent are separate records. Role-reviewer schemas require coverage receipts, and malformed receipts are rejected before capture. Missing reviewers, scope gaps or stale evidence cannot approve a changed snapshot. Incomplete or blocked collection stays pending in the same round until evidence is completed or the operator explicitly abandons it. Read-only reviewers receive base/current source and attribution in the bundle; Codex findings remain available with explicit `INCOMPLETE` status until capability enforcement is verified.
|
|
204
206
|
- **Trusted review policy (shadow rollout)** — root and applicable ancestor `REVIEW.md` guidance comes from pinned default-branch Git objects, not proposed head content. Its hash joins the existing runtime/capability fingerprint; unknown authority prevents approval. New security/consent gates default to **shadow**: record diagnostics and pending snapshot/policy/action-bound holds without new blockers or weakening existing checks. Opt into **strict** with `review: {security_gates: strict}` in trusted-default `.map/config.yaml`; sensitive/unknown changes then require full coverage and independent security receipts regardless of auto/quick or disabled ledger enforcement. Human provenance is not yet verifiable: holds never become consent, and strict review-ready stays blocked. Corpus and evaluated promotion remain later #523 stages.
|
|
205
207
|
- **Evidence-backed findings** — the existing Step A.3 separates confirmed defects, refuted claims and insufficient evidence. Validation checks the failure scenario, reachability and baseline; remediation searches a bounded scope for the same bug class. Adversarial agreement requires independent evidence-backed validations, not votes. Author reactions cannot close findings on their own.
|
|
208
|
+
- **Comment cleanup at workflow close** — internal IDs are removed from run-changed comments while preserving documentation delimiters and surrounding code. Ambiguous prose stays intact for manual review; cleanup is left unstaged for your normal commit process ([details](docs/USAGE.md)).
|
|
206
209
|
- **Project memory** — `/map-learn` turns hard-won fixes and gotchas into reusable context, so the next session doesn't relearn them. Automatic session memory also records bounded, redacted prompt topics and conservative tool observations, even outside a MAP workflow; observed references are not proof of successful outcomes. See [session memory](docs/USAGE.md#session-memory) for limits and recovery behavior.
|
|
207
210
|
|
|
208
211
|
<details>
|
|
@@ -211,8 +214,9 @@ For stacked PRs, use `/map-review --base-ref runtime` (Codex: `$map-review --bas
|
|
|
211
214
|
- **Calibrated workflow effort** — each shipped slash skill declares a `thinking_policy` and `parallel_tool_policy`, so lightweight commands stay direct while planning, review, and release workflows reserve deeper reasoning and parallel fan-out for the stages that benefit.
|
|
212
215
|
- **Mutation boundary constraints** — write-capable Claude and Codex surfaces tell agents not to edit unrelated files, add or upgrade dependencies, or refactor neighboring code unless the current subtask requires it. With `worktree.isolation: off`, Actor write checks inspect main even when a recovery worktree remains on disk.
|
|
213
216
|
- **Live isolation dispatch gate** — before concurrent Actor fan-out, `auto` isolation falls back to sequential on dirty or unsupported checkouts; `required` isolation stops dispatch instead. Wave guidance forwards the live decision and warning.
|
|
217
|
+
- **Monitor in managed worktrees** — Actor gates read authoritative parent metadata while checking the registered candidate diff from its creation SHA. Dispatch carries explicit metadata and worktree paths; no mutable runtime snapshot needs to be copied into candidates.
|
|
214
218
|
- **Context-first prompt envelopes** — high-context prompts wrap branch artifacts in XML-style `<documents>`, then state the `<task>` and `<expected_output>`, so specs, diffs, logs, and schemas stay separated for the model.
|
|
215
|
-
- **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask.
|
|
219
|
+
- **Contract-sized subtasks** — blueprints require `expected_diff_size`, `concern_type`, `one_logical_step`, `hard_constraints`, `soft_constraints`, and `coverage_map`. Hard constraints must be owned in `coverage_map` and cited in the owning subtask. Soft constraints need coverage or a tradeoff rationale. File-drift checks recognize files that earlier dependencies explicitly create.
|
|
216
220
|
- **Token budget and research ROI reports** — Actor and review prompt builders append active-path budget decisions to `.map/<branch>/token_budget.json`, while `token_accounting.json` and `/map-tokenreport` separate research-agent/researcher cost from Actor/Monitor cost.
|
|
217
221
|
- **Clean retry quarantine** — after repeated Monitor rejection, write-capable workflows switch the next attempt into clean-retry mode using `.map/<branch>/retry_quarantine.json` instead of raw failed-session context.
|
|
218
222
|
- **Run health report** — workflows write `.map/<branch>/run_health_report.json` during closeout: terminal status, step progress, retry counters, artifact presence, hook-injection status, and advisory signals. CI can fail inconsistent closeouts with `python3 .map/scripts/map_step_runner.py validate_run_health_report`. All runner subcommands support read-only `--help` / `-h`; for example, `python3 .map/scripts/map_step_runner.py write_run_health_report --help`.
|
|
@@ -243,12 +247,20 @@ command-driven dynamic status-line renderer. Codex supports project-level
|
|
|
243
247
|
`[tui].status_line`, but only as an ordered list of built-in item identifiers,
|
|
244
248
|
so MAP does not install the Claude renderer there.
|
|
245
249
|
|
|
250
|
+
The shared iteration logger accepts textual tool responses from either provider
|
|
251
|
+
without interrupting logging; effectiveness uses structured indicators when available.
|
|
252
|
+
|
|
246
253
|
MAP is inspired by the [MAP cognitive architecture](https://github.com/Shanka123/MAP) (Nature Communications, 2025), which reported a 74% improvement on planning tasks. The CLI turns that idea into a practical software-development workflow.
|
|
247
254
|
|
|
248
255
|
[Architecture deep-dive →](docs/ARCHITECTURE.md)
|
|
249
256
|
|
|
250
257
|
## What Success Looks Like
|
|
251
258
|
|
|
259
|
+
Planning and handoff manifest registration work before the first commit: a branch such as `feat/new-project` uses `.map/feat-new-project/`. Isolated Actor worktrees still require an initial commit.
|
|
260
|
+
|
|
261
|
+
`mapify init` keeps session logs, memory digests and Python bytecode out of Git
|
|
262
|
+
by adding runtime ignore rules. Specs and planning artifacts remain shareable.
|
|
263
|
+
|
|
252
264
|
After a good first workflow, you should see:
|
|
253
265
|
|
|
254
266
|
- a written plan or spec before implementation starts;
|
|
@@ -259,6 +271,13 @@ After a good first workflow, you should see:
|
|
|
259
271
|
|
|
260
272
|
MAP review is useful, but it is not a replacement for engineering judgment. Serious changes still need human review. The goal is to make that review smaller, earlier, and better grounded.
|
|
261
273
|
|
|
274
|
+
Concurrent worktree groups must fit `execution.max_actors` (default 4, maximum 8).
|
|
275
|
+
Create later batches after earlier batches merge. Aborting a group preserves
|
|
276
|
+
recovery patches before deleting its worktrees.
|
|
277
|
+
|
|
278
|
+
Candidate and acceptance commits run the project's Git hooks. A hook rejection
|
|
279
|
+
blocks acceptance; configured verification checks also validate the merged result.
|
|
280
|
+
|
|
262
281
|
## Options
|
|
263
282
|
|
|
264
283
|
<details>
|
|
@@ -23,7 +23,7 @@ Or install globally:
|
|
|
23
23
|
mapify check
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
|
-
__version__ = "3.
|
|
26
|
+
__version__ = "3.35.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
|
|
@@ -144,6 +144,7 @@ from mapify_cli.provider_registry import (
|
|
|
144
144
|
SUPPORTED_PROVIDERS,
|
|
145
145
|
skill_dir,
|
|
146
146
|
)
|
|
147
|
+
from mapify_cli.ralph_state import sanitize_branch_name
|
|
147
148
|
|
|
148
149
|
if TYPE_CHECKING:
|
|
149
150
|
from mapify_cli.install_manifest import InstallManifest
|
|
@@ -434,7 +435,7 @@ def _detect_provider(project_path: Path) -> str:
|
|
|
434
435
|
def get_project_health(project_path: Path) -> dict[str, Any]:
|
|
435
436
|
"""Collect project health diagnostics for check/doctor commands."""
|
|
436
437
|
agent_exclude = {"README.md", "CHANGELOG.md", "MCP-PATTERNS.md"}
|
|
437
|
-
current_branch =
|
|
438
|
+
current_branch = sanitize_branch_name(get_current_branch_name())
|
|
438
439
|
branch_dir = project_path / ".map" / current_branch
|
|
439
440
|
detected = _detect_provider(project_path)
|
|
440
441
|
|
|
@@ -548,7 +549,7 @@ def get_current_branch_name() -> str:
|
|
|
548
549
|
|
|
549
550
|
def get_branch_workspace_dir(project_path: Path, branch: str | None = None) -> Path:
|
|
550
551
|
"""Return the branch-scoped MAP workspace directory."""
|
|
551
|
-
branch_name =
|
|
552
|
+
branch_name = sanitize_branch_name(branch or get_current_branch_name())
|
|
552
553
|
return project_path / ".map" / branch_name
|
|
553
554
|
|
|
554
555
|
|
|
@@ -563,7 +564,7 @@ def get_branch_artifact_templates() -> dict[str, str]:
|
|
|
563
564
|
|
|
564
565
|
def initialize_branch_workspace(project_path: Path, branch: str | None = None) -> Path:
|
|
565
566
|
"""Create branch-scoped planning artifacts inside `.map/<branch>/`."""
|
|
566
|
-
branch_name =
|
|
567
|
+
branch_name = sanitize_branch_name(branch or get_current_branch_name())
|
|
567
568
|
workspace_dir = get_branch_workspace_dir(project_path, branch_name)
|
|
568
569
|
workspace_dir.mkdir(parents=True, exist_ok=True)
|
|
569
570
|
|
|
@@ -579,7 +580,7 @@ def get_branch_workspace_status(
|
|
|
579
580
|
project_path: Path, branch: str | None = None
|
|
580
581
|
) -> dict[str, Any]:
|
|
581
582
|
"""Collect status information for branch-scoped planning artifacts."""
|
|
582
|
-
branch_name =
|
|
583
|
+
branch_name = sanitize_branch_name(branch or get_current_branch_name())
|
|
583
584
|
workspace_dir = get_branch_workspace_dir(project_path, branch_name)
|
|
584
585
|
expected_files = list(get_branch_artifact_templates().keys())
|
|
585
586
|
existing_files = (
|
|
@@ -511,6 +511,8 @@ _UPDATE_RUNTIME_GITIGNORE_PATHS = (
|
|
|
511
511
|
".map/provider-refresh.lock",
|
|
512
512
|
".map/installer.lock",
|
|
513
513
|
".map/gitignore.lock",
|
|
514
|
+
".map/**/sessions/",
|
|
515
|
+
"**/__pycache__/",
|
|
514
516
|
".claude/worktrees/",
|
|
515
517
|
)
|
|
516
518
|
_WINDOWS_GITIGNORE_MUTEX_TIMEOUT_MS = 30_000
|
|
@@ -1135,6 +1137,48 @@ def _gitignore_pattern_matches(pattern: bytes, path: bytes) -> bool:
|
|
|
1135
1137
|
return match(0, 0)
|
|
1136
1138
|
|
|
1137
1139
|
|
|
1140
|
+
def _gitignore_patterns_may_overlap(left: bytes, right: bytes) -> bool:
|
|
1141
|
+
"""Conservatively intersect patterns, including recursive directory rules.
|
|
1142
|
+
|
|
1143
|
+
Unlike matching a concrete path, either side can contain wildcards. Two
|
|
1144
|
+
wildcard-bearing segments may overlap; literal segments still constrain the
|
|
1145
|
+
result so unrelated negations do not cause repeated ignore-file growth.
|
|
1146
|
+
"""
|
|
1147
|
+
def parts(pattern: bytes) -> list[bytes]:
|
|
1148
|
+
stripped = pattern.rstrip(b"/")
|
|
1149
|
+
segments = stripped.lstrip(b"/").split(b"/")
|
|
1150
|
+
return [b"**", *segments] if b"/" not in stripped else segments
|
|
1151
|
+
|
|
1152
|
+
a, b = parts(left), parts(right)
|
|
1153
|
+
pending = [(0, 0)]
|
|
1154
|
+
seen: set[tuple[int, int]] = set()
|
|
1155
|
+
while pending:
|
|
1156
|
+
i, j = pending.pop()
|
|
1157
|
+
if (i, j) in seen:
|
|
1158
|
+
continue
|
|
1159
|
+
seen.add((i, j))
|
|
1160
|
+
if i == len(a) and j == len(b):
|
|
1161
|
+
return True
|
|
1162
|
+
if i < len(a) and a[i] == b"**":
|
|
1163
|
+
pending.append((i + 1, j))
|
|
1164
|
+
if j < len(b):
|
|
1165
|
+
pending.append((i, j + 1))
|
|
1166
|
+
elif j < len(b) and b[j] == b"**":
|
|
1167
|
+
pending.append((i, j + 1))
|
|
1168
|
+
if i < len(a):
|
|
1169
|
+
pending.append((i + 1, j))
|
|
1170
|
+
elif i < len(a) and j < len(b):
|
|
1171
|
+
a_glob = any(char in a[i] for char in (b"*", b"?", b"["))
|
|
1172
|
+
b_glob = any(char in b[j] for char in (b"*", b"?", b"["))
|
|
1173
|
+
if (
|
|
1174
|
+
(a_glob and b_glob)
|
|
1175
|
+
or fnmatchcase(a[i], b[j])
|
|
1176
|
+
or fnmatchcase(b[j], a[i])
|
|
1177
|
+
):
|
|
1178
|
+
pending.append((i + 1, j + 1))
|
|
1179
|
+
return False
|
|
1180
|
+
|
|
1181
|
+
|
|
1138
1182
|
def _negation_targets_path(negation: bytes, required: bytes) -> bool:
|
|
1139
1183
|
"""Return whether a later ``!`` rule can plausibly re-include *required*.
|
|
1140
1184
|
|
|
@@ -1148,6 +1192,10 @@ def _negation_targets_path(negation: bytes, required: bytes) -> bool:
|
|
|
1148
1192
|
if not pattern:
|
|
1149
1193
|
return False
|
|
1150
1194
|
base = required.rstrip(b"/")
|
|
1195
|
+
if b"*" in base and _gitignore_patterns_may_overlap(
|
|
1196
|
+
pattern, required
|
|
1197
|
+
):
|
|
1198
|
+
return True
|
|
1151
1199
|
if _gitignore_pattern_matches(pattern, base):
|
|
1152
1200
|
return True
|
|
1153
1201
|
pattern_base = pattern.rstrip(b"/")
|
|
@@ -55,7 +55,8 @@ def _sanitize_branch(name: str) -> str:
|
|
|
55
55
|
rest of MAP (a path-traversal hardening applied there is inherited here).
|
|
56
56
|
Behaviour: replaces every character not in [a-zA-Z0-9_.-] with '-',
|
|
57
57
|
collapses consecutive '-', strips leading/trailing '-', and falls back to
|
|
58
|
-
"default" on empty
|
|
58
|
+
"default" on empty input or path-traversal indicators. Non-empty names
|
|
59
|
+
stripped entirely by normalization use a deterministic SHA-256 scope.
|
|
59
60
|
"""
|
|
60
61
|
return sanitize_branch_name(name)
|
|
61
62
|
|
|
@@ -10,6 +10,7 @@ State persisted to .map/<branch>/ralph_state.json
|
|
|
10
10
|
Circuit breaker config source: .claude/ralph-loop-config.json
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
import hashlib
|
|
13
14
|
import json
|
|
14
15
|
import re
|
|
15
16
|
from dataclasses import dataclass, field
|
|
@@ -299,7 +300,7 @@ def sanitize_branch_name(branch: str) -> str:
|
|
|
299
300
|
# Prevent path traversal attempts
|
|
300
301
|
if ".." in sanitized or sanitized.startswith("."):
|
|
301
302
|
return "default"
|
|
302
|
-
return sanitized or "default"
|
|
303
|
+
return sanitized or ("branch-" + hashlib.sha256(branch.encode("utf-8")).hexdigest() if branch else "default")
|
|
303
304
|
|
|
304
305
|
|
|
305
306
|
@dataclass
|
|
@@ -289,6 +289,7 @@ Rules:
|
|
|
289
289
|
8. Do NOT add temporal comments about test failure status (e.g., "currently FAILS",
|
|
290
290
|
"expected to FAIL", "will PASS once fix is applied"). Write tests as permanent,
|
|
291
291
|
clean code — the Red/Green state is transient and must not leak into comments.
|
|
292
|
+
9. Every test must pass the vacuous-test check in section 5 (Testing Considerations).
|
|
292
293
|
|
|
293
294
|
Output:
|
|
294
295
|
- Test files created via Write tool
|
|
@@ -395,6 +396,31 @@ Document key decisions using this structure:
|
|
|
395
396
|
- For each `VCn:` item in `validation_criteria`, implement or update at least one automated test that would fail without your change and pass with it.
|
|
396
397
|
- Prefer naming tests with `vc<n>` (e.g., `test_vc1_*`, `TestVC1*`) so Monitor can deterministically confirm coverage.
|
|
397
398
|
|
|
399
|
+
**Vacuous-test check (do-nothing implementation).** For every new or changed
|
|
400
|
+
test, name the assertion that would FAIL if the code under test were replaced by
|
|
401
|
+
a do-nothing implementation: each function returns the empty value of its return
|
|
402
|
+
type (`None`, `[]`, `{}`, `""`, `0`, `False`) and performs no side effect (no
|
|
403
|
+
write, no call, no state change). No such assertion means the test is
|
|
404
|
+
**vacuous**: it stays green when the code does nothing, so it verifies no behavior.
|
|
405
|
+
|
|
406
|
+
Typical vacuous shapes:
|
|
407
|
+
- no assertion at all: `process(data)`
|
|
408
|
+
- only a type/shape check an empty value satisfies: `assert isinstance(parse("a,b"), list)`
|
|
409
|
+
- only `is not None` / truthiness of a value an empty implementation also returns: `assert load({"x": 1}) is not None`
|
|
410
|
+
- only checks values the test set up itself, never calling the code under test: `repo.get.return_value = item; assert repo.get(1) == item`
|
|
411
|
+
- expects an exception the test itself raises, not the code under test: `with pytest.raises(KeyError): load({"x": 1})["missing"]`
|
|
412
|
+
|
|
413
|
+
Not vacuous: `assert parse("a,b") == ["a", "b"]`; expected-exception tests
|
|
414
|
+
(`pytest.raises`, `assertRaises`, `toThrow`) whose exception is raised by the code
|
|
415
|
+
under test, because a do-nothing implementation does not raise it; and, for code
|
|
416
|
+
whose job is a side effect, assertions on that
|
|
417
|
+
effect (written content, persisted row, a call with the expected arguments).
|
|
418
|
+
This check catches tests that verify nothing; it does not prove a test checks the
|
|
419
|
+
right thing (that needs mutation testing).
|
|
420
|
+
|
|
421
|
+
Self-check before handoff: rewrite or drop any vacuous test. Monitor counts it as
|
|
422
|
+
no coverage.
|
|
423
|
+
|
|
398
424
|
**Format**:
|
|
399
425
|
```text
|
|
400
426
|
1. test_[function]_[scenario]_[expected]
|
|
@@ -484,6 +510,7 @@ exhaustive test matrices by default.
|
|
|
484
510
|
- [ ] Trade-offs documented with alternatives
|
|
485
511
|
- [ ] Test cases cover happy + edge + error paths
|
|
486
512
|
- [ ] Each `validation_criteria` item has at least one automated test (or explicit N/A with reason)
|
|
513
|
+
- [ ] No vacuous tests: each new or changed test fails against a do-nothing implementation
|
|
487
514
|
- [ ] Template variables `{{...}}` preserved in generated code
|
|
488
515
|
|
|
489
516
|
### Hallucination Guard
|
|
@@ -624,6 +624,32 @@ Untested code is broken code waiting to happen. Testability indicates design qua
|
|
|
624
624
|
- [ ] Happy path + error cases tested?
|
|
625
625
|
- [ ] Edge cases covered?
|
|
626
626
|
- [ ] Tests are deterministic (not flaky)?
|
|
627
|
+
- [ ] Every new or changed test fails against a do-nothing implementation?
|
|
628
|
+
|
|
629
|
+
**Vacuous-test check (do-nothing implementation).** For every new or changed
|
|
630
|
+
test, name the assertion that would FAIL if the code under test were replaced by
|
|
631
|
+
a do-nothing implementation: each function returns the empty value of its return
|
|
632
|
+
type (`None`, `[]`, `{}`, `""`, `0`, `False`) and performs no side effect (no
|
|
633
|
+
write, no call, no state change). No such assertion means the test is
|
|
634
|
+
**vacuous**: it stays green when the code does nothing, so it verifies no behavior.
|
|
635
|
+
|
|
636
|
+
Typical vacuous shapes:
|
|
637
|
+
- no assertion at all: `process(data)`
|
|
638
|
+
- only a type/shape check an empty value satisfies: `assert isinstance(parse("a,b"), list)`
|
|
639
|
+
- only `is not None` / truthiness of a value an empty implementation also returns: `assert load({"x": 1}) is not None`
|
|
640
|
+
- only checks values the test set up itself, never calling the code under test: `repo.get.return_value = item; assert repo.get(1) == item`
|
|
641
|
+
- expects an exception the test itself raises, not the code under test: `with pytest.raises(KeyError): load({"x": 1})["missing"]`
|
|
642
|
+
|
|
643
|
+
Not vacuous: `assert parse("a,b") == ["a", "b"]`; expected-exception tests
|
|
644
|
+
(`pytest.raises`, `assertRaises`, `toThrow`) whose exception is raised by the code
|
|
645
|
+
under test, because a do-nothing implementation does not raise it; and, for code
|
|
646
|
+
whose job is a side effect, assertions on that
|
|
647
|
+
effect (written content, persisted row, a call with the expected arguments).
|
|
648
|
+
This check catches tests that verify nothing; it does not prove a test checks the
|
|
649
|
+
right thing (that needs mutation testing).
|
|
650
|
+
|
|
651
|
+
Score vacuous tests as absent: they add nothing to test coverage or test
|
|
652
|
+
quality, and code covered only by vacuous tests is scored as untested.
|
|
627
653
|
|
|
628
654
|
<example type="score_9">
|
|
629
655
|
**Code**: Dependency injection, 95% coverage, tests for happy path + 5 error cases + 3 edge cases, mocked external APIs, isolated tests.
|
|
@@ -62,6 +62,26 @@ subtask metadata) apply only to Actor subtask validation, not standalone review.
|
|
|
62
62
|
|
|
63
63
|
### Actor runtime preflight in linked worktrees
|
|
64
64
|
|
|
65
|
+
**Managed Actor worktree:** use the `monitor_instruction` returned by
|
|
66
|
+
`create_subtask_worktree` (also included by `build_context_block` after creation).
|
|
67
|
+
It names the parent metadata root, candidate checkout, and two absolute runner
|
|
68
|
+
commands with **both** `--metadata-root <parent>` and `--worktree <candidate>`.
|
|
69
|
+
Run those commands instead of the checkout-local commands below. The runner
|
|
70
|
+
verifies the registered subtask/path and shared Git repository, reads the
|
|
71
|
+
blueprint and prior results from the parent, and computes the candidate diff
|
|
72
|
+
against its registered creation SHA. Parent dirty baselines never filter this
|
|
73
|
+
diff. Read AAG/research/state from the supplied parent branch directory; run
|
|
74
|
+
source inspection, builds, and tests in the candidate. Do not copy or symlink
|
|
75
|
+
mutable `.map/` artifacts into managed candidates, and do not globally redirect
|
|
76
|
+
`CLAUDE_PROJECT_DIR` to the parent. Explicit roots apply only to these gates.
|
|
77
|
+
Missing/mismatched registration, metadata, or runner is a blocking setup error:
|
|
78
|
+
report `valid: false`, `recommendation: "block"`; never fall back to the parent
|
|
79
|
+
diff or silently use the checkout-local gates. Unset inherited Git directory
|
|
80
|
+
and index variables for independent source/test commands as well.
|
|
81
|
+
|
|
82
|
+
**Unmanaged checkout without explicit managed context:** use the existing
|
|
83
|
+
checkout-local preflight below. A standalone `/map-review` skips both variants.
|
|
84
|
+
|
|
65
85
|
Before invoking either Actor-specific `.map/scripts/map_step_runner.py` gate,
|
|
66
86
|
clear inherited `GIT_DIR`, `GIT_WORK_TREE`, `GIT_COMMON_DIR`, and
|
|
67
87
|
`GIT_INDEX_FILE` in a subshell before resolving the checkout being reviewed
|
|
@@ -1263,18 +1283,49 @@ for user in users:
|
|
|
1263
1283
|
2. Check if external calls can be mocked
|
|
1264
1284
|
3. Review included tests for coverage
|
|
1265
1285
|
4. Validate test assertions are specific
|
|
1286
|
+
5. Apply the vacuous-test check below to every new or changed test
|
|
1287
|
+
|
|
1288
|
+
**Vacuous-test check (do-nothing implementation).** For every new or changed
|
|
1289
|
+
test, name the assertion that would FAIL if the code under test were replaced by
|
|
1290
|
+
a do-nothing implementation: each function returns the empty value of its return
|
|
1291
|
+
type (`None`, `[]`, `{}`, `""`, `0`, `False`) and performs no side effect (no
|
|
1292
|
+
write, no call, no state change). No such assertion means the test is
|
|
1293
|
+
**vacuous**: it stays green when the code does nothing, so it verifies no behavior.
|
|
1294
|
+
|
|
1295
|
+
Typical vacuous shapes:
|
|
1296
|
+
- no assertion at all: `process(data)`
|
|
1297
|
+
- only a type/shape check an empty value satisfies: `assert isinstance(parse("a,b"), list)`
|
|
1298
|
+
- only `is not None` / truthiness of a value an empty implementation also returns: `assert load({"x": 1}) is not None`
|
|
1299
|
+
- only checks values the test set up itself, never calling the code under test: `repo.get.return_value = item; assert repo.get(1) == item`
|
|
1300
|
+
- expects an exception the test itself raises, not the code under test: `with pytest.raises(KeyError): load({"x": 1})["missing"]`
|
|
1301
|
+
|
|
1302
|
+
Not vacuous: `assert parse("a,b") == ["a", "b"]`; expected-exception tests
|
|
1303
|
+
(`pytest.raises`, `assertRaises`, `toThrow`) whose exception is raised by the code
|
|
1304
|
+
under test, because a do-nothing implementation does not raise it; and, for code
|
|
1305
|
+
whose job is a side effect, assertions on that
|
|
1306
|
+
effect (written content, persisted row, a call with the expected arguments).
|
|
1307
|
+
This check catches tests that verify nothing; it does not prove a test checks the
|
|
1308
|
+
right thing (that needs mutation testing).
|
|
1309
|
+
|
|
1310
|
+
A vacuous test does not count as coverage: a `VCn` or requirement covered only
|
|
1311
|
+
by vacuous tests has `test_coverage != PASS` and falls under the contract
|
|
1312
|
+
Decision Rule. Report each one as a `testability` issue titled
|
|
1313
|
+
`Vacuous test: <test id>` that names the missing assertion; severity HIGH when it
|
|
1314
|
+
is the only test for a requirement, otherwise MEDIUM.
|
|
1266
1315
|
|
|
1267
1316
|
#### Pass Criteria
|
|
1268
1317
|
- Dependencies injected, not hardcoded
|
|
1269
1318
|
- Tests cover happy path and errors
|
|
1270
1319
|
- Tests are deterministic and isolated
|
|
1271
1320
|
- Assertions validate specific behaviors
|
|
1321
|
+
- Every new or changed test fails against a do-nothing implementation
|
|
1272
1322
|
|
|
1273
1323
|
#### Common Failures
|
|
1274
1324
|
- Hardcoded external dependencies
|
|
1275
1325
|
- Missing tests for error cases
|
|
1276
1326
|
- Flaky tests (time-dependent, order-dependent)
|
|
1277
1327
|
- Generic assertions (assertTrue without specifics)
|
|
1328
|
+
- Vacuous tests that stay green against a do-nothing implementation
|
|
1278
1329
|
|
|
1279
1330
|
#### Severity Mapping
|
|
1280
1331
|
- **Critical**: Untestable design blocking all testing
|
|
@@ -28,7 +28,16 @@ changed-hunk attribution instead of shell commands. A line existing at base does
|
|
|
28
28
|
not prove a behavioral defect is pre-existing; require supporting context or mark
|
|
29
29
|
attribution unknown. Request missing bundle content from the parent, never shell.
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
When the prompt provides parent-served context, return its exact context_request
|
|
32
|
+
JSON and consume context_chunk continuations in this same session. Follow
|
|
33
|
+
next_offset through eof and check offsets, total size and hash metadata against the manifest before using it. Request
|
|
34
|
+
permitted resources from the parent, never read context object paths directly.
|
|
35
|
+
These intermediate responses are not findings or final review envelopes.
|
|
36
|
+
Wait for the parent's post-delivery finalization request before returning a final
|
|
37
|
+
review. In structured final envelopes, echo its session_id and finalization_token
|
|
38
|
+
in a context_receipt object.
|
|
39
|
+
Delivery is parent_acknowledged; it does not prove inspection or capability.
|
|
40
|
+
After receiving needed evidence, return the role's envelope with an additional receipt object:
|
|
32
41
|
`receipt={covered_files:[],skipped_files:[],denied_access:[],check_evidence:[check_id]}`.
|
|
33
42
|
List only paths actually inspected in covered_files; report skipped scope and denied
|
|
34
43
|
required access honestly. Reading claims are self_reported, not tool_witnessed.
|
|
@@ -22,6 +22,32 @@ changes, never revert unrelated work, and adapt to concurrent edits.
|
|
|
22
22
|
6. Never edit generated MAP trees directly when repository instructions designate a
|
|
23
23
|
template source; edit the source and run the documented renderer.
|
|
24
24
|
7. Do not commit, publish, delete broad paths, or expand scope without explicit authority.
|
|
25
|
+
8. Before reporting, apply the vacuous-test check below to every test you wrote or
|
|
26
|
+
changed; rewrite or drop any vacuous test. Monitor counts it as no coverage.
|
|
27
|
+
|
|
28
|
+
# Vacuous tests
|
|
29
|
+
|
|
30
|
+
**Vacuous-test check (do-nothing implementation).** For every new or changed
|
|
31
|
+
test, name the assertion that would FAIL if the code under test were replaced by
|
|
32
|
+
a do-nothing implementation: each function returns the empty value of its return
|
|
33
|
+
type (`None`, `[]`, `{}`, `""`, `0`, `False`) and performs no side effect (no
|
|
34
|
+
write, no call, no state change). No such assertion means the test is
|
|
35
|
+
**vacuous**: it stays green when the code does nothing, so it verifies no behavior.
|
|
36
|
+
|
|
37
|
+
Typical vacuous shapes:
|
|
38
|
+
- no assertion at all: `process(data)`
|
|
39
|
+
- only a type/shape check an empty value satisfies: `assert isinstance(parse("a,b"), list)`
|
|
40
|
+
- only `is not None` / truthiness of a value an empty implementation also returns: `assert load({"x": 1}) is not None`
|
|
41
|
+
- only checks values the test set up itself, never calling the code under test: `repo.get.return_value = item; assert repo.get(1) == item`
|
|
42
|
+
- expects an exception the test itself raises, not the code under test: `with pytest.raises(KeyError): load({"x": 1})["missing"]`
|
|
43
|
+
|
|
44
|
+
Not vacuous: `assert parse("a,b") == ["a", "b"]`; expected-exception tests
|
|
45
|
+
(`pytest.raises`, `assertRaises`, `toThrow`) whose exception is raised by the code
|
|
46
|
+
under test, because a do-nothing implementation does not raise it; and, for code
|
|
47
|
+
whose job is a side effect, assertions on that
|
|
48
|
+
effect (written content, persisted row, a call with the expected arguments).
|
|
49
|
+
This check catches tests that verify nothing; it does not prove a test checks the
|
|
50
|
+
right thing (that needs mutation testing).
|
|
25
51
|
|
|
26
52
|
# Output
|
|
27
53
|
|
{mapify_cli-3.34.2 → mapify_cli-3.35.0}/src/mapify_cli/templates/codex/agents/evaluator.toml
RENAMED
|
@@ -88,6 +88,31 @@ Weighting: readability 40%, maintainability 30%, idioms 30%.
|
|
|
88
88
|
0-1: hardcoded dependencies, no test consideration.
|
|
89
89
|
Weighting: test coverage 40%, test quality 30%, design for testability 30%.
|
|
90
90
|
|
|
91
|
+
**Vacuous-test check (do-nothing implementation).** For every new or changed
|
|
92
|
+
test, name the assertion that would FAIL if the code under test were replaced by
|
|
93
|
+
a do-nothing implementation: each function returns the empty value of its return
|
|
94
|
+
type (`None`, `[]`, `{}`, `""`, `0`, `False`) and performs no side effect (no
|
|
95
|
+
write, no call, no state change). No such assertion means the test is
|
|
96
|
+
**vacuous**: it stays green when the code does nothing, so it verifies no behavior.
|
|
97
|
+
|
|
98
|
+
Typical vacuous shapes:
|
|
99
|
+
- no assertion at all: `process(data)`
|
|
100
|
+
- only a type/shape check an empty value satisfies: `assert isinstance(parse("a,b"), list)`
|
|
101
|
+
- only `is not None` / truthiness of a value an empty implementation also returns: `assert load({"x": 1}) is not None`
|
|
102
|
+
- only checks values the test set up itself, never calling the code under test: `repo.get.return_value = item; assert repo.get(1) == item`
|
|
103
|
+
- expects an exception the test itself raises, not the code under test: `with pytest.raises(KeyError): load({"x": 1})["missing"]`
|
|
104
|
+
|
|
105
|
+
Not vacuous: `assert parse("a,b") == ["a", "b"]`; expected-exception tests
|
|
106
|
+
(`pytest.raises`, `assertRaises`, `toThrow`) whose exception is raised by the code
|
|
107
|
+
under test, because a do-nothing implementation does not raise it; and, for code
|
|
108
|
+
whose job is a side effect, assertions on that
|
|
109
|
+
effect (written content, persisted row, a call with the expected arguments).
|
|
110
|
+
This check catches tests that verify nothing; it does not prove a test checks the
|
|
111
|
+
right thing (that needs mutation testing).
|
|
112
|
+
|
|
113
|
+
Score vacuous tests as absent: they add nothing to test coverage or test
|
|
114
|
+
quality, and code covered only by vacuous tests is scored as untested.
|
|
115
|
+
|
|
91
116
|
## 6. Performance (0-10)
|
|
92
117
|
10: efficient algorithms, appropriate data structures, handles scale.
|
|
93
118
|
8-9: reasonable complexity, minor optimizations possible.
|