rspec/rspec-rails
77.8
Strong · 26 September 2026
5k
lines of production code
Ruby
primary language
4
measurements over time
What this system is
This system is the RSpec Rails integration library, which provides specialized testing tools for Ruby on Rails applications. It enables developers to write and run specs for core Rails components—including controllers, models, views, mailers, jobs, and Action Cable channels—using dedicated DSLs, matchers, and generators. The library also handles the scaffolding of test files, automatic configuration of testing environments, and integration with Capybara for feature and system testing.
How it got here
2009–2010 — Rails 8+ integration and generator overhaul
33 changes.
This period focused on modernizing RSpec Rails to support Rails 8+ and Ruby 3.0+, introducing a centralized entry point and a new railtie for seamless integration. The work included a comprehensive overhaul of the generator system to provide granular control over spec types and improved defaults, alongside the addition of specialized example groups and matchers for modern Rails features like ActionCable and ActionMailbox.
2011–2014 — Generator expansion and Capybara integration
21 changes.
This period focused on expanding RSpec's generator capabilities to support new Rails components like ActiveJob and feature specs, while introducing automatic Capybara integration for browser-based testing. The work also included significant updates to test infrastructure, CI scripts, and documentation generation to improve developer workflow and test reliability.
2015–2024 — Rails 8 and Action Cable support
16 changes.
This period focused on extending RSpec Rails to support Rails 8 features, including new generators for authentication, generators, mailboxes, and Action Cable channels. It also introduced dedicated matchers for testing Action Cable broadcasts and streams, alongside comprehensive test coverage and documentation for these new capabilities.
Features
Add RSpec generator for ActionMailbox mailboxes
Users can now generate RSpec test files for ActionMailbox mailboxes using the RSpec generator. This adds a new \mailbox\_generator\ and its corresponding ERB template, which creates a spec file in the \mailboxes\ directory with a pending example for the specified mailbox class.
lib/generators/rspec/mailbox · high confidence
Add RSpec request spec generator
Users can now generate request specs for their controllers using the new \rspec:request\ generator. This adds a dedicated generator class and template that create a basic request spec file (e.g., \requests/controller\_name\_spec.rb\) with a default GET request example, configurable via the \--request-specs\ option.
lib/generators/rspec/request, lib/generators/rspec/system · high confidence
Add RSpec-specific styling to generated documentation
The HTML documentation generator now includes a dedicated stylesheet for RSpec content. This change adds a new CSS file (\rspec.css\) that styles code blocks and deprecation notices with specific background colors, and updates the template setup to ensure this stylesheet is loaded when generating documentation.
yard · high confidence
Add feature spec generator with singularization option
A new generator for creating feature specs has been added to the RSpec tooling. Users can now generate feature spec files using the standard generator command. The generator includes a \--singularize\ flag that, when enabled, produces a singularized filename for the generated spec (e.g., \user\_spec.rb\ instead of \users\_spec.rb\) and uses a singular template, providing more control over naming conventions for feature tests.
lib/generators/rspec/feature · high confidence
Add generator for ActionCable channel specs
Users can now generate RSpec test files for ActionCable channels using the new channel spec generator. Running the generator creates a spec file (e.g., \channels/my\_channel\_spec.rb\) with a basic RSpec structure for the corresponding channel class, including a pending example to guide further testing.
lib/generators/rspec/channel · high confidence
Add generator for RSpec generator specs
Users can now generate RSpec generator specs using the \rails generate rspec:generator\ command. This new generator creates a spec file for the generated generator class, with the \--generator-specs\ option enabled by default to ensure specs are included in the output.
lib/generators/rspec/generator · high confidence
Added RSpec generator for ActiveJob specs
Users can now generate RSpec test files for ActiveJob classes using the RSpec generator. This new generator creates a spec file (e.g., \jobs/my\_job\_spec.rb\) with a basic structure including module namespacing and a placeholder example, allowing for immediate testing of job behavior.
lib/generators/rspec/job · high confidence
Added Rails 8 authentication generator for RSpec
A new generator has been added to create RSpec tests and fixtures for a User model, specifically tailored for Rails 8. When invoked, it generates a model spec file (user\_spec.rb) and, if fixture replacement is not enabled, a users.yml fixture file containing sample data with hashed passwords using BCrypt.
lib/generators/rspec/authentication · high confidence
Added benchmark for block invocation performance
A new benchmark script has been added to the benchmarks directory to measure the performance differences between using \yield\, capturing a block and yielding, and capturing a block and calling it. This benchmark helps evaluate the overhead of block handling in RSpec's routing and before-hook execution, providing data on how these methods scale with the number of invocations.
benchmarks · high confidence
Adds step definitions for conditional feature testing
A new step definition file provides helpers to conditionally skip tests when specific Rails components or versions are not present. Users can now write feature tests that automatically skip if Active Job, Action Cable, or Action Mailbox are unavailable, or if the application is running a version of Rails earlier than 8.0, ensuring test suites remain robust across different environments and dependency configurations.
_features/step\definitions · high confidence
Documentation for new and existing matchers
The \features/matchers\ directory now includes comprehensive Cucumber feature files documenting the usage of several matchers. New documentation covers \have\_been\_enqueued\ and \have\_been\_performed\ for verifying ActiveJob history, \have\_broadcasted\_to\ for ActionCable streams, \have\_stream\_from\ and \have\_stream\_for\ for channel subscriptions, and \send\_email\ for immediate mailer deliveries. Existing matchers \have\_enqueued\_job\, \have\_enqueued\_mail\, \have\_http\_status\, \have\_performed\_job\, \redirect\_to\, \render\_template\, \be\_a\_new\, and \match\_array\ (for ActiveRecord::Relation) also have updated or newly added feature specifications detailing their scenarios and aliases.
features/matchers · high confidence
Introduce in-memory model support for the no-ActiveRecord example app
The no-ActiveRecord example app now includes a functional in-memory model implementation (InMemory::Model) that provides ActiveRecord-like persistence using an internal array, allowing generated models to function without a database. This change adds a corresponding Rails generator to create these in-memory models, configures Zeitwerk to ignore the generator file to prevent autoload errors, and includes verification tests to ensure ActiveRecord is not loaded and that fixture file uploads work correctly within this isolated environment.
_example\_app\_generator/no\_active\record · high confidence
Introduce mailer specs with type tagging and URL helper support
This change adds documentation and feature specifications for the new mailer spec support. Users can now write mailer tests by tagging examples with \type: :mailer\, which wraps ActionMailer::TestCase behavior with RSpec expectations. The included examples demonstrate that mailer specs automatically have access to URL helpers, allowing tests to verify URL generation with or without default host configurations.
_features/mailer\specs · high confidence
Mailer generator now creates preview files when supported
The RSpec mailer generator has been updated to automatically generate a mailer preview file (e.g., \mailer\_preview.rb\) in the \mailers/previews\ directory, provided the environment supports ActionMailer::Preview. This change ensures that generated mailer specs are accompanied by the necessary preview infrastructure, improving the out-of-the-box experience for testing email delivery.
lib/generators/rspec/mailer · high confidence
New Action Cable RSpec matchers for testing broadcasts and streams
Added \have\_broadcasted\_to\ and \have\_streams\ matchers to the RSpec Rails gem, enabling users to verify that Action Cable channels broadcast messages to specific streams and to check which streams a subscription is currently active on. The \have\_broadcasted\_to\ matcher supports filtering by data payload, counting expectations (e.g., \exactly\, \at\_least\), and block-based assertions, while \have\_streams\ adapts to Rails 8.2+ by using \stream\_names\ instead of \streams\ for stream extraction.
_lib/rspec/rails/matchers/action\cable · high confidence
New and refactored RSpec Rails matchers
This release introduces several new matchers and refactors existing ones to improve testing capabilities for Rails applications. New matchers include \have\_broadcasted\_to\ for ActionCable streams, \receive\_inbound\_email\ for ActionMailbox routing, \have\_http\_status\ for checking response codes (supporting numeric, symbolic, and generic statuses), \be\_a\_new\ for verifying new model instances with optional attribute checks, \be\_new\_record\ for checking record persistence state, \be\_valid\ for model validation, \have\_enqueued\_mail\ for verifying mailer jobs, \send\_email\ for checking sent email attributes, and \have\_rendered\ (renamed from \render\_template\) for template rendering. The \route\_to\ matcher now delegates to \assert\_recognizes\ and parses query parameters using \Rack::Utils.parse\_nested\_query\. Existing ActiveJob matchers (\have\_enqueued\_job\, \have\_been\_enqueued\, etc.) have been refactored to use a new \BaseMatcher\ class, support composable matchers, and include better error messages and signature verification. The \MatchArray\ matcher has been aliased to \ContainExactly\ for RSpec 4 compatibility.
lib/rspec/rails/matchers · high confidence
New controller generator with configurable spec types
The RSpec Rails gem now includes a dedicated controller generator that allows users to customize which types of specs are generated when creating a new controller. By default, it generates request specs and view specs, but users can opt out of view specs or opt in to controller specs and routing specs using command-line flags like --no-view-specs, --controller-specs, or --routing-specs. This provides more granular control over the generated test suite structure.
lib/generators/rspec/controller, lib/generators/rspec/scaffold · high confidence
New railtie integrates RSpec with Rails 8+ stats and Action Mailer previews
The library now includes a dedicated railtie (lib/rspec-rails.rb) that automatically registers the spec directory for Rails 8+ code statistics reporting and configures Action Mailer preview paths in development environments. It also ensures RSpec generators are visible in usage docs and loads the RSpec rake tasks via the railtie instead of generating files, providing a more integrated experience for modern Rails versions.
lib · high confidence
New routing spec matchers and DSL shortcuts
Routing specs now support the \be\_routable\ matcher to verify whether a path is routable (useful for ensuring routes are absent) and the \route\_to\ matcher, which accepts a new shortcut syntax using \get(path)\ and string-based controller/action targets (e.g., \"controller\#action"\) alongside the existing verbose hash syntax. The feature also adds support for specifying custom routesets via a \routes\ block, enabling testing of isolated Rails engine routes, and provides access to named route helpers within routing specs.
_features/routing\specs · high confidence
New specialized example groups for Rails components
RSpec Rails now provides dedicated example groups for testing specific Rails features, including channels, jobs, mailboxes, and feature specs. These new modules (ChannelExampleGroup, JobExampleGroup, MailboxExampleGroup, FeatureExampleGroup) integrate with their respective Rails testing behaviors (ActionCable, ActiveJob, ActionMailbox, Capybara) and expose specific matchers and DSLs, such as \have\_streams\ for channels and \have\_been\_delivered\ for mailboxes, allowing for more structured and type-safe testing of these components.
lib/rspec/rails/example · high confidence
New view generator for RSpec
A new \rspec:install\ generator has been added to create view specs. This generator accepts action names as arguments and an optional \--template-engine\ flag to specify the view template engine (e.g., erb, slim). It creates an empty directory for the view specs and generates individual spec files for each specified action, named according to the action and template engine.
lib/generators/rspec/view · high confidence
Behavioural changes
Add RSpec model generator for namespaced models
The RSpec model generator now correctly handles namespaced models by respecting the RSpec \default\_path\ configuration and fixing the fixtures path for such models. This ensures that generated model specs and optional fixture files are placed in the correct directory structure when models are defined within namespaces, improving compatibility with modern Rails and RSpec setups.
lib/generators/rspec/model · medium confidence
Automated RSpec rake tasks and code statistics registration
The RSpec Rails integration now automatically generates Rake tasks for each spec subdirectory (e.g., spec/models, spec/features) and registers these directories with Rails' CodeStatistics. This allows users to run specs for specific types (e.g., \rake spec:models\) and view coverage statistics for them, replacing the previous manual setup or static task definitions.
lib/rspec/rails/tasks · high confidence
Automatic Capybara integration for feature, system, and view specs
The library now automatically includes Capybara's DSL and matchers into RSpec example groups based on the spec type. Feature and system specs gain access to Capybara's DSL for browser interaction, while view, helper, mailer, controller, feature, and system specs automatically receive Capybara's RSpec matchers. If neither DSL nor matchers are defined, request and controller specs fall back to including the base Capybara module, ensuring consistent integration without requiring manual configuration in user specs.
lib/rspec/rails/vendor · high confidence
Conditional addition of \`should\` syntax to ActiveRecord CollectionProxy
The \should\ and \should\_not\ matchers are now added to \ActiveRecord::Associations::CollectionProxy\ only when RSpec 4 is not in use (specifically, when the \:should\ syntax is explicitly enabled in the configuration) and ActiveRecord is defined. This prevents errors in RSpec 4 environments where monkey-patching \should\ is no longer supported, while maintaining backward compatibility for users who still rely on the \should\ syntax with older RSpec versions.
lib/rspec/rails/extensions · high confidence
Document model spec behavior and configuration options
Added documentation and feature specifications for model specs, clarifying that they act as a thin wrapper around ActiveSupport::TestCase. The new content explains how to use the \type: :model\ tag or file location inference, details the default transactional behavior (and how to explicitly enable or disable it via \use\_transactional\_examples\), and confirms support for fixtures and verified doubles with dynamic column methods.
_features/model\specs · high confidence
Documentation for controller specs behavior and features
Adds comprehensive documentation for controller specs, including an overview of their purpose as RSpec wrappers for Rails functional tests, and detailed feature files covering view isolation (stubbing by default), enabling \render\_views\ (including global configuration and nested group behavior), using anonymous controllers with base class inference, bypassing \rescue\_from\ handlers, setting request headers, testing cookies, and specifying engine routes.
_features/controller\specs · high confidence
Enable automatic generation of helper specs by default
The RSpec helper generator now includes a \--helper-specs\ option that defaults to true, ensuring that helper specs are generated automatically when invoked by Rails. This change allows users to get immediate test coverage for their view helpers without needing to manually enable the feature or pass additional flags.
lib/generators/rspec/helper · high confidence
Introduce RSpec generator base class respecting default path configuration
A new base generator class (lib/generators/rspec.rb) is introduced for RSpec generators, which now respects the RSpec \default\_path\ configuration when determining target file paths. This ensures that generated files are placed in the directory configured by the user's RSpec setup rather than a hardcoded location. Additionally, a helper class for \GeneratedAttribute\ is added to correctly map text types to textarea inputs in generated forms.
lib/generators · high confidence
Introduce centralized RSpec Rails entry point
The library now provides a single \lib/rspec/rails.rb\ entry point that automatically loads all core adapters, extensions, matchers, fixture support, and Capybara integration. This simplifies setup by allowing users to require just \rspec/rails\ to enable the full suite of Rails-specific testing capabilities, replacing the need to manually require individual component files.
lib/rspec · high confidence
Introduces new CI build and development scripts
The project adds a suite of new shell scripts to standardize the local development and continuous integration workflows. \script/bundle\ replaces the previous \bundle install --binstubs\ approach by configuring a local gem path and generating binstubs. \script/run\_build\ orchestrates the full test suite, including binstub checks, spec execution, acceptance tests, and conditional snippet and documentation coverage checks. \script/run\_rubocop\ isolates style and linting checks into a dedicated step. \script/clone\_all\_rspec\_repos\ automates cloning the monorepo components, while \script/update\_rubygems\_and\_install\_bundler\ handles environment setup with version-specific logic for Ruby 3.2+. Helper functions in \script/functions.sh\ provide utilities for CI retries, folding output, and checking documentation coverage.
script · high confidence
Isolated Cucumber test environment with Aruba and Capybara support
The Cucumber test suite now uses Aruba to run feature specs in an isolated, temporary workspace rather than against the main project directory. This ensures that generated example apps and test artifacts do not interfere with the development environment. The setup includes a custom \env.rb\ that configures Aruba with specific exit timeouts (30 seconds, or 120 for TruffleRuby) and handles bundler environment isolation. Additionally, a new \capybara.rb\ support file ensures the Capybara library is loaded only when scenarios are tagged with \@capybara\.
features/support · high confidence
New example app generator structure and verification specs
The example\_app\_generator has been restructured to include a comprehensive set of verification specs that validate the generated application's behavior. This includes tests for Active Record integration, custom renderers, fixture load order, and fixture warnings. The generator now creates a sample app with various controllers, models, scaffolds, and mailers, and runs a full suite of specs to ensure compatibility and correctness across different Rails configurations.
_example\_app\generator · high confidence
RSpec Rails 8.1.0 pre-release introduces new configuration and adapter architecture
This release (v8.1.0.pre) restructures the library's internal architecture by introducing new modules for configuration (\lib/rspec/rails/configuration.rb\), adapters (\lib/rspec/rails/adapters.rb\), and feature detection (\lib/rspec/rails/feature\_check.rb\). It adds support for new spec types including Action Cable channels, Action Mailbox, and system tests, and introduces new matchers such as \have\_http\_status\, \be\_a\_new\, and \be\_valid\. The release also updates fixture handling to support Rails 7.1's \ActiveStorage::FixtureSet\ and configures automatic spec type inference based on file location via \infer\_spec\_type\_from\_file\_location!\.
lib/rspec/rails · high confidence
Refactored rspec:install generator to delegate initialization to rspec-core
The rspec:install generator has been rewritten to rely on RSpec::Core::ProjectInitializer for generating the core spec files (spec\_helper.rb, .rspec) into a temporary directory before copying them to the application, rather than copying static template files directly. This change ensures the generated files align with the current rspec-core project structure and removes the generation of obsolete files like autotest/discover and script/rspec. The generator now also explicitly removes the 'config.warnings = true' line from spec\_helper.rb and updates the command reference from 'rspec --init' to 'rails generate rspec:install'.
lib/generators/rspec/install · high confidence
Restructured and updated RSpec Rails documentation
The documentation has been reorganized into a new directory structure with a dedicated navigation file (.nav) to improve discoverability. Key guides such as Getting Started, Generators, and Transactions have been updated to reflect current practices, including support for Rails 7.2 and the removal of legacy version-specific checks. New feature documentation has been added for file fixtures (supporting Rails 5+ and ActiveStorage) and rails stats (ensuring spec directories are found from any working directory).
features · high confidence
Standardize development environment with shared RSpec configuration files
The project now includes standardized configuration files generated from the rspec-dev monorepo to align the development environment with other RSpec projects. This adds \.rubocop.yml\ and \.rubocop\_rspec\_base.yml\ to enforce consistent code style using the shared RSpec base configuration, \.rspec\ to set default CLI flags (warnings, spec\_helper), \.yardopts\ for documentation generation, \.document\ to define public API surfaces, and \.gitignore\ to exclude build artifacts and local environment files. These changes ensure that local development, linting, and documentation builds behave consistently with the rest of the RSpec ecosystem.
(repo-wide) · high confidence
Updated mailer spec generator with preview support and modern syntax
The mailer spec generator now produces specs using the modern \expect\ syntax and requires \rails\_helper\ instead of \spec\_helper\. It also generates a new mailer preview class to allow email rendering in the browser, and includes a fixture template for mailer content. The generated spec supports module namespacing and explicitly sets the type metadata for mailers.
lib/generators/rspec/mailer/templates · high confidence
View specs now infer controller path and action from file location
View specs (files in spec/views or marked with type: :view) now automatically infer the controller path and action from the file being rendered. For example, a spec for 'widgets/new' will have controller.request.path\_parameters\[:controller\] set to 'widgets' and the action set to 'new', while partials like '\_form' will have a nil action. This allows view specs to access URL helpers and controller context without manually setting these values, making specs more concise and aligned with how Rails resolves views in production.
_features/view\specs · high confidence
Test coverage
Add RSpec feature spec templates; Add specs for Rails example group mixins; Added Action Cable channel and connection spec examples; Added Cucumber feature spec for Capybara integration; Added RSpec model spec and fixture templates; Added feature specs for generator output verification; Added feature tests for helper specs; Added feature tests for model mocking integration; Added generator specs for mailer generation; Added generator specs for scaffold request and controller templates; Added helper spec generator template; Added mailbox spec tests for email routing and processing; Added new testing snippets for specific RSpec configurations; Added request spec documentation with integration test examples; Added spec infrastructure and sanity checks; Added spec support helper for Action Mailer preview configuration; Added specs for Rails matchers; Added test coverage for RSpec Rails core components; Added test infrastructure for spec type inference and generator testing; Added tests for Action Cable broadcast and stream matchers; Added tests for controller, helper, and routing generator specs; Added tests for job spec documentation and matchers; Added tests for the ActiveJob generator; Added tests for the RSpec install generator; Added tests for the generator generator spec output; Added verification specs for example app generator behavior; Added whitespace validation tests for RSpec::Rails; New spec templates for controller, request, routing, and view specs; Updated rails\_helper.rb template for modern Rails and RSpec conventions; Updated scaffold generator templates for modern RSpec and Rails compatibility.
Dependencies
Update gemspec to require Ruby 3.0+ and Rails 7.2+, and restructure Gemfile
The gemspec now requires Ruby version 3.0.0 or higher and sets the runtime dependency for Rails components (actionpack, activesupport, railties) to version 7.2 or higher, effectively dropping support for older Rails and Ruby versions. The Gemfile has been restructured to use a centralized source (gem.coop), include specific development dependencies like yard, rubocop, and capybara, and dynamically evaluate custom and Rails-specific dependency files.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 54 → 78 (+23.9)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-1.2)
- Architecture 94 → 97 (+2.4)
- Maturity 57 → 67 (+10.1)
- Readiness 35 → 79 (+44.1)
- Security 76 → 95 (+19.1)
Resolved (12)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- LLM evaluation failed
- No exposed public API
- No tests found
- Test reliability not included
New (6)
- Duplicate intent for new record checking. be_a_new and be_new_record appear to serve the same purpose (checking if an object is a new, unsaved record). While be_a_new might take a class argument, be_new_record is the standard RSpec/Rails predicate for this state. Having both without clear domain separation (e.g., one for class-specific validation vs generic state) is confusing.
- HackComment (lib/rspec/rails/matchers/have_http_status.rb)
- Medium: security finding (details withheld)
- Orphaned files with no living knowledge
- Redundant property/method pair for state checking. persisted is exposed as a Property while persisted? is exposed as a Method. In most Ruby/ORM contexts, persisted? is the standard predicate method, and persisted is often a column attribute. Exposing both as distinct API entries creates confusion about which one to use for state checks.
- TooManyMethods: Base (lib/rspec/rails/matchers/active_job.rb)
Changes since last survey
- 21 commits — 17 feature/other, 4 fixes
By area
- (repo) — 7 commits
- (root) — 5 commits
- .github/workflows — 3 commits
- lib/rspec — 3 commits
- spec/rspec — 2 commits
- spec/generators — 1 commit
Notable commits
- fix: Fix a Thor-related issue (#2916)
- fix: Merge pull request #2909 from rspec/fix-have-streams-matcher
- fix: Merge pull request #2910 from rspec/fix-snippet-build
- fix: Merge pull request #2911 from rspec/fix-active-job-spec
- change: Assign default_url_options instead of mutating it
- change: Bump ruby/setup-ruby from 1.321.0 to 1.324.0
- change: Changelog for #2909
- change: Cleanup unused version flag
- change: Fix indentation in Changelog.md
- change: Handle change to stream_names in Rails 8.2
- change: Handle connection_class changes in Rails 8.2
- change: Handle frozen view path prefixes array on Rails main (#2915)
- change: Harden CI (#2920)
- change: Let the GlobalID test double be looked up with where
- change: Merge pull request #2907 from federico-carrocera/fede/frozen-default-url-options
- change: Merge pull request #2921 from rspec/dependabot/github_actions/ruby/setup-ruby-1.324.0
- change: Merge pull request #2922 from rspec/pin-json
- change: Pin JSON
- change: Pin actions to shas
- change: Rework spec checking for active job leaks to handle new ActiveJob::TestHelper implementation (#2919)
- …and 1 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
rspec/rspec-rails was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9ea606cf5e30c4c8278d73ff9327c07046c11f63 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-7c1cb6328e11.