rigortype 0.3.5 → 0.3.6
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.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/data/gem_overlay/activesupport/core_ext.rbs +33 -0
- data/docs/handbook/02-everyday-types.md +1 -1
- data/docs/handbook/04-tuples-and-shapes.md +1 -1
- data/docs/handbook/08-understanding-errors.md +1 -1
- data/docs/handbook/09-plugins.md +2 -2
- data/docs/handbook/10-sorbet.md +1 -1
- data/docs/handbook/README.md +2 -2
- data/docs/handbook/appendix-go.md +1 -1
- data/docs/handbook/appendix-java-csharp.md +2 -2
- data/docs/handbook/appendix-mypy.md +1 -1
- data/docs/handbook/appendix-protocols-and-structural-typing.md +2 -2
- data/docs/handbook/appendix-rust.md +1 -1
- data/docs/handbook/appendix-type-theory.md +2 -2
- data/docs/handbook/appendix-typescript.md +4 -4
- data/docs/manual/02-cli-reference.md +13 -9
- data/docs/manual/03-configuration.md +1 -1
- data/docs/manual/04-diagnostics.md +12 -0
- data/docs/manual/08-skills.md +1 -1
- data/docs/manual/11-ci.md +1 -1
- data/docs/manual/12-caching.md +1 -1
- data/docs/manual/15-type-protection-coverage.md +1 -1
- data/docs/manual/18-removing-dead-code.md +13 -4
- data/docs/manual/19-effect-labels.md +19 -12
- data/docs/manual/README.md +2 -2
- data/docs/manual/plugins/rigor-actionmailer.md +4 -4
- data/docs/manual/plugins/rigor-activejob.md +3 -3
- data/docs/manual/plugins/rigor-activerecord.md +4 -4
- data/docs/manual/plugins/rigor-rails-i18n.md +5 -5
- data/docs/manual/plugins/rigor-rspec.md +6 -2
- data/lib/rigor/analysis/diagnostic.rb +17 -6
- data/lib/rigor/analysis/effects_cache_probe.rb +132 -0
- data/lib/rigor/analysis/reachability/graph.rb +30 -11
- data/lib/rigor/analysis/reachability/plugin_roots.rb +11 -8
- data/lib/rigor/analysis/reachability/scan.rb +20 -4
- data/lib/rigor/analysis/reachability/scan_cache.rb +130 -0
- data/lib/rigor/analysis/run_cache_key.rb +12 -0
- data/lib/rigor/analysis/runner/effect_envelope_pass.rb +14 -8
- data/lib/rigor/analysis/runner.rb +151 -28
- data/lib/rigor/cache/file_digest.rb +20 -2
- data/lib/rigor/cli/check_command.rb +67 -48
- data/lib/rigor/cli/coverage_command.rb +5 -6
- data/lib/rigor/cli/doc_links.rb +100 -0
- data/lib/rigor/cli/docs_command.rb +32 -2
- data/lib/rigor/cli/effects_command.rb +27 -2
- data/lib/rigor/cli/effects_diff_renderer.rb +82 -12
- data/lib/rigor/cli/effects_explain_renderer.rb +6 -3
- data/lib/rigor/cli/effects_snapshot_command.rb +52 -7
- data/lib/rigor/cli/unused_command.rb +65 -16
- data/lib/rigor/cli.rb +21 -8
- data/lib/rigor/effects/definition_lines.rb +100 -0
- data/lib/rigor/effects/envelope_check.rb +18 -1
- data/lib/rigor/effects/liskov_check.rb +17 -8
- data/lib/rigor/effects/signature_sources.rb +13 -2
- data/lib/rigor/effects/snapshot.rb +53 -21
- data/lib/rigor/effects/snapshot_diff.rb +26 -3
- data/lib/rigor/inference/synthetic_method_scanner.rb +7 -0
- data/lib/rigor/rbs_extended/envelope_scanner.rb +9 -0
- data/lib/rigor/version.rb +1 -1
- data/skills/rigor-ci-setup/SKILL.md +2 -2
- data/skills/rigor-editor-setup/SKILL.md +2 -2
- data/skills/rigor-mcp-setup/SKILL.md +2 -2
- data/skills/rigor-monkeypatch-resolve/SKILL.md +1 -1
- data/skills/rigor-plugin-review/SKILL.md +3 -3
- metadata +5 -1
data/lib/rigor/version.rb
CHANGED
|
@@ -168,9 +168,9 @@ The exact recipe (the `BUNDLE_GEMFILE` wiring, the Dependabot entry) is in
|
|
|
168
168
|
`rigor docs ci` (ready files: `rigor docs --list manual | grep
|
|
169
169
|
ci-templates`). Web fallback, before Rigor is installed:
|
|
170
170
|
<https://github.com/rigortype/rigor/blob/master/docs/manual/11-ci.md>.
|
|
171
|
-
- [ADR-51](
|
|
171
|
+
- [ADR-51](../../docs/adr/51-ci-diagnostic-output-formats.md)
|
|
172
172
|
— the output-format surface (the severity / identifier contract).
|
|
173
|
-
- [ADR-27](
|
|
173
|
+
- [ADR-27](../../docs/adr/27-tool-distribution-model.md)
|
|
174
174
|
— why Rigor installs standalone and runs in its own job.
|
|
175
175
|
- [reviewdog](https://github.com/reviewdog/reviewdog) /
|
|
176
176
|
[action-setup](https://github.com/reviewdog/action-setup).
|
|
@@ -24,7 +24,7 @@ rigor docs editor-integration
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
(Web fallback, only before Rigor is installed:
|
|
27
|
-
**[Rigor LSP — Editor Integration](
|
|
27
|
+
**[Rigor LSP — Editor Integration](../../docs/manual/09-editor-integration.md)**.)
|
|
28
28
|
This skill is the *workflow* around it (identify the editor → apply the
|
|
29
29
|
manual's snippet → verify), so it does not duplicate (and cannot
|
|
30
30
|
stale-out) the config details.
|
|
@@ -62,7 +62,7 @@ Every editor snippet simply launches **`rigor lsp`** (stdio) and needs
|
|
|
62
62
|
**`rigor` on the editor's `PATH`** — the same executable `rigor check`
|
|
63
63
|
uses. For GUI editors that do not inherit your shell, the `mise` shim
|
|
64
64
|
path is the most reliable channel (see `rigor docs install`, or
|
|
65
|
-
[Installing Rigor](
|
|
65
|
+
[Installing Rigor](../../docs/install.md)
|
|
66
66
|
on the web). Do **not** add `rigortype` to the project's `Gemfile` — it
|
|
67
67
|
is a tool, not a library.
|
|
68
68
|
|
|
@@ -26,7 +26,7 @@ rigor docs mcp-server
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
(Web fallback, only before Rigor is installed:
|
|
29
|
-
**[Rigor MCP Server — AI Agent Integration](
|
|
29
|
+
**[Rigor MCP Server — AI Agent Integration](../../docs/manual/10-mcp-server.md)**.)
|
|
30
30
|
This skill is the *workflow* around it (identify the client → apply the
|
|
31
31
|
manual's snippet → verify the handshake), so it does not duplicate (and
|
|
32
32
|
cannot stale-out) the config details.
|
|
@@ -70,7 +70,7 @@ Every client config simply launches **`rigor mcp`** (stdio) and needs
|
|
|
70
70
|
**`rigor` on the agent's `PATH`** — the same executable `rigor check`
|
|
71
71
|
uses. For agents that do not inherit your shell, the `mise` shim path is
|
|
72
72
|
the most reliable channel (see `rigor docs install`, or
|
|
73
|
-
[Installing Rigor](
|
|
73
|
+
[Installing Rigor](../../docs/install.md)
|
|
74
74
|
on the web). Do **not** add `rigortype` to the project's `Gemfile` — it
|
|
75
75
|
is a tool, not a library.
|
|
76
76
|
|
|
@@ -14,7 +14,7 @@ When a project adds methods to existing classes in its own files — the
|
|
|
14
14
|
classic `lib/core_ext/*.rb` `class String; def squish; …; end` pattern —
|
|
15
15
|
Rigor does not see them unless told to, so every call to the added method
|
|
16
16
|
fires `call.undefined-method` (or `call.unresolved-toplevel` for a
|
|
17
|
-
top-level helper). `pre_eval:` ([ADR-17](
|
|
17
|
+
top-level helper). `pre_eval:` ([ADR-17](../../docs/adr/17-monkey-patch-pre-evaluation.md))
|
|
18
18
|
fixes this: it pre-evaluates the listed project files and registers every
|
|
19
19
|
method they define with a **literal** `def` / `def self.`.
|
|
20
20
|
|
|
@@ -80,14 +80,14 @@ rigor plugin path rigor-<id> # its directory, to browse
|
|
|
80
80
|
The **authoritative** authoring surface — the one this review scores
|
|
81
81
|
against — is the internal spec, not this file:
|
|
82
82
|
|
|
83
|
-
- [`docs/internal-spec/plugin.md`](
|
|
83
|
+
- [`docs/internal-spec/plugin.md`](../../docs/internal-spec/plugin.md)
|
|
84
84
|
— manifest, `node_rule` / `node_file_context`, `dynamic_return` /
|
|
85
85
|
`narrowing_facts`, the `#diagnostic` / `#diagnostics_for` / `.suggest`
|
|
86
86
|
/ `#read_fact` author helpers, `config_schema` `{kind:, default:}`.
|
|
87
|
-
- [`docs/internal-spec/plugin-cache-producers.md`](
|
|
87
|
+
- [`docs/internal-spec/plugin-cache-producers.md`](../../docs/internal-spec/plugin-cache-producers.md)
|
|
88
88
|
— `producer` / `#cache_for` / `#producer_value` / `#producer_error`,
|
|
89
89
|
ADR-60 WD3 record-and-validate.
|
|
90
|
-
- [`docs/internal-spec/plugin-trust.md`](
|
|
90
|
+
- [`docs/internal-spec/plugin-trust.md`](../../docs/internal-spec/plugin-trust.md)
|
|
91
91
|
— `TrustPolicy` / `IoBoundary`.
|
|
92
92
|
|
|
93
93
|
When the checklist below and the spec disagree, **the spec binds** —
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rigortype
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rigor contributors
|
|
@@ -422,6 +422,7 @@ files:
|
|
|
422
422
|
- lib/rigor/analysis/dependency_source_inference/return_type_heuristic.rb
|
|
423
423
|
- lib/rigor/analysis/dependency_source_inference/walker.rb
|
|
424
424
|
- lib/rigor/analysis/diagnostic.rb
|
|
425
|
+
- lib/rigor/analysis/effects_cache_probe.rb
|
|
425
426
|
- lib/rigor/analysis/erb_template_detector.rb
|
|
426
427
|
- lib/rigor/analysis/fact_store.rb
|
|
427
428
|
- lib/rigor/analysis/incremental.rb
|
|
@@ -433,6 +434,7 @@ files:
|
|
|
433
434
|
- lib/rigor/analysis/reachability/plugin_roots.rb
|
|
434
435
|
- lib/rigor/analysis/reachability/project_files.rb
|
|
435
436
|
- lib/rigor/analysis/reachability/scan.rb
|
|
437
|
+
- lib/rigor/analysis/reachability/scan_cache.rb
|
|
436
438
|
- lib/rigor/analysis/reachability/signature_scan.rb
|
|
437
439
|
- lib/rigor/analysis/result.rb
|
|
438
440
|
- lib/rigor/analysis/rule_catalog.rb
|
|
@@ -488,6 +490,7 @@ files:
|
|
|
488
490
|
- lib/rigor/cli/coverage_scan.rb
|
|
489
491
|
- lib/rigor/cli/diagnostic_formats.rb
|
|
490
492
|
- lib/rigor/cli/diff_command.rb
|
|
493
|
+
- lib/rigor/cli/doc_links.rb
|
|
491
494
|
- lib/rigor/cli/docs_command.rb
|
|
492
495
|
- lib/rigor/cli/doctor_command.rb
|
|
493
496
|
- lib/rigor/cli/effects_command.rb
|
|
@@ -540,6 +543,7 @@ files:
|
|
|
540
543
|
- lib/rigor/effects/catalog.rb
|
|
541
544
|
- lib/rigor/effects/collector.rb
|
|
542
545
|
- lib/rigor/effects/config_envelopes.rb
|
|
546
|
+
- lib/rigor/effects/definition_lines.rb
|
|
543
547
|
- lib/rigor/effects/discharge.rb
|
|
544
548
|
- lib/rigor/effects/effect_table.rb
|
|
545
549
|
- lib/rigor/effects/entry_points.rb
|