Files
gaokao-volunteer-system/CONTRIBUTING.md
Hermes Agent b402ad2f33 docs: 补充项目完整文档体系
新增8份核心文档,完善项目文档体系:

新增文档:
- INSTALL.md - 详细安装指南(含常见问题)
- CONTRIBUTING.md - 贡献指南(流程+规范+测试)
- FAQ.md - 30个常见问题解答
- LICENSE.md - MIT许可证+中文免责条款
- docs/API.md - API接口文档(规范检查器API)
- docs/AUTHORS.md - 作者与贡献者
- docs/RELEASE.md - 版本发布说明(v2.0)
- docs/NAVIGATION.md - 文档导航索引

文档体系现已完整:
- 项目入门:README + INSTALL + TUTORIAL
- 规则参考:provinces + ERRORS
- 开发指南:DEVELOPMENT + ARCHITECTURE + API
- 用户支持:FAQ + NAVIGATION
- 项目管理:CHANGELOG + CONTRIBUTING + LICENSE
- 版本信息:RELEASE + AUTHORS

总计23+份文档,约145KB
2026-06-11 20:03:25 +08:00

351 lines
5.9 KiB
Markdown
Raw 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.
# 贡献指南
感谢您对高考志愿填报项目的关注!我们欢迎任何形式的贡献。
---
## 🤝 如何贡献
### 1. 发现新问题
- 在真实咨询中发现新的错误模式
- 提出流程优化建议
- 报告Bug
### 2. 改进现有功能
- 修复已知Bug
- 优化算法
- 完善文档
### 3. 添加新功能
- 增加省份支持
- 添加新检查规则
- 开发新工具
### 4. 分享经验
- 记录真实案例
- 总结优化经验
- 编写教程
---
## 📋 贡献流程
### 步骤1Fork项目或本地分支
```bash
# 创建分支
git checkout -b feature/你的功能名称
# 或
git checkout -b fix/bug描述
```
### 步骤2进行修改
#### 如果是修复错误模式
```bash
# 1. 编辑错误模式库
nano rules/errors/ERRORS.md
# 2. 添加测试用例
cp tests/cases/template.md tests/cases/你的测试.md
# 3. 更新规则文件
# 修改 skills/gaokao-spec-checker/scripts/spec_checker_v2.py
# 4. 添加测试
# 修改 tests/test_all.py
```
#### 如果是优化Skill
```bash
# 1. 编辑Skill文件
nano skills/gaokao-college-advisor/SKILL.md
# 2. 更新案例
cp skills/gaokao-college-advisor/cases/TEMPLATE.md \
skills/gaokao-college-advisor/cases/新案例.md
# 3. 运行测试
python3 tests/test_all.py
```
### 步骤3提交更改
```bash
# 查看修改
git status
# 添加文件
git add .
# 提交(遵循提交规范)
git commit -m "fix: 修复XXX错误模式
- 问题XXX
- 原因XXX
- 修复XXX
- 测试新增测试用例test_xxx"
```
### 步骤4同步到项目
```bash
# 切换到主分支
git checkout main
# 合并分支
git merge feature/你的功能名称
# 推送(如果有远程)
git push origin main
```
---
## 📝 提交规范
### 提交类型
| 类型 | 用途 | 示例 |
| ---------- | -------- | ------------------------ |
| `feat` | 新功能 | `feat: 新增山东规则` |
| `fix` | Bug修复 | `fix: 修正浙江模式检测` |
| `docs` | 文档更新 | `docs: 更新README` |
| `style` | 代码格式 | `style: 格式化Python` |
| `refactor` | 重构 | `refactor: 优化检查逻辑` |
| `test` | 测试相关 | `test: 新增湖南测试用例` |
| `chore` | 其他 | `chore: 更新gitignore` |
### 提交信息格式
```
<类型>: <简短描述>
<详细说明(可选)>
- <变更点1>
- <变更点2>
- <测试情况>
```
### 示例
```bash
# 好的提交
git commit -m "feat: 新增山西规则支持
- 添加山西省到PROVINCE_RULES
- 包含院校专业组模式45个志愿
- - - - - - - - - - - - - - - - - - -
测试:本地测试通过
数据:待官方核实"
# 不好的提交
git commit -m "修改了一些内容"
```
---
## 🎯 贡献类型详解
### 添加新省份
1. **编辑规则文件**
```python
# skills/gaokao-spec-checker/scripts/spec_checker_v2.py
PROVINCE_RULES["新省份"] = {
"mode": "院校专业组",
"max_volunteers": 45,
"max_majors_per_group": 6,
...
}
```
2. **添加文档**
```markdown
# rules/provinces/新省份.md
## 山西省2026年高考规则
- 志愿数45个
- 模式:院校专业组
...
```
3. **添加测试**
```python
# tests/cases/新省份-XXX.md
- 标准方案
- 错误方案
```
4. **更新说明**
- [ ] CHANGELOG.md
- [ ] README.md省份列表
### 发现新错误模式
1. **记录错误**
```markdown
# rules/errors/ERRORS.md
### E###<错误名称>
- **症状**<描述>
- **正确**<应该是>
- **场景**<何时出现>
- **修复**<如何修正>
- **首次发现**YYYY-MM-DD
- **报告人**@用户名
```
2. **更新检查器**(如果需要代码检测)
```python
# skills/gaokao-spec-checker/scripts/spec_checker_v2.py
# 在_check_xxx方法中添加检测逻辑
```
3. **添加测试**
```python
# 在tests/test_all.py中添加测试函数
```
### 真实案例
1. **复制模板**
```bash
cp docs/case-studies/TEMPLATE.md \
docs/case-studies/case-###.md
```
2. **填写案例**
```markdown
## 案例###<简述>
**咨询时间**YYYY-MM-DD
**用户信息**...
**方案生成**...
**后续动作**...
**教训总结**...
```
---
## 🧪 测试要求
### 提交前必须
- [ ] 所有自动化测试通过
- [ ] 手动测试通过
- [ ] 文档已更新
- [ ] 提交信息符合规范
### 运行测试
```bash
# 全部测试
python3 tests/test_all.py
# 单省份测试
python3 skills/gaokao-spec-checker/scripts/spec_checker_v2.py
# 手动验证
python3 ~/.local/bin/gaokao-checker tests/cases/hunan-578.md
```
---
## 🎨 代码规范
### Python规范
- 遵循 PEP 8
- 函数必须有 docstring
- 关键逻辑添加中文注释
- 类型提示Python 3.10+
### Markdown规范
- 标题层次清晰
- 表格对齐
- 代码块标注语言
### 命名规范
- 目录:`lowercase-hyphen`
- 文件:`lowercase_underscore` 或 `lowercase-hyphen`
- 类:`PascalCase`
- 函数/变量:`snake_case`
---
## 📞 联系方式
### 报告问题
- 在文件中记录错误模式
- 提交PR修复
- 更新FAQ
### 讨论功能
- 在优化日志中记录
- 更新未来规划
- 提交讨论Issue
---
## 📜 行为准则
### 我们欢迎
- ✅ 建设性的批评
- ✅ 真诚的建议
- ✅ 真实的案例
- ✅ 严谨的态度
### 我们不接受
- ❌ 人身攻击
- ❌ 虚假信息
- ❌ 不专业的态度
- ❌ 数据造假
---
## 🏆 贡献者荣誉
### 贡献类型
| 类型 | 说明 | 标记 |
| -------- | -------------- | ---- |
| 错误发现 | 发现新错误模式 | 🔍 |
| 代码贡献 | 修复Bug/新功能 | 💻 |
| 文档编写 | 完善文档 | 📝 |
| 案例分享 | 真实咨询案例 | 📖 |
| 测试验证 | 测试和验证 | ✅ |
---
**感谢每一位贡献者!**
---
**版本**: v2.0
**最后更新**: 2026-06-11