# Memory Updater

> 維護和更新專案的 Memory Bank 記憶系統，確保專案狀態在對話間持久化。

- Skill: `majiayu000/memory-updater` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/memory-updater`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/memory-updater/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/memory-updater

---


---
name: memory-updater
description: Update and maintain Memory Bank files (activeContext, progress, decisionLog). Triggers: MB, memory, 記憶, 進度, 更新記憶, update memory, 記錄進度, 更新上下文, sync, 同步, 記下來, note, 筆記, context, 脈絡, 追蹤, track, 狀態, status.
version: 2.2.0
category: memory
compatibility:
  - claude-code
  - github-copilot
  - vscode
  - codex-cli
dependencies: []
allowed-tools:
  - read_file
  - write_file
  - replace_string_in_file
  - memory
---

# Memory Bank 更新技能

## 描述

維護和更新專案的 Memory Bank 記憶系統，確保專案狀態在對話間持久化。

## 觸發條件

- 「更新 memory bank」「MB」「記錄進度」
- 「更新上下文」「sync」「同步」
- 工作階段結束時
- 完成重要任務後

---

## 📁 Memory Bank 檔案結構

```
memory-bank/
├── activeContext.md   # 當前工作焦點（最常更新）
├── progress.md        # 進度追蹤 Done/Doing/Next
├── decisionLog.md     # 重要決策記錄
├── architect.md       # 架構文檔
├── productContext.md  # 專案上下文
├── projectBrief.md    # 專案簡介
└── systemPatterns.md  # 系統模式
```

---

## 🔧 操作步驟

### Step 1: 讀取現有內容

使用 `read_file` 工具讀取要更新的檔案：

```
read_file("memory-bank/activeContext.md")
read_file("memory-bank/progress.md")
```

### Step 2: 判斷更新類型

| 情況 | 更新檔案 | 更新方式 |
|------|----------|----------|
| 開始新任務 | activeContext.md, progress.md | 新增 Doing |
| 完成任務 | progress.md | Doing → Done |
| 做出決策 | decisionLog.md | 新增條目 |
| 架構變更 | architect.md | 更新相關區塊 |

### Step 3: 執行更新

使用 `replace_string_in_file` 進行精確更新（推薦）：

```
replace_string_in_file(
  filePath="memory-bank/progress.md",
  oldString="## Doing\n\n- [ ] 任務 A",
  newString="## Doing\n\n- [ ] 任務 A\n- [ ] 新任務 B"
)
```

或使用 `write_file` 完整覆寫（適合大幅修改）。

---

## 📝 檔案格式規範

### activeContext.md

```markdown
# Active Context

> Last updated: 2026-01-15

## 🎯 當前焦點

[一句話描述正在處理的主要任務]

## 📁 相關檔案

- `path/to/file1.py` - [用途說明]
- `path/to/file2.ts` - [用途說明]

## ⚠️ 待解決問題

- [ ] 問題 1
- [ ] 問題 2

## 💡 備註

[其他需要記住的事項]
```

### progress.md

```markdown
# Progress

## Done ✅

- [x] 已完成任務 1 (2026-01-15)
- [x] 已完成任務 2 (2026-01-14)

## Doing 🚧

- [ ] 進行中任務 1
- [ ] 進行中任務 2

## Next 📋

- [ ] 計劃任務 1
- [ ] 計劃任務 2
```

### decisionLog.md

```markdown
# Decision Log

## 2026-01-15

### 決策：選擇 React 作為前端框架

- **背景**：需要選擇前端框架
- **選項**：React, Vue, Svelte
- **決定**：React
- **原因**：團隊熟悉度高，生態系完整

---

## 2026-01-14

### 決策：...
```

---

## ⚡ 更新原則

### 1. 增量更新

```
✅ 正確：只修改相關區塊
❌ 錯誤：每次都覆寫整個檔案
```

### 2. 保持簡潔

```
✅ 正確：「完成用戶認證模組」
❌ 錯誤：「今天我們完成了用戶認證模組的開發工作，包括...」
```

### 3. 時間標記

```
✅ 正確：- [x] 完成功能 A (2026-01-15)
❌ 錯誤：- [x] 完成功能 A
```

### 4. 檔案路徑完整

```
✅ 正確：`src/domain/entities/User.py`
❌ 錯誤：`User.py`
```

---

## 🔄 與其他 Skills 整合

| Skill | 整合方式 |
|-------|----------|
| `memory-checkpoint` | checkpoint 後呼叫 updater 寫入 |
| `git-precommit` | commit 前強制更新 progress.md |
| `feature-development` | 功能完成後更新 Done |

---

## 📊 輸出格式

執行完成後回報：

```
📝 Memory Bank 已更新

更新內容：
- ✅ activeContext.md - 更新當前焦點
- ✅ progress.md - 新增 1 個 Done 項目
- ⏭️ decisionLog.md - 無變更

下次記得：完成重要任務後執行「更新 memory bank」
```

