Skip to content

Commit 4c2cb7d

Browse files
committed
docs(agents): align repo execution rules
1 parent bfffafd commit 4c2cb7d

1 file changed

Lines changed: 72 additions & 37 deletions

File tree

AGENTS.md

Lines changed: 72 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,73 @@
1-
# Repository Guidelines
2-
3-
## 项目结构与模块组织
4-
- `bin/`:CLI 主入口与核心逻辑。`bin/ling-cli.js` 负责命令分发,`bin/core/` 处理构建/转换,`bin/adapters/` 处理 `gemini`/`codex` 目标差异,`bin/utils/` 放通用工具。
5-
- `scripts/`:维护脚本(如 `clean.js``health-check.sh``postinstall-check.js`)。
6-
- `tests/`:Node 内置测试(`*.test.js`),覆盖 CLI、适配器、生成器、清理与健康检查。
7-
- `docs/``reference/`:规范文档与参考资料。
8-
- `web/`:Next.js 文档站(`web/src` 源码,`web/public` 静态资源)。
9-
- `.agents/`:模板资源源文件(Canonical),供 CLI 投影生成目标项目结构(Gemini -> `.agent/`,Codex -> `.agents/`)。
10-
11-
## 构建、测试与开发命令
12-
- 根项目依赖安装:`npm install`
13-
- 运行测试:`npm test`(等价 `node --test tests`)。
14-
- 健康复检:`npm run health-check`(测试 + CLI 核心链路 + 清理预检)。
15-
- 清理产物:`npm run clean`,预览清理:`npm run clean:dry-run`
16-
- 本地调试 CLI:`node bin/ling.js --version``node bin/ling.js init --target codex --path ./tmp-workspace`
17-
- `web/` 子项目:`cd web && npm install && npm run dev`,发布构建 `npm run build`,代码检查 `npm run lint`
18-
19-
## 代码风格与命名约定
1+
# AGENTS.md
2+
3+
## 沟通与执行
4+
- 全程使用中文。
5+
- 结论必须基于仓库事实、命令输出、测试结果,不凭印象猜测。
6+
- 优先做最小必要修改;不要顺手扩大范围。
7+
- 不要引入静默降级、假成功路径或仅为过测试而写的硬编码。
8+
9+
## 仓库结构
10+
- `bin/`:CLI 主链路。`bin/ling-cli.js` 负责命令分发;`bin/adapters/` 处理 `gemini` / `antigravity` / `codex` 目标差异;`bin/core/` 负责构建与转换;`bin/utils/` 放原子写入、manifest、托管区块等通用能力。
11+
- `.agents/`:仓库内唯一 Canonical 模板源。项目安装时:
12+
- `gemini` / `antigravity` -> 项目内 `.agent/`
13+
- `codex` -> 项目内 `.agents/`
14+
- `.spec/`:Spec 进阶能力的模板、profiles、references 与 skills 源。
15+
- `tests/`:Node 内置测试(`*.test.js`)。
16+
- `docs/`:对外技术文档。
17+
- `reference/`:只保留受管参考资料;当前应跟踪 `reference/official/``reference/docs-archive/`,不要重新引入重复镜像目录。
18+
- `web/`:Next.js 文档站。仅使用 `npm`,不要重新引入 `bun` 工作流。
19+
20+
## 关键实现约束
21+
- `gemini``antigravity` 共用 `.agent/`,但逻辑目标身份必须通过项目内 `.ling/install-state.json` 区分;涉及共享 `.agent/` 的逻辑时,不要退回“默认全算 gemini”的旧行为。
22+
- `codex` 受管目录是 `.agents/`;遗留 `.codex/` 只作为兼容迁移输入,不再作为主输出。
23+
- 全局同步默认目标是 `codex + gemini + antigravity``gemini``antigravity` 不能再互相隐式代管。
24+
- 文档、测试、CLI 帮助文本必须与实际命令行为一致;改命令行为时同步更新 `README.md``docs/TECH.md``docs/PLAN.md` 与相关测试。
25+
26+
## 构建、测试与验证
27+
- 安装依赖:`npm install`
28+
- 全量测试:`npm test`
29+
- CI 主链路验证:`npm run ci:verify`
30+
- 健康检查:`npm run health-check`
31+
- 清理预检:`npm run clean:dry-run`
32+
- Web 文档站检查:`cd web && npm run lint`
33+
- 仅改文档时,至少执行 `git diff --check`;若改 CLI、安装/更新逻辑、状态判定、Spec 或发布链路,必须跑相关测试,默认优先 `npm test`
34+
35+
## 代码风格
2036
- 遵循 `.editorconfig`:默认 4 空格缩进,JSON/YAML 2 空格,LF,UTF-8。
21-
- 根目录 Node 代码以 CommonJS 为主(`require/module.exports`);保持与现有文件风格一致。
22-
- 文件命名使用 kebab-case(如 `managed-block.js``health-check-script.test.js`)。
23-
- 变更 `web/` 代码时,提交前至少执行一次 `cd web && npm run lint`
24-
25-
## 测试规范
26-
- 使用 Node 内置 `node:test` + `node:assert`,测试文件放在 `tests/` 且命名为 `*.test.js`
27-
- 新功能或修复必须补充对应回归测试,尤其是 CLI 参数、索引写入、目标目录生成等高风险路径。
28-
- 当前仓库未设置硬性覆盖率阈值;PR 需说明“新增/更新了哪些测试”与“本地执行结果”。
29-
30-
## 提交与 PR 规范
31-
- 建议采用 Conventional Commits:`type(scope): summary`,例如 `feat(cli): ...``fix(test): ...``docs(readme): ...`
32-
- 单次提交尽量聚焦单一主题(功能、修复、文档分离)。
33-
- PR 需包含:变更背景、核心改动、验证命令与结果;涉及 CLI 行为变化时补充示例命令,涉及 `web/` UI 变更时附截图。
34-
35-
## 配置与安全提示
36-
- 使用 `LING_INDEX_PATH` 可重定向全局工作区索引,便于测试隔离。
37-
- 测试中如需跳过上游检查,可使用 `LING_SKIP_UPSTREAM_CHECK=1`
38-
- 不要提交临时或构建产物(如 `web/.next``web/node_modules``.temp_ag_kit`);可先执行 `npm run clean:dry-run` 自检。
37+
- 根目录 Node 代码保持 CommonJS 风格(`require` / `module.exports`)。
38+
- 文件命名使用 kebab-case。
39+
- 不要加入 Emoji、花哨 Unicode 装饰符或无意义注释。
40+
41+
## 测试要求
42+
- 新功能或行为修正必须补回归测试,优先覆盖:
43+
- CLI 参数与默认目标
44+
- 工作区状态判定
45+
- 全局同步与备份语义
46+
- Spec enable/init/doctor
47+
- 文档与实现的一致性
48+
- 当修改 `reference/` 跟踪策略时,同步更新 `tests/standards-compliance.test.js`
49+
50+
## 参考资料与忽略规则
51+
- 不要提交 `__pycache__/``*.pyc``.DS_Store``.next/`、临时 tarball、临时工作区或其他构建噪声。
52+
- `reference/` 使用白名单忽略策略:保留需要受管的官方资料与归档文档,其余快照默认忽略。
53+
- 不要重新引入 `reference/official-docs/` 这类重复目录;官方资料只保留一份。
54+
55+
## 版本与发布
56+
- npm 包名:`@mison/ling`
57+
- 版本源:`package.json`
58+
- Git 标签格式:`ling-<semver>`
59+
- 发布前默认检查:
60+
- `npm test`
61+
- `npm run ci:verify`
62+
- `npm run health-check`
63+
- `cd web && npm run lint`
64+
- `npm pack --dry-run`
65+
- 发布时同步更新 `CHANGELOG.md`,内容必须覆盖自上一标签以来的实际提交。
66+
67+
## 提交规范
68+
- 使用 Conventional Commits,例如:
69+
- `feat(cli): ...`
70+
- `fix(cli): ...`
71+
- `chore(reference): ...`
72+
- `chore(release): ...`
73+
- 一次提交只做一类事情;功能修正、参考资料清理、版本发布分开提交。

0 commit comments

Comments
 (0)