Ideas and backlog
The planning layer for experiment concepts before they become tests. It stores hypotheses, evidence, source context, comments, priority, and handoff notes.
Simple terms
The backlog is where rough test ideas live before they are ready to become experiments.
The planning layer for experiment concepts before they become tests. It stores hypotheses, evidence, source context, comments, priority, and handoff notes.
Routes
/pipeline/backlog/pipeline/backlog?idea=<id>(one idea, opened in the modal)/backlog/capture
/backlog, /backlog/new, and /backlog/<id> are permanent redirects into
those three addresses.
Implementation behavior
- Ideas can be created manually, imported from Research Hub context, or generated from Operator and store-profile evidence.
- Imported Research Hub items now show the Research Hub score they arrived with and surface a Research Hub linkage strip in the detail view; the linkage strip's links are shown only to authorized viewers.
- Each idea keeps status, priority, source, target surface, expected impact, comments, archive state, and optional linked experiment.
- The detail page turns a qualified idea into an experiment without losing the original evidence trail.
- Codex handoff and Research Hub snapshots preserve external research context for future builders.
- Every idea has a Design tab: mockups, links, inspiration images, and internal build notes. Mockups can be uploaded or picked from the Research Hub images the idea arrived with; picking places a reference, it does not copy the file.
- Each link carries a switch that says whether the client sees it. The Add link dialog pre-selects the switch for Figma and Loom and leaves it off for everything else; a link saved through the API without the flag stays internal whatever its kind. Build notes and inspiration images are always internal, and the dashboard read redacts them for client roles.
Your own fields
A shop defines its own idea fields once, and every idea then carries values for them.
- Types: short text, long text, number, yes or no, single choice, date, link, and person.
- Each field can be required, and each field can be marked visible to the client.
- The idea list filters on any field with
?field.<key>=<value>and sorts with?sort=field.<key>. A sort by a field covers at most 5000 matching ideas; past that, filter or search the list first. - Batch import maps a spreadsheet column to an existing field, creates a new field for it, or skips it.
skipis a reserved key, so no field can use it. - Archiving a field keeps the values already stored on ideas and stops new writes to it.
- A client sees only the fields the shop marked client-visible, and cannot filter or sort by the others.
How to use it
- Create ideas when evidence is not ready to launch as an experiment.
- Attach page context and proof so Operator can reason about the target surface.
- Move high-confidence ideas into experiments from the detail route.
- Archive stale ideas instead of deleting useful historical context.
When not to use it
- Do not put live-test configuration only in an idea; create an experiment when it needs runtime behavior.
- Do not use ideas as a dumping ground without evidence, target page, or expected metric.
- Do not delete old idea context when archiving is enough to keep history clean.
Implementation source
- Pages live under
src/app/(dashboard)/backlog. - Handlers live under
/api/backlog, including detail, comments, archive, restore, Codex handoff, landing-page brief, and create-experiment actions. - Backlog items can link to experiments so the original hypothesis and evidence remain attached.
Data and API
- Backlog and comment models plus imported research metadata.
- APIs:
/api/backlog,/api/backlog/[id],/api/backlog/[id]/comments,/api/backlog/[id]/design,/api/backlog/[id]/archive,/api/backlog/[id]/restore,/api/backlog/[id]/codex-handoff,/api/backlog/[id]/landing-page-brief, and/api/backlog/[id]/create-experiment. - The design board is read and written on its own route,
GET/PATCH /api/v1/backlog/{id}/design. APATCHreplaces only the keys it carries and requiresexpected_versionfrom the last read, because it replaces whole lists after reading them; a stale version answers 409 withbacklog_item_cas_miss. - Field definitions live at
/api/backlog/fieldsand/api/backlog/fields/[id], with/api/v1/backlog/fieldsfor API keys. Values ride on each idea'scustom_fields.- Linked experiments store the relationship back to the originating idea.
Failure modes
- Weak ideas produce weak experiments: add evidence, page URL, target user, and expected metric before handoff.
- Imported items may need cleanup if external source fields are incomplete.
- Archived ideas disappear from default lists but can be restored.
- A Research Hub image placed as a mockup and later removed from the idea keeps its place on the board and reads as not available, instead of disappearing without a word.