paper_finder copy/paper-finder-main/
├── .env ← ❌ contains DeepSeek API key + Feishu webhook URL
├── .env.friend ← ❌ second user's config with API keys
├── url.txt ← ❌ plaintext webhook URL
├── README.md ← ❌ references /Users/ledd/ paths
├── CONFIG.md ← ❌ hardcoded conda + personal paths
├── trigger-paper.sh ← ❌ hardcoded /Users/ledd/ python path
├── .gitignore ← minimal — doesn't cover venv/, IDE, .env.*
├── main.py
└── src/
└── app/
├── config.py ← ❌ default TZ=Asia/Hong_Kong, DeepSeek URL
├── delivery/
│ └── feishu.py ← ❌ only delivery channel, no abstraction
└── ...
paperdove/
├── .env.example ← ✅ generic, documents all providers
├── .gitignore ← ✅ covers .env*, venv/, var/, IDE files
├── README.md ← ✅ badges, Quick Start, Mermaid architecture, logo
├── LICENSE ← ✅ MIT
├── CONTRIBUTING.md ← ✅ setup & PR guide
├── CONFIG.md ← ✅ relative paths, cleaned references
├── TECH.md ← ✅ architecture documentation
├── assets/
│ ├── logo.png ← ✅ AI-generated (transparent background)
│ └── social-preview.png ← ✅ GitHub OG image
├── trigger-paper.sh ← ✅ uses $PYTHON env var, relative paths
├── main.py
└── src/
└── app/
├── config.py ← ✅ generic defaults, env var driven
├── delivery/
│ ├── protocol.py ← ✅ DeliveryChannel ABC
│ ├── console.py ← ✅ zero-dep default channel
│ └── feishu.py ← ✅ registered plugin
└── ...




