prd-workflow-cli 1.1.30 → 1.1.33
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/.antigravity/rules.md +48 -0
- package/.cursorrules +89 -0
- package/README.md +35 -18
- package/bin/prd-cli.js +24 -5
- package/commands/init.js +11 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +29 -1
package/.antigravity/rules.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
6. ❌ 禁止跳过审视 → B2 后必须 R1,C1 后必须 R2
|
|
16
16
|
7. ❌ 禁止 R1 直接输出"通过" → 必须有分析和评估矩阵
|
|
17
17
|
8. ❌ 禁止创建迭代后直接创建 B1 → 必须先填写 R1 启动检查
|
|
18
|
+
9. ❌ 禁止在 C0 无视 B2 的版本划分 → 如果 B2 有多批次,C0 只包含首批
|
|
18
19
|
```
|
|
19
20
|
|
|
20
21
|
**R1 有两个阶段**:
|
|
@@ -56,6 +57,53 @@
|
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
60
|
+
## 🔢 版本划分规则(C0 阶段必读!)
|
|
61
|
+
|
|
62
|
+
**如果 PM 在 B2 决定分多个批次/小版本交付,C0 只能包含首批内容!**
|
|
63
|
+
|
|
64
|
+
### AI 必须在 C0 阶段检查 B2 的版本划分
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
AI: "在填写 C0 之前,让我检查 B2 的版本划分:
|
|
68
|
+
|
|
69
|
+
[读取 B2 的开发批次部分]
|
|
70
|
+
|
|
71
|
+
📊 B2 版本划分:
|
|
72
|
+
- 第 1 批:需求 #1, #2, #3
|
|
73
|
+
- 第 2 批:需求 #4, #5
|
|
74
|
+
- 第 3 批:需求 #6, #7, #8
|
|
75
|
+
|
|
76
|
+
✅ 确认:本次 C0 只包含第 1 批(#1, #2, #3)"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### ❌ 绝对禁止
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
PM 在 B2 说:"分 3 个版本交付"
|
|
83
|
+
AI 在 C0 写:"本版本包含所有 B2 需求" ← 严重错误!
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 🔄 多批次交付的完整流程(重要!)
|
|
87
|
+
|
|
88
|
+
**每个批次都是一个完整的版本,必须走完整的 C0 → C1 → R2 → C3 流程!**
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
📦 B2 规划了 3 个批次的交付:
|
|
92
|
+
|
|
93
|
+
第 1 批(v1.0):C0 → C1 → R2 → C3(冻结交付)
|
|
94
|
+
↓
|
|
95
|
+
第 2 批(v1.1):C0 → C1 → R2 → C3(冻结交付)
|
|
96
|
+
↓
|
|
97
|
+
第 3 批(v1.2):C0 → C1 → R2 → C3(冻结交付)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**规则:**
|
|
101
|
+
- ✅ 每批次独立 C0/C1/R2/C3
|
|
102
|
+
- ❌ 禁止跳过 R2("小版本不需要审视"是错误的)
|
|
103
|
+
- ❌ 禁止跳过 C3("先开发之后再冻结"是错误的)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
59
107
|
## ⚙️ 分段写入规则(从 prd-incremental-save.md 合并)
|
|
60
108
|
|
|
61
109
|
### 铁律:确认一个,写入一个
|
package/.cursorrules
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
6. ❌ 禁止跳过审视 → B2 后必须 R1,C1 后必须 R2
|
|
14
14
|
7. ❌ 禁止 R1 直接输出"通过" → 必须有 5 维度分析和评估矩阵
|
|
15
15
|
8. ❌ 禁止创建迭代后直接创建 B1 → 必须先引导 PM 填写 R1 启动检查
|
|
16
|
+
9. ❌ 禁止在 C0 无视 B2 的版本划分 → 如果 B2 有多批次,C0 只包含首批
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
**R1 有两个阶段**:
|
|
@@ -54,6 +55,94 @@
|
|
|
54
55
|
|
|
55
56
|
---
|
|
56
57
|
|
|
58
|
+
## 🔢 版本划分规则(C0 阶段必读!)
|
|
59
|
+
|
|
60
|
+
### ⚠️ 核心原则:尊重 B2 的批次划分
|
|
61
|
+
|
|
62
|
+
**如果 PM 在 B2 决定分多个批次/小版本交付,C0 只能包含首批内容!**
|
|
63
|
+
|
|
64
|
+
### AI 必须在 C0 阶段执行的检查
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
AI: "在填写 C0 之前,让我检查 B2 的版本划分:
|
|
68
|
+
|
|
69
|
+
[读取 B2 的开发批次部分]
|
|
70
|
+
|
|
71
|
+
📊 B2 版本划分:
|
|
72
|
+
- 第 1 批:需求 #1, #2, #3
|
|
73
|
+
- 第 2 批:需求 #4, #5
|
|
74
|
+
- 第 3 批:需求 #6, #7, #8
|
|
75
|
+
|
|
76
|
+
✅ 确认:本次 C0 只包含第 1 批(#1, #2, #3)
|
|
77
|
+
|
|
78
|
+
第 2、3 批将在后续版本的 C0 中处理。
|
|
79
|
+
|
|
80
|
+
是否确认?"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### ❌ 错误行为(绝对禁止!)
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
PM 在 B2 说:"分 3 个版本交付"
|
|
87
|
+
AI 在 C0 写:"本版本包含所有 B2 需求" ← 严重错误!
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### ✅ 正确行为
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
PM 在 B2 说:"分 3 个版本交付"
|
|
94
|
+
AI 在 C0 写:"本版本只包含第 1 批:需求 #1, #2, #3"
|
|
95
|
+
"第 2、3 批在后续版本处理"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 🔄 多批次交付的完整流程(重要!)
|
|
99
|
+
|
|
100
|
+
**每个批次都是一个完整的版本,必须走完整的 C0 → C1 → R2 → C3 流程!**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
📦 B2 规划了 3 个批次的交付:
|
|
104
|
+
|
|
105
|
+
┌─────────────────────────────────────────────────────────┐
|
|
106
|
+
│ 第 1 批(v1.0) │
|
|
107
|
+
│ C0_v1.0 → C1_v1.0 → R2_v1.0 → C3_v1.0(冻结交付) │
|
|
108
|
+
└─────────────────────────────────────────────────────────┘
|
|
109
|
+
↓
|
|
110
|
+
┌─────────────────────────────────────────────────────────┐
|
|
111
|
+
│ 第 2 批(v1.1) │
|
|
112
|
+
│ C0_v1.1 → C1_v1.1 → R2_v1.1 → C3_v1.1(冻结交付) │
|
|
113
|
+
└─────────────────────────────────────────────────────────┘
|
|
114
|
+
↓
|
|
115
|
+
┌─────────────────────────────────────────────────────────┐
|
|
116
|
+
│ 第 3 批(v1.2) │
|
|
117
|
+
│ C0_v1.2 → C1_v1.2 → R2_v1.2 → C3_v1.2(冻结交付) │
|
|
118
|
+
└─────────────────────────────────────────────────────────┘
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**AI 必须遵守:**
|
|
122
|
+
|
|
123
|
+
| 规则 | 说明 |
|
|
124
|
+
|-----|------|
|
|
125
|
+
| ✅ 每批次独立 C0 | 每个批次有自己的版本范围声明 |
|
|
126
|
+
| ✅ 每批次独立 C1 | 每个批次有自己的需求清单 |
|
|
127
|
+
| ✅ 每批次独立 R2 | 每个批次必须经过版本审视 |
|
|
128
|
+
| ✅ 每批次独立 C3 | 每个批次必须冻结后才能交付 |
|
|
129
|
+
| ❌ 禁止跳过 R2 | 不能说"小版本不需要审视" |
|
|
130
|
+
| ❌ 禁止跳过 C3 | 不能说"先开发,之后再冻结" |
|
|
131
|
+
|
|
132
|
+
**当第 1 批 C3 冻结后,AI 应提示:**
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
AI: "✅ 第 1 批(v1.0)已完成 C3 冻结,可以交付开发。
|
|
136
|
+
|
|
137
|
+
📋 下一步:开始第 2 批(v1.1)的版本流程
|
|
138
|
+
|
|
139
|
+
运行:prd version create C0
|
|
140
|
+
|
|
141
|
+
第 2 批将包含:需求 #4, #5(来自 B2 规划)"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
57
146
|
## ⚙️ 分段写入规则(从 prd-incremental-save.md 合并)
|
|
58
147
|
|
|
59
148
|
### 铁律:确认一个,写入一个
|
package/README.md
CHANGED
|
@@ -55,45 +55,62 @@ C3(版本冻结)
|
|
|
55
55
|
|
|
56
56
|
## 🚀 安装
|
|
57
57
|
|
|
58
|
-
### 方式1
|
|
58
|
+
### 方式1:一键初始化(推荐)✨
|
|
59
|
+
|
|
60
|
+
只需一个命令,**自动完成初始化并配置 AI 规则文件**:
|
|
59
61
|
|
|
60
62
|
```bash
|
|
61
|
-
#
|
|
62
|
-
|
|
63
|
+
# 1. 创建并进入项目目录
|
|
64
|
+
mkdir 我的项目 && cd 我的项目
|
|
63
65
|
|
|
64
|
-
#
|
|
65
|
-
|
|
66
|
+
# 2. 一键初始化(自动配置一切!)
|
|
67
|
+
npx prd-workflow-cli
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
git clone https://github.com/houtonghoutong/PRD-CLI.git
|
|
73
|
-
cd PRD-CLI/prd-cli
|
|
70
|
+
就这样!运行后你会看到:
|
|
71
|
+
- ✅ `.agent/workflows/` - PRD 工作流指引
|
|
72
|
+
- ✅ `.cursorrules` - Cursor AI 规则
|
|
73
|
+
- ✅ `.antigravity/` - Antigravity AI 规则
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
> 💡 **现在你的 AI 助手已经知道如何协助你完成 PRD 流程了!**
|
|
76
|
+
> 例如:直接告诉 AI "我要创建一个新项目的需求文档"
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
npm link
|
|
80
|
-
```
|
|
78
|
+
### 方式2:全局安装
|
|
81
79
|
|
|
82
|
-
|
|
80
|
+
如果你经常使用,可以全局安装:
|
|
83
81
|
|
|
84
82
|
```bash
|
|
85
|
-
# 稍后可用
|
|
86
83
|
npm install -g prd-workflow-cli
|
|
84
|
+
|
|
85
|
+
# 然后使用
|
|
86
|
+
prd init 我的项目
|
|
87
|
+
cd 我的项目
|
|
88
|
+
npm install # 重要!这一步会安装 AI 规则文件
|
|
87
89
|
```
|
|
88
90
|
|
|
91
|
+
### 方式3:从源码安装
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
git clone https://github.com/houtonghoutong/PRD-CLI.git
|
|
95
|
+
cd PRD-CLI/prd-cli
|
|
96
|
+
npm install
|
|
97
|
+
npm link
|
|
98
|
+
```
|
|
89
99
|
|
|
90
100
|
## 📝 快速开始
|
|
91
101
|
|
|
92
102
|
### 1. 初始化项目
|
|
93
103
|
|
|
94
104
|
```bash
|
|
105
|
+
# 使用 npx(推荐)
|
|
106
|
+
npx prd-workflow-cli init my-product
|
|
107
|
+
cd my-product
|
|
108
|
+
npm install
|
|
109
|
+
|
|
110
|
+
# 或者全局安装后使用
|
|
95
111
|
prd init my-product
|
|
96
112
|
cd my-product
|
|
113
|
+
npm install
|
|
97
114
|
```
|
|
98
115
|
|
|
99
116
|
这将创建标准的目录结构:
|
package/bin/prd-cli.js
CHANGED
|
@@ -126,9 +126,28 @@ program.on('--help', () => {
|
|
|
126
126
|
console.log('');
|
|
127
127
|
});
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
// 智能处理:无参数时自动初始化
|
|
130
|
+
if (process.argv.length === 2) {
|
|
131
|
+
const fs = require('fs');
|
|
132
|
+
const path = require('path');
|
|
133
|
+
const configPath = path.join(process.cwd(), '.prd-config.json');
|
|
134
|
+
|
|
135
|
+
if (!fs.existsSync(configPath)) {
|
|
136
|
+
// 不是 PRD 项目,自动初始化
|
|
137
|
+
console.log(chalk.blue('📦 检测到当前目录尚未初始化 PRD 项目'));
|
|
138
|
+
console.log(chalk.blue('🚀 正在自动初始化...'));
|
|
139
|
+
console.log('');
|
|
140
|
+
require('../commands/init')('.').then(() => {
|
|
141
|
+
process.exit(0);
|
|
142
|
+
}).catch((err) => {
|
|
143
|
+
console.error(chalk.red('初始化失败:'), err.message);
|
|
144
|
+
process.exit(1);
|
|
145
|
+
});
|
|
146
|
+
} else {
|
|
147
|
+
// 已经是 PRD 项目,显示帮助
|
|
148
|
+
program.parse(process.argv);
|
|
149
|
+
program.outputHelp();
|
|
150
|
+
}
|
|
151
|
+
} else {
|
|
152
|
+
program.parse(process.argv);
|
|
134
153
|
}
|
package/commands/init.js
CHANGED
|
@@ -346,6 +346,17 @@ prd plan freeze
|
|
|
346
346
|
|
|
347
347
|
console.log(chalk.green('✓ 项目创建成功!'));
|
|
348
348
|
console.log('');
|
|
349
|
+
|
|
350
|
+
// 显示 AI 集成信息
|
|
351
|
+
console.log(chalk.bold('🤖 AI 集成已配置:'));
|
|
352
|
+
console.log(chalk.gray(' ✓ .agent/workflows/ - PRD 工作流指引(包含所有阶段的详细步骤)'));
|
|
353
|
+
console.log(chalk.gray(' ✓ .cursorrules - Cursor AI 规则'));
|
|
354
|
+
console.log(chalk.gray(' ✓ .antigravity/ - Antigravity AI 规则'));
|
|
355
|
+
console.log('');
|
|
356
|
+
console.log(chalk.yellow(' 💡 现在你可以直接与 AI 助手对话,AI 已经知道如何协助你完成 PRD 流程!'));
|
|
357
|
+
console.log(chalk.gray(' 例如:告诉 AI "我要创建一个新项目的需求文档"'));
|
|
358
|
+
console.log('');
|
|
359
|
+
|
|
349
360
|
console.log(chalk.bold('📋 下一步操作(请按顺序执行):'));
|
|
350
361
|
console.log('');
|
|
351
362
|
if (!isCurrentDir) {
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -117,7 +117,35 @@ function main() {
|
|
|
117
117
|
|
|
118
118
|
// 检查是否是全局安装
|
|
119
119
|
if (isGlobalInstall(packagePath)) {
|
|
120
|
-
debug('
|
|
120
|
+
debug('检测到全局安装,显示使用说明');
|
|
121
|
+
|
|
122
|
+
// 全局安装时输出使用说明
|
|
123
|
+
console.log('');
|
|
124
|
+
console.log('╔════════════════════════════════════════════════════════════════╗');
|
|
125
|
+
console.log('║ 🎉 prd-workflow-cli 安装成功! ║');
|
|
126
|
+
console.log('╠════════════════════════════════════════════════════════════════╣');
|
|
127
|
+
console.log('║ ║');
|
|
128
|
+
console.log('║ 📋 快速开始: ║');
|
|
129
|
+
console.log('║ ║');
|
|
130
|
+
console.log('║ 1. 创建新项目: ║');
|
|
131
|
+
console.log('║ prd init 我的项目 ║');
|
|
132
|
+
console.log('║ cd 我的项目 ║');
|
|
133
|
+
console.log('║ ║');
|
|
134
|
+
console.log('║ 2. 或在现有目录初始化: ║');
|
|
135
|
+
console.log('║ cd 现有目录 ║');
|
|
136
|
+
console.log('║ prd init . ║');
|
|
137
|
+
console.log('║ ║');
|
|
138
|
+
console.log('║ 📖 查看帮助: prd --help ║');
|
|
139
|
+
console.log('║ ║');
|
|
140
|
+
console.log('║ 🤖 AI 集成说明: ║');
|
|
141
|
+
console.log('║ 初始化后会自动创建 AI 规则文件: ║');
|
|
142
|
+
console.log('║ - .agent/workflows/ PRD 工作流指引 ║');
|
|
143
|
+
console.log('║ - .cursorrules Cursor AI 规则 ║');
|
|
144
|
+
console.log('║ - .antigravity/ Antigravity AI 规则 ║');
|
|
145
|
+
console.log('║ ║');
|
|
146
|
+
console.log('╚════════════════════════════════════════════════════════════════╝');
|
|
147
|
+
console.log('');
|
|
148
|
+
|
|
121
149
|
return;
|
|
122
150
|
}
|
|
123
151
|
|