Brand Kit and Approval Gates for Teams
What Versely brand kit stores vs standing rules and job briefs. When teams require human approve, budget ceilings, interrupt mid-run, who connects social.
A team using Versely Agent does not fail because the model forgot the brand. It fails because hex codes, standing rules, and this week's job got dumped into the same paragraph. One person pastes a style-guide PDF. Another says "remember our blue." A third approves a plan that also posts. Credits run. Something lands off-tone on a live account.
This page is for that team. It teaches what belongs in the brand kit, what belongs in standing rules, and what must stay in the job brief. It also covers when to require human approve before generate or post, how to set budget ceilings, how to interrupt mid-run, and who should connect social. Versely is early. Treat this as an operating habit you can reuse, not a promise that one save makes every seat perfect.
Sibling deep-dives: set_brand_kit stores hex and type, not rules, guardrails for agent-run brand content, approving or rejecting an agent plan, and briefing an agent instead of writing prompts.
Three stores, three jobs
| Store | Holds | Applies when |
|---|---|---|
| Brand kit | Hex, type, voice sentence, tagline, logo URL, product shots, caption style, default aspect | Auto-injected into later generates and workflows |
Standing rules (remember) |
Decision rules that stay true next week | Across threads; edit in Saved Context |
| Job brief | Count, offer, sources, ceiling, approval, done criteria for this run | Only for the job you just asked for |
Mixing them is expensive. A hex saved only as chat prose does not merge like a palette key. A "never invent reviews" rule stuffed into a kit field becomes decoration. A seasonal offer left in memory outlives the sale.
If Claude Code or Cursor shares the account, the kit is still the store (giving a coding agent your brand kit). Saving the kit does not spend generation credits.
What belongs in the brand kit
Say it once with set my brand kit. Partial upsert: only the fields you pass change. Colors and fonts merge by key.
Put these in:
- Colors with real keys (
primary,accent,surface) and real hex values - Fonts with keys (
heading,body), not "something clean" - Voice / tone as a short brand sentence the renderer can apply to copy
- Tagline you actually use, so scripts stop inventing one
- Logo URL and product shots as hosted assets, not local paths or prose descriptions
- Caption style from /caption-styles when you have a house look
- Default aspect ratio (often 9:16) when that is the house default
Read it back with get_brand_kit after the first write. Clear one stale field with clear_brand_kit_field. Omitting a field on a later write does not delete it.
The kit does not pin a video model, enforce Instagram's AI label, or hold a face turnaround. Model choice and face locks live in the brief, a saved workflow, or an uploaded asset. Disclosure is process plus preference, not a kit toggle. The kit stops palette drift; it does not replace legal review.
What belongs in standing rules
Standing rules are lasting preferences: remember stores a standing rule, not a brand kit. Teach them with teach the agent a lasting preference.
Good standing rules:
- "Keep captions minimal; burn-in over platform auto captions on short-form."
- "Never invent reviews, star ratings, or medical cure claims."
- "Always estimate credits before a batch generate."
- "Always plan first; never auto-post unless the brief says so."
- Audience and tone targeting that is not the brand voice sentence itself
Keep hex and logos out of memory. Keep one-off edits ("make this warmer") out of memory. Delete seasonal sale lines when the sale ends. Check Saved Context after onboarding; old memories still shape routing.
What must stay in the job brief
The kit and memories are priors. The brief is the job. Every team run should still name:
- What "done" means (count, length band, platforms)
- Sources for this week (which stills, which shoot files, what may be generated)
- Offer or angle that is only true this week
- Budget ceiling in credits, with "stop and ask if over"
- Approval gate (plan first; no auto-post; who reviews mute QA)
- Fallback (retry once, swap model, or surface and wait)
Same producer shape as briefing an agent. Attachments beat adjectives. The kit will not invent this week's product drop.
When to require human approve
Use Plan first when any of these are true:
- More than one generation step, or a batch whose credit total you have not seen
- Any
post_to_social_mediaor schedule step - A new format, new claim, or new face the brand has not approved as a lane
- Shared credit pool with junior seats
Use Auto for a trusted one-step fix (one still edit, one daily caption path).
On the plan card, open the args, not only the description. Untick post and schedule until mute review passes (approving or rejecting an agent plan). Plans expire in cache after a few minutes; do not park work on an unapproved plan. Trusted recurring packs become saved workflows later.
Team rule: approve generate separately from approve post. Mute-check keepers on a phone, then schedule. Scheduling creates a review window; immediate post does not.
Budget ceilings
Write a number in the brief: "Do not exceed N credits without asking. Quote the plan before generate." Ask the agent to estimate first. Estimating is free; generation spends.
Ceilings do not make models cheaper. They stop unapproved steps from spending. Pair them with Plan first. For shared seats, put the ceiling in standing rules and restate it in every pack brief.
If the quote is wrong, the brief was ambiguous before a credit ran. Fix count, length, or model tier in words. Do not approve and hope.
Interrupting mid-run
Honest limits:
- Reject plan before execute: no generate or publish on that card. Planning turn already billed is not refunded.
- Untick steps: those ids do not run; the rest can.
- After execute: closing the client does not unwind provider-dispatched generates. Credits are spent.
- Background tasks: cancel while still running; that is not undo for finished renders.
- Scheduled posts: cancel before fire; already-live is best-effort pull.
Interrupt early (plan and schedule), not after six premium video calls.
Who can connect social
Connecting an account is an OAuth step a human must finish. The agent can start connect a social account and return an auth URL. It cannot complete OAuth for you. Connecting itself does not spend generation credits.
Team policy that holds up:
- Only named owners (social lead, founder, or ops) complete OAuth for brand accounts.
- Contractors generate and caption; they do not connect brand Instagram, TikTok, YouTube, or LinkedIn unless the owner is present.
- Keep posting behind Plan first until the format is trusted. Connected accounts are a privilege, not a default for every seat.
- Outside chat, scope keys narrowly (post without generate) so a bug cannot mint video.
List connected accounts before a brief that assumes posting. Planning a post to an unconnected platform wastes a turn.
Example team brief
Copy, fill, paste. Kit and memories should already be set.
Team pack brief - WEEK_YYYYMMDD
Owner: SOCIAL_LEAD
Seats on this run: EDITOR_A (generate), SOCIAL_LEAD (approve + schedule)
Kit assumed:
- Brand kit already saved (accent #HEX, Paper captions, 9:16 default).
- Standing rules: no invented reviews; plan first; no auto-post.
This week job:
- Count: 4 keepers, 15-25s, Instagram Reels + TikTok.
- Angle: autumn restock, no price claims beyond "back in stock."
- Sources: attached 3 product stills + 1 prior keeper for tone.
- Caption family: Paper, middle third, burn before upload.
Budget ceiling:
- Cap CREDIT_CAP. Estimate and show the plan before any generate.
- Stop and ask if the quote exceeds the cap.
Approval gate:
- Plan first. SOCIAL_LEAD approves selected step ids.
- Untick all post/schedule steps on first approve.
- Mute phone QA by SOCIAL_LEAD, then schedule (do not post immediately).
Done means:
- 4 captioned 9:16 MP4s named WEEK_YYYYMMDD_01..04, safe-area clean.
- Nothing live until schedule is confirmed in the queue.
Approval checklist
Use this before you hit run:
- Brand kit read-back matches live hex, logo, and caption family
- Standing rules checked in Saved Context (no stale sale line)
- Brief names count, platforms, sources, ceiling, and done criteria
- Plan mode on; credit estimate under the ceiling
- Args checked (model, aspect, image URLs, platforms)
- Post and schedule steps unticked until mute QA
- Social accounts connected by an approved owner only
- Schedule queue has room; cancel path known if something looks wrong
- Keepers reviewed muted on a phone before anything goes live
FAQ
Is the brand kit enough for a whole campaign?
No. The kit holds durable brand facts. The campaign still needs a job brief: count, offer, sources, ceiling, and approval (briefing an agent).
Should we put "never auto-post" in the brand kit?
No. That is a standing rule or a brief line. The kit stores hex, type, voice, assets, and defaults, not publish policy (remember).
Can juniors connect the brand TikTok?
Only if ownership policy says so. The agent returns an OAuth link; a human must finish it. Prefer named owners. Contractors can generate without connecting.
What if we approve generate and then hate the pack?
Do not approve post. Cancel schedules before they fire. Fix the brief and run a new plan. Dispatched generates are spent.
Does rejecting a plan refund everything?
No. You avoid generation and publish on that card. The planning turn already ran. Skip half-formed briefs if you want zero spend.
Where do coding agents fit?
Same kit, same credit pool. Set once, then brief with ceilings (giving a coding agent your brand kit).
Takeaway
For teams on Versely Agent, split the stores on purpose: brand kit for hex, type, voice, and assets; standing rules for lasting decisions; job brief for this week's count, offer, ceiling, and approval. Require Plan first whenever a batch or a post is involved. Write a credit ceiling and estimate before generate. Interrupt at the plan and schedule layers, not after premium renders. Let only named owners finish social OAuth. That is how brand kit plus approval gates keep speed without handing every seat a live publish button.