https://github.com/jonathanong/no-mistakes
https://github.com/jonathanong/no-mistakes
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jonathanong/no-mistakes
- Owner: jonathanong
- License: mit
- Created: 2026-05-11T12:04:24.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-31T08:01:36.000Z (about 2 months ago)
- Last Synced: 2026-05-31T08:05:51.296Z (about 2 months ago)
- Language: Rust
- Size: 3.01 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# no-mistakes
Deterministic AST-based codebase intelligence for AI agents.
`no-mistakes` answers structural questions about TypeScript, JavaScript,
React, Next.js, Playwright, queue, server-route, and Rust repository code
without running the application or calling an AI model. It is built for agents
that need small, reliable answers they can feed into follow-up edits and tests.
## Agent Workflows
| Agent question | Use |
| --- | --- |
| What does this file import? | `no-mistakes dependencies --format json` |
| What can this change affect? | `no-mistakes dependents --format paths` |
| Who uses this export? | `no-mistakes dependents #Symbol --format json` |
| What does this module export/import? | `no-mistakes symbols --include both --format json` |
| Which tests should run? | `no-mistakes tests plan --format json` |
| Why was a test selected? | `no-mistakes tests why --plan plan.json` |
| Which Playwright tests cover this page? | `no-mistakes playwright related --json` |
| Which queue/server files are connected? | `no-mistakes queues related --json`; `no-mistakes server related --json` |
| Are configured repository rules passing? | `no-mistakes check --format json` |
Use `--format json` when an agent will parse the answer, `--format paths` when
the output feeds another shell command, and `--timings` when explaining analysis
cost. For repeated in-process queries, prefer the async Node API so one agent
workflow can avoid subprocess overhead.
## Install
```sh
npm install --save-dev no-mistakes eslint-plugin-no-mistakes
```
Local development from this repository:
```sh
cargo run -p no-mistakes -- dependents src/utils.mts --format paths
```
## Documentation
- [Documentation index](docs/README.md)
- [CLI commands](docs/cli/README.md)
- [Node/N-API guide](docs/node-api.md)
- [Configuration](docs/configuration/README.md)
- [Graph edge types](docs/graph-edges.md)
- [no-mistakes rules](docs/rules/README.md)
- [ESLint rules](docs/eslint-rules/README.md)
- [Agent guide](docs/agent-guide.md)
- [AST analysis behavior](docs/ast-analysis.md)
## Design Constraints
- Local and deterministic: no services, databases, remote AI calls, or
persistent filesystem caches.
- One pass per invocation: discover files once, parse TS/JS once for requested
facts, and reuse shared fact maps across checks.
- Programmatic parity: stable CLI capabilities also expose async N-API
functions for Node callers.
- Explicit configuration: route roots, queue factories, test projects, and
global fallback behavior are opt-in configuration, not inferred conventions.
## Link Lint
```sh
lychee --no-progress --exclude-path '^fixtures/' README.md 'docs/**/*.md' 'skills/**/*.md' 'packages/*/README.md' 'crates/*/README.md' CLAUDE.md
```