AlexStocks commented on code in PR #3340: URL: https://github.com/apache/dubbo-go/pull/3340#discussion_r3288455283
########## .agents/skills/dubbo-go-domain/SKILL.md: ########## @@ -0,0 +1,164 @@ +--- Review Comment: [P0] 缺少 Apache 2.0 许可证头。Apache 项目要求所有源文件(含 Markdown 文档)包含标准许可证头。dubbo-go 项目 `doc/` 目录下的 Markdown 文件均有许可证头,`.agents/skills/` 目录下也不应例外。 建议:在文件顶部添加: ``` <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. ... --> ``` 全部 19 个文件均需添加。 ########## .agents/skills/dubbo-go-observability-filters/SKILL.md: ########## @@ -0,0 +1,64 @@ +--- +name: dubbo-go-observability-filters +description: >- + Implements and reviews dubbo-go filters, metrics, tracing, logging, and related cross-cutting interception. Use when + the user asks about Filter, Invoke, OnResponse, service.filter, reference.filter, filter chain order, TPS limiting, + active limit, auth, token, access log, Sentinel, Seata, graceful shutdown filters, OpenTelemetry, tracing, + Prometheus metrics, metrics probes, logger integration, or packages filter/, metrics/, otel/, logger/, and + protocol/protocolwrapper/. Do not use for protocol wire behavior unless interception changes the transport contract. +--- + +# dubbo-go Observability and Filters + +## Purpose + +Use this skill to change or explain the filter chain and cross-cutting concerns such as metrics, tracing, logging, rate limiting, auth, and response interception. + +## When to use + +Use for filter registration, filter order, provider or consumer interception, `OnResponse`, TPS strategies, metrics collectors, OpenTelemetry tracing, logging integration, and probe endpoints. + +Do not use for concrete wire protocol behavior unless filter behavior changes the transport contract. + +## Inputs + +Required: +- Filter name, metrics/tracing component, config key, or package path. +- Intended interception or telemetry behavior. + +Optional: +- URL filter params, invocation attachments, context values, metric labels, span output, or log output. + +If missing, inspect `filter/filter.go` and `protocol/protocolwrapper/protocol_filter_wrapper.go`. + +## Workflow + +1. Read `filter/filter.go` for the `Invoke` and `OnResponse` contract. +2. Read `protocol/protocolwrapper/protocol_filter_wrapper.go` for provider and consumer chain construction. +3. Inspect extension registration in `common/extension/filter.go` and any TPS extension files. +4. Read the concrete filter under `filter/`. +5. For metrics, inspect `metrics/` and the `filter/metrics/` integration. +6. For tracing, inspect `filter/otel/`, `filter/tracing/`, and `otel/`. +7. Read `references/filter-observability-flow.md` before changing filter order, metric labels, or span semantics. + +## Output format + +Return filter chain position, provider or consumer side, telemetry contract, changed files, and validation performed. + +## Validation + +- Confirm filter names are registered and selected through `service.filter` or `reference.filter`. +- Confirm filters call the next invoker exactly once unless intentionally short-circuiting. +- Confirm `OnResponse` handles both success and error results. +- Run focused tests such as `go test ./filter/... ./metrics/... ./otel/...`; use `make test` for broad interception changes. + +## Edge cases Review Comment: [P1] 路径引用有误:文档引用 `filter/otel/` 和 `filter/tracing/`,但 dubbo-go 实际代码中 OpenTelemetry 相关代码位于顶级 `otel/` 目录。需核实实际目录结构并修正。 ########## .agents/skills/dubbo-go-domain/references/project-rules.md: ########## @@ -0,0 +1,37 @@ +# dubbo-go Project Rules Review Comment: [P2] project-rules.md 与 domain SKILL.md 的 "Do Not" 和 "Coding Guidelines" 章节内容几乎完全重复。两处维护同一套规则会导致后续更新不一致。 建议:选择一处作为规范权威来源(建议 project-rules.md),SKILL.md 中仅引用而非复制。 ########## .agents/skills/dubbo-go-protocol/SKILL.md: ########## @@ -0,0 +1,64 @@ +--- +name: dubbo-go-protocol +description: >- + Implements and reviews dubbo-go protocol and transport changes. Use when the user asks about Protocol, Invoker, Review Comment: [P1] 协议列表中包含 "HTTP/3 transport",但 dubbo-go 主仓库是否包含 HTTP/3 实现需确认。HTTP/3 支持可能在独立仓库或分支中。若不存在则应删除此引用。 ########## .agents/skills/dubbo-go-cluster/SKILL.md: ########## @@ -0,0 +1,64 @@ +--- +name: dubbo-go-cluster +description: >- + Implements and reviews dubbo-go cluster, routing, directory, and load-balancing changes. Use when the user asks about + failover, failfast, failsafe, failback, forking, broadcast, available, zoneaware, adaptive service, Directory, + RouterChain, condition, tag, script, affinity or Polaris routers, load balance algorithms, retries, provider + selection, or packages cluster/cluster/, cluster/directory/, cluster/router/, and cluster/loadbalance/. Do not use + for registry backend mechanics unless the directory snapshot contract is affected. Review Comment: [P1] cluster 策略列表可能不完整:列出 failover/failfast/failsafe/failback/forking/broadcast/available/zoneaware/adaptive,但需核实 `cluster/cluster/` 目录下所有策略实现。"adaptive" 在 dubbo-go 中通常与 service discovery 相关而非 cluster strategy,需确认。 ########## .agents/skills/dubbo-go-runtime/SKILL.md: ########## @@ -0,0 +1,64 @@ +--- Review Comment: [P2] "runtime" 术语模糊:dubbo-go 代码库中没有 `runtime/` 目录,runtime 概念分散在 `client/`、`server/`、`proxy/`、`graceful_shutdown/` 中。SKILL 名称与代码组织不直接对应。 建议:考虑改名为 `dubbo-go-client-server` 或在文档中更明确地解释 "runtime" 指代哪些包。 ########## .agents/skills/dubbo-go-domain/SKILL.md: ########## @@ -0,0 +1,164 @@ +--- +name: dubbo-go-domain +description: >- + Use this skill when working on the dubbo-go codebase, including implementing features, fixing bugs, writing tests, + reviewing code, updating documentation, or routing work to a narrower dubbo-go-* domain skill. Use for cross-module + questions, end-to-end flows, subsystem boundaries, or deciding whether config, runtime, protocol, registry, metadata, + cluster routing, filters and observability, or tools guidance applies. +--- + +# dubbo-go Project Guide + +## Project Overview + +dubbo-go is the Go implementation of Apache Dubbo. It is an RPC and microservice framework that provides service export and reference, registry and service discovery, protocol interoperability, cluster fault tolerance, traffic governance, configuration, metadata, metrics, tracing, and developer tools. + +It mainly provides: +- Public client and server APIs for Go services. +- Dubbo, Dubbo3, Triple, gRPC, REST, JSONRPC, and related transport support. +- Registry integration with Nacos, Zookeeper, Etcd, Polaris, and application-level service discovery. +- Metadata collection, metadata reporting, service name mapping, routing, load balancing, filters, metrics, tracing, and CLI or code generation tools. + +This repository does not own external registry servers, Dubbo Java implementation, sample applications outside this repository, or production deployment infrastructure. + +## Tech Stack + +- Language: Go, module `dubbo.apache.org/dubbo-go/v3`. +- Go version: `go 1.25.0` in `go.mod`; root `Makefile` uses `GOTOOLCHAIN=go1.25.0+auto` for tests. +- Build: Go modules plus nested Go modules under selected `tools/` directories. +- Test: `go test`, `testify`, `gomock`, and focused package tests. +- Lint and format: `go fmt`, `imports-formatter`, `go vet`, `golangci-lint`, and `make fmt` or `make lint`. Review Comment: [P1] Go 版本声明可疑:文档称 `go 1.25.0`,但截至 2026 年 5 月 Go 1.25 尚未正式发布(通常 8 月发布)。需核实 go.mod 实际内容,若 go.mod 确实写了 1.25.0 则注明这是 toolchain 指令而非最低版本要求。 ########## .agents/skills/dubbo-go-tools/references/tooling-flow.md: ########## @@ -0,0 +1,29 @@ +# Tooling Flow Review Comment: [P2] 工具流程图过于简略,是所有 reference 文档中最短的。缺少 protoc 插件工作流、schema 生成流程等关键信息。建议补充完整的工具链流程,特别是 `protoc-gen-go-triple` 的代码生成管线。 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
