通用脚本要靠工具适配器接入

**跨 agent 的通用脚本不会被某个工具自动执行。** 要让 Claude 启用它,必须有**工具专属 hook 适配层**:在 `settings` 里注册的是适配器,不是通用脚本本身。

调用链

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 会向上查找项目根,更稳。

可迁移的判断

「一套内容,多端消费」时,分层是:中立数据源 → 每端一个薄适配器 → 各端注册点。把某一端的格式要求写进通用脚本,等于把通用件绑死在单个工具上。

相关