普通 AI 写代码很容易只盯着眼前这几行,忘了你前面说过啥、项目整体怎么设计
有的时候就是做着做着跑题了,你在问的时候 ai 即兴发挥,没有一个探讨计划的过程,少了约束,或者有的东西过度改动了
给 ai 问的问题或者需求,问完了丢失了,有的时候想参考或者继续在这个计划上改
借鉴:
https://github.com/gsd-build/get-shit-done
https://github.com/obra/superpowers
案例:自定义适合自己驱动开发插件 (XZ Planning)
XZ Planning 解决的问题:
Planning:
用户: "帮我加一个用户管理功能"
AI: (自由发挥,改了一堆文件,可能遗漏、可能过度设计)
Planning:
用户: /xz-plan 1 用户管理功能
AI: → 分析代码 → 提出 A/B/C 方案 → 用户选择 → 生成原子化 todolist
用户: /xz-exec 1
AI: → 按 todolist 逐条执行 → 每条完成后验证 → 更新进度
plugin_claude/
├── .claude-plugin/
│ └── marketplace.json ← 插件市场
└── plugins/
└── planning/ ← xz-planning 插件
├── .claude-plugin/
│ └── plugin.json ← 插件清单
├── skills/ ← 13 个技能
│ ├── xz-init/ ← 初始化项目
│ ├── xz-plan/ ← 创建版本计划
│ ├── xz-exec/ ← 执行 todolist
│ ├── xz-discuss/ ← PM x Dev 双视角讨论
│ ├── xz-update-plan/ ← 修改计划
│ ├── xz-review/ ← 代码审查
│ ├── xz-test/ ← 生成测试指南
│ ├── xz-debug/ ← Bug 诊断xx
│ ├── xz-status/ ← 查看进度
│ ├── xz-done/ ← 归档版本
│ ├── xz-ref/ ← 加载历史版本
│ ├── xz-del/ ← 删除版本
│ └── xz-remove-all/ ← 清理全部
├── agents/ ← 子代理
│ └── xz-code-reviewer.md
├── bin/ ← 辅助脚本
│ └── xz-tools.py
└── resources/ ← 模板资源
XZ Planning 将开发流程标准化为 六个阶段:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ INIT │───▶│ DISCUSS │───▶│ PLAN │
│ 初始化 │ │ 需求讨论? │ │ 制定计划 │
└─────────┘ └─────────┘ └─────────┘
│
┌─────────┐ ┌─────────┐ ▼
│ DONE │◀───│ REVIEW │◀───┌─────────┐
│ 归档 │ │ test ? │ │ EXEC │
└─────────┘ └─────────┘ │ 执行计划 │
└─────────┘
每个阶段对应一个或多个 Skill 命令:
┌─────────────────────────────────┐
│ /xz-planning:xz-init │ 必须,首次使用前执行
└──────────────┬──────────────────┘
↓
┌───────────────────────────────────────────┐
│ /xz-planning:xz-discuss N 讨论内容 │ 可选,头脑风暴
└───────────────────┬──────────────────────┘
↓
┌─────────────────────────────────┐
│ /xz-planning:xz-plan N 需求描述 │ 必须,生成 todolist
└──────────────┬──────────────────┘
↓
┌─────────────────────────────────┐
┌──→ │ /xz-planning:xz-exec N │ 必须,逐条执行
│ └──────────────┬──────────────────┘
│ ↓
│ ┌─────────────────────────────────┐
└────│ /xz-planning:xz-update-plan N │ 可选,中途增删改条目
└──────────────┬──────────────────┘
↓
┌───────────────────────────────────────────┐
│ /xz-planning:xz-review N │ 可选,代码审查
└───────────────────┬──────────────────────┘
↓
┌───────────────────────────────────────────┐
│ /xz-planning:xz-test N │ 可选,生成测试指南
└───────────────────┬──────────────────────┘
↓
┌─────────────────────────────────┐
│ /xz-planning:xz-done N │ 必须,归档
└─────────────────────────────────┘
1. 证据驱动的方案设计
<!-- xz-plan SKILL.md 中的关键约束 -->
- 只提出从代码分析中得出的方案,不做主观推测
- 必须提供 A/B/C 三个方案供用户选择
- 绝不自动选择方案2. 原子化 Todolist
每个 todo 不超过 2-5 分钟的工作量,并包含精确的变更规格:
- [ ] 1. 创建用户模型
- 变更: 新建 `models/user.go`
- 函数: `type User struct`, `func NewUser()`
- 说明: 定义用户实体和构造函数3. 双代理协作 (xz-discuss)
同时启动两个子代理,模拟产品经理和开发者的视角碰撞:
┌────────────────┐
│ 用户需求输入 │
└───────┬────────┘
│
┌───────┴───────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ PM Agent │ │Dev Agent │
│ 产品视角 │ │ 技术视角 │
└─────┬────┘ └────┬─────┘
│ │
└──────┬───────┘
▼
┌────────────┐
│ 综合 A/B/C │
│ 方案输出 │
└────────────┘
4. 状态全程可追踪
STATE.md — 全局状态表
├── phases/1/ → 版本 1(进行中)
│ ├── 1-DISCUSS.md
│ ├── 1-PLAN.md
│ └── 1-UAT.md
└── archive/0/ → 版本 0(已归档)
一个完整的 Claude Code 插件可以包含以下组件:
my-plugin/
├── .claude-plugin/
│ └── plugin.json # 插件清单
├── skills/ # 技能定义
│ └── my-skill/
│ └── SKILL.md
├── agents/ # 子代理定义
│ └── reviewer.md
├── hooks/ # 钩子
│ └── hooks.json
├── bin/ # 可执行脚本(工具箱)
├── .mcp.json # MCP 服务器配置(外部工具集成)
├── .lsp.json # LSP 服务器配置(代码智能)
├── settings.json # 默认设置
└── resources/ # 静态资源
注意:
skills/、agents/、hooks/等目录放在插件根目录下,不要放进.claude-plugin/内部。.claude-plugin/里只有plugin.json。
每个插件的起点是一个 plugin.json — 它就像插件的"身份证":
mkdir -p my-plugin/.claude-plugin// my-plugin/.claude-plugin/plugin.json
{
"name": "my-plugin",
"description": "插件的一句话描述",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}字段说明:
| 字段 | 作用 |
|---|---|
name |
唯一标识符,同时作为技能的命名空间前缀(如 /my-plugin:hello) |
description |
在插件管理器中展示的描述 |
version |
语义化版本号,用于追踪发布 |
author |
可选,用于归属标识 |
Skill 是插件的核心 — 它定义了 AI 在收到指令后具体怎么做事。
每个 Skill 是一个文件夹,包含一个 SKILL.md 文件:
mkdir -p my-plugin/skills/hello<!-- my-plugin/skills/hello/SKILL.md -->
---
name: hello
description: 以友好的方式问候用户
disable-model-invocation: true
argument-hint: "[用户名]"
---
# Hello Skill
热情地问候名为 "$ARGUMENTS" 的用户,并询问今天有什么可以帮助的。SKILL.md 的 frontmatter 字段:
| 字段 | 说明 |
|---|---|
name |
技能名称 |
description |
技能描述,Claude 根据此描述判断何时自动调用 |
disable-model-invocation |
设为 true 则不触发模型调用,仅输出模板文本 |
argument-hint |
参数提示,帮助用户了解需要传入什么 |
$ARGUMENTS |
占位符,捕获用户在技能名之后输入的所有文本 |
Claude Code 使用 marketplace 来组织和分发插件。一个 marketplace 可以包含多个插件:
// .claude-plugin/marketplace.json
{
"name": "xz-tools",
"owner": { "name": "admin" },
"metadata": {
"description": "XZ 系列 Claude Code 插件市场",
"version": "1.0.0"
},
"plugins": [
{
"name": "xz-planning",
"source": "./plugins/planning",
"description": "轻量级版本计划驱动开发",
"version": "1.0.0"
}
]
}方式一:通过市场安装(推荐)
# 1. 添加市场(本地路径或 GitHub)
/plugin marketplace add /Users/admin/go/src/myai/plugin_claude
/plugin marketplace add Xuzan9396/plugin_claude
/plugin marketplace add xuzan01111/plugin_claude
# 2. 安装插件
/plugin install xz-planning@xz-tools
# 3. 重载
/reload-plugins方式二:开发调试模式
# 直接加载插件目录
claude --dangerously-skip-permissions --plugin-dir /Users/admin/go/src/myai/plugin_claude/plugins/planning
# 支持同时加载多个插件
claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two/plugin marketplace list # 查看已安装的市场和插件
/plugin marketplace update xz-tools # 更新市场内容
/plugin uninstall xz-planning@xz-tools # 卸载插件
/plugin marketplace remove xz-tools # 删除市场本地源改动(SKILL.md / agents / bin 脚本)不会自动同步到 ~/.claude/plugins/cache/ 下的安装副本。改完源码需要重装:
/plugin uninstall xz-planning
/plugin install xz-planning
/reload-plugins说明:
uninstall清掉旧缓存;install从市场(本地路径或 GitHub)重新拉取当前源;reload-plugins应用变更- 若只改了
plugin.json的version并推到远程市场,也可以用/plugin marketplace update xz-tools+/reload-plugins触发更新 - 改完没生效前先怀疑是不是缓存还是旧版 ——
ls ~/.claude/plugins/cache/xz-tools/xz-planning/看版本号是否对得上
┌────────────────────────────────────────────────┐
│ 框架驱动开发 = 可控 + 可复用 + 可协作 │
├────────────────────────────────────────────────┤
│ │
│ 可控 用 Skill 约束 AI 行为 │
│ │
│ 可复用 一次编写,到处使用 │
│ 团队共享同一套最佳实践 │
│ │
│ 可协作 通过 Marketplace 分发 │
│ 版本管理,持续迭代 │
│ │
└────────────────────────────────────────────────┘
建议







