Creative Context
Use the shared creative-context library to reuse verified source material without turning prior work into an invisible global prompt.
Reuse ladder
Apply the first viable option in this exact order:
- Reuse an approved native asset, component, or template unchanged.
- Compose approved native pieces without flattening or recreating them.
- Duplicate and lightly adapt a real approved example.
- Generate new work conditioned on narrowly retrieved references.
- Generate net-new work only when the relevant corpus is empty.
Do not skip directly to imitation or net-new generation when an approved native primitive already fits.
Retrieval procedure
Retrieve context in this order, stopping as soon as the current request is sufficiently grounded. Keep factual evidence, visual/style references, voice/terminology, and structural/layout examples in separate queries so one role cannot silently stand in for another:
- Follow the user's explicit instructions and the object currently selected in the app.
- Read the
creative-contextapplication-state record. IfpinnedPackIdis set, replay that immutable pack. Otherwise honorselectedContextId; when it is unset, let retrieval use Default plus at most one app-bound or semantically matching specialty context.currentPackIdis the receipt from the latest materialized generation, not a replacement for context selection. - Call
search-creative-contextwith a narrow query for exact facts, visual language, audience guidance, prior decisions, or reusable references. - Call
get-context-itemonly for the specific search result versions needed for the work. Preserve source and version provenance. - Fall back to app-local design systems, assets, documents, and current-user instructions when the shared library has no relevant evidence.
Do not load the whole library or paste large source dumps into a prompt. Context packs are generation snapshots; do not silently rewrite a historical pack after it has been used.
For an inbound Creative Context machine-protocol A2A request, call
creative-context-a2a exactly once with its opaque requestToken, then return
the action's responseToken verbatim. Never decode or broaden the request.
Context opt-out
The single state key is creative-context:
{
"contextMode": "auto",
"selectedContextId": null,
"currentPackId": null,
"pinnedPackId": null
}
When contextMode is off, do not search, select, or apply saved creative
context for subsequent generations. Do not restore a previous pack
automatically. Historical output may keep its original pack provenance. A
one-turn instruction such as "ignore the library for this version" wins for
that turn, but does not change the saved preference unless the user asks.
When the user corrects reused context, call record-context-feedback against
the exact item/version and signal whether it was unhelpful, incorrect, or
outdated. Never invent a source or silently overwrite source history.
Assets reuse
Before generation, follow the reuse ladder above: explicit request and current
asset/kit first, then a pinned/current pack, then narrow library search. Respect
creative-context.contextMode: "off" without silently restoring a pack. This
shared Agent-page Library does not replace Assets' existing /library media
workflow.
To submit an asset to a governed Creative Context, use the Context tab or
manage-context-membership; it pins immutable media bytes and metadata. Reuse
only its opaque native clone reference through the Assets action path. Use
operation="submit-latest" with a Library membership id when its native update
status reports update-available.
Search visual references separately from factual evidence. When a retrieved
image should directly guide generation, import its stable media URL with
import-asset-from-url as a reference asset in the selected brand kit, then
pass that asset id through the normal referenceAssetIds path. Do not pass a
context-item URL directly to an image provider. Keep the returned
contextPackId and reuse labels in generation-run and output-asset metadata
alongside the normal reference selection provenance.
When the approved asset itself should be reused, call
clone-creative-context-asset with its exact item and version ids instead of
regenerating it. The typed action copies the approved private object through
Assets' normal import path; generic context actions never expose its blob
handle.