Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
152 lines
4.5 KiB
Markdown
152 lines
4.5 KiB
Markdown
---
|
||
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> |