SuperAPI AI 工具集

bonfire-configure

办公与效率

查看项目

更新于 10-16 06:10

技能介绍

用途

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 清理。其他未在资料中说明的限制暂未提供。