@culeo/specx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -0
- package/package.json +30 -0
- package/skills/specx-archive/SKILL.md +235 -0
- package/skills/specx-clarify/SKILL.md +581 -0
- package/skills/specx-create-design-template/SKILL.md +262 -0
- package/skills/specx-create-rule/SKILL.md +174 -0
- package/skills/specx-demystify/SKILL.md +180 -0
- package/skills/specx-design/SKILL.md +126 -0
- package/skills/specx-docs-align/SKILL.md +225 -0
- package/skills/specx-executing-plans/SKILL.md +83 -0
- package/skills/specx-writing-plans/SKILL.md +183 -0
- package/specx.js +385 -0
package/README.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# specx
|
|
2
|
+
|
|
3
|
+
> 企业级 AI 研发流程 — 需求 → 澄清 → 规格 → 设计 → 任务 → 执行 → 归档
|
|
4
|
+
|
|
5
|
+
specx 是一套企业级研发流程 skill 系列,核心理念是**先签合同再施工**:以规格说明书为蓝图,原子化执行,可追溯可回滚。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🎯 核心理念
|
|
10
|
+
|
|
11
|
+
| | 传统开发 | specx |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| **核心资产** | 代码 | 规格说明书(Spec) |
|
|
14
|
+
| **开发模式** | 边做边改 | 先签合同再施工 |
|
|
15
|
+
| **AI 协作** | AI 自由发挥 | AI 照"蓝图"执行 |
|
|
16
|
+
| **交付风险** | 不可控、难审查 | 原子化、可回滚 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 📦 Skill 系列
|
|
21
|
+
|
|
22
|
+
| Skill | 功能 | 状态 |
|
|
23
|
+
|-------|------|------|
|
|
24
|
+
| `specx-demystify` | 需求分析 & 领域拆解 | ✅ 完成 |
|
|
25
|
+
| `specx-clarify` | 需求澄清 & 规格输出 | ✅ 完成 |
|
|
26
|
+
| `specx-design` | 实现规划 & 详细设计 | ✅ 完成 |
|
|
27
|
+
| `specx-create-design-template` | 生成项目专属设计模板 | ✅ 完成 |
|
|
28
|
+
| `specx-writing-plans` | 设计文档转任务清单 | ✅ 完成 |
|
|
29
|
+
| `specx-executing-plans` | 执行任务清单 | ✅ 完成 |
|
|
30
|
+
| `specx-archive` | 归档沉淀到 wiki | ✅ 完成 |
|
|
31
|
+
| `specx-create-rule` | 创建/维护框架规范 | ✅ 完成 |
|
|
32
|
+
| `specx-docs-align` | 文档对齐检查 | ✅ 完成 |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 🔄 完整流程
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
需求输入(PRD / 需求文档)
|
|
40
|
+
│
|
|
41
|
+
▼
|
|
42
|
+
┌─────────────────────┐
|
|
43
|
+
│ specx-demystify │ ← Step 1:拆解需求
|
|
44
|
+
│ • MECE 领域划分 │ 产出:原子化子需求
|
|
45
|
+
│ • MoSCoW 优先级 │
|
|
46
|
+
│ • 依赖关系分析 │
|
|
47
|
+
└──────────┬──────────┘
|
|
48
|
+
▼
|
|
49
|
+
┌─────────────────────┐
|
|
50
|
+
│ specx-clarify │ ← Step 2:需求澄清
|
|
51
|
+
│ • 用户场景 │ 产出:01-clarify.md
|
|
52
|
+
│ • 功能要点 & 边界 │ 02-spec.md
|
|
53
|
+
│ • Q&A 迭代 │
|
|
54
|
+
└──────────┬──────────┘
|
|
55
|
+
▼
|
|
56
|
+
┌─────────────────────┐
|
|
57
|
+
│ specx-design │ ← Step 3:实现规划
|
|
58
|
+
│ • 整体架构 │ 产出:03-design.md
|
|
59
|
+
│ • 各平台详细设计 │ (按项目模板)
|
|
60
|
+
│ • 可复用组件 │
|
|
61
|
+
└──────────┬──────────┘
|
|
62
|
+
▼
|
|
63
|
+
┌─────────────────────┐
|
|
64
|
+
│ specx-writing-plans │ ← Step 4:任务拆解
|
|
65
|
+
│ • 任务清单 │ 产出:04-tasks.md
|
|
66
|
+
│ • 并行组 & 依赖 │
|
|
67
|
+
│ • MoSCoW 优先级 │
|
|
68
|
+
└──────────┬──────────┘
|
|
69
|
+
▼
|
|
70
|
+
┌─────────────────────┐
|
|
71
|
+
│ specx-executing-plans│ ← Step 5:执行
|
|
72
|
+
│ • 原子任务执行 │ 产出:代码
|
|
73
|
+
│ • 小 PR 产出 │
|
|
74
|
+
└──────────┬──────────┘
|
|
75
|
+
▼
|
|
76
|
+
┌─────────────────────┐
|
|
77
|
+
│ specx-archive │ ← Step 6:归档
|
|
78
|
+
│ • 提炼到 wiki │ 产出:docs/specx/wiki/
|
|
79
|
+
│ • 知识沉淀 │
|
|
80
|
+
└─────────────────────┘
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 📂 目录结构
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
docs/specx/
|
|
89
|
+
├── spaces/ # 需求空间(每个需求独立目录)
|
|
90
|
+
│ └── {yyyyMMdd}-{需求摘要}/
|
|
91
|
+
│ ├── Raws/ # 原始需求来源(多源分类)
|
|
92
|
+
│ │ ├── P001-{需求名称}.md # 产品需求文档
|
|
93
|
+
│ │ ├── U001-{用户反馈}.md # 用户输入/语料
|
|
94
|
+
│ │ └── ...
|
|
95
|
+
│ ├── T-01-{子需求名}/
|
|
96
|
+
│ │ ├── 00-子需求.md # 子需求原始描述(由 demystify 产出)
|
|
97
|
+
│ │ ├── 01-clarify.md # 澄清记录
|
|
98
|
+
│ │ ├── 02-spec.md # 规格说明书
|
|
99
|
+
│ │ ├── 03-design.md # 设计方案
|
|
100
|
+
│ │ └── 04-tasks.md # 任务清单
|
|
101
|
+
│ └── T-02-{子需求名}/
|
|
102
|
+
│ └── ...
|
|
103
|
+
├── wiki/ # 项目知识库(归档沉淀)
|
|
104
|
+
├── rule/ # 框架规范
|
|
105
|
+
└── templates/ # 项目专属模板
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 🧩 关键约定
|
|
111
|
+
|
|
112
|
+
- **文件名规范**:`00-子需求.md` / `01-clarify.md` / `02-spec.md` / `03-design.md` / `04-tasks.md`
|
|
113
|
+
- **wiki 知识沉淀**:`docs/specx/wiki/`,由 `specx-archive` 维护
|
|
114
|
+
- **框架规范**:`docs/specx/rule/`,clarify 时跳过已有规范,不重复提问
|
|
115
|
+
- **项目模板**:`docs/specx/templates/`,首次 design 时生成
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 🚀 快速开始
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# 安装依赖
|
|
123
|
+
npm install
|
|
124
|
+
|
|
125
|
+
# 交互式安装(选择目标 + 选择用户/项目级)
|
|
126
|
+
specx install
|
|
127
|
+
|
|
128
|
+
# 指定目标安装
|
|
129
|
+
specx install --claude # 装到 Claude Code(用户级)
|
|
130
|
+
specx install --codex # 装到 Codex(用户级)
|
|
131
|
+
specx install --claude --codex # 装到两边
|
|
132
|
+
|
|
133
|
+
# 项目级安装(.claude/skills/)
|
|
134
|
+
specx install --claude --project
|
|
135
|
+
|
|
136
|
+
# 非交互式:装到所有已检测的工具
|
|
137
|
+
specx install --all
|
|
138
|
+
|
|
139
|
+
# 查看已安装的 specx skills
|
|
140
|
+
specx list
|
|
141
|
+
|
|
142
|
+
# 查看可用 skills
|
|
143
|
+
specx available
|
|
144
|
+
|
|
145
|
+
# 卸载
|
|
146
|
+
specx uninstall --claude
|
|
147
|
+
specx uninstall --codex --project
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 📝 License
|
|
153
|
+
|
|
154
|
+
Internal use only.
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@culeo/specx",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Install specx skills to AI coding agents (Claude Code, Codex, etc.)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"specx": "./specx.js"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"commander": "^12.0.0"
|
|
11
|
+
},
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=18"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git@github.com:leo/specx.git"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"specx",
|
|
25
|
+
"claude-code",
|
|
26
|
+
"codex",
|
|
27
|
+
"ai-coding",
|
|
28
|
+
"skills"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specx-archive
|
|
3
|
+
description: specx 流程最后一步 — 将已完成的需求文档(clarify.md / spec.md / design.md)归纳总结,写入项目 docs/specx/wiki/ 目录,形成可查询的知识库。
|
|
4
|
+
category: software-development
|
|
5
|
+
tags: [specx, archive, wiki, knowledge]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# specx-archive:归档沉淀
|
|
9
|
+
|
|
10
|
+
## 触发条件
|
|
11
|
+
|
|
12
|
+
当一个子需求完成(clarify → spec → design → code 全部走完)后,用户说"归档"、"沉淀到 wiki"、"完成这个需求"时使用。
|
|
13
|
+
|
|
14
|
+
**前置判断:** 子需求目录 `T-xx/` 下已有 `clarify.md`、`spec.md`、`design.md`(及可选 `code` 相关文档)。
|
|
15
|
+
|
|
16
|
+
**不是触发的情况:**
|
|
17
|
+
- 需求还在中途(未完成 code)
|
|
18
|
+
- 用户只是问问题,不是正式完成需求
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 输入
|
|
23
|
+
|
|
24
|
+
- `T-xx/00-子需求.md` — 原始需求
|
|
25
|
+
- `T-xx/01-clarify.md` — 澄清后的需求
|
|
26
|
+
- `T-xx/02-spec.md` — 规格说明书
|
|
27
|
+
- `T-xx/03-design.md` — 设计方案
|
|
28
|
+
- `T-xx/04-tasks.md` — 任务清单(已完成的)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 输出
|
|
33
|
+
|
|
34
|
+
写入 `docs/specx/wiki/` 下的页面文件,形成项目知识库,供后续查询和复用。
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## wiki 目录结构
|
|
39
|
+
|
|
40
|
+
每个条目独立文件,不放在单个大文件里。避免膨胀,难以维护。
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
docs/specx/wiki/
|
|
44
|
+
├── README.md # 知识库入口 & 总索引
|
|
45
|
+
├── entities/ # 领域概念
|
|
46
|
+
│ └── {slug}.md
|
|
47
|
+
├── features/ # 功能模块
|
|
48
|
+
│ └── {slug}.md
|
|
49
|
+
├── decisions/ # 技术决策
|
|
50
|
+
│ └── {slug}.md
|
|
51
|
+
└── components/ # 组件说明
|
|
52
|
+
└── {slug}.md
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 命名规则
|
|
56
|
+
|
|
57
|
+
- 文件名:`{T-xx}-{简短英文名}.md`,小写,连字符分隔
|
|
58
|
+
- 示例:`T01-stock-card.md`、`T03-redis-cache.md`
|
|
59
|
+
|
|
60
|
+
> 首次归档时由本 skill 创建 `docs/specx/wiki/` 目录和 `README.md`。
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Step 1️⃣ 读取子需求文档
|
|
65
|
+
|
|
66
|
+
按顺序读:
|
|
67
|
+
1. `00-子需求.md` — 了解原始需求背景
|
|
68
|
+
2. `01-clarify.md` — 核心澄清点(消歧后的需求)
|
|
69
|
+
3. `02-spec.md` — 验收标准
|
|
70
|
+
4. `03-design.md` — 实现要点
|
|
71
|
+
5. `04-tasks.md` — 任务完成情况
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Step 2️⃣ 判断写入哪个 wiki 分类
|
|
76
|
+
|
|
77
|
+
根据内容判断归档到哪个子目录:
|
|
78
|
+
|
|
79
|
+
| 内容类型 | 写入子目录 |
|
|
80
|
+
|---------|---------|
|
|
81
|
+
| 新概念/名词/领域模型 | `entities/` |
|
|
82
|
+
| 功能模块描述(做什么)| `features/` |
|
|
83
|
+
| 技术选型、架构决策、为什么这样做 | `decisions/` |
|
|
84
|
+
| UI 组件、复用组件说明 | `components/` |
|
|
85
|
+
|
|
86
|
+
> 如果不确定,写入 `features/`。
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Step 3️⃣ 提炼写入内容
|
|
91
|
+
|
|
92
|
+
### 对每个分类的提炼要求
|
|
93
|
+
|
|
94
|
+
**entities/ — 实体沉淀:**
|
|
95
|
+
- 核心领域名词的定义
|
|
96
|
+
- 概念之间的关系(与哪些其他实体相关)
|
|
97
|
+
- 业务含义(区别于纯技术命名)
|
|
98
|
+
|
|
99
|
+
**features/ — 功能沉淀:**
|
|
100
|
+
- 功能名称和一句话描述
|
|
101
|
+
- 触发场景(用户怎么用到这个功能)
|
|
102
|
+
- 输入/前置条件
|
|
103
|
+
- 输出/后置结果
|
|
104
|
+
- 与其他功能的依赖关系
|
|
105
|
+
|
|
106
|
+
**decisions/ — 决策沉淀:**
|
|
107
|
+
- 决策点("为什么选择 X 而不是 Y")
|
|
108
|
+
- 约束条件(技术限制、业务限制)
|
|
109
|
+
- 最终选择及理由
|
|
110
|
+
- 替代方案及否定原因
|
|
111
|
+
|
|
112
|
+
**components/ — 组件沉淀:**
|
|
113
|
+
- 组件名称和职责
|
|
114
|
+
- Props / 参数说明
|
|
115
|
+
- 使用场景
|
|
116
|
+
- 与其他组件的组合关系
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Step 4️⃣ 写入 wiki 页面
|
|
121
|
+
|
|
122
|
+
按相关性分组写到同一文件。文件内容超过 200 行时,拆分为独立文件。
|
|
123
|
+
|
|
124
|
+
### 文件命名
|
|
125
|
+
|
|
126
|
+
- 路径:`docs/specx/wiki/{分类}/{英文名}.md`
|
|
127
|
+
- 示例:`docs/specx/wiki/features/stock-card.md`
|
|
128
|
+
|
|
129
|
+
### 单文件内容格式
|
|
130
|
+
|
|
131
|
+
**独立条目:** 每个文件一个 `##` 标题。
|
|
132
|
+
**合并组:** 多个 `##` 条目共享一个文件级别的 `**分类**`、`**最后更新时间**`。
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
# {组名/条目名}
|
|
136
|
+
|
|
137
|
+
**分类:** {entities/features/decisions/components}
|
|
138
|
+
**最后更新时间:** {YYYY-MM-DD}
|
|
139
|
+
**关联需求:**
|
|
140
|
+
- [T-xx](../{需求目录}/T-xx/00-子需求.md)
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## {条目名}
|
|
145
|
+
|
|
146
|
+
{内容}
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## {条目名}
|
|
151
|
+
|
|
152
|
+
{内容}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 更新 README.md 索引
|
|
156
|
+
|
|
157
|
+
首次创建 wiki 时写入:
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
# Wiki
|
|
161
|
+
|
|
162
|
+
> 项目知识库 — 由 specx-archive 维护
|
|
163
|
+
|
|
164
|
+
## 分类
|
|
165
|
+
|
|
166
|
+
- `entities/` — 领域概念、名词解释
|
|
167
|
+
- `features/` — 功能模块说明
|
|
168
|
+
- `decisions/` — 技术决策记录
|
|
169
|
+
- `components/` — 组件说明
|
|
170
|
+
|
|
171
|
+
## 最近更新
|
|
172
|
+
|
|
173
|
+
| 日期 | 分类 | 文件 | 内容摘要 |
|
|
174
|
+
|------|------|------|---------|
|
|
175
|
+
| {YYYY-MM-DD} | {分类} | {文件名} | {一句话描述} |
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
后续归档时,在"最近更新"表格**顶部**插入新行。
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Step 5️⃣ 更新文档状态为 archived
|
|
183
|
+
|
|
184
|
+
归档完成后,更新子需求目录下所有产出文档的文件头状态为 `archived`:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
// 对 01-clarify.md / 02-spec.md / 03-design.md / 04-tasks.md 逐一更新
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
status: archived
|
|
191
|
+
updated: {YYYY-MM-DD}
|
|
192
|
+
history:
|
|
193
|
+
- "v1: 初始创建"
|
|
194
|
+
- "v2: ..."
|
|
195
|
+
- "v3: docs-align 修正: ..."
|
|
196
|
+
- "v4: 已归档到 wiki"
|
|
197
|
+
---
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Step 6️⃣ 更新子需求目录状态
|
|
201
|
+
|
|
202
|
+
在 `T-xx/` 下的 `README.md`(如果没有就创建)标注归档状态:
|
|
203
|
+
|
|
204
|
+
```markdown
|
|
205
|
+
# T-{xx}-{子需求名称}
|
|
206
|
+
|
|
207
|
+
**状态:** ✅ 已归档
|
|
208
|
+
**最后更新时间:** {YYYY-MM-DD}
|
|
209
|
+
**Wiki 沉淀位置:**
|
|
210
|
+
- [T-xx-{slug}](../wiki/{分类}/T-xx-{slug}.md)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 归档质量清单
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
[ ] 已读取全部子需求文档(00-子需求/clarify/spec/design/tasks)
|
|
219
|
+
[ ] 判断了正确的 wiki 分类(entities/features/decisions/components)
|
|
220
|
+
[ ] 每个提炼内容写成独立文件
|
|
221
|
+
[ ] 文件名符合命名规则 {T-xx}-{slug}.md
|
|
222
|
+
[ ] 更新了 README.md 索引(顶部插入新行)
|
|
223
|
+
[ ] 标注了子需求目录为已归档
|
|
224
|
+
[ ] 未污染原始文档(clarify/spec/design.md 未被修改)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 重要提示
|
|
230
|
+
|
|
231
|
+
- **不是复制粘贴** — 提炼精华,不是把整个文档搬进去
|
|
232
|
+
- **不修改原始文档** — 归档是新建文件,原始 clarify/spec/design.md 保持不变
|
|
233
|
+
- **先判断分类再写** — 不确定时优先选 features/
|
|
234
|
+
- **按相关性分组** — 相关条目放同一文件,超过 200 行则拆分
|
|
235
|
+
- **索引要维护** — 每次归档都要更新 README.md 的最近更新表格(顶部插入)
|