Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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