@lusipad/pmspec 1.0.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.
Files changed (60) hide show
  1. package/README.md +306 -0
  2. package/README.zh.md +304 -0
  3. package/bin/pmspec.js +5 -0
  4. package/dist/cli/index.d.ts +3 -0
  5. package/dist/cli/index.js +39 -0
  6. package/dist/commands/analyze.d.ts +4 -0
  7. package/dist/commands/analyze.js +240 -0
  8. package/dist/commands/breakdown.d.ts +4 -0
  9. package/dist/commands/breakdown.js +194 -0
  10. package/dist/commands/create.d.ts +4 -0
  11. package/dist/commands/create.js +529 -0
  12. package/dist/commands/history.d.ts +4 -0
  13. package/dist/commands/history.js +213 -0
  14. package/dist/commands/import.d.ts +4 -0
  15. package/dist/commands/import.js +196 -0
  16. package/dist/commands/index-legacy.d.ts +4 -0
  17. package/dist/commands/index-legacy.js +27 -0
  18. package/dist/commands/init.d.ts +3 -0
  19. package/dist/commands/init.js +60 -0
  20. package/dist/commands/list.d.ts +3 -0
  21. package/dist/commands/list.js +127 -0
  22. package/dist/commands/search.d.ts +7 -0
  23. package/dist/commands/search.js +183 -0
  24. package/dist/commands/serve.d.ts +3 -0
  25. package/dist/commands/serve.js +68 -0
  26. package/dist/commands/show.d.ts +3 -0
  27. package/dist/commands/show.js +152 -0
  28. package/dist/commands/simple.d.ts +7 -0
  29. package/dist/commands/simple.js +360 -0
  30. package/dist/commands/update.d.ts +4 -0
  31. package/dist/commands/update.js +247 -0
  32. package/dist/commands/validate.d.ts +3 -0
  33. package/dist/commands/validate.js +74 -0
  34. package/dist/core/changelog-service.d.ts +88 -0
  35. package/dist/core/changelog-service.js +208 -0
  36. package/dist/core/changelog.d.ts +113 -0
  37. package/dist/core/changelog.js +147 -0
  38. package/dist/core/importers.d.ts +343 -0
  39. package/dist/core/importers.js +715 -0
  40. package/dist/core/parser.d.ts +50 -0
  41. package/dist/core/parser.js +246 -0
  42. package/dist/core/project.d.ts +155 -0
  43. package/dist/core/project.js +138 -0
  44. package/dist/core/search.d.ts +119 -0
  45. package/dist/core/search.js +299 -0
  46. package/dist/core/simple-model.d.ts +54 -0
  47. package/dist/core/simple-model.js +20 -0
  48. package/dist/core/team.d.ts +41 -0
  49. package/dist/core/team.js +57 -0
  50. package/dist/core/workload.d.ts +49 -0
  51. package/dist/core/workload.js +116 -0
  52. package/dist/index.d.ts +15 -0
  53. package/dist/index.js +11 -0
  54. package/dist/utils/csv-handler.d.ts +15 -0
  55. package/dist/utils/csv-handler.js +224 -0
  56. package/dist/utils/markdown.d.ts +43 -0
  57. package/dist/utils/markdown.js +202 -0
  58. package/dist/utils/validation.d.ts +35 -0
  59. package/dist/utils/validation.js +178 -0
  60. package/package.json +71 -0
package/README.md ADDED
@@ -0,0 +1,306 @@
1
+ # PMSpec
2
+
3
+ **AI-driven project management with Markdown-based storage**
4
+
5
+ PMSpec 是一个轻量级的项目管理工具,受 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 启发,让管理者专注于高层次的需求变更,将 Epic/Feature/UserStory 的细分、工时估算和人员分配等工作交给 AI 自动处理。
6
+
7
+ ## ✨ 特性
8
+
9
+ - 📝 **Markdown 存储**: 所有数据以 Markdown 格式存储,便于版本控制和人工审查
10
+ - 🤖 **AI 驱动**: 通过 Claude Code 集成,手动执行 slash 命令分解需求并估算工时
11
+ - 📊 **工作负载分析**: 基于技能匹配和负载平衡的智能人员分配建议
12
+ - 🎯 **三层层次结构**: Epic → Feature → UserStory,符合敏捷最佳实践
13
+ - 🛠️ **CLI 工具**: 类似 Git 的命令行界面,简洁高效
14
+
15
+ ## 📦 安装
16
+
17
+ ```bash
18
+ npm install -g @lusipad/pmspec
19
+ ```
20
+
21
+ 或者本地开发:
22
+
23
+ ```bash
24
+ git clone https://github.com/pmspec/pmspec.git
25
+ cd pmspec
26
+ npm install
27
+ npm run build
28
+ npm link
29
+ ```
30
+
31
+ ## 🚀 快速开始
32
+
33
+ ### 1. 初始化项目
34
+
35
+ ```bash
36
+ pmspec init
37
+ ```
38
+
39
+ 这会在当前目录创建 `pmspace/` 结构:
40
+
41
+ ```
42
+ pmspace/
43
+ ├── project.md # 项目概览
44
+ ├── team.md # 团队成员和技能
45
+ ├── epics/ # Epic 文件夹
46
+ └── features/ # Feature 文件夹
47
+ ```
48
+
49
+ ### 2. 配置团队
50
+
51
+ 编辑 `pmspace/team.md`:
52
+
53
+ ```markdown
54
+ # Team
55
+
56
+ ## Members
57
+
58
+ ### Alice
59
+ - **Skills**: React, TypeScript, Node.js
60
+ - **Capacity**: 40 hours/week
61
+ - **Current Load**: 0 hours/week
62
+
63
+ ### Bob
64
+ - **Skills**: Python, Django, PostgreSQL
65
+ - **Capacity**: 30 hours/week
66
+ - **Current Load**: 0 hours/week
67
+ ```
68
+
69
+ ### 3. 创建 Epic
70
+
71
+ 在 `pmspace/epics/` 创建 `epic-001.md`:
72
+
73
+ ```markdown
74
+ # Epic: User Authentication System
75
+
76
+ - **ID**: EPIC-001
77
+ - **Status**: planning
78
+ - **Owner**: Alice
79
+ - **Estimate**: 80 hours
80
+ - **Actual**: 0 hours
81
+
82
+ ## Description
83
+ Build a complete user authentication system with login, signup, and password reset.
84
+
85
+ ## Features
86
+ - [ ] FEAT-001: Login form
87
+ - [ ] FEAT-002: Signup form
88
+ - [ ] FEAT-003: Password reset flow
89
+ ```
90
+
91
+ ### 4. 创建 Feature
92
+
93
+ 在 `pmspace/features/` 创建 `feat-001.md`:
94
+
95
+ ```markdown
96
+ # Feature: Login Form
97
+
98
+ - **ID**: FEAT-001
99
+ - **Epic**: EPIC-001
100
+ - **Status**: todo
101
+ - **Assignee**: Alice
102
+ - **Estimate**: 16 hours
103
+ - **Actual**: 0 hours
104
+ - **Skills Required**: React, TypeScript
105
+
106
+ ## Description
107
+ Responsive login form with email and password fields.
108
+
109
+ ## User Stories
110
+ - [ ] STORY-001: As a user, I want to enter credentials (4h)
111
+ - [ ] STORY-002: As a user, I want to see validation errors (3h)
112
+ - [ ] STORY-003: As a user, I want to reset password link (2h)
113
+
114
+ ## Acceptance Criteria
115
+ - [ ] Form validates email format
116
+ - [ ] Password is masked
117
+ - [ ] Shows error messages for invalid input
118
+ - [ ] Redirects to dashboard on success
119
+ ```
120
+
121
+ ### 5. 查看项目状态
122
+
123
+ ```bash
124
+ # 列出所有 Epics
125
+ pmspec list epics
126
+
127
+ # 列出所有 Features
128
+ pmspec list features
129
+
130
+ # 按状态过滤
131
+ pmspec list features --status in-progress
132
+
133
+ # 按负责人过滤
134
+ pmspec list features --assignee Alice
135
+
136
+ # 查看详情
137
+ pmspec show EPIC-001
138
+ pmspec show FEAT-001
139
+
140
+ # 验证项目数据
141
+ pmspec validate
142
+ ```
143
+
144
+ ## 🤖 AI 助手(Web UI 手动流程)
145
+
146
+ Web 前端提供“AI 助手”页面,用于安全地手动驱动 Claude Code:
147
+
148
+ 1. **录入需求**:在左侧输入原始需求描述,确认 prompt 预览中带有 `/pmspec-breakdown`。
149
+ 2. **手动调用**:将 prompt 复制到 Claude Code(或任意支持 slash command 的 IDE)中运行。
150
+ 3. **粘贴输出**:把 Claude 返回的 Markdown 原文粘贴到页面“AI 输出”文本框。
151
+ 4. **校验解析**:点击“解析 AI 输出”,界面会在本地解析为 Epic/Feature/User Story 结构,可直接复制 JSON 结果。
152
+
153
+ ⚠️ 该流程不会调用任何在线 AI API,密钥管理完全掌握在使用者手中。
154
+
155
+ ## 📚 CLI 命令
156
+
157
+ ### `pmspec init`
158
+
159
+ 初始化新的 PMSpec 项目。
160
+
161
+ ```bash
162
+ pmspec init # 创建 pmspace/ 目录结构
163
+ pmspec init --force # 强制重新初始化(覆盖现有文件)
164
+ ```
165
+
166
+ ### `pmspec list`
167
+
168
+ 列出 Epics 或 Features。
169
+
170
+ ```bash
171
+ pmspec list epics # 列出所有 Epics
172
+ pmspec list features # 列出所有 Features
173
+ pmspec list features --status todo # 过滤状态
174
+ pmspec list features --assignee Alice # 过滤负责人
175
+ ```
176
+
177
+ ### `pmspec show`
178
+
179
+ 显示 Epic 或 Feature 的详细信息。
180
+
181
+ ```bash
182
+ pmspec show EPIC-001 # 显示 Epic 详情和进度
183
+ pmspec show FEAT-001 # 显示 Feature 详情
184
+ ```
185
+
186
+ ### `pmspec validate`
187
+
188
+ 验证项目数据完整性。
189
+
190
+ ```bash
191
+ pmspec validate # 验证整个项目
192
+ pmspec validate EPIC-001 # 验证特定 Epic
193
+ pmspec validate FEAT-001 # 验证特定 Feature
194
+ ```
195
+
196
+ 验证检查:
197
+ - ✅ ID 唯一性
198
+ - ✅ 引用完整性(Feature 引用的 Epic 存在)
199
+ - ✅ 状态有效性
200
+ - ✅ 工时合理性(估算 > 0,实际 >= 0)
201
+ - ⚠️ 技能一致性(警告:所需技能不在团队中)
202
+
203
+ ## 🗂️ 数据模型
204
+
205
+ ### Epic
206
+
207
+ - **ID**: EPIC-XXX
208
+ - **Status**: `planning` | `in-progress` | `completed`
209
+ - **Owner**: 负责人姓名
210
+ - **Estimate**: 估算工时(小时)
211
+ - **Actual**: 实际工时(小时)
212
+ - **Features**: 关联的 Feature ID 列表
213
+
214
+ ### Feature
215
+
216
+ - **ID**: FEAT-XXX
217
+ - **Epic**: 父级 Epic ID
218
+ - **Status**: `todo` | `in-progress` | `done`
219
+ - **Assignee**: 分配给谁
220
+ - **Estimate**: 估算工时(小时)
221
+ - **Actual**: 实际工时(小时)
222
+ - **Skills Required**: 所需技能列表
223
+ - **User Stories**: 用户故事列表
224
+ - **Acceptance Criteria**: 验收标准
225
+
226
+ ### UserStory
227
+
228
+ - **ID**: STORY-XXX
229
+ - **Title**: 故事描述
230
+ - **Estimate**: 估算工时(小时)
231
+ - **Status**: `todo` | `in-progress` | `done`
232
+ - **Feature ID**: 父级 Feature ID
233
+
234
+ ## 🎯 设计理念
235
+
236
+ PMSpec 遵循以下设计原则:
237
+
238
+ 1. **简单优先**: 默认 <100 行代码的实现,避免过度工程化
239
+ 2. **Markdown 至上**: 所有数据都是人类可读的 Markdown 文件
240
+ 3. **Git 友好**: 每个 Epic/Feature 独立文件,减少合并冲突
241
+ 4. **AI 辅助**: 通过 Prompt 文件集成 Claude Code,无需 API 调用
242
+ 5. **命令行优先**: 类似 Git 的 CLI 体验,适合开发者工作流
243
+
244
+ ## 🛠️ 开发
245
+
246
+ ```bash
247
+ # 安装依赖
248
+ npm install
249
+
250
+ # 开发模式(监听文件变化)
251
+ npm run dev
252
+
253
+ # 构建
254
+ npm run build
255
+
256
+ # 运行测试
257
+ npm test
258
+
259
+ # 测试覆盖率
260
+ npm run test:coverage
261
+
262
+ # 本地测试 CLI
263
+ npm run dev:cli -- init
264
+ ```
265
+
266
+ ## 📚 文档
267
+
268
+ - **[快速入门指南 (QUICKSTART.md)](./QUICKSTART.md)** - 5 分钟上手 PMSpec
269
+ - **[AI 使用指南 (AI_GUIDE.md)](./AI_GUIDE.md)** - Claude Code AI 辅助功能详解
270
+ - **[示例项目 (examples/)](./examples/)** - 真实项目示例和最佳实践
271
+
272
+ ## 📊 项目状态
273
+
274
+ **当前版本**: 1.0.0 (MVP 已完成)
275
+
276
+ 已实现功能:
277
+ - ✅ 核心数据模型 (Epic, Feature, UserStory, Team)
278
+ - ✅ Markdown 解析器和生成器
279
+ - ✅ CLI 框架 (init, list, show, validate, create, update)
280
+ - ✅ 工作负载分析算法 (analyze 命令)
281
+ - ✅ 数据验证
282
+ - ✅ AI 任务分解集成 (Claude Code slash commands)
283
+ - ✅ 完整文档和示例
284
+
285
+ 计划功能 (Post-MVP):
286
+ - ⏳ 历史性能追踪
287
+ - ⏳ 依赖管理
288
+ - ⏳ 时间线可视化
289
+ - ⏳ 外部工具集成 (Jira, Linear)
290
+
291
+ ## 🤝 贡献
292
+
293
+ 欢迎贡献!请查看 [CONTRIBUTING.md](./CONTRIBUTING.md)(待添加)。
294
+
295
+ ## 📝 许可
296
+
297
+ MIT License - 详见 [LICENSE](./LICENSE)
298
+
299
+ ## 🙏 鸣谢
300
+
301
+ PMSpec 受到 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 的启发。感谢 OpenSpec 团队提供了优秀的规范驱动开发模式。
302
+
303
+ ---
304
+
305
+ **Made with ❤️ for better project management**
306
+
package/README.zh.md ADDED
@@ -0,0 +1,304 @@
1
+ # PMSpec
2
+
3
+ [English](./README.md)
4
+
5
+ **AI-driven project management with Markdown-based storage**
6
+
7
+ PMSpec 是一个轻量级的项目管理工具,受 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 启发,让管理者专注于高层次的需求变更,将 Epic/Feature/UserStory 的细分、工时估算和人员分配等工作交给 AI 自动处理。
8
+
9
+ ## ✨ 特性
10
+
11
+ - 📝 **Markdown 存储**: 所有数据以 Markdown 格式存储,便于版本控制和人工审查
12
+ - 🤖 **AI 驱动**: 通过 Claude Code 集成,自动分解需求和估算工时
13
+ - 📊 **工作负载分析**: 基于技能匹配和负载平衡的智能人员分配建议
14
+ - 🎯 **三层层次结构**: Epic → Feature → UserStory,符合敏捷最佳实践
15
+ - 🛠️ **CLI 工具**: 类似 Git 的命令行界面,简洁高效
16
+
17
+ ## 📦 安装
18
+
19
+ ```bash
20
+ npm install -g @lusipad/pmspec
21
+ ```
22
+
23
+ 或使用 npx(无需安装):
24
+
25
+ ```bash
26
+ npx @lusipad/pmspec init
27
+ ```
28
+
29
+ 或者本地开发:
30
+
31
+ ```bash
32
+ git clone https://github.com/pmspec/pmspec.git
33
+ cd pmspec
34
+ npm install
35
+ npm run build
36
+ npm link
37
+ ```
38
+
39
+ ## 🚀 快速开始
40
+
41
+ ### 1. 初始化项目
42
+
43
+ ```bash
44
+ pmspec init
45
+ ```
46
+
47
+ 这会在当前目录创建 `pmspace/` 结构:
48
+
49
+ ```
50
+ pmspace/
51
+ ├── project.md # 项目概览
52
+ ├── team.md # 团队成员和技能
53
+ ├── epics/ # Epic 文件夹
54
+ └── features/ # Feature 文件夹
55
+ ```
56
+
57
+ ### 2. 配置团队
58
+
59
+ 编辑 `pmspace/team.md`:
60
+
61
+ ```markdown
62
+ # Team
63
+
64
+ ## Members
65
+
66
+ ### Alice
67
+ - **Skills**: React, TypeScript, Node.js
68
+ - **Capacity**: 40 hours/week
69
+ - **Current Load**: 0 hours/week
70
+
71
+ ### Bob
72
+ - **Skills**: Python, Django, PostgreSQL
73
+ - **Capacity**: 30 hours/week
74
+ - **Current Load**: 0 hours/week
75
+ ```
76
+
77
+ ### 3. 创建 Epic
78
+
79
+ 在 `pmspace/epics/` 创建 `epic-001.md`:
80
+
81
+ ```markdown
82
+ # Epic: User Authentication System
83
+
84
+ - **ID**: EPIC-001
85
+ - **Status**: planning
86
+ - **Owner**: Alice
87
+ - **Estimate**: 80 hours
88
+ - **Actual**: 0 hours
89
+
90
+ ## Description
91
+ Build a complete user authentication system with login, signup, and password reset.
92
+
93
+ ## Features
94
+ - [ ] FEAT-001: Login form
95
+ - [ ] FEAT-002: Signup form
96
+ - [ ] FEAT-003: Password reset flow
97
+ ```
98
+
99
+ ### 4. 创建 Feature
100
+
101
+ 在 `pmspace/features/` 创建 `feat-001.md`:
102
+
103
+ ```markdown
104
+ # Feature: Login Form
105
+
106
+ - **ID**: FEAT-001
107
+ - **Epic**: EPIC-001
108
+ - **Status**: todo
109
+ - **Assignee**: Alice
110
+ - **Estimate**: 16 hours
111
+ - **Actual**: 0 hours
112
+ - **Skills Required**: React, TypeScript
113
+
114
+ ## Description
115
+ Responsive login form with email and password fields.
116
+
117
+ ## User Stories
118
+ - [ ] STORY-001: As a user, I want to enter credentials (4h)
119
+ - [ ] STORY-002: As a user, I want to see validation errors (3h)
120
+ - [ ] STORY-003: As a user, I want to reset password link (2h)
121
+
122
+ ## Acceptance Criteria
123
+ - [ ] Form validates email format
124
+ - [ ] Password is masked
125
+ - [ ] Shows error messages for invalid input
126
+ - [ ] Redirects to dashboard on success
127
+ ```
128
+
129
+ ### 5. 查看项目状态
130
+
131
+ ```bash
132
+ # 列出所有 Epics
133
+ pmspec list epics
134
+
135
+ # 列出所有 Features
136
+ pmspec list features
137
+
138
+ # 按状态过滤
139
+ pmspec list features --status in-progress
140
+
141
+ # 按负责人过滤
142
+ pmspec list features --assignee Alice
143
+
144
+ # 查看详情
145
+ pmspec show EPIC-001
146
+ pmspec show FEAT-001
147
+
148
+ # 验证项目数据
149
+ pmspec validate
150
+ ```
151
+
152
+ ## 📚 CLI 命令
153
+
154
+ ### `pmspec init`
155
+
156
+ 初始化新的 PMSpec 项目。
157
+
158
+ ```bash
159
+ pmspec init # 创建 pmspace/ 目录结构
160
+ pmspec init --force # 强制重新初始化(覆盖现有文件)
161
+ ```
162
+
163
+ ### `pmspec list`
164
+
165
+ 列出 Epics 或 Features。
166
+
167
+ ```bash
168
+ pmspec list epics # 列出所有 Epics
169
+ pmspec list features # 列出所有 Features
170
+ pmspec list features --status todo # 过滤状态
171
+ pmspec list features --assignee Alice # 过滤负责人
172
+ ```
173
+
174
+ ### `pmspec show`
175
+
176
+ 显示 Epic 或 Feature 的详细信息。
177
+
178
+ ```bash
179
+ pmspec show EPIC-001 # 显示 Epic 详情和进度
180
+ pmspec show FEAT-001 # 显示 Feature 详情
181
+ ```
182
+
183
+ ### `pmspec validate`
184
+
185
+ 验证项目数据完整性。
186
+
187
+ ```bash
188
+ pmspec validate # 验证整个项目
189
+ pmspec validate EPIC-001 # 验证特定 Epic
190
+ pmspec validate FEAT-001 # 验证特定 Feature
191
+ ```
192
+
193
+ 验证检查:
194
+ - ✅ ID 唯一性
195
+ - ✅ 引用完整性(Feature 引用的 Epic 存在)
196
+ - ✅ 状态有效性
197
+ - ✅ 工时合理性(估算 > 0,实际 >= 0)
198
+ - ⚠️ 技能一致性(警告:所需技能不在团队中)
199
+
200
+ ## 🗂️ 数据模型
201
+
202
+ ### Epic
203
+
204
+ - **ID**: EPIC-XXX
205
+ - **Status**: `planning` | `in-progress` | `completed`
206
+ - **Owner**: 负责人姓名
207
+ - **Estimate**: 估算工时(小时)
208
+ - **Actual**: 实际工时(小时)
209
+ - **Features**: 关联的 Feature ID 列表
210
+
211
+ ### Feature
212
+
213
+ - **ID**: FEAT-XXX
214
+ - **Epic**: 父级 Epic ID
215
+ - **Status**: `todo` | `in-progress` | `done`
216
+ - **Assignee**: 分配给谁
217
+ - **Estimate**: 估算工时(小时)
218
+ - **Actual**: 实际工时(小时)
219
+ - **Skills Required**: 所需技能列表
220
+ - **User Stories**: 用户故事列表
221
+ - **Acceptance Criteria**: 验收标准
222
+
223
+ ### UserStory
224
+
225
+ - **ID**: STORY-XXX
226
+ - **Title**: 故事描述
227
+ - **Estimate**: 估算工时(小时)
228
+ - **Status**: `todo` | `in-progress` | `done`
229
+ - **Feature ID**: 父级 Feature ID
230
+
231
+ ## 🎯 设计理念
232
+
233
+ PMSpec 遵循以下设计原则:
234
+
235
+ 1. **简单优先**: 默认 <100 行代码的实现,避免过度工程化
236
+ 2. **Markdown 至上**: 所有数据都是人类可读的 Markdown 文件
237
+ 3. **Git 友好**: 每个 Epic/Feature 独立文件,减少合并冲突
238
+ 4. **AI 辅助**: 通过 Prompt 文件集成 Claude Code,无需 API 调用
239
+ 5. **命令行优先**: 类似 Git 的 CLI 体验,适合开发者工作流
240
+
241
+ ## 🛠️ 开发
242
+
243
+ ```bash
244
+ # 安装依赖
245
+ npm install
246
+
247
+ # 开发模式(监听文件变化)
248
+ npm run dev
249
+
250
+ # 构建
251
+ npm run build
252
+
253
+ # 运行测试
254
+ npm test
255
+
256
+ # 测试覆盖率
257
+ npm run test:coverage
258
+
259
+ # 本地测试 CLI
260
+ npm run dev:cli -- init
261
+ ```
262
+
263
+ ## 📚 文档
264
+
265
+ - **[快速入门指南 (QUICKSTART.md)](./QUICKSTART.md)** - 5 分钟上手 PMSpec
266
+ - **[AI 使用指南 (AI_GUIDE.md)](./AI_GUIDE.md)** - Claude Code AI 辅助功能详解
267
+ - **[发布指南 (PUBLISHING.md)](./PUBLISHING.md)** - 如何发布包到 npm
268
+ - **[示例项目 (examples/)](./examples/)** - 真实项目示例和最佳实践
269
+
270
+ ## 📊 项目状态
271
+
272
+ **当前版本**: 1.0.0 (MVP 已完成)
273
+
274
+ 已实现功能:
275
+ - ✅ 核心数据模型 (Epic, Feature, UserStory, Team)
276
+ - ✅ Markdown 解析器和生成器
277
+ - ✅ CLI 框架 (init, list, show, validate, create, update)
278
+ - ✅ 工作负载分析算法 (analyze 命令)
279
+ - ✅ 数据验证
280
+ - ✅ AI 任务分解集成 (Claude Code slash commands)
281
+ - ✅ 完整文档和示例
282
+
283
+ 计划功能 (Post-MVP):
284
+ - ⏳ 历史性能追踪
285
+ - ⏳ 依赖管理
286
+ - ⏳ 时间线可视化
287
+ - ⏳ 外部工具集成 (Jira, Linear)
288
+
289
+ ## 🤝 贡献
290
+
291
+ 欢迎贡献!请查看 [CONTRIBUTING.md](./CONTRIBUTING.md)(待添加)。
292
+
293
+ ## 📝 许可
294
+
295
+ MIT License - 详见 [LICENSE](./LICENSE)
296
+
297
+ ## 🙏 鸣谢
298
+
299
+ PMSpec 受到 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 的启发。感谢 OpenSpec 团队提供了优秀的规范驱动开发模式。
300
+
301
+ ---
302
+
303
+ **Made with ❤️ for better project management**
304
+
package/bin/pmspec.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/cli/index.js').catch((err) => {
3
+ console.error('Failed to load PMSpec CLI:', err);
4
+ process.exit(1);
5
+ });
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ // Import only simple mode commands
5
+ import { simpleCommand, generateCommand as simpleGenerateCommand, listCommand as simpleListCommand, statsCommand } from '../commands/simple.js';
6
+ import { serveCommand } from '../commands/serve.js';
7
+ import { historyCommand } from '../commands/history.js';
8
+ import { searchCommand } from '../commands/search.js';
9
+ import { importCommand } from '../commands/import.js';
10
+ const program = new Command();
11
+ program
12
+ .name('pmspec')
13
+ .description('简化的项目管理工具 - 只需维护一个功能表')
14
+ .version('1.0.0');
15
+ // Add simple commands to main program
16
+ program.addCommand(simpleCommand);
17
+ simpleCommand.addCommand(simpleGenerateCommand);
18
+ simpleCommand.addCommand(simpleListCommand);
19
+ simpleCommand.addCommand(statsCommand);
20
+ // Add serve command (Web UI)
21
+ program.addCommand(serveCommand);
22
+ // Add history command (changelog)
23
+ program.addCommand(historyCommand);
24
+ // Add search command
25
+ program.addCommand(searchCommand);
26
+ // Add import command
27
+ program.addCommand(importCommand);
28
+ // Error handling
29
+ program.exitOverride();
30
+ try {
31
+ await program.parseAsync(process.argv);
32
+ }
33
+ catch (error) {
34
+ if (error.code !== 'commander.help' && error.code !== 'commander.version') {
35
+ console.error(chalk.red('Error:'), error.message);
36
+ process.exit(1);
37
+ }
38
+ }
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ declare const analyzeCommand: Command;
3
+ export { analyzeCommand };
4
+ //# sourceMappingURL=analyze.d.ts.map