Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
feat(drill): 周种子演习 workflow+诱饵联动(W4-C4 .github#223,ADR-0069) #247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
feat(drill): 周种子演习 workflow+诱饵联动(W4-C4 .github#223,ADR-0069) #247
Changes from all commits
3da39d3File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4. Verifier 吞错变 skipped
🐞 Bug☼ ReliabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
不要在验证或台账持久化失败后继续报告成功。
verify_gate.py可能以非零状态返回;当前处理会吞掉该状态,解析失败后仍可能写入空 verdict 并继续 finalize。请捕获退出码,校验输出为有效 JSON,且verdict属于RED、GREEN、NO-SURFACE、MISSING-GATE或TIMEOUT,否则在清理后以非零状态退出。两个台账推送重试循环在三次
git push均失败时最后执行sleep,因此步骤仍会成功并让redrate读取未持久化数据。请记录推送是否成功,全部失败时输出 error 并以非零状态退出;同样适用于普通演习和 failclose 台账推送。📍 Affects 1 file
.github/workflows/seed-drill.yml#L117-L123(this comment).github/workflows/seed-drill.yml#L254-L255🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 32041
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 257
让 P0 创建失败使演习失败
gh issue create ... || echo ...将失败转换为成功状态。finalize会继续清理,工作流可能成功结束而没有 P0。请记录创建结果,完成清理后在创建失败时以非零状态退出。🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2. auto_merge_disabled gate missing
📘 Rule violation≡ CorrectnessAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
8. Canary run 可能串台
🐞 Bug☼ ReliabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3. Canary dispatch lacks cost checks
📘 Rule violation☼ ReliabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 50382
🌐 Web query:
GitHub CLI gh workflow run output run ID gh run list default order created latest documentation💡 Result:
As of February 2026, the GitHub CLI (gh) supports returning workflow run details when triggering a workflow [1]. GitHub CLI Workflow Run Output Starting with version 2.87.0, the gh workflow run command has been updated to return the URL of the created workflow run upon success, provided the underlying server supports it [1]. This improvement addresses long-standing community requests by utilizing the workflow dispatch API's ability to return run details [1][2][3]. If the API server does not support returning run details (such as older GitHub Enterprise Server versions), the command maintains its historical behavior: providing a success message and exiting with code 0 in interactive mode, or simply exiting with code 0 in non-interactive mode [2][3]. gh run list Default Order The gh run list command does not have a user-configurable parameter to specify sort order [4]. It relies on the underlying GitHub REST API, which typically returns runs in descending order by creation time (created desc) [4]. However, because the exact ordering of items created within the same timeframe may not be strictly guaranteed, the order can occasionally appear volatile [4]. Summary of Key Commands gh workflow run [workflow]: Triggers a manual workflow dispatch [5][6]. It now outputs the created run's URL when supported [1]. gh run list: Fetches recent workflow runs, typically sorted by creation time (latest first) [7][4]. Note that it does not provide an explicit sort flag [7][4].
Citations:
workflow run: Output created workflow run ID cli/cli#12672gh run listshould report in a predictable order cli/cli#6678🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 757
关联本次 dispatch 创建的 canary run。
当前步骤未保存
gh workflow run返回的运行 URL。固定等待 45 秒后使用gh run list -L 1仍可能选中并发运行,导致DID、SID与本次 dispatch 不匹配,台账记录错误的 canary 结果。捕获并直接 watch 本次 dispatch 返回的运行 URL 或 ID。若运行环境不返回详情,则传递唯一标识并轮询匹配的运行。
🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 50382
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 14188
在
skip_inject为true时跳过 canary 联动。当前 canary 步骤无条件执行,并会 dispatch
holdout-canary-drill.yml。该 workflow 会将drill marker写入运行日志。为 canary 步骤添加if: ${{ inputs.skip_inject != true }}。🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
7. Token 嵌入 git url
🐞 Bug⛨ Security台账 clone/push 使用 https://x-access-token:${DRILL_TOKEN}@github.com/... 形式把高权限 token 放入 URL,git 出错信息/remote 展示等场景可能将其带入日志或工具输出(即使 GitHub 有 masking,也存在截断/编码导致的漏遮风险)。同仓的 inject 逻辑已经采用 extraheader 方式避免 token 出现在 URL,台账路径建议对齐。Agent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5. 台账可写入无效记录
🐞 Bug≡ CorrectnessAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: Cloudbird-Software/.github
Length of output: 20616
🌐 Web query:
GitHub Actions jobs needs failed skipped if condition always() default status check documentation💡 Result:
In GitHub Actions, jobs possess a default status check of success [1]. This means that if you do not specify an if condition for a job, it will only run if all of its dependent jobs (defined in the needs keyword) have completed successfully [2][3]. If a required job fails or is skipped, any subsequent jobs that depend on it are automatically skipped by default [2][3][4]. To force a job to execute even when previous dependencies have failed or were skipped, you must override this default behavior using status check functions within an if conditional [2][3]. Key considerations for overriding this behavior: 1. Using always: By adding if: ${{ always }} to your job, you force it to run regardless of the status of the jobs it depends on [2][3]. 2. Handling Cancelled Jobs: Note that always does not prevent a job from running if the workflow was cancelled [1]. If you want a job to run in all cases except when the workflow is explicitly cancelled, the recommended approach is to use if: ${{!cancelled }} [1][5]. 3. Dependency Results: When using always or!cancelled, you may still need to account for the specific outcomes of your upstream jobs to avoid unexpected logic execution [4]. You can inspect the status of needed jobs using the needs context (e.g., needs.<job_id>.result) [1][4]. For example, if you want a job to run even if a previous job was skipped, you might use: if: ${{ always && (needs.job_id.result == 'success' || needs.job_id.result == 'skipped') }} [5][6] If you do not include a status check function (like always, success, failure, or cancelled) in your if conditional, the default status check of success remains applied, which can lead to your job being skipped if your custom condition evaluates to true but the dependencies were not successful [1][7].
Citations:
即使
drill失败,也执行季度failclosefailclose使用needs: drill,但if未包含状态检查函数。drill失败或被跳过时,GitHub Actions 会跳过failclose,导致季度 fail-closed 回归不执行。保留needs: drill的顺序约束,并使用always()包裹现有条件。建议修改
📝 Committable suggestion
🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6. Failclose 通过判定过宽
🐞 Bug☼ ReliabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools