Skip to content

Commit 7b868ee

Browse files
author
Ubuntu
committed
docs: add AGENTS.md to define development standards and workflows for AI assistants
1 parent c185a84 commit 7b868ee

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# AI 助手开发协作指南 (AGENTS.md)
2+
3+
本文件定义了 **xops-cli** 项目的开发流程、质量标准和协作规范。所有 AI 助手(包括当前及未来的会话)在执行任务前必须仔细阅读并严格遵守。
4+
5+
---
6+
7+
## 🚀 1. 开发工作流 (Workflow)
8+
9+
项目采用 **Research -> Strategy -> Execution** 三阶段流程。
10+
11+
### 阶段一:研究 (Research)
12+
- 必须首先通过 `go build``go test` 确认当前环境状态。
13+
- 使用 `grep` 分析受影响的代码上下文。
14+
15+
### 阶段二:策略 (Strategy)
16+
- 提出具体的修改方案,说明对依赖和架构的影响。
17+
- 方案必须考虑到对 `go.mod``ci.yml` 的兼容性。
18+
19+
### 阶段三:执行与验证 (Execution & Validation)
20+
- **强制性规则**:在任何 `git push` 或提交 PR 之前,必须在本地终端执行并成功通过以下命令:
21+
1. `go build ./...` (确保编译通过)
22+
2. `go test ./...` (确保逻辑正确)
23+
3. `golangci-lint run ./...` (确保代码质量 0 Issues)
24+
- **配置校验**:修改 `.golangci.yml` 后,必须运行 `golangci-lint config verify` 进行格式检查。
25+
26+
---
27+
28+
## 🛠️ 2. 技术栈与环境 (Tech Stack)
29+
30+
- **语言**:Go 1.25+ (严禁降级)
31+
- **Linter**:golangci-lint v2.x (遵循版本字符串格式 `version: "2"`)
32+
- **配置管理**`.golangci.yml`
33+
- **自动化**:GitHub Actions (CI/CD), GitHub Dependabot
34+
35+
---
36+
37+
## 🎨 3. 代码规范 (Coding Standards)
38+
39+
### 3.1 命名规范 (Naming)
40+
- 遵循 Go 社区的缩写命名惯例:**ID, URL, SSH, CLI, SFTP, TCP** 必须全大写。
41+
- **禁止使用**`nodeId`, `hostId`, `identityId`
42+
- **必须使用**`nodeID`, `hostID`, `identityID`
43+
44+
### 3.2 错误处理 (Error Handling)
45+
- **不准静默失败**:所有返回 `error` 的函数必须被检查。
46+
- **显式忽略**:若确定无需检查(如 CLI 的 `Flush``Close`),必须使用 `_ =``_, _ =` 显式标记,禁止直接留空。
47+
- **错误字符串**:不应以标点符号(如 `!``.`)或换行符结尾。
48+
49+
### 3.3 变量赋值
50+
- 避免 **Ineffectual Assignment**:若变量赋值后不再使用,必须删除或使用下划线忽略。
51+
52+
---
53+
54+
## 📦 4. 依赖与仓库管理
55+
56+
- **Dependabot**:本项目启用了每周一次的依赖自动更新。AI 助手在处理 Dependabot PR 时应优先进行本地 `go build` 验证。
57+
- **Commit 规范**
58+
- `feat: ...` (新功能)
59+
- `fix: ...` (修复)
60+
- `chore: ...` (配置/维护)
61+
- `ci: ...` (流水线修改)
62+
- **Bypass 权限**:仓库设置了强制 PR 规则,但在紧急修复 Lint 或 CI 配置文件时,可利用管理员 Bypass 权限直接推送到 `master`
63+
64+
---
65+
66+
## 🔧 5. 常用命令清单 (Commands)
67+
68+
| 命令 | 用途 |
69+
| :--- | :--- |
70+
| `make build` | 本地编译二进制文件 |
71+
| `make test` | 运行 pkg 目录下所有测试 |
72+
| `golangci-lint run ./...` | 运行全量代码扫描 |
73+
| `golangci-lint run --fix ./...` | 自动修复可修正的 Lint 问题 |
74+
| `gh pr list --author "app/dependabot"` | 查看当前的依赖更新 PR |
75+
76+
---
77+
**提示**:在任何时候,代码的“干净程度”优于实现的“速度”。

0 commit comments

Comments
 (0)