Vouch
Vouch
<a href="https://x.com/mitchellh/status/2020252149117313349" rel="nofollow">https://x.com/mitchellh/status/2020252149117313349</a><p><a href="https://nitter.net/mitchellh/status/2020252149117313349" rel="nofollow">https://nitter.net/mitchellh/status/2020252149117313349</a><p><a href="https://github.com/ghostty-org/ghostty/pull/10559" rel="nofollow">https://github.com/ghostty-org/ghostty/pull/10559</a>
<a href="https://x.com/mitchellh/status/2020252149117313349" rel="nofollow">https://x.com/mitchellh/status/2020252149117313349</a><p><a href="https://nitter.net/mitchellh/status/2020252149117313349" rel="nofollow">https://nitter.net/mitchellh/status/2020252149117313349</a><p><a href="https://github.com/ghostty-org/ghostty/pull/10559" rel="nofollow">https://github.com/ghostty-org/ghostty/pull/10559</a>
요약
Vouch는 AI 도구로 가능해진 저품질 기여를 막기 위해 설계된 실험적인 프로젝트 신뢰 관리 시스템입니다. 이를 통해 프로젝트는 사용자를 명시적으로 보증하거나 거부하여 서로 다른 프로젝트 간에 공유될 수 있는 신뢰 네트워크를 구축할 수 있습니다. 이 시스템은 구성 가능하며 GitHub 액션과 CLI를 통해 GitHub와 통합되며, 신뢰 목록을 관리하기 위한 간단한 파일 형식을 사용합니다.
댓글 (42)
The problem is at the social level. People will not want to maintain their own vouch/denounce lists because they're lazy. Which means if this takes off, there will be centrally maintained vouchlists. Which, if you've been on the internet for any amount of time, you can instantly imagine will lead to the formation of cliques and vouchlist drama.
Feels like making a messaging app but "how messages are delivered and to whom is left to the user to implement".
I think "who and how someone is vouched" is like 99.99% of the problem and they haven't tried to solve it so it's hard to see how much value there is here. (And tbh I doubt you really can solve this problem in a way that doesn't suck.)
Honestly, my view is that this is a technical solution for a cultural problem. Particularly in the last ~10 years, open source has really been pushed into a "corporate dress rehearsal" culture. All communication is expected to be highly professional. Talk to everyone who opens an issue or PR with the respect you would a coworker. Say nothing that might offend anyone anywhere, keep it PG-13. Even Linus had to pull back on his famously virtiolic responses to shitty code in PRs.
Being open and inclusive is great, but bad actors have really exploited this. The proper response to an obviously AI-generated slop PR should be "fuck off", closing the PR, and banning them from the repo. But maintainers are uncomfortable with doing this directly since it violates the corporate dress rehearsal kayfabe, so vouch is a roundabout way of accomplishing this.
...or spam "RBL" lists which were often shared. https://en.wikipedia.org/wiki/Domain_Name_System_blocklist
The real problem are reputation-farmers. They open hundreds of low-effort PRs on GitHub in the hope that some of them get merged. This will increase the reputation of their accounts, which they hope will help them stand out when applying for a job. So the solution would be for GitHub to implement a system to punish bad PRs. Here is my idea:
- The owner of a repo can close a PR either neutrally (e.g. an earnest but misguided effort was made), positively (a valuable contribution was made) or negatively (worthless slop)
- Depending on how the PR was closed the reputation rises or drops
- Reputation can only be raised or lowered when interacting with another repo
The last point should prevent brigading, I have to make contact with someone before he can judge me, and he can only judge me once per interaction. People could still farm reputation by making lots of quality PRs, but that's actually a good thing. The only bad way I can see this being gamed is if a bunch of buddies get together and merge each other's garbage PRs, but people can already do that sort of thing. Maybe the reputation should not be a total sum, but per project? Anyway, the idea is for there to be some negative consequences for people opening junk PRs.
Not sure about the trust part. Ideally, you can evaluate the change on its own.
In my experience, I immediately know whether I want to close or merge a PR within a few seconds, and the hard part is writing the response to close it such that they don't come back again with the same stuff.
(I review a lot of PRs for openpilot - https://github.com/commaai/openpilot)
Not sure this is what I want to hear about a system that people entrust their lives to on the highway…
If you get denounced on a popular repo and everyone "inherits" that repo as a source of trust (e.g. think email providers - Google decides you are bad, good luck).
Couple with the fact that usually new contributors take some time to find their feet.
I've only been at this game (SWE) for ~10 years so not a long time. But I can tell you my first few contributions were clumsy and perhaps would have earned my a denouncement.
I'm not sure if I would have contributed to the AWS SDK, Sendgrid, Nunit, New Relic (easily my best experience) and my attempted contribution to Npgsql (easily my worst experience) would have definitely earned me a denouncement.
Concept is good, but I would omit the concept of denouncement entirely.
It also addresses the issue in tolerating unchecked or seemingly plausible slop PRs from outside contributors from ever getting merged in easily. By default, they are all untrusted.
Now this social issue has been made worse by vibe-coded PRs; and untrusted outside contributors should instead earn their access to be 'vouched' by the core maintainers rather than them allowing a wild west of slop PRs.
A great deal.