`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 条目外还包含此前未提交的 规划条目更新。
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.