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

Issue:
🐛 Bug: README.md additional contents not detected if ALL-CONTRIBUTORS-LIST:END not followed by spellchecker:enable
### Bug Report Checklist

- [x] I have tried restarting my IDE and the issue persists.
- [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.

### Expected

Some older CTA repos end their README.md contributors sections with `<!-- ALL-CONTRIBUTORS-LIST:END -->`, not `<!-- spellchecker: enable -->`. This should be detected by the logic added in #2088 -> #2090.

### Actual

https://github.com/JoshuaKGoldberg/package-json-validator/pull/178/files#r2024947759 shows that it isn't. Only `spellchecker: enable` comments are detected.

### Additional Info

🎁 

Pull request description:
fix: detect additional content after ALL-CONTRIBUTORS-LIST:END
## PR Checklist

- [x] Addresses an existing open issue: fixes #2102
- [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

🎁 

Patch:
diff --git a/src/options/readReadmeAdditional.ts b/src/options/readReadmeAdditional.ts
index 745a187..b7a485e 100644
--- a/src/options/readReadmeAdditional.ts
+++ b/src/options/readReadmeAdditional.ts
@@ -1,4 +1,6 @@
-const indicatorAfterContributors = /<!--\s*spellchecker:\s*enable\s*-->/;
+const indicatorAfterAllContributors = /<!--\s*ALL-CONTRIBUTORS-LIST:END\s*-->/;
+const indicatorAfterAllContributorsSpellCheck =
+	/<!--\s*spellchecker:\s*enable\s*-->/;
 
 const indicatorBeforeTemplatedBy =
 	/> .* This package was templated with |<!-- You can remove this notice/;
@@ -9,7 +11,9 @@ export async function readReadmeAdditional(getReadme: () => Promise<string>) {
 		return undefined;
 	}
 
-	const indexAfterContributors = indicatorAfterContributors.exec(readme);
+	const indexAfterContributors =
+		indicatorAfterAllContributorsSpellCheck.exec(readme) ??
+		indicatorAfterAllContributors.exec(readme);
 	if (!indexAfterContributors) {
 		return undefined;
 	}


Test patch:
diff --git a/src/options/readReadmeAdditional.test.ts b/src/options/readReadmeAdditional.test.ts
index 2825c25..76bc78b 100644
--- a/src/options/readReadmeAdditional.test.ts
+++ b/src/options/readReadmeAdditional.test.ts
@@ -35,16 +35,35 @@ After.
 		expect(result).toBe("After.");
 	});
 
-	it("returns all content after contributors when there is a comment template notice", async () => {
+	it("returns all content after contributors when there is a spellchecker comment template notice", async () => {
 		const getReadme = () =>
 			Promise.resolve(`# My Package
 
 Usage.
 
+<!-- ALL-CONTRIBUTORS-LIST:END -->
 <!-- spellchecker:enable -->
 
 After.
 
+<!-- You can remove this notice if you don't want it 🙂 no worries! -->
+`);
+
+		const result = await readReadmeAdditional(getReadme);
+
+		expect(result).toBe("After.");
+	});
+
+	it("returns all content after contributors when there is a contributors comment template notice", async () => {
+		const getReadme = () =>
+			Promise.resolve(`# My Package
+
+Usage.
+
+<!-- ALL-CONTRIBUTORS-LIST:END -->
+
+After.
+
 <!-- You can remove this notice if you don't want it 🙂 no worries! -->
 `);