Skip to content

feat(outreach): issue-first README outreach, on by default, every send tracked (ADR-0015) - #31

Merged
stuinfla merged 2 commits into
mainfrom
feat/readme-pr-default
Oct 10, 2026
Merged

stuinfla merged 2 commits into
mainfrom
feat/readme-pr-default

Conversation

@stuinfla

Copy link
Copy Markdown
Owner

What

The owner's brief: always send the maintainer a friendly, visual README suggestion in the tone of the claude-swap PR, with the new per-repo graphics, and track whether people respond. They also asked for a review of the channel because they don't want to be a bad citizen. ADR-0015 records the decision and the evidence.

Decision (owner picked option 1 of 3)

Issue first, PR on a yes. On claude-swap, gh shows 143 open PRs (3 new a day) and a maintainer-approval workflow on our PR; an issue carries the finished work (rendered README in one click, images, explainer link) and asks nothing of them. The PR is a second, human-triggered step: explainmyrepo outreach open-pr owner/name.

What changed

  • tools/readme-enhance.mjs rewritten: on by default, issue channel, optional PR channel, dry-run mode.
  • src/readme-ascii.mjs: additions-only README rewrite; ASCII diagrams → animated SVG twins.
  • src/readme-pr.mjs: the message (tone, README-link-first, images) + who is skipped.
  • src/outreach.mjs / outreach-cli.mjs: ledger, daily cap, one-contact-per-repo, outreach status.
  • CLI: --no-readme-pr, an OUTREACH section in --help.

Rules enforced in code (each proven by deleting it and watching a test fail)

never your own repo or a private repo · one contact per repo, ever · a closed/merged item is never re-sent · daily cap (5) · additions only · no preview hosted → no issue

Evidence

  • 314 tests, 0 failing (new: 20 + 22 + 13 + 9 + 16).
  • The real station, dry-run on the real claude-swap build, produced the issue text reviewed by the owner.

Not claimed

  • Nobody has been shown to want this. The ledger exists to find out; if response is poor, turn the default off.
  • Default-on means every npm user's npx explainmyrepo contacts maintainers from their own account, rate-limited and one flag from off. That is a real decision; it is in the ADR.

…link under title) and the PR text + who-to-send-to rules

Not yet wired into the readme-enhance station; channel (PR vs issue-first) pending the owner's decision.
…a yes, every send tracked (ADR-0015)

- the station sends one friendly issue with the rendered README, images and explainer link
- additions only; ASCII diagrams become animated SVGs above the originals
- never own/private repos, one contact per repo, daily cap, a closed item is never re-sent
- ledger + 'explainmyrepo outreach status | open-pr'; --no-readme-pr / README_ENHANCE=0 to disable
@netlify

netlify Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for explainmyrepo canceled.

Name Link
🔨 Latest commit d4ee882
🔍 Latest deploy log https://app.netlify.com/projects/explainmyrepo/deploys/6acaa9bb7ca32e00097b1f03

@stuinfla
stuinfla merged commit c0d88a0 into main Oct 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant