Repository: JoshuaKGoldberg/create-typescript-app (ts)

Issue:
📝 Documentation: Mention both `--add-*` and `--exclude-*` CLI flags in Blocks.md
### Documentation Report Checklist

- [x] I have pulled the latest `main` branch of the repository.
- [x] I have [searched for related issues](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aissue) and found none that matched my issue.

### Overview

Stratum now generates both `--add-*` and `--exclude-*` options for Blocks. But `Blocks.md` still only mentions the latter:

https://github.com/JoshuaKGoldberg/create-typescript-app/blob/47acb5f6d09d1e9ca2e1378e0dba50902c1ef6d7/docs/Blocks.md?plain=1#L8-L11

### Additional Info

🎁 

Pull request description:
docs: also mention --add-* CLI flags
## PR Checklist

- [x] Addresses an existing open issue: fixes #2049
- [x] That issue was marked as [`status: accepting prs`](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- [x] Steps in [CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CONTRIBUTING.md) were taken

## Overview

Throws in a nice little example for good measure.

🎁 

Patch:
diff --git a/docs/Blocks.md b/docs/Blocks.md
index fe0e7a7..9cc5254 100644
--- a/docs/Blocks.md
+++ b/docs/Blocks.md
@@ -5,53 +5,59 @@ Each can be individually turned off or on.
 
 This table summarizes each block and which base levels they're included in:
 
-| Block                        | Exclusion Flag                           | Minimal | Common | Everything |
-| ---------------------------- | ---------------------------------------- | ------- | ------ | ---------- |
-| AllContributors              | `--exclude-allcontributors`              |         | ✅     | 💯         |
-| Are The Types Wrong          | `--exclude-are-the-types-wrong`          |         |        |            |
-| Contributing Docs            | `--exclude-contributing-docs`            | ✔️      | ✅     | 💯         |
-| Contributor Covenant         | `--exclude-contributor-covenant`         | ✔️      | ✅     | 💯         |
-| CSpell                       | `--exclude-cspell`                       |         |        | 💯         |
-| Codecov                      | `--exclude-codecov`                      |         | ✅     | 💯         |
-| Development Docs             | `--exclude-development-docs`             | ✔️      | ✅     | 💯         |
-| ESLint                       | `--exclude-eslint`                       | ✔️      | ✅     | 💯         |
-| ESLint Comments Plugin       | `--exclude-eslint-comments-plugin`       |         |        | 💯         |
-| ESLint JSDoc Plugin          | `--exclude-eslint-jsdoc-plugin`          |         |        | 💯         |
-| ESLint JSONC Plugin          | `--exclude-eslint-jsonc-plugin`          |         |        | 💯         |
-| ESLint Markdown Plugin       | `--exclude-eslint-markdown-plugin`       |         |        | 💯         |
-| ESLint More Styling          | `--exclude-eslint-more-styling`          |         |        | 💯         |
-| ESLint Node Plugin           | `--exclude-eslint-node-plugin`           |         |        | 💯         |
-| ESLint package.json Plugin   | `--exclude-eslint-package-json-plugin`   |         |        | 💯         |
-| ESLint Perfectionist Plugin  | `--exclude-eslint-perfectionist-plugin`  |         |        | 💯         |
-| ESLint Regexp Plugin         | `--exclude-eslint-regexp-plugin`         |         |        | 💯         |
-| ESLint YML Plugin            | `--exclude-eslint-yml-plugin`            |         |        | 💯         |
-| Funding                      | `--exclude-funding`                      |         | ✅     | 💯         |
-| GitHub Actions CI            | `--exclude-github-actions-ci`            | ✔️      | ✅     | 💯         |
-| GitHub Issue Templates       | `--exclude-github-issue-templates`       | ✔️      | ✅     | 💯         |
-| GitHub PR Template           | `--exclude-github-pr-template`           | ✔️      | ✅     | 💯         |
-| Gitignore                    | `--exclude-gitignore`                    | ✔️      | ✅     | 💯         |
-| Knip                         | `--exclude-knip`                         |         |        | 💯         |
-| Main                         | `--exclude-main`                         | ✔️      | ✅     | 💯         |
-| Markdownlint                 | `--exclude-markdownlint`                 |         |        | 💯         |
-| MIT License                  | `--exclude-mit-license`                  | ✔️      | ✅     | 💯         |
-| ncc                          | `--exclude-ncc`                          |         |        |            |
-| nvmrc                        | `--exclude-nvmrc`                        |         |        | 💯         |
-| Package JSON                 | `--exclude-package-json`                 | ✔️      | ✅     | 💯         |
-| pnpm Dedupe                  | `--exclude-pnpm-dedupe`                  |         |        | 💯         |
-| PR Compliance                | `--exclude-pr-compliance`                |         |        | 💯         |
-| Prettier                     | `--exclude-prettier`                     | ✔️      | ✅     | 💯         |
-| Prettier Plugin Curly        | `--exclude-prettier-plugin-curly`        |         |        | 💯         |
-| Prettier Plugin Package JSON | `--exclude-prettier-plugin-package-json` |         |        | 💯         |
-| Prettier Plugin Sh           | `--exclude-prettier-plugin-sh`           |         |        | 💯         |
-| README.md                    | `--exclude-readme-md`                    | ✔️      | ✅     | 💯         |
-| release-it                   | `--exclude-release-it`                   |         | ✅     | 💯         |
-| Renovate                     | `--exclude-renovate`                     |         |        | 💯         |
-| Security Docs                | `--exclude-security-docs`                | ✔️      | ✅     | 💯         |
-| Templated With               | `--exclude-templated-with`               | ✔️      | ✅     | 💯         |
-| TSup                         | `--exclude-tsup`                         | ✔️      | ✅     | 💯         |
-| TypeScript                   | `--exclude-typescript`                   | ✔️      | ✅     | 💯         |
-| Vitest                       | `--exclude-vitest`                       |         | ✅     | 💯         |
-| VS Code                      | `--exclude-vs-code`                      |         |        | 💯         |
+| Block                        | Flags                                                                          | Minimal | Common | Everything |
+| ---------------------------- | ------------------------------------------------------------------------------ | ------- | ------ | ---------- |
+| AllContributors              | `--add-allcontributors`, `--exclude-allcontributors`                           |         | ✅     | 💯         |
+| Are The Types Wrong          | `--add-are-the-types-wrong`, `--exclude-are-the-types-wrong`                   |         |        |            |
+| Contributing Docs            | `--add-contributing-docs`, `--exclude-contributing-docs`                       | ✔️      | ✅     | 💯         |
+| Contributor Covenant         | `--add-contributor-covenant`, `--exclude-contributor-covenant`                 | ✔️      | ✅     | 💯         |
+| CSpell                       | `--add-cspell`, `--exclude-cspell`                                             |         |        | 💯         |
+| Codecov                      | `--add-codecov`, `--exclude-codecov`                                           |         | ✅     | 💯         |
+| Development Docs             | `--add-development-docs`, `--exclude-development-docs`                         | ✔️      | ✅     | 💯         |
+| ESLint                       | `--add-eslint`, `--exclude-eslint`                                             | ✔️      | ✅     | 💯         |
+| ESLint Comments Plugin       | `--add-eslint-comments-plugin`, `--exclude-eslint-comments-plugin`             |         |        | 💯         |
+| ESLint JSDoc Plugin          | `--add-eslint-jsdoc-plugin`, `--exclude-eslint-jsdoc-plugin`                   |         |        | 💯         |
+| ESLint JSONC Plugin          | `--add-eslint-jsonc-plugin`, `--exclude-eslint-jsonc-plugin`                   |         |        | 💯         |
+| ESLint Markdown Plugin       | `--add-eslint-markdown-plugin`, `--exclude-eslint-markdown-plugin`             |         |        | 💯         |
+| ESLint More Styling          | `--add-eslint-more-styling`, `--exclude-eslint-more-styling`                   |         |        | 💯         |
+| ESLint Node Plugin           | `--add-eslint-node-plugin`, `--exclude-eslint-node-plugin`                     |         |        | 💯         |
+| ESLint package.json Plugin   | `--add-eslint-package-json-plugin`, `--exclude-eslint-package-json-plugin`     |         |        | 💯         |
+| ESLint Perfectionist Plugin  | `--add-eslint-perfectionist-plugin`, `--exclude-eslint-perfectionist-plugin`   |         |        | 💯         |
+| ESLint Regexp Plugin         | `--add-eslint-regexp-plugin`, `--exclude-eslint-regexp-plugin`                 |         |        | 💯         |
+| ESLint YML Plugin            | `--add-eslint-yml-plugin`, `--exclude-eslint-yml-plugin`                       |         |        | 💯         |
+| Funding                      | `--add-funding`, `--exclude-funding`                                           |         | ✅     | 💯         |
+| GitHub Actions CI            | `--add-github-actions-ci`, `--exclude-github-actions-ci`                       | ✔️      | ✅     | 💯         |
+| GitHub Issue Templates       | `--add-github-issue-templates`, `--exclude-github-issue-templates`             | ✔️      | ✅     | 💯         |
+| GitHub PR Template           | `--add-github-pr-template`, `--exclude-github-pr-template`                     | ✔️      | ✅     | 💯         |
+| Gitignore                    | `--add-gitignore`, `--exclude-gitignore`                                       | ✔️      | ✅     | 💯         |
+| Knip                         | `--add-knip`, `--exclude-knip`                                                 |         |        | 💯         |
+| Main                         | `--add-main`, `--exclude-main`                                                 | ✔️      | ✅     | 💯         |
+| Markdownlint                 | `--add-markdownlint`, `--exclude-markdownlint`                                 |         |        | 💯         |
+| MIT License                  | `--add-mit-license`, `--exclude-mit-license`                                   | ✔️      | ✅     | 💯         |
+| ncc                          | `--add-ncc`, `--exclude-ncc`                                                   |         |        |            |
+| nvmrc                        | `--add-nvmrc`, `--exclude-nvmrc`                                               |         |        | 💯         |
+| Package JSON                 | `--add-package-json`, `--exclude-package-json`                                 | ✔️      | ✅     | 💯         |
+| pnpm Dedupe                  | `--add-pnpm-dedupe`, `--exclude-pnpm-dedupe`                                   |         |        | 💯         |
+| PR Compliance                | `--add-pr-compliance`, `--exclude-pr-compliance`                               |         |        | 💯         |
+| Prettier                     | `--add-prettier`, `--exclude-prettier`                                         | ✔️      | ✅     | 💯         |
+| Prettier Plugin Curly        | `--add-prettier-plugin-curly`, `--exclude-prettier-plugin-curly`               |         |        | 💯         |
+| Prettier Plugin Package JSON | `--add-prettier-plugin-package-json`, `--exclude-prettier-plugin-package-json` |         |        | 💯         |
+| Prettier Plugin Sh           | `--add-prettier-plugin-sh`, `--exclude-prettier-plugin-sh`                     |         |        | 💯         |
+| README.md                    | `--add-readme-md`, `--exclude-readme-md`                                       | ✔️      | ✅     | 💯         |
+| release-it                   | `--add-release-it`, `--exclude-release-it`                                     |         | ✅     | 💯         |
+| Renovate                     | `--add-renovate`, `--exclude-renovate`                                         |         |        | 💯         |
+| Security Docs                | `--add-security-docs`, `--exclude-security-docs`                               | ✔️      | ✅     | 💯         |
+| Templated With               | `--add-templated-with`, `--exclude-templated-with`                             | ✔️      | ✅     | 💯         |
+| TSup                         | `--add-tsup`, `--exclude-tsup`                                                 | ✔️      | ✅     | 💯         |
+| TypeScript                   | `--add-typescript`, `--exclude-typescript`                                     | ✔️      | ✅     | 💯         |
+| Vitest                       | `--add-vitest`, `--exclude-vitest`                                             |         | ✅     | 💯         |
+| VS Code                      | `--add-vs-code`, `--exclude-vs-code`                                           |         |        | 💯         |
+
+For example, this uses ncc instead of the default tsup builder:
+
+```shell
+npx create-typescript-app --add-ncc --exclude-tsup
+```
 
 See also [CLI](./CLI.md) for customizing templated repositories when running `npx create-typescript-app`.
 


Test patch:
diff --git a/src/docsBlocks.test.ts b/src/docsBlocks.test.ts
index b94230f..d28aa0c 100644
--- a/src/docsBlocks.test.ts
+++ b/src/docsBlocks.test.ts
@@ -18,7 +18,7 @@ const expectedLines = await createExpectedLines();
 // you'll need to add a row like:
 //
 // ```md
-// | Example | `--exclude-example` | | ✅ | 💯 |
+// | Example | `--add-example`, `--exclude-example` | | ✅ | 💯 |
 // ```
 //
 // Rows are kept sorted by alphabetical order of name.
@@ -51,8 +51,8 @@ async function createActualLines() {
 
 async function createExpectedLines() {
 	const lines = [
-		"| Block | Exclusion Flag | Minimal | Common | Everything |",
-		"| ----- | -------------- | ------- | ------ | ---------- |",
+		"| Block | Flags | Minimal | Common | Everything |",
+		"| ----- | ----- | ------- | ------ | ---------- |",
 	];
 
 	for (const block of Object.values(blocks) as Block[]) {
@@ -62,7 +62,7 @@ async function createExpectedLines() {
 		lines.push(
 			[
 				name,
-				`\`--exclude-${name.replaceAll(/\W+/g, "-").toLowerCase()}\``,
+				`${createFlag("add", name)}, ${createFlag("exclude", name)}`,
 				presets.minimal.blocks.includes(block) ? "✔️" : " ",
 				presets.common.blocks.includes(block) ? "✅" : " ",
 				presets.everything.blocks.includes(block) ? "💯" : " ",
@@ -79,6 +79,10 @@ async function createExpectedLines() {
 	return splitTable(expectedTable);
 }
 
+function createFlag(prefix: string, name: string) {
+	return `\`--${prefix}-${name.replaceAll(/\W+/g, "-").toLowerCase()}\``;
+}
+
 function splitTable(table: string) {
 	return table
 		.split("\n")