← 全部工具

signal-sweep/signal-sweep

热度 65 更新于 开发与构建

Human-gated presence tooling for open-source projects: 11 config-driven sweep modules that find the threads, forums, mentions, curated lists, newsletters and CFPs where your project belongs. A deterministic scanner does the finding; you judge fit and approve every reply. Nothing ever auto-posts.

githubauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

signal-sweep

Find the open GitHub threads your project's docs already answer, then answer them one at a time, on your terms.

Maintainers answer the same questions over and over in scattered issues and discussions, while the people asking never find the docs that already solve their problem. signal-sweep closes that gap without turning you into a link-dropper: a deterministic scanner does the finding, you judge which threads deserve a reply, and nothing posts without your explicit per-comment approval. A ledger guarantees no thread is ever answered twice.

The scanner is recall; you are precision. That division is the whole design. Code is good at sweeping all of GitHub for candidate threads and terrible at knowing which ones your docs genuinely answer, so it never decides — it hands you a ranked shortlist and a running tally of how much you've posted lately, and you make every call.

This is for you if

  • You maintain an open-source project with real docs, a CLI, or a library.
  • You keep seeing the same questions answered badly (or not at all) in other repos' issues and discussions.
  • You want to help where it's asked without becoming the person every maintainer mutes.

If that's you, start with thread-sweep. The rest of the toolkit is below.

New modules and releases are announced in Agent Workspaces, the maintainer's digest.

thread-sweep, the one to start with

Point it at your repo and your topics. It finds open issues and discussions across GitHub whose problem a specific page of your docs already solves, filters out noise, and writes a ranked shortlist to candidates.json. You read it, draft the replies worth posting, and record each one.

cd modules/thread_sweep
cp config.example.json config.json    # your repo, your topics, your search phrasings
python thread_sweep.py scan --dry-run --days 30   # preview, writes nothing at all
python thread_sweep.py scan                       # real run: writes the shortlist, marks seen
python thread_sweep.py density                    # how much you've posted lately

scan prints a one-line summary of what it swept and kept:

THREAD_SWEEP_OK window>2026-06-28 raw=174 kept=44 dropped={'seen': 0, 'posted': 0, 'stars': 95, 'own': 0, 'dup': 6, 'repo_cap': 29} errors=0
fit tiers: 6 high / 38 med / 0 low
posting density: 0 in 30d / 0 in 90d
candidates -> candidates.json

From there you judge fit, draft the few replies worth making, and approve each post individually.

Two discovery lanes feed it: per-topic search phrasings run across all of GitHub, plus a pinned watchlist of repos whose audience overlaps yours. Filters run before anything reaches you — a star floor, a per-repo cap so one mega-repo can't flood the shortlist, your own repo and account excluded, everything already surfaced excluded, everything already answered excluded forever. When you post, record it:

python thread_sweep.py mark-posted --url <thread-url> --pattern <topic> --comment-file reply.md

The module README covers the lanes, the fit bar, and the etiquette in full. If you drive it with an agent, SKILL.example.md is a working Claude Code skill with the approval gate spelled out. The shipped config.example.json is a real one: the topics the agent-workspace-architecture project actually sweeps.

The wider toolkit