Build
Workspace context
The brand-voice document every skill reads first. Two layers: team baseline + your personal override. Both are exposed via REST so you can sync them with your own systems.
#Read the merged context
The merged endpoint returns the team layer with your personal override applied — the same view a skill sees at runtime.
const ctx = await client.workspaces.context.get({ merged: true });
console.log(ctx.product);
console.log(ctx.voice);
console.log(ctx.wordsToAvoid);#Update the team layer
await client.workspaces.context.updateTeam({
product: 'PromptFloe — multi-agent app studio',
audience: 'solo founders building tools for SaaS',
voice: 'confident, plainspoken, never corporate',
wordsToAvoid: 'synergy, leverage, unlock value',
brandColors: '#7C3AED, #0F172A',
});#Update your personal override
await client.workspaces.context.updateOverride({
voice: 'sharp, terse, slightly cynical',
});The override layer is per-user. Your team layer stays untouched. Skills receive the merged result with your overrides applied.
#Field reference
| Field | Type | Description |
|---|---|---|
| product | string | What you make. One sentence. |
| audience | string | Who buys / uses your product. |
| voice | string | How you sound. Adjectives + 2–3 example sentences. |
| wordsToAvoid | string | Comma-separated list of words your brand never uses. |
| wordsToPrefer | string | Comma-separated list of words your brand uses where others wouldn't. |
| brandColors | string | Hex codes or descriptive names. |
| positioning | string | How you compare to competitors. The pitch. |
| noGoTopics | string | Things you never want surfaced. Compliance, sensitive areas. |
#Per-run override
For one-off runs (testing a different voice, or running on behalf of a specific tenant), pass workspaceContextOverride on the generate / run call. It merges over the persistent layers without mutating them.
await client.skills.run({
alias: 'copywriting',
appId: app.id,
workspaceContextOverride: {
voice: 'playful, irreverent, lots of em dashes',
},
});#Where to go next
PromptFloe developer docs