diff --git a/prd-home-open-source-contributions-section.md b/prd-home-open-source-contributions-section.md
new file mode 100644
index 0000000..4cce2bf
--- /dev/null
+++ b/prd-home-open-source-contributions-section.md
@@ -0,0 +1,477 @@
+# Home 页新增“开源贡献”板块与后台可编辑支持 PRD
+
+## 背景
+
+用户希望在 `https://www.ephron.ren/` 首页新增一个独立板块:**开源贡献**,并且该板块内容必须能够在 Home 后台中编辑、保存草稿、发布,不接受只改前台模板的静态实现。
+
+本 PRD 基于 `origin/main` 最新源码分析,覆盖 Home 的:
+- 公共渲染模板
+- Admin 编辑模板
+- content schema
+- 草稿 / 发布链路
+- 兼容策略
+- 测试要求
+
+---
+
+## 现状分析
+
+### 1. 首页当前内容结构
+
+当前 Home 页公共模板位于:
+- `home/templates/index.html`
+
+当前页面主区块顺序大致为:
+1. Hero
+2. 工作经历
+3. 项目经验
+4. 技术栈
+5. 页脚
+6. 联系方式弹窗
+
+其中内容类区块已经形成清晰模式:
+- `experience`:时间线列表
+- `projects`:时间线列表 + tags + 可选 badge
+- `skills`:分类列表
+
+### 2. Home 内容 schema 当前主结构
+
+当前 `home/src/services/content.py` 中 HomeContent 及默认内容模板包含:
+
+```python
+hero
+experience
+projects
+skills
+contact
+footer
+```
+
+当前**没有** `open_source` 或同义字段。
+
+### 3. 后台编辑页当前主结构
+
+后台模板位于:
+- `home/templates/admin/index.html`
+
+当前后台已提供以下可编辑区块:
+- Hero
+- 工作经历
+- 项目经验
+- 技术栈
+- 联系方式
+- 页脚
+
+其 JS 通过 `initialContent` + 各类 `renderXxx()`、`addXxx()`、`updateXxx()`、`removeXxx()` 管理动态列表,再通过 `collectFormData()` 汇总为完整 `content_json`。
+
+### 4. Draft / Publish 机制已存在
+
+Home Admin 已支持:
+- 保存草稿
+- 发布内容
+- 丢弃草稿
+
+相关服务链路位于:
+- `home/src/routes/admin.py`
+- `home/src/services/content.py`
+
+所以本次需求不应走“单独 API”或“静态 hardcode”路线,而应纳入现有 content schema。
+
+---
+
+## 问题定义
+
+如果只是简单在前台首页插入一个“开源贡献”区块,会有以下问题:
+
+1. **后台无法维护**
+ - 用户明确要求后台可修改
+ - 只改模板会让内容写死在代码里
+
+2. **不进入草稿 / 发布流程**
+ - 无法像其他首页内容一样先保存草稿再发布
+
+3. **与 Home 当前内容架构不一致**
+ - Home 当前是 schema 驱动 + admin 驱动
+ - 新区块也应遵循同样模式
+
+4. **历史内容兼容问题**
+ - 线上已有 `content_json` 一定不包含新字段
+ - 如果不做 normalize,可能出现模板取值缺失或后台初始值异常
+
+---
+
+## 目标
+
+### 产品目标
+在首页新增一个独立的 **开源贡献** 板块,用于展示用户的开源贡献记录。
+
+### 后台目标
+管理员可在 Home 后台中:
+- 新增开源贡献条目
+- 编辑开源贡献条目
+- 删除开源贡献条目
+- 标记草稿 / 已发布条目(如果沿用当前列表编辑模式)
+- 保存草稿
+- 发布
+
+### 技术目标
+将“开源贡献”纳入 Home 的统一内容 schema,而不是写死在模板中。
+
+---
+
+## 核心设计判断
+
+## 为什么建议新增独立 `open_source` 区块,而不是复用 `projects`
+
+虽然“开源贡献”看起来和“项目经验”都属于列表,但我**不建议复用 `projects`**,原因如下:
+
+1. **语义不同**
+ - 项目经验是个人项目 / 研究 / 比赛 /工程经历
+ - 开源贡献是对外部开源生态的参与记录
+
+2. **展示重心不同**
+ - 项目经验偏“我做了什么项目”
+ - 开源贡献偏“我向哪些项目贡献了什么”
+
+3. **后台认知更清晰**
+ - 管理员能清楚区分两类信息
+ - 避免未来在同一列表中混入不同语义的数据
+
+4. **后续扩展更容易**
+ - 以后可独立增加 repo 链接、PR 链接、贡献类型、状态标签等
+
+### 结论
+**本次建议新增独立字段:`open_source`**
+
+---
+
+## 数据结构设计
+
+### 建议新增主字段
+
+在 Home content 顶层新增:
+
+```json
+"open_source": []
+```
+
+### 单条条目建议结构
+
+建议最小结构如下:
+
+```json
+{
+ "title": "Hermes Agent",
+ "role": "提交 PR 修复 MiMo reasoning_content",
+ "date": "2026.05",
+ "description": [
+ "向上游提交并推动合并 MiMo reasoning_content 修复",
+ "补充兼容性验证与使用说明"
+ ],
+ "tags": ["Python", "Hermes", "Open Source"],
+ "link": "https://github.com/NousResearch/hermes-agent/pull/25358",
+ "is_draft": false
+}
+```
+
+### 字段说明
+
+- `title`
+ - 开源项目名 / 仓库名 / 贡献对象名
+- `role`
+ - 一句话说明贡献类型或身份
+ - 例如:修复 PR、功能贡献、文档维护、Issue triage
+- `date`
+ - 贡献时间,沿用当前 Home 的字符串时间格式
+- `description`
+ - 多条描述,后台可按“每行一条”编辑
+- `tags`
+ - 技术标签或贡献类型标签
+- `link`
+ - 对外链接,建议指向 PR / repo / profile / issue
+- `is_draft`
+ - 若沿用现有列表项 draft 切换机制,则保留该字段
+
+### 为什么建议有 `link`
+
+因为“开源贡献”天然需要外部证明入口:
+- GitHub PR
+- 仓库主页
+- 个人 Profile
+
+如果没有链接,板块很容易退化成纯文字陈列。
+
+---
+
+## 服务层改造
+
+### 必改文件
+- `home/src/services/content.py`
+
+### 要求
+
+#### 1. 扩展默认 schema
+在 `_get_empty_content()` 中新增:
+
+```python
+"open_source": []
+```
+
+#### 2. 扩展 normalize
+在 `_normalize_content()` 中补:
+
+```python
+content.setdefault("open_source", [])
+```
+
+#### 3. 兼容性原则
+旧内容没有 `open_source` 时:
+- 首页应正常打开
+- 后台应正常打开
+- 不要求先清洗数据库历史内容
+
+---
+
+## 前台首页改造
+
+### 必改文件
+- `home/templates/index.html`
+
+### 板块位置建议
+建议插入在:
+- **项目经验之后**
+- **技术栈之前**
+
+推荐顺序:
+1. 工作经历
+2. 项目经验
+3. **开源贡献**
+4. 技术栈
+
+### 原因
+
+1. 信息层级更合理
+ - 工作 / 项目 / 开源 属于“经历与实践”一组
+ - 技术栈更适合作为总结性能力列表放在后面
+
+2. 开源贡献不应放到页脚附近
+ - 会显得像附属信息,而不是正式内容资产
+
+### 渲染方式建议
+
+建议复用当前 `timeline-item` 风格,保持页面一致性。
+
+示意结构:
+
+```jinja2
+{% if content.open_source %}
+ {{ item.role }}开源贡献
+ {% for item in content.open_source if not item.get('is_draft', False) %}
+ {{ item.title }}
+
+ {% for bullet in item.bullets %}
+
+ {% if item.tags %}
+
+ {% endif %}
+ {% if item.link %}
+ 查看贡献
+ {% endif %}
+