feat(jt-flow): streamline authorization checkpoints - #171
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e9cfbb533
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 251e08bed8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…low-one-authorization
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bba3c70471
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 79e6ad333c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - 收到 GO 後、建立 worktree 前,立即建立或更新 | ||
| `openspec/changes/<change>/verification-logs/proposal-go.md`,至少記錄 |
There was a problem hiding this comment.
Carry the GO record into the feature worktree
When an active proposal on main receives GO, this instruction writes proposal-go.md in the root worktree, but step 3 immediately creates the delivery worktree from <remote>/main without committing or copying that new file. The feature branch therefore omits the purported durable evidence while the root retains an uncommitted file; if the task is resumed or re-enters jt-flow-all before merge, the queue cannot find the record and will request GO again. Persist the record somewhere the new worktree and subsequent contexts can actually observe.
Useful? React with 👍 / 👎.
…viewer (#188) * docs(superpowers): 為統一 jt-flow-one 審查預算上限寫設計文件 本地 Superpowers review 目前無總輪數上限(新一批就能再 review), CodeRabbit/Copilot 已是最多一次但 Codex 尚未整合進來,規則不一致。 Closes #187 * docs(superpowers): 修正 Codex 審查段落——無預算上限、不套 CodeRabbit 授權 實測本 repo PR #171 發現 chatgpt-codex-connector 在同一個 PR 內 每次 push 後約 3 分鐘就重新自動觸發,共留言 5 次,證實它不是 「PR 建立時跑一次」的 Copilot 模式,也不適合套「最多一次」預算。 org 層級已用 chatgpt-codex-connector GitHub App 全域安裝授權, jt-flow-one 未主動觸發它,因此不需要比照 CodeRabbit 的預先授權/ 揭露段落(該段落存在的前提是流程主動要求審查)。改為:不設預算、 不主動要求,出現的 finding 一律照既有 receiving-code-review 規則核實。 Closes #187 * docs(superpowers): Codex 改回最多一次,加上帳號設定前置確認 登入 chatgpt.com/codex/cloud/settings/code-review 查證:審查觸發條件 目前設定為「開啟 PR」(帳號預設 + jurislm-tools repo 皆繼承此值), 理論上跟 Copilot 一樣只在 PR 建立時審查一次;但這與 PR #171 的歷史 證據(同一 PR 5 次觸發、每次貼著 push)矛盾,且無法回溯查證原因。 因此改為:最多一次,但依賴這個帳號層級設定(非 repo 內可提交的檔案, 需人工一次性確認),且保留既有的 receiving-code-review 核實規則作為 「萬一設定沒生效、多跑一次」的安全網。 Closes #187 * docs(openspec): 提出 cap-jt-flow-review-budgets 提案 依 docs/superpowers/specs/2026-08-06-jt-flow-review-budget-caps-design.md 的定案內容產出 proposal/design/specs delta/tasks 四份 artifacts: 本地 Superpowers review 加上 3 次總輪數上限,新增 Codex 為第三個外部 審查管道(1 次預算,依賴帳號層級「審查觸發條件」設定,不套用 CodeRabbit 的預先授權規則)。CodeRabbit/Copilot 既有規則不變。 Closes #187 * docs(openspec): 記錄 cap-jt-flow-review-budgets 的 proposal GO 證據 Closes #187 * feat(jt-flow): 本地 review 上限 3 次,新增 Codex 為第三個外部審查管道 - 本地 superpowers:requesting-code-review:拿掉無上限批次模型,改整個 PR/change 全程最多 3 次(第一次 + 最多 2 次 finding 修正觸發的重跑), 第 3 次後即使仍有新 finding 也不再重跑,改靠測試/CI/PR review 覆核。 - 新增 Codex(chatgpt-codex-connector)為第三個外部審查管道,最多一次, 依賴帳號層級「審查觸發條件=開啟 PR」的人工前置確認(非 repo 內可提交 的檔案);不主動觸發、不套用 CodeRabbit 的預先授權規則;貼出來的 finding 一律照既有 receiving-code-review 規則核實。 - CodeRabbit、Copilot 既有規則不變。 - 同步更新 living spec、SKILL.md、README.md、CLAUDE.md 與 scripts/jt-flow-review-policy.test.mjs 的對應斷言。 Closes #187 * fix(jt-flow): 依 code review 意見修正 living spec 誤動與鬆散測試斷言 - 還原 openspec/specs/jt-flow-review-orchestration/spec.md 回部署狀態: 該檔案依本 repo CLAUDE.md 慣例(且其 git history 只在前一個提案歸檔 當下被改過,從未在實作階段被改),active change 只能改 openspec/changes/<name>/specs/ 下的 delta,living spec 留到歸檔時才套用。 同步修正 design.md/tasks.md 相關描述避免下次重蹈覆轍。 - scripts/jt-flow-review-policy.test.mjs:本地 3 次上限的斷言原本直接對 整份 SKILL.md 用 dotAll regex,改成先 paragraphContaining 限定範圍, 跟檔案裡其他斷言的寫法一致,避免斷言鬆散到失去驗證意義。 Closes #187 * docs(openspec): 修正 design/proposal 殘留的「living spec」用詞矛盾 第二輪 review 抓到:修正 living spec 誤動之後,design.md 的 Risks 段落 與 proposal.md 的 Impact 段落還留著「已寫進 living spec」的舊用詞, 跟同一版 design.md 的 Migration Plan(正確說明留到歸檔才套用)互相矛盾。 統一改成「delta spec,歸檔時才併入 living spec」。 Closes #187 * docs(openspec): 記錄 PR #188 上取得的 CodeRabbit consent Closes #187 * fix(jt-flow): 依 Copilot review 意見補齊「不等待 Codex」語意與覆蓋 - README.md/CLAUDE.md 的 Codex 段落原本只寫「不主動要求」,沒有明確講 「不等待 Codex」,跟 SKILL.md/delta spec 的 SHALL NOT wait 語意不完全 對齊,容易被實作者誤讀成需要等 Codex 回覆才能繼續。 - scripts/jt-flow-review-policy.test.mjs 補上對應斷言,避免未來三份文件 在這句上 drift 而測試沒抓到。 - proposal.md 補一句明確指出「不套用 CodeRabbit 授權規則」這個決定跟 #187 原始 issue wording(原要求套用 CodeRabbit 那套規則)不同,並指到 design.md 的完整理由,避免之後回頭比對 issue 產生治理歧義。 Closes #187 * fix(jt-flow): 依 CodeRabbit CLI review 意見補齊監控清單與文件用詞 CodeRabbit CLI review(8 findings)逐項核實後,採納 3 項: - SKILL.md step 5 的 bot 留言監控清單漏了 Codex,補上(原本只列 CodeRabbit/Copilot)。 - openspec/changes/.../design.md 的 Migration Plan 用詞從 「documentation-only」改成「non-runtime policy, documentation, and test change」,更精確反映有改動 .test.mjs。 - docs/superpowers/specs/2026-08-06-...-design.md 的 File Impact 段落 還留著「直接改 living spec」的舊寫法,跟稍早本地 review 已修正的 living-spec 治理規則矛盾,同步更正為「改 delta spec,歸檔時才套用」。 其餘 5 項不採納,理由: - 「本地 review 需要持久化 ledger 追蹤次數」——超出本次範圍(純文字政策 變更,不新增執行期程式碼/狀態儲存,CodeRabbit/Copilot 既有預算也是 同樣靠文字約束執行,非技術性 ledger)。 - 「移除『從未主動觸發 Codex』的絕對敘述、比照 CodeRabbit 加 disclosure gate」——與 design.md 已記錄、有實證(org 已裝 App)支持的決策相反, 不採納。 - 「前置確認要涵蓋 repo override 與帳號預設值」——設計文件已寫 「the target repository (or its inherited account default)」,已涵蓋。 - 「Codex 預算應描述為 expected 而非 enforceable」——設計文件已用 「cannot be automated」「expected...or an unexpected extra one」表達, 已是這個語氣。 - 「living spec 應同步或記錄核准例外」——design.md 的 Migration Plan 已明確記錄此例外與其依據(git history + CLAUDE.md 規則引用)。 Closes #187
Summary
jt-flow-onejt-flow-alland fold intent-routed CodeRabbit consent into the same checkpointValidation
npm run validate(48 tests)claude plugin validate .openspec validate streamline-jt-flow-one-authorization --strictCloses #170