Copilot commented on code in PR #3340: URL: https://github.com/apache/dubbo-go/pull/3340#discussion_r3278820849
########## .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`. + +Do not introduce a new framework or dependency unless the task requires it and the compatibility impact is clear. + +## Repository Structure + +- `dubbo.go`, `loader.go`: public instance and top-level load/start APIs. +- `config/`, `global/`, `config_center/`, `common/config/`: config models, loading, config center, and compatibility behavior. +- `client/`, `server/`, `proxy/`, `graceful_shutdown/`: runtime client/server construction, refer/export, proxy, and shutdown behavior. +- `protocol/`, `remoting/`, `common/url.go`: protocol interfaces, codecs, transports, URL contract, invokers, and exporters. +- `registry/`, `metadata/`: registry discovery, service discovery, metadata, reports, mapping, and revisions. +- `cluster/`: directories, routers, load balancing, and cluster fault tolerance. +- `filter/`, `metrics/`, `otel/`, `logger/`: filters, observability, tracing, metrics, and logging. +- `tools/`: CLI, schema generator, protoc plugins, import formatter, and RPC contract scanner. +- `docs/`, `doc/`: project documentation and images. Review Comment: `docs/` is listed as a repository documentation directory, but the repo currently only has `doc/` (no top-level `docs/` directory). This can mislead readers/tools that rely on these paths; please remove `docs/` from the structure list or add the directory if it’s intended to exist. -- 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]
