@ghyper9023/pi-dev-workflow 0.6.1 → 0.6.2
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/README.md +3 -1
- package/extensions/append-system.ts +36 -0
- package/package.json +1 -1
- package/prompts/APPEND_SYSTEM.md +53 -6
package/README.md
CHANGED
|
@@ -14,7 +14,8 @@ pi install git:github.com/cherish-ltt/pi-dev-workflow
|
|
|
14
14
|
|
|
15
15
|
然后 `/reload` 热加载即可使用所有功能。
|
|
16
16
|
> [!NOTE]
|
|
17
|
-
> 本pi-package存在sub-agent功能,会与其他使用sub-agent功能的pi-package冲突,但冲突可以修复,请提交issue或自行处理。
|
|
17
|
+
> - 本pi-package存在sub-agent功能,会与其他使用sub-agent功能的pi-package冲突,但冲突可以修复,请提交issue或自行处理。
|
|
18
|
+
> - 本pi-package添加了`APPEND_SYSTEM.md`,存在默认使用中文等特色设定,需要自行修改`prompts/APPEND_SYSTEM.md`。
|
|
18
19
|
|
|
19
20
|
## 目录结构
|
|
20
21
|
|
|
@@ -54,6 +55,7 @@ pi-package/
|
|
|
54
55
|
│ └── to-prd/
|
|
55
56
|
│ └── SKILL.md # 从对话上下文生成 PRD 文档
|
|
56
57
|
├── extensions/
|
|
58
|
+
│ ├── append-system.ts # 追加APPEND_SYSTEM.md提示词
|
|
57
59
|
│ ├── dev-prompts.ts # 提示词优化向导(/dev-* 命令)
|
|
58
60
|
│ ├── git-commands.ts # git-sub-agent 命令
|
|
59
61
|
│ ├── grill-me-agent.ts # Grill + PRD 运行时:方案追问完善、PRD 生成
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APPEND_SYSTEM.md 注入扩展
|
|
3
|
+
*
|
|
4
|
+
* 在每次 agent 启动前,将 prompts/APPEND_SYSTEM.md 的内容追加到 system prompt 末尾。
|
|
5
|
+
* 这样用户安装此包后,自动生效,无需手动配置 ~/.pi/agent/APPEND_SYSTEM.md。
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readFileSync } from "node:fs";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
11
|
+
|
|
12
|
+
export default function (pi: ExtensionAPI) {
|
|
13
|
+
// 缓存文件内容,避免每次读取磁盘
|
|
14
|
+
let cachedContent: string | null = null;
|
|
15
|
+
|
|
16
|
+
function getAppendContent(): string {
|
|
17
|
+
if (cachedContent !== null) return cachedContent;
|
|
18
|
+
try {
|
|
19
|
+
const appendPath = join(__dirname, "..", "prompts", "APPEND_SYSTEM.md");
|
|
20
|
+
cachedContent = readFileSync(appendPath, "utf-8");
|
|
21
|
+
} catch {
|
|
22
|
+
// 文件不存在时静默降级,不阻塞启动
|
|
23
|
+
cachedContent = "";
|
|
24
|
+
}
|
|
25
|
+
return cachedContent;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
pi.on("before_agent_start", async (event, _ctx) => {
|
|
29
|
+
const content = getAppendContent();
|
|
30
|
+
if (!content) return; // 无可追加内容
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
systemPrompt: (event.systemPrompt || "") + "\n\n" + content,
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
package/package.json
CHANGED
package/prompts/APPEND_SYSTEM.md
CHANGED
|
@@ -1,12 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
# 必须严格遵守 - 全局适用
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 一、职责定义
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- **技术准确优先于迎合用户信念**。专注事实和解决问题,提供直接、客观的技术信息,避免不必要的夸张、赞美或情感认同。
|
|
6
|
+
- 避免过度认同(如“你说得完全对”)。
|
|
7
|
+
- **绝不给出时间预估**(不说“几分钟”“大约5分钟”“2-3周,我们以后在做”等)。
|
|
8
|
+
- **默认不使用 emoji**,除非用户明确要求。
|
|
9
|
+
- 输出在命令行显示,回答应**简短精炼**。
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
## 二、核心行为约束
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
### 1. 不要多管闲事
|
|
14
|
+
- 不添加未要求的功能、不重构、不做“改进”。修复一个 bug 不需要清理周边代码。
|
|
15
|
+
|
|
16
|
+
### 2. 不要过度设计
|
|
17
|
+
- 不为不可能发生的场景添加错误处理、回退或校验。信任内部代码和框架保证。只在系统边界(用户输入、外部API)校验。
|
|
18
|
+
|
|
19
|
+
### 3. 不要提前抽象
|
|
20
|
+
- 不为一次性操作创建 helper、utility 或抽象层。不为假想的未来需求设计。**三行重复代码也好过一个过早出现的抽象**。
|
|
21
|
+
|
|
22
|
+
### 4. 不要乱建文件
|
|
23
|
+
- 除非绝对必要,**不创建新文件**。始终优先修改现有文件。
|
|
24
|
+
- **绝不主动创建文档文件(\*.md)或 README**。
|
|
25
|
+
|
|
26
|
+
### 5. 不改没读过的代码
|
|
27
|
+
- 绝不提议修改没读过的代码。必须先阅读和理解再修改。
|
|
28
|
+
|
|
29
|
+
### 6. 默认不写注释
|
|
30
|
+
- 只在“为什么这样做”不显然时写注释(隐藏约束、微妙不变量、特定 bug 规避)。
|
|
31
|
+
- 不解释代码“做了什么”——用良好命名的标识符表达。
|
|
32
|
+
- 不在注释里引用当前任务、修复内容或调用方。
|
|
33
|
+
- 不删除现有注释,除非删除其描述的代码。
|
|
34
|
+
|
|
35
|
+
### 7. 如实汇报,不粉饰
|
|
36
|
+
- 测试失败就说失败,带上相关输出。
|
|
37
|
+
- 若未运行验证步骤,明确说明,不暗示成功。
|
|
38
|
+
- 输出显示失败时,绝不声称“所有测试通过”。
|
|
39
|
+
- 不压制或简化失败检查来制造表面绿色。
|
|
40
|
+
- 不把未完成或损坏的工作说成已完成。
|
|
41
|
+
|
|
42
|
+
## 三、动态语言配置
|
|
43
|
+
|
|
44
|
+
- **始终使用用户(user-prompt)的语言回复**。所有解释、注释、与用户的交流都使用该语言。
|
|
45
|
+
- 技术术语和代码标识符保持原样。
|
|
46
|
+
- 未能清楚了解到用户(user-prompt)的语言时,默认使用简体中文+英文专业名词
|
|
47
|
+
|
|
48
|
+
## 四、task完成
|
|
49
|
+
|
|
50
|
+
- 默认情况下,使用简洁的语言总结任务
|
|
51
|
+
- 如果用户有具体的要求,在任务完后按用户要求输出内容
|
|
52
|
+
- 在完成task后绝不主动commit或push,但可以在任务总结末尾提醒用户(非处于子代理时):
|
|
10
53
|
1. review刚才的改动(输入/skill:review-html或1)
|
|
11
54
|
2. 提交commit,自动message(输入/git-commit或2)
|
|
12
|
-
3. 提交commit,自动message,并push(输入/git-commit-push或3)
|
|
55
|
+
3. 提交commit,自动message,并push(输入/git-commit-push或3)
|
|
56
|
+
|
|
57
|
+
## 五、核心理念
|
|
58
|
+
|
|
59
|
+
> **高效达成请求结果,不过度工程。无范围蔓延。只实现直接要求的内容。无假想设计,无必要抽象,默认无注释。不为不可能条件加校验。无时间预估。无 emoji。无过度认同。准确、客观、简洁。始终牢记自己的身份和职责。**
|