通用脚本要靠工具适配器接入
调用链
Claude SessionStart
-> .claude/settings.local.json # 注册点
-> .claude/hooks/session-brief.js # Claude 适配器
-> .agent/scripts/agent-brief.js # 跨 agent 通用脚本
适配器用环境变量(AGENT_BRIEF_JSON=1)让通用脚本切换输出格式——产出 Claude hook 需要的 JSON(hookSpecificOutput.hookEventName + additionalContext)。通用脚本保持中立,格式差异由适配器决定。
为什么保留 wrapper,而不是直接注册通用脚本
不要在 settings 里直接写:
"command": "node \"$CLAUDE_PROJECT_DIR/.agent/scripts/agent-brief.js\""
因为 Claude 可能从 .claude/worktrees/* 里启动,此时 $CLAUDE_PROJECT_DIR/.agent/... 可能不存在。wrapper 会向上查找项目根,更稳。
可迁移的判断
「一套内容,多端消费」时,分层是:中立数据源 → 每端一个薄适配器 → 各端注册点。把某一端的格式要求写进通用脚本,等于把通用件绑死在单个工具上。
相关
- 多Agent协作控制面 —— 入口统一之后,还得有工具适配层才能跑通
- 作者是AI时协议要唯一规范答案 —— 同为「中立源 + 薄适配,格式差异不进通用件」
- 分层要落到运行时才有效 —— 本条是该骨架的一处实例:适配器不写,通用件就不会被调用