Macro on a chilled bottle: condensation beads gather, merge, and run, dragging a clean line down the frosted glass. A thumb of orange peel flexes just off-axis and throws a fine mist across the light. Shallow depth, slow push, cold blue-green key.
no outputs aligned OpenCreative search · Human judgment · Memory
Idea Search
Messy human judgment becomes modular memory.
Compare concrete creative directions. Say what works, what misses, and why. Review the guidance extracted from that judgment, then carry the pieces you accept into later AI-generated creative searches.
Three directions for the same brief.
The starting batch gives the creator concrete alternatives to judge. No guidance has been accepted yet.
Hard sunlight through a slatted blind rakes across a seamless backdrop in amber and deep green. Bars of light rotate, a wedge of grapefruit spins, the shadow of a leaf sweeps past, and the palette flips to negative on the final beat.
no outputs exploratory OpenA cleared dinner table after guests have gone: linen creased, two glasses, a bowl of clementines. Over sixteen seconds the low sun crawls across the cloth, the peel curls tighten, and the room warms from grey to gold.
no outputs variation OpenLet the judgment be messy. Keep it grounded.
One reaction can contain praise, a practical constraint, and a correction at once. The original wording stays attached to the candidate and brief that gave it meaning.
Candidate prompt
Macro on a chilled bottle: condensation beads gather, merge, and run, dragging a clean line down the frosted glass. A thumb of orange peel flexes just off-axis and throws a fine mist across the light. Shallow depth, slow push, cold blue-green key.
prompt_demo0001
Output evidence
No output artifact is linked to this candidate. This walkthrough uses prompt candidates only.
Judgment
“The condensation run is the whole idea -- one physical change I can actually shoot, and the beading reads expensive. But the bottle is never legible; I get texture and no product. Keep the transformation, end on the bottle.”
saved judgment · on candidate C1 · prompt_demo0001
Separate the reaction into reviewable pieces.
The model proposes individual instructions: preserve a useful pattern, avoid a distracting element, or keep a constraint. Each proposal retains its source. It becomes memory only after a decision.
Candidate prompt
Macro on a chilled bottle: condensation beads gather, merge, and run, dragging a clean line down the frosted glass. A thumb of orange peel flexes just off-axis and throws a fine mist across the light. Shallow depth, slow push, cold blue-green key.
prompt_demo0001
Output evidence
No output artifact is linked to this candidate. This walkthrough uses prompt candidates only.
Judgment
“The condensation run is the whole idea -- one physical change I can actually shoot, and the beading reads expensive. But the bottle is never legible; I get texture and no product. Keep the transformation, end on the bottle.”
saved judgment · on candidate C1 · prompt_demo0001
Decide what the critique actually meant.
Accept useful guidance, edit an instruction that narrows the idea too far, and reject an inference you did not intend. In this record, four items are accepted, one is rejected, and one remains pending.
Candidate prompt
Macro on a chilled bottle: condensation beads gather, merge, and run, dragging a clean line down the frosted glass. A thumb of orange peel flexes just off-axis and throws a fine mist across the light. Shallow depth, slow push, cold blue-green key.
prompt_demo0001
Output evidence
No output artifact is linked to this candidate. This walkthrough uses prompt candidates only.
Judgment
“The condensation run is the whole idea -- one physical change I can actually shoot, and the beading reads expensive. But the bottle is never legible; I get texture and no product. Keep the transformation, end on the bottle.”
saved judgment · on candidate C1 · prompt_demo0001
Search again with the memory you chose.
The recorded second batch receives four accepted items as generation context. Rejected and pending proposals stay out. The example demonstrates the handoff using scripted outputs.
Preserve
- Organize each concept around a single physical transformation that can actually be shot.
- Keep the product legible in the final beat.
- Lead with tactile material detail rather than general atmosphere.
Avoid
- Do not stack competing visual tricks in one sixteen-second concept.
batch 01 fp fp_demo0001 → batch 02 fp fp_demo0003 — the memory fingerprint changed, so this is a new comparison set
One unbroken macro: a single bead of condensation swells on the shoulder of the bottle, releases, and tracks straight down through the label, leaving a clear stripe across frosted glass. The pull-back stops with the full bottle centred and the label sharp.
no outputs aligned OpenA thumb presses a strip of orange peel until the oil bursts and atomises through a hard side light. The mist settles across the cap and shoulders of the bottle standing beside it; the final beat holds on the bottle, dressed in a fine sheen.
no outputs exploratory OpenA drop of oil lands on still water and blooms into a slow citrus-coloured ring. The ripple reaches the base of the bottle standing in the tray, and the surface settles to a mirror with the bottle and its reflection held square in frame.
no outputs variation OpenFollow a memory item back to its source.
The record connects the original candidate, critique, proposal, human decision, and later generation.
-
1
judgment fb_demo0001 The condensation run is the whole idea -- one physical change I can actuall…
-
2
candidate cand_demo0001 C1 · aligned
-
3
model draft memprop_demo0002 End on a clean product shot.
-
4
human decision accepted · edited Keep the product legible in the final beat.
-
5
accepted memory mem_demo0002 Keep the product legible in the final beat.
-
6
later batch batch_demo0002 fp fp_demo0003 · 4 items in context
What makes the memory modular?
Separate pieces of guidance, each with a source, a scope, and a decision.
A critique becomes a collection of instructions you can inspect and choose for another search. The original judgment remains available beside the accepted guidance.
01 / Separate
One idea per entry.
Preserve a physical transformation, keep the product legible, or avoid competing tricks. Each instruction can be reviewed on its own.
02 / Select
Choose the context for the next search.
The application offers all accepted memory, selected entries, or no memory for a batch. This record uses all four accepted entries.
03 / Trace
Keep the conditions of judgment.
Entries retain their scope, strength, source candidate, feedback, and approval history. The receipt shows where the instruction came from.
Inside the recorded example
The correction is part of the memory.
The critique asks for a legible product. The person can keep that intent while changing the model’s proposed solution.
“But the bottle is never legible; I get texture and no product. Keep the transformation, end on the bottle.”
End on a clean product shot.
A specific shot prescription.Keep the product legible in the final beat.
The requirement survives; the next concept can solve it differently.Accepted memory corpus
4Lead with tactile material detail rather than general atmosphere.
Do not stack competing visual tricks in one sixteen-second concept.
Keep the product legible in the final beat.
Organize each concept around a single physical transformation that can actually be shot.
Proposer teaching set
5Decided proposals only — pending items teach nothing. An edited-then-accepted proposal is the strongest signal, because it carries both the model’s draft and the human’s correction.
Organize each concept around a single physical transformation that can actually be shot.
weak positiveAvoid amber and green palettes.
strong negativeEnd on a clean product shot. Keep the product legible in the final beat.
strongestMemory change timeline
223 feedback · 11 proposal · 4 memory · 4 receipt
-
Feedback added
fb_demo0001The condensation run is the whole idea -- one physical change I can actually shoot, and the bea…
-
Memory proposal created
memprop_demo0001Organize each concept around a single physical transformation that can actually be shot.
-
Memory proposal created
memprop_demo0002Keep the product legible in the final beat.
-
Proposal accepted
memprop_demo0001Organize each concept around a single physical transformation that can actually be shot.
-
Memory activated
mem_demo0001Organize each concept around a single physical transformation that can actually be shot.
-
Receipt available
mem_demo0001A canonical Markdown receipt is available for this accepted memory.
History
The recorded session: both comparison sets, their fingerprints, and the exports.
Session recap
| batch | candidates | memory | memory fp | recipe fp |
|---|---|---|---|---|
| 01 | 3 | 0 items | fp_demo0001 | fp_demo0002 |
| 02 | 3 | 4 items | fp_demo0003 | fp_demo0004 |
Generated next batch from accepted memory.
Exports
From selector experiments to Idea Search.
The research motivated the design. The walkthrough demonstrates its mechanics.
Research observation
Useful preference signals depended on local human examples.
The creative-text experiments found the strongest automated signals with human-labeled responses to the same prompt. Specific comparisons preserved a preference boundary that averaging the reference set lost. Cross-prompt controls did not establish a general creative evaluator.
Explore the findings and controlsEngineering response
Give judgment a durable, inspectable form.
Idea Search preserves concrete alternatives, natural-language critique, and individual decisions about what should guide future work. Reuse is explicit: the person chooses which accepted instructions fit the next search.
Reusing guidance is a design choice that can be inspected. Its usefulness on a new prompt or project still needs to be judged.
Keep the reasoning inside the reaction.
“More like this” can mean its material, pacing, feasibility, or emotional effect. A natural-language critique can explain the distinction. Idea Search keeps that wording beside the candidate it refers to.
Make generalization a human decision.
A complaint about one crowded concept is not necessarily a ban on its colors. Accepting, editing, and rejecting proposals lets the person decide which lessons should outlive the example.
Know what the next search inherited.
A batch records the accepted memory supplied to generation and its fingerprint. The ledger and receipts connect that context to the judgments and decisions that created it.
I built the complete local application: candidate and batch versioning, prompt assembly, feedback analysis, memory decisions, generation handoffs, and their provenance records. This public showcase presents one recorded loop.
Architecture, source evidence, and limitations
What this page is
A static projection of one recorded session, laid out in the product’s own cockpit geometry. It is not the running React application: the recipe controls, Generate key, and decision buttons show recorded values and do nothing.
The model drafts prompts. You decide what carries forward.
Idea Search was originally developed as Subjective Skill Studio. The evidence remains tied to that application’s audited source snapshot. The public showcase is named Idea_Search_Showcase; the application source remains private.
Architecture
FastAPI + SQLite backend (async), React + Vite + TypeScript frontend, no component framework. A two-layer prompt assembly (meta-prompt → candidate template) feeds both the recipe preview and generation, with fingerprints over the accepted-memory corpus and the generation recipe deciding whether a new candidate appends to the current batch or starts a new one. This showcase drives the same FastAPI app in-process through TestClient using the project’s built-in mock provider — the identical code path a hosted LLM provider would run, with deterministic, non-networked output.
The creator problem
Creative feedback usually disappears between rounds: it stays in the creator’s head, a chat transcript, or an isolated note. Idea Search attaches that reasoning to the exact candidate being judged, and makes only explicitly approved guidance available to later generation.
What Eduardo built
The complete local application: batch and candidate versioning, recipe and meta-prompt assembly, natural-language feedback, proposal decisions, accepted-memory injection, optional artifact and rendering workflows, and the ledger, timeline, fingerprints, backlinks, and receipts that make the loop auditable.
Fixture scope & evidence
This deterministic walkthrough proves the application’s persistence, approval, scoping, and provenance mechanics. Its candidate prompts and memory proposals are a curated script returned by the built-in mock provider, not output from a hosted model, so nothing here demonstrates content-sensitive proposal quality or improved creative outputs.
The recorded candidate text, judgments, memory decisions, and stamps come from evidence/fixture/loop.json, generated by evidence/generate_fixture.py against source snapshot commit 82ed65dc01c2 (extraction root 04906b0, backend schema v4). Raw database ids and timestamps are non-deterministic by construction (uuid4, wall-clock); the generator canonicalizes them into stable tokens before writing evidence, so re-running it against the same snapshot reproduces byte-identical files.
| path | sha256 (truncated) |
|---|---|
| evidence/fixture/loop.json | cd79853f5e262f9c… |
| evidence/fixture/receipts/memory_receipt_1.md | 7e535b3cd9d05664… |
| evidence/fixture/receipts/memory_receipt_2.md | 918419fbedfaa28e… |
| evidence/fixture/receipts/session_receipt.md | 7fca7c9d5f12b970… |
| claim | fixture step(s) |
|---|---|
| workspace/project/skill creation | create_workspace, create_project, create_skill |
| initial candidate batch (comparison set) | generate_first_batch |
| one clear natural-language judgment | judge_candidate_1, judge_candidate_2, judge_candidate_3 |
| feedback analysis into pending proposals | analyze_judgment_1, analyze_judgment_2, analyze_judgment_3 |
| accept decision | accept_proposal_one_transformation, accept_proposal_no_stacking, accept_proposal_tactile_detail |
| edit decision | edit_proposal_product_legible, accept_edited_proposal_product_legible |
| reject decision | reject_proposal_no_amber_green |
| pending proposals rail before a human decision | pending_proposal_prop_limit |
| a subsequent batch conditioned on accepted memory | generate_next_batch |
| provenance receipt | memory_ledger, memory_timeline, memory_receipt_1, memory_receipt_2 |
| a provenance or session receipt | session_receipt |
uv run --project backend python evidence/generate_fixture.py && python3 site/build_site.py
Limitations
- The candidate text and the drafted proposals are a curated, deterministic script returned by the built-in mock provider, not output from a hosted LLM — the walkthrough demonstrates control flow and the data model, not generation quality.
- A product demonstration on synthetic data: not a benchmark, not evidence of production usage.
- The interactive React/Vite frontend is not deployed here. This page reads the same backend output the UI would render and lays it out in the same cockpit geometry, but nothing on it is live.
- This repository and the application it showcases are closed source — © 2026 Eduardo Cortes. All rights reserved. Public availability does not grant a license to copy, modify, redistribute, or reuse the application, this site, or its evidence.