← Corpus / lossless-monorepo / plan
Deduplicate the augment-it changelog between the splash and the Laerdal collection
- Path
- plans/Deduplicate-Augment-It-Changelog-Across-Splash-And-Laerdal.md
- Tags
- Tech-Debt · Changelog · Augment-It · Laerdal · Single-Source-Of-Truth
TL;DR
Eleven augment-it changelog entries live in two places. Pick one as the
source of truth and have the other surface read from it. Recommended:
keep ai-labs/augment-it/changelog/ as source; have the consulting site’s
Laerdal collection glob it.
Current State
On 2026-05-12, eleven backfilled augment-it changelog entries were copied (not moved) so the consulting site’s “Laerdal Changelog” toggle would surface them:
| Source of truth (splash reads this) | Copy (consulting site reads this) |
|---|---|
ai-labs/augment-it/changelog/2025-01-18_01.md | content/changelog--laerdal/2025-01-18_01.md |
ai-labs/augment-it/changelog/2025-01-27.md | content/changelog--laerdal/2025-01-27.md |
ai-labs/augment-it/changelog/2025-03-03_01.md | content/changelog--laerdal/2025-03-03_01.md |
ai-labs/augment-it/changelog/2025-07-25_01.md | content/changelog--laerdal/2025-07-25_01.md |
ai-labs/augment-it/changelog/2025-07-25_02.md | content/changelog--laerdal/2025-07-25_02.md |
ai-labs/augment-it/changelog/2025-07-25_03.md | content/changelog--laerdal/2025-07-25_03.md |
ai-labs/augment-it/changelog/2025-07-26_01.md | content/changelog--laerdal/2025-07-26_01.md |
ai-labs/augment-it/changelog/2025-08-01_01.md | content/changelog--laerdal/2025-08-01_01.md |
ai-labs/augment-it/changelog/2025-08-06_01.md | content/changelog--laerdal/2025-08-06_01.md |
ai-labs/augment-it/changelog/2025-08-10_01.md | content/changelog--laerdal/2025-08-10_01.md |
ai-labs/augment-it/changelog/2025-08-11_01.md | content/changelog--laerdal/2025-08-11_01.md |
The copies in content/changelog--laerdal/ have two extra frontmatter
fields prepended — project: "Augment-It" and category: ... — to fit
the visual style of the five pre-existing Laerdal entries. Body content
is byte-identical.
Five other entries in content/changelog--laerdal/ (the 2025-02-02_01
version note + four Tanuj entries from 2025-07-23 / 2025-07-24) are
not duplicated — they describe pre-restart Phase-1 / 2.0.0 / prompt-
manager work that lives only in the Laerdal collection. Those stay put.
Why It Matters
- Edit drift. A correction to any of the eleven backfilled entries has to be applied in two places, or the splash and the consulting site start telling slightly different stories.
- Future client projects. Any new repo that ships its own splash and needs to appear under a client’s changelog tab on the consulting site will hit the same problem. Solving it once for augment-it establishes the pattern.
Recommended Path — Option 2 (Laerdal loader reads from augment-it)
The cleaner option: augment-it owns its changelog; the consulting site aggregates.
Steps
-
Extend the Laerdal collection’s loader in
site/src/content.config.ts. The current definition globs a single base path:const changelogLaerdalCollection = defineCollection({ loader: glob({ pattern: "**/*.md", base: resolveContentPath("changelog--laerdal") }), schema: z.object({}).passthrough() });Replace with a custom loader (or two coordinated
glob()calls merged in a custom loader) that reads from both:<contentBasePath>/changelog--laerdal/(the five client-history entries that stay)<repo-root>/ai-labs/augment-it/changelog/(the augment-it entries, source of truth)
Astro’s
glob()loader takes a singlebase, so this likely needs a custom loader that callsfs.glob()twice and merges. Pattern already exists inai-labs/augment-it/splash/src/content.config.ts(thelocalLoaderfunction) — lift it. -
Filter on
project: "Augment-It"if needed. The augment-it originals don’t have this field; the Laerdal copies do. Decide whether to:- Inject
project: "Augment-It"at load-time in the custom loader (cleaner), OR - Leave the field missing and rely on path-based provenance
(
from: "augment-it"style tag like the splash already does).
- Inject
-
Verify both surfaces still render:
# Splash unchanged cd ai-labs/augment-it/splash && pnpm build # Confirm changelog list shows 12 entries # Consulting site picks up augment-it entries via merged loader cd site && pnpm build # Confirm /workflow/laerdal still shows 16 entries # Confirm /log/laerdal-<slug> routes work for all 16 -
Delete the eleven copies in
content/changelog--laerdal/:cd content/changelog--laerdal rm 2025-01-18_01.md 2025-01-27.md 2025-03-03_01.md \ 2025-07-25_01.md 2025-07-25_02.md 2025-07-25_03.md \ 2025-07-26_01.md 2025-08-01_01.md 2025-08-06_01.md \ 2025-08-10_01.md 2025-08-11_01.md # Should leave only: # 2025-02-02_01.md # 2025-07-23_01.md, _02.md, _03.md # 2025-07-24_01.md -
Verify again:
cd site && pnpm build # /workflow/laerdal still shows 16 entries — the 11 from # ai-labs/augment-it/changelog/ + the 5 still in # content/changelog--laerdal/ -
Close the related issue at
ai-labs/augment-it/context-v/issues/Changelog-Duplicated-Across-Splash-And-Laerdal-Collection.md(setstatus: Resolved, add adate_resolvedfield, mention this plan in the body). -
Author a changelog entry in
content/changelog--code/for the tooling change (single source of truth for client changelogs across splash + consulting site).
Alternative — Option 1 (Splash reads from content collection)
Less aligned but also valid: have augment-it’s splash read its changelog
from content/changelog--laerdal/ directly, filtering on
project: "Augment-It".
Tradeoff: splash now depends on the content submodule being checked
out alongside ai-labs/augment-it/ — works today, but couples augment-it’s
self-presentation to a client-content repo it doesn’t otherwise need.
Reject unless a future constraint forces it.
How To Recognize It’s Done
-
ls content/changelog--laerdal/shows only 5 files (2025-02-02_01.md,2025-07-23_01.md,2025-07-23_02.md,2025-07-23_03.md,2025-07-24_01.md). -
pnpm buildsucceeds in bothsite/andai-labs/augment-it/splash/. -
/workflow/laerdalon the consulting site still renders 16 entries (5 client-history + 11 from augment-it). -
/log/laerdal-*detail routes work for all 16 entries. - The augment-it splash’s
/changelog/page still renders 12 entries (11 backfilled + 1 splash-creation entry). - The issue at
ai-labs/augment-it/context-v/issues/Changelog-Duplicated-Across-Splash-And-Laerdal-Collection.mdis markedstatus: Resolved.
Risk
Low. Both surfaces are static-built; if the loader merge goes wrong,
the build fails loudly and you revert. No production data is at stake.
The eleven duplicate copies will sit harmlessly in
content/changelog--laerdal/ until the cleanup ships.