pipeline: autonomous operation — shortlist stage, auto modes, daily-pipeline orchestrator
- daily-finds: feed-first fetch strategy (fetch: feed + feedUrl), cadence-aware scanning, new score-and-shortlist stage (shortlist: true, up to 12/day, top 1-3 flagged as review candidates), Amazon affiliate lookup for shortlisted physical products, and authority to apply mechanical sources.json maintenance (skip dead sources, demote dormant ones, record working fetch paths) instead of logging recommendations nobody executes. - build-bundle: auto mode (no confirmation gate when unattended) and a 'weekly' date-based catch mode so shortlisted finds never sit invisible for weeks. - cluster-bundles: auto mode. - build-review: hero.ts registration step removed (heroes auto-discovered from hero.<ext>); mandatory fact-check against the product's own site in auto mode; amazonLink carry-through; auto mode publishes and logs instead of pausing twice for approval. - New daily-pipeline skill: capture → bundle → reviews → pick of the day → build → commit → push → digest, with granular per-stage commits. This is the entrypoint for scheduled runs. - Project CLAUDE.md documenting the pipeline and its foot-gun conventions.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# unique.rzen.dev
|
||||
|
||||
A daily product-discovery site (Astro, static). The editorial pipeline is skill-driven and designed to run unattended.
|
||||
|
||||
## Pipeline
|
||||
|
||||
- `/daily-pipeline` — the whole daily chain: capture → bundle → reviews → pick of the day → build → commit → push → digest. This is the entrypoint for scheduled/headless runs.
|
||||
- `/daily-finds` — capture-only sweep of `sources.json`; writes `src/content/find/<yyyy>/<mm>/<slug>/`, marks the day's shortlist (`shortlist: true`, up to 12), adds `amazonLink` for confidently-matched physical products, and applies mechanical source maintenance.
|
||||
- `/build-bundle [auto|weekly|<theme>|<slugs>]` — one themed roundup referencing find slugs. `weekly` = date-based catch of unbundled shortlist finds.
|
||||
- `/cluster-bundles [auto]` — batch-cluster the backlog into 4–7 bundles.
|
||||
- `/build-review <slug> [auto]` — graduate a find to a full review (fact-check against the product's own site is mandatory in auto mode).
|
||||
|
||||
Unattended runs never pause for confirmation — they publish, log to `daily-finds.log.md`, and report a digest; the user vetoes after the fact. Only two things stay user-only: vetting `candidate-sources.md` nominees into `sources.json`, and scheduling.
|
||||
|
||||
## Conventions that bite
|
||||
|
||||
- Review heroes are auto-discovered from `src/content/reviews/<slug>/hero.<ext>` (`src/lib/hero.ts` glob) — name the file `hero.*`; no registration.
|
||||
- The homepage "pick of the day" is `src/data/pick.json` (`{"hero": "<review-slug>"}`); falls back to the latest review.
|
||||
- Find slugs are globally unique although folders are date-bucketed; URLs stay flat at `/find/<slug>/`.
|
||||
- Finds are only reachable through bundles — an unbundled find is invisible on the site.
|
||||
- `source` frontmatter must exactly match a `name` in `sources.json`.
|
||||
- Amazon links: store canonical `https://www.amazon.com/dp/<ASIN>` with no query params; `src/lib/affiliate.ts` adds the tracking ID, badge, and disclosure at render time.
|
||||
- Commit style: see `git log` — `content: …` for capture runs, `site: …` for everything user-visible; one commit per pipeline stage.
|
||||
- `npm run build` (astro check + build) must pass before pushing.
|
||||
Reference in New Issue
Block a user