Skip to content
Back to skills

Save

ASecurity

把這次對話裡值得長期記住的事存進 Engram:判斷該放專案、全域還是單機,先查有沒有相近的記憶(有就更新那一筆),格式符合 Claude Code 的記憶規範,使用者確認後才寫入。使用者說「把這些記下來」「存成記憶」「記住這個做法」,或輸入 /engram:save 時使用。

  • 16 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added October 23, 2026
ai-agentsshellbashgit

Works with

  • claude code

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add Sen-CaPoo/engram --skill save --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Save?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Save
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sen-capoo-save/badge)](https://www.skillsdirectory.com/skills/sen-capoo-save)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: save
description: 把這次對話裡值得長期記住的事存進 Engram:判斷該放專案、全域還是單機,先查有沒有相近的記憶(有就更新那一筆),格式符合 Claude Code 的記憶規範,使用者確認後才寫入。使用者說「把這些記下來」「存成記憶」「記住這個做法」,或輸入 /engram:save 時使用。
argument-hint: "[要記住的事;省略時回顧整段對話]"
allowed-tools: Bash(engram memory *) Bash(engram search *) Bash(engram remember *) Bash(engram undo *) Bash(engram status) Bash(engram projects) Bash(engram sync) Bash(engram sync *) PowerShell(engram memory *) PowerShell(engram search *) PowerShell(engram remember *) PowerShell(engram undo *) PowerShell(engram status) PowerShell(engram projects) PowerShell(engram sync) PowerShell(engram sync *) Edit(~/.engram/local/drafts/**)
---

# 把對話重點存進 Engram

要記住的內容:`$ARGUMENTS`(空白時回顧整段對話,自己找出值得記住的事)。

- 以「執行:」開頭(例如 `執行:全部`、`執行:1,3,5`)→ 使用者已經同意這個對話裡先前提出的計畫。不要重新規劃,直接從步驟 6 開始,只做列出的編號;寫入前仍要重新讀取,用最新的版本。對話裡還沒有提出過計畫時,當成一般的呼叫,從步驟 1 開始。

用 **Bash** 工具執行所有 `engram` 指令;寫入內容用 heredoc(`<<'EOF'`)從標準輸入傳入。一次執行一個 `engram` 指令,不要用 `;`、`&&` 或管線把其他指令、分隔字串串在一起:預先允許只涵蓋 `engram` 指令本身,串接後 Claude Code 會要求逐一核准。

**只有 PowerShell 工具、沒有 Bash 時**:讀取類指令照常執行;寫入時不要用 PowerShell 的管線或 here-string 傳內容(Windows PowerShell 5.1 會把中文變成問號)。改用 Write 工具把整份內容寫成草稿檔 `~/.engram/local/drafts/<任意名稱>.md`(完整路徑是 `engram status` 列出的 vault 資料夾旁邊的 `local\drafts`),再把指令裡的 heredoc 換成 `--file ~/.engram/local/drafts/<任意名稱>.md`。寫入成功後草稿會自動刪除;失敗時草稿保留,修正後再試。

## 步驟

1. **找出值得記的事**。記憶是寫給之後的對話用的:之後用得到、而且不寫下來就會遺失的事才值得記;值不值得記由你判斷。常見的有:
   - 使用者的偏好、糾正過你的地方、明確認可的做法(feedback)
   - 使用者的角色、背景、工作方式(user)
   - 專案的決策、限制、進度里程碑、踩過的坑(project)
   - 外部資源的位置:網址、儀表板、文件、帳號存放處(reference)

   不要記:從程式碼或 git 歷史就看得出來的事、只跟這次任務有關的暫時狀態、CLAUDE.md 或核心準則已經寫過的、密鑰的值(改記「存放在哪裡、怎麼取得」)。
2. **決定範圍**,一筆一件事:
   - **專案**(預設):只跟目前這個專案有關。pid 看 `engram status` 的「目前資料夾」一行。
   - **全域**:任何專案都成立(使用者偏好、跨專案通用的工具經驗)。全域記憶會進每個對話的索引,寧缺勿濫。
   - **單機**:只在這台電腦成立(安裝路徑、網路設定、本機版本);只跟某個專案有關時加 `--project <pid>`。
   - 判斷不了就放專案範圍。
3. **先查再寫**:每一筆都用 `engram search <關鍵字>` 查(中英文各試一次)。有講同一件事的記憶,就用 `engram memory show <ref>` 讀出來,計畫改成「更新那一筆」,不要新增重複的。
4. **提出計畫**,然後停下來等使用者回覆:

   | # | 動作 | 範圍 | 名稱 | 類型 | 一句話說明 |
   |---|---|---|---|---|---|

   「動作」是「新增」或「更新 <ref>」。表格下方附上每一筆的內文草稿(不長的話)。
5. **取得同意**:用 AskUserQuestion 詢問,選項是「全部寫入」「只寫部分(請告訴我編號)」「先不要」。在同一個回合裡取得同意,執行時才不會逐一跳出權限詢問。沒有 AskUserQuestion 工具時,列出這三個選項,然後停下來等使用者回覆。使用者沒有明確同意,就不執行任何寫入。
6. **執行**:只做使用者同意的項目,逐項執行並看輸出。任何一步失敗就停下來說明原因,不要換別的方法硬改。
   - 全域與單機記憶在步驟 4 一定要列出**完整內文**(不能只給摘要),使用者同意後寫入的內容要和列出的一字不差,這時才在 `engram remember` 或 `engram memory write` 加上 `--reviewed`:這些記憶會記為使用者確認過,不會再出現在收件匣的「待你確認」。沒有列出全文、或使用者沒有明確同意的,不可以加 `--reviewed`。
   - 使用者是在**之後的訊息**才同意時(例如回覆「全部寫入」),先用 Skill 工具重新呼叫 `engram:save`,參數寫「執行:」加上同意的編號(例如 `執行:全部`、`執行:1,3,5`),在那一輪執行。這個技能預先允許的指令只在呼叫它的那一回合有效,不重新呼叫的話,每個指令都會跳出權限詢問。
7. **收尾**:執行 `engram sync`,回報每一筆寫到哪個範圍、記憶名稱是什麼,以及復原指令(如果輸出有附)。

## 格式

- `--name` 用 kebab-case 英數,會成為檔名;`--description` 是一句具體的話(索引只顯示這一句,Claude 靠它判斷要不要讀)。
- feedback 與 project 類型,內文之後加上 `**Why:**` 與 `**How to apply:**` 兩行。
- 一律寫絕對日期(例如 2026-10-23),不寫「今天」「下週」。
- 寫下規則或做法時,註明怎麼確認的(實測、查文件或推測);之後發現說法不對,直接更新那一筆。
- 相關的記憶用 `[[name]]` 連結。
- 用使用者平常的語言寫。

## 指令

```bash
# 新增(--scope project|global|machine;專案以外要指定專案時加 --project <pid>)
engram remember --scope project --name <名稱> --type <user|feedback|project|reference> \
  --description "<一句話>" --reviewed <<'EOF'
<內文>

**Why:** <原因>
**How to apply:** <之後怎麼做>
EOF

# 更新既有的一筆(整份內容,含 frontmatter;--base 是 show 時的版本)
engram memory write <ref> --base <版本> --reviewed <<'EOF'
<整份內容>
EOF
```

- 更新既有記憶時保留原本 frontmatter 的其他欄位,只改需要改的部分。
- 一律透過 `engram` 指令寫入,不要用 Write 直接寫 `~/.engram/vault`。
- `engram remember` 因為 `E_SECRET` 以外的原因失敗時(例如找不到 engram 指令),說明錯誤並問使用者要不要改成寫在專案的自動記憶資料夾。被 `E_SECRET` 擋下的內容不可以改寫到任何地方,照下一點處理。
- Engram 回報 `E_SECRET`(內容疑似含有金鑰)時,不要換別的方式或寫到別的地方,也不要自己判斷那不是金鑰:向使用者說明是哪一筆、哪一行,建議改成只記「存放在哪裡、怎麼取得」。使用者表示那不是金鑰時,請使用者**自己**在終端機(不是 Claude Code 的對話)執行 `engram not-secret --value <那個值>`(既有檔案裡的用 `engram not-secret <ref> --line <行號>`),或在管理介面按「這不是金鑰」;你不能代為執行,在 Claude Code 裡執行會被拒絕。使用者完成後再執行原本的指令。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.