invar-tools 1.15.6__tar.gz → 1.16.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.
Files changed (550) hide show
  1. invar_tools-1.16.0/.github/workflows/claude-code-review.yml +57 -0
  2. invar_tools-1.16.0/.github/workflows/claude.yml +50 -0
  3. {invar_tools-1.15.6 → invar_tools-1.16.0}/CHANGELOG.md +6 -1
  4. {invar_tools-1.15.6 → invar_tools-1.16.0}/PKG-INFO +1 -1
  5. invar_tools-1.16.0/docs/proposals/DX-83-multi-agent-subagent-support.md +1238 -0
  6. invar_tools-1.16.0/docs/proposals/LX-11-cursor-support.md +570 -0
  7. invar_tools-1.16.0/docs/proposals/LX-13-typescript-runtime-optimization.md +886 -0
  8. invar_tools-1.16.0/docs/proposals/LX-15-typescript-guard-parity.md +517 -0
  9. invar_tools-1.16.0/docs/proposals/LX-16-typescript-guard-remaining-gap.md +420 -0
  10. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-06-typescript-tooling.md +50 -14
  11. invar_tools-1.16.0/docs/proposals/completed/LX-12-typescript-contract-enforcement.md +612 -0
  12. invar_tools-1.16.0/docs/proposals/completed/LX-14-typescript-doctest-execution.md +368 -0
  13. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/index.md +7 -2
  14. {invar_tools-1.15.6 → invar_tools-1.16.0}/pyproject.toml +6 -5
  15. {invar_tools-1.15.6 → invar_tools-1.16.0}/scripts/embed_node_tools.py +141 -12
  16. invar_tools-1.16.0/src/invar/node_tools/.gitignore +17 -0
  17. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/MANIFEST +1 -0
  18. invar_tools-1.16.0/src/invar/node_tools/eslint-plugin/cli.js +117 -0
  19. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/init.py +2 -1
  20. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/guard_ts.py +25 -3
  21. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/templates.py +44 -6
  22. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/.gitignore +3 -0
  23. invar_tools-1.16.0/typescript/doctest.config.json +7 -0
  24. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/package.json +2 -1
  25. invar_tools-1.16.0/typescript/packages/eslint-plugin/CONFIGURATION.md +726 -0
  26. invar_tools-1.16.0/typescript/packages/eslint-plugin/EXAMPLES.md +932 -0
  27. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/package.json +13 -3
  28. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/cli.ts +138 -0
  29. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/index.ts +111 -0
  30. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/behavior.test.ts +1391 -0
  31. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/e2e-scenarios.test.ts +450 -0
  32. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/core/function-lengths.ts +143 -0
  33. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/core/has-io-imports.ts +19 -0
  34. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/core/valid-small.ts +29 -0
  35. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/exported-functions.ts +48 -0
  36. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/shell/with-io.ts +31 -0
  37. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/__tests__/fixtures/tests/large.test.ts +262 -0
  38. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/max-file-lines.ts +119 -0
  39. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/max-function-lines.ts +152 -0
  40. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/no-empty-schema.ts +83 -0
  41. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/no-impure-calls-in-core.ts +62 -0
  42. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/src/rules/no-io-in-core.ts +5 -1
  43. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/no-pure-logic-in-shell.ts +206 -0
  44. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/no-redundant-type-schema.ts +114 -0
  45. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/no-runtime-imports.ts +82 -0
  46. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/require-complete-validation.ts +127 -0
  47. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/src/rules/require-jsdoc-example.ts +33 -7
  48. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/src/rules/require-schema-validation.ts +147 -3
  49. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/shell-complexity.ts +263 -0
  50. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/rules/thin-entry-points.ts +207 -0
  51. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/utils/layer-detection.ts +110 -0
  52. invar_tools-1.16.0/typescript/packages/eslint-plugin/src/utils/math-example.ts +31 -0
  53. {invar_tools-1.15.6/typescript/packages/ts-analyzer → invar_tools-1.16.0/typescript/packages/eslint-plugin}/tsconfig.json +2 -1
  54. invar_tools-1.16.0/typescript/scripts/generate-doctests.mjs +307 -0
  55. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/vitest.config.ts +4 -1
  56. invar_tools-1.15.6/.serena/cache/python/document_symbols.pkl +0 -0
  57. invar_tools-1.15.6/.serena/cache/python/raw_document_symbols.pkl +0 -0
  58. invar_tools-1.15.6/tests/experiments/dx74_attention_drift/scenario_v4/.serena/cache/python/document_symbols.pkl +0 -0
  59. invar_tools-1.15.6/tests/experiments/dx74_attention_drift/scenario_v4/.serena/cache/python/raw_document_symbols.pkl +0 -0
  60. invar_tools-1.15.6/typescript/packages/eslint-plugin/node_modules/.bin/acorn +0 -17
  61. invar_tools-1.15.6/typescript/packages/eslint-plugin/node_modules/.bin/eslint +0 -17
  62. invar_tools-1.15.6/typescript/packages/eslint-plugin/node_modules/.bin/tsc +0 -17
  63. invar_tools-1.15.6/typescript/packages/eslint-plugin/node_modules/.bin/tsserver +0 -17
  64. invar_tools-1.15.6/typescript/packages/eslint-plugin/src/index.ts +0 -61
  65. invar_tools-1.15.6/typescript/packages/fc-runner/node_modules/.bin/tsc +0 -17
  66. invar_tools-1.15.6/typescript/packages/fc-runner/node_modules/.bin/tsserver +0 -17
  67. invar_tools-1.15.6/typescript/packages/quick-check/node_modules/.bin/acorn +0 -17
  68. invar_tools-1.15.6/typescript/packages/quick-check/node_modules/.bin/eslint +0 -17
  69. invar_tools-1.15.6/typescript/packages/quick-check/node_modules/.bin/tsc +0 -17
  70. invar_tools-1.15.6/typescript/packages/quick-check/node_modules/.bin/tsserver +0 -17
  71. invar_tools-1.15.6/typescript/packages/ts-analyzer/node_modules/.bin/tsc +0 -17
  72. invar_tools-1.15.6/typescript/packages/ts-analyzer/node_modules/.bin/tsserver +0 -17
  73. {invar_tools-1.15.6 → invar_tools-1.16.0}/.aider.conf.yml +0 -0
  74. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/commands/audit.md +0 -0
  75. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/commands/guard.md +0 -0
  76. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/PostToolUse.sh +0 -0
  77. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/PreToolUse.sh +0 -0
  78. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/Stop.sh +0 -0
  79. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/UserPromptSubmit.sh +0 -0
  80. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/invar.PostToolUse.sh +0 -0
  81. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/invar.PreToolUse.sh +0 -0
  82. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/invar.Stop.sh +0 -0
  83. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/hooks/invar.UserPromptSubmit.sh +0 -0
  84. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/acceptance/SKILL.md +0 -0
  85. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/develop/SKILL.md +0 -0
  86. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-onboard/SKILL.md +0 -0
  87. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-onboard/patterns/python.md +0 -0
  88. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-onboard/patterns/typescript.md +0 -0
  89. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-onboard/templates/assessment.md.jinja +0 -0
  90. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-onboard/templates/roadmap.md.jinja +0 -0
  91. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-reflect/CONFIG.md +0 -0
  92. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-reflect/SKILL.md +0 -0
  93. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/invar-reflect/template.md +0 -0
  94. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/investigate/SKILL.md +0 -0
  95. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/propose/SKILL.md +0 -0
  96. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/review/SKILL.md +0 -0
  97. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/security/SKILL.md +0 -0
  98. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/security/patterns/_common.yaml +0 -0
  99. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/security/patterns/python.yaml +0 -0
  100. {invar_tools-1.15.6 → invar_tools-1.16.0}/.claude/skills/security/patterns/typescript.yaml +0 -0
  101. {invar_tools-1.15.6 → invar_tools-1.16.0}/.cursorrules +0 -0
  102. {invar_tools-1.15.6 → invar_tools-1.16.0}/.github/workflows/ci.yml +0 -0
  103. {invar_tools-1.15.6 → invar_tools-1.16.0}/.github/workflows/publish.yml +0 -0
  104. {invar_tools-1.15.6 → invar_tools-1.16.0}/.gitignore +0 -0
  105. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/archive/sessions-2025-12.md +0 -0
  106. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/context.md +0 -0
  107. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/README.md +0 -0
  108. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/conftest.py +0 -0
  109. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/contracts.py +0 -0
  110. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/core_shell.py +0 -0
  111. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/functional.py +0 -0
  112. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/examples/workflow.md +0 -0
  113. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/feedback/feedback-2026-01-03.md +0 -0
  114. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/mcp-setup.md +0 -0
  115. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/project-additions.md +0 -0
  116. {invar_tools-1.15.6 → invar_tools-1.16.0}/.invar/proposals/TEMPLATE.md +0 -0
  117. {invar_tools-1.15.6 → invar_tools-1.16.0}/.mcp.json +0 -0
  118. {invar_tools-1.15.6 → invar_tools-1.16.0}/.pre-commit-config.yaml +0 -0
  119. {invar_tools-1.15.6 → invar_tools-1.16.0}/.serena/.gitignore +0 -0
  120. {invar_tools-1.15.6 → invar_tools-1.16.0}/.serena/project.yml +0 -0
  121. {invar_tools-1.15.6 → invar_tools-1.16.0}/CLAUDE.md +0 -0
  122. {invar_tools-1.15.6 → invar_tools-1.16.0}/INVAR.md +0 -0
  123. {invar_tools-1.15.6 → invar_tools-1.16.0}/LICENSE +0 -0
  124. {invar_tools-1.15.6 → invar_tools-1.16.0}/LICENSE-GPL +0 -0
  125. {invar_tools-1.15.6 → invar_tools-1.16.0}/NOTICE +0 -0
  126. {invar_tools-1.15.6 → invar_tools-1.16.0}/README.md +0 -0
  127. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/.nojekyll +0 -0
  128. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/agents.md +0 -0
  129. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/design.md +0 -0
  130. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/diagrams.md +0 -0
  131. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guide.md +0 -0
  132. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/aider.md +0 -0
  133. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/cline.md +0 -0
  134. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/continue.md +0 -0
  135. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/cursor.md +0 -0
  136. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/multi-agent.md +0 -0
  137. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/guides/pi.md +0 -0
  138. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/decisions-2024.md +0 -0
  139. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/feedback/compliance-analysis.md +0 -0
  140. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/feedback/feedback-memo.md +0 -0
  141. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/feedback/index.md +0 -0
  142. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/index.md +0 -0
  143. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/original-vision.md +0 -0
  144. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/protocol-evolution.md +0 -0
  145. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/history/research/cruxeval-quick-validation.md +0 -0
  146. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/index.html +0 -0
  147. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/logo.svg +0 -0
  148. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-23-entry-point-detection.md +0 -0
  149. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-25-functional-patterns.md +0 -0
  150. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-29-pure-content-detection.md +0 -0
  151. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-38-contract-quality-rules.md +0 -0
  152. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-60-structured-rules-ssot.md +0 -0
  153. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-61-functional-pattern-guidance.md +0 -0
  154. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-61-implementation-design.md +0 -0
  155. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-62-proactive-reference-reading.md +0 -0
  156. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-68-agent-behavior-optimization.md +0 -0
  157. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-74-experiment-report.md +0 -0
  158. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-75-attention-aware-framework.md +0 -0
  159. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-78-mcp-protocol-sync.md +0 -0
  160. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-79-invar-usage-feedback.md +0 -0
  161. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-80-guard-cli-mcp-alignment.md +0 -0
  162. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/DX-81-multi-agent-init.md +0 -0
  163. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/LX-01-multi-language-feasibility.md +0 -0
  164. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/LX-04-pi-agent-support.md +0 -0
  165. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/LX-07-extension-skills.md +0 -0
  166. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/LX-08-extension-skills-future.md +0 -0
  167. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/LX-09-legacy-onboarding.md +0 -0
  168. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2024-12-21-guard-enhancements.md +0 -0
  169. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2024-12-21-language-inspired-enhancements.md +0 -0
  170. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2024-12-21-test-first-enhancement.md +0 -0
  171. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2025-12-21-dx-improvements.md +0 -0
  172. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2025-12-23-dx-20-property-testing-enhancements.md +0 -0
  173. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/2025-12-23-dx-21-package-and-init.md +0 -0
  174. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/AGENT-IMPROVEMENTS.md +0 -0
  175. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-11-documentation-restructure.md +0 -0
  176. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-12-hypothesis-fallback.md +0 -0
  177. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-13-incremental-prove.md +0 -0
  178. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-14-expanded-prove-usage.md +0 -0
  179. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-16-agent-tool-enforcement.md +0 -0
  180. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-17-workflow-enforcement.md +0 -0
  181. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-22-verification-strategy.md +0 -0
  182. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-24-mechanism-documentation.md +0 -0
  183. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-26-guard-simplification.md +0 -0
  184. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-27-system-prompt-protocol.md +0 -0
  185. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-28-semantic-verification.md +0 -0
  186. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-30-visible-workflow.md +0 -0
  187. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-31-adversarial-reviewer.md +0 -0
  188. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-32-workflow-iteration.md +0 -0
  189. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-33-verification-blind-spots.md +0 -0
  190. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-34-review-cycle.md +0 -0
  191. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-35-workflow-phase-separation.md +0 -0
  192. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-36-documentation-restructuring.md +0 -0
  193. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-37-coverage-integration.md +0 -0
  194. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-39-workflow-efficiency.md +0 -0
  195. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-40-smart-tool-redirect-hook.md +0 -0
  196. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-41-automatic-review-orchestration.md +0 -0
  197. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-42-workflow-auto-routing.md +0 -0
  198. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-43-cross-platform-distribution.md +0 -0
  199. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-45-template-consistency.md +0 -0
  200. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-46-documentation-audit.md +0 -0
  201. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-47-command-skill-naming.md +0 -0
  202. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-48-code-structure-reorganization.md +0 -0
  203. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-49-protocol-distribution-unification.md +0 -0
  204. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-50-workflow-enforcement.md +0 -0
  205. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-51-workflow-phase-visibility.md +0 -0
  206. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-52-venv-dependency-injection.md +0 -0
  207. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-53-review-loop-effectiveness.md +0 -0
  208. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-54-agent-native-context-management.md +0 -0
  209. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-55-claude-init-conflict-resolution.md +0 -0
  210. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-56-template-sync-unification.md +0 -0
  211. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-57-claude-code-hooks.md +0 -0
  212. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-58-document-structure-optimization.md +0 -0
  213. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-63-contracts-first-enforcement.md +0 -0
  214. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-64-version-display-unification.md +0 -0
  215. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-65-single-file-guard.md +0 -0
  216. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-66-escape-hatch-visibility.md +0 -0
  217. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-67-explicit-skill-invocation.md +0 -0
  218. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-69-project-uninstall.md +0 -0
  219. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-70-init-simplification.md +0 -0
  220. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-70-review-isolation.md +0 -0
  221. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-71-skill-command-simplification.md +0 -0
  222. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-72-mandatory-self-review-detection.md +0 -0
  223. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-74-tiered-attention-defense.md +0 -0
  224. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-76-structured-document-query.md +0 -0
  225. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/DX-77-mcp-doc-tools-enhancements.md +0 -0
  226. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-02-agent-portability-analysis.md +0 -0
  227. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-03-multi-agent-support.md +0 -0
  228. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-05-language-agnostic-protocol.md +0 -0
  229. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-06-appendix-guard-comparison.md +0 -0
  230. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-09-legacy-onboarding.md +0 -0
  231. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/proposals/completed/LX-10-typescript-size-limits.md +0 -0
  232. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/agent-information-hierarchy.md +0 -0
  233. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/architecture/index.md +0 -0
  234. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/contracts/advanced.md +0 -0
  235. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/contracts/completeness.md +0 -0
  236. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/contracts/doctests.md +0 -0
  237. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/contracts/index.md +0 -0
  238. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/contracts/pre-post.md +0 -0
  239. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/documentation.md +0 -0
  240. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/index.md +0 -0
  241. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/proposal-workflow.md +0 -0
  242. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/rules/index.md +0 -0
  243. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/rules/severity.md +0 -0
  244. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/verification/crosshair-vs-hypothesis.md +0 -0
  245. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/verification/index.md +0 -0
  246. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/verification/smart-routing.md +0 -0
  247. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/workflow/index.md +0 -0
  248. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/workflow/session-start.md +0 -0
  249. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/reference/workflow/usbv.md +0 -0
  250. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/terminal-gif-guide.md +0 -0
  251. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/test-reports/DX-55-test-report.md +0 -0
  252. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/test-reports/DX-56-test-report.md +0 -0
  253. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/test-reports/DX-58-test-scenario.md +0 -0
  254. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/testing/v1.5.0-stress-test.md +0 -0
  255. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/testing/v1.5.0-test-report.md +0 -0
  256. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/testing/v1.5.0-workflow-compliance.md +0 -0
  257. {invar_tools-1.15.6 → invar_tools-1.16.0}/docs/vision.md +0 -0
  258. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/LICENSE +0 -0
  259. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/README.md +0 -0
  260. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/pyproject.toml +0 -0
  261. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/__init__.py +0 -0
  262. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/contracts.py +0 -0
  263. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/decorators.py +0 -0
  264. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/invariant.py +0 -0
  265. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/relations.py +0 -0
  266. {invar_tools-1.15.6 → invar_tools-1.16.0}/runtime/src/invar_runtime/resource.py +0 -0
  267. {invar_tools-1.15.6 → invar_tools-1.16.0}/scripts/smart-guard.sh +0 -0
  268. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/core/__init__.py +0 -0
  269. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/__init__.py +0 -0
  270. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/__init__.py +0 -0
  271. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/contracts.py +0 -0
  272. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/doc_edit.py +0 -0
  273. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/doc_parser.py +0 -0
  274. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/entry_points.py +0 -0
  275. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/extraction.py +0 -0
  276. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/feedback.py +0 -0
  277. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/format_specs.py +0 -0
  278. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/format_strategies.py +0 -0
  279. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/formatter.py +0 -0
  280. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/hypothesis_strategies.py +0 -0
  281. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/inspect.py +0 -0
  282. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/lambda_helpers.py +0 -0
  283. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/language.py +0 -0
  284. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/models.py +0 -0
  285. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/must_use.py +0 -0
  286. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/parser.py +0 -0
  287. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/__init__.py +0 -0
  288. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/detector.py +0 -0
  289. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/p0_exhaustive.py +0 -0
  290. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/p0_literal.py +0 -0
  291. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/p0_newtype.py +0 -0
  292. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/p0_nonempty.py +0 -0
  293. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/p0_validation.py +0 -0
  294. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/registry.py +0 -0
  295. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/patterns/types.py +0 -0
  296. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/postcondition_scope.py +0 -0
  297. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/property_gen.py +0 -0
  298. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/purity.py +0 -0
  299. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/purity_heuristics.py +0 -0
  300. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/references.py +0 -0
  301. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/review_trigger.py +0 -0
  302. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/rule_meta.py +0 -0
  303. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/rules.py +0 -0
  304. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/shell_analysis.py +0 -0
  305. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/shell_architecture.py +0 -0
  306. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/strategies.py +0 -0
  307. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/suggestions.py +0 -0
  308. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/sync_helpers.py +0 -0
  309. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/tautology.py +0 -0
  310. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/template_helpers.py +0 -0
  311. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/template_parser.py +0 -0
  312. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/timeout_inference.py +0 -0
  313. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/trivial_detection.py +0 -0
  314. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/ts_parsers.py +0 -0
  315. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/ts_sig_parser.py +0 -0
  316. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/utils.py +0 -0
  317. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/core/verification_routing.py +0 -0
  318. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/mcp/__init__.py +0 -0
  319. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/mcp/__main__.py +0 -0
  320. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/mcp/handlers.py +0 -0
  321. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/mcp/server.py +0 -0
  322. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/__init__.py +0 -0
  323. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/fc-runner/cli.js +0 -0
  324. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/quick-check/cli.js +0 -0
  325. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/ts-analyzer/cli.js +0 -0
  326. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/node_tools/ts-query.js +0 -0
  327. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/py.typed +0 -0
  328. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/__init__.py +0 -0
  329. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/claude_hooks.py +0 -0
  330. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/__init__.py +0 -0
  331. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/doc.py +0 -0
  332. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/feedback.py +0 -0
  333. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/guard.py +0 -0
  334. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/hooks.py +0 -0
  335. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/merge.py +0 -0
  336. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/mutate.py +0 -0
  337. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/perception.py +0 -0
  338. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/skill.py +0 -0
  339. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/sync_self.py +0 -0
  340. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/template_sync.py +0 -0
  341. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/test.py +0 -0
  342. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/uninstall.py +0 -0
  343. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/commands/update.py +0 -0
  344. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/config.py +0 -0
  345. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/contract_coverage.py +0 -0
  346. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/coverage.py +0 -0
  347. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/doc_tools.py +0 -0
  348. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/fs.py +0 -0
  349. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/git.py +0 -0
  350. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/guard_helpers.py +0 -0
  351. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/guard_output.py +0 -0
  352. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/mcp_config.py +0 -0
  353. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/mutation.py +0 -0
  354. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/pattern_integration.py +0 -0
  355. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/pi_hooks.py +0 -0
  356. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/pi_tools.py +0 -0
  357. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/property_tests.py +0 -0
  358. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/__init__.py +0 -0
  359. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/accept.py +0 -0
  360. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/cache.py +0 -0
  361. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/crosshair.py +0 -0
  362. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/prove/hypothesis.py +0 -0
  363. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/py_refs.py +0 -0
  364. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/skill_manager.py +0 -0
  365. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/subprocess_env.py +0 -0
  366. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/template_engine.py +0 -0
  367. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/testing.py +0 -0
  368. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/shell/ts_compiler.py +0 -0
  369. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/CLAUDE.md.template +0 -0
  370. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/__init__.py +0 -0
  371. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/python/critical-rules.md +0 -0
  372. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/python/quick-reference.md +0 -0
  373. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/typescript/critical-rules.md +0 -0
  374. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/typescript/quick-reference.md +0 -0
  375. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/universal/check-in.md +0 -0
  376. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/universal/skills.md +0 -0
  377. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/universal/tool-selection.md +0 -0
  378. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/claude-md/universal/workflow.md +0 -0
  379. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/commands/audit.md.jinja +0 -0
  380. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/commands/guard.md +0 -0
  381. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/config/AGENT.md.jinja +0 -0
  382. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/config/CLAUDE.md.jinja +0 -0
  383. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/config/context.md.jinja +0 -0
  384. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/config/pre-commit.yaml.jinja +0 -0
  385. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/context.md.template +0 -0
  386. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/README.md +0 -0
  387. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/conftest.py +0 -0
  388. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/contracts.py +0 -0
  389. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/core_shell.py +0 -0
  390. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/functional.py +0 -0
  391. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/python/workflow.md +0 -0
  392. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/README.md +0 -0
  393. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/contracts.ts +0 -0
  394. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/core_shell.ts +0 -0
  395. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/functional.ts +0 -0
  396. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/patterns.md +0 -0
  397. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/examples/typescript/workflow.md +0 -0
  398. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/PostToolUse.sh.jinja +0 -0
  399. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/PreToolUse.sh.jinja +0 -0
  400. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/Stop.sh.jinja +0 -0
  401. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/UserPromptSubmit.sh.jinja +0 -0
  402. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/__init__.py +0 -0
  403. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/hooks/pi/invar.ts.jinja +0 -0
  404. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/manifest.toml +0 -0
  405. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/onboard/assessment.md.jinja +0 -0
  406. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/onboard/patterns/python.md +0 -0
  407. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/onboard/patterns/typescript.md +0 -0
  408. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/onboard/roadmap.md.jinja +0 -0
  409. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/pi-tools/invar/index.ts +0 -0
  410. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/proposal.md.template +0 -0
  411. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/INVAR.md.jinja +0 -0
  412. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/python/architecture-examples.md +0 -0
  413. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/python/contracts-syntax.md +0 -0
  414. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/python/markers.md +0 -0
  415. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/python/tools.md +0 -0
  416. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/python/troubleshooting.md +0 -0
  417. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/typescript/architecture-examples.md +0 -0
  418. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/typescript/contracts-syntax.md +0 -0
  419. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/typescript/markers.md +0 -0
  420. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/typescript/tools.md +0 -0
  421. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/typescript/troubleshooting.md +0 -0
  422. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/architecture.md +0 -0
  423. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/completion.md +0 -0
  424. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/contracts-concept.md +0 -0
  425. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/header.md +0 -0
  426. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/session.md +0 -0
  427. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/six-laws.md +0 -0
  428. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/usbv.md +0 -0
  429. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/protocol/universal/visible-workflow.md +0 -0
  430. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/develop/SKILL.md.jinja +0 -0
  431. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/_registry.yaml +0 -0
  432. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/acceptance/SKILL.md +0 -0
  433. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/invar-onboard/SKILL.md +0 -0
  434. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/invar-onboard/patterns/python.md +0 -0
  435. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/invar-onboard/patterns/typescript.md +0 -0
  436. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/invar-onboard/templates/assessment.md.jinja +0 -0
  437. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/invar-onboard/templates/roadmap.md.jinja +0 -0
  438. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/security/SKILL.md +0 -0
  439. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/security/patterns/_common.yaml +0 -0
  440. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/security/patterns/python.yaml +0 -0
  441. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/extensions/security/patterns/typescript.yaml +0 -0
  442. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/invar-reflect/CONFIG.md +0 -0
  443. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/invar-reflect/SKILL.md +0 -0
  444. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/invar-reflect/template.md +0 -0
  445. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/investigate/SKILL.md.jinja +0 -0
  446. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/propose/SKILL.md.jinja +0 -0
  447. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/invar/templates/skills/review/SKILL.md.jinja +0 -0
  448. {invar_tools-1.15.6 → invar_tools-1.16.0}/src/shell/__init__.py +0 -0
  449. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/__init__.py +0 -0
  450. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/conftest.py +0 -0
  451. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/conftest.py +0 -0
  452. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/README.md +0 -0
  453. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/RESULTS.md +0 -0
  454. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/RESULTS_V2.md +0 -0
  455. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/RESULTS_V4.md +0 -0
  456. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/ground_truth.yaml +0 -0
  457. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/prompts.yaml +0 -0
  458. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/api_client.py +0 -0
  459. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/auth_service.py +0 -0
  460. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/config_manager.py +0 -0
  461. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/data_processor.py +0 -0
  462. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/file_handler.py +0 -0
  463. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario/utils.py +0 -0
  464. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/analytics_engine.py +0 -0
  465. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/ground_truth.yaml +0 -0
  466. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/inventory_manager.py +0 -0
  467. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/notification_service.py +0 -0
  468. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/order_processor.py +0 -0
  469. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/payment_gateway.py +0 -0
  470. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v2/user_service.py +0 -0
  471. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/README.md +0 -0
  472. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/cache_service.py +0 -0
  473. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/calculator.py +0 -0
  474. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/data_processor.py +0 -0
  475. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/ground_truth.yaml +0 -0
  476. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/user_manager.py +0 -0
  477. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v3/validator.py +0 -0
  478. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/.gitignore +0 -0
  479. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/project.yml +0 -0
  480. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/README.md +0 -0
  481. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/config_manager.py +0 -0
  482. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/data_service.py +0 -0
  483. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/ground_truth.yaml +0 -0
  484. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/math_utils.py +0 -0
  485. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/report_generator.py +0 -0
  486. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v4/user_auth.py +0 -0
  487. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/api_gateway.py +0 -0
  488. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/auth_service.py +0 -0
  489. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/cache_handler.py +0 -0
  490. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/config_loader.py +0 -0
  491. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/data_validator.py +0 -0
  492. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/ground_truth.yaml +0 -0
  493. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/metrics_collector.py +0 -0
  494. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/notification_service.py +0 -0
  495. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/payment_processor.py +0 -0
  496. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/report_builder.py +0 -0
  497. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/task_scheduler.py +0 -0
  498. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/user_manager.py +0 -0
  499. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v5/utils.py +0 -0
  500. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/api_gateway.py +0 -0
  501. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/auth_service.py +0 -0
  502. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/cache_handler.py +0 -0
  503. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/config_loader.py +0 -0
  504. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/data_validator.py +0 -0
  505. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/ground_truth.yaml +0 -0
  506. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/metrics_collector.py +0 -0
  507. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/notification_service.py +0 -0
  508. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/payment_processor.py +0 -0
  509. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/report_builder.py +0 -0
  510. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/task_scheduler.py +0 -0
  511. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/user_manager.py +0 -0
  512. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v6/utils.py +0 -0
  513. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/api_service.py +0 -0
  514. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/auth_manager.py +0 -0
  515. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/data_processor.py +0 -0
  516. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/ground_truth.yaml +0 -0
  517. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/report_engine.py +0 -0
  518. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/storage_handler.py +0 -0
  519. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/experiments/dx74_attention_drift/scenario_v7/utils.py +0 -0
  520. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/__init__.py +0 -0
  521. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_cli_flags.py +0 -0
  522. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_dx55_regression.py +0 -0
  523. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_dx56_sync.py +0 -0
  524. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_dx78_ts_compiler.py +0 -0
  525. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_lx05_detection.py +0 -0
  526. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_lx05_integration.py +0 -0
  527. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_lx05_templates.py +0 -0
  528. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_lx06_typescript.py +0 -0
  529. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_lx07_skills.py +0 -0
  530. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/integration/test_mcp_doc_tools.py +0 -0
  531. {invar_tools-1.15.6 → invar_tools-1.16.0}/tests/test_subprocess_env.py +0 -0
  532. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/README.md +0 -0
  533. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/src/rules/no-any-in-schema.ts +0 -0
  534. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/eslint-plugin/src/rules/shell-result-type.ts +0 -0
  535. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/fc-runner/package.json +0 -0
  536. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/fc-runner/src/cli.ts +0 -0
  537. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/fc-runner/src/index.ts +0 -0
  538. {invar_tools-1.15.6/typescript/packages/eslint-plugin → invar_tools-1.16.0/typescript/packages/fc-runner}/tsconfig.json +0 -0
  539. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/quick-check/package.json +0 -0
  540. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/quick-check/src/cli.ts +0 -0
  541. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/quick-check/src/index.ts +0 -0
  542. {invar_tools-1.15.6/typescript/packages/fc-runner → invar_tools-1.16.0/typescript/packages/quick-check}/tsconfig.json +0 -0
  543. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/ts-analyzer/package.json +0 -0
  544. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/ts-analyzer/src/cli.ts +0 -0
  545. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/packages/ts-analyzer/src/index.ts +0 -0
  546. {invar_tools-1.15.6/typescript/packages/quick-check → invar_tools-1.16.0/typescript/packages/ts-analyzer}/tsconfig.json +0 -0
  547. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/pnpm-workspace.yaml +0 -0
  548. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/scripts/bundle.mjs +0 -0
  549. {invar_tools-1.15.6 → invar_tools-1.16.0}/typescript/tsconfig.base.json +0 -0
  550. {invar_tools-1.15.6 → invar_tools-1.16.0}/uv.lock +0 -0
@@ -0,0 +1,57 @@
1
+ name: Claude Code Review
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+ # Optional: Only run on specific file changes
7
+ # paths:
8
+ # - "src/**/*.ts"
9
+ # - "src/**/*.tsx"
10
+ # - "src/**/*.js"
11
+ # - "src/**/*.jsx"
12
+
13
+ jobs:
14
+ claude-review:
15
+ # Optional: Filter by PR author
16
+ # if: |
17
+ # github.event.pull_request.user.login == 'external-contributor' ||
18
+ # github.event.pull_request.user.login == 'new-developer' ||
19
+ # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20
+
21
+ runs-on: ubuntu-latest
22
+ permissions:
23
+ contents: read
24
+ pull-requests: read
25
+ issues: read
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v4
31
+ with:
32
+ fetch-depth: 1
33
+
34
+ - name: Run Claude Code Review
35
+ id: claude-review
36
+ uses: anthropics/claude-code-action@v1
37
+ with:
38
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39
+ prompt: |
40
+ REPO: ${{ github.repository }}
41
+ PR NUMBER: ${{ github.event.pull_request.number }}
42
+
43
+ Please review this pull request and provide feedback on:
44
+ - Code quality and best practices
45
+ - Potential bugs or issues
46
+ - Performance considerations
47
+ - Security concerns
48
+ - Test coverage
49
+
50
+ Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
51
+
52
+ Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
53
+
54
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
55
+ # or https://code.claude.com/docs/en/cli-reference for available options
56
+ claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
57
+
@@ -0,0 +1,50 @@
1
+ name: Claude Code
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created]
6
+ pull_request_review_comment:
7
+ types: [created]
8
+ issues:
9
+ types: [opened, assigned]
10
+ pull_request_review:
11
+ types: [submitted]
12
+
13
+ jobs:
14
+ claude:
15
+ if: |
16
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
+ (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ pull-requests: read
24
+ issues: read
25
+ id-token: write
26
+ actions: read # Required for Claude to read CI results on PRs
27
+ steps:
28
+ - name: Checkout repository
29
+ uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 1
32
+
33
+ - name: Run Claude Code
34
+ id: claude
35
+ uses: anthropics/claude-code-action@v1
36
+ with:
37
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38
+
39
+ # This is an optional setting that allows Claude to read CI results on PRs
40
+ additional_permissions: |
41
+ actions: read
42
+
43
+ # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
44
+ # prompt: 'Update the pull request description to include a summary of changes.'
45
+
46
+ # Optional: Add claude_args to customize behavior and configuration
47
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
48
+ # or https://code.claude.com/docs/en/cli-reference for available options
49
+ # claude_args: '--allowed-tools Bash(gh pr:*)'
50
+
@@ -7,7 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
-
10
+ ### Fixed
11
+ - **init: Language-specific config.toml (LX-05)** - Generate correct config for TypeScript
12
+ - TypeScript projects now get TypeScript-specific `forbidden_imports`: `fs`, `path`, `http`, etc.
13
+ - TypeScript projects get `require_doctests = false` (uses JSDoc instead)
14
+ - TypeScript-specific `exclude_paths`: `node_modules`, `.next`, `coverage`
15
+ - Python projects unaffected (still get Python-specific config)
11
16
 
12
17
  ## [1.15.6] - 2026-01-03
13
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invar-tools
3
- Version: 1.15.6
3
+ Version: 1.16.0
4
4
  Summary: AI-native software engineering tools with design-by-contract verification
5
5
  Project-URL: Homepage, https://github.com/tefx/invar
6
6
  Project-URL: Documentation, https://github.com/tefx/invar#readme