git:20260812.8e1256e to git:20260905.4909a33

140 added, 365 removed. Audit A to A.

---
name: social-mastodon
title: "Mastodon Publishing Playbook"
- description: "Ground-truth 2026 playbook for writing posts, replies, and threads on Mastodon and the wider Fediverse. Covers the strictly chronological timelines (no algorithm), hashtags as the sole discovery mechanism, the content-warning (CW) conventions, alt-text as a cultural norm, boost vs favorite semantics, instance selection, the local vs federated timeline, and why X/Bluesky tactics don't transfer. Activate when drafting for Mastodon or Fediverse-compatible servers (Pleroma, Akkoma, GoToSocial, Firefish, etc.)."
+ description: "Write and revise Mastodon posts, replies, launches, and proof updates in the author's documented voice. Activate for Mastodon or Fediverse publishing briefs; check the actual server before applying Mastodon mechanics elsewhere. Covers discovery, visibility, accessible publishing, disclosure, and qualified follow-up."
license: Apache-2.0
- compatibility: "Octomind content agents. Platform-specific to Mastodon and ActivityPub-compatible Fediverse servers."
+ compatibility: "Browser or HTTP access for current server rules, composer limits, and source verification."
domains: content
rules:
- content(mastodon)
- content(fediverse)
- content(activitypub)
- content(toot)
- match(\bpost\s+(on|to|for)\s+mastodon\b)
- match(\bthe\s+fediverse\b)
---
## Overview
- Mastodon (and the wider Fediverse) runs on ActivityPub, not a single company. There is no algorithm. Timelines are strictly chronological. Posts don't get "boosted" by the platform — they get boosted by humans, or they don't move at all. Discovery is powered by hashtags, boosts, and instance-local curation — in that order.
-
- This means the writing game is completely different from X, Threads, or Bluesky. You can't optimize for early engagement velocity because nothing amplifies early engagement. You can't trick a ranker. The only levers are: be findable (hashtags), be worth boosting (substance), and be followed by people whose followers read chronologically.
-
- ## Platform Mechanics 2026
-
- ### The Three Timelines
-
- | Timeline | Contents | Your reach here |
- |---|---|---|
- | Home | Posts + boosts from accounts you follow, plus posts tagged with hashtags you follow | Where your followers see you. Chronological. |
- | Local | Every public post from every account on your instance | Your instance-mates see you here. Picking your instance = picking your local audience. |
- | Federated | Every public post from every account your instance "knows about" (anyone followed by anyone on your instance) | Firehose. Almost no one reads it end-to-end; some power users sample it. |
-
- No algorithmic feed. The closest thing is the Explore / Trends tab, which surfaces hashtags and posts trending across the local instance based on boost counts. Different per instance.
-
- ### Hashtags: the Actual Discovery Mechanism
-
- This is the single most important thing to internalize. On Mastodon:
-
- - Users can follow hashtags. Someone who follows `#rust` sees every post tagged `#rust` in their Home timeline, forever.
- - Searching is hashtag-first. Full-text search is off by default per-user; opt-in only. Hashtag search is universal.
- - Untagged posts are roughly invisible to non-followers. A brilliant post with zero tags reaches only your current followers.
-
- Consequence: tag every post that touches a followable topic. Not 10 tags — 1 to 3 real ones. Use the tags people actually follow, not made-up ones.
-
- Conventions:
- - CamelCase your multi-word tags (`#RustLang`, not `#rustlang` or `#rust_lang`). Screen readers read CamelCase correctly; lowercase runs letters together.
- - Lowercase single-word tags is fine (`#rust`, `#linux`).
- - Tags go at the end of the post, or woven into the last sentence if natural.
- - Avoid gratuitous tags. `#life #thoughts #musings` gets you blocked by tag-hygiene filters on some instances.
-
- ### Content Warnings (CW)
-
- A CW collapses the post behind a short label. Users click to expand.
-
- What a CW is for (community consensus 2026):
- - Spoilers (movie, book, game)
- - Graphic content (violence, gore, medical imagery)
- - NSFW
- - Instance-specific conventions (politics, food, alcohol, US/UK news — varies by instance culture)
- - Long posts (some instances ask for CWs on >500-char posts as a courtesy)
-
- What a CW is NOT for (controversial, will generate pushback):
- - Hiding any mildly opinionated take
- - Marketing posts
- - Generic "long thread" unless your instance culture asks for it
-
- Format of a CW label: short, specific, descriptive. The label is what people use to decide whether to open the post.
-
- ✅ `book 3 spoiler`, `us politics`, `loud image`, `food (meat)`, `medical`
- ❌ `sensitive`, `opinion`, `CW`, `read at own risk`
-
- Instance culture varies. Mastodon.social is CW-light. Art-focused and marginalized-community instances are CW-heavy. Read the instance's local timeline for 15 minutes before assuming defaults.
-
- ### Alt Text: Mandatory Culture
-
- The Fediverse has a strong, widely-enforced norm: every image gets alt text. Not a nice-to-have. Some instances block posts without alt text by default. Accounts that habitually omit it get blocked and muted — a real reach penalty.
-
- - Write for a screen reader. Describe what's in the image, not what it means.
- - Keep it functional, 1–3 sentences usually enough.
- - Charts and code screenshots need the actual content: "Bar chart showing X axis = months, Y axis = requests/sec, peaks at 14k in June."
- - Memes: describe the image AND transcribe the text.
-
- ### Boost vs Favorite
-
- These are not the same thing, and confusing them reads as new-arrival behavior.
-
- - Favorite (⭐) = private acknowledgment. Does not amplify. Does not notify your followers. Think: "I saw this and appreciated it." Largely for the author.
- - Boost (🔁) = amplification. Equivalent to a retweet. Puts the post into every one of your followers' Home timelines. This is the only way posts travel.
-
- If something is good, boost it, don't just fav it. Favs without boosts = the Fediverse equivalent of silent applause; the post doesn't move.
-
- Consequence for writers: every post is a boost-or-die. Your reach past your current followers depends entirely on boosts. Write things people actually want to boost.
-
- ### Quote Posts: Historically Absent, Now Optional
-
- Mastodon long opposed quote posts on the grounds that they enable pile-ons. In 2025–2026 an opt-in quote-post feature landed, but the cultural default is cautious:
- - Many users have them disabled on their own posts.
- - Quote-to-dunk is frowned on more than on X/Bluesky.
- - Quote-to-add is welcome if substantive.
-
- Default: if you're unsure, reply with the link rather than quote. "Responding to @user@instance.tld's point about X…"
-
- ### Links
-
- There is no algorithmic link penalty on Mastodon — a refreshing difference. Post links freely. Link cards render if the target site has Open Graph tags. Still:
- - Say why the link matters in 1–2 sentences before dropping it.
- - Prefer original sources over aggregators — the Fediverse is archive-conscious.
- - Don't paywall-spam. `archive.ph` links or non-paywalled versions are appreciated.
-
- ### Character Limit
-
- - Default: 500 characters. Most instances.
- - Variable: 1500 to 5000. Some instances (fosstodon.org, mstdn.social config varies). Know your instance.
- - Cross-instance posts: a 2000-char post from a custom-limit instance renders fully on a 500-char instance. It does not truncate.
-
- But the cultural expectation is calibrated to 500. Longer posts read as heavy. If a post exceeds 500, consider:
- - Splitting into a thread of self-replies (preferred, each post stands alone).
- - Putting it on a blog and linking.
- - Adding a CW (`long post` or topic-specific) as courtesy.
-
- ### Threads
-
- No native thread object. Thread by replying to your own post. Each post should stand alone (people read self-replies out of context from hashtag timelines).
-
- Mark threading subtly if useful:
- - `(1/4)` at the start of each post.
- - Or let the reply chain speak for itself (common in smaller threads).
-
- Don't write a "hook post" that tells people to read the thread. Mastodon readers find it spammy. Lead with substance.
-
- ## Instance Choice: A Writing Decision
-
- Your instance is part of your voice. It affects:
- - Who sees you on the local timeline — your first-ring audience.
- - Which other instances federate heavily with yours.
- - Perceived alignment. Being on `queer.af` or `infosec.exchange` or `mstdn.jp` says something before you post.
- - CW/content culture norms.
- - Character limit and any custom features.
-
- Rule of thumb:
- - General: `mastodon.social`, `mastodon.online`, `mstdn.social`. Largest, broadest.
- - Technical: `fosstodon.org`, `hachyderm.io`, `infosec.exchange`, `techhub.social`.
- - Creative: `mastodon.art`, `writing.exchange`.
- - Journalistic: `journa.host`, `newsie.social`.
-
- You can move instances later via account migration (followers + follows carry; posts don't). But the first impression sticks.
-
- ## Tone: What Mastodon Actually Rewards
-
- The Fediverse culture is older than the 2022 Twitter exodus would suggest — lots of long-time FOSS, accessibility, and marginalized-community users. What they reward:
-
- - Craftsmanship. A well-written observation with good alt text and a thoughtful CW reads as respectful.
- - Slowness. No one expects hot takes within 15 minutes of news. A considered post 24 hours later is fine.
- - Accessibility. Alt text, CamelCase tags, CWs where warranted. These are ethics-adjacent; getting them right is a trust signal.
- - FOSS / indie / privacy sensibility. Drops of Twitter/Meta/TikTok-optimized language (influencer-speak) read as alien.
- - Kindness without saccharine. Sharp disagreement fine; contempt or dunking imports poorly.
-
- What doesn't work:
- - Hooks, hustle-speak, growth-hacking framing. Instant mutes.
- - "RT for reach" / "boost appreciated." Asking for boosts is a mild faux pas on most instances.
- - AI-generated prose without a CW. Will get instance-labeled and defederated in repeat cases.
- - Aggressive politics without local context. Instances have varying politics; the same post reads differently on different instances.
-
- Measured from mastodon.social trending statuses (~40 posts, Aug 2026):
-
- - Trending posts carry 0–3 tags, many zero. Tags drive followability (small accounts get found through them); boosts drive trending. Both matter, at different account sizes.
- - Not one trending post used a CW. CWs are courtesy, not a reach lever — apply them for the content, never for growth.
- - Favourites commonly exceed boosts on the same post. Favs don't travel; write the thing someone wants to put in front of THEIR followers.
- - What actually trends: wry self-aware one-liners ("being good at computer does not make you smart at not-computer"), tech nostalgia, relatable domestic humor, earnest newcomer questions (a "no clue who to follow, I am new here" post drew ~100 replies and ~270 boosts), and sourced news.
- - The anti-AI sentiment is real and visible: a trending post flatly dismisses AI-written vulnerability reports as evidence the author doesn't understand the issue. Unmarked AI prose isn't just against etiquette here — it's actively resented content.
-
- ## Post Shapes That Land
-
- ### 1. The Tagged Substantive Observation
-
- ```
- Discovered today that Gtk4 on Wayland exposes a new
- compositor-side protocol for fractional scaling that avoids
- the double-rounding bug we've been chasing since 2023.
- It lands in glib 2.84 behind a flag.
-
- One less reason to hate HiDPI on Linux.
-
- #Linux #Gtk #Wayland
- ```
-
- Works because: specific, useful to followers of those tags, boost-worthy for anyone in the niche.
+ Write something the named author can defend and the intended reader can use. Apply supplied facts and proof first, the author's documented voice next, then platform guidance. Use Mastodon register only as a fallback; don't assume every Fediverse service has Mastodon's controls.
- ### 2. The CW'd Long Post
+ ## Mechanics and mental model
- ```
- cw: long post, photography
+ | Surface or action | Writing consequence |
+ |---|---|
+ | Home | Includes followed accounts and followed hashtags; don't promise every tagged post universal delivery (official, Timelines, 2026-05). |
+ | Public/Live feeds | Local filtering and access restrictions exist; check the connected server before planning discovery there (official, Timelines, 2026-05). |
+ | Explore/Trends | Uses a periodically recalculated internal score: status interactions, tag usage, and link sharing. Don't reduce it to boosts or call the platform algorithm-free (official, Trends, 2026-05). |
+ | Search | Full-text availability depends on server setup; direct lookup and library search also exist. Don't call untagged posts invisible or assert a current indexing default (official, Network, 2025-11). |
+ | Favourite / boost | A favourite notifies the author without resharing; a boost reshares. Neither counts as a customer outcome (official, Network, 2025-11). |
+ | Quotes | New posts default to Anyone; authors can restrict quoting to followers or Just me, change permissions, and revoke quotes. Check the source post's permission (official, Quote posts, 2025-11). |
- A whole write-up of how I'm reorganizing my lens kit around
- a single 35mm prime for the year. Includes the thinking,
- the gear I'm selling, and the workflow changes.
+ Use the UI terms “post,” “server,” and the displayed visibility labels. Treat software previews as announcements: Messages separation and changes to followed-hashtag navigation were previewed for Mastodon 5.0, not established as shipped behavior (official, Foundation preview, 2026-08).
- [... 800 chars of content ...]
+ Open [reference/mechanics.md](reference/mechanics.md) when preparing an account, attachments, a poll, scheduled publishing, edits, or an integration. Record the connected server's limits before declaring a package ready; don't substitute a named server roster or an assumed default.
- #Photography
- ```
+ ## Rules and format decisions
- The CW is courtesy; the content earns the unfold.
+ ### Choose the audience deliberately
- ### 3. The Reply Into a Hashtag
+ | Intent | Choice |
+ |---|---|
+ | Public announcement or discoverable explanation | Select Public and inspect the resulting audience in the composer (directional). |
+ | Public side conversation without public-feed discovery | Select Quiet public, formerly Unlisted: excluded from public feeds, Explore, and search, but visible on the profile and eligible for Home (official, Posting, 2026-07). |
+ | Update intended for followers | Inspect the Followers audience and account settings before publishing (directional). |
+ | Requested personal follow-up | Inspect Specific people/private-mention recipients; confirm the actual control label. Keep confidential customer material in an approved support channel (directional). |
- ```
- @friend@instance.tld worth noting that the Raku port
- of this library is also interesting — it handles the same
- memory layout but with slightly different guarantees
- around cyclic references.
+ Replies have an additional Home rule: the follower normally needs to follow both participants. Quiet public isn't a promise to deliver a reply to every follower (official, Posting, 2026-07).
- #Raku #Rust
- ```
+ ### Fit the explanation to the space
- Replying with a hashtag turns a private-feeling reply into a findable public contribution.
+ Use qualitative length bands relative to the verified server cap; these are editorial choices, not performance optima (directional).
- ### 4. The Self-Reply Thread
+ | Material | Format and length band |
+ |---|---|
+ | Complete observation or announcement | Compact standalone post; leave room for the useful link and disclosure. |
+ | Necessary detail that won't fit | Substantive root with understandable self-reply installments, each below the cap. No numeric thread markers or thread-promotion intro. |
+ | Methodology or durable documentation | Brief finding plus a blog/documentation link; keep evidence and conditions at the destination. |
+ | Visual evidence | Short caption plus the artifact; use multi-image only when the sequence adds information. |
+ | A decision readers can inform | Compact poll prompt with neutral, distinct options; verify option limits, duration, selection mode, and attachment compatibility. Don't call respondents representative buyers. |
- ```
- 1/ Been reading through the ActivityPub spec again
- after three years and the ambiguities around Like
- delivery finally make sense.
+ Put the destination in the root when readers need it. Strip tracking parameters while preserving functional query parameters, test the clean link, and record attribution uncertainty (directional). Open Graph supplies preview cards (official, PreviewCard, 2026-06). Equal observed link/text medians don't establish a universal absence of link penalties (measured, Buffer, n=Mastodon subsample undisclosed, 2026-03).
- #ActivityPub
+ ### Hashtags and content warnings
- (reply)
- 2/ The spec never mandates that a Like MUST be delivered
- to the original author's inbox. Most implementations do it,
- but Pleroma historically didn't in one configuration,
- which is why Like counts diverge across instances.
+ Choose tags by distribution need, not follower-count thresholds. Verify recent relevant posts on the target server's tag surface; an inaccessible or empty sample doesn't prove a tag is dead everywhere. Capitalize words in multi-word tags for readability (directional).
- (reply)
- 3/ The fix isn't in the spec — it's in per-implementation
- reconciliation protocols. Which explains why boost counts
- are more reliable than fav counts across federation.
- ```
+ | Account situation | Tag decision (directional) |
+ |---|---|
+ | New or small audience seeking topic discovery | Use a small set of live, directly relevant topic tags. |
+ | Established audience, useful topic contribution | Keep tags that connect the contribution to an active conversation. |
+ | Personal exchange or no relevant active tag | Omit tags; don't fill a quota. |
- Each post stands alone, each is tagged, chronological timeline works with it.
+ | Server/community context | CW decision (directional) |
+ |---|---|
+ | Explicit local content rules | Follow the actual rule, regardless of server category. |
+ | Community asking for spoiler, politics, food, or other topic warnings | Use a short descriptive label for matching material. |
+ | Sensitive reply chain | Preserve a relevant warning when the reply continues that material. |
+ | Routine product or technical update | Don't add a warning solely to manipulate discovery; follow local promotion rules. |
- ## Replies
+ Describe the material plainly in the warning. Don't infer policy from an “art,” “technical,” or “general” server label (directional).
- - Always address the reply recipient with full handle on first reply (`@user@instance.tld`) if replying out of a notification. Inside a thread, native threading handles it.
- - Unlisted visibility (⇅ in composer) is a soft reply — doesn't hit local/federated timelines but still reaches the recipient and your followers' homes. Use for side-conversation replies you don't want to clutter local.
- - Substance, not reaction. "100%" / "this" replies are especially lifeless here because there's no algorithmic reward for volume of interaction.
+ ### Account and disclosure choices
- ## Anti-Patterns (will cost you)
+ | Publishing identity | Use it for (directional) |
+ |---|---|
+ | Personal/founder account | Decisions the person owns and questions they can answer from experience. |
+ | Project account | Release information and support with a named reply owner; don't fabricate a founder persona. |
+ | Account on an owned server | An organization prepared to own operations and moderation; complete the setup checks in the mechanics reference. |
- - Posting without alt text repeatedly. Auto-block lists exist for this.
- - Un-CW'd politics, food, or instance-sensitive topics. Varies; check instance culture.
- - X-ported hype language ("Game changer," "🚀🔥," "THIS is the future"). Reads as colonizer behavior to long-time users.
- - Cross-posting bot that dumps every X post verbatim. Common instance rule violation; bot accounts get suspended.
- - Asking for boosts. Soft taboo.
- - Screenshot-dunking. The Fediverse remembers. Callout culture doesn't work the way it does on X — it rebounds.
- - Gratuitous tag stacking. `#life #mood #thoughts #random` is a tell.
+ | AI or commercial situation | Required decision |
+ |---|---|
+ | Generative-AI content on mastodon.social or mastodon.online | Disclose it; primarily or exclusively AI-generated accounts are prohibited. A CW isn't a substitute for disclosure (official, Community Standards, 2026-02). |
+ | Independent server | Read its current commercial and AI-content rules; the operated-server terms don't govern it (official, Server terms, 2026-07). |
+ | Assistance whose policy classification is unclear | Establish what was generated and check the applicable wording before publication; don't invent an editing exemption (directional). |
+ | Sponsored, gifted, employee, or founder post | State the relevant relationship and apply the brief's disclosure obligations. Identify synthetic media as such where required; never present it as product evidence (directional). |
- ## Thread-Vibe Matching (Replies)
+ Editing for voice doesn't erase disclosure obligations. Don't claim an automatic AI label, missing-alt-text block list, or repeated-post defederation mechanism.
- Mastodon reply culture is slower and more deliberate than X or Threads. Before replying, read the existing reply chain and the local timeline context. The vibe is set by the instance culture as much as by the individual thread.
+ ## Launch and proof posts
- What to scan:
- - Instance culture — a reply on `infosec.exchange` reads differently than one on `mastodon.art`. Check the local timeline if you're new to an instance.
- - Length — are replies 1–2 sentences or 3–4? Match the median.
- - Formality — Mastodon skews more formal than Threads; full sentences and proper punctuation are common.
- - CW conventions — if the thread has a CW, your reply should too (same or related CW label).
- - Hashtag practice — if the thread is using hashtags in replies, match the pattern.
+ Before drafting, obtain the audience and buying situation, promise, available proof with its source, desired action, destination, and disclosure obligations. Identify the stage: teaser, launch day, proof, objection, or recap. Collect author writing samples and source notes; record their role and reply availability. “No CTA” is a valid deliberate choice. If evidence is absent, narrow the claim or obtain it; don't invent a customer result (directional).
- Vibe calibration by post type:
+ Use these post shapes with the format bands above (directional):
- | Post type | Reply vibe |
+ | Shape | Anatomy and length band |
|---|---|
- | Technical observation | Match the depth; add a specific detail or counter-case |
- | FOSS / project announcement | Substantive question or specific feedback; no hype |
- | Personal / creative post | Warmer, shorter, first-person |
- | CW'd sensitive topic | Match the care level; keep it measured |
- | Accessibility-focused post | Especially careful; this community notices and values care |
+ | Launch day | Compact: concrete new capability, intended user, constraint, usable destination. Strip the product name mentally: the post should still explain something useful. |
+ | Demo/artifact | Short caption: task shown, observable behavior, boundary; attach accessible proof and link to try or inspect it. |
+ | Customer outcome | Near-cap if needed: prior state, intervention, bounded outcome with conditions and permission; link the method. |
+ | Founder decision/build update | Compact: actual decision, reason grounded in evidence, cost or unresolved trade-off. |
+ | Objection answer | Compact: the real concern, direct answer, supporting artifact; state who shouldn't use the product. |
+ | Recap/lessons | Brief finding plus durable link; distinguish adoption evidence from unresolved feedback. |
- ## Human Imperfection Protocol
+ Seed through useful participation in relevant conversations. Mention collaborators only when directly involved; let employees contribute their own experience with affiliation visible. Don't organize reciprocal boosts, copied praise, unsolicited pitch mentions, or fake customer conversations (directional).
- Mastodon values craftsmanship. The culture rewards care — in writing, in alt text, in CW labels. Imperfections should be about informality of phrasing, not typos. A typo in alt text is worse than a typo in prose here; accessibility is an ethical norm, not a nicety.
+ Collections provide a consent-aware ecosystem resource: only discoverable opted-in profiles can be included, additions notify members, members can leave, and the cap is 25 profiles with no follow-all. Collections have shareable URLs under Featured and currently rely on manual discovery. Share a useful collection's link without making inclusion conditional on promotion (official, Release, 2026-06).
- Imperfection level by content type:
+ The launch-week table is an illustrative schedule, with T marking launch day. Its dates are example planning slots, not measured timing advice. Skip a slot when there is no new evidence (directional).
- | Content type | Level | What that means |
+ | Phase | Post shape | Reply plan and observation |
|---|---|---|
- | Original post | Very low | 0–1 subtle imperfection; posts are considered artifacts |
- | Alt text | Zero | Alt text is an accessibility artifact — zero imperfections |
- | CW label | Zero | CW labels are functional — zero imperfections |
- | Reply in a technical thread | Very low | 0–1 structural imperfection; precision still matters |
- | Reply in a casual/personal thread | Low | 1 subtle imperfection; informal phrasing fine |
-
- Imperfection menu for Mastodon (pick 0–1 per reply, structural only):
-
- - Informal opener — `Been thinking about this since the glib 2.84 release.` instead of `I have been thinking about this.`
- - Casual aside in parentheses — `(worth checking if yours went dark)` — reads as thinking-while-typing
- - Dropped subject — `Tried the same approach, hit the same wall.` — common in technical writing
- - "though" / "honestly" / "actually" — casual qualifiers that read as human hedging
- - No closing period — end a reply without a period — common in casual Mastodon replies
- - Sentence fragment as emphasis — `Not a bug. A feature of the spec.` — deliberate, reads as considered
-
- Never do on Mastodon:
- - Typos in technical terms, library names, or proper nouns — credibility damage
- - Typos or errors in alt text — this is an accessibility failure, not just a style issue
- - Errors in CW labels — these are functional; wrong labels break trust
- - `lol`, `lmao`, `ngl` — too casual for most Mastodon threads
- - Stack 2+ imperfections in one post — reads as careless in a culture that values care
- - Hype language or emoji stacks even with imperfections — the register is wrong regardless
-
- Calibration check before posting:
- 1. Is this a post, alt text, or CW label? Alt text and CW labels = zero imperfections.
- 2. Read the instance's local timeline — what's the general formality level?
- 3. Does your reply have 0–1 structural imperfections (informal phrasing, not typos)?
- 4. Would a thoughtful FOSS-community member typing this at their desk plausibly have written exactly this?
-
- ## Examples
-
- ### Example 1 — Announcing a blog post
-
- ❌ X-ported:
- ```
- 🔥 New blog post dropped! 🚀
- Why ActivityPub will win the open social war.
- Go read it now 👇
+ | T-7 (illustrative) | Decision or useful problem explanation | Discuss real constraints; record audience language. |
+ | T-2 (illustrative) | Demo or permission-based preview | Answer access questions; check whether readers can evaluate it. |
+ | T (illustrative) | Native announcement with root link | Assign first-hours coverage; record qualified questions and blockers. |
+ | T+1 (illustrative) | Objection answer | Return with evidence; separate team replies from independent responses. |
+ | T+3 (illustrative) | Supported proof, if available | Ask permission to use reported outcomes; document exclusions. |
+ | T+7 (illustrative) | Recap linking the durable artifact | Revisit unanswered questions; record reported adoption and unresolved limitations. |
- [link]
+ Track qualified replies and independent participant/server diversity alongside observed boosts, favourites, and quotes. Connect volunteered trial or adoption reports to source records; keep website conversion data separate. Don't infer sales from applause (directional). Open [reference/evidence.md](reference/evidence.md) when choosing experiments, interpreting performance, or adapting a launch that links to another community.
- RT and comment if you agree!
- ```
+ ## Voice on this platform
- ✅ Fediverse-native:
- ```
- Wrote a long post on where I think ActivityPub has the
- structural advantage over AT Protocol long-term. Main
- argument: the push model concentrates cost where growth
- already exists, which makes moderation resource-scale
- with the problem. Happy to hear pushback.
+ Use `content-voice` for generic editing. Preserve recognizable phrasing from the author's samples and the decisions in their notes. Keep technical names exact and explain limitations without ritual hedging. Read the target conversation for depth and formality; don't impose a FOSS persona on another community or insert slang, deliberate errors, fake edits, or lowercase camouflage (directional).
- [link]
+ Replies should address the actual point in connected prose, without a miniature report or recap ending. Threads use standalone prose with no numeric markers. Accessibility text should describe the supplied artifact, including relevant chart labels or screenshot text, without invented interpretation (directional). Media descriptions are optional in Mastodon but recommended; make them part of the publishing package (official, Posting, 2026-07).
- #ActivityPub #Fediverse
- ```
+ Review gratuitous contrast frames, padded triads, staccato stacks, suspense phrases, and tidy moral closers. Cut rhetorical-question openers, miracle-fix stories that erase trade-offs, engagement-bait endings, hashtag walls, and decorative emoji bullets. Review em-dash density against the author's usage; use punctuation for meaning without quotas. These are editing heuristics, not authorship tests (directional; Aborn, Cox, Gichigi). The evidence reference explains their limits.
- ### Example 2 — Reacting to news
+ ## Cadence and engagement
- ❌ Engagement-bait:
- ```
- BREAKING: [platform] just announced [thing]. THIS changes everything
- for the open web. Thoughts? 🤔
- ```
+ Choose audience-local times when the author can answer, then compare similarly scoped posts at matched observation ages. Buffer publishes no Mastodon timing window; don't import universal ET hours or fixed federation-delay rules (measured, Buffer, n=Mastodon subsample undisclosed, 2026-03).
- ✅ Grounded:
- ```
- The [platform] announcement is interesting mostly for what
- it doesn't say. No mention of defederation policy, no mention
- of which instances they're launching with. A launch without
- those details means the interesting choices haven't been made yet.
- Worth watching in a month.
+ Add self-replies for necessary information, not manufactured activity. Preserve useful questions for follow-up proof posts; verify a relevant participant's actual contribution before attributing a spread path (directional). Observational reply studies support investigating conversation and network context, not quotas or causal reach promises; see the evidence reference.
- #Fediverse
- ```
+ ## What gets suppressed
- ### Example 3 — A post with an image
+ Keep visibility settings, server enforcement, and reader preference separate. Quiet public limits discovery by design (official, Posting, 2026-07). Commercial and AI rules require a server-specific policy check (official, Server terms, 2026-07). Don't turn low engagement, missing descriptions, link presence, or unfamiliar tone into an invented ranking penalty.
- ```
- Finally got the old ThinkPad running NetBSD current
- with a working Wayland session. Screen's a bit yellowed
- after 15 years but the keyboard still has the best travel
- I've ever typed on.
+ Adapt imported posts by checking handles and destination paths; remove empty hype. Make a boost request only when sharing serves a concrete reader need, without pressure. Neither a blanket boost-request taboo nor automatic cross-post suspension is established here (directional).
- [Image attached]
- Alt text: Photo of a ThinkPad X61 laptop, open, showing
- a NetBSD desktop with a tiling window manager. Three
- terminal windows visible, running htop, vim, and tmux.
- The screen tint is slightly yellow with age.
+ ## Examples
- #NetBSD #ThinkPad #Retrocomputing
- ```
+ These are illustrative drafts, not reports of real launches. Bracketed facts and links must be supplied and checked before publication; no example is publishable unchanged. All proposed tags require the live-tag check.
- ### Example 4 — A CW done right
+ ### Developer tool announcement
- ```
- cw: us politics, long
+ > [Tool] now shows the file that supplied each setting. I built it for debugging inherited configuration. The screenshot uses [documented fixture]; it doesn't cover environment overrides yet. Release notes and a runnable example: [link]. #DevTools
- Some thoughts on the new court ruling and what it actually
- changes at the federal level, which is less than the headlines
- suggest...
+ Asset brief: capture the actual setting and its source. Alt text: “[Setting] has value [value], read from [file]; environment overrides aren't shown.”
- [... content ...]
+ Why it works: the launch shape names behavior a developer can inspect.
+ The provenance rule keeps both the fixture and limitation explicit.
- #USPolitics
- ```
+ ### B2B SaaS proof
- The CW is honest about the content and length. Users who want it, expand. Users who are tired of US politics today, scroll past.
+ Illustrative brief: an operations team uses invoice-matching software; customer permission and measurements still need source records.
- ### Example 5 — Thread-vibe matching (technical thread)
+ > [Customer, with permission] used [product] to match invoice exports. In [measurement period], [defined measure] moved from [before] to [after] across [sample]. Their team still reviewed disputed matches. I work on the product; the method and exclusions are here: [link].
- Post: "Discovered today that Gtk4 on Wayland exposes a new compositor-side protocol for fractional scaling that avoids the double-rounding bug we've been chasing since 2023."
+ Why it works: the proof shape bounds the outcome with its measurement conditions.
+ Affiliation and the remaining manual work support an informed buying decision.
- Reply chain vibe: technical, 2–4 sentences, proper punctuation, specific version numbers.
+ ### Creator artifact
- Bad reply (ignores vibe — too casual):
- > omg finally lol, that bug has been driving me crazy for ages tbh
+ > I've put the sewing pattern for [bag] online. The instructions use [tested fabric]; I haven't checked the fit with heavier canvas. The sample photo shows the inside seam before lining. Pattern and materials notes: [link]. #Sewing
- Good reply (matches technical register, very low imperfection):
- > Been hitting this on a 2x HiDPI setup with a 1.5x secondary monitor. The double-rounding showed up as 1px misalignment in GTK dialogs.
- >
- > Good to know it's in 2.84 — will test against the flag this week.
+ Asset brief: show the documented seam. Alt text: “Inside seam of [bag], showing [visible seam construction] before the lining is attached.”
- What works: informal opener (`Been hitting`) is the only structural imperfection, specific hardware setup, concrete symptom, no typos, no casual slang, matches the technical depth of the thread.
+ Why it works: the artifact carries useful information without a sales preamble.
+ The format rule keeps the caption brief and the limitation near the link.
- ### Example 6 — Reply with calibrated imperfection (personal/creative thread)
+ ### Local service
- Post: "Finally got the old ThinkPad running NetBSD current with a working Wayland session."
+ Illustrative brief: a cycle-repair organizer offers puncture repairs at a community session; damaged rims need workshop assessment.
- Reply chain vibe: warm, personal, 1–3 sentences, casual but not sloppy.
+ > We're taking bookings for the cycle-repair session at [venue] on [date]. Bring a bike with a puncture; we can patch inner tubes, but damaged rims need the workshop. I run the session. Access details and booking: [link]. #[VerifiedLocalTag]
- Bad reply (over-imperfected — reads careless in a warm personal thread):
- > omg thats so cool lol i love old thinkpads tbh, the keyboards are amazing ngl
+ Why it works: the service post answers the practical booking decision.
+ The scope boundary prevents an invitation from becoming a repair guarantee.
- Good reply (low imperfection, matches warm-but-careful register):
- > The X61 keyboard is genuinely one of the best ever made. Still have mine from 2009 — the travel is something modern laptops just don't do.
+ ### Technical reply repair
- What works: no imperfections here because the thread is warm but careful (Mastodon culture values craftsmanship), specific model name, personal connection, no hype language, reads as a thoughtful human response.
+ Over-structured draft to revise: a reply with a benefits heading and an unnecessary caveats section, ending by summarizing the original post without answering its question.
- ## Pre-Publish Checklist
+ > [Documented setting] controls that behavior. The example in [source] covers [supported case]; it doesn't establish what happens during [unverified condition]. I'd leave that part open until there's a trace.
- - [ ] Alt text on every image — descriptive, functional, screen-reader-ready
- - [ ] CW applied if the content warrants it (spoilers, sensitive topics, long post)
- - [ ] CamelCase multi-word hashtags (`#RustLang`, not `#rustlang`)
- - [ ] 1–3 relevant hashtags at the end (or woven in naturally)
- - [ ] No X-ported hype language, no emoji stacks, no "boost appreciated"
- - [ ] Links are to original sources, not aggregators or tracking URLs
- - [ ] Under 500 characters (or CW'd if longer, or split into self-reply thread)
- - [ ] Tone matches instance culture (check local timeline if unsure)
- - [ ] For threads: each self-reply stands alone; tagged individually
- - [ ] Reply only: scanned existing replies for length, formality, and CW conventions
- - [ ] Reply only: 0–1 structural imperfection (informal phrasing, not typos); alt text and CW labels always zero
+ Why it works: reply register stays in prose and answers the specific concern.
+ The provenance rule keeps uncertainty attached to the missing evidence.
- ## Composition
+ ## Checklist
- - content-voice — carry voice across long-form posts and threads. Mastodon rewards consistency.
- - content-humanize — strip AI tells. The Fediverse is faster to label and suspend AI-slop accounts than other platforms.
- - social-bluesky — if you post to both, run both skills; the rewrites are meaningful, not cosmetic.
+ - [ ] First line carries the useful point; the post develops a focused idea.
+ - [ ] Every specific is supplied or example-placeholder-marked; no unresolved placeholders in publishable copy.
+ - [ ] Author voice and AI-tell pass complete; no manufactured errors or thread markers.
+ - [ ] Server rules checked for commercial content and AI use; required disclosures present.
+ - [ ] Visibility and quote permissions deliberate; reply recipients checked.
+ - [ ] Live character, attachment, poll, and alt-text limits checked; post language set correctly.
+ - [ ] Relevant tags verified live; CW matches material and local rules.
+ - [ ] Clean link works; CTA or deliberate no-CTA choice matches the brief.
+ - [ ] Publishing package includes caption, asset brief, alt text, and captions/transcript where needed; poll options reviewed if used.
+ - [ ] Reply owner and follow-up plan set; scheduling and edits checked when applicable.
## References
- - Mastodon user docs: https://docs.joinmastodon.org/user/
- - Fedi.Tips (unofficial, excellent etiquette guide): https://fedi.tips
- - ActivityPub spec: https://www.w3.org/TR/activitypub/
- - Measured patterns: derived from the mastodon.social public trends API (/api/v1/trends/statuses), Aug 2026. Instance-specific — re-derive for other instances and periodically.
+ - [Timelines](https://docs.joinmastodon.org/methods/timelines/) and [Trends](https://docs.joinmastodon.org/methods/trends/), 2026-05.
+ - [Network](https://docs.joinmastodon.org/user/network/) and [Quote posts](https://docs.joinmastodon.org/user/quote-posts/), 2025-11.
+ - [Posting](https://docs.joinmastodon.org/user/posting/), 2026-07; [PreviewCard](https://docs.joinmastodon.org/entities/PreviewCard/), 2026-06.
+ - [Release](https://blog.joinmastodon.org/2026/06/mastodon-4.6/), 2026-06; [Foundation preview](https://blog.joinmastodon.org/2026/08/5.0-laying-the-foundation/), 2026-08.
+ - [Community Standards](https://help.joinmastodon.org/article/12-community-standards), 2026-02; [Server terms](https://blog.joinmastodon.org/2026/07/announcing-new-terms-of-service-for-our-servers/), 2026-07.
+ - [Buffer](https://buffer.com/resources/state-of-social-media-engagement-2026/), 2026-03.
+ - [Aborn](https://emilyaborn.com/ai-writing-tells-what-they-cost-you/), 2026-07; [Cox](https://huntingthemuse.net/library/how-to-tell-if-writing-is-ai), 2026-06; [Gichigi](https://tahigichigi.substack.com/p/12-red-flags-of-ai-writing-and-how), 2026-02. Practitioner heuristics only.
+ - [Mechanics reference](reference/mechanics.md) and [Evidence reference](reference/evidence.md), maintained 2026-09; scoped sources and checks for optional formats.
+
+ Re-validate when server limits or policies change, discovery features ship, UI labels change, ranking code changes, or new benchmark reports appear.
+ Validated: 2026-09