alibaba / alibaba/spring-cloud-alibaba

Proposal: Add AGENTS.md for AI-assisted development

Open
#4,313 5 comments 1 reaction 0 assignees View on GitHub
contribution welcome help wanted
Dominant language
Java
Stars
29.2k
Forks
8.5k
Avg merge
1d 23h
Merged PRs (30d)
12

Description

## Background

AI coding tools (Cursor, Copilot, Qoder, etc.) are becoming part of everyday development workflows. These tools rely on an `AGENTS.md` file in the repository root to understand project-specific context — build commands, conventions, debugging tips, and architectural decisions that aren't obvious from code alone.

Adding an `AGENTS.md` to Spring Cloud Alibaba will help community contributors use AI tools more effectively when submitting PRs, fixing bugs, and diagnosing issues.

## Proposal

Create and maintain an `AGENTS.md` at the repository root, built collaboratively by the community. Below are the proposed sections with example content to illustrate the expected depth and style.

### 1. Project Structure & Module Layout

Describe the high-level directory structure, what each top-level module is responsible for, and how modules relate to each other. This section should evolve as the project adds or removes modules.

**Example:**

> ```
> spring-cloud-alibaba/
> ├── spring-cloud-alibaba-starters/ # Core starter modules, one per component
> │ ├── spring-cloud-alibaba-commons/ # Shared utilities used by all starters
> │ ├── spring-alibaba-nacos-config/ # Nacos config core logic
> │ ├── spring-cloud-starter-alibaba-nacos-config/ # Starter that users depend on
> │ └── ...
> ├── spring-cloud-alibaba-tests/ # Integration tests (require external services)
> ├── spring-cloud-alibaba-examples/ # Runnable example applications
> ├── spring-cloud-alibaba-dependencies/ # BOM for dependency management
> └── spring-cloud-alibaba-coverage/ # JaCoCo coverage aggregation
> ```
>
> Key distinction: `spring-alibaba-nacos-config` contains core logic, while `spring-cloud-starter-alibaba-nacos-config` is the user-facing starter that depends on it. This pattern applies to other components as well.

### 2. Troubleshooting & Debugging

Per-component guidance on how to reproduce, test, and diagnose issues. Include pointers to example projects, test utilities, and diagnostic tools.

**Example:**

> For Nacos-related issues, use the example applications under `spring-cloud-alibaba-examples/nacos-example/` to reproduce the problem. To quickly spin up a Nacos server, use [nacos-setup](https://nacos.io/en/docs/latest/quickstart/quick-start/?spm=5238cd80.1f77ca18.0.0.1839e37ewKGNCY#21-one-click-deployment-with-nacos-setup-recommended) for one-click deployment. When the codebase lacks debug-level logging for a specific path, attach [Arthas](https://arthas.aliyun.com/) to the running process for runtime diagnostics.

### 3. Module Dependency & Impact Scope

Document which modules are affected when a specific module changes, so AI tools can determine the right scope for testing and validation.

**Example:**

> Changes to `spring-cloud-alibaba-commons` potentially affect **all** starter modules — always run a full build (`./mvnw clean install`) after modifying shared code. Changes to `spring-alibaba-nacos-config` require verifying behavior in `spring-cloud-starter-alibaba-nacos-config` as well.

### 4. Testing Strategy

Describe what level of testing is expected for different types of changes, and any external dependencies required.

**Example:**

> Integration tests under `spring-cloud-alibaba-tests/` require running external services (Nacos, RocketMQ, etc.). For local development, start the required service before running tests. Unit tests in each module's `src/test/java/` should not depend on external services.

### 5. Common Mistakes & Anti-Patterns

Capture recurring issues from community PRs so AI tools can avoid them proactively.

**Example:**

> - Do NOT hardcode version numbers in child module `pom.xml` files. The project uses `flatten-maven-plugin` with `${revision}` for CI-friendly versioning.
> - Checkstyle validation runs at the Maven `validate` phase. Always run `./mvnw compile` before pushing to catch violations early.

## How to Contribute

This is a community co-build effort. You can contribute by:

- Picking any section above and submitting a PR with detailed, experience-based content
- Adding new sections that you think would help AI tools understand this project better
- Improving existing examples with more specific commands, links, or workflows

All contributions should focus on **practical, actionable knowledge** — things that aren't obvious from reading the code or README alone.

**Note:** The sections above are just a rough reference, not the final structure. We welcome all community members to brainstorm, share ideas, and actively contribute to building this together.

Contributor guide

No contributing guide indexed for this repository

Research direction

Create the repository-root AGENTS.md and review the project structure, Maven commands, and testing guidance described in the issue. Use ./mvnw compile and ./mvnw clean install as the documented validation commands, and cover the proposed module layout, troubleshooting, impact scope, testing strategy, and common mistakes. Done means a practical, maintainable guide exists with actionable project-specific content.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
developer-experience, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.