feat: Add CLAUDE.md template and changelog skill
Add reusable CLAUDE.md.template with placeholder-based structure for new projects, and add /changelog skill for automated release workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
709aa55b97
commit
398d0348f8
109
.claude/skills/changelog/SKILL.md
Normal file
109
.claude/skills/changelog/SKILL.md
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
---
|
||||||
|
name: changelog
|
||||||
|
description: 一键发版:生成更新日志 → commit → 打 tag,全流程自动化。
|
||||||
|
---
|
||||||
|
|
||||||
|
# Changelog - 一键发版
|
||||||
|
|
||||||
|
> **定位**:发版全流程。`/changelog 0.2.0` 一个命令搞定日志生成 + commit + tag。
|
||||||
|
|
||||||
|
## 用法
|
||||||
|
|
||||||
|
```
|
||||||
|
/changelog <version> # 例: /changelog 0.2.0
|
||||||
|
/changelog # 不传版本号则自动推断
|
||||||
|
```
|
||||||
|
|
||||||
|
## 执行流程
|
||||||
|
|
||||||
|
### 1. 确定版本号
|
||||||
|
|
||||||
|
**有参数**:直接使用用户传入的版本号。
|
||||||
|
|
||||||
|
**无参数**:自动推断。读取最新 tag,按 semver 规则 bump patch 版本 +1。例如当前最新 `v0.1.2` → 推断为 `0.1.3`。若无 tag 则默认 `0.1.0`。
|
||||||
|
|
||||||
|
版本格式:`{major}.{minor}.{patch}`(标准 semver)
|
||||||
|
|
||||||
|
### 2. 获取 Commits
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 找到上一个 tag
|
||||||
|
git tag --sort=-creatordate
|
||||||
|
|
||||||
|
# 读取 commits(从上一个 tag 到 HEAD)
|
||||||
|
git log {prev_tag}..HEAD --oneline --no-merges
|
||||||
|
```
|
||||||
|
|
||||||
|
如果没有上一个 tag,则从初始 commit 开始。
|
||||||
|
|
||||||
|
### 3. AI 总结
|
||||||
|
|
||||||
|
将 commit 列表总结为用户友好的中文更新说明:
|
||||||
|
|
||||||
|
| type | emoji | 说明 |
|
||||||
|
|------|-------|------|
|
||||||
|
| feat | ✨ | 新功能 / 新 Skill |
|
||||||
|
| fix | 🐛 | Bug 修复 |
|
||||||
|
| refactor | ♻️ | 代码重构 |
|
||||||
|
| docs | 📝 | 文档更新 |
|
||||||
|
| chore | 🔧 | 杂项维护 |
|
||||||
|
|
||||||
|
规则:
|
||||||
|
- 每条说明 1 句话,简洁明了
|
||||||
|
- 合并相关的小 commit 为一条
|
||||||
|
- 面向用户描述(不要出现技术细节如文件名、函数名)
|
||||||
|
- summary:一句话概括本次更新的核心主题
|
||||||
|
|
||||||
|
### 4. 展示草稿,等待确认
|
||||||
|
|
||||||
|
```
|
||||||
|
📦 v{version} · {date}
|
||||||
|
{summary}
|
||||||
|
|
||||||
|
✨ 新增 /go 执行按钮 Skill...
|
||||||
|
📝 更新 README 文档格式...
|
||||||
|
🐛 修复仓库 URL 配置...
|
||||||
|
```
|
||||||
|
|
||||||
|
**必须等用户确认或修改后才继续**。
|
||||||
|
|
||||||
|
### 5. 写入文件
|
||||||
|
|
||||||
|
用户确认后,更新 `CHANGELOG.md`:
|
||||||
|
|
||||||
|
- 文件不存在时创建,头部加 `# Changelog` 标题
|
||||||
|
- 将新条目插入已有内容**头部**(标题行之后,最新版本在前),保持现有条目不变
|
||||||
|
- 条目格式:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## v{version} ({YYYY-MM-DD})
|
||||||
|
|
||||||
|
{summary}
|
||||||
|
|
||||||
|
- ✨ xxx
|
||||||
|
- 🐛 xxx
|
||||||
|
- ♻️ xxx
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Commit + Tag
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stage 变更文件
|
||||||
|
git add CHANGELOG.md
|
||||||
|
|
||||||
|
# Commit
|
||||||
|
git commit -m "release: v{version}"
|
||||||
|
|
||||||
|
# 打 tag
|
||||||
|
git tag v{version}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. 完成提示
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ 发版完成!
|
||||||
|
- 📝 CHANGELOG.md: 新增 v{version} 条目
|
||||||
|
- 🏷️ git tag: v{version}
|
||||||
|
|
||||||
|
需要 push 到远程吗?(git push && git push --tags)
|
||||||
|
```
|
||||||
106
CLAUDE.md.template
Normal file
106
CLAUDE.md.template
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
|
||||||
|
## 最重要的事情
|
||||||
|
|
||||||
|
1. **TDD 先行** - fix/feat 必须先写失败测试,红黄绿循环
|
||||||
|
2. **原子提交** - 每个 commit 只做一件事,可独立回滚
|
||||||
|
3. **文档驱动** - feat 改动关联 doc/ 下文档,多输出表格、流程图、ASCII 原型图
|
||||||
|
4. **知识沉淀** - 有价值的迭代沉淀到 CLAUDE.md(拿捏不准主动问我)
|
||||||
|
5. **利用现有工具** - 不重复造轮子,会开车 > 会修车
|
||||||
|
6. **任务结束后追加** - 主人,用不用我沉淀 or git 提交?
|
||||||
|
|
||||||
|
## 项目概述
|
||||||
|
|
||||||
|
**{{项目名称}}** — {{一句话描述}}
|
||||||
|
|
||||||
|
**产品目标**:
|
||||||
|
- {{目标1}}
|
||||||
|
- {{目标2}}
|
||||||
|
- {{目标3}}
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
| 层级 | 技术 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 前端 | {{前端技术}} | {{说明}} |
|
||||||
|
| 后端 | {{后端技术}} | {{说明}} |
|
||||||
|
| 数据库 | {{数据库}} | {{说明}} |
|
||||||
|
| 缓存 | {{缓存方案,如无可删除此行}} | {{说明}} |
|
||||||
|
| AI 服务 | {{AI 服务,如无可删除此行}} | {{说明}} |
|
||||||
|
| 部署 | {{部署方案}} | {{说明}} |
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
{{项目名称}}/
|
||||||
|
├── {{目录1}}/ # {{说明}}
|
||||||
|
│ ├── {{子目录}}/ # {{说明}}
|
||||||
|
│ └── {{子目录}}/ # {{说明}}
|
||||||
|
├── doc/ # 项目文档
|
||||||
|
│ ├── PRD.md
|
||||||
|
│ ├── DevelopmentPlan.md
|
||||||
|
│ └── tasks.md
|
||||||
|
└── {{其他文件}} # {{说明}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
### 开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
{{开发启动命令}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 构建
|
||||||
|
|
||||||
|
```bash
|
||||||
|
{{构建命令}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 测试
|
||||||
|
|
||||||
|
```bash
|
||||||
|
{{测试命令}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 部署
|
||||||
|
|
||||||
|
```bash
|
||||||
|
{{部署命令}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 开发约定
|
||||||
|
|
||||||
|
- **包管理器**: 使用 {{包管理器}}(不是 {{其他包管理器}})
|
||||||
|
- **TDD 流程**: 先写测试再实现,核心业务逻辑覆盖率 100%
|
||||||
|
- **日志规范**: 使用日志管理器,避免 console.log
|
||||||
|
- **知识沉淀**: 将有价值的对话迭代沉淀到文档中,包括:
|
||||||
|
- 重要技术决策和架构演进 → 更新 CLAUDE.md 相关章节
|
||||||
|
- 新功能实现方案 → 更新组件职责、数据流等章节
|
||||||
|
- 踩坑经验和解决方案 → 添加到踩坑经验章节
|
||||||
|
- API 使用技巧和注意事项 → 更新相关技术栈说明
|
||||||
|
|
||||||
|
{{在此添加项目特定的开发约定}}
|
||||||
|
|
||||||
|
## 交互准则
|
||||||
|
|
||||||
|
- 任务彻底结束后,追加一句:**主人,用不用我沉淀 or git 提交?**
|
||||||
|
|
||||||
|
## 踩坑经验
|
||||||
|
|
||||||
|
<!-- 格式示例:
|
||||||
|
|
||||||
|
### {{问题简述}}
|
||||||
|
|
||||||
|
**问题现象**:{{描述现象}}
|
||||||
|
|
||||||
|
**根因**:{{分析根因}}
|
||||||
|
|
||||||
|
**解决方案**:{{解决方案}}
|
||||||
|
|
||||||
|
**注意事项**:{{补充说明}}
|
||||||
|
|
||||||
|
-->
|
||||||
Loading…
x
Reference in New Issue
Block a user