| name | draft-brand-tweet |
| description | Draft tweets for the @your-brand company account. Use this unless the user explicitly asks for a specific person's personal voice. |
Draft Brand Tweet
Generate tweet drafts for the @your-brand company account following 's established voice, competitor-informed positioning, and messaging guidelines.
Default: if the user asks to draft a tweet without specifying an account, draft it as @your-brand.
When to Use
- User asks to write, draft, or compose a tweet and doesn't specify an account (assume @your-brand)
- User explicitly wants a tweet for the @your-brand account
- User needs a post about product updates, <CLOUD_PRODUCT>, model support, partnerships, community, or events
- Use a personal-voice tweet skill only if the user explicitly asks for a specific person's personal voice
Inputs
- Topic or objective (required)
- Tweet type (required):
feature, model-support, demo/showcase, partnership, community, event, POV/opinion, incident
- Must-include facts/claims (optional but strongly recommended for technical posts)
- URL/assets to include (optional)
- Person to feature (optional — name and role, for demo/showcase tweets)
- Length target (optional):
short (~80-130 chars), standard (~180-270 chars)
Process
-
Validate inputs
- If
topic or tweet type is missing, ask for it.
- If the request needs concrete claims but no facts are provided, ask for source facts or continue with clearly non-numeric/high-level wording only.
-
Pull style anchors from corpus and style notes
- Read
.agents/skills/draft-brand-tweet/style-notes.md first — this is the distilled voice guide with patterns, phrases to use/avoid, emoji conventions, tone calibration examples, and terminology guardrails.
- Then scan your brand's recent tweet corpus (if you maintain one) for recent examples matching the tweet type.
- Weight recent tweets highest.
- For each draft, extract 3-5 style cues from matched corpus examples (cadence, phrasing, CTA style, length).
-
Check competitor context
- Read
.agents/skills/draft-brand-tweet/competitor-style-notes.md for competitor patterns and differentiation angles.
- If the topic overlaps with something a competitor recently tweeted about (e.g., model support or a shared feature area), note it and ensure 's angle is differentiated.
- Apply the "where can differentiate" insights when relevant.
-
Apply messaging and terminology guardrails
- If you maintain a separate positioning or messaging repo, align with your own style guide and positioning docs.
- Preserve your product naming consistently (product name, sub-products or platforms, and any capitalized feature names).
-
Ground technical claims in docs
- Check your product docs (if available) for accuracy on technical/product claims.
- If docs are unavailable, skip and note under "Open questions."
-
Draft candidates
- Produce 3 options:
- Option A: Default voice — product-first, concise
- Option B: Shorter / punchier
- Option C: More editorial / POV angle
- Keep wording natural and post-ready.
-
Self-check before output
- Style fidelity: Does this sound like the @your-brand corpus and
style-notes.md?
- Terminology: Does it match messaging docs?
- Factual grounding: Are claims sourced? No fabricated features, metrics, or dates.
- Banned phrases: None of the phrases from the "avoid" list in
style-notes.md?
- Competitor awareness: If relevant, is 's angle differentiated per
competitor-style-notes.md?
Output
Return in this format:
- Recommended draft
- Alternative drafts (2)
- Why this matches style (3-5 concise bullets)
- Competitor context (if relevant — what competitors have said on this topic, how this differentiates)
- Source grounding (bullet list mapping non-trivial claims to source file paths)
- Open questions (only if required facts are missing)
Hard Constraints
- Do not fabricate product capabilities, metrics, dates, customer counts, or roadmap commitments.
- Prefer clear, plain language over hype.
- Keep tone confident and product-first, not generic "AI marketing."
- No hashtags. One emoji max.
- If uncertain, ask for missing facts or use bounded language.
Refresh Context
If you maintain tweet corpora and scraper scripts in a separate repo, refresh them there. For example:
- Refresh the @your-brand corpus:
scripts/twitter-scraper/scrape_tweets.py --user your-org --since YYYY-MM-DD --cookies ...
- Refresh competitor corpora: same script with
--user <competitor_a> or --user <competitor_b> and --min-likes 100
- Re-run style-anchor selection after refresh.
References
.agents/skills/draft-brand-tweet/style-notes.md — voice and style patterns
.agents/skills/draft-brand-tweet/competitor-style-notes.md — Competitor analysis and differentiation
- If you maintain a separate positioning or messaging repo, also check your style guide and positioning docs, plus:
- your brand's tweet corpus (e.g.
tweets/your-org.md)
- competitor tweet corpora for differentiation (e.g.
tweets/<competitor_a>.md, tweets/<competitor_b>.md)
- any scraper tooling used to refresh those corpora