diff --git a/packages/eslint-plugin/ROADMAP.md b/packages/eslint-plugin/ROADMAP.md
index eb0cf5e33ec4..1fce16992a9c 100644
--- a/packages/eslint-plugin/ROADMAP.md
+++ b/packages/eslint-plugin/ROADMAP.md
@@ -10,30 +10,30 @@
### TypeScript-specific
-| TSLint rule | | ESLint rule |
-| --------------------------------- | :-: | -------------------------------------------- |
-| [`adjacent-overload-signatures`] | ✅ | [`typescript/adjacent-overload-signatures`] |
-| [`ban-types`] | ✅ | [`typescript/ban-types`] |
-| [`member-access`] | ✅ | [`typescript/explicit-member-accessibility`] |
-| [`member-ordering`] | ✅ | [`typescript/member-ordering`] |
-| [`no-any`] | ✅ | [`typescript/no-explicit-any`] |
-| [`no-empty-interface`] | ✅ | [`typescript/no-empty-interface`] |
-| [`no-import-side-effect`] | 🔌 | [`import/no-unassigned-import`] |
-| [`no-inferrable-types`] | ✅ | [`typescript/no-inferrable-types`] |
-| [`no-internal-module`] | ✅ | [`typescript/prefer-namespace-keyword`] |
-| [`no-magic-numbers`] | 🌟 | [`no-magic-numbers`][no-magic-numbers] |
-| [`no-namespace`] | ✅ | [`typescript/no-namespace`] |
-| [`no-non-null-assertion`] | ✅ | [`typescript/no-non-null-assertion`] |
-| [`no-parameter-reassignment`] | ✅ | [`no-param-reassign`][no-param-reassign] |
-| [`no-reference`] | ✅ | [`typescript/no-triple-slash-reference`] |
-| [`no-unnecessary-type-assertion`] | 🛑 | N/A |
-| [`no-var-requires`] | ✅ | [`typescript/no-var-requires`] |
-| [`only-arrow-functions`] | 🔌 | [`prefer-arrow/prefer-arrow-functions`] |
-| [`prefer-for-of`] | 🛑 | N/A |
-| [`promise-function-async`] | 🛑 | N/A ([relevant plugin][plugin:promise]) |
-| [`typedef`] | 🛑 | N/A |
-| [`typedef-whitespace`] | ✅ | [`typescript/type-annotation-spacing`] |
-| [`unified-signatures`] | 🛑 | N/A |
+| TSLint rule | | ESLint rule |
+| --------------------------------- | :-: | ---------------------------------------------------- |
+| [`adjacent-overload-signatures`] | ✅ | [`@typescript-eslint/adjacent-overload-signatures`] |
+| [`ban-types`] | ✅ | [`@typescript-eslint/ban-types`] |
+| [`member-access`] | ✅ | [`@typescript-eslint/explicit-member-accessibility`] |
+| [`member-ordering`] | ✅ | [`@typescript-eslint/member-ordering`] |
+| [`no-any`] | ✅ | [`@typescript-eslint/no-explicit-any`] |
+| [`no-empty-interface`] | ✅ | [`@typescript-eslint/no-empty-interface`] |
+| [`no-import-side-effect`] | 🔌 | [`import/no-unassigned-import`] |
+| [`no-inferrable-types`] | ✅ | [`@typescript-eslint/no-inferrable-types`] |
+| [`no-internal-module`] | ✅ | [`@typescript-eslint/prefer-namespace-keyword`] |
+| [`no-magic-numbers`] | 🌟 | [`no-magic-numbers`][no-magic-numbers] |
+| [`no-namespace`] | ✅ | [`@typescript-eslint/no-namespace`] |
+| [`no-non-null-assertion`] | ✅ | [`@typescript-eslint/no-non-null-assertion`] |
+| [`no-parameter-reassignment`] | ✅ | [`no-param-reassign`][no-param-reassign] |
+| [`no-reference`] | ✅ | [`@typescript-eslint/no-triple-slash-reference`] |
+| [`no-unnecessary-type-assertion`] | 🛑 | N/A |
+| [`no-var-requires`] | ✅ | [`@typescript-eslint/no-var-requires`] |
+| [`only-arrow-functions`] | 🔌 | [`prefer-arrow/prefer-arrow-functions`] |
+| [`prefer-for-of`] | 🛑 | N/A |
+| [`promise-function-async`] | 🛑 | N/A ([relevant plugin][plugin:promise]) |
+| [`typedef`] | 🛑 | N/A |
+| [`typedef-whitespace`] | ✅ | [`@typescript-eslint/type-annotation-spacing`] |
+| [`unified-signatures`] | 🛑 | N/A |
### Functionality
@@ -64,9 +64,9 @@
| [`no-inferred-empty-object-type`] | 🛑 | N/A |
| [`no-invalid-template-strings`] | 🌟 | [`no-template-curly-in-string`][no-template-curly-in-string] |
| [`no-invalid-this`] | 🌟 | [`no-invalid-this`][no-invalid-this] |
-| [`no-misused-new`] | ✅ | [`typescript/no-misused-new`] |
+| [`no-misused-new`] | ✅ | [`@typescript-eslint/no-misused-new`] |
| [`no-null-keyword`] | 🔌 | [`no-null/no-null`] (doesn’t handle `null` type) |
-| [`no-object-literal-type-assertion`] | ✅ | [`typescript/no-object-literal-type-assertion`] |
+| [`no-object-literal-type-assertion`] | ✅ | [`@typescript-eslint/no-object-literal-type-assertion`] |
| [`no-return-await`] | 🌟 | [`no-return-await`][no-return-await] |
| [`no-shadowed-variable`] | 🌟 | [`no-shadow`][no-shadow] |
| [`no-sparse-arrays`] | 🌟 | [`no-sparse-arrays`][no-sparse-arrays] |
@@ -74,14 +74,14 @@
| [`no-string-throw`] | 🌟 | [`no-throw-literal`][no-throw-literal] |
| [`no-submodule-imports`] | 🌓 | [`import/no-internal-modules`] (slightly different) |
| [`no-switch-case-fall-through`] | 🌟 | [`no-fallthrough`][no-fallthrough] |
-| [`no-this-assignment`] | ✅ | [`typescript/no-this-alias`] |
+| [`no-this-assignment`] | ✅ | [`@typescript-eslint/no-this-alias`] |
| [`no-unbound-method`] | 🛑 | N/A |
-| [`no-unnecessary-class`] | ✅ | [`typescript/no-extraneous-class`] |
+| [`no-unnecessary-class`] | ✅ | [`@typescript-eslint/no-extraneous-class`] |
| [`no-unsafe-any`] | 🛑 | N/A |
| [`no-unsafe-finally`] | 🌟 | [`no-unsafe-finally`][no-unsafe-finally] |
| [`no-unused-expression`] | 🌟 | [`no-unused-expression`][no-unused-expressions] |
| [`no-unused-variable`] | 🌓 | [`no-unused-vars`][no-unused-vars] [2] |
-| [`no-use-before-declare`] | ✅ | [`typescript/no-use-before-define`] |
+| [`no-use-before-declare`] | ✅ | [`@typescript-eslint/no-use-before-define`] |
| [`no-var-keyword`] | 🌟 | [`no-var`][no-var] |
| [`no-void-expression`] | 🌟 | [`no-void`][no-void] |
| [`prefer-conditional-expression`] | 🛑 | N/A |
@@ -97,7 +97,7 @@
| [`use-isnan`] | 🌟 | [`use-isnan`][use-isnan] |
[1] The ESLint rule also supports silencing with an extra set of parens (`if ((foo = bar)) {}`)
-[2] Missing private class member support. [`typescript/no-unused-vars`] adds support for some TS-specific features.
+[2] Missing private class member support. [`@typescript-eslint/no-unused-vars`] adds support for some TS-specific features.
### Maintainability
@@ -106,7 +106,7 @@
| [`cyclomatic-complexity`] | 🌟 | [`complexity`][complexity] |
| [`deprecation`] | 🌓 | [`import/no-deprecated`] [1] |
| [`eofline`] | 🌟 | [`eol-last`][eol-last] |
-| [`indent`] | ✅ | [`typescript/indent`] or [Prettier] |
+| [`indent`] | ✅ | [`@typescript-eslint/indent`] or [Prettier] |
| [`linebreak-style`] | 🌟 | [`linebreak-style`][linebreak-style] or [Prettier] |
| [`max-classes-per-file`] | 🌟 | [`max-classes-per-file`][max-classes-per-file] |
| [`max-file-line-count`] | 🌟 | [`max-lines`][max-lines] |
@@ -128,30 +128,30 @@
| TSLint rule | | ESLint rule |
| ----------------------------------- | :-: | ----------------------------------------------------------------------------------- |
| [`align`] | 🛑 | N/A |
-| [`array-type`] | ✅ | [`typescript/array-type`] |
+| [`array-type`] | ✅ | [`@typescript-eslint/array-type`] |
| [`arrow-parens`] | 🌟 | [`arrow-parens`][arrow-parens] |
| [`arrow-return-shorthand`] | 🌟 | [`arrow-body-style`][arrow-body-style] |
| [`binary-expression-operand-order`] | 🌟 | [`yoda`][yoda] |
| [`callable-types`] | 🛑 | N/A |
-| [`class-name`] | ✅ | [`typescript/class-name-casing`] |
+| [`class-name`] | ✅ | [`@typescript-eslint/class-name-casing`] |
| [`comment-format`] | 🌟 | [`capitalized-comments`][capitalized-comments] & [`spaced-comment`][spaced-comment] |
| [`completed-docs`] | 🔌 | [`eslint-plugin-jsdoc`][plugin:jsdoc] |
| [`encoding`] | 🛑 | N/A |
| [`file-header`] | 🔌 | [`eslint-plugin-header`][plugin:header] or [`-file-header`][plugin:file-header] |
| [`file-name-casing`] | 🔌 | [`unicorn/filename-case`] |
| [`import-spacing`] | 🔌 | Use [Prettier] |
-| [`interface-name`] | ✅ | [`typescript/interface-name-prefix`] |
-| [`interface-over-type-literal`] | ✅ | [`typescript/prefer-interface`] |
+| [`interface-name`] | ✅ | [`@typescript-eslint/interface-name-prefix`] |
+| [`interface-over-type-literal`] | ✅ | [`@typescript-eslint/prefer-interface`] |
| [`jsdoc-format`] | 🌓 | [`valid-jsdoc`][valid-jsdoc] or [`eslint-plugin-jsdoc`][plugin:jsdoc] |
| [`match-default-export-name`] | 🛑 | N/A |
| [`newline-before-return`] | 🌟 | [`padding-line-between-statements`][padding-line-between-statements] [1] |
| [`newline-per-chained-call`] | 🌟 | [`newline-per-chained-call`][newline-per-chained-call] |
| [`new-parens`] | 🌟 | [`new-parens`][new-parens] |
-| [`no-angle-bracket-type-assertion`] | ✅ | [`typescript/no-angle-bracket-type-assertion`] |
+| [`no-angle-bracket-type-assertion`] | ✅ | [`@typescript-eslint/no-angle-bracket-type-assertion`] |
| [`no-boolean-literal-compare`] | 🛑 | N/A |
| [`no-consecutive-blank-lines`] | 🌟 | [`no-multiple-empty-lines`][no-multiple-empty-lines] |
| [`no-irregular-whitespace`] | 🌟 | [`no-irregular-whitespace`][no-irregular-whitespace] with `skipStrings: false` |
-| [`no-parameter-properties`] | ✅ | [`typescript/no-parameter-properties`] |
+| [`no-parameter-properties`] | ✅ | [`@typescript-eslint/no-parameter-properties`] |
| [`no-redundant-jsdoc`] | 🛑 | N/A ([open issue](https://github.com/gajus/eslint-plugin-jsdoc/issues/134)) |
| [`no-reference-import`] | 🛑 | N/A |
| [`no-trailing-whitespace`] | 🌟 | [`no-trailing-spaces`][no-trailing-spaces] |
@@ -175,12 +175,12 @@
| [`space-before-function-paren`] | 🌟 | [`space-before-function-paren`][space-after-function-paren] |
| [`space-within-parens`] | 🌟 | [`space-in-parens`][space-in-parens] |
| [`switch-final-break`] | 🛑 | N/A |
-| [`type-literal-delimiter`] | ✅ | [`typescript/member-delimiter-style`] |
+| [`type-literal-delimiter`] | ✅ | [`@typescript-eslint/member-delimiter-style`] |
| [`variable-name`] | 🌟 | [2] |
| [`whitespace`] | 🔌 | Use [Prettier] |
[1] Recommended config: `["error", { blankLine: "always", prev: "*", next: "return" }]`
-[2] [`camelcase`][camelcase], [`no-underscore-dangle`][no-underscore-dangle], [`id-blacklist`][id-blacklist], and/or [`id-match`]
+[2] [`camelcase`][camelcase], [`no-underscore-dangle`][no-underscore-dangle], [`id-blacklist`][id-blacklist], and/or [`id-match`][id-match]
## tslint-microsoft-contrib rules
@@ -200,10 +200,10 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
### TypeScript
-| tslint-microsoft-contrib rule | | ESLint rule |
-| ----------------------------- | :-: | -------------------------------------------------- |
-| `prefer-array-literal` | 🌓 | [`typescript/no-array-constructor`] [1] |
-| `prefer-type-cast` | 🛑 | N/A |
+| tslint-microsoft-contrib rule | | ESLint rule |
+| ----------------------------- | :-: | ---------------------------------------------------------- |
+| `prefer-array-literal` | 🌓 | [`@typescript-eslint/no-array-constructor`] [1] |
+| `prefer-type-cast` | 🛑 | N/A |
[1] ESLint rule is slightly less strict, allowing `new Array()` and `Array(2)`.
@@ -282,7 +282,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
| `no-exec-script` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
| `no-jquery-raw-elements` | 🛑 | N/A |
| `no-unsupported-browser-code` | 🔌 | [`eslint-plugin-compat`][plugin:compat] |
-| `react-this-binding-issue` | 🛑 | |
+| `react-this-binding-issue` | 🛑 | N/A |
| `react-tsx-curly-spacing` | 🔌 | [`react/jsx-curly-spacing`] |
| `react-unused-props-and-state` | 🌓 | [`react/no-unused-state`] |
@@ -557,34 +557,34 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
-[`typescript/adjacent-overload-signatures`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/adjacent-overload-signatures.md
-[`typescript/ban-types`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/ban-types.md
-[`typescript/explicit-member-accessibility`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/explicit-member-accessibility.md
-[`typescript/member-ordering`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/member-ordering.md
-[`typescript/no-explicit-any`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-explicit-any.md
-[`typescript/no-empty-interface`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-empty-interface.md
-[`typescript/no-inferrable-types`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-inferrable-types.md
-[`typescript/prefer-namespace-keyword`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/prefer-namespace-keyword.md
-[`typescript/no-namespace`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-namespace.md
-[`typescript/no-non-null-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-non-null-assertion.md
-[`typescript/no-triple-slash-reference`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-triple-slash-reference.md
-[`typescript/no-var-requires`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-var-requires.md
-[`typescript/type-annotation-spacing`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/type-annotation-spacing.md
-[`typescript/no-misused-new`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-misused-new.md
-[`typescript/no-object-literal-type-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-object-literal-type-assertion.md
-[`typescript/no-this-alias`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-this-alias.md
-[`typescript/no-extraneous-class`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-extraneous-class.md
-[`typescript/no-unused-vars`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-unused-vars.md
-[`typescript/no-use-before-define`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-use-before-define.md
-[`typescript/indent`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/indent.md
-[`typescript/array-type`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/array-type.md
-[`typescript/class-name-casing`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/class-name-casing.md
-[`typescript/interface-name-prefix`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/interface-name-prefix.md
-[`typescript/no-angle-bracket-type-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-angle-bracket-type-assertion.md
-[`typescript/no-parameter-properties`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-parameter-properties.md
-[`typescript/member-delimiter-style`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/member-delimiter-style.md
-[`typescript/prefer-interface`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/prefer-interface.md
-[`typescript/no-array-constructor`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-array-constructor.md
+[`@typescript-eslint/adjacent-overload-signatures`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/adjacent-overload-signatures.md
+[`@typescript-eslint/ban-types`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/ban-types.md
+[`@typescript-eslint/explicit-member-accessibility`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/explicit-member-accessibility.md
+[`@typescript-eslint/member-ordering`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/member-ordering.md
+[`@typescript-eslint/no-explicit-any`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-explicit-any.md
+[`@typescript-eslint/no-empty-interface`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-empty-interface.md
+[`@typescript-eslint/no-inferrable-types`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-inferrable-types.md
+[`@typescript-eslint/prefer-namespace-keyword`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/prefer-namespace-keyword.md
+[`@typescript-eslint/no-namespace`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-namespace.md
+[`@typescript-eslint/no-non-null-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-non-null-assertion.md
+[`@typescript-eslint/no-triple-slash-reference`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-triple-slash-reference.md
+[`@typescript-eslint/no-var-requires`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-var-requires.md
+[`@typescript-eslint/type-annotation-spacing`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/type-annotation-spacing.md
+[`@typescript-eslint/no-misused-new`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-misused-new.md
+[`@typescript-eslint/no-object-literal-type-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-object-literal-type-assertion.md
+[`@typescript-eslint/no-this-alias`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-this-alias.md
+[`@typescript-eslint/no-extraneous-class`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-extraneous-class.md
+[`@typescript-eslint/no-unused-vars`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-unused-vars.md
+[`@typescript-eslint/no-use-before-define`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-use-before-define.md
+[`@typescript-eslint/indent`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/indent.md
+[`@typescript-eslint/array-type`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/array-type.md
+[`@typescript-eslint/class-name-casing`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/class-name-casing.md
+[`@typescript-eslint/interface-name-prefix`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/interface-name-prefix.md
+[`@typescript-eslint/no-angle-bracket-type-assertion`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-angle-bracket-type-assertion.md
+[`@typescript-eslint/no-parameter-properties`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-parameter-properties.md
+[`@typescript-eslint/member-delimiter-style`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/member-delimiter-style.md
+[`@typescript-eslint/prefer-interface`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/prefer-interface.md
+[`@typescript-eslint/no-array-constructor`]: https://github.com/bradzacher/@typescript-eslint/eslint-plugin/blob/master/docs/rules/no-array-constructor.md