UL Community Directory Proposal v1
A proposal for connecting the Unsupervised Learning community
1. Current State
- Discord is the community hub, but has no collaborative pages feature like Slack
- Members have scattered online presences: blogs, personal sites, daemons, Twitter, Mastodon, etc.
- No central place to discover what community members are working on or where to find them
- Connecting with people requires asking in Discord or knowing them and what to look up
2. Desired End State
- Understand what each other are doing for the purpose of connecting, communicating, and possibly building together
- Public read access so anyone (including AI assistants) can browse the directory
- Authenticated write access so only UL members can add or edit entries
- Low maintenance so busy tech/security professionals don't have another thing to manage
- Version controlled so mistakes or vandalism can be easily rolled back
3. The Gap
- Authentication: How do we verify someone is a UL member before they can edit?
- Accessibility: Not everyone has GitHub or wants to learn pull requests
- Hosting: We don't want to stand up and maintain a server with a database
- Prompt injection: If AI assistants read this, malicious entries are a concern
4. Two Possible Solutions
Public GitHub repo with a YAML file. Members fork, edit, and submit pull requests. Maintainers review and merge.
Pro: Zero infrastructure. Works today.
Con: Requires GitHub account and PR knowledge. Ongoing maintainer effort to review PRs.
Same GitHub repo, but with a web UI. Members authenticate via Discord. A Cloudflare Worker verifies membership and commits changes automatically.
Pro: Non-technical friendly. No maintainer review needed.
Con: Requires building the Worker and Discord bot upfront.
Option B Flow
Member clicks "Edit"
→
Discord OAuth
→
Worker verifies UL membership
→
Edit form appears
→
Worker commits to GitHub
5. Comparison
| Requirement |
Option A (PRs) |
Option B (Worker) |
| Public read |
✓ GitHub raw URLs |
✓ GitHub raw URLs |
| Authenticated write |
✓ Maintainer reviews PRs |
✓ Discord OAuth |
| Low maintenance |
~ Ongoing PR reviews |
✓ Serverless, automated |
| Version control |
✓ Git history |
✓ Git history |
| Non-technical friendly |
✗ Requires GitHub + PRs |
✓ Web form |
| Setup effort |
✓ None |
~ Build Worker + bot |
| Cost |
✓ Free |
✓ Low to free |
6. Example Data Format
Structured YAML that's both human-readable and AI-parseable:
members:
- name: Daniel Miessler
discord: danielmiessler
daemon: https://mcp.daemon.danielmiessler.com
links:
- type: blog
url: https://danielmiessler.com
- type: twitter
url: https://twitter.com/danielmiessler
bio: Creator of Fabric, UL, and PAI.
- name: anon_hacker
discord: anon_hacker
links:
- type: mastodon
url: https://infosec.exchange/@anon
bio: Red teamer. Prefers pseudonymity.
On Prompt Injection
Prompt injection remains an unsolved problem. Someone could write malicious instructions in their bio, or link to an external page with injections. This is true of any public content an AI assistant might read, including personal daemons, MCPs, blogs, or any webpage.
What we do have:
- Some accountability via Discord user IDs (though members may still be pseudonymous)
- Git history to see who changed what and roll back if needed
This does not eliminate the risk. Someone would still need to keep an eye on the directory. But the risk is no different than pointing an AI at any other public resource.
On Platform Independence
This doesn't have to be GitHub. Any Git hosting works (GitLab, Gitea, etc.). To future-proof against platform changes, we could put a UL-owned alias in front of the raw file URL (e.g., directory.unsupervisedlearning.com). If we ever move backends, we just update where the alias points.
7. What We Need
For Option A (PRs):
- A GitHub repo (public, under UL org or a maintainer's account)
- 1-2 maintainers willing to review and merge PRs
For Option B (Worker):
- Everything from Option A, plus:
- A Discord bot with minimal permissions (just server membership check)
- A Cloudflare account for the Worker
- Someone to build the Worker + simple web UI