贡献指南
感谢你对 SuperSpec 的关注!我们欢迎各种形式的贡献。
贡献方式
1. 报告问题
如果你发现了 Bug 或有功能建议:
- 先搜索 现有 Issues,避免重复
- 创建新 Issue,使用合适的模板
- 提供尽可能详细的信息
Bug 报告应包含:
- SuperSpec 版本
- Node.js 版本
- 操作系统
- 复现步骤
- 期望行为 vs 实际行为
2. 参与讨论
- GitHub Discussions - 提问和讨论
- 帮助回答其他用户的问题
3. 改进文档
文档贡献非常有价值:
- 修正错误和拼写
- 改进示例代码
- 添加更多用例说明
- 翻译文档
4. 提交代码
修复 Bug 或添加新功能。
开发环境设置
前置条件
- Node.js 18+
- pnpm 8+
- Git
克隆仓库
bash
git clone https://github.com/asasugar/SuperSpec.git
cd SuperSpec安装依赖
bash
pnpm install构建项目
bash
pnpm build本地链接
bash
# 在 SuperSpec 目录
pnpm dev项目结构
SuperSpec/
├── packages/
│ └── cli/ # CLI 工具主包
│ ├── src/
│ │ ├── commands/ # 命令实现
│ │ ├── utils/ # 工具函数
│ │ └── index.ts # 入口
│ └── templates/ # 模板文件
│ ├── en/ # 英文模板
│ └── zh/ # 中文模板
├── docs/ # 文档站点
└── examples/ # 示例项目贡献流程
1. Fork 仓库
点击 GitHub 上的 Fork 按钮。
2. 创建分支
bash
git checkout -b feature/my-feature
# 或
git checkout -b hotfix/my-fix分支命名规范:
feature/xxx- 新功能hotfix/xxx- Bug 修复docs/xxx- 文档更新refactor/xxx- 重构
3. 开发
进行你的修改,确保:
- 遵循代码风格
- 添加必要的测试
- 更新相关文档
4. 提交
bash
git add .
git commit -m "feat: add new feature"提交消息规范:
<type>(<scope>): <subject>
<body>
<footer>类型 (type):
feat- 新功能fix- Bug 修复docs- 文档style- 格式调整refactor- 重构test- 测试chore- 构建/工具
示例:
feat(cli): add sync command
Add the sync command to save git changes to context.md
for Vibe Coding support.
Closes #1235. 推送
bash
git push origin feature/my-feature6. 创建 Pull Request
- 前往你的 Fork 仓库
- 点击 "New Pull Request"
- 选择目标分支
- 填写 PR 描述
PR 描述应包含:
- 变更说明
- 关联的 Issue
- 测试方法
- 截图(如有 UI 变更)
代码风格
TypeScript
- 使用 ESLint 配置
- 使用 Biome 格式化
- 严格的 TypeScript 类型
bash
# 检查代码风格,并自动修复
pnpm check命名规范
- 文件名:kebab-case(
my-command.ts) - 类名:PascalCase(
MyCommand) - 函数/变量:camelCase(
myFunction) - 常量:UPPER_SNAKE_CASE(
MAX_LINE_COUNT)
注释
- 公共 API 必须有 JSDoc
- 复杂逻辑添加行内注释
- 使用英文注释
typescript
/**
* Creates a new change with the specified name.
* @param name - The name of the change
* @param options - Creation options
* @returns The created change object
*/
export function createChange(name: string, options: CreateOptions): Change {
// Validate name format
if (!isValidName(name)) {
throw new Error('Invalid change name');
}
// ...
}发布流程
维护者负责发布。使用 Changesets 管理版本:
手动发布
bash
# 添加 changeset
pnpm changeset
# 版本更新
pnpm changeset version
# 发布
pnpm changeset publishchangeset-release skill 一键发布
bash
你: /changeset-release行为准则
核心原则:
- 尊重他人
- 建设性沟通
- 包容多样性
获得帮助
- 开发问题:GitHub Discussions
- Bug 报告:GitHub Issues
感谢你的贡献!