bstack-setup
Installation
SKILL.md
bstack-setup
新设备和偏好变更的唯一入口。本技能只负责发现、询问、写入和同步;每个技能问什么、写成什么结构、怎么验证,写在它自己的 references/setup.md。
配置目录是 ~/.config/bstack/(BSTACK_CONFIG_DIR 可改),JSON 格式。技能只读这个目录,缺文件时用自带的默认值。
流程
- 设备初始化:按下文「设备初始化」同步全局代理规则并体检。用户只想改偏好、本机已初始化过时,跑
--check确认全部就位即可。 - 配置同步:跑
node <技能目录>/scripts/config-repo.mjs status。repo: true:跑pull,失败就停下报告,不要在分叉的配置上继续写。repo: false:问用户是否用私有仓库在各设备同步配置。三种答复:- 新建:
fj repo create bstack-config --private(Forgejo)或gh repo create bstack-config --private(GitHub),取它的克隆地址,跑config-repo.mjs init --remote <url>。 - 已有仓库:
config-repo.mjs clone <url>;目录非空时向用户说明原目录会改名为.bak-<时间戳>保留,确认后加--backup-existing。克隆后对比备份里的文件,有备份里独有的偏好就问用户是否并入。 - 不同步:直接继续,以后随时可以重跑本技能开启。
- 新建:
- 选择技能:跑
node <技能目录>/scripts/discover.mjs,把结果整理成表(技能、配置文件、状态)给用户看,问这次要配置哪些。outdated与broken的技能要提醒;newer说明本机技能比配置旧,先npx skills update -g再配置;invalid是技能自身缺陷,报告即可。 - 逐个配置:完整读取所选技能的
setup.md,按它的步骤提问、写入、验证。一个技能完成后再进行下一个。 - 提交同步:配置目录是仓库时,每个技能写完跑
config-repo.mjs commit -m "chore(<技能名>): <改了什么>"。推送失败时提交会留在本地,报告给用户;下次 commit 会重推。