Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ cargo run -p no-mistakes -- dependents src/utils.mts --format paths
- [Node/N-API guide](docs/node-api.md)
- [Configuration](docs/configuration/README.md)
- [Graph edge types](docs/graph-edges.md)
- [Feature parity](docs/feature-parity.md)
- [no-mistakes rules](docs/rules/README.md)
- [ESLint rules](docs/eslint-rules/README.md)
- [Agent guide](docs/agent-guide.md)
Expand Down
31 changes: 31 additions & 0 deletions crates/no-mistakes/tests/docs_coverage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -419,4 +419,35 @@ fn review_found_doc_regressions_stay_fixed() {
assert!(limits.contains("spawn(scriptName, [])"));
assert!(limits.contains(r#"page.locator('[data-testid="submit"]').click()"#));
assert!(limits.contains(r#"page.locator(`[data-testid="${id}"]`).click()"#));

let feature_parity = read_root("docs/feature-parity.md");
for needle in [
"Python",
"Django",
"Celery",
"Go",
"Asynq",
"Kafka",
"Rust",
"Ruby on Rails",
"PHP",
"Counterexample:",
"not started",
] {
assert!(
feature_parity.contains(needle),
"docs/feature-parity.md must document `{needle}`"
);
}
let docs_index = read_root("docs/README.md");
assert!(
docs_index.contains("(feature-parity.md)"),
"docs/README.md must link feature-parity.md"
);
Comment thread
jonathanong marked this conversation as resolved.

let root_readme = read_root("README.md");
assert!(
root_readme.contains("(docs/feature-parity.md)"),
"README.md must link docs/feature-parity.md"
);
}
14 changes: 14 additions & 0 deletions cspell.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,14 @@ ignorePaths:
- "test-cases/**"
- "crates/**/target/**"
words:
- Actix
- arm64
- asynq
- Basenames
- callees
- callsite
- callsites
- constantize
- cooldown
- dedup
- dtolnay
Expand All @@ -26,13 +29,16 @@ words:
- eprintln
- errexit
- extglob
- frontends
- funcs
- gitignore
- glibc
- globset
- greppable
- guardrailsrc
- invalidators
- jsonc
- Laravel
- linecount
- libuv
- lockfiles
Expand All @@ -44,8 +50,12 @@ words:
- Ong
- oxlint
- PCRE
- phpunit
- pipefail
- Pipfile
- pnpm
- pytest
- pyproject
- refspec
- refspecs
- redirections
Expand All @@ -54,13 +64,17 @@ words:
- sgconfig
- shellcheck
- shasum
- Sidekiq
- Symfony
- subdirs
- subpaths
- tokei
- tsconfig
- ungated
- urlpatterns
- unmodeled
- valkey
- vitest
- walkdir
- worktree
- zeitwerk
4 changes: 4 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ request structured output, understand config, and keep source code analyzable.
| Keep file-local code analyzable | [ESLint rules](eslint-rules/README.md) |
| Understand static-analysis limits | [AST analysis behavior](ast-analysis.md) |
| Use the tool as an AI agent | [Agent guide](agent-guide.md) |
| Compare language and framework coverage | [Feature parity](feature-parity.md) |

## Reference

Expand All @@ -25,6 +26,9 @@ request structured output, understand config, and keep source code analyzable.
would bypass the one-pass gateways.
- [Graph edges](graph-edges.md) lists dependency edge kinds with fixture-backed
examples, counterexamples, relationship filters, and caveats.
- [Feature parity](feature-parity.md) is the contract for Python, Django,
Celery, Go, Asynq, Kafka, Rust, Rails, and PHP support relative to the TS/JS
surface.
- [Test planning](test-plan.md) explains configured test selection in more
depth.
- [Legacy CLI reference](cli-reference.md) and [legacy ESLint reference](eslint-plugin.md)
Expand Down
Loading
Loading