invar-tools 1.2.0__tar.gz → 1.3.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.
- invar_tools-1.2.0/src/invar/templates/commands/review.md → invar_tools-1.3.0/.claude/commands/audit.md +20 -82
- invar_tools-1.3.0/.claude/commands/guard.md +77 -0
- invar_tools-1.3.0/.claude/skills/develop/SKILL.md +583 -0
- invar_tools-1.3.0/.claude/skills/investigate/SKILL.md +187 -0
- invar_tools-1.3.0/.claude/skills/propose/SKILL.md +209 -0
- invar_tools-1.3.0/.claude/skills/review/SKILL.md +251 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/context.md +110 -11
- invar_tools-1.3.0/.invar/examples/conftest.py +3 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/examples/contracts.py +5 -5
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/examples/core_shell.py +11 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/examples/workflow.md +10 -0
- invar_tools-1.3.0/.invar/project-additions.md +45 -0
- invar_tools-1.3.0/CLAUDE.md +239 -0
- {invar_tools-1.2.0/src/invar/templates → invar_tools-1.3.0}/INVAR.md +10 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/PKG-INFO +108 -118
- {invar_tools-1.2.0 → invar_tools-1.3.0}/README.md +105 -117
- invar_tools-1.2.0/docs/AGENTS.md → invar_tools-1.3.0/docs/agents.md +18 -8
- invar_tools-1.2.0/docs/DESIGN.md → invar_tools-1.3.0/docs/design.md +5 -5
- invar_tools-1.2.0/docs/INVAR-GUIDE.md → invar_tools-1.3.0/docs/guide.md +1 -1
- invar_tools-1.2.0/docs/feedback/INVAR-COMPLIANCE-ANALYSIS.md → invar_tools-1.3.0/docs/history/feedback/compliance-analysis.md +2 -0
- invar_tools-1.2.0/docs/feedback/INVAR_FEEDBACK_MEMO.md → invar_tools-1.3.0/docs/history/feedback/feedback-memo.md +2 -0
- invar_tools-1.3.0/docs/history/feedback/index.md +11 -0
- invar_tools-1.3.0/docs/history/index.md +22 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/docs/index.html +32 -14
- {invar_tools-1.2.0 → invar_tools-1.3.0}/docs/proposals/DX-23-entry-point-detection.md +2 -2
- invar_tools-1.3.0/docs/proposals/DX-37-coverage-integration.md +322 -0
- invar_tools-1.3.0/docs/proposals/DX-38-contract-quality-rules.md +285 -0
- invar_tools-1.3.0/docs/proposals/DX-39-workflow-efficiency.md +294 -0
- invar_tools-1.3.0/docs/proposals/DX-40-smart-tool-redirect-hook.md +147 -0
- invar_tools-1.3.0/docs/proposals/DX-41-automatic-review-orchestration.md +212 -0
- invar_tools-1.3.0/docs/proposals/DX-42-workflow-auto-routing.md +325 -0
- invar_tools-1.3.0/docs/proposals/DX-43-cross-platform-distribution.md +68 -0
- invar_tools-1.3.0/docs/proposals/DX-46-documentation-audit.md +142 -0
- invar_tools-1.3.0/docs/proposals/DX-48-code-structure-reorganization.md +498 -0
- invar_tools-1.3.0/docs/proposals/DX-49-protocol-distribution-unification.md +741 -0
- invar_tools-1.3.0/docs/proposals/DX-50-workflow-enforcement.md +119 -0
- invar_tools-1.3.0/docs/proposals/DX-51-workflow-phase-visibility.md +250 -0
- invar_tools-1.3.0/docs/proposals/DX-52-venv-dependency-injection.md +836 -0
- invar_tools-1.3.0/docs/proposals/DX-53-review-loop-effectiveness.md +420 -0
- invar_tools-1.3.0/docs/proposals/DX-54-agent-native-context-management.md +214 -0
- invar_tools-1.3.0/docs/proposals/DX-55-claude-init-conflict-resolution.md +792 -0
- invar_tools-1.3.0/docs/proposals/DX-56-template-sync-unification.md +542 -0
- invar_tools-1.3.0/docs/proposals/LX-01-multi-language-feasibility.md +494 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-11-documentation-restructure.md +14 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-16-agent-tool-enforcement.md +16 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-24-mechanism-documentation.md +13 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-27-system-prompt-protocol.md +9 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-28-semantic-verification.md +13 -2
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-31-adversarial-reviewer.md +20 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-32-workflow-iteration.md +17 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-33-verification-blind-spots.md +33 -1
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-34-review-cycle.md +14 -2
- invar_tools-1.3.0/docs/proposals/completed/DX-35-workflow-phase-separation.md +1276 -0
- invar_tools-1.3.0/docs/proposals/completed/DX-36-documentation-restructuring.md +855 -0
- invar_tools-1.3.0/docs/proposals/completed/DX-45-template-consistency.md +282 -0
- invar_tools-1.3.0/docs/proposals/completed/DX-47-command-skill-naming.md +210 -0
- invar_tools-1.3.0/docs/proposals/index.md +287 -0
- invar_tools-1.3.0/docs/reference/contracts/advanced.md +100 -0
- invar_tools-1.2.0/docs/mechanisms/contracts/contract-complete.md → invar_tools-1.3.0/docs/reference/contracts/completeness.md +8 -10
- invar_tools-1.2.0/docs/mechanisms/contracts/README.md → invar_tools-1.3.0/docs/reference/contracts/index.md +2 -1
- {invar_tools-1.2.0/docs/mechanisms → invar_tools-1.3.0/docs/reference}/documentation.md +9 -9
- invar_tools-1.2.0/docs/mechanisms/README.md → invar_tools-1.3.0/docs/reference/index.md +1 -0
- invar_tools-1.3.0/docs/reference/proposal-workflow.md +229 -0
- invar_tools-1.3.0/docs/reference/verification/crosshair-vs-hypothesis.md +147 -0
- invar_tools-1.2.0/docs/mechanisms/verification/README.md → invar_tools-1.3.0/docs/reference/verification/index.md +57 -1
- invar_tools-1.2.0/docs/mechanisms/workflow/README.md → invar_tools-1.3.0/docs/reference/workflow/index.md +2 -2
- invar_tools-1.3.0/docs/reference/workflow/session-start.md +228 -0
- invar_tools-1.3.0/docs/test-reports/DX-55-test-report.md +172 -0
- invar_tools-1.3.0/docs/test-reports/DX-56-test-report.md +209 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/pyproject.toml +6 -3
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/pyproject.toml +1 -1
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/contracts.py +5 -4
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/__init__.py +1 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/contracts.py +10 -10
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/entry_points.py +105 -32
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/extraction.py +5 -6
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/format_specs.py +1 -2
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/formatter.py +6 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/hypothesis_strategies.py +5 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/inspect.py +1 -1
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/lambda_helpers.py +3 -3
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/models.py +7 -1
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/must_use.py +2 -1
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/parser.py +7 -4
- invar_tools-1.3.0/src/invar/core/postcondition_scope.py +128 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/property_gen.py +8 -5
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/purity.py +3 -3
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/purity_heuristics.py +5 -9
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/references.py +8 -6
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/review_trigger.py +78 -6
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/rule_meta.py +8 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/rules.py +18 -19
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/shell_analysis.py +5 -10
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/shell_architecture.py +2 -2
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/strategies.py +7 -14
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/suggestions.py +86 -0
- invar_tools-1.3.0/src/invar/core/sync_helpers.py +238 -0
- invar_tools-1.3.0/src/invar/core/tautology.py +203 -0
- invar_tools-1.3.0/src/invar/core/template_parser.py +467 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/timeout_inference.py +4 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/utils.py +13 -15
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/verification_routing.py +4 -7
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/mcp/server.py +100 -17
- invar_tools-1.3.0/src/invar/shell/commands/__init__.py +11 -0
- invar_tools-1.2.0/src/invar/shell/cli.py → invar_tools-1.3.0/src/invar/shell/commands/guard.py +94 -14
- invar_tools-1.2.0/src/invar/shell/init_cmd.py → invar_tools-1.3.0/src/invar/shell/commands/init.py +179 -27
- invar_tools-1.3.0/src/invar/shell/commands/merge.py +256 -0
- invar_tools-1.3.0/src/invar/shell/commands/sync_self.py +113 -0
- invar_tools-1.3.0/src/invar/shell/commands/template_sync.py +366 -0
- invar_tools-1.3.0/src/invar/shell/commands/update.py +48 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/config.py +12 -24
- invar_tools-1.3.0/src/invar/shell/coverage.py +351 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/guard_helpers.py +38 -17
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/guard_output.py +7 -1
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/property_tests.py +58 -22
- invar_tools-1.3.0/src/invar/shell/prove/__init__.py +9 -0
- invar_tools-1.2.0/src/invar/shell/prove.py → invar_tools-1.3.0/src/invar/shell/prove/crosshair.py +40 -33
- invar_tools-1.2.0/src/invar/shell/prove_fallback.py → invar_tools-1.3.0/src/invar/shell/prove/hypothesis.py +12 -4
- invar_tools-1.3.0/src/invar/shell/subprocess_env.py +393 -0
- invar_tools-1.3.0/src/invar/shell/template_engine.py +345 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/templates.py +19 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/testing.py +71 -20
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/CLAUDE.md.template +38 -17
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/aider.conf.yml.template +2 -2
- invar_tools-1.2.0/.claude/commands/review.md → invar_tools-1.3.0/src/invar/templates/commands/audit.md +20 -82
- invar_tools-1.3.0/src/invar/templates/commands/guard.md +77 -0
- invar_tools-1.3.0/src/invar/templates/config/CLAUDE.md.jinja +206 -0
- invar_tools-1.3.0/src/invar/templates/config/context.md.jinja +92 -0
- invar_tools-1.3.0/src/invar/templates/config/pre-commit.yaml.jinja +44 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/context.md.template +33 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/cursorrules.template +7 -4
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/examples/README.md +2 -0
- invar_tools-1.3.0/src/invar/templates/examples/conftest.py +3 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/examples/contracts.py +5 -5
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/examples/core_shell.py +11 -7
- invar_tools-1.3.0/src/invar/templates/examples/workflow.md +81 -0
- invar_tools-1.3.0/src/invar/templates/manifest.toml +137 -0
- invar_tools-1.3.0/src/invar/templates/protocol/INVAR.md +210 -0
- invar_tools-1.3.0/src/invar/templates/skills/develop/SKILL.md.jinja +318 -0
- invar_tools-1.3.0/src/invar/templates/skills/investigate/SKILL.md.jinja +106 -0
- invar_tools-1.3.0/src/invar/templates/skills/propose/SKILL.md.jinja +104 -0
- invar_tools-1.3.0/src/invar/templates/skills/review/SKILL.md.jinja +125 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/tests/integration/test_cli_flags.py +6 -4
- invar_tools-1.3.0/tests/integration/test_dx55_regression.py +404 -0
- invar_tools-1.3.0/tests/integration/test_dx56_sync.py +229 -0
- invar_tools-1.3.0/tests/test_subprocess_env.py +290 -0
- invar_tools-1.2.0/.serena/cache/python/document_symbols.pkl +0 -0
- invar_tools-1.2.0/.serena/cache/python/raw_document_symbols.pkl +0 -0
- invar_tools-1.2.0/CLAUDE.md +0 -260
- invar_tools-1.2.0/INVAR.md +0 -464
- invar_tools-1.2.0/RELEASE_NOTES_v0.1.0.md +0 -102
- invar_tools-1.2.0/deprecated/python-invar/README.md +0 -61
- invar_tools-1.2.0/deprecated/python-invar/pyproject.toml +0 -34
- invar_tools-1.2.0/deprecated/python-invar/src/python_invar/__init__.py +0 -29
- invar_tools-1.2.0/docs/archive/FIRST_PRINCIPLES_REVIEW.md +0 -307
- invar_tools-1.2.0/docs/archive/INVAR-DETAILED-v3.16.md +0 -1296
- invar_tools-1.2.0/docs/archive/PHASE3_REVIEW.md +0 -347
- invar_tools-1.2.0/docs/archive/proposals-P15-P23-2025.md +0 -1573
- invar_tools-1.2.0/docs/archive/proposals-phase9-reflection-2025.md +0 -523
- invar_tools-1.2.0/docs/mechanisms/workflow/session-start.md +0 -265
- invar_tools-1.2.0/docs/proposals/README.md +0 -78
- invar_tools-1.2.0/src/invar/contracts.py +0 -152
- invar_tools-1.2.0/src/invar/core/tautology.py +0 -138
- invar_tools-1.2.0/src/invar/decorators.py +0 -94
- invar_tools-1.2.0/src/invar/invariant.py +0 -58
- invar_tools-1.2.0/src/invar/resource.py +0 -99
- invar_tools-1.2.0/src/invar/shell/update_cmd.py +0 -193
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.aider.conf.yml +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.cursorrules +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.github/workflows/ci.yml +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.github/workflows/publish.yml +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.gitignore +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/examples/README.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.invar/proposals/TEMPLATE.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.mcp.json +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.pre-commit-config.yaml +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.serena/.gitignore +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/.serena/project.yml +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/LICENSE +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/LICENSE-GPL +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/NOTICE +0 -0
- {invar_tools-1.2.0/docs/archive → invar_tools-1.3.0/docs/history}/decisions-2024.md +0 -0
- /invar_tools-1.2.0/docs/archive/VISION-ORIGINAL.md → /invar_tools-1.3.0/docs/history/original-vision.md +0 -0
- /invar_tools-1.2.0/docs/archive/PROTOCOL_EVOLUTION.md → /invar_tools-1.3.0/docs/history/protocol-evolution.md +0 -0
- {invar_tools-1.2.0/docs → invar_tools-1.3.0/docs/history}/research/cruxeval-quick-validation.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/docs/proposals/DX-25-functional-patterns.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/docs/proposals/DX-29-pure-content-detection.md +0 -0
- {invar_tools-1.2.0/docs/proposals/archive → invar_tools-1.3.0/docs/proposals/completed}/2024-12-21-guard-enhancements.md +0 -0
- {invar_tools-1.2.0/docs/proposals/archive → invar_tools-1.3.0/docs/proposals/completed}/2024-12-21-language-inspired-enhancements.md +0 -0
- {invar_tools-1.2.0/docs/proposals/archive → invar_tools-1.3.0/docs/proposals/completed}/2024-12-21-test-first-enhancement.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/2025-12-21-dx-improvements.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/2025-12-23-dx-20-property-testing-enhancements.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/2025-12-23-dx-21-package-and-init.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/AGENT-IMPROVEMENTS.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-12-hypothesis-fallback.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-13-incremental-prove.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-14-expanded-prove-usage.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-17-workflow-enforcement.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-22-verification-strategy.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-26-guard-simplification.md +0 -0
- {invar_tools-1.2.0/docs/proposals → invar_tools-1.3.0/docs/proposals/completed}/DX-30-visible-workflow.md +0 -0
- /invar_tools-1.2.0/docs/mechanisms/architecture/README.md → /invar_tools-1.3.0/docs/reference/architecture/index.md +0 -0
- {invar_tools-1.2.0/docs/mechanisms → invar_tools-1.3.0/docs/reference}/contracts/doctests.md +0 -0
- {invar_tools-1.2.0/docs/mechanisms → invar_tools-1.3.0/docs/reference}/contracts/pre-post.md +0 -0
- /invar_tools-1.2.0/docs/mechanisms/rules/README.md → /invar_tools-1.3.0/docs/reference/rules/index.md +0 -0
- /invar_tools-1.2.0/docs/mechanisms/rules/severity-design.md → /invar_tools-1.3.0/docs/reference/rules/severity.md +0 -0
- {invar_tools-1.2.0/docs/mechanisms → invar_tools-1.3.0/docs/reference}/verification/smart-routing.md +0 -0
- {invar_tools-1.2.0/docs/mechanisms → invar_tools-1.3.0/docs/reference}/workflow/usbv.md +0 -0
- /invar_tools-1.2.0/docs/VISION.md → /invar_tools-1.3.0/docs/vision.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/LICENSE +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/README.md +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/decorators.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/invariant.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/relations.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/runtime/src/invar_runtime/resource.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/scripts/smart-guard.sh +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/core/format_strategies.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/mcp/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/mcp/__main__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/py.typed +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/__init__.py +0 -0
- /invar_tools-1.2.0/src/invar/shell/mutate_cmd.py → /invar_tools-1.3.0/src/invar/shell/commands/mutate.py +0 -0
- {invar_tools-1.2.0/src/invar/shell → invar_tools-1.3.0/src/invar/shell/commands}/perception.py +0 -0
- /invar_tools-1.2.0/src/invar/shell/test_cmd.py → /invar_tools-1.3.0/src/invar/shell/commands/test.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/fs.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/git.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/mcp_config.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/shell/mutation.py +0 -0
- /invar_tools-1.2.0/src/invar/shell/prove_accept.py → /invar_tools-1.3.0/src/invar/shell/prove/accept.py +0 -0
- /invar_tools-1.2.0/src/invar/shell/prove_cache.py → /invar_tools-1.3.0/src/invar/shell/prove/cache.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/pre-commit-config.yaml.template +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/src/invar/templates/proposal.md.template +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/tests/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/tests/conftest.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/tests/integration/__init__.py +0 -0
- {invar_tools-1.2.0 → invar_tools-1.3.0}/uv.lock +0 -0
|
@@ -1,73 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Audit
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Before reviewing, determine the appropriate mode:
|
|
6
|
-
|
|
7
|
-
### Check for `review_suggested`
|
|
8
|
-
|
|
9
|
-
Look at your conversation history for recent `invar guard` output, or run:
|
|
10
|
-
```bash
|
|
11
|
-
invar guard --changed
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Check if `review_suggested` warning is present:
|
|
15
|
-
```
|
|
16
|
-
WARNING: review_suggested - High escape hatch count: N @invar:allow markers
|
|
17
|
-
WARNING: review_suggested - Security-sensitive path detected
|
|
18
|
-
WARNING: review_suggested - Low contract coverage
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Select Mode
|
|
22
|
-
|
|
23
|
-
| Condition | Mode | Why |
|
|
24
|
-
|-----------|------|-----|
|
|
25
|
-
| `review_suggested` present | **Isolated** | Eliminates confirmation bias |
|
|
26
|
-
| No trigger | **Quick** | Faster, context preserved |
|
|
27
|
-
| User requests `--isolated` | **Isolated** | Explicit override |
|
|
28
|
-
| User requests `--quick` | **Quick** | Explicit override |
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Isolated Mode
|
|
33
|
-
|
|
34
|
-
**Use when:** `review_suggested` triggered, or user explicitly requests isolation.
|
|
35
|
-
|
|
36
|
-
Spawn an independent reviewer with fresh context using Task tool:
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
I'll spawn an independent reviewer to eliminate confirmation bias...
|
|
40
|
-
|
|
41
|
-
[Task tool call]
|
|
42
|
-
prompt: |
|
|
43
|
-
You are an adversarial code reviewer. Your job is to FIND PROBLEMS.
|
|
44
|
-
|
|
45
|
-
Review these files: {files_to_review}
|
|
46
|
-
|
|
47
|
-
Read .claude/commands/review.md for the full checklist, then:
|
|
48
|
-
1. Check contract semantic value (not just syntax)
|
|
49
|
-
2. Audit all escape hatches (@invar:allow)
|
|
50
|
-
3. Look for logic errors and edge cases
|
|
51
|
-
4. Check security if applicable
|
|
52
|
-
|
|
53
|
-
Report issues as CRITICAL/MAJOR/MINOR with file:line locations.
|
|
54
|
-
|
|
55
|
-
Your success is measured by problems found, not code approved.
|
|
56
|
-
|
|
57
|
-
subagent_type: "general-purpose"
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
After receiving the sub-agent's report, summarize findings for the user.
|
|
61
|
-
|
|
62
|
-
**Key:** The sub-agent has NO conversation history. It only sees the code.
|
|
3
|
+
Read-only code review. Reports issues without fixing them.
|
|
63
4
|
|
|
64
5
|
---
|
|
65
6
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
**Use when:** No `review_suggested` trigger, routine review needed.
|
|
7
|
+
## Behavior
|
|
69
8
|
|
|
70
|
-
|
|
9
|
+
1. Analyze code for issues (style, bugs, security, architecture)
|
|
10
|
+
2. Report findings with file:line references
|
|
11
|
+
3. **Do NOT make any changes** - report only
|
|
71
12
|
|
|
72
13
|
---
|
|
73
14
|
|
|
@@ -149,7 +90,7 @@ You ARE here to:
|
|
|
149
90
|
|
|
150
91
|
---
|
|
151
92
|
|
|
152
|
-
## Excluded (Covered by
|
|
93
|
+
## Excluded (Covered by Guard)
|
|
153
94
|
|
|
154
95
|
These are checked by Guard or linters - don't duplicate:
|
|
155
96
|
- Core/Shell separation → Guard (forbidden_import, impure_call)
|
|
@@ -157,7 +98,6 @@ These are checked by Guard or linters - don't duplicate:
|
|
|
157
98
|
- Missing contracts → Guard (missing_contract)
|
|
158
99
|
- File/function size limits → Guard (file_size, function_size)
|
|
159
100
|
- Entry point thickness → Guard (entry_point_too_thick)
|
|
160
|
-
- Magic numbers → Linters (ruff)
|
|
161
101
|
- Escape hatch count → Guard (review_suggested)
|
|
162
102
|
|
|
163
103
|
---
|
|
@@ -166,11 +106,11 @@ These are checked by Guard or linters - don't duplicate:
|
|
|
166
106
|
|
|
167
107
|
For each issue found, use severity levels:
|
|
168
108
|
|
|
169
|
-
| Severity | Meaning |
|
|
170
|
-
|
|
171
|
-
| **CRITICAL** | Must fix before completion |
|
|
172
|
-
| **MAJOR** | Fix or provide written justification |
|
|
173
|
-
| **MINOR** | Optional, can defer |
|
|
109
|
+
| Severity | Meaning |
|
|
110
|
+
|----------|---------|
|
|
111
|
+
| **CRITICAL** | Must fix before completion |
|
|
112
|
+
| **MAJOR** | Fix or provide written justification |
|
|
113
|
+
| **MINOR** | Optional, can defer |
|
|
174
114
|
|
|
175
115
|
```markdown
|
|
176
116
|
### [CRITICAL/MAJOR/MINOR] Issue Title
|
|
@@ -178,22 +118,20 @@ For each issue found, use severity levels:
|
|
|
178
118
|
**Location:** file.py:line_number
|
|
179
119
|
**Category:** contract_quality | logic_error | security | escape_hatch | code_smell
|
|
180
120
|
**Problem:** What's wrong
|
|
181
|
-
**Suggestion:** How to fix (
|
|
121
|
+
**Suggestion:** How to fix (but don't implement)
|
|
182
122
|
```
|
|
183
123
|
|
|
184
124
|
---
|
|
185
125
|
|
|
186
|
-
## Instructions
|
|
126
|
+
## Instructions
|
|
187
127
|
|
|
188
|
-
1.
|
|
189
|
-
2.
|
|
190
|
-
3.
|
|
191
|
-
4.
|
|
192
|
-
5.
|
|
193
|
-
6. Report with structured format above
|
|
194
|
-
7. Be thorough and adversarial
|
|
128
|
+
1. Run `invar guard --changed` to see current state
|
|
129
|
+
2. Go through each checklist category
|
|
130
|
+
3. For each issue, determine severity (CRITICAL/MAJOR/MINOR)
|
|
131
|
+
4. Report with structured format above
|
|
132
|
+
5. Be thorough and adversarial
|
|
195
133
|
|
|
196
|
-
**Remember:** You are READ-ONLY. Report issues, don't fix them
|
|
134
|
+
**Remember:** You are READ-ONLY. Report issues, don't fix them.
|
|
197
135
|
|
|
198
136
|
---
|
|
199
137
|
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Guard
|
|
2
|
+
|
|
3
|
+
Run Invar verification on the project and report results.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Behavior
|
|
8
|
+
|
|
9
|
+
Execute `invar_guard()` and report:
|
|
10
|
+
- Pass/fail status
|
|
11
|
+
- Error count with details
|
|
12
|
+
- Warning count with details
|
|
13
|
+
|
|
14
|
+
**Do NOT fix issues** - just report verification results.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- Quick verification check
|
|
21
|
+
- Before committing changes
|
|
22
|
+
- After pulling changes
|
|
23
|
+
- To see current project health
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Execution
|
|
28
|
+
|
|
29
|
+
Run verification:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
invar_guard(changed=true)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or for full project verification:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
invar_guard()
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Report Format
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## Guard Results
|
|
47
|
+
|
|
48
|
+
**Status:** PASS / FAIL
|
|
49
|
+
**Errors:** N
|
|
50
|
+
**Warnings:** N
|
|
51
|
+
|
|
52
|
+
### Errors (if any)
|
|
53
|
+
|
|
54
|
+
| Rule | File | Line | Message |
|
|
55
|
+
|------|------|------|---------|
|
|
56
|
+
| missing_contract | src/foo.py | 42 | Function 'bar' has no @pre/@post |
|
|
57
|
+
|
|
58
|
+
### Warnings (if any)
|
|
59
|
+
|
|
60
|
+
| Rule | File | Line | Message |
|
|
61
|
+
|------|------|------|---------|
|
|
62
|
+
| function_size | src/baz.py | 15 | Function exceeds 50 lines |
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Next Steps
|
|
68
|
+
|
|
69
|
+
After reporting results:
|
|
70
|
+
- If PASS: No action needed
|
|
71
|
+
- If FAIL: User decides whether to fix issues
|
|
72
|
+
|
|
73
|
+
**Remember:** You are READ-ONLY. Report results, don't fix them.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
Now run verification on the current project.
|