This directory is the contributor intake format for proposed Standard Card and
Standard Benefit Definitions. The checked-in DB-free Catalog source is
src/lib/static-catalog.ts; this directory is
not a database seed or an existing-user rollout mechanism.
-
Replace the card metadata, benefits, and source links. Keep the source terms and access dates specific enough for review.
-
Validate the file (or all examples):
npm run card-template:validate -- path/to/template.json
-
Open a pull request with the template and any matching card image under
public/images/cards/.
Maintainers verify the sources, then update the static Catalog with explicit,
immutable catalogKey values and exact benefit parent keys. A checked-in
Catalog change also needs a separately reviewed global synchronization plan,
existing-Physical-Card status propagation disposition, and Benefit Usage Guide
disposition. Read the Catalog and Benefit Updates specification
before changing the source.
prisma/seed.ts consumes the static source for compatible database setup, but
editing or running the seed does not synchronize existing users. Any
database-backed synchronization is a separately authorized operation; the
operator defaults to a dry-run and uses the exact gates in the specification:
npm run sync:global-catalog -- --dry-runDo not use legacy per-card update scripts or infer identity from a card name, description, amount, array order, or database ID.
- Include official issuer terms whenever possible and add community evidence only as supporting context.
- Include recurring statement or promotional credits, annual credits, spend thresholds, and certificate-style benefits that users can track.
- Do not model always-on access, insurance, elite status, or earning multipliers as recurring benefits unless product requirements change.
- Keep
imageUrlpointed at an existing local file when the proposal includes an image, and record image provenance in the relevant documentation. - Preserve existing
catalogKeyvalues. A genuinely new definition gets a new key; a changed or retired definition is never deleted and recreated.
frequency:MONTHLY,QUARTERLY,YEARLY, orONE_TIMEcycleAlignment:CARD_ANNIVERSARYorCALENDAR_FIXEDfixedCycleStartMonth: 1-12, only for fixed calendar windowsfixedCycleDurationMonths: positive number of months in the fixed windowoccurrencesInCycle: optional count when multiple uses exist in one cycle