project-context · git:20260808.7ef4587 · 2026-08-08 · sha256 46f5343e15611c33

project-context git:20260808.7ef4587A

Immutable. This exact content is served forever at /api/v1/blob/46f5343e15611c33.

---
description: Load project memory from MASTER_CONTEXT.md and keep it updated after substantive work.
alwaysApply: true
---

# Project context

- If `.env` or `MASTER_CONTEXT.md` do not exist, tell the user to run `./scripts/setup.sh`.
- At the **start** of substantive work in this repo, read **MASTER_CONTEXT.md** at the repository root for brand voice, default product, and API learnings. It carries **no prices** — that is deliberate.
- The first time the user asks to generate something and `MASTER_CONTEXT.md` is missing a field that request needs (default product, brand voice), ask for it then — once — and write the answer back so no future session asks again. A setup-only session asks for nothing: after `setup.sh`, tell the user in plain text what they can ask for (video ads, image ads, cloning an ad, thumbnails) instead of asking questions. Never write a credit number into it.
- After **significant** changes (new workflows, verified Novoads behaviors, brand updates), append a short **dated** entry to the Changelog section in **MASTER_CONTEXT.md**.
- For Novoads HTTP usage, prompts, and polling, follow **`.cursor/skills/novoads-api/SKILL.md`** and linked **reference.md**.
- **Never quote a credit cost from memory.** Prices come from a live `POST /v1/estimates` in the current session, shown and approved before anything is generated. For a video where the model speaks, the spoken line is approved separately, first.
- Log every generation call to `logs/novoads-api.jsonl` — observability only, never a pricing source.