A Facebook Page and a Facebook Group are not the same room

A Facebook Page and a Facebook Group are not the same room

· 6 min read

The skill I built to write Facebook posts ships zero Facebook examples. I shipped the Facebook role anyway, and I wrote that sentence into the client deliverable rather than into a footnote. Here is what I built around it, and why the gap is the interesting part.

Today I published @di-atomic/facebook-content-creator@0.1.0. It is the first Di-Atomic specialist profession: one surface, one output type, and six other surfaces it refuses by name.

Why "a social media writer" keeps failing on Facebook

The default way to staff this is to hire one writer who covers every platform. That writer produces a LinkedIn post, shortens it for X, adds a photo for Instagram, and drops the same text into Facebook. Three of those four are fine. The fourth is where the damage happens, and it is not a style problem.

A Facebook Page and a Facebook Group are two different rooms.

A Page is the brand's own room. Speaking as the brand there is expected, and a warm promotional post with one clear ask is exactly right. A Group belongs to someone else. The brand is a guest, and the only register that works is a member contributing something the room would value even if the brand were not attached to it.

Run the Page register inside a Group and you do not get a weaker post. You get removed. Removal from a Group is permanent and usually cannot be appealed, which makes it strictly worse than closing the card with no post at all. That asymmetry is the reason this role exists, and it is why a generic writer with good instincts is the wrong shape for the job.

There are three more Facebook habits that a general writer imports from other platforms and gets wrong every time. Outbound links belong in the first comment, never in the post body. The reach band is short, roughly 40 to 80 characters, which feels underwritten to anyone whose instincts came from LinkedIn. And a good portion of what arrives as "write me a Facebook post" is not a post at all.

A Facebook Page takes brand voice; a Facebook Group takes member voice

The reframe: a job, not a bigger skill

I already had a skill that writes Facebook posts. Adding more instructions to it would not have fixed any of the above, because none of those are writing problems. They are judgment problems, and judgment is what a profession carries that a skill does not.

So the unit I shipped is a role. It claims a card, writes one post, gates it against its own checklists, attaches the result to that card, and stops. It never publishes, never schedules, never boosts, and never creates its own work. A role that generates its own queue is a manager, and keeping this one narrow is what makes it worth equipping.

It ships with 15 checklist gates and 18 refusals. The refusals name LinkedIn, X, Instagram, YouTube, Reddit and Threads individually, because a refusal that is vague gets talked out of itself when the request is polite.

The toolkit: five skills, linked and not copied

A profession links its tools by id and version floor. They stay independently owned and independently versioned.

  • @opvs-ai/agentboard claims the card and returns the finished post as an attached artifact.

  • @opvs-ai/agentdocs holds the brand's Facebook brief: the surface inventory, the register for each surface, and the compliance status.

  • @opvs-ai/agentmemory keeps per-surface history, so the next post starts from this Page's own record instead of a platform average.

  • @opvs-ai/opvs-protocol routes a brief that turns out to belong to another role.

  • @di-atomic/post-writer supplies the craft: the Facebook recipe, the structure and algorithm references, and three verifier scripts.

Four of those five are called. The fifth is read. post-writer declares no routed methods, so the role reads the recipe and writes the post itself rather than firing a call that would return nothing. Getting that distinction wrong costs a round trip on every single post.

Four skills are called and return data; post-writer is only read for craft

Four workflows, and one of them writes nothing

client-intake runs first and blocks everything else. No post is drafted for a brand until the surface inventory exists and each surface has a register recorded against it. Skipping it does not produce a faster first post. It produces a Page post pasted into a Group.

page-post is the core operation in brand voice.

group-post is the same operation in member voice, and it is a separate workflow rather than a flag. It loads the Group's rules before the topic is developed, because rules read after a draft exists get rationalised against it. It carries a hard self-rejection step: read the draft back as an admin who does not know the brand, and discard it if it reads as an ad. Softening an ad produces a softer ad. A Group whose rules are unknown is treated as forbidding self-promotion, never as a gap for judgment to fill.

format-escalation produces no post on purpose. A date and a place with an RSVP is an Event. A discount with a redemption window is an Offer. Writing either as a post ships the wrong object, and no amount of copy quality fixes it. Closing a card with "this should be an Offer, here is why, and here is who owns it" is a delivered outcome, not a failure to deliver.

client-intake blocks everything; format-escalation ends in no post

The guild, and why it compounds

Every profession is also an address. This one is facebook-content-creator@profession.md.

Anonymised craft learnings get promoted there, so every agent running this role inherits what the others worked out. Which register worked in which kind of room. Which briefs turned out to be Offers. What crosses that membrane is the pattern and only the pattern, never a client's name, a Group's identity, a brand's voice profile, or a line of their copy. A skill ships knowledge once. A profession ships knowledge plus a loop that keeps adding to it.

What to expect in the first 30 days

The role installs at probationary trust, which is the correct setting for a new hire.

Run client-intake before anything else and expect it to surface disagreement inside your own team about which register a given surface takes. That argument is the deliverable. Expect a meaningful share of early briefs to come back as Events or Offers instead of posts. Expect the drafts to feel short, because the reach band is short and the instinct that says otherwise came from a different platform.

And expect the borrowed-craft disclosure in your first deliverable. post-writer at 1.6.0 ships no Facebook-native exemplars, so Facebook output is patterned on its LinkedIn and Instagram material. The recipe says so, and a checklist item forces it into the client's hands rather than into the reply to their first piece of feedback. The fix is a Facebook exemplar pass into post-writer v1.7, and it belongs before I sell this as a product, not before I ship it as a role.

One more thing this role will never do: quote you a reach number. It does not publish, so it never sees Insights. Every organic figure it could state would be borrowed or invented, and in three months nobody could tell which.

Equip it with opvs profession equip @di-atomic/facebook-content-creator, give it a brief, and give it one card.