Update brand kit
niche_brand_kit_updateSet specific BrandKit fields by name. The write path for the structured fields (tagline / boilerplate / voice_notes / forbidden_phrases / signature_phrases / endcard preferences / video voice preference / colors / fonts) without going through the ingest engine. Use after niche_brand_kit_ingest fills the easy stuff, or to commit values the user answered through niche_brand_kit_guided_setup.
Only fields you pass are touched; fields you omit stay at their current value. Lists replace the current value (they do not append). Response includes a diff[] of fields that changed and the full updated kit.
Archiving: pass archive=true to archive a brand (soft and reversible; it disappears from every list but is not deleted), or archive=false to restore one. The default/active brand can't be archived (promote another to default first). A brand with published history won't archive unless you also pass acknowledge=true. Use archive_scope='test' to archive every scratch brand at once (never the default). There is no hard delete here; archive is the removal verb agents have.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Rename an existing brand's display name (its brand_id is unchanged). | |
| accent | No | ||
| archive | No | true archives the brand (soft, reversible; hidden from every list, not deleted); false restores it. Refuses the default/active brand and refuses a brand with published history unless acknowledge=true. | |
| tagline | No | Brand tagline (5-12 words). | |
| brand_id | No | Which brand slot to update. Omit for default; pass a slug to target a specific brand kit (for multi-brand accounts). | |
| cta_text | No | One-line call to action appended to generated posts, e.g. 'DM to commission'. | |
| logo_url | No | ||
| brand_name | No | Display name when creating a new brand_id slot. | |
| primary_bg | No | Primary background color (#rrggbb). | |
| acknowledge | No | Required (true) to archive a brand that has published history, confirming the user means to remove it from the roster even though it shipped work. | |
| boilerplate | No | Brand boilerplate (one paragraph, ≤350 chars). | |
| voice_notes | No | Voice direction in plain prose. A string or a list of strings (the guided-setup text_list form); a list is joined server-side. | |
| external_url | No | Canonical brand URL (homepage). | |
| headshot_url | No | ||
| secondary_bg | No | ||
| text_primary | No | ||
| wordmark_url | No | ||
| archive_scope | No | With archive=true, 'test' archives every scratch brand in one call (never the default). Returns the list of brands archived; each is reversible with archive=false. | |
| text_secondary | No | ||
| body_font_family | No | ||
| endcard_template | No | ||
| forbidden_phrases | No | Phrases never to use in generated copy. Max 16; trimmed beyond. | |
| signature_phrases | No | Phrases the brand uses. Max 16. | |
| endcard_outro_text | No | ||
| headline_font_family | No | ||
| video_voice_preference | No | ||
| endcard_mark_preference | No |