Skip to content

docs: 新增 AGENTS.md(仓库定位 + 四语言日志/指标接入指引,跨 agent 通用) - #6

Open
TangJia025 wants to merge 5 commits into
mainfrom
docs/2061-claude-md
Open

docs: 新增 AGENTS.md(仓库定位 + 四语言日志/指标接入指引,跨 agent 通用)#6
TangJia025 wants to merge 5 commits into
mainfrom
docs/2061-claude-md

Conversation

@TangJia025

@TangJia025 TangJia025 commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

新增根目录 AGENTS.md:既是 AI coding agent 在本仓库的作业指引,也是新人接手的速览。

为什么用 AGENTS.md 而不是 CLAUDE.md

指引内容与工具无关,不该绑定单一 agent。

  • AGENTS.md 是跨工具约定 —— opencode / Codex / Cursor 等都读它。opencode 官方规则文档明确:同目录下 AGENTS.mdCLAUDE.md 并存时只读 AGENTS.md
  • Claude Code 不原生读 AGENTS.md(官方 memory 文档:"Claude Code reads CLAUDE.md, not AGENTS.md",原生支持目前仍是 open feature request)。官方给的兼容方式有两种:@AGENTS.md 导入,或符号链接。
  • 这里选导入:符号链接在 Windows 需要管理员/开发者模式,本仓库贡献者可能用 Windows,导入没有这个约束。

因此 CLAUDE.md 退化为 5 行导入壳,正文只在 AGENTS.md 一处维护,不会两处漂移。

内容

仓库定位 — 可观测薄封装 SDK monorepo(log + metrics,不自研 instrumentation),格式由 spec/ 契约层统一约束。

铁律(7 条) — spec 是唯一事实来源 / 薄封装 / 首期只做 log+metrics(trace_id/span_id 仅预留)/ 契约改动四语言同步 / 日志只支持 kv 传参禁止 printf / 高基数值禁做 metrics label / community 只在可信判定点解析。每条都附了「为什么」,避免后人当成教条绕过。

契约速查 — 字段顺序、time 固定毫秒 UTC(Z,非 +00:00、非纳秒)、level 小写、logger/error 语义、community 双层注入与取值来源(infrastructureservice.yaml)。

四语言「加日志 / 加指标」代码块 — Init + 打点 + 中间件 + 请求级覆盖,覆盖 Go(含 gin 变体)、Python(含 FastAPI/Flask/Django 适配)、Node、Java。所有签名按各语言源码逐个核对,非凭印象。

Java 专属提醒 — 日志必须用 examples/logback-json.xmlObsJsonProvider,并写明为什么不能退回 encoder 自带 provider(<logLevel/> 只能大写、字段名不可配、不配 <stackTrace/> 会整条丢弃 throwable)。这是 #4 踩过的坑,写进指引以防回归。

构建测试 — 四语言命令 + CI 工具链版本。Go 的版本不硬编码,只写「以 go/go.mod 为准」(CI 用 go-version-file 读它),避免每次升 Go 都要回来改文档。不含任何本机绝对路径,便于团队共享。

说明

  • 分支名 docs/2061-claude-md 是创建时的旧名,未随文件重命名调整(改名会牵动 PR 引用),以 PR 标题与内容为准。

🤖 Generated with Claude Code

AI 使用声明

当前 PR 是否有 AI 参与:

    1. AI Agent 平台:Claude Code
    2. AI 模型:deepseek-v4-flash
    3. Prompt 上下文:用户要求「给本仓库生成 CLAUDE.md,介绍仓库功能以及各语言项目怎么用来给各自添加日志和指标上报」,随后反馈「不要限定 claude code 使用,还有 opencode 等多种 agent」、「子需求要去掉」(经确认后要求恢复)

给 Claude Code 在仓库内的作业指引,也是新人接手的速览:

- 铁律:spec/ 是唯一事实来源、薄封装不自研 instrumentation、首期只做
  log+metrics(trace_id/span_id 仅预留)、契约改动四语言同步、日志只支持
  kv 传参禁止 printf、高基数值禁做 metrics label、community 只在可信判定点解析。
- 契约速查:字段顺序、time 固定毫秒 UTC、level 小写、logger/error 语义、
  community 双层注入与取值来源。
- 四语言各自的「加日志 / 加指标」代码块(Init + 打点 + 中间件 + 请求级覆盖),
  签名均按各语言实际源码核对。
- 写明 Java 日志必须用 examples/logback-json.xml 的 ObsJsonProvider 及原因,
  避免后人退回 encoder 自带 provider(会丢 throwable、字段名/级别不符)。
- 构建测试命令与 CI 工具链版本(Go 取 go.mod、Python 3.10、Node 20、Java 17);
  不含任何本机绝对路径,便于团队共享。

注意:文中 kv-only 日志与 Java ObsJsonProvider 描述的是 PR #4 合入后的状态。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@opensourceways-bot

Copy link
Copy Markdown

Welcome To opensourceways Community

Hey @TangJia025 , thanks for your contribution to the community.

Bot Usage Manual

I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.

Contact Guide

If you have any questions, please contact the SIG: infratructure ,
and any of the maintainers: @GeorgeCao-hw, @TangJia025, @pkking, @zhongjun2 ,
and any of the committers: @GeorgeCao-hw, @TangJia025, @pkking, @zkhzkhz .

@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TangJia025, thanks for your pull request. All authors of the commits have signed the CLA. 👍

@opensourceways-bot

Copy link
Copy Markdown

Linking Issue Notice

@TangJia025 , the pull request must be linked to at least one issue.
If an issue has already been linked, but the needs-issue label remains, you can remove the label by commenting /check-issue .

原写「Go 取 go/go.mod 的版本(1.22)」,但 #3 已把 go.mod 升到 1.25.0,
括号里的数字当场过期。改为只说明来源(CI 用 go-version-file 读 go.mod),
避免每次升 Go 都要回来改文档。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TangJia025, thanks for your pull request. All authors of the commits have signed the CLA. 👍

AGENTS.md 是跨工具约定(opencode / Codex / Cursor 等均读它),open 且不绑定厂商;
opencode 官方规则文档明确:同目录下 AGENTS.md 与 CLAUDE.md 并存时只读 AGENTS.md。
故把内容迁到 AGENTS.md(git mv 保留历史),措辞改为「AI coding agent 通用指引」。

Claude Code 不原生读 AGENTS.md(官方 memory 文档:Claude Code reads CLAUDE.md,
not AGENTS.md,原生支持仍是 open feature request),官方给的兼容方式是 @AGENTS.md
导入或符号链接。这里用导入 —— 符号链接在 Windows 需管理员/开发者模式,本仓库贡献者
可能用 Windows,导入没有这个约束。

CLAUDE.md 因此退化为 4 行导入壳,正文只在 AGENTS.md 一处维护,不会两处漂移。

同时按反馈去掉「子任务 #2061」引用,只保留需求 #1938。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TangJia025, thanks for your pull request. All authors of the commits have signed the CLA. 👍

@TangJia025 TangJia025 changed the title docs: 新增 CLAUDE.md(仓库定位 + 四语言日志/指标接入指引) docs: 新增 AGENTS.md(仓库定位 + 四语言日志/指标接入指引,跨 agent 通用) Sep 10, 2026
前一个 commit 按反馈去掉了子任务引用,经确认应保留,恢复为与 README.md /
spec/README.md 一致的写法:需求 #1938 + 子任务 #2061。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TangJia025, thanks for your pull request. All authors of the commits have signed the CLA. 👍

原文写的 `go-v1.0.0` 前缀形式 Go 工具链不认:模块根在 go/ 子目录时,
tag 必须是 `go/v1.0.0`(`<子目录>/v<版本>`),否则 `go get` 拉不到该模块。
AGENTS.md 与 README.md 同步更正。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@opensourceways-bot

Copy link
Copy Markdown

CLA Signature Pass

TangJia025, thanks for your pull request. All authors of the commits have signed the CLA. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants