Community生產力與協作github.com

alex20-create/wrap-up(結案彙整)

當使用者即將封存對話、關閉工作階段或結束當前任務時(例如「voy a archivar」、「cierro el chat」、「wrap up」、「/wrap-up」),在 Claude Code 或 claude.ai 中使用,即使他們未指名任何負責儲存狀態的技能也適用;也用於對話已閒置數日、後續工作階段已往前推進的情況。不適用於使用者持續工作時某個單一任務的結束,不適用於每日關閉常規(「cierro el día」屬於規劃技能),也不適用於登出網站(此情況下的「cerrar sesión」)。

wrap-up(結案彙整) 是什麼?

這個技能(Wrap-up)用於在 Claude Code 或 claude.ai 上即將封存對話或結束工作階段時,自動化執行「結案」程序。它的核心價值在於,當對話即將被關閉時,確保那些只存在於對話記憶中的資訊(如決定、磁碟變更、下一階段需接續的事項)不會遺失。為此,該技能會動態發現並依正確順序執行所有已安裝的、負責儲存不同層面狀態的相關技能(如記憶、筆記、知識庫同步、上下文儲存等)。它會根據環境(本機 Claude Code、附裝置 Shell 的雲端會話、無裝置 Shell 的雲端會話)及對話的「陳舊程度」(過去的對話是否已被後續操作覆蓋)來調整行為,並在執行前提供一個統一的計畫請求使用者確認。此技能不會硬編碼技能名稱,而是每次從已安裝清單中透過比對目錄檔案(`references/close-out-catalogue.md`)中的類別來動態匹配,確保其能適應不斷變化的外掛與自訂技能生態系。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alex20-create/session-routines/tree/HEAD/wrap-up

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

結案彙整 (Wrap-up)

使用者即將封存此對話。僅存在於對話中的一切(已做出的決定、磁碟上的變更、下一個工作階段應接續的事項)都將遺失。已安裝的多個技能各自負責儲存其中一塊。此技能的任務是找到它們、按照正確順序執行,並在一次確認後停止。

技能清單並非固定:外掛來來去去,使用者也會編寫新的技能。切勿硬編碼名稱;每次應從已安裝的技能中發現,然後與 references/close-out-catalogue.md 中的類別進行比對。目錄檔案說明了每個類別的用途、執行順序以及成本;本檔案則說明每個類別在不同環境下如何執行。若兩者似乎存在矛盾,則遵循目錄檔案來決定「做什麼」以及「順序」,遵循本檔案來決定「怎麼做」,並在報告中提及該矛盾,以便使用者修正目錄檔案。

0. 確認所在環境及工作階段的新舊程度

接下來的內容大多會因環境及工作階段的時間長短而改變,因此請先確認這兩點,並在計畫頂部用一行話說明。三種環境:

  • 使用者電腦上的 Claude Code。 該電腦上的一個 Shell,技能位於 ~/.claude/skills,鉤子(hooks)可執行(包括某些已設定的 SessionEnd 鉤子,它會記錄每個工作階段;本機地圖或 settings.json 會說明是否存在),儲存庫和保險庫(vault)皆位於磁碟上。以下所有內容均按書面適用。
  • claude.ai 或附有裝置 Shell 的雲端工作階段。 對話在 Linux 容器中運行,但同時列出了指向使用者電腦的 Shell 工具,因此命令可在那裡、在使用者所連接的資料夾內執行。保險庫及存儲在已連接資料夾中的任何腳本均可存取。此技能自身的檔案(目錄檔案、scripts/)位於容器中,而非該電腦上。鉤子不會執行。記憶將透過記憶工具存取,後台程序會在各個回合後歸檔持久性事實。
  • claude.ai 或沒有該 Shell 的雲端工作階段。 僅能透過那些將檔案暫存到容器並提交回來的工具,且僅在桌面應用程式已連結時,才能存取使用者電腦上的檔案。否則無法存取其磁碟上的任何內容。鉤子和記憶的處理方式同上。

信號:平台和工作目錄、列出哪些工具(裝置 Shell、裝置檔案工具、記憶工具)、系統提示中關於記憶和專案的說明。若無法判斷,請說明並提問,因為錯誤的猜測會導致資料寫入錯誤的位置。

接著是「新舊程度」(age)。結案通常在工作結束時才會被要求,但一個對話可能會開啟數日後才關閉,期間可能已有其他工作階段處理過相同的檔案、筆記和技能。當工作階段所觸及的任何事物在其最後一次實際工作後發生了變更,則該工作階段被視為陳舊:將該次工作的日期(對話的時間戳記或已標註日期的筆記)與其所觸及的檔案及儲存項目(store entries)的修改時間、後續的提交、日期更晚的儲存項目,或其曾使用但現在清單中已重新命名或不再顯示的技能進行比較。只要有一項此類變更即足以判定。僅憑時間久遠本身是審查的理由,而非最終結論:一個一週前開啟但無人接續的對話並不陳舊。請將其寫在頂行,並附上時間差距(例如「最後活躍於 11 月 4 日;所觸及的檔案此後已變更」)。

在陳舊的工作階段中,磁碟和儲存項目比對話更新,因此以它們為準:

  • 在規劃任何寫入之前,請先讀取每個該步驟將觸及的檔案或儲存項目的當前版本,並根據當前存在的內容(而非對話所記憶的內容)進行規劃。
  • 工作階段所做出、但後續工作階段已記錄的決定視為已完成:指出它即可,不要重複寫入。後續工作階段已變更或推翻的決定,不應由本次結案來恢復:將其標記為已被取代並予以放棄。當後續記錄僅涵蓋決定的部分內容,或無法確定涵蓋範圍時,僅放棄明確涵蓋的部分,並將其餘部分標記為「可能已被取代」;如何處理將根據單一問題的結果而定。
  • 工作階段使用的路徑、名稱和技能可能已移動或重新命名。在使用前請再次解析。僅當有書面記錄(記憶、筆記、提交、技能的自身描述中提到其先前名稱)引用新形式時,才將該形式計為有效;請使用該形式並加以說明。若無任何記錄,請將舊形式標記為「不再解析」,而非進行猜測,並且不要將其視為當前名稱寫入儲存項目。
  • 因此,待提議的內容是工作階段已決定、且後續尚未記錄、變更或牴觸的部分。這可能非常少;一個陳舊的對話結案只寫入一行,甚至什麼都不寫,也是正確的結案。

同一個對話可能已包含一個較早的結案(在使用者繼續工作之前已執行)。那麼,本次結案將基於該結案而非從頭開始:取用其計畫,並將每個步驟標記為「已完成」(其報告如此說,且磁碟狀況相符)、「已被取代」或「仍待處理」,僅檢查該結案之後發生的事情。若較早的結案提出的計畫使用者從未回覆,則視為未批准:將其待處理步驟納入本次計畫,並再次根據磁碟和上述規則進行檢查,而非直接執行或悄悄放棄它們,並在頂行說明存在一個較早的結案。

1. 發現 (Discover)

在發現任何內容之前,請檢查環境的常設指示(在 Claude Code 中為 CLAUDE.md 檔案和自動記憶,在此視為常設指示;在 claude.ai 中為專案指示、使用者偏好設定和記憶,以及 此安裝的本機地圖 區段,該區段可能由本 SKILL.md 的打包副本攜帶),尋找關於此例行程序的本地記錄:一個簡短區段,說明哪個已安裝技能負責哪個類別、儲存項目、已退役項目以及測量成本。當存在此類記錄時,它將取代發現流程:驗證其所命名的每個技能是否仍已安裝(並在方便時透過一個便宜的唯讀查詢來確認命名的指令或路徑),並將其標記為已退役的項目視為已解決。部分記錄(僅命名了儲存項目或退役項目,但未指明每個類別的技能)將為發現流程提供資訊,而非取代它:尊重其已命名的部分,發現其餘部分,並且第 5 節的提議將變為補全該區段,而非新增第二個區段。若不存在任何此類記錄,則按以下方式發現,並在最後提議寫入一個(第 5 節)。在 Claude Code 中,請從磁碟讀取 CLAUDE.md 檔案,而不僅從上下文讀取:注入的副本可能早於編輯,而陳舊的副本會導致你進行完整的發現流程,並提議在已存在的記錄之上寫入第二個記錄。

候選清單是已在上下文中的 可用技能列表(名稱 + 描述)。它涵蓋了本地技能、外掛技能和 gstack 技能;沒有更好的來源。列表有兩個特殊情況:一個技能同時以有無外掛前綴的形式出現,且描述相同,則視為同一個技能,因此在計畫中以裸名(bare name)稱呼它,但調用時使用列表顯示的確切名稱;此外,當一個命令觸及一個攜帶自身技能的資料夾時,列表可能會在運行中途增長,這些新來的技能僅在匹配某個類別時才會改變計畫。

閱讀 references/close-out-catalogue.md。對於其中定義的每個類別,挑選出描述與其用途相符的已安裝技能。已知的成員是提示而非答案:未列在其中的已安裝技能,若其描述相符則符合資格;已列出但不再安裝的技能則跳過。注意目錄檔案中標記的近似匹配。當列表僅顯示技能名稱時(兩種環境在某些情況下都會這樣做),則根據名稱和目錄檔案中的「識別依據」詞語進行匹配,並在計畫中將其標記為「(無描述)」,以便使用者知道該匹配較弱。

一個類別若無對應的已安裝技能,則在計畫中記為「跳過,未安裝」;請勿即興創造替代方案,除非該環境有自身的機制來處理該工作(第 2 節)。某些類別並非技能(在 Claude Code 中,自動記憶透過 Write 工具寫入,圖表刷新則是一個命令);它們同樣是計畫中的步驟,僅在該環境具備時才納入。

然後檢查本次工作階段實際上值得做些什麼:

  • 圖表 (Graphs)。 在使用者電腦的 Claude Code 中,執行 python scripts/find_graphs.py <workspace-root>(路徑相對於此技能所在的目錄;任何 Python 版本均可)。工作區根目錄是工作階段的當前工作資料夾,或者當專案指示中描述了一個包含所有儲存庫的更上層資料夾時,則為該資料夾。該腳本會列出所有其專案資料夾位於工作區根目錄下最多五層的 graphify-out/,並說明自其清單(manifest)以來檔案是否已變更:每個圖表一行,標示為 CURRENT(當前)、STALE(陳舊,附上已變更和已刪除的計數),或 UNKNOWN(未知,無清單或 graphify 無法匯入),或一行「未找到」。這些計數並未說明變更是筆記(每次約 85k 需重新提取)還是程式碼(無需 LLM);請根據工作階段所觸及的內容來判斷。 CURRENT 不構成一個步驟,即使你記得編輯過一個已繪製圖表的檔案:清單知道圖表是否在該編輯之後被重建。如果電腦上沒有 Python,則圖表未經檢查;請說明。在任何其他情況下,腳本無法看到工作區(它執行在容器中,而圖表位於使用者磁碟上):將每個圖表報告為未檢查,這不等於「無需更新」。
  • 工作階段 (The session)。 決策、修正、關於使用者或專案的新事實、已建立或移動的檔案?這決定了記憶和學習步驟是否需要寫入任何內容。一個純粹進行閱讀的工作階段可能除了上下文儲存外無需任何操作。
  • Git。 在工作階段所觸及的每個儲存庫中執行 git status。未提交的工作不屬於此技能的提交範圍;它將被放入計畫的「留待使用者處理」行中。當工作階段的記錄與 git 不一致(工作階段中檔案已變更,但 git 樹是乾淨的)時,請指出該不一致,而非默默協調。
  • 聲稱的寫入 (Claimed writes)。 列出工作階段聲稱已寫入、建立、安裝或變更的內容(檔案、筆記、提交、設定、已安裝的套件),並透過一個唯讀的檢查來驗證每一項:它存在,且其內容是工作階段所寫入的(一個獨特的代碼行或檔案大小,而非僅驗證存在性,因為失敗的覆寫會留下舊檔案)。工具報告成功並非證據。當內容不同時,由修改時間決定:在工作階段最後工作之後變更,表示後續工作階段更改了它(第 0 節,陳舊);在工作階段最後工作之後未變更,表示寫入從未實際發生。一個應存在但不存在(無論是未發生寫入或工作階段留下未完成工作)的檔案,也表示寫入從未發生,除非後續的提交或筆記記錄了其刪除。一個從未實際完成的寫入,或工作階段留下的未完成工作(僅部分地方安裝、一個承諾但未執行的步驟),將被放入計畫的「留下未完成」行中(第 3 節)。聲稱無任何寫入的工作階段則跳過此步驟。
  • 進行中的工作 (Work in progress),由另一個技能跨多個工作階段進行(目錄檔案,「進行中的工作」)。這不是一個獨立步驟:它會包含在交接筆記和上下文儲存中。
  • 狀態已存在於何處。 專案指示可能指明使用者視為來源的儲存項目:一個保險庫、一個專案資料庫、一個存放下一步行動的欄位。在規劃任何寫入之前,請先閱讀這些指示(儲存項目本身將由負責寫入它們的步驟讀取);它們決定了類別 3 和 5 如何執行。當兩個命名的儲存項目都可能存放同一事實(例如,一個決策筆記和一個專案筆記)時,計畫應指明寫入的目標是哪一個;如果指示未解決此問題,則在單一問題中解決,切勿擅自決定。

2. 環境差異處理

在 Claude Code 中,按照目錄檔案所述執行每個類別;以下內容中,僅有明確說明的規則也在該處適用。在其他兩種第 0 節所述的情況下,進行如下調整。

1 記憶:檢查,不寫入。 後台程序已在每個回合後歸檔持久性事實。讀取它可能已使用的記憶檔案(列表會顯示路徑),並在計畫中說明本次工作階段的決策是否已存在其中。因為該程序在每個回合後執行,所以結尾回合本身所決定的內容還不在那裡,並將在其後歸檔;這是正常現象,並非缺口。該平台僅允許在使用者明確要求時進行記憶寫入,因此如果他們說過的東西遺漏了,請在計畫中指明,並讓他們說「儲存它」;這句話即為請求。在專案內,寫入將進入專案自身的子樹,格式需符合記憶指示的要求。

1b 交接筆記,2 學習:未安裝時跳過。 沒有替代方案;專案文件、新筆記或對話摘要不會變成其中之一(請參閱單一位置規則)。

3 保險庫同步:取決於可存取性。 若有裝置 Shell 且保險庫資料夾已連接,則安裝了同步技能時執行它;如果它缺少此環境所不具備的某些功能,它會自行說明,然後再手動進行同步。若無 Shell,且僅在電腦已連結時,使用檔案工具手動進行同步。無論哪種方式,請先閱讀保險庫自身的約定筆記(若無 Shell 則暫存它),並在計畫中將每個提議的變更表述為「保留什麼」、「更改什麼」以及「消失什麼」,以便單次確認涵蓋所有寫入。鉤子寫入的工作階段日誌在此環境中不存在,請說明。

4 圖表:未檢查,如第 1 節所述。不等於「無事可做」。

5 上下文儲存:寫入專案指示所指定的位置。 這在 Claude Code 中也適用:專案指示中命名的位置優先於通用的快照技能;若無此類指示,則已安裝的快照技能即為此步驟。如果專案指示指明了一個存放「上次離開處」的位置(例如專案資料庫中的一個欄位),則該位置就是上下文儲存。如果一個已安裝的技能擁有該位置(例如每日關閉常規),則該技能就是此步驟;如果它已在本次工作階段中執行過,則跳過。否則,由你自己親自寫入該位置。計畫中應包含該位置的確切提議文字,以便一個答案涵蓋所有內容;當你自己寫入該位置時適用此規則,而擁有寫入權的技能(無論在 Claude Code 或其他地方)則會自行組織其內容。如果沒有任何專案條目涵蓋工作階段所處理的內容,請說明並提出……

…[為翻譯而截斷]

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

alex20-create/plan-admin

Work-planning routines for people who run several projects in parallel: a daily plan (today's blocks, each with its next action and a first step), a day close (where each block was left and the next actions for the next working day) and a weekly review (what went well, collisions, priorities). Reads the schedule, rules and project status from the user's project manager and project instructions, in claude.ai or in Claude Code. Use it whenever the user says 'what's on today', 'what should I do today', 'plan my day', 'where do I start today', 'I'm done for today', 'closing the day', 'weekly review', 'what have I got this week', or the equivalent in their language (in Spanish, for example, 'qué toca hoy', 'cierro el día' or 'revisión semanal'), even if the skill is not named. Do not use it to open a session on a project with history (that is a session-opening skill such as resume-project), to archive or close the chat, or to choose skills for a task.

alex20-create/resume-project

Session-opening routine for a project with history, or for an umbrella project that holds several: gathers what earlier sessions left behind (a project manager such as Notion, a session log if the setup writes one, git, an Obsidian vault, handoffs, chats, memory and project files), cross-checks it, summarises where everything stands, asks what to work on today and hands the answer over to a skill-selection skill if one is installed. Chooses its sources from the tools available in the session, not from the name of the environment. Use it when opening a session even if the skill is not named, with phrases such as "let's pick up", "where were we?", "carry on with my-app", "open a session on X", "let's start", "/resume-project", or the equivalent in the user's language (in Spanish, for example, "retomamos" or "¿por dónde íbamos?"). Do not use it midway through a session that is already working, or to create a project from scratch.

相關技能