證據支持的文件
一個宣告只有在具備驗證手段時,才算得上是文件。 這個技能既是標準,也是地圖:十條準則,以及它們各自被定義、強制執行以及植入種子的地方。
它是一個導航器,而非第二份副本。下面的每一條法則都只有一個家——這就是準則三,任何重述該原則的導航器都將違反它正在索引的規則。每條準則的完整陳述、其理由以及執行方式,都位於
documentation.md → 準則。
十條準則
- 一個宣告攜帶其地址 —
檔案:行號、一個命令及其輸出、一個測試名稱;一個教訓指明其提交。 - 數字是計算出來的,絕不重述。
- 每個事實只有一個家 — 其他部分連結過去,絕不重述。
- 參考資訊從文件被閱讀的位置解析 — 而不是從文件所在的位置。
- 無人觀看的綠色變成紅色,不算是證據。
- 一個檢查證明其範圍,僅此而已。
- 沉默不是通過 — 問問一個機制在它沒有查看時會印出什麼。
- 估計絕不能宣稱為測量結果 — 一條規則必須陳述其證據條件。
- 未被檢查的內容要與被檢查的內容一起印出來。
- 文件隨著使它成立的變更一起發布 — 並且修正內容是附加的,絕不覆寫。
它們是認識論層面的:定義了什麼讓一個宣告成為文件。操作層面——在特定觸發條件下要做什麼,附帶檢查和退出標準——位於
learned.md。當兩者看似在說同一件事時,準則是為什麼,而規則是怎麼做。
下一步
| 您即將… | 閱讀 | 原因 |
|---|---|---|
| 從零開始設定一個專案的文件 | documentation.md → 庫存清單 | 在工作開始第一行之前,先回答四個問題 |
| 記錄一個決策以便它能在作者離開後留存 | 註冊表與ID + templates/decisions.md | 僅追加的ID、邊界標記、一個決策的家 |
| 變更某些內容而不讓文件變成孤兒 | 文件循環 + 傳播矩陣 | 哪些文件因變更而受影響,從元資料列開始 |
| 決定一個事實該歸屬何處 | 單一事實來源 | 兩個家會在其中一個被更新時產生分歧 |
| 建立一個無法說謊的檢查 | gates.md | 三個軸、執行階梯、漸進式武裝、探查 |
| 信任一個回報成功的機制 | gates.md → 假性成功 | 那種會消除查看理由的失敗 |
| 將檢查接入代理人自己的工具鏈 | hooks.md | 鉤子合約,以及為何一個崩潰的守衛允許該動作 |
| 稽核一個專案已有的文件 | setup.md | 七個檢查回合,從最簡單的開始,輸出是一個修復計畫 |
| 將一個教訓帶到下一次執行 | retrospective.md | 先蓋戳記(冷觸發會讀取它),然後修剪到最多十條;每個教訓都要指明其提交 |
| 將一個關卡植入主機專案 | templates/docgate.sh | 它植入的是綠色:在沒有輸入時處於休眠狀態 |
| 宣稱一個代理人的行為 | tdd.md → 當待測物是代理人時 — 此處使用名稱而非連結,因為此導航器的目錄外連結會在打包工具單獨發布此技能時中斷 | 地址是一個追蹤ID和所執行的斷言(準則一);一個無人觀看的不同意見就是一個無人觀看的綠色變成紅色(準則五) |
| 將整個變更一路帶到驗收 | task-pipeline | 這個技能是標準;那個技能描述一個變更如何到達儲存庫 |
此技能的適用範圍
界限在於「它將被當作真理事實來閱讀。」 決策記錄、README、驗收報告、操作手冊、給使用者的變更日誌、稽核發現、某件事已被驗證的宣告。
不通過此技能: 草稿、自言自語、聊天中的回答、提交訊息、程式碼註解。要求一個「讓我去檢查一下」的 檔案:行號,是教導代理人繞過真正需要保護的規則最快的方式。
拒絕短語 — "без доков" / "on my word"。它適用於一個本來會通過這裡的任務:直接執行,並大聲說出該宣告是未經支援的,而不是將估計呈現為測量結果(準則八)。
唯一測試
在文件發布之前,請閱讀它,找出那個如果有人問「你怎麼知道?」會讓你尷尬的句子——然後要麼給那個句子一個地址,要麼刪除它。以上所有內容,都只是將這個問題機械化而已。