mapify-cli 3.33.0__tar.gz → 3.34.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.33.0 → mapify_cli-3.34.0}/.claude/skills/README.md +2 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/PKG-INFO +33 -5
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/README.md +32 -4
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/pyproject.toml +1 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/__init__.py +1 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/config/project_config.py +8 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/memory/capture.py +75 -5
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/memory/digest_schema.py +34 -0
- mapify_cli-3.34.0/src/mapify_cli/memory/evidence.py +188 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/memory/finalize.py +117 -9
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/schemas.py +97 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/dispatcher.py +3 -3
- mapify_cli-3.34.0/src/mapify_cli/skills_eval/review_corpus.py +524 -0
- mapify_cli-3.34.0/src/mapify_cli/skills_eval/review_pilot.py +638 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/actor.md +5 -4
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/final-verifier.md +9 -9
- mapify_cli-3.34.0/src/mapify_cli/templates/agents/review-reader.md +38 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/task-decomposer.md +7 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/actor.toml +1 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +7 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +6 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +1 -1
- mapify_cli-3.34.0/src/mapify_cli/templates/codex/agents/review-reader.toml +39 -0
- {mapify_cli-3.33.0/tests/fixtures → mapify_cli-3.34.0/src/mapify_cli/templates}/codex/config.toml +4 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +4 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +3 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +52 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +179 -178
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +10 -7
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +41 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +8 -10
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +2 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +2 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +15 -7
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +21 -6
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +482 -87
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +2798 -196
- mapify_cli-3.34.0/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +115 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +44 -6
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +28 -19
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/README.md +2 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +4 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +2 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +52 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +177 -177
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +9 -6
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +41 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +8 -11
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +2 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +2 -3
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +15 -7
- mapify_cli-3.34.0/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +605 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +2 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +5 -4
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +9 -9
- mapify_cli-3.34.0/src/mapify_cli/templates_src/agents/review-reader.md.jinja +38 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +7 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +1 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +7 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +6 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +1 -1
- mapify_cli-3.34.0/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +39 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +4 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +21 -6
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +482 -87
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +2193 -196
- mapify_cli-3.34.0/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +115 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +44 -6
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +28 -19
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/README.md.jinja +2 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +4 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +3 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +52 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +189 -188
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +15 -12
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +41 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +8 -11
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +2 -3
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +15 -7
- {mapify_cli-3.33.0/src/mapify_cli/templates → mapify_cli-3.34.0/tests/fixtures}/codex/config.toml +4 -0
- mapify_cli-3.34.0/tests/review_pilot_git_cache.py +69 -0
- mapify_cli-3.34.0/tests/review_process_lifecycle.py +98 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/corpus.json +82 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/evidence/adjudication.json +13 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/evidence/control-audit.json +34 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/evidence/manual-run.json +66 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/evidence/manual-run.log +69 -0
- mapify_cli-3.34.0/tests/skills_eval/review_corpus/evidence/manual_repro.py +127 -0
- mapify_cli-3.34.0/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +82 -0
- mapify_cli-3.34.0/tests/test_acceptance_additive_revision.py +158 -0
- mapify_cli-3.34.0/tests/test_acceptance_additive_revision_review.py +82 -0
- mapify_cli-3.34.0/tests/test_acceptance_proofs.py +233 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_agent_dispatch_audit.py +22 -8
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_approval_hold.py +7 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_codex_map_review_live.py +97 -26
- mapify_cli-3.34.0/tests/test_debug_reference_install.py +111 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_interruption.py +108 -19
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_step_runner.py +125 -23
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_mapify_cli.py +14 -1
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_memory_capture.py +2 -1
- mapify_cli-3.34.0/tests/test_memory_events.py +87 -0
- mapify_cli-3.34.0/tests/test_memory_events_compat.py +140 -0
- mapify_cli-3.34.0/tests/test_memory_events_exit_status.py +61 -0
- mapify_cli-3.34.0/tests/test_memory_events_privacy.py +155 -0
- mapify_cli-3.34.0/tests/test_memory_events_review.py +95 -0
- mapify_cli-3.34.0/tests/test_memory_events_tools.py +83 -0
- mapify_cli-3.34.0/tests/test_model_invocable_skills.py +61 -0
- mapify_cli-3.34.0/tests/test_orchestrator_acceptance.py +240 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_release_ci_gates.py +1 -1
- mapify_cli-3.34.0/tests/test_resequence_pending.py +546 -0
- mapify_cli-3.34.0/tests/test_review_attribution_receipts.py +138 -0
- mapify_cli-3.34.0/tests/test_review_branch_receipts.py +66 -0
- mapify_cli-3.34.0/tests/test_review_check_timeouts.py +272 -0
- mapify_cli-3.34.0/tests/test_review_corpus.py +738 -0
- mapify_cli-3.34.0/tests/test_review_explicit_base.py +363 -0
- mapify_cli-3.34.0/tests/test_review_explicit_base_legacy_override.py +71 -0
- mapify_cli-3.34.0/tests/test_review_explicit_base_stale_readers.py +113 -0
- mapify_cli-3.34.0/tests/test_review_finding_validation.py +333 -0
- mapify_cli-3.34.0/tests/test_review_pilot.py +695 -0
- mapify_cli-3.34.0/tests/test_review_pilot_git_cache.py +82 -0
- mapify_cli-3.34.0/tests/test_review_process_lifecycle.py +258 -0
- mapify_cli-3.34.0/tests/test_review_reader_capabilities.py +162 -0
- mapify_cli-3.34.0/tests/test_review_receipt_edge_cases.py +122 -0
- mapify_cli-3.34.0/tests/test_review_security_gates.py +817 -0
- mapify_cli-3.34.0/tests/test_review_trusted_policy.py +204 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_review_verdict_ledger.py +1156 -13
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills.py +49 -28
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_apply.py +1 -1
- mapify_cli-3.34.0/tests/test_static_analysis_bash.py +225 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_template_render.py +58 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wayfind_install.py +2 -2
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wayfind_research.py +187 -5
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/.gitignore +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/LICENSE +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/__main__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/_python_guard.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/auto_update.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/boundary_quality_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/code_map.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/codex_exec.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/file_copier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/governance_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/grace_eval/schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/install_manifest.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/minimality_eval.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/minimality_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/parallelism_observability.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/provider_registry.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/python_runtime.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/ralph_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/research_eval.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/research_eval_compare.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/scope_classifier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/monitor.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/monitor.toml +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/context-meter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/post-compact-context.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/workflow-context-injector.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/post-compact-context.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/workflow-context-injector.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/tool_output_offload.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/update_install.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/update_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/update_versions.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/verification_recorder.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/_fake_task_tool.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/conftest.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/fixtures/wave_blueprints.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/hooks/test_end_of_turn.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_agent_memory.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_auto_update.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_boundary_quality_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_classify_scope_script.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_code_map.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_compaction_offload_integration.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_concurrent_dispatch_harness.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_context_usefulness.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_cross_ai_config.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_domain_skill.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_governance_attack_fixtures.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_governance_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_grace_eval_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_grace_eval_sweep.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_install_manifest.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_locking.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_auto.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_orchestrator.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_map_utils_sanitize.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_minimality_eval.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_minimality_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_mutation_path_normalization.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_parallelism_observability.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_post_compact_context.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_preset_commands.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_project_config.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_prompt_layering.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_prompt_profile_commands.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_python_version_requirement.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_pyyaml_dep.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_ralph_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_repair_attribution.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_repair_workflow_gate.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_research_eval.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_research_eval_compare.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_schemas.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_scope_classifier.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_scrub_internal_ids.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_settings_deny_globs.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_shell_json_pipes.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_report.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_slice5b_leak_guards.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_sofa_client.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_statusline.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_tool_output_offload.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_update_install.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_update_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_update_versions.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_validate_spec_citations.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wave_eval_harness.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wave_fixtures.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wave_parallel_harness.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_wayfind_runner.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_workflow_context_injector.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_workflow_gate.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_workflow_state.py +0 -0
- {mapify_cli-3.33.0 → mapify_cli-3.34.0}/tests/test_worktree_isolation.py +0 -0
|
@@ -19,7 +19,7 @@ MAP uses `skillClass` in `skill-rules.json` to make the runtime role explicit.
|
|
|
19
19
|
| Skill | Class | Notes |
|
|
20
20
|
|-------|-------|-------|
|
|
21
21
|
| `map-state` | `hybrid` | Explains branch-scoped planning and ships hooks/scripts that surface focus and completion checks |
|
|
22
|
-
| `map-learn` | `task` |
|
|
22
|
+
| `map-learn` | `task` | Model-invocable slash workflow; writes learned rules from a completed workflow handoff |
|
|
23
23
|
| `map-plan`, `map-efficient`, `map-fast`, `map-debug`, `map-tdd`, `map-task`, `map-check`, `map-review`, `map-resume`, `map-release`, `map-explain` | `task` | Skill-backed slash workflows invoked directly by the user |
|
|
24
24
|
|
|
25
25
|
## Skills vs Agents
|
|
@@ -50,7 +50,7 @@ MAP uses `skillClass` in `skill-rules.json` to make the runtime role explicit.
|
|
|
50
50
|
|
|
51
51
|
Use a `reference` skill when the content is mostly durable knowledge: conventions, decision trees, examples, troubleshooting, or domain guidance. Reference skills should be safe to load opportunistically and should avoid owning multi-step mutation procedures.
|
|
52
52
|
|
|
53
|
-
Use a `task` skill when the skill behaves like a workflow: it has required steps, validation gates, agent calls, file writes, commits, releases, or other deterministic procedures.
|
|
53
|
+
Use a `task` skill when the skill behaves like a workflow: it has required steps, validation gates, agent calls, file writes, commits, releases, or other deterministic procedures. Task skills advertise an `argument-hint` and retain `enforcement: manual` as routing metadata, not a model-invocation block. All MAP skills are model-invocable except `map-release`, which alone keeps `disable-model-invocation: true`. Descriptions and negative triggers control routing; in-skill confirmation gates still apply, including version-specific major-upgrade consent in `map-upgrade`.
|
|
54
54
|
|
|
55
55
|
Use `hybrid` only when both are true: the skill is useful as reference material, and it also ships runtime helpers such as hooks or scripts. Hybrid skills must list `runtimeEffects` in `skill-rules.json` so users can tell which behavior comes from reading instructions and which behavior comes from installed hooks or scripts.
|
|
56
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.34.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
|
|
@@ -54,6 +54,8 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
<a href="https://github.com/azalio/map-framework"><img src="https://img.shields.io/github/stars/azalio/map-framework?style=social" alt="GitHub stars"></a>
|
|
55
55
|
</p>
|
|
56
56
|
|
|
57
|
+
After `mapify upgrade`, Claude can invoke any MAP skill through the Skill tool on your behalf except `/map-release`, which remains manual-only. Workflow confirmation gates still apply; `/map-upgrade` requires explicit consent for a major version.
|
|
58
|
+
|
|
57
59
|
## Why MAP Exists
|
|
58
60
|
|
|
59
61
|
Most AI agents rush straight to code — fast wrong answers, silent rework.
|
|
@@ -103,6 +105,14 @@ For Go projects requiring build tags, set `checks.go.tags: integration,netgo` in
|
|
|
103
105
|
Claude Code is the default provider. Cross-AI review compares explicit host and
|
|
104
106
|
reviewer adapter vendors; same-vendor or unknown provenance is not labeled
|
|
105
107
|
independent ([details](docs/USAGE.md#cross-ai-peer-review---cross-ai-runtime)).
|
|
108
|
+
An [offline historical review corpus](docs/USAGE.md#offline-historical-review-corpus)
|
|
109
|
+
provides pinned introducing diffs, adjudicator-only labels and audited controls.
|
|
110
|
+
It starts no reviewers and makes no evaluation or policy-promotion claims.
|
|
111
|
+
An opt-in [bounded subscription pilot](docs/USAGE.md#bounded-subscription-review-pilot)
|
|
112
|
+
adds offline preparation/reporting and a separately acknowledged, at-most-six-call
|
|
113
|
+
Claude CLI runner. Its v2 inputs are complete allowlisted `-U30` diffs; prompts
|
|
114
|
+
estimated above 60,000 tokens are excluded, never truncated. Results require
|
|
115
|
+
manual adjudication; historical v1 runs cannot be resumed.
|
|
106
116
|
|
|
107
117
|
Claude Code:
|
|
108
118
|
|
|
@@ -140,11 +150,15 @@ $map-plan → $map-efficient → $map-check → $map-review → $map-learn
|
|
|
140
150
|
|
|
141
151
|
That's the whole golden path.
|
|
142
152
|
|
|
153
|
+
Need to reorder unstarted work in an active run? Use the audited
|
|
154
|
+
[`resequence_pending` command](docs/USAGE.md#reorder-pending-subtasks)
|
|
155
|
+
without resetting the current step, retries, results or baselines.
|
|
156
|
+
|
|
143
157
|
- **Start with `/map-plan`** for anything non-trivial — it clarifies behavior and splits the work into contract-sized subtasks.
|
|
144
158
|
- **Starting from a PRD?** Run `/map-prd-review` directly, or accept `/map-plan`'s optional readiness preflight. A non-ready result shows the gaps and asks whether to revise or continue planning anyway.
|
|
145
159
|
- **Already scoped?** Go straight to `/map-efficient`.
|
|
146
160
|
- **Tiny edit?** `/map-plan` off-ramps you to a direct edit or `/map-fast` instead of forcing full planning.
|
|
147
|
-
- **Too foggy to plan?** `/map-wayfind` resolves open design decisions on a durable map. Evidence-first research is on by default: factual lookups stay light; uncertain decisions get independent investigations and targeted checks, with
|
|
161
|
+
- **Too foggy to plan?** `/map-wayfind` resolves open design decisions on a durable map. Evidence-first research is on by default: factual lookups stay light; uncertain decisions get independent investigations and targeted checks, with no default attempt cap for authorized read-only work. Opt in at task start with `configure_research --budget-limit N`; existing caps remain binding and extensions require scoped user approval. Consequential or genuinely expensive actions still need separate consent. Stale open-ticket evidence can be explicitly refreshed without erasing history or resetting that budget. Research handoffs are checked before `/map-plan`; historical decisions retain explicit legacy provenance.
|
|
148
162
|
- **Want one entry point?** `/map-auto` routes and drives the chain autonomously; hard-stops only on `dangerous_action`/`safety_guardrail` holds.
|
|
149
163
|
|
|
150
164
|
> Codex CLI ships the same 23 MAP skill entry points and invokes them with `$`:
|
|
@@ -171,6 +185,12 @@ manual checks report errors explicitly. The public `mapify upgrade` command is
|
|
|
171
185
|
separate and unchanged: it upgrades only the CLI and does not refresh project
|
|
172
186
|
files. See [Automatic and manual framework updates](docs/USAGE.md#automatic-and-manual-framework-updates).
|
|
173
187
|
|
|
188
|
+
If a legacy `map-debug` skill cannot load its `../../references/` documents, refresh
|
|
189
|
+
the project after upgrading the CLI:
|
|
190
|
+
`mapify init . --force --no-git --provider codex --refresh-existing`
|
|
191
|
+
(use `--provider claude` for Claude). This restores missing managed references;
|
|
192
|
+
upgrading the CLI alone does not.
|
|
193
|
+
|
|
174
194
|
## Case Study: 90 days → 7 days
|
|
175
195
|
|
|
176
196
|
The DevOpsConf 2026 case study applies this process to a production Kubernetes Project Operator:
|
|
@@ -214,6 +234,8 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
214
234
|
| `/map-release` | Package release workflow; Codex `$map-release` shares the same commit-bound CI gates |
|
|
215
235
|
| `/map-resume` | Resume interrupted workflows |
|
|
216
236
|
|
|
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
|
+
|
|
217
239
|
[Detailed usage and options →](docs/USAGE.md)
|
|
218
240
|
|
|
219
241
|
## Why Engineers Stick With It
|
|
@@ -222,7 +244,11 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
222
244
|
- **Reviewable diffs** — `/map-plan` and `/map-efficient` require per-subtask size, concern, and constraint metadata, then validate `blueprint.json` *before* implementation, so oversized or mixed-concern plans fail early.
|
|
223
245
|
- **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".
|
|
224
246
|
- **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.
|
|
225
|
-
- **
|
|
247
|
+
- **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.
|
|
249
|
+
- **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
|
+
- **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.
|
|
251
|
+
- **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.
|
|
226
252
|
|
|
227
253
|
<details>
|
|
228
254
|
<summary><b>More under the hood</b> — calibrated effort, mutation boundaries, token budgets, retry quarantine, run-health diagnostics, skill IR audit</summary>
|
|
@@ -235,7 +261,7 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
235
261
|
- **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.
|
|
236
262
|
- **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.
|
|
237
263
|
- **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`.
|
|
238
|
-
- **Lossless serial blocker repair** — independently approved repairs run in a private checkout with their own Monitor and full gate, preserving the paused task's phase, results, retries and dirty files. Concurrent waves and overlapping repair paths fail closed; see [the repair protocol](docs/USAGE.md#independent-serial-blocker-repair).
|
|
264
|
+
- **Lossless serial blocker repair** — standalone repositories and linked Git worktrees are supported; independently approved repairs run in a private checkout with their own Monitor and full gate, preserving the paused task's phase, results, retries and dirty files. Concurrent waves and overlapping repair paths fail closed; see [the repair protocol](docs/USAGE.md#independent-serial-blocker-repair).
|
|
239
265
|
- **Compact recovery surface** — `/map-resume` keeps the active recovery flow short and moves low-frequency notes to `resume-reference.md`, so recovery after `/clear` or context exhaustion gives the next checkpoint action without loading the whole appendix.
|
|
240
266
|
- **Skill IR audit** — release checks lower shipped Claude and Codex `SKILL.md` files into a typed `SkillIR`, verify content hashes, catch unsupported frontmatter, reject missing supporting-file links, and block injection-like instructions before `mapify init` copies surfaces into user repos.
|
|
241
267
|
|
|
@@ -272,7 +298,7 @@ After a good first workflow, you should see:
|
|
|
272
298
|
|
|
273
299
|
- a written plan or spec before implementation starts;
|
|
274
300
|
- small implementation contracts instead of one giant AI diff;
|
|
275
|
-
- verification and review artifacts under `.map/<branch
|
|
301
|
+
- verification and review artifacts under `.map/<branch>/`, including runner-executed acceptance proofs rather than self-reported AC checkboxes;
|
|
276
302
|
- review comments focused on correctness and semantics, not formatting noise;
|
|
277
303
|
- `/map-learn` preserving project rules, gotchas, and handoffs for future sessions.
|
|
278
304
|
|
|
@@ -334,6 +360,8 @@ mapify init . --no-autonomy # remove the autonomy posture
|
|
|
334
360
|
|
|
335
361
|
## Trouble?
|
|
336
362
|
|
|
363
|
+
- **Static analysis reports `local: -n: invalid option` on macOS** → Update MAP and refresh your provider's installed project files (`mapify init . --refresh-existing`, adding `--provider codex` for Codex). The Go/mypy diagnostic parser supports system Bash 3.2; upgrading Bash is not required for this parser. Re-run analysis rather than trusting an earlier empty report.
|
|
364
|
+
|
|
337
365
|
- **Command not found** → Run `mapify init` in your project first.
|
|
338
366
|
- **`init` stops on a Python version** → `python3` on your `PATH` is older than 3.11; the hooks run under it. Install 3.11+ (`brew install python@3.12` / `uv python install 3.12`), then `mapify check`. To install anyway, pass `--skip-python-check` or set `MAPIFY_SKIP_PYTHON_CHECK=1` — hooks stay non-functional until `python3` is upgraded ([details](docs/INSTALL.md#why-python3-on-path-matters)).
|
|
339
367
|
- **A hook printed "MAP requires Python 3.11 or newer"** → same cause, detected at run time; the message names the interpreter it ran under. Context hooks report and let the session continue; the two PreToolUse gates (`safety-guardrails.py`, `workflow-gate.py`) deny the tool call instead of allowing it unguarded, so fix `python3` in another terminal to unblock.
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
<a href="https://github.com/azalio/map-framework"><img src="https://img.shields.io/github/stars/azalio/map-framework?style=social" alt="GitHub stars"></a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
+
After `mapify upgrade`, Claude can invoke any MAP skill through the Skill tool on your behalf except `/map-release`, which remains manual-only. Workflow confirmation gates still apply; `/map-upgrade` requires explicit consent for a major version.
|
|
13
|
+
|
|
12
14
|
## Why MAP Exists
|
|
13
15
|
|
|
14
16
|
Most AI agents rush straight to code — fast wrong answers, silent rework.
|
|
@@ -58,6 +60,14 @@ For Go projects requiring build tags, set `checks.go.tags: integration,netgo` in
|
|
|
58
60
|
Claude Code is the default provider. Cross-AI review compares explicit host and
|
|
59
61
|
reviewer adapter vendors; same-vendor or unknown provenance is not labeled
|
|
60
62
|
independent ([details](docs/USAGE.md#cross-ai-peer-review---cross-ai-runtime)).
|
|
63
|
+
An [offline historical review corpus](docs/USAGE.md#offline-historical-review-corpus)
|
|
64
|
+
provides pinned introducing diffs, adjudicator-only labels and audited controls.
|
|
65
|
+
It starts no reviewers and makes no evaluation or policy-promotion claims.
|
|
66
|
+
An opt-in [bounded subscription pilot](docs/USAGE.md#bounded-subscription-review-pilot)
|
|
67
|
+
adds offline preparation/reporting and a separately acknowledged, at-most-six-call
|
|
68
|
+
Claude CLI runner. Its v2 inputs are complete allowlisted `-U30` diffs; prompts
|
|
69
|
+
estimated above 60,000 tokens are excluded, never truncated. Results require
|
|
70
|
+
manual adjudication; historical v1 runs cannot be resumed.
|
|
61
71
|
|
|
62
72
|
Claude Code:
|
|
63
73
|
|
|
@@ -95,11 +105,15 @@ $map-plan → $map-efficient → $map-check → $map-review → $map-learn
|
|
|
95
105
|
|
|
96
106
|
That's the whole golden path.
|
|
97
107
|
|
|
108
|
+
Need to reorder unstarted work in an active run? Use the audited
|
|
109
|
+
[`resequence_pending` command](docs/USAGE.md#reorder-pending-subtasks)
|
|
110
|
+
without resetting the current step, retries, results or baselines.
|
|
111
|
+
|
|
98
112
|
- **Start with `/map-plan`** for anything non-trivial — it clarifies behavior and splits the work into contract-sized subtasks.
|
|
99
113
|
- **Starting from a PRD?** Run `/map-prd-review` directly, or accept `/map-plan`'s optional readiness preflight. A non-ready result shows the gaps and asks whether to revise or continue planning anyway.
|
|
100
114
|
- **Already scoped?** Go straight to `/map-efficient`.
|
|
101
115
|
- **Tiny edit?** `/map-plan` off-ramps you to a direct edit or `/map-fast` instead of forcing full planning.
|
|
102
|
-
- **Too foggy to plan?** `/map-wayfind` resolves open design decisions on a durable map. Evidence-first research is on by default: factual lookups stay light; uncertain decisions get independent investigations and targeted checks, with
|
|
116
|
+
- **Too foggy to plan?** `/map-wayfind` resolves open design decisions on a durable map. Evidence-first research is on by default: factual lookups stay light; uncertain decisions get independent investigations and targeted checks, with no default attempt cap for authorized read-only work. Opt in at task start with `configure_research --budget-limit N`; existing caps remain binding and extensions require scoped user approval. Consequential or genuinely expensive actions still need separate consent. Stale open-ticket evidence can be explicitly refreshed without erasing history or resetting that budget. Research handoffs are checked before `/map-plan`; historical decisions retain explicit legacy provenance.
|
|
103
117
|
- **Want one entry point?** `/map-auto` routes and drives the chain autonomously; hard-stops only on `dangerous_action`/`safety_guardrail` holds.
|
|
104
118
|
|
|
105
119
|
> Codex CLI ships the same 23 MAP skill entry points and invokes them with `$`:
|
|
@@ -126,6 +140,12 @@ manual checks report errors explicitly. The public `mapify upgrade` command is
|
|
|
126
140
|
separate and unchanged: it upgrades only the CLI and does not refresh project
|
|
127
141
|
files. See [Automatic and manual framework updates](docs/USAGE.md#automatic-and-manual-framework-updates).
|
|
128
142
|
|
|
143
|
+
If a legacy `map-debug` skill cannot load its `../../references/` documents, refresh
|
|
144
|
+
the project after upgrading the CLI:
|
|
145
|
+
`mapify init . --force --no-git --provider codex --refresh-existing`
|
|
146
|
+
(use `--provider claude` for Claude). This restores missing managed references;
|
|
147
|
+
upgrading the CLI alone does not.
|
|
148
|
+
|
|
129
149
|
## Case Study: 90 days → 7 days
|
|
130
150
|
|
|
131
151
|
The DevOpsConf 2026 case study applies this process to a production Kubernetes Project Operator:
|
|
@@ -169,6 +189,8 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
169
189
|
| `/map-release` | Package release workflow; Codex `$map-release` shares the same commit-bound CI gates |
|
|
170
190
|
| `/map-resume` | Resume interrupted workflows |
|
|
171
191
|
|
|
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
|
+
|
|
172
194
|
[Detailed usage and options →](docs/USAGE.md)
|
|
173
195
|
|
|
174
196
|
## Why Engineers Stick With It
|
|
@@ -177,7 +199,11 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
177
199
|
- **Reviewable diffs** — `/map-plan` and `/map-efficient` require per-subtask size, concern, and constraint metadata, then validate `blueprint.json` *before* implementation, so oversized or mixed-concern plans fail early.
|
|
178
200
|
- **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".
|
|
179
201
|
- **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.
|
|
180
|
-
- **
|
|
202
|
+
- **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.
|
|
204
|
+
- **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
|
+
- **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.
|
|
206
|
+
- **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.
|
|
181
207
|
|
|
182
208
|
<details>
|
|
183
209
|
<summary><b>More under the hood</b> — calibrated effort, mutation boundaries, token budgets, retry quarantine, run-health diagnostics, skill IR audit</summary>
|
|
@@ -190,7 +216,7 @@ The DevOpsConf 2026 case study applies this process to a production Kubernetes P
|
|
|
190
216
|
- **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.
|
|
191
217
|
- **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.
|
|
192
218
|
- **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`.
|
|
193
|
-
- **Lossless serial blocker repair** — independently approved repairs run in a private checkout with their own Monitor and full gate, preserving the paused task's phase, results, retries and dirty files. Concurrent waves and overlapping repair paths fail closed; see [the repair protocol](docs/USAGE.md#independent-serial-blocker-repair).
|
|
219
|
+
- **Lossless serial blocker repair** — standalone repositories and linked Git worktrees are supported; independently approved repairs run in a private checkout with their own Monitor and full gate, preserving the paused task's phase, results, retries and dirty files. Concurrent waves and overlapping repair paths fail closed; see [the repair protocol](docs/USAGE.md#independent-serial-blocker-repair).
|
|
194
220
|
- **Compact recovery surface** — `/map-resume` keeps the active recovery flow short and moves low-frequency notes to `resume-reference.md`, so recovery after `/clear` or context exhaustion gives the next checkpoint action without loading the whole appendix.
|
|
195
221
|
- **Skill IR audit** — release checks lower shipped Claude and Codex `SKILL.md` files into a typed `SkillIR`, verify content hashes, catch unsupported frontmatter, reject missing supporting-file links, and block injection-like instructions before `mapify init` copies surfaces into user repos.
|
|
196
222
|
|
|
@@ -227,7 +253,7 @@ After a good first workflow, you should see:
|
|
|
227
253
|
|
|
228
254
|
- a written plan or spec before implementation starts;
|
|
229
255
|
- small implementation contracts instead of one giant AI diff;
|
|
230
|
-
- verification and review artifacts under `.map/<branch
|
|
256
|
+
- verification and review artifacts under `.map/<branch>/`, including runner-executed acceptance proofs rather than self-reported AC checkboxes;
|
|
231
257
|
- review comments focused on correctness and semantics, not formatting noise;
|
|
232
258
|
- `/map-learn` preserving project rules, gotchas, and handoffs for future sessions.
|
|
233
259
|
|
|
@@ -289,6 +315,8 @@ mapify init . --no-autonomy # remove the autonomy posture
|
|
|
289
315
|
|
|
290
316
|
## Trouble?
|
|
291
317
|
|
|
318
|
+
- **Static analysis reports `local: -n: invalid option` on macOS** → Update MAP and refresh your provider's installed project files (`mapify init . --refresh-existing`, adding `--provider codex` for Codex). The Go/mypy diagnostic parser supports system Bash 3.2; upgrading Bash is not required for this parser. Re-run analysis rather than trusting an earlier empty report.
|
|
319
|
+
|
|
292
320
|
- **Command not found** → Run `mapify init` in your project first.
|
|
293
321
|
- **`init` stops on a Python version** → `python3` on your `PATH` is older than 3.11; the hooks run under it. Install 3.11+ (`brew install python@3.12` / `uv python install 3.12`), then `mapify check`. To install anyway, pass `--skip-python-check` or set `MAPIFY_SKIP_PYTHON_CHECK=1` — hooks stay non-functional until `python3` is upgraded ([details](docs/INSTALL.md#why-python3-on-path-matters)).
|
|
294
322
|
- **A hook printed "MAP requires Python 3.11 or newer"** → same cause, detected at run time; the message names the interpreter it ran under. Context hooks report and let the session continue; the two PreToolUse gates (`safety-guardrails.py`, `workflow-gate.py`) deny the tool call instead of allowing it unguarded, so fix `python3` in another terminal to unblock.
|
|
@@ -23,7 +23,7 @@ Or install globally:
|
|
|
23
23
|
mapify check
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
|
-
__version__ = "3.
|
|
26
|
+
__version__ = "3.34.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
|
|
@@ -726,6 +726,14 @@ updates.auto: true
|
|
|
726
726
|
# review.cross_ai.runtime: codex # default target: claude|codex|gemini|opencode
|
|
727
727
|
# review.cross_ai.timeout_seconds: 180
|
|
728
728
|
|
|
729
|
+
# Security/human review gates (#523): shadow records evidence without new blockers.
|
|
730
|
+
# Strict requires independent security coverage and verified human consent.
|
|
731
|
+
# Human provenance is not supported yet, so strict sensitive reviews stay pending.
|
|
732
|
+
# This option is read ONLY from .map/config.yaml committed on the trusted default
|
|
733
|
+
# branch, never from PR-head or mutable local config. Existing review gates remain.
|
|
734
|
+
# review:
|
|
735
|
+
# security_gates: shadow # shadow (default) | strict
|
|
736
|
+
|
|
729
737
|
# Per-subtask git worktree isolation (#284). Controls filesystem isolation for
|
|
730
738
|
# each Actor run in `/map-efficient`. Enum values:
|
|
731
739
|
# off — never create worktrees; sequential execution always.
|
|
@@ -14,21 +14,30 @@ exceptions and no-op silently — a hook must never block Claude.
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import functools
|
|
17
|
+
import hashlib
|
|
17
18
|
import json
|
|
18
19
|
import logging
|
|
20
|
+
import os
|
|
19
21
|
import re
|
|
20
22
|
from datetime import UTC, datetime
|
|
23
|
+
from itertools import chain
|
|
21
24
|
from pathlib import Path
|
|
22
25
|
from typing import Any
|
|
23
26
|
|
|
24
27
|
from mapify_cli.memory.digest_schema import (
|
|
28
|
+
CAPTURE_EVENT_BYTES,
|
|
29
|
+
EVENT_CAPTURE_TRUNCATED,
|
|
25
30
|
EVENT_ENDED,
|
|
26
31
|
EVENT_TURN,
|
|
32
|
+
EVENT_USER_PROMPT,
|
|
33
|
+
PROMPT_PREFIX_CHARS,
|
|
27
34
|
SCRATCH_ENDED_FIELDS,
|
|
28
35
|
SCRATCH_TURN_FIELDS,
|
|
36
|
+
bounded_text,
|
|
29
37
|
redact_secret_path,
|
|
30
38
|
sanitize_value,
|
|
31
39
|
)
|
|
40
|
+
from mapify_cli.memory.evidence import native_tool_events
|
|
32
41
|
from mapify_cli.ralph_state import sanitize_branch_name
|
|
33
42
|
|
|
34
43
|
logger = logging.getLogger(__name__)
|
|
@@ -328,8 +337,44 @@ def _extract_edit_paths(obj: Any, out: list[str]) -> None:
|
|
|
328
337
|
_extract_edit_paths(value, out)
|
|
329
338
|
|
|
330
339
|
|
|
340
|
+
def _prompt_event(record: object) -> dict[str, Any] | None:
|
|
341
|
+
"""Select human text only, never assistant prose or user-carried results."""
|
|
342
|
+
if not isinstance(record, dict):
|
|
343
|
+
return None
|
|
344
|
+
if record.get("isMeta") or record.get("isCompactSummary"):
|
|
345
|
+
return None
|
|
346
|
+
if record.get("type") == "response_item":
|
|
347
|
+
message = record.get("payload")
|
|
348
|
+
if not isinstance(message, dict) or message.get("type") != "message":
|
|
349
|
+
return None
|
|
350
|
+
elif record.get("type") == "user":
|
|
351
|
+
message = record.get("message")
|
|
352
|
+
else:
|
|
353
|
+
return None
|
|
354
|
+
if not isinstance(message, dict) or message.get("role") != "user":
|
|
355
|
+
return None
|
|
356
|
+
content = message.get("content")
|
|
357
|
+
if isinstance(content, list):
|
|
358
|
+
if any(isinstance(block, dict) and block.get("type") == "tool_result" for block in content):
|
|
359
|
+
return None
|
|
360
|
+
content = "\n".join(
|
|
361
|
+
block["text"] for block in content
|
|
362
|
+
if isinstance(block, dict) and block.get("type") in {"text", "input_text"}
|
|
363
|
+
and isinstance(block.get("text"), str)
|
|
364
|
+
)
|
|
365
|
+
if not isinstance(content, str) or not content.strip():
|
|
366
|
+
return None
|
|
367
|
+
cleaned = bounded_text(content, len(content))
|
|
368
|
+
return {
|
|
369
|
+
"event": EVENT_USER_PROMPT,
|
|
370
|
+
"prompt_hash": hashlib.sha256(content.encode("utf-8")).hexdigest(),
|
|
371
|
+
"prefix": cleaned[:PROMPT_PREFIX_CHARS],
|
|
372
|
+
"truncated": len(cleaned) > PROMPT_PREFIX_CHARS,
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
|
|
331
376
|
def _files_from_transcript(
|
|
332
|
-
transcript_path: Path, start: int
|
|
377
|
+
transcript_path: Path, start: int, events: list[dict[str, Any]] | None = None
|
|
333
378
|
) -> tuple[list[str], int]:
|
|
334
379
|
"""Recover files edited since transcript line *start*.
|
|
335
380
|
|
|
@@ -353,13 +398,17 @@ def _files_from_transcript(
|
|
|
353
398
|
start = max(start, 0)
|
|
354
399
|
|
|
355
400
|
raw_paths: list[str] = []
|
|
401
|
+
event_bytes = 0
|
|
402
|
+
omitted = 0
|
|
356
403
|
total = start
|
|
357
404
|
try:
|
|
358
405
|
with open(transcript_path, encoding="utf-8", errors="replace") as fh:
|
|
359
406
|
for idx, line in enumerate(fh):
|
|
360
|
-
total = idx + 1
|
|
361
407
|
if idx < start:
|
|
362
408
|
continue # already consumed by a prior turn
|
|
409
|
+
if not line.endswith("\n"):
|
|
410
|
+
break # retry a partially written trailing record next time
|
|
411
|
+
total = idx + 1
|
|
363
412
|
line = line.strip()
|
|
364
413
|
if not line:
|
|
365
414
|
continue
|
|
@@ -368,9 +417,23 @@ def _files_from_transcript(
|
|
|
368
417
|
except json.JSONDecodeError:
|
|
369
418
|
continue
|
|
370
419
|
_extract_edit_paths(rec, raw_paths)
|
|
420
|
+
if events is not None:
|
|
421
|
+
prompt = _prompt_event(rec)
|
|
422
|
+
candidates = chain([prompt] if prompt is not None else [], native_tool_events(rec))
|
|
423
|
+
for event in candidates:
|
|
424
|
+
size = len(json.dumps(event, ensure_ascii=True)) + 512
|
|
425
|
+
if event_bytes + size <= CAPTURE_EVENT_BYTES - 1024:
|
|
426
|
+
events.append(event)
|
|
427
|
+
event_bytes += size
|
|
428
|
+
else:
|
|
429
|
+
omitted += 1
|
|
371
430
|
except OSError:
|
|
431
|
+
if events is not None:
|
|
432
|
+
events.clear()
|
|
372
433
|
return [], start
|
|
373
434
|
|
|
435
|
+
if omitted and events is not None:
|
|
436
|
+
events.append({"event": EVENT_CAPTURE_TRUNCATED, "omitted_events": omitted})
|
|
374
437
|
return _redact_and_dedup(raw_paths), total
|
|
375
438
|
|
|
376
439
|
|
|
@@ -378,6 +441,7 @@ def _derive_files_touched(
|
|
|
378
441
|
stdin_data: dict[str, Any],
|
|
379
442
|
scratch_dir: Path | None = None,
|
|
380
443
|
sid: str | None = None,
|
|
444
|
+
events: list[dict[str, Any]] | None = None,
|
|
381
445
|
) -> tuple[list[str], int | None]:
|
|
382
446
|
"""Extract the file paths touched this turn, from one of two sources.
|
|
383
447
|
|
|
@@ -419,7 +483,7 @@ def _derive_files_touched(
|
|
|
419
483
|
except (OSError, ValueError):
|
|
420
484
|
start = 0
|
|
421
485
|
|
|
422
|
-
files, total = _files_from_transcript(Path(str(transcript)), start)
|
|
486
|
+
files, total = _files_from_transcript(Path(str(transcript)), start, events)
|
|
423
487
|
return files, (total if track_offset else None)
|
|
424
488
|
|
|
425
489
|
|
|
@@ -477,8 +541,9 @@ def append_turn(stdin_data: dict[str, Any], project_dir: Path | str) -> None:
|
|
|
477
541
|
|
|
478
542
|
turn_number = _highest_turn_number(scratch_path) + 1
|
|
479
543
|
|
|
544
|
+
events: list[dict[str, Any]] = []
|
|
480
545
|
files_touched, new_offset = _derive_files_touched(
|
|
481
|
-
stdin_data, scratch_dir, effective_sid
|
|
546
|
+
stdin_data, scratch_dir, effective_sid, events
|
|
482
547
|
)
|
|
483
548
|
|
|
484
549
|
# Build the record using field names from SCRATCH_TURN_FIELDS.
|
|
@@ -492,8 +557,13 @@ def append_turn(stdin_data: dict[str, Any], project_dir: Path | str) -> None:
|
|
|
492
557
|
SCRATCH_TURN_FIELDS[5]: EVENT_TURN, # event
|
|
493
558
|
}
|
|
494
559
|
|
|
560
|
+
for event in events:
|
|
561
|
+
event.update(ts=record["ts"], session_id=record["session_id"], turn=turn_number)
|
|
562
|
+
batch = "".join(json.dumps(event, ensure_ascii=True) + "\n" for event in events)
|
|
495
563
|
with open(scratch_path, "a", encoding="utf-8") as fh:
|
|
496
|
-
fh.write(json.dumps(record, ensure_ascii=True) + "\n")
|
|
564
|
+
fh.write(batch + json.dumps(record, ensure_ascii=True) + "\n")
|
|
565
|
+
fh.flush()
|
|
566
|
+
os.fsync(fh.fileno())
|
|
497
567
|
|
|
498
568
|
# Advance the transcript offset ONLY AFTER the record is durably
|
|
499
569
|
# written — so a crash between the two never skips a transcript range.
|
|
@@ -45,6 +45,36 @@ SCRATCH_ENDED_FIELDS: tuple[str, ...] = (
|
|
|
45
45
|
# Event-type literals for the "event" field.
|
|
46
46
|
EVENT_TURN: str = "turn"
|
|
47
47
|
EVENT_ENDED: str = "ended"
|
|
48
|
+
EVENT_USER_PROMPT = "user_prompt"
|
|
49
|
+
EVENT_TOOL_USED = "tool_used"
|
|
50
|
+
EVENT_OUTCOME = "outcome"
|
|
51
|
+
EVENT_CAPTURE_TRUNCATED = "capture_truncated"
|
|
52
|
+
PROMPT_PREFIX_CHARS = 512
|
|
53
|
+
TOOL_NAME_CHARS = 80
|
|
54
|
+
TOOL_TARGET_CHARS = 240
|
|
55
|
+
TOOL_CALL_ID_CHARS = 128
|
|
56
|
+
CAPTURE_EVENT_BYTES = 16 * 1024
|
|
57
|
+
PROVIDER_EVIDENCE_BYTES = 48 * 1024
|
|
58
|
+
SCRATCH_EVENT_FIELDS: dict[str, tuple[str, ...]] = {
|
|
59
|
+
EVENT_TURN: SCRATCH_TURN_FIELDS,
|
|
60
|
+
EVENT_USER_PROMPT: (
|
|
61
|
+
"event", "ts", "session_id", "turn", "prompt_hash", "prefix", "truncated",
|
|
62
|
+
),
|
|
63
|
+
EVENT_TOOL_USED: (
|
|
64
|
+
"event", "ts", "session_id", "turn", "name", "target", "tool_call_id", "truncated",
|
|
65
|
+
),
|
|
66
|
+
EVENT_OUTCOME: (
|
|
67
|
+
"event", "ts", "session_id", "turn", "tool_call_id", "exit_status", "references",
|
|
68
|
+
),
|
|
69
|
+
EVENT_CAPTURE_TRUNCATED: (
|
|
70
|
+
"event", "ts", "session_id", "turn", "omitted_events",
|
|
71
|
+
),
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def bounded_text(text: str, limit: int) -> str:
|
|
76
|
+
"""Redact the complete value before imposing a character limit."""
|
|
77
|
+
return sanitize_value(redact_text(text))[:limit]
|
|
48
78
|
|
|
49
79
|
# ---------------------------------------------------------------------------
|
|
50
80
|
# Finalized digest frontmatter field names (LLM-produced)
|
|
@@ -73,6 +103,10 @@ REDACTION_TOKEN: str = "«redacted»" # «redacted»
|
|
|
73
103
|
# the same "openai" key via alternation — the ant variant is the first
|
|
74
104
|
# branch in the alternation group.
|
|
75
105
|
REDACTION_PATTERNS: dict[str, str] = {
|
|
106
|
+
"pem": r"-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----[\s\S]*?(?:-----END [A-Z0-9 ]*PRIVATE KEY-----|$)",
|
|
107
|
+
"assignment": r"(?i)\b(?:api[_-]?key|access[_-]?token|auth[_-]?token|token|password|passwd|secret)\s*[:=]\s*(?:\"[^\"]*\"|'[^']*'|[^\s,;]+)",
|
|
108
|
+
"bearer": r"(?i)\bBearer\s+[^\s,;]+",
|
|
109
|
+
"url_userinfo": r"(?i)(?<=://)[^\s/@]+(?::[^\s/@]*)?@",
|
|
76
110
|
# Anthropic/OpenAI API keys.
|
|
77
111
|
# sk-ant-... first (longer, more specific), then generic sk-...
|
|
78
112
|
"openai": r"sk-ant-[A-Za-z0-9-]+|sk-[A-Za-z0-9]{16,}",
|