Playbook Engine for repeated AI writing

Never the same way twice.

Unsame tells your AI how to approach each post, reply or script, grounded in what just happened, different from last time, always in your voice. Works with any model. Writes nothing itself.

Connect the MCP
claude mcp add --transport http unsame-engine http://localhost:2980/mcp/engine
Codex, Cursor, Claude Desktop, ChatGPT
Get an API key
Same input. Three draws. Real output.
draw 1 build_on
Engage with
  • they claim local models can't do agentic coding
  • their one run looped for an hour
Approach
quote their point, add the missing angle, end with a question back
Form
length: short; opener: statement
draw 2 hot_take
Engage with
  • they claim local models can't do agentic coding
  • their one run looped for an hour
Approach
one contrarian line, backed by one fact from own experience
Form
length: one_liner; opener: number
draw 3 behind_scenes
Engage with
  • they claim local models can't do agentic coding
  • their one run looped for an hour
Approach
hook: the surprising number firstsetup: what we triedturn: what brokepayoff: the fix, one line
Form
length: medium; opener: question

01 The problem

Same model, same shape, different nouns.

  • Your AI has one way of writing a post.
  • Your replies sound canned.
  • Adding “be creative” did nothing.

Alignment training narrows models to the few “typical” answers raters prefer. Raising the temperature adds noise inside that one approach rather than a new approach. And a model asked to “do it differently this time” cannot produce the randomness that would take. The approach has to be chosen outside the model, from an explicit list, with real entropy and a memory of what was already used.

Verbalized Sampling, arXiv 2510.01171 ↗ String Seed of Thought, arXiv 2510.21150 ↗

02 How it works

A protocol before every draft.

Before each generation Unsame reads the input and returns a protocol. Your model writes the text. Unsame writes nothing.

  1. 01

    Input

    A post to answer, a mention, an event, or nothing at all for a planned slot.

  2. 02

    Situation and hooks

    Which of your situations apply, and the exact points in the input the output must engage with.

  3. 03

    Approach picked

    One of your ways that fits, chosen with real randomness, with the recent ones penalised.

  4. 04

    Protocol into your model

    Situation, hooks, facts, approach, form, voice and bans. Your model writes the text.

Input

Local models will never be good enough for agentic coding. I ran one for an hour and it just looped on the same failing test.

Protocol from Unsame

Situation: reacting to someone's postEngage with:- they claim local models can't do agentic coding- their one run looped for an hourApproach: quote their point, add the missing angle, end with a question backForm: length: short; opener: statementAlways: one real example from own workVoice: casual, concrete, no emojisNever: politics, competitor names

Written by your model

One run that loops for an hour says something about that setup, not about local models. The same task finished in 14 minutes on a 32B here. What was the context window set to?

Real output, written by Claude from this protocol. Next time the approach will not be this one.

03 Examples

Same rules. Different plays.

Real inputs for each starter template, run through the engine and written by real models. The rules never change; the approach does. The same model without a protocol writes the same post every time.

Answer a post in your account voice without sounding like the last ten answers.

Written by
Local models will never be good enough for agentic coding. I ran one for an hour and it just looped on the same failing test.

= Same every run

Situation
reacting to someone's post
Engage with
they claim local models can't do agentic codingtheir one run looped for an hour
Always
one real example from own work
Voice
casual, concrete, no emojis
Never
politics, competitor names

Plain prompt · Claude, no protocol

With Unsame · a different play each run

  1. Run 1
    Plain prompt

    Fair point on the looping, but I'd be careful generalizing from one run. Local models have improved a lot, and loops like that are often a context or tooling issue.

    With Unsame

    build_on

    • length short
    • opener statement

    One run that loops for an hour says something about that setup, not about local models. The same task finished in 14 minutes on a 32B here. What was the context window set to?

    How this play was written

    quote their point, add the missing angle, end with a question back

    Situation: reacting to someone's postEngage with:- they claim local models can't do agentic coding- their one run looped for an hourApproach: quote their point, add the missing angle, end with a question backForm: length: short; opener: statementAlways: one real example from own workVoice: casual, concrete, no emojisNever: politics, competitor names
  2. Run 2
    Plain prompt

    One hour of looping is frustrating, but it's one run. Local models are improving quickly, and that failure often points to the setup rather than the model.

    With Unsame

    hot_take

    • length one_liner
    • opener number

    14 minutes. That is how long a local 32B took on our failing-test task, and it never looped.

    How this play was written

    one contrarian line, backed by one fact from own experience

    Situation: reacting to someone's postEngage with:- they claim local models can't do agentic coding- their one run looped for an hourApproach: one contrarian line, backed by one fact from own experienceForm: length: one_liner; opener: numberAlways: one real example from own workVoice: casual, concrete, no emojisNever: politics, competitor names
  3. Run 3
    Plain prompt

    That loop sounds frustrating. Still, one run is a small sample. Local models are getting better at agentic work, and looping is often a setup problem.

    With Unsame

    behind_scenes

    • length medium
    • opener question

    Why did our local model loop for an hour too? Same failing test, same output, again and again. We had pinned the context at 4k. Raised it to 32k and the run finished in 14 minutes.

    How this play was written
    1. hook: the surprising number first
    2. setup: what we tried
    3. turn: what broke
    4. payoff: the fix, one line
    Situation: reacting to someone's postEngage with:- they claim local models can't do agentic coding- their one run looped for an hourApproach:1. hook: the surprising number first2. setup: what we tried3. turn: what broke4. payoff: the fix, one lineForm: length: medium; opener: questionAlways: one real example from own workVoice: casual, concrete, no emojisNever: politics, competitor names

04 Your playbook

Your strategy. Your approaches. Our dice.

Seed it from one sentence, edit it like a file. Strategy is fixed, situations and ways are yours, and Unsame varies only the choice.

version: 7                      # server-assigned, increments on every change
goal: indie_dev_x
goal_text: "grow the account as an indie dev: one post a day, reply to mentions"
language: en
voice: "casual, concrete, no emojis"
always: ["one real example from own work"]
never: ["politics", "competitor names"]
Fixed

Strategy

Copied verbatim into every protocol. Never varied, never learned, never retired.

situations:
  - id: world_event
    label: "reacting to a news event"
    when: "the input is about a news event relevant to dev tools or AI"
  - id: someone_post
    label: "reacting to someone's post"
    when: "the input is another person's post we may react to"
  - id: scheduled
    label: "a planned post"
    when: "no external trigger; a planned post"
    default: true
Yours

Situations

Plain-language conditions tested against each input. Several can be active at once; exactly one is the default.

ways:
  - id: hot_take
    fits: [trend, world_event]
    how: "one contrarian line, backed by one fact from own experience"
  - id: build_on
    fits: [someone_post]
    how: "quote their point, add the missing angle, end with a question back"
  - id: behind_scenes
    fits: [scheduled, trend]
    how:
      - "hook: the surprising number first"
      - "setup: what we tried"
      - "turn: what broke"
      - "payoff: the fix, one line"
Yours

Ways

Your approaches. A way fits the situations you list; steps give scripts and long forms an order.

axes:
  length: [one_liner, short, medium]
  opener: [statement, question, number]

variety:
  recent_window: 10             # draws per scope remembered for anti-repeat
  entropy_floor: 0.3            # minimum normalized entropy of the way distribution
Varied by Unsame

Axes and variety

Form values chosen independently of the way. The only thing Unsame varies is the choice, never your wording.

learning:
  mode: propose                 # off | propose | auto
Learner proposes

Learning

off, propose or auto. Proposals come from inputs the playbook missed; your nodes are never touched.

05 Learning

It learns. You stay in control.

When an input does not fit anything you wrote, the learner proposes a new situation or way from what your inputs actually look like. Your nodes are never touched.

proposal from misses trial active retired retired nodes can be restored

learning: off

Nothing is learned and no inputs are kept. The playbook is exactly what you wrote.

learning: propose

Inputs the playbook handled badly are clustered into proposals. You accept, edit or reject each one.

learning: auto

Proposals enter as trials on a small share of draws and are promoted or retired by outcomes.

  • Pin a way to exempt it from anti-repeat. Ban one and it is never drawn.
  • Voice, always and never are never varied, never learned, never retired.
  • Every change is a numbered version you can read and export.

06 Plug in

Plug in anywhere.

MCP for Claude Desktop, Claude Code, ChatGPT, Cursor and any host. One HTTP call for pipelines, with an OpenAPI schema to generate a client in any language. Any model, and no model keys shared with us.

Two servers: the engine (scope advise) calls advise before every draft; the author (scope author) edits the playbook.

  1. Add both servers.

    claude mcp add --transport http unsame-engine http://localhost:2980/mcp/engine
    claude mcp add --transport http unsame-author http://localhost:2980/mcp/author
  2. Start Claude Code, run /mcp, pick each server and choose Authenticate. Your browser opens the sign-in; OAuth is discovered automatically.

07 Fields

Anywhere a job repeats.

The engine is domain-free; the playbook is what changes. It fits where the job repeats, variety matters and the house strategy is fixed.

  • Social posts and replies

    Founders, creators, social managers, agencies

    Daily posts converge on one template; replies to mentions sound canned; trend reactions arrive late or tone-deaf.

    Situations: event, trend, someone’s post, scheduled. Ways: stances and reply moves.

  • Newsletters and blogs

    Writers, marketers, indie hackers

    Every issue opens the same way, with the same structure and the same AI voice.

    Situations: launch, lesson, roundup, reaction. Ways: openings and structures.

  • Video and podcast scripts

    YouTubers, short-form creators, studios

    Hooks repeat, the beat order never changes, scripts feel templated.

    Ways as beat lists: hook, setup, turn, payoff.

  • Cold outreach and sales replies

    SDRs, founders, agencies

    Sequences are detectably identical; replies ignore what the prospect said.

    Situations: objection types and intent signals. Facts: prospect research.

  • Support and community replies

    Support teams, community managers, support agents

    Answers are correct but robotic, the same phrasing for everyone, missing the actual complaint.

    Situations: complaint, how-to, praise, bug. Facts: account data.

  • Ad, landing and product copy

    Marketers, growth teams

    Variants are one idea reworded, so A/B tests compare near-duplicates.

    Ways as angles: fear, proof, contrast, story. Axes: length, CTA form.

  • Agentic systems

    Developers of posting bots, support agents, content pipelines

    The agent loops on one strategy, "be creative" does not help, and it has no memory of what it already tried.

    Any of the above, called over MCP or one HTTP request.

  • Education and training

    Course creators, L&D

    Explanations reuse the same analogy and structure every lesson.

    Ways: analogy, worked example, contrast, misconception first.

  • Games and interactive fiction

    Narrative designers

    Quests, NPC lines and events repeat in shape.

    Situations: player state. Ways: scene moves.

  • Developer-facing writing

    DevRel, maintainers

    Changelogs, release notes and review comments land in one monotone.

    Ways: framing per change type.

Weak fit, not targeted: one-off documents, legal and compliance text, anything where variety is a defect.

08 Objections

Fair questions.

Isn’t this just a prompt library?

A library hands you the same prompt every time. Unsame reads the input, detects the situation, extracts what to engage with, and picks a different fitting approach each time, with memory of what it already used.

Why not just raise the temperature?

Temperature adds noise inside one approach. It does not change the approach. Alignment training narrows models to a few typical answers, and a model asked to pick randomly cannot supply the entropy, so the choice has to happen outside it.

Verbalized Sampling ↗ String Seed of Thought ↗

Will it go off-brand?

Voice, always and never are copied verbatim into every protocol and are never varied, learned away or retired. Unsame varies only which of your approaches is used.

Do I have to write the playbook?

No. Seed it from one sentence, edit anything like a file, and let the learner propose the rest from what your inputs actually look like. You accept or reject every proposal unless you turn on auto.

Which model do I use?

Yours, any model. Unsame never sees your model key and never writes your text. It returns a protocol; your model writes the post, reply or script.

Do you promise more engagement?

No. We make mechanism claims only: a different approach each time, grounded in the input, in a fixed voice. You can check each of them in the live demo above. Outcome reporting lets the engine weight what works for you, and we will not quote lift numbers until they are measured on real tenants.

09 Pricing

One unit: a credit is a draw.

A free plan with monthly credits and no card. Paid plans add included credits, overage under a spend cap you set, and more of what the engine lets you do. Protocol quality is identical on every plan.

1 credit = 1 draw. advise with k=3 is 3 credits.

Stateless, multi-tenant, OAuth 2.1.

Your inputs are retained only when learning is on. Export and delete anytime. Unsame never sees your model key.