Superpowers 源码解读(一):核心架构理解

Superpowers 源码解读(一):核心架构理解

从零开始深入理解 Claude Code 技能系统的设计哲学

前言

Superpowers 是一套为 Claude Code 设计的技能系统,通过 Hook 机制和精心设计的技能定义,让 AI 助手能够更智能地辅助开发工作。作为一个 Java 开发者,我决定深入学习这套系统的源码,理解其设计思想。

本系列第一篇,先从整体架构入手。


📁 本文学习目录

bash 复制代码
.claude-plugin/          # 插件配置
├── plugin.json          # 插件元数据
└── marketplace.json     # 市场配置

hooks/                   # 会话钩子
├── hooks.json          # Hook 触发配置
└── session-start       # 会话启动脚本

skills/using-superpowers/
└── SKILL.md            # 入口技能

项目结构概览

bash 复制代码
superpowers/
├── .claude-plugin/          # 插件配置
├── skills/                  # 核心技能定义(14个技能)
├── hooks/                   # 会话钩子
├── agents/                  # 子代理定义
├── tests/                   # 测试用例
├── docs/                    # 文档
└── commands/                # 已废弃的命令

一、插件配置

1.1 plugin.json - 插件元数据

json 复制代码
{
  "name": "superpowers",
  "description": "...",
  "version": "5.0.5"
}

关键字段:

  • name : 技能命名空间前缀,如 superpowers:brainstorming
  • description: 影响搜索和发现
  • version: 当前版本 5.0.5

1.2 marketplace.json - 市场配置

定义插件列表和版本,source: "./" 指向插件根目录。


二、Hook 系统

Hook 系统是 superpowers 的"注入点",在关键时刻自动注入上下文。

2.1 触发条件

在 hooks/hooks.json 中定义:

触发器 说明
startup 新会话启动
clear 清除对话
compact 压缩对话历史

2.2 Hook 系统工作流程

flowchart TD subgraph 触发层["触发层"] A1[会话启动 startup] A2[清除对话 clear] A3[压缩历史 compact] end subgraph 执行层["执行层"] B[读取 hooks.json] C[匹配触发条件] D[执行 run-hook.cmd] end subgraph 脚本层["脚本层"] E{检测平台} E1[Windows: 调用 Git Bash] E2[Unix: 直接执行 bash] F[运行 session-start] end subgraph 注入层["注入层"] G[检测旧版目录] H[读取 using-superpowers/SKILL.md] I[JSON 转义处理] J{判断平台} J1[Cursor: additional_context] J2[Claude Code: hookSpecificOutput] end A1 --> B A2 --> B A3 --> B B --> C --> D D --> E E --> E1 --> F E --> E2 --> F F --> G --> H --> I --> J J --> J1 J --> J2

2.3 跨平台执行器

run-hook.cmd 实现了跨平台支持:

  • Windows: 找 Git Bash 执行
  • Unix: 直接执行 bash
  • 文件扩展名无 .sh,避免 Windows 自动加 bash 前缀

三、技能发现机制

这是 superpowers 最核心的设计之一。

3.1 技能发现完整流程

flowchart TD subgraph 用户交互["用户交互"] A[用户发送消息] end subgraph 技能匹配["技能匹配"] B[Claude 分析消息意图] C{是否有技能适用?} C1[无: 继续默认行为] C2[有: 哪怕只有 1% 可能性] end subgraph 技能加载["技能加载"] D[调用 Skill 工具] E[宣布使用技能] F[读取 SKILL.md] G[解析技能定义] end subgraph 优先级判断["优先级判断"] H{检查优先级} H1[用户指令: 最高优先] H2[Superpowers 技能: 次优先] H3[系统默认: 最低优先] end subgraph 执行阶段["执行阶段"] I[检查技能类型] J{Rigid 还是 Flexible?} J1[Rigid: 严格遵循流程] J2[Flexible: 根据上下文调整] K[检查 Red Flags] L[执行技能工作流] end subgraph 结果输出["结果输出"] M[输出结果] N[记录执行日志] end A --> B --> C C --> C1 C --> C2 --> D D --> E --> F --> G G --> H H --> H1 H --> H2 H --> H3 H1 & H2 & H3 --> I --> J J --> J1 --> K J --> J2 --> K K --> L --> M --> N

3.2 关键设计

1. 强制优先级

flowchart LR A[用户指令] -->|最高| B[执行] C[Superpowers 技能] -->|次高| B D[系统默认] -->|最低| B style A fill:#ff6b6b style C fill:#ffd93d style D fill:#6bcb77

2. Red Flags 表

列出所有"自我合理化"借口,防止 AI 偷懒跳过技能。

3. 技能类型

类型 说明
Rigid(严格) 必须精确遵循,如 TDD
Flexible(灵活) 可根据上下文调整

4. CSO(Claude Search Optimization)

description 字段只描述触发条件,不描述工作流。这和传统的 SEO 不同------不是堆砌关键词,而是精确描述"什么情况下应该使用这个技能"。


四、完整启动流程

4.1 Claude Code 启动到技能执行

sequenceDiagram participant U as 用户 participant CC as Claude Code participant P as plugin.json participant H as Hook 系统 participant S as session-start participant US as using-superpowers participant SK as Skill 工具 U->>CC: 启动 Claude Code CC->>P: 加载插件元数据 P-->>CC: 返回插件配置 Note over CC,H: SessionStart Hook 触发 CC->>H: 触发 startup 事件 H->>S: 执行 session-start 脚本 S->>S: 检测旧版目录 S->>US: 读取 SKILL.md S->>S: JSON 转义处理 S-->>H: 返回注入内容 H-->>CC: 注入 using-superpowers Note over CC: Claude 就绪 U->>CC: 发送消息 CC->>CC: 分析消息意图 CC->>SK: 调用匹配的技能 SK->>SK: 加载技能定义 SK-->>CC: 执行技能工作流 CC-->>U: 返回结果

4.2 核心洞察

Hook 系统是"注入点",using-superpowers 是"入口技能",所有其他技能通过 Skill 工具按需加载。

这种设计实现了懒加载------只有在需要时才加载具体技能,避免了上下文膨胀。

4.3 架构分层图

graph TB subgraph 表现层["表现层"] A[用户交互] B[Claude Code CLI] end subgraph 注入层["注入层"] C[Hook 系统] D[session-start] end subgraph 入口层["入口层"] E[using-superpowers<br/>入口技能] end subgraph 技能层["技能层"] F[TDD] G[Debugging] H[Brainstorming] I[Writing Plans] J[...其他技能] end subgraph 代理层["代理层"] K[code-reviewer] L[implementer] M[spec-reviewer] end A --> B B --> C C --> D D --> E E --> F & G & H & I & J F & G --> K & L & M

五、总结

第一阶段学习,我理解了 superpowers 的整体架构:

组件 作用
plugin.json 定义插件元数据和命名空间
Hook 系统 在会话启动时自动注入入口技能
using-superpowers 入口技能,引导其他技能的加载
CSO 优化技能发现的关键设计

下一阶段,将深入学习技能系统设计 ,包括 SKILL.md 结构、流程图设计、CSO 优化策略等。


参考资料


本文是 Superpowers 源码学习系列的第一篇,后续会继续分享学习心得。欢迎关注!

相关推荐
时早玖沐1 小时前
KOOK「找不到语音频道」:同一个错误假设,我犯了三次
python·开源·ai编程
Solara2 小时前
绿灯连亮 6 天、今天我真写了 4 KB:这盏灯从没看过我写的那一层
人工智能·程序员·ai编程
用户539418729072 小时前
强弱模型路由跑起来就成了黑盒?我给每趟路由记了笔账,命中率、白升级一目了然,分级表越调越准
ai编程·cursor
qinglongcn2 小时前
Agent 可能出什么事——五类异常与应对
人工智能·编辑器·ai编程
lucas_AI2 小时前
你从「官方市场」自动更新的 Claude Code,被人塞了 11 个小时的 SSH 后门
ai编程
熊猫钓鱼>_>3 小时前
鸿蒙PC高分屏与键鼠交互适配:DPI缩放、右键菜单一次讲清
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙·鸿蒙心迹
終不似少年遊*3 小时前
【Skill】为中型研发团队制作的敏捷迭代AI副驾Skill
人工智能·python·华为云·agent·ai编程·skill
ZzT3 小时前
vibe coding 做小游戏·玩法篇:8 句试玩反馈,变成无限关卡、局外成长和援军登场
ai编程·游戏开发
七牛云行业应用4 小时前
DeepSeek Harness 插件架构 vs MCP:Cordis 的「Everything is a Plugin」到底解决什么
ai·github·ai编程