@ghyper9023/pi-dev-workflow 0.6.2 → 0.7.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/.github/workflows/release.yml +56 -0
- package/.pre-commit-config.yaml +75 -0
- package/.version/RELEASE-v0.7.0.md +85 -0
- package/README.md +80 -228
- package/extensions/dev-prompts.ts +351 -450
- package/extensions/git-commands.ts +62 -171
- package/extensions/grill-me-agent.ts +98 -137
- package/extensions/session-utils.ts +169 -0
- package/extensions/ui-helpers.ts +2 -780
- package/package.json +2 -2
- package/prompts/APPEND_SYSTEM.md +63 -59
- package/skills/review-html/SKILL.md +1 -1
- package/tests/test-no-subagents.mjs +146 -0
- package/.doc/AGENT-FRONTMATTER-REFERENCE.md +0 -198
- package/agents/git-agent.md +0 -44
- package/agents/grill/dev-doc-grill-agent.md +0 -42
- package/agents/grill/dev-fix-grill-agent.md +0 -44
- package/agents/grill/dev-grill-agent.md +0 -40
- package/agents/grill/dev-perf-grill-agent.md +0 -45
- package/agents/grill/dev-prd-agent.md +0 -60
- package/agents/grill/dev-refactor-grill-agent.md +0 -46
- package/agents/grill/dev-test-grill-agent.md +0 -45
- package/agents/review-agent.md +0 -53
- package/agents/workflow/docWriter-agent.md +0 -53
- package/agents/workflow/planner-agent.md +0 -131
- package/agents/workflow/reviewer-agent.md +0 -128
- package/agents/workflow/trimmer-agent.md +0 -78
- package/agents/workflow/worker-agent.md +0 -70
- package/extensions/sub-agents.ts +0 -954
- package/extensions/workflow-engine.ts +0 -2005
- package/tests/test-grill-json-fix.mjs +0 -243
- package/tests/test-loopcount-timeout-fix.mjs +0 -336
- package/tests/test-output-directory-structure.mjs +0 -177
- package/tests/test-save-answer-file-workflow.mjs +0 -187
- package/tests/test-workflow-config.mjs +0 -244
- package/tests/test-workflow-engine-bugs.mjs +0 -908
- package/tests/test-workflow-engine.mjs +0 -518
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 发布 GitHub Release
|
|
2
|
+
#
|
|
3
|
+
# 触发:推送 v* 标签时(如 v0.7.0)
|
|
4
|
+
# 行为:自动读取 .version/RELEASE-<tag>.md 作为 release 内容;
|
|
5
|
+
# 若未找到对应版本说明文件,则写入默认提示,引导查看 git commit 确认变动。
|
|
6
|
+
#
|
|
7
|
+
# 版本说明文件命名约定:.version/RELEASE-v0.7.0.md(与 tag 同名)
|
|
8
|
+
name: Release
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
tags:
|
|
13
|
+
- 'v*'
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: write
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
release:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: 检出代码
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
# 读取本 tag 对应的版本说明;不存在或为空时写默认提示。
|
|
26
|
+
- name: 准备 release 说明
|
|
27
|
+
shell: bash
|
|
28
|
+
run: |
|
|
29
|
+
TAG="${GITHUB_REF_NAME}"
|
|
30
|
+
FILE=".version/RELEASE-${TAG}.md"
|
|
31
|
+
BODY_TMP="/tmp/release-body.md"
|
|
32
|
+
|
|
33
|
+
if [ -s "$FILE" ]; then
|
|
34
|
+
cp "$FILE" "$BODY_TMP"
|
|
35
|
+
echo "已读取版本说明: $FILE"
|
|
36
|
+
else
|
|
37
|
+
sed "s|__TAG__|${TAG}|g" > "$BODY_TMP" <<'EOF'
|
|
38
|
+
> [!WARNING]
|
|
39
|
+
> 本版本 `__TAG__` 未找到对应的版本说明文件(`.version/RELEASE-__TAG__.md`)。
|
|
40
|
+
>
|
|
41
|
+
> 请通过 git commit 记录确认本次发布的改动内容,例如:
|
|
42
|
+
>
|
|
43
|
+
> ```bash
|
|
44
|
+
> git log --oneline "<上一个标签>"..__TAG__
|
|
45
|
+
> ```
|
|
46
|
+
>
|
|
47
|
+
> 建议在 `.version/RELEASE-__TAG__.md` 中补充完整的 release 说明,release 会自动读取该文件。
|
|
48
|
+
EOF
|
|
49
|
+
echo "未找到版本说明 $FILE,已写入默认提示"
|
|
50
|
+
fi
|
|
51
|
+
- name: 创建 GitHub Release
|
|
52
|
+
uses: softprops/action-gh-release@v2
|
|
53
|
+
with:
|
|
54
|
+
tag_name: ${{ github.ref_name }}
|
|
55
|
+
name: ${{ github.ref_name }}
|
|
56
|
+
body_path: /tmp/release-body.md
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# .pre-commit-config.yaml
|
|
2
|
+
# 优先使用 prek run --all-files 命令扫描 or 通过 git 自动触发
|
|
3
|
+
repos:
|
|
4
|
+
# ============================================================
|
|
5
|
+
# 1. 通用文件检查(pre-commit-hooks v6.0.0)
|
|
6
|
+
# 官方仓库:https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
+
# 注意:v6.0.0 要求 Python >= 3.9,并移除了
|
|
8
|
+
# check-byte-order-marker 和 fix-encoding-pragma 两个钩子
|
|
9
|
+
# ============================================================
|
|
10
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
11
|
+
rev: v6.0.0
|
|
12
|
+
hooks:
|
|
13
|
+
# 移除行尾多余的空格
|
|
14
|
+
# 覆盖 TS/JS/JSON/YAML/Markdown 等文本文件
|
|
15
|
+
- id: trailing-whitespace
|
|
16
|
+
name: 移除行尾多余空格
|
|
17
|
+
|
|
18
|
+
# 检查代码中是否有未解决的合并冲突标记(<<<<<<< / ======= / >>>>>>>)
|
|
19
|
+
- id: check-merge-conflict
|
|
20
|
+
name: 检查合并冲突标记
|
|
21
|
+
|
|
22
|
+
# 检查新增文件是否过大(默认限制 10240KB,即 10MB)
|
|
23
|
+
- id: check-added-large-files
|
|
24
|
+
name: 检查添加文件是否过大
|
|
25
|
+
args: ['--maxkb=10240']
|
|
26
|
+
|
|
27
|
+
# 检查 YAML 语法是否正确(如 CI 配置、docker-compose 等)
|
|
28
|
+
- id: check-yaml
|
|
29
|
+
name: 检查 YAML 语法
|
|
30
|
+
|
|
31
|
+
# 检查 JSON 语法是否正确(如 package.json 等)
|
|
32
|
+
# 排除常见的 JSONC 文件:tsconfig / jsconfig 通常允许注释
|
|
33
|
+
- id: check-json
|
|
34
|
+
name: 检查 JSON 语法
|
|
35
|
+
exclude: '^(tsconfig|jsconfig)(\..*)?\.json$'
|
|
36
|
+
|
|
37
|
+
# 检测私钥文件(SSH / PGP / RSA 等)是否被误提交
|
|
38
|
+
# 防止敏感私钥泄漏到仓库
|
|
39
|
+
- id: detect-private-key
|
|
40
|
+
name: 检测私钥文件
|
|
41
|
+
|
|
42
|
+
# ============================================================
|
|
43
|
+
# 2. 密钥泄露检测(Betterleaks,使用本机已安装版本)
|
|
44
|
+
# 官方仓库:https://github.com/betterleaks/betterleaks
|
|
45
|
+
# 通过 brew install betterleaks 或 brew install betterleaks/tap/betterleaks 安装
|
|
46
|
+
# 版本:v1.8.1(2026-08-18 发布)
|
|
47
|
+
# 说明:
|
|
48
|
+
# - Gitleaks 已进入仅安全补丁维护阶段,Betterleaks 为其官方继任者
|
|
49
|
+
# - 由 Gitleaks 原作者 Zach Rice 及原班人马维护
|
|
50
|
+
# - 完全兼容原有的 .gitleaks.toml 配置和 .gitleaksignore 文件
|
|
51
|
+
# - 检测 800+ 种密钥类型,支持 Expr 过滤、密钥有效性验证等高级功能
|
|
52
|
+
# - 改用 local + system,直接调用本机 PATH 中的 betterleaks,
|
|
53
|
+
# 避免 prek 下载 Go 工具链并重新编译安装
|
|
54
|
+
# ============================================================
|
|
55
|
+
- repo: local
|
|
56
|
+
hooks:
|
|
57
|
+
- id: betterleaks
|
|
58
|
+
name: 检测密钥泄露
|
|
59
|
+
entry: betterleaks git --pre-commit --staged --verbose
|
|
60
|
+
language: system
|
|
61
|
+
pass_filenames: false
|
|
62
|
+
|
|
63
|
+
# ============================================================
|
|
64
|
+
# 3. ast-grep 结构化规则检查
|
|
65
|
+
# 官方仓库:https://github.com/joshuadavidthomas/ast-grep-rules
|
|
66
|
+
# 最新版本:v0.5.0(2026-07-25 发布)
|
|
67
|
+
# 说明:使用 AST 进行结构化代码搜索与检查,支持自定义 YAML 规则
|
|
68
|
+
# 这里只对 TS/JS 相关文件运行,避免检查无关语言文件
|
|
69
|
+
# ============================================================
|
|
70
|
+
- repo: https://github.com/joshuadavidthomas/ast-grep-rules
|
|
71
|
+
rev: v0.5.0
|
|
72
|
+
hooks:
|
|
73
|
+
- id: all
|
|
74
|
+
name: ast-grep 结构化检查
|
|
75
|
+
files: '\.(ts|tsx|js|jsx|mjs|cjs)$'
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Release v0.7.0
|
|
2
|
+
|
|
3
|
+
> 核心变化:**彻底移除子代理架构**。不再 spawn 隔离子代理进程,Git 命令、Grill 追问、PRD 生成、代码审查全部由当前代理直接执行(当前模型普遍具备 ≥1M 上下文窗口,无需隔离上下文)。
|
|
4
|
+
|
|
5
|
+
## 🚀 Features
|
|
6
|
+
|
|
7
|
+
### 移除子代理基础设施
|
|
8
|
+
- 删除 `extensions/sub-agents.ts`(954 行)、`extensions/workflow-engine.ts`(2005 行)及 `agents/` 目录下全部 14 个 agent 定义
|
|
9
|
+
- 移除 `.doc/AGENT-FRONTMATTER-REFERENCE.md` 与 6 个依赖子代理的旧测试,合并为单一回归测试套件 `tests/test-no-subagents.mjs`
|
|
10
|
+
|
|
11
|
+
### Git 命令直接执行 / 委托分批提交
|
|
12
|
+
- `/git-commit`、`/git-push`、`/git-commit-push` 改用 pi 内置执行器直接运行 git,不再委派 git 子代理
|
|
13
|
+
- **传入消息**:快速路径暂存全部 → 提交(/git-commit-push 再推送)
|
|
14
|
+
- **空消息**:把提交任务整体交由当前代理——自行执行 `git status` / `git diff` 识别变更,按 Conventional Commits 规范**分批提交**(提交信息用中文),直接执行无需确认;/git-commit-push 完成后自动推送
|
|
15
|
+
|
|
16
|
+
### Grill 与 PRD 在当前代理运行
|
|
17
|
+
- 方案追问完善(Grill)与 PRD 生成不再 spawn 子代理,由当前代理通过 `write` 工具落盘结果,扩展侧**轮询产物**读取(`pollFor`,间隔 2s、超时 5 分钟)
|
|
18
|
+
- `/dev-*` 向导组装完提示词后直接投递给当前代理,新增自动审查意图检测(可路由到 review-html skill)
|
|
19
|
+
- 生成追问问题 / PRD 前补充「已提交给当前代理生成…」的可见性提示,替代被移除的子代理 loading 面板
|
|
20
|
+
|
|
21
|
+
### /dev-* 向导精简(2-4 轮概念式提问)
|
|
22
|
+
- 提问按「核心任务 → 验收标准(可跳过)→ 额外补充(可跳过)」组织,全部命令 2-4 轮完成
|
|
23
|
+
- 新增智能默认填充:自动探测项目语言、测试命令、lint 命令、pre-commit 钩子与 CI 配置
|
|
24
|
+
- 四段式组装「角色 / 任务 / 验收标准 / 额外补充」,缺省字段注入流畅默认值,提示词不空白不违和
|
|
25
|
+
|
|
26
|
+
### 自动审查(单模式)
|
|
27
|
+
- 移除子代理时代残留的「后台异步审查」选项——当前审查在**当前代理**中运行,不存在"后台不阻塞"能力,改为单一模式:「开始审查(阻塞,等待报告)」/「不是审查(放行)」
|
|
28
|
+
- 审查报告按**审查开始时间**过滤,不再误报上次遗留的旧报告
|
|
29
|
+
|
|
30
|
+
### 工程化
|
|
31
|
+
- 新增 `.pre-commit-config.yaml`:通用文件检查(trailing-whitespace、冲突标记、大文件、YAML/JSON 校验、私钥检测)+ betterleaks 密钥泄露扫描 + ast-grep 结构化检查
|
|
32
|
+
- 新增 GitHub Release 自动化(`.github/workflows/release.yml`):推送 `v*` 标签时自动发布,读取 `.version/RELEASE-<tag>.md` 作为 release 内容,未找到时写入引导查看 git commit 的默认提示
|
|
33
|
+
|
|
34
|
+
## 🐛 Bug Fixes
|
|
35
|
+
|
|
36
|
+
- 修复 `ctx.waitForIdle(超时)` 参数无效与**时序误判**问题:SDK 签名不接受超时参数,且 `waitForIdle` 可能在 `sendUserMessage` 触发的新 turn 开始前立即返回,导致"瞬间完成"误报。统一改为「发消息 → `pollFor` 轮询产物(文件/会话文本)」,覆盖 git-commands、grill-me-agent、dev-prompts(runReview)全部场景,根治 commit message 提取失败、审查 0.0s 完成、Grill/PRD 读取提前等问题
|
|
37
|
+
- 修复 `pi.on("input")` 未过滤扩展注入消息(`event.source === "extension"`)导致的递归风险
|
|
38
|
+
- 修复审查功能 `pi.sendUserMessage("/skill:review-html")` 未设置 `expandPromptTemplates` 导致 skill 不展开的问题
|
|
39
|
+
- 修复审查报告缓存误报:`findNewestReviewHtml` 仅返回审查开始时间之后生成的文件(此前会立刻报出上次遗留报告)
|
|
40
|
+
- 修复 PRD 生成失败时静默返回无提示的问题,增加错误通知
|
|
41
|
+
- 修复 `pi.exec` 返回字段误用(`exitCode` → `code`,git 命令因此被误判失败并提示"未知错误")
|
|
42
|
+
- 移除子代理时代遗留的 `loaderLabel` 加载面板文案(BorderedLoader 删除后成为死变量)
|
|
43
|
+
|
|
44
|
+
## 🔧 Refactor
|
|
45
|
+
|
|
46
|
+
- 新增 `extensions/session-utils.ts`:项目探测(语言/测试命令/lint/pre-commit/CI)、默认验收标准生成、`pollFor` 轮询、会话文本提取(改走 `getEntries()`,摆脱 branch/leaf 语义依赖)
|
|
47
|
+
- git-commands 与 grill-me-agent 解除互相依赖,公共工具统一由 session-utils 提供
|
|
48
|
+
- 移除 `ui-helpers.ts` 工作流进度 widget 面板(约 780 行)及其相关状态类型
|
|
49
|
+
- 清理未使用 import、死代码分支与文件末尾缺失换行
|
|
50
|
+
- README、APPEND_SYSTEM.md、package.json 元数据同步新架构
|
|
51
|
+
|
|
52
|
+
## 📦 Files Changed
|
|
53
|
+
|
|
54
|
+
| 类别 | 文件 |
|
|
55
|
+
|---|---|
|
|
56
|
+
| 删除 | `extensions/sub-agents.ts`、`extensions/workflow-engine.ts`、`agents/`(14 个 md)、`.doc/AGENT-FRONTMATTER-REFERENCE.md`、6 个旧测试 |
|
|
57
|
+
| 新增 | `extensions/session-utils.ts`、`tests/test-no-subagents.mjs`、`.pre-commit-config.yaml`、`.github/workflows/release.yml` |
|
|
58
|
+
| 修改 | `extensions/git-commands.ts`、`extensions/grill-me-agent.ts`、`extensions/dev-prompts.ts`、`extensions/ui-helpers.ts`、`README.md`、`prompts/APPEND_SYSTEM.md`、`package.json` |
|
|
59
|
+
|
|
60
|
+
## 🔗 Commit History
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
b2ed701 feat: git 委托提交任务补充执行约束(仅提交、快速执行)
|
|
64
|
+
176a1c2 feat: git 命令空消息时交由主代理识别变更并分批提交
|
|
65
|
+
b888b64 feat: 简化自动审查模式,移除后台异步审查,只保留阻塞式单模式
|
|
66
|
+
a22f498 refactor: 用产物轮询替代 waitForIdle 时序等待,移除 loaderLabel 提示参数
|
|
67
|
+
3c62779 docs: 添加 v0.7.0 版本发布说明
|
|
68
|
+
8d751c7 ci: 新增 v* 标签触发的 GitHub Release 自动化
|
|
69
|
+
c846996 docs: 添加第三方推荐扩展列表
|
|
70
|
+
54218ac feat: 精简 /dev-* 向导为概念式提问并智能默认填充
|
|
71
|
+
c599a25 chore: bump version to 0.7.0
|
|
72
|
+
462ccfd chore: 修正 README 措辞、pre-commit 大文件检查范围与 SKILL 尾随空格
|
|
73
|
+
6801299 test: 补充超时等待与审查入口的回归断言
|
|
74
|
+
6cb3243 fix: 审查检测过滤扩展注入消息防递归,skill 命令正确展开
|
|
75
|
+
b92131f fix: grill/PRD 等待当前代理带超时,PRD 失败增加错误提示
|
|
76
|
+
e8347f3 fix: git 命令等待带超时,共享会话工具下沉至 session-utils
|
|
77
|
+
c8b55b9 feat: 添加 .pre-commit-config.yaml 文件,配置通用文件检查和密钥泄露检测
|
|
78
|
+
1fa91f5 docs: 更新文档与元数据,反映子代理移除后的新架构
|
|
79
|
+
8c6add1 refactor: 移除工作流进度 widget 面板代码
|
|
80
|
+
d27a031 feat: /dev-* 向导组装完提示词后直接发送给当前代理
|
|
81
|
+
4019c2e feat: Grill 与 PRD 在当前代理中运行,不再 spawn 子代理
|
|
82
|
+
f9b8bef feat: run git commands directly instead of delegating to git-sub-agent
|
|
83
|
+
410c21f test: replace sub-agent-dependent tests with single regression suite
|
|
84
|
+
c03549a feat: remove sub-agent infrastructure
|
|
85
|
+
```
|