docs: README + CHANGELOG for the autonomous pipeline overhaul

This commit is contained in:
2026-07-03 15:23:30 -04:00
parent 622d9d63fd
commit 20c1ea422e
2 changed files with 13 additions and 4 deletions
+8
View File
@@ -1,5 +1,13 @@
# Changelog # Changelog
## July 2026
- Autonomous pipeline overhaul: new `/daily-pipeline` skill chains capture → bundle → review graduation → pick-of-the-day → build → commit → push and ends with a digest; `daily-finds` gains a score-and-shortlist stage (up to 12 `shortlist: true` finds per run, top 1-3 flagged as review candidates), feed-first fetching (`fetch: "feed"` + `feedUrl` in sources.json), cadence-aware scanning, and authority to apply mechanical source maintenance itself; `build-bundle`/`cluster-bundles`/`build-review` gain unattended `auto` modes (publish + log instead of pausing for confirmation), and `build-bundle weekly` writes a date-based "week's catch" so shortlisted finds never sit unbundled for weeks
- Review heroes are now auto-discovered: `src/lib/hero.ts` globs `reviews/*/hero.<ext>` (images and `hero.mp4`), so a new review needs no registration — only legacy non-`hero`-named assets remain as explicit overrides; both hero globs also accept `.avif`
- Pick of the day moves from a hardcoded constant in `src/pages/index.astro` to `src/data/pick.json` (falls back to the latest review); the dev-mode "Make today's pick" button writes the JSON file
- Optional `amazonLink` frontmatter on finds and reviews renders an "Also on Amazon" link with the existing affiliate tagging, badge, and disclosure; the capture pipeline looks up exact Amazon matches for shortlisted physical products
- Fact-checking against the product's own site is now a mandatory step when a find graduates to a review unattended
## May 2026 ## May 2026
- Bucket `find/` folders by capture date: every find moves from `src/content/find/<slug>/index.mdx` to `src/content/find/<year>/<month>/<slug>/index.mdx` (all 289 existing finds migrated to `2026/05/`). The `find` content-collection loader uses a new `leafSlug` `generateId` so the id (and therefore the URL at `/find/<slug>/`) stays flat, and `src/lib/find-hero.ts` switched to a recursive `**/hero.{...}` glob. No URL changes; bundle `items[]`, `promotedTo`/`fromFind` cross-references, and category/tag pages all keep working unchanged. Rationale: the flat folder was getting hard to scan and slow `git status` at ~290 finds and growing 20+/day - Bucket `find/` folders by capture date: every find moves from `src/content/find/<slug>/index.mdx` to `src/content/find/<year>/<month>/<slug>/index.mdx` (all 289 existing finds migrated to `2026/05/`). The `find` content-collection loader uses a new `leafSlug` `generateId` so the id (and therefore the URL at `/find/<slug>/`) stays flat, and `src/lib/find-hero.ts` switched to a recursive `**/hero.{...}` glob. No URL changes; bundle `items[]`, `promotedTo`/`fromFind` cross-references, and category/tag pages all keep working unchanged. Rationale: the flat folder was getting hard to scan and slow `git status` at ~290 finds and growing 20+/day
+5 -4
View File
@@ -7,8 +7,9 @@ Built with [Astro](https://astro.build) + MDX.
## Key features ## Key features
- **Four-collection pipeline**: `find` (captured items, hidden from indexes), `bundles` (editorial roundups that reference find slugs in a grid), `reviews` (full-length, sometimes graduated from a find), `posts` (generic essays) - **Four-collection pipeline**: `find` (captured items, hidden from indexes), `bundles` (editorial roundups that reference find slugs in a grid), `reviews` (full-length, sometimes graduated from a find), `posts` (generic essays)
- **Daily capture skills** under `.claude/skills/`: `daily-finds` (sweeps every source in `sources.json`, writes one find file per qualifying item — capture-only, no editorial selection); `build-bundle` (drafts a thematic bundle from the find pool); `cluster-bundles` (batch-clusters the entire find pool into multiple bundles); `build-review` (graduates a find to a full review, linking the two via `fromFind` / `promotedTo`) - **Autonomous daily pipeline** under `.claude/skills/`: `daily-pipeline` (the unattended chain: capture → bundle → review graduation → pick of the day → build → commit → push → digest); `daily-finds` (sweeps every source in `sources.json`, writes one find file per qualifying item, marks a ranked shortlist of up to 12, adds Amazon links for matched physical products, and self-maintains `sources.json`); `build-bundle` (thematic bundle from the find pool; `auto` and `weekly` catch modes); `cluster-bundles` (batch-clusters the find pool into multiple bundles); `build-review` (graduates a find to a full review with a mandatory fact-check in auto mode, linking the two via `fromFind` / `promotedTo`)
- **Sources catalog** at `sources.json` with per-source fetch strategy (`webfetch` / `curl` / `skip`) and the `/sources` page rendering a 3-column card stream with a "Recent finds" sub-list per card - **Pick of the day** driven by `src/data/pick.json` (falls back to the latest review) — the homepage hero is a one-line content edit, also settable from the dev-mode button on any review page
- **Sources catalog** at `sources.json` with per-source fetch strategy (`feed` / `webfetch` / `curl` / `skip`, feeds preferred) and the `/sources` page rendering a 3-column card stream with a "Recent finds" sub-list per card
- **Strict find visibility**: find items are reachable only via the bundles that reference them, the `/sources` cross-reference, or direct URL — they don't crowd the home feed, tag pages, or category pages - **Strict find visibility**: find items are reachable only via the bundles that reference them, the `/sources` cross-reference, or direct URL — they don't crowd the home feed, tag pages, or category pages
- **Backlinks** computed at build time: each find page lists every bundle that references it; promoted finds show a forward link to the review; reviews show a "← First surfaced…" backlink to their originating find - **Backlinks** computed at build time: each find page lists every bundle that references it; promoted finds show a forward link to the review; reviews show a "← First surfaced…" backlink to their originating find
- **Newspaper-style masthead** on every page: live entry-count + last-updated stats on the left, large serif "Unique" wordmark centered between thin rules, About/Blog nav on the right; per-page italic subheader ("A small log of delightful things.") with last-updated date on listing pages - **Newspaper-style masthead** on every page: live entry-count + last-updated stats on the left, large serif "Unique" wordmark centered between thin rules, About/Blog nav on the right; per-page italic subheader ("A small log of delightful things.") with last-updated date on listing pages
@@ -17,7 +18,7 @@ Built with [Astro](https://astro.build) + MDX.
- **SEO-friendly site footer** with Browse / Collections (live counts) / About link columns and a centered legal line; consistent 76rem page width across the entire site (article prose constrained to a comfortable reading measure inside the wider layout) - **SEO-friendly site footer** with Browse / Collections (live counts) / About link columns and a centered legal line; consistent 76rem page width across the entire site (article prose constrained to a comfortable reading measure inside the wider layout)
- Reviews render as two-line index entries: bold name + muted subtitle (`Cotypist` / *Autocomplete that lives everywhere on your Mac*) - Reviews render as two-line index entries: bold name + muted subtitle (`Cotypist` / *Autocomplete that lives everywhere on your Mac*)
- Auto-generated `/categories/<name>/` and `/tags/<name>/` listing pages — finds excluded by design - Auto-generated `/categories/<name>/` and `/tags/<name>/` listing pages — finds excluded by design
- **Amazon affiliate handling** in `src/lib/affiliate.ts`: outbound links to Amazon (`amazon.com`, `amzn.to`, `a.co`, `smile.amazon.com`) get the configured tracking ID appended automatically; the link gets `rel="sponsored"`, an "Affiliate" badge appears next to it, and a one-line disclosure is shown beneath. Add additional marketplace IDs (e.g. `amazon.co.uk`) to the `AMAZON_TAGS` map when needed - **Amazon affiliate handling** in `src/lib/affiliate.ts`: outbound links to Amazon (`amazon.com`, `amzn.to`, `a.co`, `smile.amazon.com`) get the configured tracking ID appended automatically; the link gets `rel="sponsored"`, an "Affiliate" badge appears next to it, and a one-line disclosure is shown beneath. Finds and reviews also take an optional `amazonLink` frontmatter field (canonical `/dp/<ASIN>` form) rendered as an "Also on Amazon" link — the capture pipeline populates it when a shortlisted physical product has an exact Amazon match. Add additional marketplace IDs (e.g. `amazon.co.uk`) to the `AMAZON_TAGS` map when needed
- **SEO surface**: single `<SEO>` component owning canonical, Open Graph, Twitter Card, and JSON-LD; per-page structured data (`Review`, `BlogPosting`, `Product`, `Article`, `CollectionPage`, `ItemList`, `BreadcrumbList`, `WebSite`, `Organization`); auto-generated `sitemap-index.xml` (excludes `/grid/` and `/index3/`); RSS feed at `/rss.xml`; `robots.txt`; static OG image fallbacks under `/public/og/`; promoted finds canonical to their review - **SEO surface**: single `<SEO>` component owning canonical, Open Graph, Twitter Card, and JSON-LD; per-page structured data (`Review`, `BlogPosting`, `Product`, `Article`, `CollectionPage`, `ItemList`, `BreadcrumbList`, `WebSite`, `Organization`); auto-generated `sitemap-index.xml` (excludes `/grid/` and `/index3/`); RSS feed at `/rss.xml`; `robots.txt`; static OG image fallbacks under `/public/og/`; promoted finds canonical to their review
- Custom 404 page with recent-reviews and navigation fallback - Custom 404 page with recent-reviews and navigation fallback
- Light/dark mode via `prefers-color-scheme` - Light/dark mode via `prefers-color-scheme`
@@ -73,7 +74,7 @@ import demo from './hero.mp4';
<video src={demo} autoplay loop muted playsinline preload="metadata" /> <video src={demo} autoplay loop muted playsinline preload="metadata" />
``` ```
If the review needs a hero on the home/grid pages, add it to `src/lib/hero.ts`. Review heroes are auto-discovered: name the file `hero.<ext>` (any of png/jpg/jpeg/gif/webp/avif, or `hero.mp4` for video) and the home/grid tiles pick it up — no registration. Only assets with non-`hero` filenames need an explicit entry in the `overrides` map in `src/lib/hero.ts`.
## Media ## Media