mapify-cli 3.27.0__tar.gz → 3.27.1__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.27.0 → mapify_cli-3.27.1}/PKG-INFO +1 -3
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/README.md +0 -2
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/pyproject.toml +1 -1
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/__init__.py +1 -1
- mapify_cli-3.27.1/src/mapify_cli/templates/hooks/end-of-turn.sh +355 -0
- mapify_cli-3.27.1/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +355 -0
- mapify_cli-3.27.1/tests/hooks/test_end_of_turn.py +665 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_sofa_client.py +2 -2
- mapify_cli-3.27.0/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -196
- mapify_cli-3.27.0/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -196
- mapify_cli-3.27.0/tests/hooks/test_end_of_turn.py +0 -348
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/.claude/skills/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/.gitignore +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/LICENSE +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/auto_update.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/boundary_quality_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/code_map.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/config/project_config.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/domain_skill.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/file_copier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/governance_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/grace_eval/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/grace_eval/schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/grace_eval/sweep.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/install_manifest.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/memory/capture.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/memory/digest_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/memory/finalize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/minimality_eval.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/minimality_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/parallelism_observability.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/ralph_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/research_eval.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/research_eval_compare.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/schemas.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/scope_classifier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/actor.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/evaluator.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/monitor.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/agents/task-decomposer.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/agents/decomposer.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/agents/monitor.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/config.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/post-compact-context.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/workflow-context-injector.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/map_step_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/sofa_client.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-release/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-release/release-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-review/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-review/review-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/monitor.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/tool_output_offload.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/update_install.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/update_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/update_versions.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/verification_recorder.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/_fake_task_tool.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/conftest.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/fixtures/codex/config.toml +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/fixtures/wave_blueprints.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/test_e2e_artifact_contracts.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_agent_dispatch_audit.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_agent_memory.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_approval_hold.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_auto_update.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_boundary_quality_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_classify_scope_script.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_code_map.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_compaction_offload_integration.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_concurrent_dispatch_harness.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_context_usefulness.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_cross_ai_config.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_domain_skill.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_governance_attack_fixtures.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_governance_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_grace_eval_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_grace_eval_sweep.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_install_manifest.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_locking.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_map_auto.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_map_orchestrator.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_map_step_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_map_utils_sanitize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_mapify_cli.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_memory_capture.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_minimality_eval.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_minimality_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_parallelism_observability.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_post_compact_context.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_preset_commands.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_project_config.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_prompt_layering.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_prompt_profile_commands.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_pyyaml_dep.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_ralph_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_research_eval.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_research_eval_compare.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_review_verdict_ledger.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_schemas.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_scope_classifier.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_scrub_internal_ids.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_settings_deny_globs.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_shell_json_pipes.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_apply.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_bundle.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_cli.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_gates.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_judge.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_repeated.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_report.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_trajectory_schema.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_slice5b_leak_guards.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_statusline.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_template_render.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_tool_output_offload.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_update_install.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_update_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_update_versions.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_validate_spec_citations.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_wave_eval_harness.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_wave_fixtures.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_wave_parallel_harness.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_wayfind_runner.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_workflow_context_injector.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_workflow_gate.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_workflow_state.py +0 -0
- {mapify_cli-3.27.0 → mapify_cli-3.27.1}/tests/test_worktree_isolation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.27.
|
|
3
|
+
Version: 3.27.1
|
|
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
|
|
@@ -43,8 +43,6 @@ Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
|
43
43
|
Requires-Dist: pyyaml>=6.0.0; extra == 'test'
|
|
44
44
|
Description-Content-Type: text/markdown
|
|
45
45
|
|
|
46
|
-
# MAP Framework
|
|
47
|
-
|
|
48
46
|
<p align="center">
|
|
49
47
|
<img src="./assets/readme/hero.svg" width="100%" alt="MAP Framework — Plan-then-build AI coding. You approve the plan before the model writes a line of code.">
|
|
50
48
|
</p>
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# End-of-Turn Lightweight Hook
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# This hook runs when Claude finishes responding (Stop event).
|
|
7
|
+
#
|
|
8
|
+
# DESIGN (per LLM Council recommendations):
|
|
9
|
+
# - Only runs if there are uncommitted changes (dirty state)
|
|
10
|
+
# - Checks only changed files, not the entire project
|
|
11
|
+
# - Auto-fixes what it can (silent)
|
|
12
|
+
# - Only reports critical issues that need manual intervention
|
|
13
|
+
# - Full linting moved to /map-check command
|
|
14
|
+
# - Stop-hook re-entry is honored (stop_hook_active) and persistent findings
|
|
15
|
+
# are self-capped, so a finding the agent cannot resolve inside the turn
|
|
16
|
+
# never livelocks the session (#437)
|
|
17
|
+
# - Before the first commit, per-language gates run only on files the current
|
|
18
|
+
# turn actually wrote (stateful snapshot), not on every untracked file (#438)
|
|
19
|
+
#
|
|
20
|
+
# Exit codes:
|
|
21
|
+
# 0 = Success (continue normally)
|
|
22
|
+
# 1 = Warning shown to user (non-blocking)
|
|
23
|
+
# 2 = Block and feed stderr to Claude (critical issues only)
|
|
24
|
+
#
|
|
25
|
+
# =============================================================================
|
|
26
|
+
|
|
27
|
+
set -euo pipefail
|
|
28
|
+
|
|
29
|
+
# Recursion guard: no-op when MAP spawned this subprocess (MAP_INVOKED_BY set)
|
|
30
|
+
[ -n "${MAP_INVOKED_BY:-}" ] && exit 0
|
|
31
|
+
|
|
32
|
+
# -----------------------------------------------------------------------------
|
|
33
|
+
# Configuration
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
VERBOSE="${CLAUDE_HOOK_VERBOSE:-false}"
|
|
37
|
+
CRITICAL_ISSUES=()
|
|
38
|
+
|
|
39
|
+
# -----------------------------------------------------------------------------
|
|
40
|
+
# Helper Functions
|
|
41
|
+
# -----------------------------------------------------------------------------
|
|
42
|
+
|
|
43
|
+
log() {
|
|
44
|
+
if [[ "$VERBOSE" == "true" ]]; then
|
|
45
|
+
echo "[end-of-turn] $*" >&2
|
|
46
|
+
fi
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
add_critical() {
|
|
50
|
+
CRITICAL_ISSUES+=("$1")
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
# Read a flat dotted key from .map/config.yaml using minimal stdlib Python.
|
|
54
|
+
# Falls back to $2 when the file is absent, the key is missing, or python3
|
|
55
|
+
# is unavailable. Never raises: all errors are silently swallowed so the
|
|
56
|
+
# hook degrades gracefully to host defaults.
|
|
57
|
+
_read_map_config_value() {
|
|
58
|
+
local key="$1" default="$2"
|
|
59
|
+
if [[ ! -f ".map/config.yaml" ]] || ! command -v python3 &>/dev/null; then
|
|
60
|
+
printf '%s' "$default"
|
|
61
|
+
return
|
|
62
|
+
fi
|
|
63
|
+
python3 -B -c "
|
|
64
|
+
import re, sys
|
|
65
|
+
key, default = sys.argv[1], sys.argv[2]
|
|
66
|
+
try:
|
|
67
|
+
text = open('.map/config.yaml', encoding='utf-8').read()
|
|
68
|
+
m = re.search(r'^\s*' + re.escape(key) + r'\s*:\s*(\S+)', text, re.MULTILINE)
|
|
69
|
+
print(m.group(1).strip() if m else default)
|
|
70
|
+
except Exception:
|
|
71
|
+
print(default)
|
|
72
|
+
" "$key" "$default" 2>/dev/null || printf '%s' "$default"
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# -----------------------------------------------------------------------------
|
|
76
|
+
# Stop-hook Re-entry Guard (#437)
|
|
77
|
+
# -----------------------------------------------------------------------------
|
|
78
|
+
# Claude Code re-invokes a Stop hook that blocked, passing 'stop_hook_active:
|
|
79
|
+
# true' in the hook input, so the hook can let the turn end instead of blocking
|
|
80
|
+
# forever. Without this check, any finding that cannot be resolved inside the
|
|
81
|
+
# turn (human decision, upstream fix, action outside the agent's authority)
|
|
82
|
+
# livelocks the session: the turn tries to end, the hook blocks again, forever.
|
|
83
|
+
if [[ ! -t 0 ]]; then
|
|
84
|
+
# Bound the read: a harness that leaves stdin open without writing must
|
|
85
|
+
# not hang the hook ('timeout' is not portable to stock macOS, so use the
|
|
86
|
+
# bash builtin read -t instead of 'timeout cat').
|
|
87
|
+
HOOK_INPUT=""
|
|
88
|
+
while IFS= read -r -t 2 hook_line; do
|
|
89
|
+
HOOK_INPUT="$HOOK_INPUT$hook_line"$'\n'
|
|
90
|
+
done || true
|
|
91
|
+
if printf '%s' "$HOOK_INPUT" | grep -qE '"stop_hook_active"[[:space:]]*:[[:space:]]*"*true'; then
|
|
92
|
+
log "stop_hook_active=true, letting the turn end"
|
|
93
|
+
echo '{}'
|
|
94
|
+
exit 0
|
|
95
|
+
fi
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
# -----------------------------------------------------------------------------
|
|
99
|
+
# Early Exit: Check for Dirty State
|
|
100
|
+
# -----------------------------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
# Not a git repo? Exit silently.
|
|
103
|
+
if ! git rev-parse --git-dir &>/dev/null; then
|
|
104
|
+
echo '{}'
|
|
105
|
+
exit 0
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Runtime state lives inside the git dir, so it never pollutes the working tree
|
|
109
|
+
# and never shows up in 'git status'. Used by:
|
|
110
|
+
# - the no-commit changed-file snapshot (#438)
|
|
111
|
+
# - the repeated-finding self-cap (#437)
|
|
112
|
+
GIT_DIR_PATH="$(git rev-parse --git-dir 2>/dev/null || true)"
|
|
113
|
+
STATE_DIR="$GIT_DIR_PATH/mapify-end-of-turn"
|
|
114
|
+
SNAPSHOT_FILE="$STATE_DIR/untracked.snapshot"
|
|
115
|
+
BLOCK_STATE_FILE="$STATE_DIR/block.state"
|
|
116
|
+
|
|
117
|
+
# No changes? Exit silently.
|
|
118
|
+
if [[ -z "$(git status --porcelain 2>/dev/null)" ]]; then
|
|
119
|
+
log "No changes detected, skipping checks"
|
|
120
|
+
echo '{}'
|
|
121
|
+
exit 0
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
log "Changes detected, running lightweight checks"
|
|
125
|
+
|
|
126
|
+
# -----------------------------------------------------------------------------
|
|
127
|
+
# Get Changed Files
|
|
128
|
+
# -----------------------------------------------------------------------------
|
|
129
|
+
|
|
130
|
+
# Get changed files: staged + unstaged + untracked
|
|
131
|
+
CHANGED_FILES=""
|
|
132
|
+
|
|
133
|
+
# Staged files (works even with no commits)
|
|
134
|
+
STAGED=$(git diff --cached --name-only 2>/dev/null || true)
|
|
135
|
+
if [[ -n "$STAGED" ]]; then
|
|
136
|
+
CHANGED_FILES="$STAGED"
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
# Unstaged changes (only if HEAD exists)
|
|
140
|
+
if git rev-parse --verify HEAD &>/dev/null; then
|
|
141
|
+
UNSTAGED=$(git diff --name-only HEAD 2>/dev/null || true)
|
|
142
|
+
if [[ -n "$UNSTAGED" ]]; then
|
|
143
|
+
CHANGED_FILES="$CHANGED_FILES"$'\n'"$UNSTAGED"
|
|
144
|
+
fi
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
# Untracked files.
|
|
148
|
+
# With HEAD present, plain 'git ls-files --others' is fine. Before the first
|
|
149
|
+
# commit there is no baseline, so it would report every init-created file as
|
|
150
|
+
# "changed" on every turn and the per-language gates would fire on unrelated
|
|
151
|
+
# turns (#438). In that state we gate only files the current turn actually
|
|
152
|
+
# wrote: untracked files that are new or were modified since the previous hook
|
|
153
|
+
# run ended (their mtime is newer than the snapshot written at the end of that
|
|
154
|
+
# run). The very first run has no baseline and treats everything as changed.
|
|
155
|
+
NO_HEAD_MODE=0
|
|
156
|
+
if git rev-parse --verify HEAD &>/dev/null; then
|
|
157
|
+
UNTRACKED=$(git ls-files --others --exclude-standard 2>/dev/null || true)
|
|
158
|
+
else
|
|
159
|
+
NO_HEAD_MODE=1
|
|
160
|
+
UNTRACKED=""
|
|
161
|
+
CURRENT_UNTRACKED=$(git ls-files --others --exclude-standard 2>/dev/null || true)
|
|
162
|
+
if [[ -f "$SNAPSHOT_FILE" ]]; then
|
|
163
|
+
SNAPSHOT_SET="$(cat "$SNAPSHOT_FILE" 2>/dev/null || true)"
|
|
164
|
+
while IFS= read -r file; do
|
|
165
|
+
[[ -z "$file" ]] && continue
|
|
166
|
+
# Changed this turn = new (absent from the snapshot) or modified
|
|
167
|
+
# since the previous run (mtime newer than the snapshot file).
|
|
168
|
+
if ! grep -qxF "$file" <<< "$SNAPSHOT_SET" || find "$file" -newer "$SNAPSHOT_FILE" -print 2>/dev/null | grep -q .; then
|
|
169
|
+
UNTRACKED="$UNTRACKED"$'\n'"$file"
|
|
170
|
+
fi
|
|
171
|
+
done <<< "$CURRENT_UNTRACKED"
|
|
172
|
+
else
|
|
173
|
+
UNTRACKED="$CURRENT_UNTRACKED"
|
|
174
|
+
fi
|
|
175
|
+
fi
|
|
176
|
+
if [[ -n "$UNTRACKED" ]]; then
|
|
177
|
+
CHANGED_FILES="$CHANGED_FILES"$'\n'"$UNTRACKED"
|
|
178
|
+
fi
|
|
179
|
+
|
|
180
|
+
# Remove empty lines and duplicates
|
|
181
|
+
CHANGED_FILES=$(echo "$CHANGED_FILES" | grep -v '^$' | sort -u || true)
|
|
182
|
+
|
|
183
|
+
# Persist the untracked snapshot (no-commit repos only) so the next turn can
|
|
184
|
+
# tell which files are new. Written at the end of the run so its mtime marks
|
|
185
|
+
# "previous run finished" for the -newer comparison above.
|
|
186
|
+
persist_snapshot() {
|
|
187
|
+
if [[ "$NO_HEAD_MODE" == "1" ]]; then
|
|
188
|
+
mkdir -p "$STATE_DIR" 2>/dev/null || true
|
|
189
|
+
printf '%s\n' "$CURRENT_UNTRACKED" | grep -v '^$' | sort -u > "$SNAPSHOT_FILE" 2>/dev/null || true
|
|
190
|
+
fi
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if [[ -z "$CHANGED_FILES" ]]; then
|
|
194
|
+
persist_snapshot
|
|
195
|
+
log "No specific files to check"
|
|
196
|
+
echo '{}'
|
|
197
|
+
exit 0
|
|
198
|
+
fi
|
|
199
|
+
|
|
200
|
+
log "Changed files: $(echo "$CHANGED_FILES" | tr '\n' ' ')"
|
|
201
|
+
|
|
202
|
+
# -----------------------------------------------------------------------------
|
|
203
|
+
# Auto-Fix Layer (Silent)
|
|
204
|
+
# -----------------------------------------------------------------------------
|
|
205
|
+
|
|
206
|
+
# Python: ruff auto-fix
|
|
207
|
+
if command -v ruff &>/dev/null; then
|
|
208
|
+
for file in $CHANGED_FILES; do
|
|
209
|
+
if [[ "$file" == *.py ]] && [[ -f "$file" ]]; then
|
|
210
|
+
ruff check --fix --quiet "$file" >/dev/null 2>&1 || true
|
|
211
|
+
fi
|
|
212
|
+
done
|
|
213
|
+
fi
|
|
214
|
+
|
|
215
|
+
# Go: gofmt auto-fix
|
|
216
|
+
if command -v gofmt &>/dev/null; then
|
|
217
|
+
for file in $CHANGED_FILES; do
|
|
218
|
+
if [[ "$file" == *.go ]] && [[ -f "$file" ]]; then
|
|
219
|
+
gofmt -w "$file" 2>/dev/null || true
|
|
220
|
+
fi
|
|
221
|
+
done
|
|
222
|
+
fi
|
|
223
|
+
|
|
224
|
+
# -----------------------------------------------------------------------------
|
|
225
|
+
# Critical Checks Only (on changed files)
|
|
226
|
+
# -----------------------------------------------------------------------------
|
|
227
|
+
|
|
228
|
+
# Check for secrets in staged files (always critical)
|
|
229
|
+
STAGED_FILES=$(git diff --cached --name-only 2>/dev/null || true)
|
|
230
|
+
if [[ -n "$STAGED_FILES" ]]; then
|
|
231
|
+
SECRET_PATTERN='(API_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY)\s*[=:]\s*["'"'"'][A-Za-z0-9_\-]{8,}'
|
|
232
|
+
while IFS= read -r file; do
|
|
233
|
+
if [[ -f "$file" ]] && grep -qE "$SECRET_PATTERN" "$file" 2>/dev/null; then
|
|
234
|
+
add_critical "Possible hardcoded secret in staged file: $file"
|
|
235
|
+
fi
|
|
236
|
+
done <<< "$STAGED_FILES"
|
|
237
|
+
|
|
238
|
+
# Check for .env files staged
|
|
239
|
+
if echo "$STAGED_FILES" | grep -q "^\.env"; then
|
|
240
|
+
add_critical ".env file is staged for commit!"
|
|
241
|
+
fi
|
|
242
|
+
fi
|
|
243
|
+
|
|
244
|
+
# Python: Check for syntax errors only (fast, critical).
|
|
245
|
+
# We use 'ast.parse' instead of 'py_compile' because 'py_compile' always
|
|
246
|
+
# writes '__pycache__/*.pyc' next to the source — even with '-B' or
|
|
247
|
+
# PYTHONDONTWRITEBYTECODE, since emitting bytecode is 'py_compile''s entire
|
|
248
|
+
# job. Touching any .py under .map/scripts/ or src/mapify_cli/templates/ then
|
|
249
|
+
# leaves a tracked __pycache__/ that the template-hygiene gate
|
|
250
|
+
# (tests/test_template_render.py) rejects.
|
|
251
|
+
if command -v python3 &>/dev/null; then
|
|
252
|
+
for file in $CHANGED_FILES; do
|
|
253
|
+
if [[ "$file" == *.py ]] && [[ -f "$file" ]]; then
|
|
254
|
+
if ! python3 -B -c "import ast,sys; ast.parse(open(sys.argv[1],'rb').read())" "$file" 2>/dev/null; then
|
|
255
|
+
add_critical "Python syntax error in: $file"
|
|
256
|
+
fi
|
|
257
|
+
fi
|
|
258
|
+
done
|
|
259
|
+
fi
|
|
260
|
+
|
|
261
|
+
# Go: Check for compile errors only (fast, critical)
|
|
262
|
+
if command -v go &>/dev/null && [[ -f "go.mod" ]]; then
|
|
263
|
+
# Allow disabling this check entirely via .map/config.yaml:
|
|
264
|
+
# checks.go.build: false
|
|
265
|
+
_go_build_cfg=$(_read_map_config_value "checks.go.build" "true")
|
|
266
|
+
case "$_go_build_cfg" in
|
|
267
|
+
false|False|no|No|off|Off|0)
|
|
268
|
+
log "Go build check disabled via checks.go.build config"
|
|
269
|
+
;;
|
|
270
|
+
*)
|
|
271
|
+
GO_FILES=""
|
|
272
|
+
for file in $CHANGED_FILES; do
|
|
273
|
+
if [[ "$file" == *.go ]] && [[ -f "$file" ]]; then
|
|
274
|
+
GO_FILES="$GO_FILES $file"
|
|
275
|
+
fi
|
|
276
|
+
done
|
|
277
|
+
if [[ -n "$GO_FILES" ]]; then
|
|
278
|
+
# Determine effective GOOS: env var takes precedence, then
|
|
279
|
+
# .map/config.yaml checks.go.goos, then host default.
|
|
280
|
+
# This prevents false criticals for Linux-only projects
|
|
281
|
+
# developed on macOS (e.g. projects using cgroups/eBPF/netlink).
|
|
282
|
+
# Example config: checks.go.goos: linux
|
|
283
|
+
_go_goos="${GOOS:-$(_read_map_config_value 'checks.go.goos' '')}"
|
|
284
|
+
_go_build_ok=true
|
|
285
|
+
if [[ -n "$_go_goos" ]]; then
|
|
286
|
+
GOOS="$_go_goos" go build -o /dev/null ./... 2>/dev/null \
|
|
287
|
+
|| _go_build_ok=false
|
|
288
|
+
else
|
|
289
|
+
go build -o /dev/null ./... 2>/dev/null || _go_build_ok=false
|
|
290
|
+
fi
|
|
291
|
+
if [[ "$_go_build_ok" == "false" ]]; then
|
|
292
|
+
add_critical "Go build errors detected (run 'go build ./...' for details)"
|
|
293
|
+
fi
|
|
294
|
+
fi
|
|
295
|
+
;;
|
|
296
|
+
esac
|
|
297
|
+
fi
|
|
298
|
+
|
|
299
|
+
# -----------------------------------------------------------------------------
|
|
300
|
+
# Repeated-finding Self-cap (#437)
|
|
301
|
+
# -----------------------------------------------------------------------------
|
|
302
|
+
# A Stop hook that blocks on a finding the agent cannot resolve within the turn
|
|
303
|
+
# would re-block the end of every subsequent turn forever (livelock). The
|
|
304
|
+
# primary guard is the stop_hook_active re-entry check above; this cap is the
|
|
305
|
+
# fallback for harnesses that do not re-invoke Stop hooks with that flag: after
|
|
306
|
+
# N consecutive turns with the exact same critical findings the hook stops
|
|
307
|
+
# blocking and downgrades to a non-blocking warning so the session can proceed.
|
|
308
|
+
if [[ ${#CRITICAL_ISSUES[@]} -gt 0 ]]; then
|
|
309
|
+
BLOCK_CAP="${MAPIFY_END_OF_TURN_BLOCK_CAP:-3}"
|
|
310
|
+
[[ "$BLOCK_CAP" =~ ^[0-9]+$ ]] || BLOCK_CAP=3
|
|
311
|
+
ISSUES_TEXT="$(printf '%s\n' "${CRITICAL_ISSUES[@]}")"
|
|
312
|
+
COUNT=1
|
|
313
|
+
if [[ -f "$BLOCK_STATE_FILE" ]]; then
|
|
314
|
+
PREV_COUNT="$(sed -n '1s/^count=//p' "$BLOCK_STATE_FILE" 2>/dev/null || true)"
|
|
315
|
+
PREV_TEXT="$(sed -n '3,$p' "$BLOCK_STATE_FILE" 2>/dev/null || true)"
|
|
316
|
+
if [[ "$PREV_TEXT" == "$ISSUES_TEXT" ]] && [[ "$PREV_COUNT" =~ ^[0-9]+$ ]]; then
|
|
317
|
+
COUNT=$((PREV_COUNT + 1))
|
|
318
|
+
fi
|
|
319
|
+
fi
|
|
320
|
+
mkdir -p "$STATE_DIR" 2>/dev/null || true
|
|
321
|
+
printf 'count=%s\n---\n%s\n' "$COUNT" "$ISSUES_TEXT" > "$BLOCK_STATE_FILE" 2>/dev/null || true
|
|
322
|
+
if [[ "$COUNT" -gt "$BLOCK_CAP" ]]; then
|
|
323
|
+
echo "⚠️ Same critical issue for $((COUNT - 1)) consecutive turns (self-capped, no longer blocking):" >&2
|
|
324
|
+
for issue in "${CRITICAL_ISSUES[@]}"; do
|
|
325
|
+
echo " - $issue" >&2
|
|
326
|
+
done
|
|
327
|
+
echo "" >&2
|
|
328
|
+
echo "Run /map-check for full diagnostics. Set MAPIFY_END_OF_TURN_BLOCK_CAP to adjust the cap." >&2
|
|
329
|
+
persist_snapshot
|
|
330
|
+
exit 1
|
|
331
|
+
fi
|
|
332
|
+
else
|
|
333
|
+
# No critical issues this turn: reset the repeat counter.
|
|
334
|
+
rm -f "$BLOCK_STATE_FILE" 2>/dev/null || true
|
|
335
|
+
fi
|
|
336
|
+
|
|
337
|
+
# -----------------------------------------------------------------------------
|
|
338
|
+
# Report Results
|
|
339
|
+
# -----------------------------------------------------------------------------
|
|
340
|
+
|
|
341
|
+
persist_snapshot
|
|
342
|
+
|
|
343
|
+
if [[ ${#CRITICAL_ISSUES[@]} -gt 0 ]]; then
|
|
344
|
+
echo "⚠️ Critical issues found:" >&2
|
|
345
|
+
for issue in "${CRITICAL_ISSUES[@]}"; do
|
|
346
|
+
echo " - $issue" >&2
|
|
347
|
+
done
|
|
348
|
+
echo "" >&2
|
|
349
|
+
echo "Run /map-check for full diagnostics" >&2
|
|
350
|
+
exit 2 # Block and feed to Claude
|
|
351
|
+
fi
|
|
352
|
+
|
|
353
|
+
log "Lightweight checks passed"
|
|
354
|
+
echo '{}'
|
|
355
|
+
exit 0
|