Skip to main content

Skillsaw plugin that flags misspellings in agentic instruction prose

Project description

skillsaw-typos

A skillsaw plugin that flags misspellings in agentic instruction prose using the codespell known-typo dictionary.

Installation

pip install skillsaw-typos

Once installed alongside skillsaw, the typo rule runs automatically — no configuration required.

What it checks

The typo rule walks every content block in the lint tree (CLAUDE.md, AGENTS.md, skills, agents, prompts, etc.), reads prose with code fences stripped so identifiers are never flagged, and checks each word against codespell's 64,000+ known misspellings.

Fails

- All handlers should recieve validated input from the middleware.
- Keep test files and source code in seperate directories.
⚠ WARNING (typo) [CLAUDE.md:5]: Misspelling: 'recieve' → 'receive'
⚠ WARNING (typo) [CLAUDE.md:6]: Misspelling: 'seperate' → 'separate'

Passes

- All handlers should receive validated input from the middleware.
- Keep test files and source code in separate directories.

Words inside fenced code blocks are never flagged.

Autofix

skillsaw fix --rule typo

When codespell's dictionary has exactly one correction, the fix is applied automatically (SAFE). When there are multiple candidates, the fix uses the first suggestion and is marked SUGGEST — applied only with skillsaw fix --suggest.

Fixes preserve the original word's casing (lowercase, Title Case, UPPER CASE).

Accepting existing typos

To accept all currently-flagged words (e.g. when adopting the plugin on an existing repo), run:

skillsaw typos accept

This writes the flagged words to .skillsaw-typos-ignore in the repo root. The rule reads this file automatically and skips any listed words. The file is one word per line and supports # comments — commit it to version control.

Running accept again is a no-op when no new violations exist.

Configuration

In .skillsaw.yaml:

rules:
  typo:
    enabled: true           # true | false | auto
    severity: warning        # error | warning | info
    ignore-words:            # words to accept (e.g. project jargon)
      - frobnicator
      - kubectl
    extra-dictionaries:      # additional dictionary files (codespell format)
      - .skillsaw/extra-typos.txt

.skillsaw-typos-ignore

A file in the repo root listing words to skip, one per line. Generated by skillsaw typos accept or maintained manually. Lines starting with # are comments. This is the primary way to suppress false positives.

ignore-words

Additional words to skip, specified inline in .skillsaw.yaml. Useful for small lists that don't warrant a separate file.

extra-dictionaries

Paths to additional dictionary files in codespell format (word->correction). Each file is loaded on top of the built-in dictionary.

Disabling

Per-rule:

rules:
  typo:
    enabled: false

Entire plugin:

plugins:
  disable:
    - typos

Or for a single run:

skillsaw lint --no-plugins

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillsaw_typos-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillsaw_typos-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file skillsaw_typos-0.1.0.tar.gz.

File metadata

  • Download URL: skillsaw_typos-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillsaw_typos-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f86b8cfd2673ea5a16c66d27b69d29ed03b1de419201da65da95b34105d98746
MD5 a26783da5b7f84e022e918366b41b3c0
BLAKE2b-256 91a06c6b2a7f199487143e7d911568bae635bcb44388c7ccc080958d9994cb5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillsaw_typos-0.1.0.tar.gz:

Publisher: release.yml on stbenjam/skillsaw-typos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillsaw_typos-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: skillsaw_typos-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillsaw_typos-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b514c3b93b0c43e45125089457d1fbdd781cc28f018d3f1a2ad6dc683a474222
MD5 b0cf55bb7199d41a674c85635bc2dcff
BLAKE2b-256 daab1ea1e0b1a26a8fa78745653337e47f33d7fa7f91a08dd1a3d5e5593bcb6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillsaw_typos-0.1.0-py3-none-any.whl:

Publisher: release.yml on stbenjam/skillsaw-typos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page