用途
bonfire-configure 是 Bonfire 体系中的配置技能,用于更改项目设置。它支持定向配置或完整配置,可调整的项包括:规格(specs)保存位置、文档(docs)保存位置、.bonfire/ 目录的 Git 策略、Linear 集成开关,以及 Bonfire 钩子(hooks)的启用。
主要能力
- 解析参数,决定配置模式:无参数为完整交互式配置;
git仅配置 Git 策略;linear仅配置 Linear 集成;hooks仅配置钩子。 - 确保 Bonfire 目录存在:若
<git-root>/.bonfire/不存在则创建;若<git-root>/.bonfire/index.md不存在则生成一个最小版本,使 configure 可作为首个入口运行而不留下不完整状态。项目名检测顺序为:package.json 的 name → git remote → 目录名。 - 读取当前配置:读取
<git-root>/.bonfire/config.json(若存在)。 - 检查已有钩子:检查
<git-root>/.claude/settings.json是否已配置 Bonfire 钩子(PreCompact 和/或 PostToolUse 中与 bonfire 相关的命令)。 - 完整配置模式:通过 AskUserQuestion 进行两轮提问。第一轮 4 个问题:规格保存位置(.bonfire/specs/ 默认,或 specs/)、文档保存位置(.bonfire/docs/ 默认,或 docs/)、.bonfire/ 的 Git 处理方式(ignore-all 默认、hybrid、commit-all)、是否启用 Linear 集成(No 默认,Yes 需 linear-cli)。第二轮 1 个问题:是否设置 bonfire 钩子(No 默认,Yes 启用上下文保留与归档建议;若钩子已存在则显示“Yes (already configured)”)。
- 快速模式(git):展示三种 Git 策略并询问选择,仅更新 gitStrategy,保留其他配置值。
- 快速模式(linear):询问是否启用 Linear 集成,仅更新 linearEnabled,保留其他配置值。
- 快速模式(hooks):询问是否设置钩子;若已存在则提示已配置。
- 更新配置:完整配置时用所有字段覆盖写入 config.json;快速模式时与现有配置合并,仅更新变更字段。
- 更新 Git 策略:若 Git 策略或位置变更,更新
<git-root>/.bonfire/.gitignore。ignore-all 写入*与!.gitignore;hybrid 在此基础上,若 docsLocation 为 .bonfire/docs/ 则追加!docs/与!docs/**,若 specsLocation 为 .bonfire/specs/ 则追加!specs/与!specs/**;commit-all 写入data/与scratch/。若从 commit/hybrid 切换到 ignore,会警告已跟踪文件仍会被跟踪,并提供运行git rm -r --cached .bonfire/。 - 设置钩子:若用户选择 Yes 且钩子尚不存在,创建
<git-root>/.claude/目录,读取并保留现有 settings.json 的其他设置,合并写入 Bonfire 钩子。PreCompact 钩子用于在 Claude 压缩对话历史时保留会话上下文;PostToolUse 钩子用于在 PR 合并/关闭后建议运行 /bonfire-archive。若 settings.json 已有其他钩子,会小心合并:保留现有钩子(PreToolUse、PostToolUse、Stop 等),追加 PreCompact 与 PostToolUse 数组。若钩子已存在则跳过此步。 - 确认:报告设置已更新、钩子状态(新配置、已存在或跳过)、需要的手动步骤(如 git 清理)以及新配置摘要。
使用方式
通过技能调用,可传入参数:无参数进行完整配置,或传入 git、linear、hooks 进行单项快速配置。配置过程中通过 AskUserQuestion 交互选择。
适用场景
适用于使用 Bonfire 进行会话上下文管理的项目,需要调整规格/文档位置、控制 .bonfire/ 的 Git 可见性、接入 Linear 或启用 Claude 钩子时。
限制
Linear 集成需要 linear-cli。从 commit/hybrid 切换到 ignore 时,已跟踪文件不会自动取消跟踪,需手动执行 git 清理。其他未在资料中说明的限制暂未提供。