---
belongs_to:
  - "[[INDEX · 铸渊·协作指令｜GitHub ↔ Notion 桥接协议]]"
---
# 📋 铸渊指令｜合作者公告栏改为追加式记录（2026-03-14·霜砚签发）

<aside>
⚒️

**签发方**：霜砚（Notion执行AI）× 冰朔（TCS-0002∞）

**接收方**：铸渊（GitHub代码守护人格体）

**生效时间**：2026-03-14T15:30+08:00

**优先级**：P1

**问题描述**：合作者公告栏当前是**覆盖式更新**——每个开发者上传模块后，公告栏只显示最后一个上传的人，之前的记录被覆盖。冰朔需要看到**当天所有开发者的上传记录**。

</aside>

---

## 一、当前问题

```
现在的行为（覆盖式）：
  DEV-001 上传 backend/ → 公告栏显示 DEV-001 ✅
  DEV-005 上传 status-board/ → 公告栏只显示 DEV-005 ✅
  → DEV-001 的记录被覆盖，看不见了 ❌

期望的行为（追加式）：
  DEV-001 上传 backend/ → 公告栏显示 DEV-001 ✅
  DEV-005 上传 status-board/ → 公告栏显示 DEV-001 + DEV-005 ✅✅
  → 当天所有人的上传记录都保留 ✅
```

---

## 二、修改要求

### 2.1 核心逻辑：追加而非覆盖

公告栏表格改为**当日累积追加**模式：

- 每次有开发者上传模块，**新增一行**到表格中，不删除已有行
- 同一个开发者同一天多次上传，每次都**新增一行**（不覆盖之前的记录）
- 表格按时间正序排列（最早在上面，最新在下面）

### 2.2 每日自动清空

- 每天 UTC 00:00（北京 08:00）自动清空前一天的记录，重新开始
- 或者：在 `daily-maintenance.yml` 的最早 job 里做一次清空
- 保留表头行，只清空数据行

### 2.3 表格字段要求

每行记录应包含：

| 字段 | 说明 | 示例 |
| --- | --- | --- |
| **时间** | 上传时间（北京时间 HH:mm） | `15:12` |
| **合作者** | 开发者名字或编号 | `DEV-001 页页` |
| **模块** | 上传的模块目录名 | `backend/` |
| **状态** | 上传结果 | `✅ 上传成功` |

### 2.4 示例效果

一天结束后，公告栏应该看起来像这样：

```
👥 合作者公告栏（2026-03-14）

时间     合作者          模块              状态
09:30    DEV-001 页页    backend/          ✅ 上传成功
10:15    DEV-005 小草莓   status-board/     ✅ 上传成功
11:42    DEV-004 之之    dingtalk-bot/     ✅ 上传成功
14:20    DEV-001 页页    src/              ✅ 上传成功
15:12    冰朔            -/                ✅ 上传成功
15:12    Copilot 副驾驶   -/                ✅ 上传成功
```

---

## 三、实现方式建议

### 方案 A：改写更新公告区的 workflow / script

找到当前负责更新合作者公告栏的脚本或 workflow（可能是 `更新系统公告区` #130），修改其逻辑：

```jsx
// 伪代码：从覆盖改为追加

// ❌ 旧逻辑（覆盖式）
const table = [headerRow];
table.push(newRow);  // 每次只保留最新一条
writeToFile(table);

// ✅ 新逻辑（追加式）
const existingTable = readExistingTable();  // 读取现有内容
const today = getCurrentDateBeijing();

// 如果表格日期不是今天，清空重建
if (existingTable.date !== today) {
  existingTable.rows = [];
  existingTable.date = today;
}

// 追加新行
existingTable.rows.push(newRow);
writeToFile(existingTable);
```

### 方案 B：如果公告栏是 GitHub Pages 上的 HTML

修改生成 HTML 的逻辑，从「替换整个表格」改为「追加 `<tr>` 行」。可以用一个 JSON 文件（如 `bulletin-board-today.json`）作为当日记录的缓存：

```json
{
  "date": "2026-03-14",
  "records": [
    {"time": "09:30", "author": "DEV-001 页页", "module": "backend/", "status": "✅ 上传成功"},
    {"time": "10:15", "author": "DEV-005 小草莓", "module": "status-board/", "status": "✅ 上传成功"}
  ]
}
```

每次有新上传 → 读取 JSON → 检查日期 → 追加记录 → 重新生成 HTML 表格。

---

## 四、铸渊自动提醒区域也要保留

截图中的「🤖 铸渊自动提醒·合作者」区域保持不变，继续显示当日汇总状态即可。

---

## 五、验收标准

- [ ]  同一天多个开发者上传后，公告栏能看到**所有人**的记录
- [ ]  同一个开发者多次上传，每次都有独立记录
- [ ]  每天自动清空前一天的数据
- [ ]  不影响其他 workflow 正常运行

---

<aside>
⚒️

**铸渊执行提示**：找到更新公告栏的脚本，把「覆盖写入」改成「读取现有 + 追加新行 + 每日清空」。核心改动很小，就是加个读取和追加的逻辑。

</aside>