Skip to content

ADR-0025: agent-platform 申报入图 + bootstrap 豁免登记 + Python 语言准入 - #78

Merged
randypanding merged 1 commit into
mainfrom
adr-0025-agent-platform
Aug 19, 2026
Merged

ADR-0025: agent-platform 申报入图 + bootstrap 豁免登记 + Python 语言准入#78
randypanding merged 1 commit into
mainfrom
adr-0025-agent-platform

Conversation

@randypanding

Copy link
Copy Markdown
Contributor

变更

  • REPOS.yaml:agent-platform(L2 active)申报;external_upstreams 增 openjiuwen-sdk(openJiuwen-ai/agent-core)
  • expected-state.json:agent-platform 建仓 bootstrap initial commit 直推豁免(ADR-0021 (b) 类,逐 SHA:fecdb13d)
  • languages.yaml:application 层 python 准入(限 agent-runtime integration,requires PY-1/PY-2)——声明适配现实:openjiuwen SDK 为 Python(ADR-0025)

依据:agent-registry PR #37(ADR-0025)

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@randypanding, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 30 minutes

Limit details: You’ve used all 3 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1ea526da-fa31-4e66-b750-9164cdf48912

📥 Commits

Reviewing files that changed from the base of the PR and between 5886702 and 05e2c7d.

📒 Files selected for processing (3)
  • governance/REPOS.yaml
  • governance/expected-state.json
  • governance/policy/languages.yaml

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

登记 agent-platform 并准入受限 Python 运行时集成

⚙️ Configuration changes ✨ Enhancement 🕐 10-20 Minutes

Grey Divider

AI Description

• 将 agent-platform 作为 L2 执行层仓库纳入组织治理地图。
• 登记 bootstrap 初始提交的逐 SHA 直推豁免。
• 为 agent-runtime 集成准入 Python,并强制质量与依赖门禁。
Diagram

graph TD
  REG["agent-registry"] -->|"declarations"| PLATFORM["agent-platform"] -->|"renders"| ARTIFACTS["Runtime Artifacts"] -->|"execute"| RUNTIME["Jiuwen Runtime"]
  SDK["OpenJiuwen SDK"] -->|"integration"| PLATFORM
  REPOS["Repo Registry"] -->|"registers"| PLATFORM
  POLICY["Language Policy"] -->|"gates Python"| PLATFORM
  STATE["Expected State"] -->|"exempts bootstrap"| PLATFORM
Loading
High-Level Assessment

当前方案最合适:仓库登记、直推豁免和语言准入分别落入现有的集中式机器可判定配置,并通过 ADR-0025 关联决策依据。相比组织级无条件开放 Python,限定为 agent-runtime integration 且强制 PY-1/PY-2 能缩小政策影响面。

Files changed (3) +19 / -0

Other (3) +19 / -0
REPOS.yaml登记 agent-platform 及 OpenJiuwen SDK 上游 +13/-0

登记 agent-platform 及 OpenJiuwen SDK 上游

• 将 agent-platform 申报为公开、active 的 L2 执行层仓库,并描述其渲染、编译、可观测和治理职责。同时登记 openJiuwen-ai/agent-core 为其钉版消费的外部 SDK 上游。

governance/REPOS.yaml

expected-state.json登记 agent-platform bootstrap 直推豁免 +3/-0

登记 agent-platform bootstrap 直推豁免

• 将 agent-platform 的初始提交完整 SHA 加入直推豁免清单,按 ADR-0021 的 bootstrap 类别避免被漂移检测误判。

governance/expected-state.json

languages.yaml准入受限 Python 集成并新增质量门禁 +3/-0

准入受限 Python 集成并新增质量门禁

• 允许 application 层仅在 agent-runtime integration 场景使用 Python。新增 PY-1 和 PY-2,要求 ruff 零差异、提交 uv lock、pytest 全绿并钉定依赖版本。

governance/policy/languages.yaml

@randypanding
randypanding merged commit d444eab into main Aug 19, 2026
8 of 9 checks passed
@randypanding
randypanding deleted the adr-0025-agent-platform branch August 19, 2026 16:31
@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. PY-1 未检查格式 🐞 Bug ≡ Correctness
Description
PY-1 将 ruff check 描述为同时保证 lint 和 format 零差异,但该命令只运行 Ruff linter,未格式化的 Python 代码仍可满足这条规则。格式门禁必须另外执行
ruff format --check
Code

governance/policy/languages.yaml[41]

+  - {id: PY-1, lang: python, rule: "ruff check 通过(lint+format 零 diff)", enforcement: gate}
Relevance

●●● Strong

命令未执行格式检查,属于明确的门禁语义错误;团队近期接受类似治理正确性修正。

PR-#49
PR-#50

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
该政策将 enforcement: gate 定义为 CI 拦截,并在 PY-1 中把 ruff check 与“lint+format 零 diff”绑定;Ruff 官方文档说明
formatter 的检查入口实际是独立的 ruff format --check

governance/policy/languages.yaml[2-3]
governance/policy/languages.yaml[41-41]
🌐 Ruff formatter 文档说明格式检查需运行 ruff format --check,并明确 linter 与 formatter 是独立入口。

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
PY-1 声称执行 lint 和 format 门禁,但只指定了 lint-only 的 `ruff check`。

## Issue Context
Ruff 的格式检查使用独立命令 `ruff format --check`;应让政策明确要求两条命令,避免下游 CI 仅实现 lint。

## Fix Focus Areas
- governance/policy/languages.yaml[41-41]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
✅ Compliance rules (platform): 7 rules
✅ Web pages:
  +2 more
Review mode: ⚖️ Balanced: 这是治理配置与策略准入的行为性变更,涉及仓库登记、外部依赖、bootstrap 豁免及 Python 准入规则,影响面跨多个配置文件,不能视为纯文档或低风险局部修改。

Grey Divider

Tip of the day
💡 Did you know, you can show, collapse, or hide each part of a finding: code, evidence, and all

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

- {id: TS-2, lang: typescript, rule: "禁 any(eslint)", enforcement: gate}
- {id: TS-3, lang: typescript, rule: "跨模块仅 import 入口 index.ts(depcruise)", enforcement: gate}
- {id: BAML-1, lang: baml, rule: "prompt 变更必须过 golden test", enforcement: gate}
- {id: PY-1, lang: python, rule: "ruff check 通过(lint+format 零 diff)", enforcement: gate}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

1. Py-1 未检查格式 🐞 Bug ≡ Correctness

PY-1 将 ruff check 描述为同时保证 lint 和 format 零差异,但该命令只运行 Ruff linter,未格式化的 Python 代码仍可满足这条规则。格式门禁必须另外执行
ruff format --check
Agent Prompt
## Issue description
PY-1 声称执行 lint 和 format 门禁,但只指定了 lint-only 的 `ruff check`。

## Issue Context
Ruff 的格式检查使用独立命令 `ruff format --check`;应让政策明确要求两条命令,避免下游 CI 仅实现 lint。

## Fix Focus Areas
- governance/policy/languages.yaml[41-41]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

randypanding added a commit that referenced this pull request Aug 25, 2026
#370)

§15:ref→main 改版(ADR-0083)后钉点仍走 tag 解引用——refs/tags/main 恒
404,每日 drift 误报"解引用/校验失败";且 ref_commit 字段已删,jq 裸取
得字符串 "null"。改为 sha/branch/tag 三形态:分支先解 heads(移动指针无
commit 绑定可比,只验可达性),tag 保留 ref_commit 移动检测;并补"审判源
文件存在性后验"(expected-state.workflows[] 每个文件在钉点 ref 上真实存
在——文件被删=required workflow 静默失效,即时检出不等 §12 采样兜底)。

§12:adversary 08-24 才上线,旧分类器只对 org-gate 做生效时刻区分——
生效前完结 CI 的 PR head 缺 adversary 被误报 (b) 裸奔。泛化为 CHECK_EFFECTIVE
锚点表(org-gate/adversary 各带时戳),锚点后无 PR 活动=(a)待接入;
(b) 检出灵敏度不变(test-ir0002 5/5)。

连带消一项真漂移:agent-registry PR#88 auto-merge 54h 卡死(退役归档仓
死信,ADR-0085)——已解档关闭 #88/#78 后复档。

Co-authored-by: randypanding <randypanding@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant