Skip to content
CAI
Software that uses CAICheck a score

chmln/sd

60.5

Adequate · 29 September 2026

1.3k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a command-line search-and-replace tool implemented in Rust, designed for efficient text processing. It features line-by-line streaming to minimize memory usage, supports in-place file editing, and allows reading from or writing to standard input. The project is structured as a Cargo workspace with automated generation of shell completions and documentation.

Features

Automated generation of shell completions and man pages

The xtask tool now includes a 'gen' command that automatically generates shell completion scripts and a man page for the sd CLI. This change moves the responsibility of creating these static assets from manual processes to an automated build step, ensuring that documentation and shell integrations are always up-to-date with the current command-line interface definitions.

xtask · high confidence

Introduce sd CLI with line-by-line streaming and in-place editing

The sd-cli package now provides a command-line tool for search-and-replace operations. It defaults to line-by-line processing for memory efficiency, supports in-place file modification, and allows reading from or writing to standard input. Users can control behavior via flags such as \-p\ for preview mode, \-F\ for literal string matching, and \-A\ to process files across line boundaries.

sd-cli · high confidence

Behavioural changes

Rewrite of core CLI architecture and replacement engine

The application's internal structure has been completely overhauled to improve efficiency and maintainability. The previous monolithic modules for application logic, error handling, and input streaming (app.rs, error.rs, input.rs, main.rs) have been removed and replaced with a new, modular implementation. This change introduces a more efficient pipeline for multi-file replacements, switches the CLI argument parsing library from structopt to clap v4, and adopts a custom error type for better error management. Users will experience these changes as a more robust and performant replacement tool, although the specific command-line interface details are defined in other parts of the codebase.

src · high confidence

Switch to line-by-line processing by default to reduce memory usage

The tool now processes files line-by-line by default, streaming content without loading entire files into memory. This change improves performance and reduces memory consumption when handling large files, while maintaining the same replacement logic and output behavior for users.

sd · high confidence

Dependencies

Migration to Rust 2024 edition and workspace restructuring

The project has been restructured into a Cargo workspace containing the core library (sd), the CLI binary (sd-cli), and a build task runner (xtask). This change upgrades the Rust edition to 2024 and bumps the minimum supported Rust version to 1.86.0. Key dependencies have been updated, including the CLI argument parser (clap) to version 4.4.6 and the regex engine to 1.10.2, while the package name and repository URLs have been updated to reflect the 'sd' project identity.

(dependencies) · high confidence

Housekeeping

Updated shell completions and man page for sd 1.0.0

The generated assets in the gen directory have been updated to reflect the sd 1.0.0 release. This includes new shell completion scripts for Zsh, PowerShell, Bash, Elvish, and Fish, as well as a new man page (sd.1). These files document the current command-line interface, including options such as --preview, --fixed-strings, --max-replacements, --flags, and --across, ensuring that users receive accurate tab-completion and documentation for the tool's features.

gen · 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

Score

  • CAI 64 → 60 (-3.8)
  • Rubric changed (rubric-2026.09.9 → rubric-2026.09.17) — scores are not directly comparable.

Lenses

  • Code Health 96 → 96 (+0.0)
  • Architecture 100 → 98 (-2.4)
  • Maturity 56 → 56 (+0.0)
  • Readiness 65 → 50 (-15.1)
  • Security 60 → 73 (+13.3)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Off-boarding risk: anonymized user #1

New (5)

  • Off the main sequence: sd
  • Off-boarding risk: anonymized user #1
  • Outdated: clap_complete
  • Outdated: rayon
  • Outdated: regex

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

chmln/sd 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 29 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 44febdf86343c653255ae4f20f5e1882dad6be17 — the exact code this score is about.
  • Scored under rubric-2026.09.17 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-705631bb727e.