Files
QuiCommit/docs/adr/0004-yes-only-skips-confirmation.md
SidneyZhang c2f914307d feat(ginit): 新增一键初始化本地 Git 仓库命令
`quicommit ginit`(别名 `gi`)离线完成仓库起步:用 git2 建库并确立初始分支、
写最简 README.md、按根目录标志文件装配 .gitignore、按 --add 添加远程,
`--profile` 可选套用已有 Git 配置。在已有仓库上重复执行只补齐缺失项:绝不覆盖
既有的 README.md/.gitignore、绝不改动已有 remote 的地址、不提供 --force、
不创建首个提交。边界取舍见 ADR 0006,命令命名见 ADR 0005。

实现落在新的 src/git/init.rs(9 个 git 层函数)与 src/commands/ginit.rs,
命令层不直接引用 git2,GitRepo 公开接口未改动,其余命令行为不变。
测试:src/git/init.rs 11 条单元测试、tests/ginit_tests.rs 18 条集成测试;
新增 35 个 ginit_* 消息覆盖 7 种语言。

另将 CONTEXT.md 与 docs/adr/ 纳入版本跟踪(.gitignore 放开 adr/ 与
CONTEXT.md 两条忽略规则);RAODMAP.md 除 ginit 条目外还包含此前未提交的
规划条目更新。
2026-10-09 09:36:04 +08:00

1.2 KiB

--yes only skips confirmation; explicit --no-generate for deterministic output

--yes/-y on commit, tag, and changelog now means only "skip interactive prompts" — generation behavior follows config and flags exactly as it would interactively. Previously commit --yes still AI-generated, while tag --yes/changelog --yes silently downgraded to a hardcoded Release vX message or template output when auto-generation was enabled — an undocumented three-way inconsistency. Deterministic non-AI output is now explicit: tag --yes -m <message> (the existing message flag) or changelog --no-generate (new flag, template-based). The tag message fallback (Release {version}) moves into Messages so it is localized.

Considered Options: keep the silent downgrade and only document it (rejected — a flag that claims to skip prompts must not also change what gets generated; it broke CI differently per command); make --yes always generate with no explicit opt-out (rejected — CI users need a deterministic, key-free path, which --no-generate/-m provide).

Consequences: users who relied on tag --yes/changelog --yes to avoid LLM calls must switch to --no-generate (changelog) or -m (tag). Help text and README update accordingly.