Files
xiaoluolyg--god/CONTRIBUTING.zh-CN.md
wehub-resource-sync aa1a5d5763
CI / Release hygiene (push) Waiting to run
CI / Python targeted tests (push) Waiting to run
CI / Frontend build (push) Waiting to run
Pages / Build and deploy public pages (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:18:17 +08:00

108 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 align="center">🤝 为 GOD 做贡献</h1>
<p align="center">
<b>欢迎提 issue 与 PR。</b><br/>
<sub>无论是修一个错别字、加一张地图,还是重写一段 runtime —— 谢谢你。</sub>
</p>
<p align="center">
<a href="CONTRIBUTING.md">🌏 English</a>
</p>
---
## 🧭 你可以怎么贡献
| | |
| --- | --- |
| 🐛 **报 bug** | 提一个 [issue](https://github.com/XiaoLuoLYG/GOD/issues/new),附上复现步骤、截图,以及 `./scripts/god.sh status` 的输出。 |
| 💡 **提需求** | 先提一个 issue,简短描述 + 一段使用场景就够。 |
| 🗺️ **加新地图** | 把文件夹丢到 `agentsociety/custom/maps/<your_map_id>/`,遵循 [`docs/MAP_PACKAGES.zh-CN.md`](docs/MAP_PACKAGES.zh-CN.md)。欢迎 PR。 |
| 🧪 **加新实验** | 把文件夹丢到 `agentsociety/quick_experiments/<your_hypothesis>/<your_experiment>/`。参考 [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.zh-CN.md) 的形态。 |
| ✏️ **改文档** | 修翻译、打磨措辞、加截图、加图示。 |
| 🔌 **接 Runtime** | 欢迎为新的 LLM runtime 或 persona 模板提 adapter PR —— 见 `agentsociety/custom/agents/`。 |
## 🚀 开发环境
```bash
git clone https://github.com/XiaoLuoLYG/GOD.git
cd GOD
./scripts/god.sh start
```
会自动装好 Python 和 Node 依赖,启动完整栈,创建 live session,先跑完第 1 步,
让控制台打开时就是已初始化的小镇。改完代码刷新即可。
常用命令:
```bash
./scripts/god.sh restart # 先干净停止,再重新启动
./scripts/god.sh new-run # 清掉 replay 数据,开一个新 session
./scripts/god.sh status # 查看端口、URL、模型状态
./scripts/god.sh tail # 跟随日志
./scripts/god.sh stop # 停止所有服务
```
## 🌳 分支与 PR 流程
1. Fork 仓库,从 `main` 拉一个 topic 分支。
2. PR 要 **小而聚焦** —— 每个 PR 只做一件事。
3. 跑你改过部分的校验器:
```bash
# 改过地图包
cd agentsociety
uv run python scripts/validate_map_package.py custom/maps/<map_id>
# 改过 Python 服务
cd agentsociety/packages/agentsociety2
uv run pytest
```
4. 把 PR 提到 `main`。正文里写清楚 **改了什么** 和 **为什么**。UI 改动配上截图或短视频效果更好。
5. 耐心等等 —— reviewer 可能在另一个时区。
## 📝 代码风格
- **Python:** 4 空格缩进,必要的地方加类型注解,不要留无用 import。
目前没有强制统一 formatter,跟周围代码风格一致即可。
- **TypeScript / React:** 跟周围组件风格保持一致。
- **行宽:** 合理的地方控制在 **120 字符以内**。
- **不使用前置声明**(项目规则)。
- **注释** 只解释非显然的意图,不要复述代码做了什么。
- **Commit:** 现在时、短主题(约 60 字符)、需要再加正文。
- **文档:** 同时存在 `.md` 和 `.zh-CN.md` 的,改一个就两个都改。
请用地道的中英文,不要直译。
## 🗺️ 提交新地图包 · 检查表
- [ ] 目录名 `agentsociety/custom/maps/<map_id>/`
- [ ] 含 `map.yaml`、`README.md`、`ATTRIBUTION.md`
- [ ] Tiled JSON 包含 `Collisions` 层
- [ ] 所有图块素材路径都落在地图包内
- [ ] `uv run python scripts/validate_map_package.py custom/maps/<map_id>` 通过
- [ ] PR 正文至少附一张截图
## 🧪 提交新实验 · 检查表
- [ ] 目录在 `agentsociety/quick_experiments/<hypothesis>/<experiment>/`
- [ ] `README.md`(英文)+ `README.zh-CN.md`(中文)
- [ ] `init/init_config.json` + `init/steps.yaml`
- [ ] `run.sh` 能用 AgentSociety CLI 拉起实验
- [ ] 如果有操作员脚本,补一份手动运行说明(参考 PKU Trump 实验的模式)
## 📜 License
向 GOD 贡献内容,即表示你同意按 [Apache License 2.0](LICENSE) 授权你的贡献。
集成的上游代码(`agentsociety/`、`jiuwenclaw/`)各自保留了它们的 LICENSE / NOTICE
对应子树仍受其约束。
## 🛡️ 友善些
GOD 是一个小型开源项目。请保持耐心、具体描述,给出你也愿意收到的那种反馈。
我们要做的是一座由 Agent 组成的小镇 —— 也希望围绕它,慢慢长出一个温暖的小社区。
---
<p align="center"><sub>谢谢你让 GOD 变得更好。⭐</sub></p>