issuekit 0.1.0__tar.gz → 0.1.2__tar.gz
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.
- {issuekit-0.1.0 → issuekit-0.1.2}/PKG-INFO +56 -53
- {issuekit-0.1.0 → issuekit-0.1.2}/README.md +155 -152
- {issuekit-0.1.0 → issuekit-0.1.2}/pyproject.toml +1 -1
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/__init__.py +1 -1
- issuekit-0.1.2/src/issuekit/agent_skills.py +55 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/agents/__init__.py +1 -1
- issuekit-0.1.2/src/issuekit/agents/registry.py +52 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.change.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-change/SKILL.md +7 -8
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-change/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.coding.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-coding/SKILL.md +5 -12
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-coding/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.design.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-design/SKILL.md +6 -13
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-design/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.knowledge.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-knowledge/SKILL.md +6 -4
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-knowledge/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.release.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-release/SKILL.md +85 -90
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-release/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.require.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-require/SKILL.md +7 -14
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-require/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.review.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-review/SKILL.md +5 -6
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-review/agents/openai.yaml +4 -0
- issuekit-0.1.0/src/issuekit/bundled_commands/issuekit.test.md → issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-test/SKILL.md +6 -11
- issuekit-0.1.2/src/issuekit/bundled_skills/issuekit-test/agents/openai.yaml +4 -0
- issuekit-0.1.2/src/issuekit/bundled_templates/release-note.md +123 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/cli.py +3 -1
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/commands/init.py +25 -19
- issuekit-0.1.2/src/issuekit/knowledge/__init__.py +5 -0
- issuekit-0.1.0/src/issuekit/agent_commands.py +0 -80
- issuekit-0.1.0/src/issuekit/agents/registry.py +0 -68
- issuekit-0.1.0/src/issuekit/bundled_templates/release-note.md +0 -90
- issuekit-0.1.0/src/issuekit/knowledge/__init__.py +0 -32
- {issuekit-0.1.0 → issuekit-0.1.2}/.gitignore +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/LICENSE +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/bundled_templates/code-review.md +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/bundled_templates/requirement.md +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/bundled_templates/technical-design.md +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/bundled_templates/test-plan.md +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/commands/__init__.py +0 -0
- {issuekit-0.1.0 → issuekit-0.1.2}/src/issuekit/templates.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: issuekit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: AI 辅助开发的 Issue 全生命周期工具。从需求分析到代码审核,由你的 AI 编程助手驱动。
|
|
5
5
|
Project-URL: Homepage, https://github.com/xsg22/issue-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/xsg22/issue-kit
|
|
@@ -29,18 +29,20 @@ AI 辅助开发的 Issue 全生命周期工具。从需求分析到代码审核
|
|
|
29
29
|
|
|
30
30
|
## IssueKit 是什么?
|
|
31
31
|
|
|
32
|
-
IssueKit 为 AI
|
|
32
|
+
IssueKit 为 AI 辅助开发提供结构化的工作流。它提供一组 Skills,引导你的 AI 编程助手(Cursor、Claude Code、Codex 等)完成一个 Issue 的完整生命周期:
|
|
33
33
|
|
|
34
|
-
| 阶段 | 命令 | 说明 |
|
|
35
|
-
|------|------|------|
|
|
36
|
-
| 1. 需求分析 | `/issuekit.require` | 分析需求,生成面向产品经理的需求文档 |
|
|
37
|
-
| 2. 技术方案 | `/issuekit.design` | 架构设计、接口设计、组件设计、开发步骤 |
|
|
38
|
-
| 3. 编码实现 | `/issuekit.coding` | 按技术方案编码,交叉校验代码与文档一致性 |
|
|
39
|
-
| 4. 测试方案 | `/issuekit.test` | 黑盒业务测试 + 白盒单测/接口测试用例 |
|
|
40
|
-
| 5. 发布准备 | `/issuekit.release` | 生成发布文档,创建 Pull Request |
|
|
41
|
-
| 6. 代码审核 | `/issuekit.review` | 多维度交叉验证(需求、方案、质量) |
|
|
42
34
|
|
|
43
|
-
|
|
35
|
+
| 阶段 | Skill | 说明 |
|
|
36
|
+
| ------- | ------------------- | ---------------------- |
|
|
37
|
+
| 1. 需求分析 | `$issuekit-require` | 分析需求,生成面向产品经理的需求文档 |
|
|
38
|
+
| 2. 技术方案 | `$issuekit-design` | 架构设计、接口设计、组件设计、开发步骤 |
|
|
39
|
+
| 3. 编码实现 | `$issuekit-coding` | 按技术方案编码,交叉校验代码与文档一致性 |
|
|
40
|
+
| 4. 测试方案 | `$issuekit-test` | 黑盒业务测试 + 白盒单测/接口测试用例 |
|
|
41
|
+
| 5. 发布准备 | `$issuekit-release` | 生成发布文档,创建 Pull Request |
|
|
42
|
+
| 6. 代码审核 | `$issuekit-review` | 多维度交叉验证(需求、方案、质量) |
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
还有一个 `$issuekit-knowledge` skill,用于生成项目上下文摘要,让 AI 助手快速理解项目。
|
|
44
46
|
|
|
45
47
|
## 安装
|
|
46
48
|
|
|
@@ -56,10 +58,12 @@ pip install issuekit
|
|
|
56
58
|
|
|
57
59
|
```bash
|
|
58
60
|
cd your-project
|
|
59
|
-
issuekit init --ai cursor
|
|
61
|
+
issuekit init --ai cursor # Cursor
|
|
62
|
+
issuekit init --ai codex # Codex
|
|
63
|
+
issuekit init --ai claude # Claude Code
|
|
60
64
|
```
|
|
61
65
|
|
|
62
|
-
这会创建 `.issuekit/` 目录(模板 +
|
|
66
|
+
这会创建 `.issuekit/` 目录(模板 + 知识库配置),并将 Skills 安装到对应目录。
|
|
63
67
|
|
|
64
68
|
默认 Issue 文档存放在项目根目录的 `issues/` 文件夹下。你也可以自定义目录:
|
|
65
69
|
|
|
@@ -69,10 +73,10 @@ issuekit init --ai cursor --issues-dir doc/issues
|
|
|
69
73
|
|
|
70
74
|
### 第 2 步:构建项目知识(可选但推荐)
|
|
71
75
|
|
|
72
|
-
在
|
|
76
|
+
在 AI 助手中运行:
|
|
73
77
|
|
|
74
78
|
```
|
|
75
|
-
|
|
79
|
+
$issuekit-knowledge
|
|
76
80
|
```
|
|
77
81
|
|
|
78
82
|
AI 助手会分析你的项目,生成结构化的知识摘要到 `.issuekit/knowledge/`。后续的需求分析和技术方案设计会自动读取这些摘要。
|
|
@@ -81,13 +85,8 @@ AI 助手会分析你的项目,生成结构化的知识摘要到 `.issuekit/kn
|
|
|
81
85
|
|
|
82
86
|
假设产品经理给了一个需求:"用户个人资料页面增加修改头像功能,支持裁剪和压缩"。
|
|
83
87
|
|
|
84
|
-
在
|
|
88
|
+
在 AI 助手中调用 `$issuekit-require`,AI 助手会:
|
|
85
89
|
|
|
86
|
-
```
|
|
87
|
-
/issuekit.require 用户个人资料页面增加修改头像功能,支持裁剪和压缩
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
AI 助手会:
|
|
91
90
|
1. 深入分析代码,理解现有用户模块的实现
|
|
92
91
|
2. 生成 Issue ID(如 `FEAT-20260228-avatar-upload`)
|
|
93
92
|
3. 创建 `issues/FEAT-20260228-avatar-upload/requirement.md`
|
|
@@ -97,51 +96,48 @@ AI 助手会:
|
|
|
97
96
|
|
|
98
97
|
### 第 4 步:设计技术方案
|
|
99
98
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
/issuekit.design
|
|
104
|
-
```
|
|
99
|
+
需求确认后,调用 `$issuekit-design`。
|
|
105
100
|
|
|
106
101
|
生成 `technical-design.md`,涵盖技术调研、架构设计、核心流程、组件设计、接口设计、开发步骤。
|
|
107
102
|
|
|
108
103
|
### 第 5 步:编码实现
|
|
109
104
|
|
|
110
|
-
|
|
111
|
-
/issuekit.coding
|
|
112
|
-
```
|
|
105
|
+
调用 `$issuekit-coding`。
|
|
113
106
|
|
|
114
107
|
AI 助手按技术文档的开发步骤逐步实现,完成后自动交叉校验代码与技术文档、需求文档的一致性。
|
|
115
108
|
|
|
116
109
|
### 第 6 步:后续流程
|
|
117
110
|
|
|
118
111
|
```
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
$issuekit-test # 生成测试方案
|
|
113
|
+
$issuekit-release # 生成发布文档 + 创建 PR
|
|
114
|
+
$issuekit-review # 多维度代码审核
|
|
122
115
|
```
|
|
123
116
|
|
|
124
117
|
## `init` 做了什么
|
|
125
118
|
|
|
126
119
|
1. 创建 `.issuekit/` 目录:
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
120
|
+
- `config.yaml` — 项目配置(Issue 文档目录等)
|
|
121
|
+
- `templates/` — 各阶段文档模板(需求、技术方案、测试、发布、审核)
|
|
122
|
+
- `knowledge/` — 项目上下文知识摘要
|
|
123
|
+
2. 安装 Skills 到对应目录:
|
|
124
|
+
- Cursor → `.cursor/skills/`
|
|
125
|
+
- Claude Code → `.claude/skills/`
|
|
126
|
+
- Codex → `.agents/skills/`
|
|
127
|
+
- GitHub Copilot → `.github/skills/`
|
|
130
128
|
|
|
131
|
-
|
|
132
|
-
- Cursor → `.cursor/commands/`
|
|
133
|
-
- Claude Code → `.claude/commands/`
|
|
134
|
-
- Codex → `.codex/commands/`
|
|
135
|
-
- GitHub Copilot → `.github/agents/`
|
|
129
|
+
每个 Skill 包含 `SKILL.md`(指令)和 `agents/openai.yaml`(元数据)。
|
|
136
130
|
|
|
137
131
|
## 支持的 AI 助手
|
|
138
132
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
133
|
+
|
|
134
|
+
| AI 助手 | 参数 | Skills 目录 |
|
|
135
|
+
| -------------- | -------------- | ----------------- |
|
|
136
|
+
| Cursor | `--ai cursor` | `.cursor/skills/` |
|
|
137
|
+
| Claude Code | `--ai claude` | `.claude/skills/` |
|
|
138
|
+
| Codex | `--ai codex` | `.agents/skills/` |
|
|
139
|
+
| GitHub Copilot | `--ai copilot` | `.github/skills/` |
|
|
140
|
+
|
|
145
141
|
|
|
146
142
|
## 目录结构
|
|
147
143
|
|
|
@@ -156,22 +152,29 @@ AI 助手按技术文档的开发步骤逐步实现,完成后自动交叉校
|
|
|
156
152
|
│ └── code-review.md # 代码审核模板
|
|
157
153
|
└── knowledge/ # 项目上下文知识摘要
|
|
158
154
|
├── config.yaml # 知识库配置
|
|
159
|
-
├── project-overview.md #
|
|
155
|
+
├── project-overview.md # 项目概览
|
|
160
156
|
├── architecture.md # 架构分析
|
|
161
157
|
├── api-surface.md # API 接口摘要
|
|
162
158
|
├── data-model.md # 数据模型摘要
|
|
163
159
|
├── integrations.md # 外部集成摘要
|
|
164
160
|
└── conventions.md # 编码约定摘要
|
|
165
161
|
|
|
162
|
+
.cursor/skills/ # Cursor Skills(示例)
|
|
163
|
+
├── issuekit-require/
|
|
164
|
+
│ └── SKILL.md
|
|
165
|
+
├── issuekit-design/
|
|
166
|
+
│ └── SKILL.md
|
|
167
|
+
└── ...
|
|
168
|
+
|
|
166
169
|
issues/ # Issue 文档(默认目录,可通过 --issues-dir 自定义)
|
|
167
170
|
└── FEAT-20260228-xxx/
|
|
168
|
-
├── requirement.md
|
|
169
|
-
├── technical-design.md
|
|
170
|
-
├── test-plan.md
|
|
171
|
-
├── release-note.md
|
|
172
|
-
└── code-review.md
|
|
171
|
+
├── requirement.md
|
|
172
|
+
├── technical-design.md
|
|
173
|
+
├── test-plan.md
|
|
174
|
+
├── release-note.md
|
|
175
|
+
└── code-review.md
|
|
173
176
|
```
|
|
174
177
|
|
|
175
178
|
## 许可证
|
|
176
179
|
|
|
177
|
-
MIT
|
|
180
|
+
MIT
|
|
@@ -1,152 +1,155 @@
|
|
|
1
|
-
# IssueKit
|
|
2
|
-
|
|
3
|
-
AI 辅助开发的 Issue 全生命周期工具。从需求分析到代码审核,由你的 AI 编程助手驱动。
|
|
4
|
-
|
|
5
|
-
## IssueKit 是什么?
|
|
6
|
-
|
|
7
|
-
IssueKit 为 AI
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
.
|
|
125
|
-
├──
|
|
126
|
-
├──
|
|
127
|
-
│
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
├──
|
|
134
|
-
├──
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
└──
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
├──
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
1
|
+
# IssueKit
|
|
2
|
+
|
|
3
|
+
AI 辅助开发的 Issue 全生命周期工具。从需求分析到代码审核,由你的 AI 编程助手驱动。
|
|
4
|
+
|
|
5
|
+
## IssueKit 是什么?
|
|
6
|
+
|
|
7
|
+
IssueKit 为 AI 辅助开发提供结构化的工作流。它提供一组 Skills,引导你的 AI 编程助手(Cursor、Claude Code、Codex 等)完成一个 Issue 的完整生命周期:
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
| 阶段 | Skill | 说明 |
|
|
11
|
+
| ------- | ------------------- | ---------------------- |
|
|
12
|
+
| 1. 需求分析 | `$issuekit-require` | 分析需求,生成面向产品经理的需求文档 |
|
|
13
|
+
| 2. 技术方案 | `$issuekit-design` | 架构设计、接口设计、组件设计、开发步骤 |
|
|
14
|
+
| 3. 编码实现 | `$issuekit-coding` | 按技术方案编码,交叉校验代码与文档一致性 |
|
|
15
|
+
| 4. 测试方案 | `$issuekit-test` | 黑盒业务测试 + 白盒单测/接口测试用例 |
|
|
16
|
+
| 5. 发布准备 | `$issuekit-release` | 生成发布文档,创建 Pull Request |
|
|
17
|
+
| 6. 代码审核 | `$issuekit-review` | 多维度交叉验证(需求、方案、质量) |
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
还有一个 `$issuekit-knowledge` skill,用于生成项目上下文摘要,让 AI 助手快速理解项目。
|
|
21
|
+
|
|
22
|
+
## 安装
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install issuekit
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 快速上手
|
|
29
|
+
|
|
30
|
+
### 第 1 步:初始化
|
|
31
|
+
|
|
32
|
+
在你的项目根目录运行:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
cd your-project
|
|
36
|
+
issuekit init --ai cursor # Cursor
|
|
37
|
+
issuekit init --ai codex # Codex
|
|
38
|
+
issuekit init --ai claude # Claude Code
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
这会创建 `.issuekit/` 目录(模板 + 知识库配置),并将 Skills 安装到对应目录。
|
|
42
|
+
|
|
43
|
+
默认 Issue 文档存放在项目根目录的 `issues/` 文件夹下。你也可以自定义目录:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
issuekit init --ai cursor --issues-dir doc/issues
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 第 2 步:构建项目知识(可选但推荐)
|
|
50
|
+
|
|
51
|
+
在 AI 助手中运行:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
$issuekit-knowledge
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
AI 助手会分析你的项目,生成结构化的知识摘要到 `.issuekit/knowledge/`。后续的需求分析和技术方案设计会自动读取这些摘要。
|
|
58
|
+
|
|
59
|
+
### 第 3 步:创建第一个 Issue
|
|
60
|
+
|
|
61
|
+
假设产品经理给了一个需求:"用户个人资料页面增加修改头像功能,支持裁剪和压缩"。
|
|
62
|
+
|
|
63
|
+
在 AI 助手中调用 `$issuekit-require`,AI 助手会:
|
|
64
|
+
|
|
65
|
+
1. 深入分析代码,理解现有用户模块的实现
|
|
66
|
+
2. 生成 Issue ID(如 `FEAT-20260228-avatar-upload`)
|
|
67
|
+
3. 创建 `issues/FEAT-20260228-avatar-upload/requirement.md`
|
|
68
|
+
4. 从 master 拉出特性分支 `feature/FEAT-20260228-avatar-upload`
|
|
69
|
+
|
|
70
|
+
需求文档包含:用户故事(Mermaid 流程图)、边界场景、验收标准、AI 需求评审、待确认问题。
|
|
71
|
+
|
|
72
|
+
### 第 4 步:设计技术方案
|
|
73
|
+
|
|
74
|
+
需求确认后,调用 `$issuekit-design`。
|
|
75
|
+
|
|
76
|
+
生成 `technical-design.md`,涵盖技术调研、架构设计、核心流程、组件设计、接口设计、开发步骤。
|
|
77
|
+
|
|
78
|
+
### 第 5 步:编码实现
|
|
79
|
+
|
|
80
|
+
调用 `$issuekit-coding`。
|
|
81
|
+
|
|
82
|
+
AI 助手按技术文档的开发步骤逐步实现,完成后自动交叉校验代码与技术文档、需求文档的一致性。
|
|
83
|
+
|
|
84
|
+
### 第 6 步:后续流程
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
$issuekit-test # 生成测试方案
|
|
88
|
+
$issuekit-release # 生成发布文档 + 创建 PR
|
|
89
|
+
$issuekit-review # 多维度代码审核
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## `init` 做了什么
|
|
93
|
+
|
|
94
|
+
1. 创建 `.issuekit/` 目录:
|
|
95
|
+
- `config.yaml` — 项目配置(Issue 文档目录等)
|
|
96
|
+
- `templates/` — 各阶段文档模板(需求、技术方案、测试、发布、审核)
|
|
97
|
+
- `knowledge/` — 项目上下文知识摘要
|
|
98
|
+
2. 安装 Skills 到对应目录:
|
|
99
|
+
- Cursor → `.cursor/skills/`
|
|
100
|
+
- Claude Code → `.claude/skills/`
|
|
101
|
+
- Codex → `.agents/skills/`
|
|
102
|
+
- GitHub Copilot → `.github/skills/`
|
|
103
|
+
|
|
104
|
+
每个 Skill 包含 `SKILL.md`(指令)和 `agents/openai.yaml`(元数据)。
|
|
105
|
+
|
|
106
|
+
## 支持的 AI 助手
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
| AI 助手 | 参数 | Skills 目录 |
|
|
110
|
+
| -------------- | -------------- | ----------------- |
|
|
111
|
+
| Cursor | `--ai cursor` | `.cursor/skills/` |
|
|
112
|
+
| Claude Code | `--ai claude` | `.claude/skills/` |
|
|
113
|
+
| Codex | `--ai codex` | `.agents/skills/` |
|
|
114
|
+
| GitHub Copilot | `--ai copilot` | `.github/skills/` |
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## 目录结构
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
.issuekit/
|
|
121
|
+
├── config.yaml # 项目配置(issues_dir 等)
|
|
122
|
+
├── templates/ # 文档模板
|
|
123
|
+
│ ├── requirement.md # 需求文档模板
|
|
124
|
+
│ ├── technical-design.md # 技术方案模板
|
|
125
|
+
│ ├── test-plan.md # 测试方案模板
|
|
126
|
+
│ ├── release-note.md # 发布文档模板
|
|
127
|
+
│ └── code-review.md # 代码审核模板
|
|
128
|
+
└── knowledge/ # 项目上下文知识摘要
|
|
129
|
+
├── config.yaml # 知识库配置
|
|
130
|
+
├── project-overview.md # 项目概览
|
|
131
|
+
├── architecture.md # 架构分析
|
|
132
|
+
├── api-surface.md # API 接口摘要
|
|
133
|
+
├── data-model.md # 数据模型摘要
|
|
134
|
+
├── integrations.md # 外部集成摘要
|
|
135
|
+
└── conventions.md # 编码约定摘要
|
|
136
|
+
|
|
137
|
+
.cursor/skills/ # Cursor Skills(示例)
|
|
138
|
+
├── issuekit-require/
|
|
139
|
+
│ └── SKILL.md
|
|
140
|
+
├── issuekit-design/
|
|
141
|
+
│ └── SKILL.md
|
|
142
|
+
└── ...
|
|
143
|
+
|
|
144
|
+
issues/ # Issue 文档(默认目录,可通过 --issues-dir 自定义)
|
|
145
|
+
└── FEAT-20260228-xxx/
|
|
146
|
+
├── requirement.md
|
|
147
|
+
├── technical-design.md
|
|
148
|
+
├── test-plan.md
|
|
149
|
+
├── release-note.md
|
|
150
|
+
└── code-review.md
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 许可证
|
|
154
|
+
|
|
155
|
+
MIT
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""将 issuekit skills 安装到目标目录。
|
|
2
|
+
|
|
3
|
+
每个 skill 是一个独立目录,包含 SKILL.md。
|
|
4
|
+
Codex 额外需要 agents/openai.yaml 元数据文件。
|
|
5
|
+
源模板在 bundled_skills/ 下,按 skill-name/{SKILL.md, agents/openai.yaml} 组织。
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from importlib import resources
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
SKILL_DIRS = [
|
|
12
|
+
"issuekit-require",
|
|
13
|
+
"issuekit-design",
|
|
14
|
+
"issuekit-coding",
|
|
15
|
+
"issuekit-test",
|
|
16
|
+
"issuekit-release",
|
|
17
|
+
"issuekit-review",
|
|
18
|
+
"issuekit-change",
|
|
19
|
+
"issuekit-knowledge",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def install_agent_skills(skills_dir: Path, *, include_openai_yaml: bool = False) -> int:
|
|
24
|
+
"""将所有 bundled skills 安装到目标目录,返回安装数。
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
skills_dir: 目标 skills 目录。
|
|
28
|
+
include_openai_yaml: 是否同时复制 agents/openai.yaml(仅 Codex 需要)。
|
|
29
|
+
"""
|
|
30
|
+
bundled = resources.files("issuekit") / "bundled_skills"
|
|
31
|
+
count = 0
|
|
32
|
+
|
|
33
|
+
for skill_name in SKILL_DIRS:
|
|
34
|
+
source_dir = bundled / skill_name
|
|
35
|
+
skill_md = source_dir / "SKILL.md"
|
|
36
|
+
if not skill_md.is_file():
|
|
37
|
+
continue
|
|
38
|
+
|
|
39
|
+
dest_dir = skills_dir / skill_name
|
|
40
|
+
dest_dir.mkdir(parents=True, exist_ok=True)
|
|
41
|
+
|
|
42
|
+
content = skill_md.read_text(encoding="utf-8")
|
|
43
|
+
(dest_dir / "SKILL.md").write_text(content, encoding="utf-8")
|
|
44
|
+
|
|
45
|
+
if include_openai_yaml:
|
|
46
|
+
openai_yaml = source_dir / "agents" / "openai.yaml"
|
|
47
|
+
if openai_yaml.is_file():
|
|
48
|
+
agents_dir = dest_dir / "agents"
|
|
49
|
+
agents_dir.mkdir(parents=True, exist_ok=True)
|
|
50
|
+
yaml_content = openai_yaml.read_text(encoding="utf-8")
|
|
51
|
+
(agents_dir / "openai.yaml").write_text(yaml_content, encoding="utf-8")
|
|
52
|
+
|
|
53
|
+
count += 1
|
|
54
|
+
|
|
55
|
+
return count
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""AI 助手配置注册表。
|
|
2
|
+
|
|
3
|
+
每个助手定义了 Skills 的安装位置。
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class AgentConfig:
|
|
12
|
+
"""AI 助手配置项。"""
|
|
13
|
+
name: str
|
|
14
|
+
skills_dir: str
|
|
15
|
+
"""Skills 安装目录(每个 skill 一个子目录,含 SKILL.md)。"""
|
|
16
|
+
has_openai_yaml: bool = False
|
|
17
|
+
"""是否安装 agents/openai.yaml 元数据(仅 Codex 需要)。"""
|
|
18
|
+
|
|
19
|
+
def format_description(self) -> str:
|
|
20
|
+
return f"{self.name} ({self.skills_dir})"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
AGENT_REGISTRY: dict[str, AgentConfig] = {
|
|
24
|
+
"cursor": AgentConfig(
|
|
25
|
+
name="Cursor",
|
|
26
|
+
skills_dir=".cursor/skills",
|
|
27
|
+
),
|
|
28
|
+
"claude": AgentConfig(
|
|
29
|
+
name="Claude Code",
|
|
30
|
+
skills_dir=".claude/skills",
|
|
31
|
+
),
|
|
32
|
+
"codex": AgentConfig(
|
|
33
|
+
name="Codex",
|
|
34
|
+
skills_dir=".agents/skills",
|
|
35
|
+
has_openai_yaml=True,
|
|
36
|
+
),
|
|
37
|
+
"copilot": AgentConfig(
|
|
38
|
+
name="GitHub Copilot",
|
|
39
|
+
skills_dir=".github/skills",
|
|
40
|
+
),
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
AGENT_ALIASES: dict[str, str] = {
|
|
44
|
+
"cursor-agent": "cursor",
|
|
45
|
+
"claude-code": "claude",
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def get_agent_config(name: str) -> Optional[AgentConfig]:
|
|
50
|
+
"""根据名称获取 AI 助手配置,支持别名解析。"""
|
|
51
|
+
resolved = AGENT_ALIASES.get(name, name)
|
|
52
|
+
return AGENT_REGISTRY.get(resolved)
|