garybernhardt/selecta
66.9
Adequate · 19 September 2026
3.6k
lines of production code
Ruby
primary language
1
measurement over time
What this system is
Selecta is a standalone Ruby command-line utility that provides an interactive fuzzy-selection interface for choosing items from a list. It reads input from stdin, applies case-insensitive fuzzy matching with configurable scoring, and outputs the selected item to stdout. The system includes a test suite for its core logic and an automated script for managing releases and versioning.
Features
Automated release script for versioning and tagging
A new executable script at bin/release has been added to automate the release process. When invoked with a version number, it ensures the repository is clean, updates the VERSION constant in the 'selecta' source file, commits the change, and creates a corresponding git tag (e.g., v1.2.3).
bin · high confidence
Initial release of Selecta fuzzy selector
Introduces Selecta, a standalone fuzzy-selection tool that reads a list of choices from stdin and presents an interactive, case-insensitive fuzzy-matching UI in the terminal. Users can pipe any list (e.g., files, buffers, branches) into Selecta to quickly pick an item, which is then printed to stdout. The tool supports configurable UI height via --height, pre-populated search via -s, and standard navigation keys (Ctrl-N/Ctrl-P, Ctrl-U, Ctrl-W, Ctrl-H, Ctrl-C). It requires Ruby 1.9.3+, runs in an ANSI-compatible TTY, and exits with status 0 on selection or 1 when aborted or when no TTY is available. Documentation includes usage examples for Vim, Git, Zsh, and process selection.
(repo-wide) · high confidence
Test coverage
Added test suite for configuration, search, scoring, and rendering
Added comprehensive RSpec tests covering the application's core logic. The new specs verify that the Configuration class correctly handles command-line options (such as \--height\ and initial search queries) and sanitizes invalid UTF-8 input. Search behavior is tested, including navigation (up/down/looping), filtering, backspacing, and word deletion. The scoring algorithm is validated for word-boundary preference, case sensitivity, and match quality. Finally, the Renderer is tested to ensure it correctly displays choices, respects screen height, and highlights matching text.
spec · high confidence
Dependencies
Add Ruby dependency management with RSpec
Introduced a Gemfile and Gemfile.lock to manage Ruby dependencies, specifically adding the rspec gem (version 3.0.0) for development. Also added the selecta.gemspec file to define the project's gem specification, including metadata such as name, version, and author.
(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
Baseline
- First survey — no prior run to compare against. CAI 67.
Lenses
- Code Health 100
- Architecture 100
- Maturity 55
- Readiness 55
- Security 100
Changes since last survey
- 300 commits — 272 feature/other, 28 fixes
By area
- (root) — 238 commits
- (repo) — 35 commits
- spec/world_spec.rb — 10 commits
- spec/search_spec.rb — 7 commits
- spec/score_spec.rb — 4 commits
- spec/configuration_spec.rb — 2 commits
- spec/spec_helper.rb — 2 commits
- bin/release — 1 commit
- spec/text_spec.rb — 1 commit
Notable commits
- fix: Fix Ruby 4.0 compatibility
- fix: Fix undefined local variable or method `search'
- fix: Merge pull request #58 from untitaker/readme-fix
- fix: Revert "move up and down list with arrows (fixes #15)"
- fix: Revert "special case exact and substring matches"
- fix: add ruby version check (fixes #7)
- fix: avoid negative remaining columns (fixes #3)
- fix: don't draw past bottom of short screen (fixes #26)
- fix: don't sort options (fixes #4)
- fix: don't truncate in narrow windows (fixes #22)
- fix: expand tabs when drawing to screen (fixes #75)
- fix: fix --version, incrementing to 0.0.2
- fix: fix IndexError when scrolling off end of list (#65)
- fix: fix ZeroDivisionError when scrolling empty matches
- fix: fix array-handling regression in renderer
- fix: fix cursor at termination by printing blank lines
- fix: fix error message when ^Cing selecta in vim
- fix: fix failing spec
- fix: fix failing specs; oops
- fix: fix failures on ruby 1.9.3
- …and 280 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
garybernhardt/selecta 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 19 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 8f254747ed181c4b91f5662f4eb1859734478b54 — 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-b51f968c9b10.