the signals and their derived score are provisional and subject to change.
validate manually before sharing.
c55ca64e887f8b4d8fffe53a99ccd5c3c80d55a9none
This repository is a fork of BirdsiteLive, renamed to dotMakeup because it now supports more than Twitter.
As components are added or refactored, progressively move naming and structure toward the new dotMakeup names.
In this codebase, a "strategy" is the concrete crawl/fetch mechanism (for example `Graphql2025`, `Sidecar`, `Direct`). Each social network should have its own independant strategies. Different strategies can be used in different situation to face rate limits and data completeness issues. KeepThe mission of dotmakeup is to bridge closed social networks into ActivityPub so people on the fediverse can follow those users and see their posts as natively as possible, at scale.
To maximize public value, prioritize crawling top accounts and public-interest accounts identified from Wikidata/Wikipedia, with extra priority for accounts followed by `r.town` (the Mastodon instance for this project's Patreon supporters). Because rate limits and anti-abuse throttling make crawl capacity a fixed budget, optim# Twitter Tests Agent Notes
## User instructions (persistent)
- Scope: focus on Nitter behavior first when asked to make Twitter tests pass.
## Fast workflow for Nitter runs
- Run only Nitter tests:
- `dotnet test Tests/BirdsiteLive.Twitter.Tests/BirdsiteLive.Twitter.Tests.csproj --filter "Name~Nitter" -v q --logger "trx;LogFileName=nitter_run.trx"`
- List available Nitter tests quickly:
- `dotnet test Tests/BirdsiteLive.Twitter.Tests/BirdsiteLive.Twitter.Tests.csproj --list-tests --filter "Name~Nitte# Special consideration for Twitter's strategies
For most strategies, there are separate endpoints for fetching with and without replies. Those often have separate rate limits, so to maximize the coverage, we should use both, with the replies going to higher priority accounts.
# Special consideration for Graphql202X's strategy
This is the OG strategy, hitting twitter Graphql endpoints directly. The URL get rotated once in a while, but we keep them around as long as they work with the year in the name. W# Social networks tests instructions
Tests content are the ground truth of what is actually happening in a social network. They allow testing multiple strategies with the same data.
Do not modify test files unless the user explicitly approves a targeted test-policy change. Fix upstream code, not assertions. If a test change is explicitly approved, keep it minimal and scoped: skip only the unavailable assertion for the affected implementation(s), and avoid marking the whole test inconclusive.
Keep implem# Instagram notes
Instagram has the strongest rate limits of all the services we support. We are using residential proxies to get around that, but those are expensive and are only used as a last resort.
The sidecar strategy is another implementation in Python, that runs on raspberry pi's at various homes. They manage to get some requests through, but get rate limited quickly.---
name: sre-review
description: Interactive SRE review of dotmakeup crawl coverage/freshness, federation read-query reliability, and web request error rate using Tempo traces, Mimir metrics, and the production PostgreSQL database. Analyzes crawl errors, crawl duration shape, settings tuning opportunities, HTTP error patterns across all endpoints, and tracing coverage gaps across RetrieveTweetsProcessor plus strategy-routing services and social-network strategy spans. Uses DB ground-truth data for crawl st---
name: grafana-review
description: Review and improve dotmakeup Grafana dashboards using local dashboard JSON or the live Grafana APIs. Audits panel/query semantics, ratios, variables, and descriptions, then deploys approved dashboard changes while keeping repo JSON aligned.
---
## Scope
This skill owns dotmakeup dashboard audit and deployment work for:
- `grafana/infra.json`
- `grafana/audience.json`
Use it when the task is mainly about dashboard correctness, panel/query changes,
variables, descriptinone