跳转至

2026-04-23 学习日志

今日主题

  • MCP 生态管理工具
  • iTerm2 Hotkey Window 跨 Space 行为
  • Superpowers 工作流:specs 与 plans 的语义分层
  • iTerm2 标签页目录继承
  • Claude Code Skill 参数解析与提交流程

新增认知

MCP 生态管理工具

  • MCP server 管理工具已成熟:add-mcp(npx,零安装,支持13+工具)、mcpm(brew,功能最全)、AI Orbiter(Web UI,专解多工具配置碎片化)。
  • Claude Code 的 MCP 配置在 ~/.claude.json(全局)或 .mcp.json(项目级),不在 settings.json 里;Codex 的 MCP 配置在 codex-settings.toml 的 [mcp_servers.*] 块。两种格式不同是跨工具管理的核心障碍。
  • AI Orbiter 用 SQLite 作单一数据源,自动同步写入不同格式的配置文件(JSON/TOML),是目前唯一真正解决多 AI 工具 MCP 配置统一问题的方案。
  • Claude Code 的 skills 管理没有独立 CLI,只能通过文件系统(~/.claude/skills/)或会话内 / + Tab 交互式使用,这和 MCP 有独立工具生态形成对比。

iTerm2 Hotkey Window 跨 Space 行为

  • hotkey window 偶发性跳到其他 Space,根本原因是 macOS 把窗口绑定到了最后一次使用的 Space,触发 hotkey 时系统先切换 Space 再显示窗口。
  • 原生全屏窗口(Native Full Screen)强绑定 Space,若 hotkey profile 在全屏状态下会必然触发 space switch;改用非原生全屏可规避。
  • 开启 Floating Window(Profiles → Keys → Configure Hotkey Window → Floating Window)可让窗口以浮动层形式出现在当前 Space,不触发 macOS 的 space 切换逻辑。
  • 推荐配置组合:Floating Window 开启 + Space 设为 All Spaces + Screen 设为 Screen with Cursor + Dock Assign To None,目前社区成功率最高。

Superpowers 工作流:specs 与 plans 的语义分层

  • specs/ 是设计文档('做什么+为什么'),内容是背景、目标、方案思路,讨论性语言,不规定具体步骤;对应 brainstorming 阶段的产出。
  • plans/ 是实施计划('怎么做'),内容是 checkbox 任务清单 + 受影响文件列表,可直接驱动 Agent 执行;对应 writing-plans 阶段的产出,被 executing-plans / subagent-driven-development 消费。
  • 两者构成流水线:需求 → brainstorming → specs/xxx-design.md → writing-plans → plans/xxx.md → executing-plans → 实际代码 → verification + code-review。设计和执行在文件层面严格分离。

iTerm2 标签页目录继承

  • iTerm2 新 Tab 不继承 Window 的 Profile 设置(如起始目录、Shell),因为每个 Tab 实际上独立创建新会话,Profile 的 Working Directory 配置决定了新标签的行为。
  • 解决方式是 Preferences → Profiles → General → Working Directory 设为 Reuse previous session's directory,让新标签复用当前标签的工作目录,而非使用 Profile 的默认目录。

Claude Code Skill 参数解析与提交流程

  • 用户输入 '/skill-name args' 按第一个空格切割为 commandName 和 args,args 是空格后的全部原始字符串,不做语义拆分。
  • 参数替换有 5 级优先级:命名参数() > 索引参数() > 简写() > 全量() > 兜底追加(ARGUMENTS: xxx)。兜底机制保证即使 SKILL.md 没有任何占位符,参数也不会丢失。
  • 最终提交给 LLM API 的消息由 4 部分组成:用户可见的 loading 消息、isMeta=true 的 SKILL.md 全文(含参数替换后内容)、附件消息、权限声明。SKILL.md 内容对用户不可见但对模型可见。
  • arguments frontmatter 支持命名参数声明(如 'arguments: foo bar'),这使 / 能精准替换到 SKILL.md 的指定位置,比末尾追加更可控,是推荐的做法。
  • Skill 有两条触发路径:用户手动输入 '/' 前缀和模型通过 SkillTool 工具调用,两者最终汇合到同一个 getPromptForCommand → substituteArguments 流程。