import CodeBlock from ‘../../../components/CodeBlock.astro’; import CopyButton from ‘../../../components/CopyButton.tsx’;
mempalace add
添加新的 Drawer(記憶)到 Palace,支援 Reference 與 Observation 兩種類型。
指令
<CodeBlock code={‘mempalace add [options]’} language=“bash”> <CopyButton code={‘mempalace add’} />
選項
| 選項 | 描述 | 預設值 |
|---|---|---|
| –type | Drawer 類型(reference/observation) | observation |
| –title | Drawer 標題 | 無 |
| –content | Observation Drawer 的內容 | 無 |
| –file | Reference Drawer 的本地檔案路徑 | 無 |
| –range | Reference Drawer 的引用範圍(檔案行號) | 無 |
| –source | Reference Drawer 的外部來源 URL | 無 |
| –wing | Wing 名稱 | 目前目錄對應的 Wing |
| –room | Room 名稱 | 未分類 (uncategorized) |
| –tags | 抽屜標籤(逗號分隔) | 無 |
| –sources | Observation Drawer 的來源(格式:file:range) | 無 |
範例
添加 Reference Drawer
# 引用網頁內容
mempalace add --type reference \
--title "PostgreSQL JSONB 最佳實踐" \
--source "https://www.postgresql.org/docs/current/datatype-json.html" \
--range "lines 1-100" \
--tags "postgresql,jsonb,performance"
# 引用專案中的 Markdown 文件
mempalace add --type reference \
--title "測試策略規範" \
--file "docs/testing-strategy.md" \
--range "lines 20-45"
# 引用來源並指定 Wing 和 Room
mempalace add --type reference \
--wing "d:/Repo/myproject" \
--room "database-schema" \
--title "PostgreSQL 關聯數據處理" \
--source "https://www.postgresql.org/docs/current/queries-join.html" \
--range "lines 50-150" \
--tags "postgresql,join,performance"
添加 Observation Drawer
# 記錄見解
mempalace add --type observation \
--title "測試範圍須涵蓋 80% 業務邏輯分支" \
--content "根據過去專案的 Bug 分佈,主要集中在業務邏輯分支處理缺失。" \
--sources "testing-strategy.md:20-45" \
--tags "testing,press-release"
# 來源於會話對話
mempalace add --type observation \
--wing "d:/Repo/myproject" \
--room "architecture" \
--title "微服務邊界按業務能力拆分" \
--content "微服務應根據業務能力而非技術層次拆分,以提高團隊的自主性與互動需求。" \
--sources "vscode-workspace-1/session-20260715T143000.md:120-145" \
--tags "microservices,architecture,independence"
# 多來源的見解
mempalace add --type observation \
--title "Claude 4.5 能更好地處理跨文件依賴追蹤" \
--content "實際專案測試中,Claude 4.5 在 10 步以上的代碼追蹤成功率比 GPT-4o 高 38%。" \
--sources "benchmark-report.md:45-89,session-20260715T143000.md:120-145" \
--tags "models,benchmark,performance"
Drawer ID 自動分配
系統會為每個 Drawer 分配唯一 ID(三數字):
wing/room/drawer-001.md
wing/room/drawer-002.md
wing/room/drawer-003.md
檢視 Drawer 內容
# 列出某個 Room 下的 Drawers
mempalace list --wing "d:/Repo/myproject" --room "database-schema"
# 檢視特定 Drawer
mempalace view --drawer "d:/Repo/myproject/database-schema/drawer-001.md"
# 編輯 Drawer(可修改內容與 Links)
mempalace edit --drawer "d:/Repo/myproject/database-schema/drawer-001.md"
關聯到其他 Drawers
透過 mempalace link 將 Drawers 互相連接:
# 關聯兩個 Drawers
mempalace link --source "drawer-020" \
--target "drawer-015" \
--type "relates_to" \
--reason "都涉及安全設計(認證 vs 加密)"
或在 Drawer 中直接編輯 Links:
mempalace edit --drawer "drawer-025 --add-links [{
\"type\": \"extends_from\",
\"target\": \"drawer-020\",
\"reason\": \"在基礎架構上添加災難恢復設計\"
}]"
錯誤處理
# 缺少必要參數
$ mempalace add --type reference
✗ --title is required for reference drawers
# 未指定 Wing 且目前目錄不在 Palace
$ mempalace add
✗ No wing found. Please specify --wing or run from a tracked directory.
# 引用檔案不存在
$ mempalace add --type reference --file "missing-file.md"
✗ File not found: missing-file.md
# 來源格式錯誤
$ mempalace add --type observation --sources "wrong-format"
✗ Invalid sources format. Expected: --sources "file:line1-line2,file2:line3-line5"
相關指令
mempalace link- 關聯 Drawersmempalace edit- 編輯 Drawer 內容與 Linksmempalace view- 檢視 Drawer 內容mempalace list- 列出 Drawers