Start with the current capability boundary
The official Figma material frozen on August 6, 2026 presents Make as a prompt-driven tool for producing and iterating on code-backed interfaces. The dedicated Make page names several ways design context may enter the workflow, including Make kits, npm packages, attached frames or PDFs, codebases, and design assets. This supports a context-governance workflow. It doesn't establish that every source has the same authority, maps to the same generated properties, or remains synchronized after generation.
Feature status needs the same caution. The captured Make material labels a local-codebase workflow as coming soon, so don't write a project plan that treats the route as already available. Before running a real project, check Figma's current documentation and interface for plan requirements, controls, supported inputs, and release status.
Context isn't compatibility evidence
A page that names a package, frame, PDF, codebase, or design asset as context doesn't prove that Make will ingest your particular artifact correctly. Nor does it prove token mapping, component reuse, synchronization, generated-code quality, or rendered parity.
| Observed boundary | Safe project conclusion | Still unresolved | |
|---|---|---|---|
| Figma Make generation | Make generates and supports iteration on code-backed UI. | Generated output can be recorded as a downstream artifact. | Whether the output follows a particular system. |
| Named context mechanisms | The captured page names kits, packages, frames, PDFs, codebases, and design assets. | Each supplied item belongs in a versioned context register. | Exact ingestion, precedence, mapping, and propagation. |
| Local-codebase workflow | The captured material labels this workflow as coming soon. | Do not make it a required current step. | Release status and behavior in the live product. |
| Visual editing | Generated results can be iterated on visually. | Edits must be recorded if they create project-local exceptions. | Whether an edit updates any upstream source or related screen. |
Inventory the context before generation
A useful context record answers a simple forensic question: what did Make actually receive for this generation? List the artifact itself, not a vague category such as "our design system." Give it an owner and a version. State which decisions it may make, and mark every missing decision explicitly.
Create separate entries for separate artifacts. A frame may demonstrate composition, while a package may expose components or tokens. A PDF may explain intent. A codebase may contain the current implementation. None should silently inherit authority from another simply because both were attached to the same project.
Context package ID: FM-DS-2026-08-06-01
Generation ID or link: [record after creation]
Prepared by: [name]
Prepared at: [date and time]
Source item: [Make kit | npm package | frame | PDF | codebase | design asset]
Name: [exact artifact name]
Owner: [person or team]
Version or immutable reference: [version, revision, commit, or dated snapshot]
Authority: [authoritative | derived | reference-only]
Intended use: [tokens, components, composition, behavior, imagery, or guidance]
Decisions it may override: [explicit list or none]
Known omissions: [explicit list]
Evidence status: [documented | supplied | mapped | observed | unresolved]
Conflict rule: [which source wins and who decides]
Project-local exceptions: [IDs or none]
Protected surfaces: [surfaces generation must not change]Use immutable references where possible
A package name without a version, or a frame without a revision, turns later diagnosis into guesswork. Record the exact input used for the generation even if the team also maintains a moving latest version.
Consistency problems become expensive when a team patches the visible screen before locating the decision that produced it. Five layers keep cause and symptom separate. One layer may supply evidence about another, but that doesn't automatically make it authoritative.
| Layer responsibility | Contents | Correction owner | |
|---|---|---|---|
| 1. Authoritative design decisions | Owns approved system policy. | Semantic roles, typography, spacing, layout, component rules, motifs, modes, and prohibitions. | Design-system owner or named product design authority. |
| 2. Supplied Make context | Owns the bounded package given to Make. | Exact kits, packages, frames, PDFs, codebase references, assets, prompt constraints, versions, and omissions. | Person preparing and validating the Make context package. |
| 3. Generated UI or code | Owns the produced implementation. | Make's screens, components, styles, code, and initial behavior. | Implementation owner, with regeneration when the defect originates upstream. |
| 4. Project-local exceptions | Owns deliberate deviations from the general rule. | Approved differences required by a specific product, surface, viewport, or behavior. | Product and design owner who approved the exception. |
| 5. Rendered observations | Owns evidence about what happened. | Screenshots, recordings, interaction results, viewport checks, state checks, and unchanged-surface checks. | Reviewer who captured the evidence; correction routes to layers 1 through 4. |
Set a fixed precedence rule for disagreements between layers. An explicit approved exception may override the general source within its named scope. Everywhere else, the authoritative design decision wins. Generated output and rendered appearance don't become policy merely because they exist.
Generation is a proposal. Acceptance is an evidence-backed decision.
Write the context contract before prompting
The context register records what Make received. The context contract defines what the generation must preserve. Write both before generation so a plausible first screen can't redefine success after the fact.
- Allowed components and variants, including whether new components may be invented.
- Semantic color roles for backgrounds, text, controls, borders, focus, status, and data display in each required mode.
- Typography families, roles, available weights, scale, line-height rules, and prohibited treatments.
- Spacing and layout constraints, including density, container behavior, alignment, and responsive priorities.
- Required interaction states such as default, hover, focus, disabled, loading, empty, and error.
- Protected surfaces that must remain unchanged during the generation or revision.
- Approved local exceptions, each with scope, reason, owner, and review condition.
- Non-goals, including features, redesigns, data changes, or visual directions outside this generation.
- Evidence owner and the conditions for accept, revise, or block.
Context contract ID: FM-CONTRACT-01
Authoritative source: [name and version]
Allowed components: [list]
Allowed variants: [list]
Semantic roles and modes: [reference or bounded list]
Typography contract: [families, roles, weights, scale]
Spacing and layout: [constraints]
Required states: [list]
Responsive conditions: [representative widths and expected adaptations]
Protected surfaces: [list]
Approved exceptions: [IDs or none]
Non-goals: [list]
Accept when: [observable conditions]
Revise when: [correctable failures with known owner]
Block when: [missing authority, critical task failure, or unsafe unresolved change]
Evidence owner: [name]
Decision owner: [name]Use Ambient Sage only as an upstream record
Ambient Sage is a concrete example of what the source side can contain. Its public kit page records DESIGN.md guidance, semantic light and dark roles, typography, layout direction, motifs, and implementation exports. The published typography assigns Plus Jakarta Sans to heading and body roles and JetBrains Mono to technical strings. Its visual direction uses warm sage surfaces, restrained saturated yellow, generous rounding, and a compact product-oriented type scale.
Token specimen · real values
Ambient Sage
Live renderAmbient Sage's actual tokens — the same values its exports use.
For this example, a bounded source entry can identify Ambient Sage version 1 as authoritative for the proposed visual direction and note that its public artifacts are available for inspection. Every Make-specific field stays unresolved until someone runs and records the workflow.
Source item: Identity Forge Ambient Sage
Version: v1, public page updated July 30, 2026
Authority: proposed upstream design direction
Documented contents: DESIGN.md guidance; semantic light and dark roles; typography; spacing and layout direction; motifs; implementation exports
Figma Make ingestion: unresolved
Destination mapping: unresolved
Component compatibility: unresolved
Mode propagation: unresolved
Synchronization after change: unresolved
Generated-code quality: unresolved
Rendered parity: unresolvedInspect the source before testing the handoff
The Ambient Sage public kit lets you inspect the token roles, typography, spacing, and written guidance that would sit upstream of a Make experiment. Leave the Make-specific mapping fields unresolved until you have real project evidence.
Record generated output and exceptions separately
After generation, freeze the output under review. Record its generation identifier, time, input package, prompt or instruction revision, and any manual edits. If someone changes a button color, responsive rule, or component afterward, put that change in the exception record. It shouldn't quietly rewrite the context contract.
Keep each exception narrowly scoped. "Mobile is different" is too vague to review. "Checkout summary uses a stacked layout at the agreed compact viewport because the price breakdown cannot fit without truncation" names a testable difference. Record who approved it and which general rule it overrides.
Exception ID: EX-04
Surface: [screen and component]
Condition: [state, mode, viewport, or product condition]
General rule overridden: [contract reference]
Replacement decision: [exact behavior or visual rule]
Reason: [project-specific need]
Approved by: [owner]
Evidence required: [observation]
Status: [proposed | approved | rejected | superseded]A local fix can be legitimate
Exceptions aren't inherently a problem. An unrecorded exception may later look like accidental drift, while an accidental deviation may later be defended as intentional.
Verify representative generated UI
Don't review every screen with equal depth, but don't approve the system from one polished default state either. Select representatives that expose different failure types: a dense screen, a form, a navigation surface, a destructive or high-risk action, a narrow layout, and any screen where light and dark behavior diverge.
| Coverage target | Evidence to capture | Decision rule | |
|---|---|---|---|
| Representative screens | Core task, dense surface, form, and navigation or shell. | Rendered evidence tied to the frozen output and expected source rules. | Accept only if each in-scope task completes and the intended system is traceable. |
| Component states | Default, hover, focus, disabled, loading, empty, and error where relevant. | Images, recordings, or test results showing the required states. | Revise if a required state is missing, locally invented, or inconsistent with the contract. |
| Light and dark modes | The same semantic roles and representative components in every required mode. | Paired observations for each required mode. | Block if a required mode is absent or critical content and controls become unusable. |
| Responsive conditions | Wide, intermediate, and compact conditions chosen for meaningful layout changes. | Observed adaptations at the recorded viewport conditions. | Revise local layout defects; route missing responsive policy to the authoritative layer. |
| Protected surfaces | Screens or components declared outside the generation scope. | Before and after evidence for each protected surface. | Block unexpected changes until their cause and reach are known. |
| Generated artifact | The exact output under review. | Immutable output reference plus recorded manual edits and exceptions. | Do not accept an artifact that cannot be tied to the reviewed context package. |
For every cell you inspect, record an observation rather than a judgment alone. "Looks inconsistent" is difficult to route. "Compact checkout uses a raw gray value for secondary text instead of the registered muted text role" identifies the surface, condition, observed value, expected rule, and likely ownership layer.
Observation ID: OBS-12
Screen or flow: [name]
Component or region: [name]
State: [default, hover, focus, disabled, loading, empty, error]
Mode: [light or dark]
Viewport condition: [wide, intermediate, compact, or exact width]
Expected source rule: [contract reference]
Observed result: [specific result]
Evidence: [screenshot, recording, code reference, or test result]
Protected surface affected: [yes or no]
Likely owning layer: [1, 2, 3, or 4]
Correction owner: [name]
Disposition: [pass | revise | block]Route failures to the responsible layer
Start diagnosis at the earliest layer capable of producing the symptom. If the authoritative source never defines an error state, another prompt can't reliably repair the policy gap. If the source is clear but the context package omitted the rule, fix the package. If Make received the rule and generated a conflicting local value, correct or regenerate the output. When an approved exception applies, update the evidence and keep its scope narrow.
| Observed failure | Check first | Correct at | |
|---|---|---|---|
| No rule exists for a required state | A required state has no declared expected result. | Authoritative design decisions and the named owner. | Layer 1: define and approve the missing decision. |
| A valid rule was absent from the supplied package | The source contains the rule, but Make did not receive it. | Context register, versions, omissions, and selected artifacts. | Layer 2: rebuild the bounded context package. |
| Generated output contradicts supplied context | The frozen context is clear, but the produced UI differs. | Generated artifact, local literals, component selection, and code. | Layer 3: revise or regenerate the implementation. |
| One surface intentionally differs | A product-specific need may justify a bounded deviation. | Exception ID, scope, reason, approval, and evidence condition. | Layer 4: approve, narrow, reject, or supersede the exception. |
| A screen looks wrong but the cause is unknown | A visible symptom has not yet been traced. | Observation tied to state, mode, viewport, and expected rule. | Layer 5 records evidence, then routes correction to layers 1 through 4. |
| Protected content changed | An out-of-scope surface differs after generation. | Generation scope, output diff, and before and after evidence. | Block until the responsible upstream or generated layer is identified. |
Don't repair every symptom in the prompt
Revise the prompt when the supplied context is incomplete or ambiguous. Doing so is wasteful when the authoritative source lacks a decision, and risky when a local implementation or exception masks an otherwise clear rule.
Finish with accept, revise, or block
The final disposition applies to the frozen output and evidence set. It isn't a permanent judgment about Figma Make or the design system. A later generation, source revision, or exception creates a new review subject.
- Accept when the in-scope tasks work, required states and modes have representative evidence, observed results trace to the declared source or approved exceptions, and protected surfaces remain unchanged.
- Revise when the failure is material but bounded, the correction owner and layer are known, and the artifact can be rechecked without redefining the contract.
- Block when authority is missing, a critical task or required mode fails, protected surfaces changed unexpectedly, the reviewed artifact cannot be tied to its inputs, or a material inconsistency has no owner.
Decision record ID: FM-DECISION-01
Reviewed output: [immutable generation or artifact reference]
Context package: [ID and version]
Context contract: [ID and version]
Evidence set: [observation IDs]
Approved exceptions: [IDs or none]
Unresolved material findings: [IDs or none]
Protected-surface result: [unchanged | changed | not verified]
Disposition: [ACCEPT | REVISE | BLOCK]
Reason: [specific evidence-backed statement]
Required corrections: [finding, layer, owner]
Recheck scope: [screens, states, modes, viewports, protected surfaces]
Decision owner: [name]
Decision date: [date]For the first real run, choose one representative flow and complete every record from source to decision. Don't begin by expanding the prompt. First name the authoritative source, freeze the supplied context, and define the evidence required to accept the result.
Figma Make design-system questions
Can Figma Make use a design system?
The frozen official Make material names several design-context mechanisms, including Make kits, packages, frames, PDFs, codebases, and design assets. This supports supplying design-system context, but a real project must still verify availability, ingestion, mapping, precedence, and generated behavior.
Should the generated Figma Make UI become the source of truth?
No. Treat it as a downstream artifact unless your team explicitly reviews and promotes a decision into the authoritative system. A generated value or visual edit shouldn't become policy merely because it appears in the output.
Can I import an Identity Forge kit directly into Figma Make?
This dossier contains no executed Identity Forge-to-Figma Make workflow. Ambient Sage can populate the upstream source record, but ingestion, token mapping, component compatibility, synchronization, generated-code quality, and rendered parity remain unresolved.
Does a good first screen prove the design system worked?
No. Check representative tasks, component states, required modes, responsive conditions, and protected surfaces. The first default screen is only one observation.
When should the result be blocked instead of revised?
Block when a critical task or required mode fails, authority is missing, protected surfaces changed unexpectedly, the output cannot be tied to its inputs, or a material issue has no correction owner.
Sources
- Figma Make: Create with AI-Powered Design Tools: The captured official page presents Figma Make as a prompt-driven, code-backed generation and iteration surface. It also names several forms of design context, including Make kits, packages, frames, documents, codebases, and design assets.
- Figma: The collaborative canvas for design, code, and AI: Figma's captured homepage connects shared design context with consistent building across design, code, and AI workflows.
- What is Figma?: The official help article places Figma Make within the broader Figma product family and describes its role in creating functional prototypes, web apps, and interactive interfaces.
- Figma Design: The captured official Design page establishes Figma Design as an upstream surface for interface design, prototyping, design-system work, collaboration, and handoff.
- Figma UI design tool: The captured official UI-design page describes interface design, prototyping, libraries, collaboration, and handoff as relevant parts of the wider workflow.
- Ambient Sage Design Kit: The public Ambient Sage page documents a free kit with DESIGN.md guidance, Plus Jakarta Sans and JetBrains Mono roles, a 31-color palette, and 28 semantic light and dark tokens.