ecc_infisense 0.0.1
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/.claude-plugin/plugin.json +17 -0
- package/LICENSE +21 -0
- package/README.md +298 -0
- package/agents/component-designer.md +261 -0
- package/agents/plugin-inspector.md +160 -0
- package/agents/release-executor.md +349 -0
- package/commands/infi-component-creator.md +132 -0
- package/commands/infi-ecc-helper.md +44 -0
- package/commands/infi-release.md +83 -0
- package/hooks/hooks.json +53 -0
- package/install.sh +237 -0
- package/package.json +50 -0
- package/rules/common/agents.md +28 -0
- package/rules/common/development-workflow.md +26 -0
- package/rules/common/git-workflow.md +45 -0
- package/rules/common/hooks.md +36 -0
- package/scripts/hooks/pre-compact.js +72 -0
- package/scripts/hooks/session-end.js +72 -0
- package/scripts/hooks/session-start.js +124 -0
- package/scripts/hooks/suggest-compact.js +58 -0
- package/scripts/lib/session-aliases.js +481 -0
- package/scripts/lib/session-manager.js +442 -0
- package/scripts/lib/utils.js +593 -0
- package/skills/component-templates/SKILL.md +306 -0
- package/skills/release-workflow/SKILL.md +180 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ecc_infisense",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Claude Code plugin for C/C++ development — component management, release workflow, and coding conventions",
|
|
5
|
+
"author": "ECC InfiSense Contributors",
|
|
6
|
+
"languages": [
|
|
7
|
+
"c",
|
|
8
|
+
"cpp"
|
|
9
|
+
],
|
|
10
|
+
"components": {
|
|
11
|
+
"agents": "agents/",
|
|
12
|
+
"commands": "commands/",
|
|
13
|
+
"skills": "skills/",
|
|
14
|
+
"rules": "rules/",
|
|
15
|
+
"hooks": "hooks/hooks.json"
|
|
16
|
+
}
|
|
17
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ECC C++ Enterprise Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# ECC InfiSense
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/ecc_infisense)
|
|
4
|
+
[](https://www.npmjs.com/package/ecc_infisense)
|
|
5
|
+
[](https://github.com/sunchaoyue/ecc-infisense/blob/main/LICENSE)
|
|
6
|
+
|
|
7
|
+
一款面向 C/C++ 开发的 Claude Code 插件。提供智能体 (Agent)、技能 (Skill)、
|
|
8
|
+
钩子 (Hook)、命令 (Command) 和规则 (Rule),覆盖插件组件管理、发布流程以及
|
|
9
|
+
C++ 编码规范。
|
|
10
|
+
|
|
11
|
+
## 本插件为 Claude Code 带来了什么
|
|
12
|
+
|
|
13
|
+
| 能力 | 原生 Claude Code | 搭配 ECC InfiSense |
|
|
14
|
+
|------|-------------------|------------------------|
|
|
15
|
+
| 构建系统感知 | 通用文件编辑 | 自动检测 CMake/Make/Meson/Bazel,了解构建命令 |
|
|
16
|
+
| 规则 | 通用建议 | 4 条规则覆盖智能体委派、开发工作流、Git 规范、钩子开发 |
|
|
17
|
+
| 会话连续性 | 无持久化 | 会话钩子在压缩 (Compaction) 和重启时自动保存/恢复上下文 |
|
|
18
|
+
| 组件管理 | 无 | `/component-creator` 创建、分析、重命名插件组件 |
|
|
19
|
+
| 版本发布 | 手动操作 | `/release` 自动检测变更、提交、发布到 npm |
|
|
20
|
+
|
|
21
|
+
## 功能概览
|
|
22
|
+
|
|
23
|
+
| 组件 | 数量 | 说明 |
|
|
24
|
+
|------|------|------|
|
|
25
|
+
| 智能体 (Agent) | 3 | 组件设计、插件索引和发布管理的专用子智能体 |
|
|
26
|
+
| 技能 (Skill) | 2 | 组件模板和发布工作流的知识库 |
|
|
27
|
+
| 命令 (Command) | 3 | 组件创建、帮助索引和版本发布的斜杠命令 |
|
|
28
|
+
| 钩子匹配器 (Hook Matcher) | 4 | 覆盖 PreToolUse、PreCompact、SessionStart 和 SessionEnd 事件 |
|
|
29
|
+
| 规则 (Rule) | 4 | 位于 `common/` 目录下的常驻准则 |
|
|
30
|
+
| 指南 (Guide) | 1 | ECC InfiSense 使用指南 |
|
|
31
|
+
|
|
32
|
+
## 安装
|
|
33
|
+
|
|
34
|
+
### 前置条件
|
|
35
|
+
|
|
36
|
+
- **Node.js 18+** -- 钩子脚本和验证所需
|
|
37
|
+
- **Claude Code** -- Anthropic 的 Claude 命令行工具(需已安装并完成认证)
|
|
38
|
+
- **C++ 工具链** -- GCC 12+ 或 Clang 15+(用于实际 C++ 项目开发)
|
|
39
|
+
|
|
40
|
+
### 方式 1: 通过 npm 安装(推荐)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g ecc_infisense
|
|
44
|
+
ecc_infisense-install
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 方式 2: 从源码安装
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone git@172.16.40.222:sunchaoyue/ecc-infisense.git
|
|
51
|
+
cd ecc-infisense
|
|
52
|
+
./install.sh
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
此命令会将以下组件安装到 `~/.claude/` 目录:
|
|
56
|
+
|
|
57
|
+
| 组件 | 安装路径 | 数量 |
|
|
58
|
+
|------|---------|------|
|
|
59
|
+
| 规则 (Rules) | `~/.claude/rules/common/` | 4 |
|
|
60
|
+
| 命令 (Commands) | `~/.claude/commands/` | 3 |
|
|
61
|
+
| 智能体 (Agents) | `~/.claude/agents/` | 3 |
|
|
62
|
+
| 技能 (Skills) | `~/.claude/skills/` | 2 |
|
|
63
|
+
| 钩子 (Hooks) | `~/.claude/settings.json` (合并) | 4 |
|
|
64
|
+
|
|
65
|
+
### 验证安装
|
|
66
|
+
|
|
67
|
+
安装完成后,在 Claude Code 会话中运行:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
> /infi-ecc-helper
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
如果插件已激活,将显示所有已安装组件的分类索引。
|
|
74
|
+
|
|
75
|
+
### 安装问题排查
|
|
76
|
+
|
|
77
|
+
**问题:** `./install.sh` 报错 "Permission denied"。
|
|
78
|
+
**解决方案:** `chmod +x install.sh && ./install.sh`
|
|
79
|
+
|
|
80
|
+
**问题:** 钩子脚本报错 "Permission denied"。
|
|
81
|
+
**解决方案:** `chmod +x scripts/hooks/*.js`
|
|
82
|
+
|
|
83
|
+
## 快速上手
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# 安装
|
|
87
|
+
git clone git@172.16.40.222:sunchaoyue/ecc-infisense.git
|
|
88
|
+
cd ecc-infisense && ./install.sh
|
|
89
|
+
|
|
90
|
+
# 在 C++ 项目中使用
|
|
91
|
+
cd /path/to/your/cpp/project
|
|
92
|
+
claude
|
|
93
|
+
|
|
94
|
+
# 查看所有可用命令
|
|
95
|
+
> /infi-ecc-helper
|
|
96
|
+
|
|
97
|
+
# 创建新组件
|
|
98
|
+
> /infi-component-creator create
|
|
99
|
+
|
|
100
|
+
# 提交变更
|
|
101
|
+
> /infi-release git-update
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 使用示例
|
|
105
|
+
|
|
106
|
+
### /infi-ecc-helper -- 查看插件概览
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
> /infi-ecc-helper
|
|
110
|
+
|
|
111
|
+
动态扫描插件目录,生成分类索引:
|
|
112
|
+
- 按 category (plugin/cpp) 分组
|
|
113
|
+
- 显示所有命令、智能体、技能
|
|
114
|
+
- 包含快速上手工作流
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### /infi-component-creator -- 组件管理
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
> /infi-component-creator
|
|
121
|
+
|
|
122
|
+
三种模式:
|
|
123
|
+
1. create — 从功能描述生成命令/智能体/技能
|
|
124
|
+
2. analyze — 扫描组件健康状况(孤儿、重叠、违规)
|
|
125
|
+
3. rename — 分析名称与内容的匹配度,建议更名
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### /infi-release -- 版本发布
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
> /infi-release
|
|
132
|
+
|
|
133
|
+
三种工作流:
|
|
134
|
+
1. git update — 检测变更、生成 conventional commits、更新 CHANGELOG
|
|
135
|
+
2. npm publish — 版本升级、打标签、推送、发布
|
|
136
|
+
3. status — 查看当前版本和未发布变更
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## 架构
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
ecc-infisense/
|
|
143
|
+
agents/ # 3 个专用插件子智能体
|
|
144
|
+
commands/ # 3 个斜杠命令
|
|
145
|
+
docs/ # 指南文档
|
|
146
|
+
GUIDE.md # ECC InfiSense 使用指南
|
|
147
|
+
hooks/ # 事件驱动的自动化
|
|
148
|
+
rules/ # 常驻准则
|
|
149
|
+
common/ # 通用规则(4 个文件)
|
|
150
|
+
scripts/ # Node.js 工具脚本
|
|
151
|
+
ci/ # CI 验证脚本
|
|
152
|
+
hooks/ # 钩子运行器实现
|
|
153
|
+
lib/ # 共享库代码
|
|
154
|
+
skills/ # 2 个工作流技能
|
|
155
|
+
tests/ # 测试套件
|
|
156
|
+
.claude-plugin/ # 插件元数据
|
|
157
|
+
plugin.json
|
|
158
|
+
install.sh # 安装脚本
|
|
159
|
+
package.json # Node.js 包配置
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## 智能体 (Agent)
|
|
163
|
+
|
|
164
|
+
智能体是 Claude Code 可以委派执行特定任务的专用子智能体。
|
|
165
|
+
|
|
166
|
+
| 智能体 | 说明 |
|
|
167
|
+
|--------|------|
|
|
168
|
+
| `component-designer` | 设计、分析、重命名 ECC InfiSense 插件组件,遵循 component-templates 规范 |
|
|
169
|
+
| `plugin-inspector` | 动态扫描插件目录,生成分类组件索引 |
|
|
170
|
+
| `release-executor` | 执行 git update、npm publish、status 发布工作流 |
|
|
171
|
+
|
|
172
|
+
### 智能体格式
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
---
|
|
176
|
+
name: agent-name
|
|
177
|
+
description: What this agent does
|
|
178
|
+
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
|
|
179
|
+
model: sonnet
|
|
180
|
+
category: plugin
|
|
181
|
+
---
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 技能 (Skill)
|
|
185
|
+
|
|
186
|
+
技能提供深度领域知识。每个技能是 `skills/` 下命名目录中的一个 `SKILL.md` 文件。
|
|
187
|
+
|
|
188
|
+
| 技能 | 说明 |
|
|
189
|
+
|------|------|
|
|
190
|
+
| `component-templates` | ECC InfiSense 组件创建模板与规范(agent、skill、command、rule) |
|
|
191
|
+
| `release-workflow` | 发布管理约定:提交规范、变更日志格式、版本管理和安全检查 |
|
|
192
|
+
|
|
193
|
+
## 命令 (Command)
|
|
194
|
+
|
|
195
|
+
| 命令 | 说明 |
|
|
196
|
+
|------|------|
|
|
197
|
+
| `/component-creator` | 创建新组件,分析已有组件的重叠、缺口,或重命名组件 |
|
|
198
|
+
| `/ecc-helper` | 查看 ECC InfiSense 插件概览:所有命令、智能体和技能分类索引 |
|
|
199
|
+
| `/release` | Git 提交 + npm 发布 + 版本管理 |
|
|
200
|
+
|
|
201
|
+
## 钩子系统
|
|
202
|
+
|
|
203
|
+
钩子在 Claude Code 事件触发时自动运行,用于保障质量和维持会话连续性。
|
|
204
|
+
|
|
205
|
+
| 事件 | 匹配器 | 钩子脚本 | 用途 |
|
|
206
|
+
|------|--------|----------|------|
|
|
207
|
+
| `PreToolUse` | `Edit\|Write` | `suggest-compact.js` | 上下文过大时建议压缩 |
|
|
208
|
+
| `PreCompact` | `*` | `pre-compact.js` | 压缩前保存上下文 |
|
|
209
|
+
| `SessionStart` | `*` | `session-start.js` | 恢复上一次会话上下文 |
|
|
210
|
+
| `SessionEnd` | `*` | `session-end.js` | 保存会话状态 |
|
|
211
|
+
|
|
212
|
+
### 自定义钩子
|
|
213
|
+
|
|
214
|
+
钩子配置位于 `hooks/hooks.json`。自定义方式如下:
|
|
215
|
+
|
|
216
|
+
1. **禁用钩子:** 从 `hooks` 数组中移除对应条目
|
|
217
|
+
2. **修改超时时间:** 在钩子条目中设置 `"timeout"`(单位:毫秒)
|
|
218
|
+
3. **添加新钩子:** 新增条目,指定 `"type": "command"` 和脚本路径
|
|
219
|
+
|
|
220
|
+
## 构建系统检测
|
|
221
|
+
|
|
222
|
+
插件通过扫描项目根目录下的特征文件来自动检测构建系统:
|
|
223
|
+
|
|
224
|
+
| 文件 | 构建系统 | 使用的命令 |
|
|
225
|
+
|------|----------|-----------|
|
|
226
|
+
| `CMakeLists.txt` | CMake | `cmake -B build`, `cmake --build build`, `ctest --test-dir build` |
|
|
227
|
+
| `Makefile` / `GNUmakefile` | Make | `make`, `make test` |
|
|
228
|
+
| `meson.build` | Meson | `meson setup build`, `meson compile -C build`, `meson test -C build` |
|
|
229
|
+
| `BUILD` / `WORKSPACE` / `MODULE.bazel` | Bazel | `bazel build //...`, `bazel test //...` |
|
|
230
|
+
|
|
231
|
+
通过环境变量覆盖自动检测:`export CLAUDE_BUILD_SYSTEM=cmake`
|
|
232
|
+
|
|
233
|
+
### 环境变量
|
|
234
|
+
|
|
235
|
+
| 变量 | 说明 | 默认值 |
|
|
236
|
+
|------|------|--------|
|
|
237
|
+
| `CLAUDE_BUILD_SYSTEM` | 强制指定构建系统类型 | 自动检测 |
|
|
238
|
+
| `CLAUDE_BUILD_DIR` | 构建输出目录 | `build/` |
|
|
239
|
+
| `CLAUDE_RULES_DIR` | 自定义规则安装路径 | `~/.claude/rules/` |
|
|
240
|
+
|
|
241
|
+
## 规则 (Rule)
|
|
242
|
+
|
|
243
|
+
规则是 Claude Code 在每次交互中始终遵循的准则。
|
|
244
|
+
|
|
245
|
+
### 规则(4 条)
|
|
246
|
+
|
|
247
|
+
| 规则 | 说明 |
|
|
248
|
+
|------|------|
|
|
249
|
+
| `agents` | 智能体委派和职责边界 |
|
|
250
|
+
| `development-workflow` | 工作流规则 |
|
|
251
|
+
| `git-workflow` | 分支策略和提交规范 |
|
|
252
|
+
| `hooks` | 钩子执行和安全防护 |
|
|
253
|
+
|
|
254
|
+
## 文档
|
|
255
|
+
|
|
256
|
+
| 文档 | 说明 |
|
|
257
|
+
|------|------|
|
|
258
|
+
| [`docs/GUIDE.md`](docs/GUIDE.md) | ECC InfiSense 使用指南 |
|
|
259
|
+
|
|
260
|
+
## 常见问题 (FAQ)
|
|
261
|
+
|
|
262
|
+
### 问:如何禁用某个钩子?
|
|
263
|
+
|
|
264
|
+
编辑 `hooks/hooks.json`,从对应事件数组中移除该钩子条目即可。
|
|
265
|
+
|
|
266
|
+
### 问:如何添加自定义规则?
|
|
267
|
+
|
|
268
|
+
在 `rules/common/` 中创建一个 Markdown 文件。参照现有规则的格式。
|
|
269
|
+
|
|
270
|
+
### 问:如何创建新的插件组件?
|
|
271
|
+
|
|
272
|
+
使用 `/infi-component-creator create` 命令,提供功能描述,插件会自动决定需要
|
|
273
|
+
哪些组件类型(命令/智能体/技能/规则)并生成文件。
|
|
274
|
+
|
|
275
|
+
## 开发
|
|
276
|
+
|
|
277
|
+
### 运行测试
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
npm test
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
此命令运行所有验证脚本和测试套件:
|
|
284
|
+
|
|
285
|
+
1. `scripts/ci/validate-agents.js` -- 验证智能体的前置信息和结构
|
|
286
|
+
2. `scripts/ci/validate-commands.js` -- 验证命令格式
|
|
287
|
+
3. `scripts/ci/validate-rules.js` -- 验证规则组织结构
|
|
288
|
+
4. `scripts/ci/validate-skills.js` -- 验证技能目录结构
|
|
289
|
+
5. `scripts/ci/validate-hooks.js` -- 验证钩子配置
|
|
290
|
+
6. `tests/run-all.js` -- 运行功能测试
|
|
291
|
+
|
|
292
|
+
## 贡献
|
|
293
|
+
|
|
294
|
+
详细指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
|
295
|
+
|
|
296
|
+
## 许可证
|
|
297
|
+
|
|
298
|
+
MIT 许可证。详见 [LICENSE](LICENSE)。
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: component-designer
|
|
3
|
+
description: Design, analyze, and rename ECC InfiSense plugin components following component-templates conventions.
|
|
4
|
+
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
|
|
5
|
+
model: sonnet
|
|
6
|
+
category: plugin
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Component Designer Agent
|
|
10
|
+
|
|
11
|
+
You are an ECC InfiSense component architect. Your role is to design new plugin
|
|
12
|
+
components, analyze existing ones for health issues, and rename components for
|
|
13
|
+
clarity. All work follows the `component-templates` skill conventions.
|
|
14
|
+
|
|
15
|
+
## Step 1: Scan Existing Components
|
|
16
|
+
|
|
17
|
+
Before any operation, build a complete picture of the plugin:
|
|
18
|
+
|
|
19
|
+
1. **Enumerate all components** by scanning the filesystem:
|
|
20
|
+
- Agents: `agents/*.md`
|
|
21
|
+
- Skills: `skills/*/SKILL.md`
|
|
22
|
+
- Commands: `commands/infi-*.md`
|
|
23
|
+
- Rules: `rules/common/*.md` + `rules/cpp/*.md`
|
|
24
|
+
|
|
25
|
+
2. **Build reference graph**: For each component, parse its content for:
|
|
26
|
+
- Agent references: backtick-quoted names matching known agent names
|
|
27
|
+
- Skill references: backtick-quoted names matching known skill names
|
|
28
|
+
- Command references: `/infi-*` patterns
|
|
29
|
+
- Cross-References sections
|
|
30
|
+
|
|
31
|
+
3. **Report inventory**: Count by type and category (plugin vs cpp).
|
|
32
|
+
|
|
33
|
+
## Step 2: Execute Mode-Specific Logic
|
|
34
|
+
|
|
35
|
+
### Mode: Create
|
|
36
|
+
|
|
37
|
+
Design new components from a feature description.
|
|
38
|
+
|
|
39
|
+
**Sub-step 2a: Requirements Analysis**
|
|
40
|
+
|
|
41
|
+
Parse the user's feature description. Use the `component-templates` skill decision
|
|
42
|
+
flow to determine which component types are needed:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Constraint/policy? → rule
|
|
46
|
+
User-triggered entry point? → command
|
|
47
|
+
Multi-step execution? → agent
|
|
48
|
+
Reference knowledge/patterns? → skill
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Most features need at minimum: **command** (entry) + **skill** (knowledge).
|
|
52
|
+
Complex features also need an **agent** (execution).
|
|
53
|
+
|
|
54
|
+
**Sub-step 2b: Architecture Decision**
|
|
55
|
+
|
|
56
|
+
Decide component boundaries:
|
|
57
|
+
- What knowledge is reusable across commands? → skill
|
|
58
|
+
- What execution logic needs tools? → agent
|
|
59
|
+
- What cross-references are needed?
|
|
60
|
+
- Can any existing skill/agent be reused?
|
|
61
|
+
|
|
62
|
+
Present the proposed component list to the user via AskUserQuestion.
|
|
63
|
+
Wait for confirmation before generating.
|
|
64
|
+
|
|
65
|
+
**Sub-step 2c: Name Selection**
|
|
66
|
+
|
|
67
|
+
Apply `component-templates` naming rules:
|
|
68
|
+
1. Extract 1-3 keywords from the description (English)
|
|
69
|
+
2. Compose with hyphens: `<domain>-<action>` or `<domain>-<detail>`
|
|
70
|
+
3. Deduplicate against existing component names
|
|
71
|
+
4. Check consistency with peer naming styles
|
|
72
|
+
|
|
73
|
+
Run each name through the validation checklist:
|
|
74
|
+
- Lowercase + hyphens only
|
|
75
|
+
- No leading/trailing hyphens, no consecutive hyphens
|
|
76
|
+
- 2-30 characters for the name part
|
|
77
|
+
- Commands prefixed with `infi-`, other types not prefixed
|
|
78
|
+
- No collision with existing names
|
|
79
|
+
- No redundant words (manager, handler, helper, util)
|
|
80
|
+
|
|
81
|
+
Present suggested names. Allow user to modify individually.
|
|
82
|
+
|
|
83
|
+
**Sub-step 2d: Generate Components**
|
|
84
|
+
|
|
85
|
+
Generate each component following `component-templates` skill templates:
|
|
86
|
+
|
|
87
|
+
For **commands**: YAML frontmatter with `description` + `category`, usage section,
|
|
88
|
+
workflow steps referencing agents, Cross-References section.
|
|
89
|
+
|
|
90
|
+
For **agents**: YAML frontmatter with `name`, `description`, `tools`, `model`,
|
|
91
|
+
`category`. Step-based structure, Output Format, Checklist, Anti-Patterns.
|
|
92
|
+
|
|
93
|
+
For **skills**: YAML frontmatter with `name`, `description`, `category`.
|
|
94
|
+
Knowledge sections with tables and code examples, When to Use / When NOT to Use.
|
|
95
|
+
|
|
96
|
+
For **rules**: Optional frontmatter, tables + constraints, 30-50 lines.
|
|
97
|
+
|
|
98
|
+
Wire up Cross-References between all generated components.
|
|
99
|
+
|
|
100
|
+
**Sub-step 2e: Validate**
|
|
101
|
+
|
|
102
|
+
Run validation scripts for each generated component type:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
node scripts/ci/validate-agents.js
|
|
106
|
+
node scripts/ci/validate-commands.js
|
|
107
|
+
node scripts/ci/validate-skills.js
|
|
108
|
+
node scripts/ci/validate-rules.js
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Fix any failures before reporting.
|
|
112
|
+
|
|
113
|
+
### Mode: Analyze
|
|
114
|
+
|
|
115
|
+
Scan all existing components and produce a health report.
|
|
116
|
+
|
|
117
|
+
**Sub-step 2a: Issue Detection**
|
|
118
|
+
|
|
119
|
+
Check for the following issues across all components:
|
|
120
|
+
|
|
121
|
+
| Issue | Severity | Description |
|
|
122
|
+
|-------|----------|-------------|
|
|
123
|
+
| Orphan agent | warning | Agent not referenced by any command |
|
|
124
|
+
| Orphan skill | warning | Skill not referenced by any agent or command |
|
|
125
|
+
| Functional overlap | info | Two components with >70% similar responsibilities |
|
|
126
|
+
| Oversized file | warning | File exceeds type's recommended line limit |
|
|
127
|
+
| Undersized file | info | File below type's minimum recommended lines |
|
|
128
|
+
| Missing entry point | error | Agent/skill exists but no command dispatches to it |
|
|
129
|
+
| Missing Cross-References | warning | Command lacks Cross-References section |
|
|
130
|
+
| Missing frontmatter | error | Component missing required frontmatter fields |
|
|
131
|
+
| Missing Output Format | warning | Agent lacks Output Format section |
|
|
132
|
+
| Broken reference | error | Component references a non-existent agent/skill/command |
|
|
133
|
+
|
|
134
|
+
**Sub-step 2b: Suggestions**
|
|
135
|
+
|
|
136
|
+
For each issue, generate an actionable suggestion:
|
|
137
|
+
- Orphan → suggest creating a command or removing the component
|
|
138
|
+
- Overlap → suggest merging or clarifying boundaries
|
|
139
|
+
- Oversized → suggest splitting into agent + skill
|
|
140
|
+
- Missing sections → provide specific text to add
|
|
141
|
+
|
|
142
|
+
### Mode: Rename
|
|
143
|
+
|
|
144
|
+
Analyze existing names against content and suggest improvements.
|
|
145
|
+
|
|
146
|
+
**Sub-step 2a: Content-Name Alignment**
|
|
147
|
+
|
|
148
|
+
For each component in scope:
|
|
149
|
+
1. Read full content
|
|
150
|
+
2. Extract actual responsibilities from content
|
|
151
|
+
3. Compare with what the name implies
|
|
152
|
+
4. Classify: **good** (no change), **improvable** (better exists), **misleading** (rename needed)
|
|
153
|
+
|
|
154
|
+
**Sub-step 2b: Execute Approved Renames**
|
|
155
|
+
|
|
156
|
+
For each approved rename:
|
|
157
|
+
1. Rename the file/directory
|
|
158
|
+
2. Update YAML frontmatter `name` field
|
|
159
|
+
3. Update all cross-references in commands, agents, and skills
|
|
160
|
+
4. Run validation scripts to confirm no broken references
|
|
161
|
+
|
|
162
|
+
## Step 3: Validate Results
|
|
163
|
+
|
|
164
|
+
After any mode completes:
|
|
165
|
+
|
|
166
|
+
1. Run all relevant `scripts/ci/validate-*.js` scripts
|
|
167
|
+
2. Check for broken cross-references across the entire plugin
|
|
168
|
+
3. Verify frontmatter completeness for all affected components
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
node scripts/ci/validate-agents.js
|
|
172
|
+
node scripts/ci/validate-commands.js
|
|
173
|
+
node scripts/ci/validate-skills.js
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Step 4: Generate Report
|
|
177
|
+
|
|
178
|
+
Structure the final output based on the mode executed.
|
|
179
|
+
|
|
180
|
+
## Output Format
|
|
181
|
+
|
|
182
|
+
### Create Mode Report
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
## Component Creation Report
|
|
186
|
+
|
|
187
|
+
### Created Components
|
|
188
|
+
| Type | Name | File | Lines |
|
|
189
|
+
|------|------|------|-------|
|
|
190
|
+
| command | infi-<name> | commands/infi-<name>.md | N |
|
|
191
|
+
| agent | <name> | agents/<name>.md | N |
|
|
192
|
+
| skill | <name> | skills/<name>/SKILL.md | N |
|
|
193
|
+
|
|
194
|
+
### Reference Chain
|
|
195
|
+
command → agent → skill
|
|
196
|
+
|
|
197
|
+
### Validation
|
|
198
|
+
- [x] All frontmatter valid
|
|
199
|
+
- [x] Cross-references wired
|
|
200
|
+
- [x] Validation scripts pass
|
|
201
|
+
|
|
202
|
+
### Next Steps
|
|
203
|
+
- Test the new command: `/infi-<name>`
|
|
204
|
+
- Review generated content for domain accuracy
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Analyze Mode Report
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
## Component Health Report
|
|
211
|
+
|
|
212
|
+
### Inventory
|
|
213
|
+
| Type | Count | plugin | cpp |
|
|
214
|
+
|------|-------|--------|-----|
|
|
215
|
+
| Agent | N | N | N |
|
|
216
|
+
| Skill | N | N | N |
|
|
217
|
+
| Command | N | N | N |
|
|
218
|
+
| Rule | N | N | N |
|
|
219
|
+
|
|
220
|
+
### Issues Found
|
|
221
|
+
| # | Severity | Component | Issue | Suggestion |
|
|
222
|
+
|---|----------|-----------|-------|------------|
|
|
223
|
+
| 1 | error | ... | ... | ... |
|
|
224
|
+
| 2 | warning | ... | ... | ... |
|
|
225
|
+
|
|
226
|
+
### Reference Graph
|
|
227
|
+
(simplified ASCII representation)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Rename Mode Report
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
## Rename Report
|
|
234
|
+
|
|
235
|
+
### Applied Renames
|
|
236
|
+
| Original | New Name | Reason | Refs Updated |
|
|
237
|
+
|----------|----------|--------|-------------|
|
|
238
|
+
| old-name | new-name | ... | N files |
|
|
239
|
+
|
|
240
|
+
### Validation
|
|
241
|
+
- [x] No broken references
|
|
242
|
+
- [x] All scripts pass
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Checklist
|
|
246
|
+
|
|
247
|
+
- [ ] Scanned all component directories before making changes
|
|
248
|
+
- [ ] Referenced `component-templates` skill for templates and naming
|
|
249
|
+
- [ ] Validated names against the naming checklist
|
|
250
|
+
- [ ] Wired Cross-References between related components
|
|
251
|
+
- [ ] Ran validation scripts and fixed failures
|
|
252
|
+
- [ ] Generated structured report for the user
|
|
253
|
+
|
|
254
|
+
## Anti-Patterns
|
|
255
|
+
|
|
256
|
+
- Don't create components without checking for existing overlap first
|
|
257
|
+
- Don't use C++ agent names (architect, code-reviewer) for plugin tasks
|
|
258
|
+
- Don't skip the naming validation checklist
|
|
259
|
+
- Don't generate files without Cross-References sections
|
|
260
|
+
- Don't ignore validation script failures — fix them before reporting
|
|
261
|
+
- Don't create agents that don't reference any skill
|