工作插件組合方案:解決采集、關(guān)聯(lián)與回顧的上下文斷裂)
上個(gè)月幫一位朋友梳理他自己的知識(shí)管理流程發(fā)現(xiàn)一個(gè)很明顯的現(xiàn)象他裝了二十多個(gè)插件但每天真正打開用到的不到五個(gè)大部分時(shí)間都花在整理插件而不是整理知識(shí)上。這種狀態(tài)我太熟悉了——工具越多知識(shí)反而越散。這讓我想認(rèn)真寫一寫我斷斷續(xù)續(xù)維護(hù)了大半年的一個(gè)插件集合項(xiàng)目代號(hào)就叫knowledge-work-plugins。它不是某個(gè)現(xiàn)成軟件而是一套圍繞知識(shí)工作場(chǎng)景設(shè)計(jì)的插件組合方案覆蓋信息采集、內(nèi)容整理、關(guān)聯(lián)連接和定期回顧這幾個(gè)環(huán)節(jié)。如果你每天的工作就是閱讀大量信息、做筆記、寫方案或者做調(diào)研同時(shí)又覺得手頭的工具總是差那么一點(diǎn)意思這篇文章大概能給你一些可以落地參考的思路。我先說結(jié)論知識(shí)工作插件解決的問題不是功能不夠多而是上下文斷裂。所謂知識(shí)工作本質(zhì)上是把零散的輸入整理成結(jié)構(gòu)化的輸出這個(gè)過程最吃緊的不是記錄動(dòng)作而是記錄之后的信息還能不能被想起來、被關(guān)聯(lián)起來、被重新用起來。單一軟件往往只擅長(zhǎng)其中一環(huán)插件則負(fù)責(zé)把這些環(huán)扣上。1. 知識(shí)工作插件到底在解決什么問題1.1 我見過最典型的工具越多效率越低場(chǎng)景先說兩個(gè)我身邊真實(shí)發(fā)生過的例子它們能很好地說明這個(gè)問題的共性。A同學(xué)平時(shí)讀書和看資料特別認(rèn)真每讀完一章都會(huì)摘錄幾段話到筆記軟件里。但半年后他自己發(fā)現(xiàn)那些摘錄從來沒有被重新翻看過寫月度總結(jié)時(shí)還要靠記憶去回想我好像讀過一篇關(guān)于團(tuán)隊(duì)協(xié)作的文章。他把這次失利歸結(jié)為自制力不夠但我覺得問題出在工具鏈設(shè)計(jì)上——他的摘錄流程是看到一句話→復(fù)制→粘貼到某個(gè)文件夾這套動(dòng)作從頭到尾沒有觸發(fā)過一次回顧和關(guān)聯(lián)。某開發(fā)者團(tuán)隊(duì)做產(chǎn)品調(diào)研時(shí)習(xí)慣是每人把看到的好文章丟到群里。結(jié)果群聊記錄越來越長(zhǎng)三個(gè)月后想找一篇當(dāng)初討論過的競(jìng)品分析翻聊天記錄翻了半個(gè)下午。他們不是沒有工具而是沒有一條讓信息從聊天流自動(dòng)流進(jìn)知識(shí)庫的管道。這兩個(gè)場(chǎng)景的共同點(diǎn)是知識(shí)和它的使用場(chǎng)景之間缺了一座橋。插件就是補(bǔ)橋的工具。沒有這座橋再多的摘錄、再多的收藏也只是把信息從一個(gè)地方搬運(yùn)到另一個(gè)地方并沒有真正變成可以支撐決策和輸出的知識(shí)。1.2 知識(shí)工作的三個(gè)核心痛點(diǎn)采集、關(guān)聯(lián)、復(fù)述如果把知識(shí)工作拆開看其實(shí)絕大多數(shù)人都逃不開這三個(gè)環(huán)節(jié)采集碎片化。信息來源五花八門網(wǎng)頁文章、PDF、聊天記錄、郵件、隨手拍的照片。如果沒有統(tǒng)一的采集入口就會(huì)形成每個(gè)渠道存一點(diǎn)、每個(gè)軟件都有一點(diǎn)的碎片狀態(tài)。關(guān)聯(lián)缺失。大部分筆記工具默認(rèn)把筆記當(dāng)成獨(dú)立文件對(duì)待沒有建立筆記與筆記之間的連接。結(jié)果是知識(shí)庫越來越大可每篇筆記都是孤島。孤島數(shù)量再多也撐不起一張知識(shí)網(wǎng)絡(luò)。復(fù)述困難。只輸入不輸出知識(shí)的留存率非常低。這里說的輸出不一定是寫文章哪怕只是定期回看自己的筆記、把一段話用自己的語言重新講一遍都能顯著提高信息的使用率。但原生工具很少內(nèi)置這類主動(dòng)回訪機(jī)制。這三個(gè)痛點(diǎn)在我看來就是knowledge-work-plugins要處理的三個(gè)核心命題。它不是把某個(gè)編輯器變成更強(qiáng)大的編輯器而是把它變成一個(gè)包含采集、整理、連接、回顧的完整工作臺(tái)。這也是我一直堅(jiān)持選插件而不是選全家桶軟件的原因——插件是可拆可換的你能精確控制每一環(huán)的行為。2. 我的選型邏輯不追新工具只挑能嵌進(jìn)現(xiàn)有工作流的插件2.1 為什么我放棄了全家桶思路改用輕量插件組合兩年前我第一次想認(rèn)真搭建知識(shí)管理系統(tǒng)時(shí)走的是一個(gè)很典型的彎路先去搜效率神器推薦然后一口氣裝了一整套集成度超高的效率軟件。結(jié)果呢真正高頻使用的功能不超過三成剩下的是持續(xù)彈出的通知、需要額外學(xué)習(xí)的復(fù)雜快捷鍵以及各模塊之間格式互不兼容的尷尬。后來我換了一種思路。我把問題從我要用什么工具改成了我的工作流里哪一環(huán)是斷的。然后用最小成本的插件去補(bǔ)每一個(gè)斷點(diǎn)而不是反過來讓工作流遷就軟件。這個(gè)轉(zhuǎn)變可以用一個(gè)很生活化的例子來說明一個(gè)廚房如果只安裝一臺(tái)功能超級(jí)齊全的集成烹飪機(jī)理論上可以做所有菜但每次做一道簡(jiǎn)單的炒青菜都要翻三層菜單、洗七個(gè)配件而一個(gè)普通廚房配上幾把用起來順手的刀、一口合適的鍋反而效率更高。插件就是那幾把刀和一口鍋——它們各自只負(fù)責(zé)一件事但組合起來能應(yīng)對(duì)絕大多數(shù)場(chǎng)景。我最后形成的組合原則是每個(gè)剛需場(chǎng)景只保留一個(gè)插件功能重疊的兩者取其一優(yōu)先選支持配置化、能用文本文件管理配置的插件這樣我可以把所有設(shè)置放進(jìn)版本控制里重交互輕界面能自動(dòng)在后臺(tái)完成的動(dòng)作絕不讓它彈窗打擾必須能離線工作數(shù)據(jù)要捏在自己手里不能上傳到別人的服務(wù)器才能用。2.2 我最終保留的五類插件及它們的分工經(jīng)過幾輪試錯(cuò)和刪減我最后長(zhǎng)期保留的插件基本可以歸為五類。這個(gè)分類本身比具體選哪款插件更重要因?yàn)樗前垂δ苋笨诙擒浖岫葋韯澐值?。類別核心職責(zé)對(duì)應(yīng)本文的痛點(diǎn)采集類把網(wǎng)頁、片段、文件快速存成統(tǒng)一格式的筆記采集碎片化整理類自動(dòng)生成摘要、提取關(guān)鍵詞、清洗無用格式采集碎片化連接類基于標(biāo)簽和上下文建立筆記間的雙向引用關(guān)聯(lián)缺失輸出類一鍵把多篇筆記匯總成帶引用來源的文檔草稿復(fù)述困難回顧類按間隔時(shí)間自動(dòng)提醒回訪舊筆記生成復(fù)述卡片復(fù)述困難每一類我都有對(duì)應(yīng)的具體插件實(shí)例但具體產(chǎn)品名不重要重要的是它們共同構(gòu)成了一條完整鏈路采集進(jìn)來的內(nèi)容在當(dāng)天被整理成干凈文本整理后的文本被自動(dòng)打好標(biāo)簽、連上相關(guān)筆記需要輸出時(shí)一鍵拉取相關(guān)筆記生成初稿最后回顧插件按照遺忘曲線安排回訪計(jì)劃確保知識(shí)被復(fù)習(xí)而不是被遺忘。我在日常使用中的真實(shí)感受是這套組合在使用半個(gè)月后搜索舊資料的效率明顯提升因?yàn)槲也辉僖蕾囉洃浫フ夜P記而是依賴連接去碰筆記。3. 從零配置一套能用的knowledge-work-plugins關(guān)鍵配置與命令手記3.1 環(huán)境準(zhǔn)備別在這步偷懶否則后面全是坑搭建這套插件環(huán)境最容易被低估的就是目錄規(guī)劃。很多人裝好插件就開始往里丟筆記三個(gè)月后目錄變成一鍋粥再來找問題就晚了。我的做法是提前規(guī)劃一個(gè)固定的目錄骨架所有插件都只能往約定位置寫文件knowledge-base/ ├── 0-inbox/ # 采集插件統(tǒng)一寫入的臨時(shí)收件箱 ├── 1-projects/ # 按項(xiàng)目歸檔的筆記 ├── 2-areas/ # 持續(xù)關(guān)注的領(lǐng)域比如團(tuán)隊(duì)管理行業(yè)趨勢(shì) ├── 3-resources/ # 主題性資料庫按主題分子目錄 ├── 4-archive/ # 已過時(shí)但需要留檔的內(nèi)容 └── _templates/ # 各類筆記的模板文件這個(gè)結(jié)構(gòu)來自經(jīng)典的PARA信息管理方法但做了一些調(diào)整收件箱必須單獨(dú)拎出來因?yàn)椴杉寮懭氲膬?nèi)容是從外部進(jìn)來的質(zhì)量參差不齊必須有一個(gè)明確的地方等它被清洗不能直接混進(jìn)正式筆記。環(huán)境準(zhǔn)備還有一個(gè)容易忽略的點(diǎn)備份必須在配置之前做。我吃過一次虧調(diào)整一個(gè)插件的排序規(guī)則時(shí)誤操作覆蓋了已有的數(shù)據(jù)目錄雖然最后從歷史版本里恢復(fù)了大部分文件但當(dāng)天新增的兩條筆記還是丟了。所以我在搭建流程里加了一條硬性規(guī)定任何配置變更之前先跑一次完整備份。實(shí)操上我寫了一個(gè)簡(jiǎn)單的同步命令把整個(gè)知識(shí)庫目錄同步到本地備用磁盤和一臺(tái)自己的舊電腦上兩條鏈路互為冗余。3.2 采集插件的配置示例把隨手記變成自動(dòng)歸檔采集是整個(gè)管線里最看重低摩擦的環(huán)節(jié)。如果保存一條網(wǎng)頁內(nèi)容要打開軟件、新建筆記、粘貼標(biāo)題、手動(dòng)填來源鏈接那用戶很快就會(huì)放棄采集動(dòng)作。所以我的采集插件配置目標(biāo)只有一個(gè)選中內(nèi)容一鍵入箱其他事情統(tǒng)統(tǒng)自動(dòng)完成。以下是一份我實(shí)際在用的采集插件配置做了脫敏和簡(jiǎn)化核心是入箱即帶元數(shù)據(jù){ capture_defaults: { inbox_path: /path/to/knowledge-base/0-inbox, auto_title: true, auto_source: true, clip_type: clean_markdown, date_prefix: YYYYMMDD }, formatters: { clean_markdown: { remove_scripts: true, remove_style: true, remove_nav: true, unwrap_lists: false, max_width: 80 } } }這段配置的作用是采集時(shí)自動(dòng)從頁面標(biāo)題生成文件名、自動(dòng)記錄原始來源鏈接、把網(wǎng)頁內(nèi)容轉(zhuǎn)成干凈的 Markdown 并去掉導(dǎo)航和腳本噪聲。文件名帶日期前綴這一點(diǎn)很關(guān)鍵它讓同一主題的反復(fù)采集在文件系統(tǒng)層面也能看出時(shí)間順序。有人可能會(huì)問為什么是入箱而不是入正式目錄因?yàn)椴杉瘎?dòng)作發(fā)生時(shí)我們往往沒有余力判斷這條資料屬于哪個(gè)項(xiàng)目、該打什么標(biāo)簽。強(qiáng)制當(dāng)場(chǎng)分類是反人性的。一律扔進(jìn)收件箱等積累到一定數(shù)量再統(tǒng)一清洗才是可持續(xù)的節(jié)奏。我給自己定的清洗頻率是每周一次每次十五分鐘只做三件事決定保留還是丟棄、補(bǔ)標(biāo)簽、移動(dòng)目錄。3.3 關(guān)聯(lián)插件的核心邏輯標(biāo)簽體系與雙向連接配置完采集之后如果直接開始大量收資料而不做關(guān)聯(lián)管理知識(shí)庫很快會(huì)變成第二個(gè)網(wǎng)盤——能存但取不出來。所以第三步一定要配置連接類插件核心是兩個(gè)機(jī)制標(biāo)簽體系和雙向連接。標(biāo)簽體系我指的是領(lǐng)域、狀態(tài)、類型三個(gè)維度的正交組合。我不允許出現(xiàn)好文推薦有空再看這種狀態(tài)和類型混在一塊的模糊標(biāo)簽因?yàn)槟菚?huì)讓檢索邏輯混亂。我實(shí)際使用的命名規(guī)范如下表維度標(biāo)簽前綴示例值說明領(lǐng)域d/d/team-mgmt、d/marketing表示屬于哪個(gè)知識(shí)領(lǐng)域狀態(tài)s/s/reading、s/digested、s/reviewed表示處理到了哪一階段類型t/t/article、t/book、t/meeting-note表示筆記本身的形態(tài)連接強(qiáng)度link/link/strong、link/reference控制雙向連接的權(quán)重這套命名規(guī)則看著瑣碎但它解決了一個(gè)實(shí)際問題當(dāng)筆記量超過一千條時(shí)沒有結(jié)構(gòu)化前綴的標(biāo)簽會(huì)自動(dòng)退化成書架上的雜物堆。有了前綴插件就能根據(jù)link/strong這樣的標(biāo)記決定在界面上把哪些筆記的關(guān)聯(lián)權(quán)重放大哪些只是普通引用。雙向連接是另一個(gè)關(guān)鍵設(shè)計(jì)。傳統(tǒng)筆記軟件的鏈接是單向的A 筆記提到 B 筆記那只有 A 里看得到這個(gè)鏈接B 里毫無感知。而雙向連接機(jī)制會(huì)在 B 筆記底部自動(dòng)顯示被 A 筆記引用。這個(gè)能力靠插件在寫入筆記時(shí)自動(dòng)追加反向引用塊來實(shí)現(xiàn)。我配置的觸發(fā)規(guī)則是只要新筆記的正文里出現(xiàn)已有筆記標(biāo)題中的關(guān)鍵短語就自動(dòng)建立一條候選連接寫入一個(gè)名為待確認(rèn)鏈接的臨時(shí)清單而不是直接寫死——因?yàn)樽詣?dòng)判斷經(jīng)常會(huì)出錯(cuò)需要人在一次確認(rèn)環(huán)節(jié)里做裁判。3.4 復(fù)述插件定期回顧與間隔重復(fù)的自動(dòng)化這一部分最容易被跳過但它恰恰是知識(shí)管理里最能拉開差距的一環(huán)?;卦L舊筆記不是靠意志力而是靠機(jī)制。我配置的回顧類插件會(huì)在每天早晨生成一份今日回顧清單里面包含三類內(nèi)容三天前采集但尚未清洗的收件箱項(xiàng)、七天前整理完成但未被回顧的筆記、以及按間隔重復(fù)算法算出的舊筆記復(fù)習(xí)計(jì)劃。核心配置長(zhǎng)這樣# review_scheduler.py 的關(guān)鍵邏輯簡(jiǎn)化版 def generate_review_list(kb_path, date): inbox_items find_new_inbox_items(kb_path, sincedays_ago(3)) unreviewed find_unreviewed(kb_path, sincedays_ago(7)) due_notes find_due_by_srs(kb_path, datedate) return { today_items: inbox_items unreviewed, due_reviews: due_notes, }間隔重復(fù)算法我用的參數(shù)是首次回顧在筆記創(chuàng)建后第 1 天第二次在第 3 天第三次在第 7 天之后逐步拉到 15 天、30 天。這個(gè)參數(shù)比很多記憶類軟件的默認(rèn)值更激進(jìn)一些因?yàn)橹R(shí)工作筆記不像單詞卡那樣需要精確記憶它更重要的是保持熟悉感太長(zhǎng)的間隔會(huì)讓筆記徹底沉底。我自己用下來的效果是這個(gè)機(jī)制把回頭看看自己記了什么從需要自律的行為變成了每天自動(dòng)發(fā)生的例行公事。因?yàn)榛仡櫱鍐卫锏臈l目通常都很短——三五分鐘就能翻完而且大多和自己最近的工作相關(guān)做起來沒有負(fù)擔(dān)。一個(gè)典型的早晨是打開知識(shí)庫掃一眼今日三項(xiàng)回顧——一條上周存的研究報(bào)告摘要一條前天的會(huì)議記錄一條舊筆記的復(fù)習(xí)卡片——然后決定是否需要做進(jìn)一步整理。這個(gè)動(dòng)作我現(xiàn)在基本能在坐下來喝第一口咖啡之前完成。4. 把插件串成工作流一個(gè)從閱讀到輸出的完整案例4.1 場(chǎng)景設(shè)定從三篇雜亂文章到一份可用調(diào)研簡(jiǎn)報(bào)光說配置還不夠我把一套實(shí)際跑過的流程原樣拆開來講。某周我需要給團(tuán)隊(duì)做一份關(guān)于內(nèi)部知識(shí)共享機(jī)制的簡(jiǎn)報(bào)素材是三篇來源完全不同的文章一篇來自行業(yè)社區(qū)的長(zhǎng)帖、一篇朋友發(fā)來的訪談稿、還有一篇自己之前寫過的舊方案。這在知識(shí)工作中很典型——輸入雜亂無章、輸出卻有明確期限。按照沒有插件協(xié)作的老辦法我的處理方式會(huì)是新建一個(gè)文檔然后去三個(gè)地方分別找素材邊貼邊排版最后忘記標(biāo)注來源過幾天被同事問起這個(gè)數(shù)據(jù)你從哪看到的還要回頭重新翻網(wǎng)頁。而用插件串起來的流程處理順序就和老辦法截然不同。4.2 插件的協(xié)作順序與關(guān)鍵節(jié)點(diǎn)我實(shí)際的執(zhí)行鏈路是這樣的采集。把三篇文章分別用采集插件一鍵存入收件箱配置自動(dòng)記下各自的原始來源鏈接每篇文章落盤時(shí)自動(dòng)帶上當(dāng)天日期前綴和待清洗狀態(tài)標(biāo)簽。清洗整理。在統(tǒng)一清洗時(shí)間打開收件箱運(yùn)行整理插件的提取摘要命令。它會(huì)自動(dòng)為每篇筆記生成一個(gè) 3 到 5 行的摘要塊、提取文中出現(xiàn)頻率較高的關(guān)鍵詞并把原始來源鏈接格式化成標(biāo)準(zhǔn)引用格式。我為其中一篇訪談稿做了一處人工修正——它把訪談對(duì)象的昵稱誤當(dāng)成了關(guān)鍵詞這種錯(cuò)誤插件無法避免但人工修正成本極低。關(guān)聯(lián)連接。提示連接插件掃描新增筆記發(fā)現(xiàn)其中兩篇都提到了知識(shí)庫沉淀方法和新人培訓(xùn)自動(dòng)建立了三條候選連接指向我舊筆記里某篇關(guān)于團(tuán)隊(duì)培訓(xùn)實(shí)踐的文檔。我在待確認(rèn)鏈接清單里確認(rèn)了其中兩條刪掉了一條不太相關(guān)的。匯總輸出。輸出插件把這三篇筆記按我選擇的模板合并自動(dòng)生成一個(gè)過渡章節(jié)先列出現(xiàn)狀背景來自第一篇文章、再總結(jié)常見做法來自第二篇、最后補(bǔ)上我們團(tuán)隊(duì)的已有實(shí)踐來自舊筆記每一條觀點(diǎn)后面都帶著對(duì)應(yīng)的來源引用不需要我手動(dòng)標(biāo)注。安排回顧。生成簡(jiǎn)報(bào)后我給這篇新文檔打上s/reviewed狀態(tài)標(biāo)簽并把 15 天后回訪這條筆記的任務(wù)交給回顧插件。這樣做的考慮是簡(jiǎn)報(bào)發(fā)給團(tuán)隊(duì)后別人可能在一個(gè)月后才給出反饋15 天后的回訪正好提醒我提前追一遍相關(guān)資料的進(jìn)展。整條流程走下來我花在整理動(dòng)作上的時(shí)間大約四十分鐘其中一半還花在讀一遍內(nèi)容本身而不是花在排版和找文件上。對(duì)比此前動(dòng)輒兩三小時(shí)的從零開始碼文檔這條用插件組織起來的工作流效率提升是極其直觀的。4.3 這個(gè)流程里最容易崩的兩個(gè)環(huán)節(jié)及我的應(yīng)對(duì)第一處容易崩的環(huán)節(jié)是采集內(nèi)容的格式不一致。網(wǎng)頁正文提取工具面對(duì)不同站點(diǎn)的排版時(shí)質(zhì)量起伏非常大有的站點(diǎn)提取出來干干凈凈有的站點(diǎn)把評(píng)論區(qū)也帶進(jìn)來了。我的應(yīng)對(duì)方式是給采集插件增加一條規(guī)則——凡是提取出的正文字符數(shù)異常偏多或者偏少的自動(dòng)打上s/extract-error標(biāo)簽在清洗階段優(yōu)先處理。這比相信通用提取器能搞定一切頁面靠譜得多。第二處容易崩的環(huán)節(jié)是連接插件誤報(bào)。因?yàn)樽詣?dòng)關(guān)聯(lián)是基于關(guān)鍵詞匹配的同一篇新筆記里如果有多個(gè)詞和舊筆記標(biāo)題重合會(huì)產(chǎn)生一大堆低質(zhì)量連接反而把真正重要的關(guān)聯(lián)淹沒了。我第一次跑全庫連接時(shí)出現(xiàn)了四十多個(gè)候選鏈接其中一大半都是無效的。所以后來我加了兩個(gè)約束一是候選連接的匹配閾值必須至少命中兩個(gè)關(guān)鍵詞二是所有自動(dòng)連接必須進(jìn)待確認(rèn)鏈接清單絕不允許直接寫入。這兩條約束犧牲了一點(diǎn)全自動(dòng)的體驗(yàn)但換來了連接質(zhì)量的可控。知識(shí)管理里錯(cuò)誤的關(guān)系比沒有關(guān)系更糟。5. 插件治理插件越多越要小心維護(hù)5.1 插件配置的債務(wù)是怎么積累的搭建一套插件方案往往會(huì)給人完工的錯(cuò)覺——配置好、跑通了然后就再也不管了。但實(shí)際運(yùn)行三個(gè)月后我注意到幾個(gè)危險(xiǎn)信號(hào)配置漂移。某次為了應(yīng)急從網(wǎng)上下載了一個(gè)臨時(shí)腳本后來發(fā)現(xiàn)它被悄悄改成了自動(dòng)啟動(dòng)項(xiàng)但沒人記得它到底在干什么。功能重疊。采集插件更新后直接內(nèi)置了摘要提取功能而我原來的整理插件也還在跑同樣的任務(wù)每次清洗都會(huì)把摘要塊重復(fù)生成一遍。依賴?yán)p積。一個(gè)主插件升級(jí)后要求新版運(yùn)行環(huán)境而另一個(gè)老插件只能跑舊環(huán)境兩邊互相牽制。這些問題本質(zhì)上和我以前做大型項(xiàng)目時(shí)遇到的普遍現(xiàn)象是一樣的——不是添加功能時(shí)出了問題而是加完之后沒人維護(hù)、沒人清理積累成了技術(shù)債。插件之于個(gè)人知識(shí)工作也逃不過同樣的規(guī)律。5.2 我的做法配置文件進(jìn)版本庫變化可回溯我的解法可能對(duì)一些讀者來說有點(diǎn)過度工程我為整個(gè)插件配置目錄建了一個(gè)獨(dú)立的配置倉庫里面存的是所有插件的設(shè)置文件和啟動(dòng)腳本不存任何知識(shí)內(nèi)容本體。每調(diào)整一處配置就提交一次變更記錄。這樣做的價(jià)值在于我能看到每一處配置變動(dòng)的前后差異一旦改壞了可以立刻回退到上一個(gè)可用版本。具體流程是把所有配置文件集中放到一個(gè)目錄然后用版本控制工具管理。我配置了一個(gè)入庫檢查腳本每次提交前自動(dòng)檢查配置文件能否被正確解析有語法錯(cuò)誤就阻止提交。這個(gè)腳本很粗糙但是足夠攔住我犯過的高頻錯(cuò)誤——比如少寫了一個(gè)大括號(hào)導(dǎo)致整個(gè)插件配置失效。這里我也想給讀者一個(gè)提醒不要把知識(shí)庫本體也一股腦塞進(jìn)版本控制除非你用的版本控制倉庫足夠大并且你確信自己愿意承擔(dān)整個(gè)知識(shí)庫內(nèi)容的備份負(fù)擔(dān)。我的邊界是配置和腳本進(jìn)版本控制數(shù)據(jù)文件走獨(dú)立的同步備份機(jī)制。兩者分開才能各司其職。5.3 半年復(fù)盤哪些插件被刪了為什么寫這篇文章之前我做了一次半年復(fù)盤把插件列表和當(dāng)初記錄為什么裝它的筆記做了逐一比對(duì)結(jié)果挺有啟發(fā)刪掉了一個(gè)稍后讀插件因?yàn)樗筒杉寮δ苤丿B而且它要自己維護(hù)一套隊(duì)列導(dǎo)致我經(jīng)常忘記去看隊(duì)列里的文章。刪掉它以后所有待讀內(nèi)容統(tǒng)一進(jìn)收件箱反而不會(huì)再出現(xiàn)兩個(gè)地方都有待讀文章的錯(cuò)亂。刪掉了一個(gè)自動(dòng)化工作流插件因?yàn)槲野l(fā)現(xiàn)它配置出來的復(fù)雜流程實(shí)際上沒有幾個(gè)被高頻使用。真正留到最后的反而是它里面兩條最簡(jiǎn)單、最不花哨的自動(dòng)化規(guī)則。復(fù)雜流程聽著厲害但維護(hù)成本和它帶來的收益完全不成正比。保留下來并且用得最久的是那個(gè)待確認(rèn)鏈接清單和回顧調(diào)度器。前者讓我對(duì)自動(dòng)連接保持掌控后者則負(fù)責(zé)對(duì)抗遺忘。它們不炫技但每天都在為我省時(shí)間。復(fù)盤之后我給自己定了三條治理原則現(xiàn)在每次調(diào)整插件都會(huì)先過一遍這幾條一個(gè)剛需只留一個(gè)插件。新插件如果想替代現(xiàn)有插件先證明自己明顯更優(yōu)否則不裝。配置是代碼資產(chǎn)。所有配置和腳本必須進(jìn)版本控制不允許改完就忘。每季度做一次插件審計(jì)。對(duì)照最初的使用筆記檢查每一項(xiàng)是否還在發(fā)揮作用沒有作用的刪掉。我在實(shí)際維護(hù)中的體會(huì)是刪掉冗余插件的那一刻往往比新裝一個(gè)插件時(shí)更讓人輕松。因?yàn)橹R(shí)工作的核心障礙從來不是工具不夠而是注意力被工具本身消耗掉了。頻繁折騰插件配置的那些日子我買的其實(shí)是一種我在優(yōu)化效率的感覺而不是真正的效率。后來把插件數(shù)量砍到剛好覆蓋工作流每一環(huán)把配置全部收進(jìn)版本控制把回顧機(jī)制交給調(diào)度器之后這套方案才算真正穩(wěn)定下來成了我可以交付給自己長(zhǎng)期使用的東西。如果你也在搭自己的知識(shí)工作流記住一條最簡(jiǎn)單的判斷標(biāo)準(zhǔn)一個(gè)插件每周被主動(dòng)打開超過三次才值得留在列表里。其余的時(shí)間應(yīng)該留給閱讀、思考和輸出本身。