Skip to content

Latest commit

 

History

History
85 lines (74 loc) · 3.73 KB

before_after.md

File metadata and controls

85 lines (74 loc) · 3.73 KB

Example: PaperDove — Before & After Ossify

Before (Personal Project)

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
        └── ...

Audit Findings

# Severity Issue
1 🔴 CRITICAL .env and .env.friend contain DeepSeek API keys
2 🔴 HIGH url.txt and .env contain live Feishu webhook URL
3 🔴 HIGH trigger-paper.sh hardcodes personal python path
4 🟡 MEDIUM config.py hardcodes https://api.deepseek.com
5 🟡 MEDIUM Only Feishu delivery, no abstraction
6 🟡 MEDIUM /Users/ledd/ paths in README, CONFIG, TECH, trigger-paper.sh
7 🔵 HIGH No LICENSE
8 🔵 MEDIUM No CONTRIBUTING.md

After (GitHub-Ready → PaperDove)

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
        └── ...

README Badges (auto-generated)

![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
![Python: 3.11+](https://img.shields.io/badge/Python-3.11+-3776AB?style=flat&logo=python)
![Framework: LangGraph](https://img.shields.io/badge/Framework-LangGraph-1C3C3C?style=flat)
![Delivery: Feishu](https://img.shields.io/badge/Delivery-Feishu-3370FF?style=flat)
![Data: Arxiv](https://img.shields.io/badge/Data-Arxiv-B31B1B?style=flat)

What Ossify Fixed

Fix How
🔑 API keys in .env Stripped real keys → placeholders
🔗 Webhook URL leak Deleted url.txt, cleared FEISHU_WEBHOOK_URL
📂 Personal paths /Users/ledd/... → relative paths everywhere
🧹 Friend profile Removed .env.friend + multi-profile logic
🏗️ Delivery lock-in Already had BaseDeliveryChannel protocol (kept)
📄 Missing files Generated LICENSE, CONTRIBUTING, enhanced .gitignore
🎨 Logo Generated via relay API with --model gpt-image-2
🏷️ Project name Paper Finder → PaperDove (rebranded with dove+paper logo)