develop
master
deploy.sh
jsc-hooks
skill-end
版號 0.4.5 到 0.4.7。
這兩張 PR 開出來之後壓了一段時間沒合併,而同一件事在其餘 domain 早就做完並釋出了。實測對照:
一支技能的開始由 hook 免費寫下,收尾只有技能自己寫得出來。所以「只有開始沒有收尾」是一輪中止的唯一證據。
這兩支沒釋出之前,它們的每一次執行在助理眼裡都沒有收尾——助理的巡檢會把它們算成疑似中止,而那個數字本來要指出真正的中止。
兩張都動到行為清單同一節,而 develop 那一邊在它們開出去之後改寫了根目錄解析。逐列用差異區間比對過,兩邊在共同基底上動到的位置完全不重疊,所以照基底的座標把兩組改動一起套回去,不是取其中一邊。
第二張因為第一張先合併,基底換過一次,重新比對過一次才合。
解第一張時弄壞過一次:拿字元級差異把新增片段逐塊疊回去,中文被切碎重組,關鍵步驟那一整列還消失了。行為清單檢核抓到「表格只剩四列」才發現,改成整節重取、只接尾端附加那一段才通過。
lint-scripts
lint-frontmatter
check-behaviors
ste100-lint
check-link-format
check-skill-paths
report-error.sh
sh -n
hook 在原理上看不到技能的成敗:它接在技能工具呼叫上,而實際工作發生在 之後的模型輪次。start 由技能用量 hook 順手發,end 只能由技能自己寫。 有 start 沒有配對的 end,就是那一輪中止了。
What: 異常目錄頁的版面從 markdown 表格改成一筆異常一個 H2 區塊,標題就是那一筆的異常頁頁名,時間、頁名、存取庫名稱、觸發 hook、退出碼、摘要六個欄位改成標題底下的一層條列,頁上不再留任何表格。失敗回報腳本不再自己讀回舊頁、附加新列、整頁寫回,改成只組出自己那一個區塊,交給 jsc-gitea 的目錄頁工具做讀回、比對與整頁寫回。範本、技能敘述、行為清單與說明文件一併對齊。 Why: 目錄頁有十幾份,各自在自己的腳本裡寫一套「讀得回舊內容才寫」的判斷,錯一次就少一筆紀錄,而且每一頁長出來的樣子都不一樣。版面與寫入語意收回一份正本之後,改一次全部跟著改。表格欄位遇到換行或半形豎線還會被切斷,條列沒有這個問題。 How: 失敗回報腳本移除目錄專用存取庫的解析與整頁組裝,改為組出區塊檔之後呼叫共用工具的 upsert,並依它的結束碼分流:3 是目錄頁的存取庫沒設定,找不到那支腳本也走同一條,兩者都只寫異常頁、跳過目錄頁、仍回 0;其餘非零一律以 4 回報。摘要不再替換半形豎線,改成把換行併成一行。傳進去的欄位序號 2 指舊表格版持有內容頁連結的那一欄,只供舊頁自動轉條列時取標題用。 Who: 使用 jsc-hooks 失敗回報流程的操作者,以及所有讀異常目錄頁追問題的人。
What: 三份 plugin manifest 的版號由 0.4.1 同步升到 0.4.2,README 的技能目錄確認沒有新增或移除小節。 Why: 版本閘門比對相依版本時看的是 manifest 版號。改了內容卻不升版,安裝端拿到新檔案卻還是舊版判定,落後的一方擋不下來。 How: 以 jsc-meta 的技能清單同步工具一次改三份,結束碼 0,避免三份版號各自手改而對不起來。 Who: 安裝或更新 jsc 技能組的操作者。
三份 manifest 取 develop 的版號再往上升一版:分支停在一個比 develop 舊的版號, 取它等於把版號往回退。 行為清單兩支技能的節整節取 develop 那一版,再把分支新增的收尾說明逐段原文 接回去。develop 那一邊在這條分支開出去之後改寫了根目錄解析與外部呼叫兩欄, 分支那一邊只在關鍵步驟與可驗證跡象兩欄的尾端附加收尾事件的說明——兩件事互不 相干,取任一邊都會弄丟另一邊。 解這一段時弄壞過一次:第一版拿字元級差異把新增片段逐塊疊回去,中文被切碎重組, 「決定結局的那支工具的結束碼」變成「決定結局的那工具的結束碼」,關鍵步驟那一 整列還整列消失。行為清單檢核抓到表格只剩四列才發現。改成整節從 develop 重取、 只接分支相對它自己基底的那一段尾端附加,切點在共同前綴的盡頭,不切中文。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
三份 manifest 取 develop 的版號再往上升一版:分支停在一個比 develop 舊的版號。 行為清單那一節四列兩邊都改過,但改的是不同層面:分支改「目錄頁怎麼寫」——索引 從表格列變成一個報告一個大標題區塊、寫入語意委派給共用工具;develop 改「根目錄 怎麼解」——前置步驟解出兩條字面絕對路徑再拿去叫工具。逐列用差異區間比對過, 兩邊在共同基底上動到的位置完全不重疊,所以照基底的座標把兩組改動一起套回去, 不是取其中一邊。 技能本文那一段同理:分支把整段改寫成區塊語意,develop 只在指令路徑前面補了 根目錄前綴。取分支那一版再補上前綴。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0.4.6 讓給另一張同時要合併的。兩張都動到行為清單同一節,順序定下來之後 這一張排第二,版號跟著讓開。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #78
三份 manifest 取 develop 的版號再往上升一版。 行為清單那一節第二次解:另一張同樣動這一節的先合併了,所以基底換過,重新 比對一次。這一次 develop 那一邊多了收尾事件的說明,分支這一邊還是「目錄頁 從表格列改成大標題區塊」。逐列用差異區間比對過,兩邊在共同基底上動到的位置 仍然完全不重疊,所以照基底的座標把兩組改動一起套回去。 合完之後三方的內容都在:這張的區塊語意、另一張的收尾事件、develop 的根目錄 解析。技能本文這一次自動合併就過了,沒有衝突。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #79
No dependencies set.
The note is not visible to the blocked user.
摘要
deploy.shclone 的是預設分支,沒進 master 的東西這台機器一輪都用不到。這一批補齊jsc-hooks落後全組的兩件事。這一批的內容
skill-end版號 0.4.5 到 0.4.7。
這兩件事是全組的最後一塊
這兩張 PR 開出來之後壓了一段時間沒合併,而同一件事在其餘 domain 早就做完並釋出了。實測對照:
為什麼收尾事件要緊
一支技能的開始由 hook 免費寫下,收尾只有技能自己寫得出來。所以「只有開始沒有收尾」是一輪中止的唯一證據。
這兩支沒釋出之前,它們的每一次執行在助理眼裡都沒有收尾——助理的巡檢會把它們算成疑似中止,而那個數字本來要指出真正的中止。
合併時解過兩次衝突
兩張都動到行為清單同一節,而 develop 那一邊在它們開出去之後改寫了根目錄解析。逐列用差異區間比對過,兩邊在共同基底上動到的位置完全不重疊,所以照基底的座標把兩組改動一起套回去,不是取其中一邊。
第二張因為第一張先合併,基底換過一次,重新比對過一次才合。
解第一張時弄壞過一次:拿字元級差異把新增片段逐塊疊回去,中文被切碎重組,關鍵步驟那一整列還消失了。行為清單檢核抓到「表格只剩四列」才發現,改成整節重取、只接尾端附加那一段才通過。
測試結果
lint-scripts、lint-frontmatter、check-behaviors、ste100-lint、check-link-format、check-skill-paths。check-behaviors的通過訊息確認「跡象欄都寫了收尾事件」,那正是第一張要達成的。report-error.sh委派共用工具 9 處,sh -n通過。前置 Push Request