Convert all reference numbering in the blurb files from the bare [1], [2], [3] form to the [<blurb-slug>-<n>] form, where <blurb-slug> is the short name of the blurb, lowercased and hyphenated where the blurb title is multi-word.
The convention is already in place in three blurbs (Tron, Automan, Ziggy); this task extends it repo-wide.
Every *.md file under blurbs/rec/. Read each file first to confirm the existing reference style and the slug to use, before editing.
Existing files in scope (as of 2026-10-15; confirm by find blurbs/rec -name "*.md" -type f):
blurbs/rec/arts/sci-fi/ai-hollywood-movies.md — slug: aimoviesblurbs/rec/arts/sci-fi/ai-in-movies-and-tv.md — slug: overviewblurbs/rec/arts/sci-fi/jarvis.md — slug: jarvisblurbs/rec/arts/sci-fi/i-robot-movie-book.md — slug: irobotblurbs/rec/arts/sci-fi/laws-of-robotics.md — slug: lawsblurbs/rec/arts/sci-fi/skynet.md — slug: skynetblurbs/rec/arts/sci-fi/tron.md — slug: tron (already migrated, skip)blurbs/rec/arts/sci-fi/tv/ai-in-sci-fi-tv.md — slug: aitvblurbs/rec/arts/sci-fi/tv/automan.md — slug: automan (already migrated, skip)blurbs/rec/arts/sci-fi/tv/max-headroom.md — slug: headroomblurbs/rec/arts/sci-fi/tv/quantum-leap-ziggy.md — slug: ziggy (already migrated, skip)blurbs/rec/arts/sci-fi/tv/star-trek-computer-lcars.md — slug: lcarsblurbs/rec/arts/sci-fi/tv/star-trek-measure-of-a-man.md — slug: measureblurbs/rec/arts/sci-fi/tv/knight-rider/cast.md — slug: kr-castblurbs/rec/arts/sci-fi/tv/knight-rider/fans.md — slug: kr-fansblurbs/rec/arts/sci-fi/tv/knight-rider/iconic-episodes.md — slug: kr-episodesblurbs/rec/arts/sci-fi/tv/knight-rider/kitt.md — slug: kittblurbs/rec/arts/sci-fi/tv/knight-rider/reboots.md — slug: kr-rebootsblurbs/rec/arts/sci-fi/tv/knight-rider/iconic-episodes/junk-yard-dog.md — slug: kr-junkblurbs/rec/arts/sci-fi/tv/knight-rider/iconic-episodes/knight-of-the-juggernaut.md — slug: kr-juggernautblurbs/rec/arts/sci-fi/tv/knight-rider/iconic-episodes/knight-song.md — slug: kr-songblurbs/rec/arts/star-trek/emh.md — slug: emhblurbs/rec/arts/star-trek/ds9-awards.md — slug: ds9-awardsblurbs/rec/arts/star-trek/ds9-making.md — slug: ds9-makingblurbs/rec/arts/star-trek/ds9-milestones.md — slug: ds9-milestonesblurbs/rec/arts/star-trek/ds9-people.md — slug: ds9-peopleblurbs/rec/arts/star-trek/sfa-making.md — slug: sfa-makingblurbs/rec/arts/star-trek/sfa-milestones.md — slug: sfa-milestonesblurbs/rec/arts/star-trek/sfa-people.md — slug: sfa-peopleblurbs/rec/arts/star-trek/tng-awards.md — slug: tng-awardsblurbs/rec/arts/star-trek/tng-barclay.md — slug: tng-barclayblurbs/rec/arts/star-trek/tng-crossovers.md — slug: tng-crossoversblurbs/rec/arts/star-trek/tng-guinan.md — slug: tng-guinanblurbs/rec/arts/star-trek/tng-making.md — slug: tng-makingblurbs/rec/arts/star-trek/tng-milestones.md — slug: tng-milestonesblurbs/rec/arts/star-trek/tng-people.md — slug: tng-peopleblurbs/rec/arts/star-trek/tng-timesarrow.md — slug: tng-timesarrowblurbs/rec/arts/star-trek/tos-making.md — slug: tos-makingblurbs/rec/arts/star-trek/tos-milestones.md — slug: tos-milestonesblurbs/rec/arts/star-trek/tos-people.md — slug: tos-peopleIf the file list above is out of date, regenerate with find blurbs/rec -name "*.md" -type f and pick a slug for any new file following the convention in the existing list.
Files to skip (already migrated): tron.md, automan.md, quantum-leap-ziggy.md.
skynet; "AI in Sci-Fi TV" becomes aitv; "Quantum Leap Ziggy" becomes ziggy.tng-barclay, kr-kitt, ds9-people, etc.[tng-1] and a reference to the TNG people blurb would resolve the second as [tng-people-1]. (This is an unlikely edge case; if you hit it, ask before resolving.)In each file:
[N], [N, M], [N][M], [N-M] (the bare number form, with optional comma/bracket/caret combinations).[N] [Title](url) or [N] text.Both must be converted together so the rendered output continues to link.
[citation needed], code blocks, image alt text). Use judgment; if a bracket pair looks like a reference (numeric content, links to a real URL), convert it; if it doesn't, leave it.--- block at the top of each file).[EMH blurb](../star-trek/emh) — these are navigation links, not references.For each file in scope (other than the three already-migrated ones):
## References (or ## References and Notes, ## Sources, etc.) heading. If there is no ## References heading, look for a final --- separator followed by a list of [N] [Title](url) lines.slug-N. For example, a file with references [1], [2], [3] becomes [<slug>-1], [<slug>-2], [<slug>-3].[1], [1][2], [1, 2], [1-3]) with its slugged form. Be careful with bracketed ranges like [1-3] — these mean "all of 1, 2, 3" and the corresponding new form is [<slug>-1][<slug>-2][<slug>-3]. The blade is a Markdown link-style citation system; treat [1, 2] as two adjacent references [1] and [2] and split them.[N] line to [<slug>-N].[N] should map to a unique [<slug>-N], and no new [<slug>-N] should exist without a corresponding original.refactor(blurbs): migrate <file> to slug-N reference style commit.If file A contains a Markdown link to file B (e.g., [EMH blurb](../star-trek/emh.md)), do not touch it — it is a navigation link, not a citation. The new slug-style is only for numbered references inside a file.
If file A contains a prose reference like "see [1] for the franchise's awards list" and [1] is the only number in the file, the migration converts it to [<slug-of-A>-1]. The reader clicks through to the references section at the bottom of file A. This is the intended behavior; the slug does not need to match the source of the cited fact.
Commit one file at a time. Suggested order (smallest blast radius first):
tng-barclay, tng-guinan, tng-crossovers, tng-timesarrow, sfa-*, ds9-awards, tng-awards, etc.)kr-*).jarvis, irobot, laws, headroom, lcars, measure, skynet).aimovies, overview, aitv) because they have the most cross-references and the most citations.If you convert a blurb that the Tron / Automan / Ziggy blurbs link to via [N], those links are navigation links and do not change. If you find a numbered reference inside one of the three already-migrated files that points to a now-migrated file, the link still works because the bare numbers in the source file and the slugged numbers in the destination file are independent — the reader is reading in the source file, where the citations are slugged in the source's style.
The meta-repo's pre-commit hook will run on each commit. The hook checks submodule pointer divergence. None of these commits touch submodules or change the meta-repo's gitlinks, so the hook should pass on every commit. If the hook blocks, the most likely cause is untracked files in the working tree from other work; check git status and resolve before committing.
After all files are migrated, run:
grep -rEn '\[(achilles|[0-9]+)\]\s' blurbs/rec/ --include='*.md' | head -20
This should produce no output (or only a small handful of edge cases to inspect). If it produces matches, those are files where a bare [N] reference was missed.
Then run:
grep -rEn '\[(tron|automan|ziggy|skynet|jarvis|emh|headroom|lcars|measure|irobot|laws|aimovies|aitv|overview|kitt|kr-[a-z]+|tng-[a-z]+|tng-[0-9]+|sfa-[a-z]+|ds9-[a-z]+|tos-[a-z]+)-[0-9]+\]' blurbs/rec/ --include='*.md' | wc -l
This should produce a count of several hundred, indicating the new style is now in use across the tree.
rec/arts/... blurbs that are not under blurbs/rec/. (None exist at this time; if you find one, the procedure is the same.)blurbs/alt/, blurbs/comp/, blurbs/ec/, or blurbs/usgov/. (This task is scoped to blurbs/rec/; if the user wants those migrated too, ask first.)