git:20260903.e492851 to git:20260905.4909a33

84 added, 130 removed. Audit A to A.

---
name: trend-mastodon
title: "Mastodon Trend Harvester Playbook"
- description: "Platform-specific intel for harvesting Mastodon trends across federation — boost-driven amplification, per-instance culture map, hashtag-following discovery, harvest URLs across home + niche instances, content-warning conventions, alt-text expectations, and dead patterns in 2026. Activates in browser sessions whenever the user names Mastodon."
+ description: "Harvest Mastodon posts and topic conversations into a sourced, server-scoped brief. Activate for Mastodon or Fediverse trend scans and harvesting requests. Verify accessible surfaces, preserve sampling limits, and distinguish observed participation from inferred spread or writing recommendations."
license: Apache-2.0
- compatibility: "Octoweb browser access. Signed-in session on the user's home instance recommended for federated timeline; logged-out works for instance trends pages and hashtag pages."
+ compatibility: "Octoweb browser access and network access. A signed-in session may be needed for restricted server surfaces."
capabilities: octoweb memory-read memory-write
domains: browser
rules:
- session(trend) content(mastodon)
- session(trend) content(fediverse)
- match(\b(mastodon|fediverse|fedi)\s+(trend|trends|harvest|brief|post|toot)\b)
- match(\b(harvest|scan|analyze)\s+(mastodon|fediverse)\b)
---
## Overview
- This skill carries the platform-specific mechanics the trend-harvesting agent needs to harvest Mastodon — current federation ranking signals, per-instance harvest URLs, scoring on boost paths, hashtag-following targeting, content-warning conventions, alt-text expectations, dead patterns, timing. The agent owns the shared DNA loop; this skill plugs the Mastodon parameters in.
+ Return a reproducible brief of what relevant people are discussing, the evidence they share, and questions a downstream writer could address. Preserve the actual author's words and source URLs; publishing is a downstream step. Scope findings to the observed servers and retrieval period.
## Mental model
- Mastodon has no global feed and no algorithmic ranker — reach happens through boosts (its term for reposts) and through the hashtag-following feature. Each instance has its own local culture, content-moderation rules, and trends page. What you see depends on which instance you queried. Federation is slow — give posts 48–72h to develop boost chains. Marketing voice is detected and muted within seconds on tech instances. Image alt-text is expected — posts with images lacking alt-text get scolded and lose boost potential on dev/tech instances. Calibrate per instance.
-
- ## Rules
+ Home includes followed accounts and followed hashtags; public timelines support local filtering and may restrict access (official, Timelines, 2026-05). Explore/Trends uses a periodically recalculated internal score: status interactions, tag usage, and link sharing. Don't describe it as algorithm-free or boost-only (official, Trends, 2026-05).
- ### Current ranking and amplification signals (2026)
+ Full-text search depends on server setup. Direct lookup and library search also exist; don't infer that untagged posts are invisible or assert an indexing default (official, Network, 2025-11). A favourite notifies the author without resharing; a boost reshares (official, Network, 2025-11). Neither a ratio nor appearance on different servers proves the path a post travelled.
- | Signal | Effect |
- |---|---|
- | Boosts | Primary amplification mechanism (no algorithmic feed) |
- | Boost-to-favourite ratio | >0.20 strong federation, >0.40 breaking through to other instances |
- | Hashtag follows | Underused growth lever — users follow hashtags directly |
- | Cross-instance reach | Same post appearing in 3+ instance trends pages = federation-viral |
- | Image alt-text quality | Expected; lacking alt-text loses boost potential on dev/tech instances |
- | External links in root | NOT suppressed — Mastodon treats links normally |
- | Content warnings (CWs) | Required by culture on politics / NSFW / long-thread / hot-take; not on ordinary tech posts |
- | Cross-post-from-X residue | Detected and muted |
+ Quiet public is excluded from public feeds, Explore, and search while remaining profile-visible and eligible for Home; reply delivery normally requires following both participants (official, Posting, 2026-07). A harvest of discoverable public material isn't representative of every conversation.
- ### Harvest surfaces (run in parallel)
+ ## Harvest procedure
- For the user's home instance:
+ ### Establish scope
- | Surface | URL | Yields |
- |---|---|---|
- | Home trends | `https://<home-instance>/explore` | What the home instance's algorithm-light surface pushes |
- | Home local | `https://<home-instance>/public/local` | Posts originating on the home instance (culture signal) |
- | Federated timeline | `https://<home-instance>/public` | All federated posts the instance has seen |
- | Home hashtag | `https://<home-instance>/tags/<tag>` | Federation-aware topic feed |
+ Identify the home server, topic, audience, language, intended buying situation, and observation period from the brief. Record software and accessible surfaces before applying Mastodon paths to a Fediverse host. Select other servers from actual relevant participants and topic activity, not an undated category roster (directional).
- For 2–4 niche-relevant instances (for AI / agents / LLM / RAG / Codex / startup niche, common candidates include `hachyderm.io` for devs, `fosstodon.org` for FOSS, `mastodon.social` for general, `tech.lgbt`, `mas.to`):
+ Read the posting server's current rules when the brief requests downstream opportunities. Independent servers have their own policies; the operated-server terms apply only to mastodon.social and mastodon.online (official, Server terms, 2026-07). Record commercial and AI-content restrictions by URL and scope; don't infer them from a server's niche.
- | Surface | URL | Yields |
- |---|---|---|
- | Niche-instance trends | `https://<niche-instance>/explore` | Where dev/tech trends actually surface |
- | Niche-instance local | `https://<niche-instance>/public/local` | Local culture of that instance |
- | Niche-instance hashtag | `https://<niche-instance>/tags/<tag>` | Hashtag followers on tech-heavy instances |
+ ### Resolve surfaces and harvest
- Anchor profiles:
- - `https://<instance>/@<handle>` — last 7 days per anchor
+ Resolve API paths below against the verified server origin. For browser work, follow the links actually exposed by that server and record the resulting URL. Don't hard-code legacy web routes or treat the root landing page as a trends page (directional).
- Run 5–8 in parallel. Mastodon paginates traditionally — usually one snapshot per tab surfaces enough posts.
+ | Surface | Verified entry or discovery procedure | Record |
+ |---|---|---|
+ | Trending posts | `/api/v1/trends/statuses` (official, Trends, 2026-05). | Ranked candidates and retrieval time. |
+ | Trending tags / links | `/api/v1/trends/tags` and `/api/v1/trends/links` (official, Trends, 2026-05). | Relevant topics and primary-source links; retain surface type. |
+ | Local public timeline | `/api/v1/timelines/public?local=true` (official, Timelines, 2026-05). | Accessible local material; access restrictions if present. |
+ | Public timeline | `/api/v1/timelines/public` (official, Timelines, 2026-05). | The queried server's results, without calling them a global census. |
+ | Topic timeline | Append the URL-encoded tag to `/api/v1/timelines/tag/` (official, Timelines, 2026-05). | Recent relevant posts and observed URL. |
+ | Profiles and conversations | Follow actual author and conversation links returned by the interface (directional). | Original post, reply context, profile, and relevant proof. |
+ | Collections | Inspect exposed Featured links; Collections have shareable URLs and manual discovery (official, Release, 2026-06). | Curator and relevant opt-in participants; no inferred endorsement. |
- ### Scoring rubric (Mastodon-specific signals)
+ A configurable institutional landing page can emphasize server description and recent local-profile updates rather than Trending (official, Release, 2026-06). Keep it as a separate culture surface.
- Virality axis 0–5:
- - Boost-to-favourite ratio — primary federation signal
- - Absolute boost count (>20 boosts in 48h on a <5k account = climbing the federation graph)
- - Reply-thread depth — top-level replies that get replies
- - Cross-instance reach — same post in 3+ instance trends pages = federation-viral
- - Hashtag-follow surfacing — posts on hashtags with many followers reach more eyes; verify hashtag size at runtime
+ Public and hashtag timeline pagination has a documented default of 20 and maximum of 40 results (official, Timelines, 2026-05). Follow the current documented pagination controls, record the requested and returned counts, and continue until the chosen time cutoff or research budget. Don't assume a snapshot completes a feed. For other surfaces, inspect their own pagination rather than transferring those limits (directional).
- Niche-fit axis 0–5 — universal scale.
+ When access fails, record the response and authentication state; use an authorized session or another accessible surface. Don't bypass restrictions. An empty page can reflect visibility or access, so report “no relevant posts observed in this sample,” not “dead tag” (directional).
- Do not score on view counts — Mastodon doesn't surface them.
+ ### Preserve evidence
- ### Hook taxonomy currently winning
+ For each selected post, capture the following fields. Use “not observed” for missing values; don't replace them with inferred counts (directional).
- 1. Honest technical observation
- 2. Earnest question with specific context
- 3. First-person story with technical detail
- 4. Careful contrarian — backed by experience, not vibes
- 5. Receipt — image / chart / screenshot + 1–2 lines + thoughtful alt-text
- 6. Reasoned recommendation between two tools / approaches
- 7. Thoughtful pull-quote with brief commentary (a quote toot)
+ | Field group | Contents |
+ |---|---|
+ | Identity | Canonical post URL, full federated handle, source server, profile URL. |
+ | Sampling | Retrieval timestamp and timezone, publication time, queried server, exact surface URL, pagination boundary. |
+ | Content | Faithful excerpt, topic, format, language, tags, CW, visibility when observable, source/artifact link. |
+ | Interactions | Displayed boosts, favourites, replies, and quotes; specify observation time and interface. |
+ | Conversation | Relevant external replies, author self-replies, questions, objections, participants' servers, and actual contribution. |
+ | Accessibility | Presence and usefulness of media descriptions; distinguish missing metadata from inaccessible inspection. |
+ | Spread | Each observed server appearance; evidence for any specific boost event. Keep causal path unknown unless documented. |
- ### Dead patterns
+ Deduplicate the same post across surfaces by its canonical URL. Report appearances separately from unique posts. Keep raw excerpts distinct from paraphrases; label interpretation as inference (directional).
- - "Follow for more!" / X-style growth-hack closing
- - Hashtag stacks (>3 hashtags reads as spam faster than on X)
- - Cross-post tells from X ("RT @...", "via Twitter")
- - Marketing voice
- - Images without alt-text
- - "Birdsite" complaining (dead pattern as of 2024+)
- - AI vocabulary in hook line
- - Skipped CW on a politically charged or NSFW post
+ Attach sample scope to quantitative summaries using the form “measured, named capture, n=observed sample size, capture month.” Preserve the underlying URLs and calculations. Never label a sample “measured” without a reproducible capture.
- ### Format and length
+ ### Assess relevance without fake virality thresholds
- | Goal | Length (default cap 500) | Format |
- |---|---|---|
- | Quick take | 100–300 chars | Single |
- | Thread | 3–6 self-replies, each substantive | Native — depth over chain length |
- | Image post | 300–500 chars + 1–4 images with alt-text | Strong default |
- | Long post | 1000–5000 chars on instances with raised caps | Sparingly — CW it |
+ Compare similar topics and formats at comparable post ages. Prefer evidence relevant to the intended audience over raw popularity. Use qualitative assessments of niche fit and qualified interest; explain each with a cited excerpt or reply (directional).
- ### Hashtag prescription
+ | Observation | Permitted interpretation |
+ |---|---|
+ | Same canonical post on different servers | Cross-server appearance observed; route and causal contributor remain unknown. |
+ | Relevant people discuss implementation or buying constraints | Candidate qualified-interest evidence; don't infer a purchase. |
+ | Author adds installments | Explanatory depth; keep separate from independent participation. |
+ | Numerous reactions with sparse discussion | Visible reaction pattern; no conversion or accessibility-penalty inference. |
+ | Unavailable view count | Leave it unobserved; don't invent impressions or a reach denominator. |
+ | A tagged topic repeats | Inspect whether the evidence or audience question is new before calling it saturated. |
- For each recommended post, prescribe 1–3 hashtags:
- - One niche-specific (e.g. `#LLM` `#RAG` `#AIAgents` `#Rust` `#FediVerse`)
- - Optionally one community-cultural (e.g. `#TechHire`, `#100DaysOfX`)
- - Optionally one timing-tied tag for live events
+ A crisis-discourse study associated external replies with wider and more diverse cascades; mention and URL predictors also produced overestimation errors (measured, Discussion study, n=54,333 seed posts, 2026-05). It supports inspecting conversations, not reverse-engineering a sales formula.
- Verify hashtag size at runtime via `/tags/<tag>` — empty hashtag pages are dead tags. Recommend only tags with active recent posts.
+ Buffer's Mastodon image/video medians exceeded link/text medians modestly; its Mastodon subsample is undisclosed and it offers no Mastodon timing window (measured, Buffer, n=Mastodon subsample undisclosed, 2026-03). Don't prescribe fixed boost ratios, follower cutoffs, ET posting windows, or a federation maturation period.
- ### Content warning (CW) conventions
+ ### Return opportunities only when requested
- - Politics / NSFW / hot-take / very-long-thread → CW required
- - Ordinary technical posts → no CW
- - Skipped CW on politically charged content = quiet hide by reader defaults
- - Misused CW on ordinary tech content = looks performative, kills boost potential
+ Separate harvested evidence from optional writing hypotheses. For each hypothesis, identify the unmet question, usable proof, relevant live tags if any, and a limitation. Choose tags by topical need, not account-size quotas. Use the audience's observed timezone and account history for timing experiments; label recommendations directional (directional).
- ### Anchor accounts
+ Record actual CW practice alongside local policy; don't declare politics, promotion, or ordinary technical content universally CW-required or exempt. Media descriptions are optional but recommended in Mastodon; absence doesn't establish automatic blocking (official, Posting, 2026-07).
- Identify 5–10 niche-relevant accounts whose boost would amplify the user's post. Note follower band, instance, and recent boost behavior. Cross-instance anchors (e.g. a hachyderm.io anchor for a fosstodon post) drive federation reach faster than same-instance anchors.
+ When quotes matter, record the source post's permissions. Anyone is the documented default, with followers or Just me restrictions and revocation controls (official, Quote posts, 2025-11). Don't infer that most authors disable quotes.
- ### Timing
+ Identify relevant ecosystem curators through their public contributions. Collections require discoverability opt-in, notify additions, allow self-removal, and have a cap of 25 with no follow-all (official, Release, 2026-06). A curator list is research output, not authorization to contact people or coordinate boosts.
- - Best windows (mixed timezone): Tue–Thu 8 AM–12 PM ET (catches Europe afternoon + US morning); second wind 4–7 PM ET
- - Federation is slow — give posts 48–72h to develop
- - Weekend mornings work for personal / technical writing
+ ## Examples
- ### Saturated-take detection
+ ### Cross-server appearance without a causal story
- Mastodon's tech-niche saturated takes in 2026 cluster around: "ActivityPub vs AT-Proto," generic "Why I left X" posts (still common 3 years in), "FOSS ethics" debates, repeated "AI is theft" / "AI is fine" cycles. Verify saturation live.
+ Illustrative reporting pattern, not an observed campaign:
- ## Examples
+ > The canonical post appears on the queried home-server Trends surface and a relevant topic surface elsewhere. The accessible thread contains a question about deployment constraints. No boost event connecting those appearances was captured. Treat the question as an objection to investigate; the route remains unknown.
- ### Example 1: Full DNA + boost-path call
+ In an actual brief, attach the canonical URL, surface URLs, timestamps, and the quoted question. Don't promote co-occurrence into a federation-breakout claim.
- Bad — count without federation context:
- ```
- @dev got 40 boosts on a post about RAG.
- ```
+ ### Inaccessible hashtag surface
- Good — federated handle, boost-path, alt-text quality noted:
- ```
- @dev@hachyderm.io (3.8k followers) — 92⭐ / 47🔁 / 18💬
- Boost-to-favourite ratio: 0.51 — federation breakout
- Boost path: originated on hachyderm.io → boosted into fosstodon.org local trends within 6h → cross-surface in 2 other instance trends pages by 24h
- Anchor @ml-anchor@fosstodon.org boosted at 5h mark, drove second-instance amplification
- > Spent two weeks reading the actual RAG papers everyone cites. Three out of five contradict the benchmark methodology people quote them for.
- Hook type: receipt-promise + named contrarian observation
- Length: 217 chars
- Format: single post + image (chart) with 3-line alt-text explaining the methodology gap
- Hashtags: #LLM #RAG (2 — within limit, both with active follower coverage)
- No CW (correctly — pure technical content)
- DNA: technical-tone + first-person artifact + cross-instance anchor amplification
- ```
+ Illustrative reporting pattern:
- ### Example 2: Alt-text rejection
+ > The tag surface requires authentication in the available session. Current activity and follower coverage weren't observed. The accessible profile post links to a useful artifact, but it cannot establish that the tag is active.
- ```
- @handle@instance — 200⭐ / 8🔁 (boost ratio 0.04, far below 0.20 floor)
- Image attached: chart, no alt-text
- Replies: 3 of 18 are alt-text scolds asking for description
- Lesson: alt-text-less image posts get scolded into low boost-ratio. Always prescribe alt-text quality on image-attached recommendations.
- ```
+ Return the access limitation and available source. Don't recommend the tag as verified or replace the missing sample with a guessed tag size.
## Checklist
- Before returning the Mastodon section of the brief:
- - [ ] Home instance + 2–4 niche-relevant instances queried
- - [ ] Every cited post has full federated handle (`@user@instance.tld`), boost count, favourite count, reply count, URL, CW state
- - [ ] Boost-to-favourite ratio computed and used as primary signal
- - [ ] Boost path noted on every cited example (origin instance → instances it spread to)
- - [ ] No score depends on view counts
- - [ ] (Opt-in mode only) Hashtag prescriptions verified at runtime via `/tags/<tag>` — no dead tags
- - [ ] (Opt-in mode only) CW prescribed for politics / NSFW / hot-take / long-thread; explicitly NOT for ordinary tech posts
- - [ ] (Opt-in mode only) Alt-text quality requirement included for any image-attached recommendation
- - [ ] Anchor-account boost-path list (5–10 accounts, instance noted, follower band) — research output: shows who currently amplifies, not who to target
- - [ ] Dead-pattern list applied — no recommendation uses X-residue, hashtag stacks (>3), marketing voice, or skipped-CW patterns
- - [ ] (Opt-in mode only) Instance-targeting plan included (primary home instance + 2–3 niche instances to escape into)
- - [ ] All background tabs closed
+ - [ ] Server, software, scope, observation period, language, and access state recorded.
+ - [ ] Surface URLs verified; pagination and sample boundaries explicit.
+ - [ ] Each cited post has a canonical URL and full federated handle; repeated appearances deduplicated.
+ - [ ] Displayed counts timestamped; unavailable data remains unobserved.
+ - [ ] Independent participation separated from self-replies; boost routes asserted only with evidence.
+ - [ ] Media descriptions, CW, and relevant policy recorded without invented penalties.
+ - [ ] Tag activity verified within stated scope; empty or restricted samples aren't labeled globally dead.
+ - [ ] Optional recommendations distinguish evidence from directional hypotheses; no fixed virality or timing thresholds.
+ - [ ] Sources and calculations support every measured summary; no invented proof or customer outcomes.
+ - [ ] Only research-created browser tabs closed; preserve the user's existing tabs.
- ## Composition / References
+ ## References
- - Pairs with `social-mastodon` (content domain) for writing the actual post from the brief.
- - Mastodon handles include the instance: always cite `@user@instance.tld` — never bare `@user`.
- - Use the agent's universal output schema.
+ - [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.
+ - [Release](https://blog.joinmastodon.org/2026/06/mastodon-4.6/), 2026-06.
+ - [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, Mastodon subsample undisclosed.
+ - [Discussion study](https://ojs.aaai.org/index.php/ICWSM/article/download/42774/50334/46875), 2026-05, crisis-discourse population.
+
+ Re-validate when web routes, access policies, pagination, or UI labels change; when discovery features ship; when ranking code or benchmark reports change.
+ Validated: 2026-09