
1. “superpowers”到底指什么先別急著下載先想清楚你要解決什么問題最近這個詞頻繁出現(xiàn)在我的搜索記錄里。搜“superpowers”跳出來的結(jié)果五花八門電影里的超級英雄能力解說、游戲里的技能樹還有一個熱搜詞特別顯眼——“想要安裝superpowers”。這個“安裝”用法很有意思它暗示很多人把superpowers當(dāng)成一個可以直接裝進(jìn)電腦、裝進(jìn)腦子然后人就變強(qiáng)的軟件。我能理解這種期待。就像我們下載一個工具就覺得自己掌握了新技能一樣“安裝”從心理上帶來一種確定感。但作為折騰過很多自動化項目的人我得坦白說superpowers如果指代某一個具體軟件那它大概率解決不了你想要的那種“變強(qiáng)”。真正的超能力是把自己重復(fù)做的事情拆掉把那些機(jī)器能干的、有規(guī)則的部分交出去讓流程自己跑起來。這個系統(tǒng)才是可以“安裝”的——只不過安裝的不是一個程序而是一套思維方式和幾個小工具的組合。這篇文章適合誰看適合那些已經(jīng)試過用各種效率工具、自動化腳本給自己減負(fù)但最后發(fā)現(xiàn)工具裝了一堆、流程沒串起來的人。也適合剛接觸個人效率系統(tǒng)、想從零搭建但又不想一上來就搞復(fù)雜框架的新手。我會把我在實踐“superpowers”過程中的理解、架構(gòu)、可以直接抄的配置以及翻車記錄都攤開來講。先說明我的基本立場我講的“superpowers”不是某一個商業(yè)產(chǎn)品而是把個人工作流自動化的一個落地實踐。你可以把它理解成“給自己造一套超能力管線”——把輸入的信息自動處理成輸出把重復(fù)勞動交給腳本把決策留給人。這個思路放在誰身上都成立不挑工具不挑行業(yè)。那“安裝”的真實含義是什么是把幾個選型簡單、維護(hù)成本低的組件拼起來讓它們之間產(chǎn)生化學(xué)反應(yīng)。我在后面會給你看具體怎么做以及哪些地方特別容易踩坑。2. 核心架構(gòu)輸入、處理、輸出三層一個管道串起整個系統(tǒng)我見過太多人做自動化失敗不是因為懶而是因為一上來就想要一個“大而全”的東西。比如買個 NAS、裝一堆 Docker、配置半天儀表盤最后發(fā)現(xiàn)每天還是要手動整理文件。問題的根源在于他們把注意力放在工具數(shù)量上而不是放在“數(shù)據(jù)怎么流動”上。所以我做這套系統(tǒng)時給自己定了一個非常簡單的心法超級能力的本質(zhì)是管道不是倉庫。信息從一個端口進(jìn)來經(jīng)過處理從另一個端口出去。你能把多少事情接上這個管道你就有多少超能力。2.1 輸入層你的系統(tǒng)從哪里“聽到”世界的信號輸入層是我先考慮的部分。它決定了系統(tǒng)運行起來的觸發(fā)方式。常用的輸入信號源有下面這幾類定時器觸發(fā)比如每天 9 點從任務(wù)清單里讀取今天的待辦生成一張?zhí)嵝芽?。文件變化觸發(fā)監(jiān)控某個下載目錄、指定文件夾一旦有新文件落地就觸發(fā)后續(xù)動作。剪貼板觸發(fā)復(fù)制一段文字后自動格式化、歸檔我用的最多。規(guī)則匹配觸發(fā)比如收到包含特定關(guān)鍵詞的通知自動分類。在選輸入層的時候我的建議是先挑一個你每天都會做、而且做了很多次的事把它的觸發(fā)條件定義清楚。一開始不要貪多一個輸入源跑通了再往上一路追加。我自己的選擇是從剪貼板開始的理由很簡單它是最頻繁、最無意識的動作。每天從網(wǎng)頁、文檔、聊天記錄里復(fù)制大量文本復(fù)制完就丟很浪費。如果把復(fù)制這個動作變成一個輸入信號后面能做很多事。2.2 處理層規(guī)則比代碼重要模板比智商重要處理層是整個管道的核心。我的原則是能用配置文件解決的絕不用復(fù)雜代碼解決能用一個函數(shù)的絕不寫一個類。處理層里放什么放的是“轉(zhuǎn)化規(guī)則”。它接收輸入層的原始數(shù)據(jù)然后做三件事清洗去掉多余的空行、格式混亂、廣告尾巴。結(jié)構(gòu)化把散亂的文本提取成標(biāo)題、鏈接、內(nèi)容摘要。映射根據(jù)關(guān)鍵詞把內(nèi)容歸入不同的歸檔路徑。我當(dāng)初犯過一個典型錯誤在處理層寫了一套非常復(fù)雜的分類算法試圖讓系統(tǒng)“智能”識別所有內(nèi)容結(jié)果是識別率感人維護(hù)成本爆炸。后來我換成了簡單方案——只處理輸入源里最常見的三種格式剩下的一律進(jìn)默認(rèn)歸檔。這一改動反而讓系統(tǒng)穩(wěn)定了很多因為 80% 的輸入本來就只有少數(shù)幾種形態(tài)。下面是我剪貼板處理層的核心邏輯用 Python 寫不算復(fù)雜import re import time from pathlib import Path def clean_clipboard_text(raw: str) - str: # 去掉開頭結(jié)尾多余空白 text raw.strip() # 合并連續(xù)換行 text re.sub(r\n{3,}, \n\n, text) # 去掉微信/網(wǎng)頁復(fù)制留下的來源尾巴 text re.sub(r——.*分享.*, , text) return text def classify_clipboard(text: str) - str: # 按關(guān)鍵詞決定歸檔路徑 if any(k in text for k in [bug, error, 報錯]): return debug_log if text.startswith(http://) or text.startswith(https://): return link_box if len(text) 200: return quick_note return long_read def save_note(category: str, cleaned: str): base Path.home() / superpowers / notes / category base.mkdir(parentsTrue, exist_okTrue) filename f{time.strftime(%Y%m%d_%H%M%S)}.md (base / filename).write_text(cleaned, encodingutf-8)看到?jīng)]有處理層真正做的事情非常樸素清洗、分類、落盤。它不智能但它可靠。2.3 輸出層讓處理結(jié)果出現(xiàn)在它該出現(xiàn)的地方輸出層決定了這個系統(tǒng)怎么回報你。我經(jīng)歷過一種狀態(tài)自動化腳本跑得很歡但是結(jié)果藏在某個日志文件里沒人看那等于沒有輸出。輸出層要有存在感。我的輸出方式分成三種通知發(fā)到手機(jī)或桌面通知讓人一眼看到處理結(jié)果。歸檔寫進(jìn)日志、Markdown 文件、筆記庫供后續(xù)檢索。執(zhí)行如果處理結(jié)果滿足條件直接觸發(fā)下一個動作比如發(fā)送郵件、創(chuàng)建待辦。輸出層很重要的一點是“可溯源”。我在每個輸出文件開頭都保留一行元數(shù)據(jù)記錄它由什么輸入、什么時候、經(jīng)過哪條規(guī)則產(chǎn)生。這個習(xí)慣幫我省了很多排查問題的力氣。2.4 為什么三層足夠用再加層就復(fù)雜了你可能見過一些流程圖把系統(tǒng)拆成五六層接入層、解析層、增強(qiáng)層、調(diào)度層、存儲層、展示層。很專業(yè)但那是企業(yè)級方案的思路。個人項目用這么深的棧大部分時間是給自己找麻煩。三層結(jié)構(gòu)的最大優(yōu)點是每一層可以獨立更換。輸入層切掉剪貼板換成監(jiān)聽郵箱不影響處理層處理層把規(guī)則改掉不影響輸出層。我的經(jīng)驗是個人項目里面臨的環(huán)境變化很快比如公司換協(xié)作軟件、你換編輯器這種結(jié)構(gòu)能讓你優(yōu)雅地改配置而不是重寫系統(tǒng)。表格總結(jié)一下這三層方便你對照自己的場景層級常見組件典型動作輸出產(chǎn)物輸入層剪貼板監(jiān)聽、定時任務(wù)、文件夾監(jiān)控捕獲信號原始數(shù)據(jù)處理層規(guī)則引擎、腳本函數(shù)、模板清洗/分類/提取結(jié)構(gòu)化數(shù)據(jù)輸出層通知服務(wù)、文件寫入、API 調(diào)用落盤/提醒/觸發(fā)可用結(jié)果3. 從零搭建的三個自動化場景都是可以直接抄的配置講完架構(gòu)我來給三個我已經(jīng)跑了一段時間、沒有刪掉的實戰(zhàn)場景。每個場景都是“輸入—處理—輸出”的完整鏈路代碼和配置我會盡量貼全你拿過去就能改著用。3.1 剪貼板一鍵歸檔把復(fù)制的內(nèi)容變成可檢索的筆記這個場景是我整個 superpowers 系統(tǒng)的入口。目標(biāo)很簡單你復(fù)制一段文字系統(tǒng)在后臺自動清洗格式、按規(guī)則歸檔幾秒后手機(jī)上收到一條“已歸檔到 long_read/xxx.md”的通知。我用 Python 腳本監(jiān)聽剪貼板配合 pyperclip 庫。核心邏輯如下import pyperclip import threading import time last_clip bounce_until 0 def watch_clipboard(pause1.0): global last_clip, bounce_until while True: try: current pyperclip.paste() except Exception: time.sleep(pause) continue if current ! last_clip and current.strip(): now time.time() # 防抖30秒內(nèi)同一內(nèi)容只處理一次 if now bounce_until: cleaned clean_clipboard_text(current) category classify_clipboard(cleaned) save_note(category, cleaned) # 觸發(fā)通知腳本雙端都要寫見下方 notify(category) bounce_until now 30 last_clip current time.sleep(pause) if __name__ __main__: watch_clipboard()這里有三個細(xì)節(jié)值得你注意。第一防抖邏輯。剪貼板監(jiān)聽最常見的坑是同一個內(nèi)容觸發(fā)好幾次特別是你在某些編輯器里復(fù)制時系統(tǒng)會自動改寫剪貼板。我用bounce_until做一個簡單的時間窗口30 秒內(nèi)不處理重復(fù)內(nèi)容問題就沒了。第二異常處理。剪貼板在不同系統(tǒng)上權(quán)限策略不一樣。我在try/except里選擇了靜默跳過而不是彈錯誤因為這類監(jiān)聽腳本應(yīng)該像背景空氣一樣存在而不是動不動跳出來打擾人。第三通知腳本。為了讓結(jié)果即時可見我在 macOS 上用osascript彈通知在 Linux 上用了notify-send#!/bin/bash # 通知腳本 notify.sh # 用法: notify.sh 內(nèi)容已歸檔 → long_read if [[ $OSTYPE darwin* ]]; then osascript -e display notification \$1\ with title \Superpowers\ else notify-send Superpowers $1 fi整個流程跑起來之后體驗真的是“身上帶了一個隱形助理”。復(fù)制一段長文切回編輯器想找地方貼的時候提示就來了已經(jīng)幫你存好了。很多人第一次看到這個反應(yīng)是“哇”但實際原理就是一次很簡單的文件寫入。3.2 下載目錄自動歸檔治愈“下載文件夾一團(tuán)亂”的重度患者第二個場景處理的是下載目錄。我承認(rèn)我在這方面做過很久的“數(shù)字囤積癥患者”下載文件夾里什么都有PDF、安裝包、截圖、壓縮包混在一起找一個文件翻半天。于是我用文件監(jiān)控加規(guī)則歸檔解決了這個問題??紤]到移動端和桌面端同步我選擇的監(jiān)控目錄是~/Downloads目標(biāo)是所有新文件在 10 分鐘內(nèi)自動按擴(kuò)展名和文件名關(guān)鍵詞移動到對應(yīng)子目錄。#!/bin/bash # dispatch_new_files.sh # 在 ~/Downloads 下新建文件時觸發(fā)按類型分揀 WATCH_DIR$HOME/Downloads # 文檔類 if [[ $1 ~ \.(pdf|docx?|xlsx?|pptx?)(\.part)?$ ]]; then mkdir -p $WATCH_DIR/文檔 mv $1 $WATCH_DIR/文檔/ exit 0 fi # 壓縮包 if [[ $1 ~ \.(zip|rar|7z|tar\.gz)$ ]]; then mkdir -p $WATCH_DIR/壓縮包 mv $1 $WATCH_DIR/壓縮包/ exit 0 fi # 圖片 if [[ $1 ~ \.(png|jpe?g|gif|webp)$ ]]; then mkdir -p $WATCH_DIR/圖片 mv $1 $WATCH_DIR/圖片/ exit 0 fi # 安裝包 if [[ $1 ~ \.(dmg|pkg|exe|msi|AppImage)$ ]]; then mkdir -p $WATCH_DIR/安裝包 mv $1 $WATCH_DIR/安裝包/ exit 0 fi # 其他 mkdir -p $WATCH_DIR/未分類 mv $1 $WATCH_DIR/未分類/觸發(fā)方式我用的是最簡單的輪詢每 60 秒看一眼目錄里的新文件。一開始我想用inotifywait做實時觸發(fā)但后來發(fā)現(xiàn)對于個人電腦來說輪詢足夠而且穩(wěn)定得多。實時觸發(fā)意味著你要常駐一個守護(hù)進(jìn)程處理各種文件被占用、寫入未完成的問題而輪詢天然避開了這些坑。這個腳本是讓我第一次真正感受到“數(shù)字空間是可控的”的東西。每次下載完過一會兒去下載目錄文件已經(jīng)自己站好隊了。你不需要任何意志力去整理它系統(tǒng)替你干了。3.3 每日待辦摘要早上打開手機(jī)就知道今天要做什么第三個場景比較輕量但收益非常直接。它是每天早上 8 點從我的任務(wù)清單文件里提取當(dāng)天待辦整理成一段摘要推送到手機(jī)上。任務(wù)清單我維護(hù)在一個純文本文件里格式極簡# 2025-01-15 - [ ] 完成項目上線前檢查 - [ ] 寫季度復(fù)盤 - [ ] 確認(rèn)下周排期 # 2025-01-16 - [ ] 準(zhǔn)備分享用的 PPT每天早上腳本讀取文件、匹配當(dāng)天的日期標(biāo)題然后把未完成事項拼成一條信息發(fā)出去。代碼如下#!/usr/bin/env python3 from pathlib import Path import datetime, subprocess task_file Path.home() / superpowers / tasks.md today datetime.date.today().isoformat() lines task_file.read_text(encodingutf-8).splitlines() today_heading f# {today} in_today False todos [] for line in lines: if line.startswith(# ): in_today (line.strip() today_heading) elif in_today and line.strip().startswith(- [ ]): todos.append(line.strip().lstrip(- [ ] ).strip()) if todos: msg 今日待辦\n \n.join(f{i1}. {t} for i, t in enumerate(todos)) subprocess.run([bash, notify.sh, msg]) else: subprocess.run([bash, notify.sh, 今天沒有待辦享受空白])這個腳本讓我形成了一種確定性每天早上都有一個外部提醒而不是靠腦子記憶。我做這個場景的初衷是大腦應(yīng)該用來做判斷不應(yīng)該用來做存儲。哪怕只是讀一遍清單這個動作交給腳本也比自己翻文件更省力。4. 安裝和配置時最容易翻車的四個細(xì)節(jié)我全踩了一遍說實話上面這些腳本單看都不復(fù)雜任何一個有點編程經(jīng)驗的人都能在半小時內(nèi)寫出來。但真正讓這類系統(tǒng)“要么好用要么吃灰”的是那些不起眼的細(xì)節(jié)。我把這些年踩過的坑挑幾個典型的講一下。4.1 路徑問題中文目錄、空格和權(quán)限是三大殺手第一個大坑是文件的路徑。很多人一開始把腳本放在中文名字的目錄里或者在處理過程中移動文件到包含空格和特殊字符的路徑腳本里如果直接寫死路徑很容易出問題。我踩過一次特別狼狽的因為所在用戶目錄帶中文一個文件名中包含中文和空格腳本在移動文件時把路徑當(dāng)成了多個參數(shù)結(jié)果文件被橫切成了幾個碎片。從那之后我給自己的項目定了三條鐵則所有路徑用英文命名中間不用空格統(tǒng)一用下劃線。腳本里所有文件路徑用Path對象拼接不手寫字符串。在處理用戶輸入路徑時一律用shlex.quote()或者subprocess傳參數(shù)列表不用shellTrue拼串。# 錯誤的寫法很容易在路徑帶空格時爆炸 subprocess.run(fmv {src} {dest}, shellTrue) # 正確的寫法 subprocess.run([mv, str(src), str(dest)])這個細(xì)節(jié)可能不會讓你立刻翻車但只要你跑幾個月自動化總會遇到一次。4.2 觸發(fā)器的防抖同一個文件反復(fù)被處理三次第二個坑是重復(fù)處理。我在剪貼板監(jiān)聽那里用了簡單的防抖同樣的問題也出現(xiàn)在文件監(jiān)控里。下載一個大文件時瀏覽器可能會先創(chuàng)建一個.part文件下載完成后才變成最終文件某些工具寫入文件時會先寫臨時文件再重命名監(jiān)控腳本可能會在寫了一半的時候觸發(fā)更常見的是云盤同步目錄會產(chǎn)生大量事件每個文件觸發(fā)好多次。如果不加防抖你的歸檔腳本可能會把一個文件移動兩次第二次找不到文件直接報錯或者更隱蔽的——部分文件被錯誤地處理因為你抓到的是寫入過程中的不完整狀態(tài)。我給文件輪詢加了一個簡單的緩存機(jī)制在內(nèi)存里記錄最近處理過的文件名和時間戳60 秒內(nèi)不重復(fù)處理。對于個人使用來說這比引入復(fù)雜的文件事件隊列要劃算得多。import collections, time recent collections.deque(maxlen200) def should_process(path): sig (path, time.time() // 60) if sig in recent: return False recent.append(sig) return True這種按分鐘粗粒度去重的方式比精確到秒的去重更符合文件歸檔的場景。因為你在 60 秒內(nèi)根本不需要處理同一個文件兩次。4.3 日志一定要單獨留否則排錯就像大海撈針第三個坑是我感觸最深的腳本不寫日志。前幾個版本我偷懶覺得輸出到終端就行了。后來系統(tǒng)跑了兩周某一天突然發(fā)現(xiàn)某個歸檔目錄里多了很多不該出現(xiàn)的文件但我完全想不起來是哪個環(huán)節(jié)出了問題。從那之后我把日志當(dāng)成了系統(tǒng)的必要條件。日志不是給機(jī)器看的是給未來的自己看的。我保留了stdout同時把日志寫到文件里按天滾動。import logging from logging.handlers import TimedRotatingFileHandler logger logging.getLogger(superpowers) handler TimedRotatingFileHandler( /home/you/superpowers/logs/app.log, whenmidnight, backupCount14, ) logger.addHandler(handler) logger.setLevel(logging.INFO) # 每次執(zhí)行關(guān)鍵動作時記錄 logger.info(move file: %s - %s, src, dst)有日志之后排錯的成本降低了至少十倍。比如發(fā)現(xiàn)文件被移錯了目錄翻一下日志立刻能看到是哪條規(guī)則匹配的發(fā)現(xiàn)剪貼板監(jiān)聽沒反應(yīng)看看日志就知道是權(quán)限問題還是剪貼板內(nèi)容為空。4.4 環(huán)境隔離別把全局環(huán)境搞得一團(tuán)糟不然你換臺電腦就廢了第四個坑不是功能問題而是工程問題依賴管理。我最早寫腳本時直接系統(tǒng) Pythonpip install 裝了一堆庫。幾個月后有些事情做不明白了去排查發(fā)現(xiàn)全局環(huán)境里裝了很多相互沖突的包版本還亂。更糟糕的是如果換一臺新電腦完全沒有可復(fù)現(xiàn)性所有配置都要手動重來一遍。后來我把項目從結(jié)構(gòu)上規(guī)范了一下superpowers/ ├── scripts/ │ ├── clipboard_watch.py │ ├── dispatch_downloads.py │ └── daily_digest.py ├── configs/ │ └── rules.yaml ├── logs/ ├── venv/ └── requirements.txt每次在新的機(jī)器上部署只需要三步python3 -m venv venv source venv/bin/activate pip install -r requirements.txt還有一點敏感配置比如從環(huán)境變量讀取通知 ID、把 API token 放進(jìn).env文件永遠(yuǎn)不要寫進(jìn)代碼里。我見過有人的腳本里直接寫了自己的郵箱密碼這種習(xí)慣非常基礎(chǔ)但確實有人漏掉。我把這些坑壓在前面講是因為它們才是一個“superpowers 系統(tǒng)”能不能長期活下來的核心。功能代碼寫得快環(huán)境因素和管理因素是慢慢消磨系統(tǒng)生命力的。5. 判斷這套“超能力”值不值得維護(hù)我自己的取舍標(biāo)準(zhǔn)搭建系統(tǒng)只是第一步更關(guān)鍵的問題是它到底值不值得繼續(xù)跑下去在我自己實踐的過程中有一套很簡單的判斷標(biāo)準(zhǔn)。不是“這個功能很酷所以我留著”而是用數(shù)據(jù)來算賬。先說“省時”的算法。我會粗略估算一個自動化任務(wù)每次省掉我多少時間乘以每天/每周觸發(fā)的次數(shù)得出一個每周節(jié)省時間。比如下載目錄自動歸檔我以前的整理習(xí)慣是每周手動整理一次一次大約 20 分鐘。自動歸檔幫我省掉這 20 分鐘同時讓我隨時可以快速找到文件視覺壓力也小了。這個收益是實打?qū)嵉?。再看“維護(hù)成本”。腳本出問題不是“會不會”而是“什么時候”。我用的記賬方式是每次為某個腳本花超過 30 分鐘排查問題就在對應(yīng)腳本旁邊記一筆。幾個月下來我會發(fā)現(xiàn)哪一個腳本在持續(xù)消耗我的注意力。我自己最后保留的規(guī)矩是一個自動化腳本如果每個月能省我至少 1 小時維護(hù)它的時間低于 15 分鐘就留著如果壓力值超過了收益值砍掉。用這個標(biāo)準(zhǔn)我后來真的砍掉過兩個項目。一個是“自動給文件打標(biāo)簽”的腳本。它看起來很有意思——監(jiān)控所有文檔、自動提取關(guān)鍵詞、生成標(biāo)簽。跑了兩周后我發(fā)現(xiàn)打出來的標(biāo)簽我自己從來不看因為我對自己的文件命名習(xí)慣已經(jīng)很熟悉了。還有一個是“自動生成周報”的腳本。聽起來很高效但我寫的周報需要大量上下文判斷腳本生成的版本反而要花更多時間修改。這兩個項目都沒有達(dá)到“每月省 1 小時”的門檻于是刪了。我建議你也給自己的每個自動化腳本建一個“性價比賬本”。不要因為寫了它覺得浪費就硬留著也不要因為是一步步搭起來的有感情就舍不得刪。工具是為你服務(wù)的不是讓你反過來照顧工具的?,F(xiàn)在我的系統(tǒng)里長期保留的就是剪貼板快速歸檔、下載目錄自動分揀、每日待辦摘要這三條。它們都不復(fù)雜但每一天都在給我省時間。6. 最后聊點實在的這套系統(tǒng)為什么能帶來“超能力感”如果只說技術(shù)細(xì)節(jié)這篇文章和普通教程沒有區(qū)別。我想補充一個自己的觀察當(dāng)這套自動化系統(tǒng)跑到第三周之后我感受到了一種很微妙的心理變化。以前每天打開電腦第一件事是想“今天要做什么”現(xiàn)在打開電腦很多小事已經(jīng)有人替我做完了——下載的文件分類好了昨晚復(fù)制的文章已經(jīng)躺進(jìn)筆記庫早上待辦清單已經(jīng)推送到我眼前。我不是變強(qiáng)了而是我不用再把注意力消耗在那些機(jī)械性的小事上。這種“注意力被解放”的感覺才是我說的“superpowers”。不過我也要提醒一句不要一開始就想搭建一個包羅萬象的系統(tǒng)。我的親身經(jīng)歷是凡是那種“我要把所有流程全自動一鍵搞定工作生活”的計劃幾乎都以失敗告終。原因很簡單你對業(yè)務(wù)的理解還不夠深你對自己習(xí)慣的觀察還不夠細(xì)強(qiáng)行自動化只是在把混亂固化下來。正確的路徑是反過來從一件讓你最厭煩的小事開始用手動方式記錄你處理它的步驟再把這個步驟翻譯成腳本跑起來。跑順了再找下一件事。這個系統(tǒng)還會隨著你的使用習(xí)慣不斷演化——比如我最早只有剪貼板一個場景后來才慢慢加上下載分類、每日摘要。最后分享一個小技巧我每次給腳本加新功能都會先在手動模式下跑幾遍確認(rèn)處理結(jié)果的格式符合預(yù)期再接入自動觸發(fā)。這個習(xí)慣讓我避免了很多因為規(guī)則考慮不周而造成的蝴蝶效應(yīng)。如果你現(xiàn)在正在為“想要安裝 superpowers”這件事糾結(jié)我的建議就是別找那個完美的軟件了從你的剪貼板和下載文件夾開始動手搭第一條管道。真正的超能力不是某一個工具而是你逐漸建立起來的、對重復(fù)勞動的掌控感。