From fb8761a5463c978e9dc1afcd9d743166466470da Mon Sep 17 00:00:00 2001 From: baozaotumao Date: Tue, 2 Jun 2026 03:22:00 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A1=B9=E7=9B=AE=E7=BA=A7=20/coauthor?= =?UTF-8?q?=20=E6=96=9C=E6=9D=A0=E5=91=BD=E4=BB=A4=E5=88=87=E6=8D=A2=20Cla?= =?UTF-8?q?ude=20=E7=BD=B2=E5=90=8D=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - template/.claude/commands/coauthor.md.jinja:生成项目自带 /coauthor on|off|status, 薄包装调用 ./scripts/claude-attribution.sh,Claude Code 里打 / 即可发现 - 仅本项目生效,不装全局、不影响用户其它项目(install-skill.sh 未改) - 两个脚本不变(开关 + 门禁);终端/CI 仍可直接用脚本 - README 署名章节补 /coauthor 用法 + 文件树补 coauthor.md.jinja 验证:仅后端/全栈两配置均生成 coauthor.md + 两脚本;命令体动作 off/on/status 读写 git config 正确;~/.claude/commands 未受影响;check-docs 通过。 --- README.md | 15 +++++++++++-- template/.claude/commands/coauthor.md.jinja | 25 +++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 template/.claude/commands/coauthor.md.jinja diff --git a/README.md b/README.md index 6af713c..4119ac1 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,17 @@ domain/(实体+值对象+端口 Protocol) → application/services → infrastru ## Claude 署名策略(每个生成项目自带) -控制提交信息里是否包含 `Co-Authored-By: Claude` 署名。**默认 off(不含)**,由 commit-msg 门禁每次提交强制执行。 +控制提交信息里是否包含 `Co-Authored-By: Claude` 署名。**默认 off(不含)**,由 commit-msg 门禁每次提交强制执行。仅本项目生效。 + +在 Claude Code 里(项目自带斜杠命令,打 `/` 即可找到): + +``` +/coauthor status # 查看当前策略 +/coauthor off # 不含署名(默认) +/coauthor on # 保留署名 +``` + +或在终端直接用脚本(CI / 不用 Claude 时): ```bash ./scripts/claude-attribution.sh status # 查看当前策略 @@ -178,7 +188,8 @@ scaffold/ │ ├── claude-attribution.sh ← 开关:本项目提交是否含 Claude 署名(默认 off) │ └── check-claude-attribution.sh ← commit-msg 门禁:按开关移除/保留署名 ├── .claude/commands/ - │ └── new-feature.md.jinja ← 项目内命令:按规则引导生成功能分层代码 + │ ├── new-feature.md.jinja ← 项目内命令:按规则引导生成功能分层代码 + │ └── coauthor.md.jinja ← 项目内命令:/coauthor 切换 Claude 署名开关 ├── .claude/rules/ │ ├── # 原理层(10 个,静态,始终复制) │ ├── architecture.md / ddd.md / design-discipline.md ... diff --git a/template/.claude/commands/coauthor.md.jinja b/template/.claude/commands/coauthor.md.jinja new file mode 100644 index 0000000..24bbd64 --- /dev/null +++ b/template/.claude/commands/coauthor.md.jinja @@ -0,0 +1,25 @@ +设置本项目提交是否包含 Claude 署名(`Co-Authored-By: Claude`)。 + +参数:$ARGUMENTS + +## 行为 + +按参数运行开关脚本并回报结果(参数为空时默认 `status`): + +```bash +./scripts/claude-attribution.sh +``` + +- `off` —— 提交移除 Claude 署名(**默认**) +- `on` —— 提交保留 Claude 署名 +- `status` —— 查看当前策略 + +## 步骤 + +1. 解析参数为 `on` / `off` / `status` 之一;无参或无法识别时用 `status`。 +2. 运行 `./scripts/claude-attribution.sh <参数>`,把输出原样回报给用户。 +3. 一句话说明:策略存于 `git config scaffold.includeClaude`,**仅本项目生效**;由 commit-msg 门禁(pre-commit)每次提交强制执行——`off` 时自动剥除任何 Claude 署名行。 + +## 注意 +- 只改本项目设置,不碰其它项目、不碰全局。 +- 不要手改 `.pre-commit-config.yaml` 或门禁脚本来达到目的——用本命令切换即可。