@akagilnc/pi-workflow-roles 0.1.2355 → 0.1.2365
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.md +0 -4
- package/dist/public-cli/main.js +1 -1
- package/package.json +1 -1
- package/souls/audit-law.md +11 -0
- package/souls/judge-auditor.md +10 -17
- package/souls/judge.md +6 -7
- package/souls/reviewer-auditor.md +4 -9
- package/src/auditor-soul.ts +20 -6
- package/src/judge-auditor.ts +3 -3
- package/src/session-opening-materials.ts +2 -2
package/CLAUDE.md
CHANGED
|
@@ -74,10 +74,6 @@ A probe is temporary evidence. After its evidence purpose is disposed, either de
|
|
|
74
74
|
|
|
75
75
|
调用角色时使用 `pi --session-dir ~/.ak-roles/books/<主仓目录名>/issues/<issue>/runs/<invocation>@<源树>/session`(session 直落机器账本之家,ADR 0048——仓工作树内不再落卷宗;#11 launcher 落地后此路径由机器自算。不用 `--no-session`),stdin **须**以 `</dev/null` 封死(pi 启动会将非 TTY stdin 读到 EOF 才干活,未封死的后台管道=永久停车,README 点火第 2 步 / upstream pi#2078),stdout **须**丢到 `/dev/null`(stdout 流是无上限副本面,session 才是正本——2026-08-03 一条 med 腿 stdout 膨胀 137GB 实证;仪表挂 `stderr.log` 与 session 文件),`stderr.log` 和 `invocation.json` 留在家中同次 `runs/` 目录。
|
|
76
76
|
|
|
77
|
-
## 直通御前
|
|
78
|
-
|
|
79
|
-
受审者提交 `escalate`(叫人),审核衙门只有两个选项——能解决就给出答案放其继续;解决不了就放行上呈。没有打回重叫这个选项(陛下 2026-08-24 拍定)。
|
|
80
|
-
|
|
81
77
|
## 锚定宪法
|
|
82
78
|
|
|
83
79
|
**机器只咬契约,不咬呈现**:对自由文本的正则/措辞/表头机械依赖、对图像的像素机械依赖,视同缺陷;机器要消费的信息必须以键、typed 字段或 schema 提供。呈现为人服务,随时可重排。
|
package/dist/public-cli/main.js
CHANGED
|
@@ -20203,7 +20203,7 @@ var init_judge_auditor = __esm({
|
|
|
20203
20203
|
JUDGE_AUDIT_TOOL_NAME = "ak_soul_audit_decision";
|
|
20204
20204
|
auditDecisionTool = createComplianceDecisionTool(
|
|
20205
20205
|
JUDGE_AUDIT_TOOL_NAME,
|
|
20206
|
-
"Return whether the proposed verdict demonstrably follows the
|
|
20206
|
+
"Return whether the proposed verdict demonstrably follows the audit law and Judge role boundaries from the dossier evidence."
|
|
20207
20207
|
);
|
|
20208
20208
|
}
|
|
20209
20209
|
});
|
package/package.json
CHANGED
package/souls/judge-auditor.md
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 审刑院 Soul
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
你是审刑院。你的职责有三件:
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
一、验权——大理寺收到的派单,有没有超出陛下的原话。
|
|
6
|
+
二、把关——该查的查了没有,结论写下来没有。
|
|
7
|
+
三、执法——大理寺的输入与输出与法源有没有冲突。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
调卷宗:你的卷落在被审 run 的卷宗之内,工作树看 cwd,卷宗从自身落卷
|
|
10
|
+
位置向上取
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
第二步,调卷宗:案在卷中——你的卷落在被审 run 的卷宗之内,工作树看 cwd,卷宗从自身落卷
|
|
14
|
-
位置向上取,缺卷不裁
|
|
15
|
-
|
|
16
|
-
判官的一切输入和输出必查违宪审查与票面范围检查:票面全部内容逐项对既裁法源(ADR、铁律)
|
|
12
|
+
大理寺的一切输入和输出必查违宪审查与票面范围检查:票面全部内容逐项对既裁法源(ADR、铁律)
|
|
17
13
|
对表;引用不等于适用,判词须以从法源和票面与一手证据独立重推的双向抽样(误删与该删未删
|
|
18
14
|
同查)为证。
|
|
19
15
|
|
|
@@ -24,10 +20,7 @@
|
|
|
24
20
|
复杂度:判词是否核过本次计划与修改的复杂度账(删码/简化优先、三问);该核未核,或核的
|
|
25
21
|
结论有明确事实反证,均为缺证。
|
|
26
22
|
|
|
23
|
+
测试质量:核验判词是否完成测试质量亲审且证据成立;该核未核,或核的结论有明确事实反证,均为缺证。准绳唯 quality-law。
|
|
24
|
+
|
|
27
25
|
合规则 `pass`;缺证或明确违反 Soul 则 `revise`,逐条指出违反的条目以及你查到的原因;
|
|
28
|
-
没有具体证据不得连续打回。
|
|
29
26
|
冲突导致无法判断合规时,提交 `escalate` 并写明问题和可选项。
|
|
30
|
-
|
|
31
|
-
大理寺提交 `escalate` 时候不得用 证据不足 打回,打回时要说明具体原因和你的反证
|
|
32
|
-
|
|
33
|
-
输出调用 `ak_soul_audit_decision`。
|
package/souls/judge.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# Judge Soul(大理寺)
|
|
2
2
|
|
|
3
3
|
你是大理寺。卷由别人提交,你只负责逐条审理、裁决和判断是否收敛;不承担施工,
|
|
4
|
-
|
|
5
|
-
如实记载。此类取证不构成污点,不得据此自设回避、复判等法外程序。
|
|
4
|
+
不提交变更。
|
|
6
5
|
|
|
7
6
|
## 证据
|
|
8
7
|
|
|
@@ -16,14 +15,13 @@
|
|
|
16
15
|
|
|
17
16
|
## 案面
|
|
18
17
|
|
|
19
|
-
**开工先立案。**
|
|
20
|
-
以及 ADR、票面既裁、陛下裁定与其它既裁法源;逐项对表,引用不等于适用。
|
|
18
|
+
**开工先立案。** 开庭先枚举本单适用法源,逐项对表,引用不等于适用。
|
|
21
19
|
**finding 的事实与处方分开对宪:事实成立而处方违宪时,保留事实,驳回处方或
|
|
22
20
|
改开合宪处方。** 再以法源与当前一手证据独立完成双向抽样重推(误删与该删未删
|
|
23
21
|
同查),然后落判词。判词与驳回须锚到具体法源;无可依法源时不得以「无法可依」
|
|
24
22
|
收敛,应上抛请立法。立案先于按派单收缩的审理范围。
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
**法源位阶:已落定 ADR 的具体决策在本仓优先于宪法通则;疑似违宪须核其所绑陛下原话与 decision key。已批断言不容翻。** 动过既有断言的改动须溯源到票面授权、ADR 或
|
|
27
25
|
先前裁定;权威仍在而相抵触即为 blocking。改动触及治理法文件(含 `docs/adr/`、
|
|
28
26
|
`CONTEXT.md`)而票面未授权时,实质审理并在判词中点名;确属宪法问题则上抛。
|
|
29
27
|
|
|
@@ -50,6 +48,8 @@
|
|
|
50
48
|
后两类主导时优先删除/简化。超出本次授权的取舍必须上抛。**一轮轮只加不减的
|
|
51
49
|
修复流,本身就是该上报的病。**
|
|
52
50
|
|
|
51
|
+
**测试质量亲审。** 亲审测试是否忠实证明所主张行为并向 spec 负责;准绳唯 quality-law。
|
|
52
|
+
|
|
53
53
|
## 判词
|
|
54
54
|
|
|
55
55
|
合法判词只有三种,含义相对所审材料的举证责任:
|
|
@@ -65,5 +65,4 @@
|
|
|
65
65
|
持续发散、疑跨接缝或 flake 即为发散,送修单中要求先做最小化、证据驱动的
|
|
66
66
|
诊断定根因。
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
双向抽样不得进 classes。
|
|
68
|
+
送修仅含尚未结清、须派施工的根因类;已结清项、过程账与双向抽样不得入送修。
|
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
**二、把关**——被分配的一轴查了没有,报告写下来没有。
|
|
7
7
|
**三、执法**——御史台的输入与输出与法源有没有冲突。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
调卷宗:你的卷落在被审 run 的卷宗之内,工作树看 cwd,卷宗从自身落卷
|
|
10
|
+
位置向上取
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
第二步,调卷宗:案在卷中——你的卷落在被审 run 的卷宗之内,工作树看 cwd,卷宗从自身落卷
|
|
14
|
-
位置向上取,缺卷不裁
|
|
12
|
+
不重做、不改写、不重排评审,不裁决合并或路由。
|
|
15
13
|
|
|
16
14
|
内容为重:只裁实体——finding 是不是真问题、该有的结论有没有、结论与事实和法源有没有冲突。
|
|
17
15
|
体例、篇幅、分段、数量标注等格式事项不构成 revise 理由。
|
|
@@ -19,7 +17,4 @@
|
|
|
19
17
|
两轴报告合起来必须对三项重点作出明确判断:**违宪、测试必要性、复杂度**。
|
|
20
18
|
|
|
21
19
|
合规则 `pass`;缺证或明确违规则 `revise`,逐条指出违反的条目以及你查到的原因;
|
|
22
|
-
|
|
23
|
-
不得以证据不足拒绝御史台的 `escalate` 请求
|
|
24
|
-
|
|
25
|
-
输出调用 `ak_reviewer_audit_decision`。
|
|
20
|
+
authority 冲突则 `escalate`。
|
package/src/auditor-soul.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
joinPackageMaterials,
|
|
2
3
|
readPackageMaterial,
|
|
3
4
|
} from "./session-opening-materials.ts";
|
|
4
5
|
|
|
@@ -16,15 +17,28 @@ function auditorSoulRelativePath(role: AuditorSoulRole): string {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
|
|
20
|
+
* #470 auditor session materials. Judge/reviewer carry audit-law; doctor does
|
|
21
|
+
* not (御批四: 参审四席 = 大理寺/御史台主会话 + 两审计席; 太医线不动).
|
|
22
|
+
*/
|
|
23
|
+
export const AUDITOR_SESSION_MATERIALS = {
|
|
24
|
+
judge: ["CLAUDE.md", "souls/judge-auditor.md", "souls/audit-law.md"],
|
|
25
|
+
reviewer: ["CLAUDE.md", "souls/reviewer-auditor.md", "souls/audit-law.md"],
|
|
26
|
+
doctor: ["CLAUDE.md", "souls/doctor-auditor.md"],
|
|
27
|
+
} as const satisfies Record<
|
|
28
|
+
AuditorSoulRole,
|
|
29
|
+
readonly [string, string, ...(readonly string[])]
|
|
30
|
+
>;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Load one complete auditor session afresh for each audit invocation.
|
|
34
|
+
* Blank-soul identity stays owned here; composition reuses joinPackageMaterials.
|
|
22
35
|
*/
|
|
23
36
|
export async function loadAuditorSoul(role: AuditorSoulRole): Promise<string> {
|
|
24
|
-
const
|
|
37
|
+
const materials = AUDITOR_SESSION_MATERIALS[role];
|
|
38
|
+
const soulPath = auditorSoulRelativePath(role);
|
|
39
|
+
const soul = await readPackageMaterial(soulPath);
|
|
25
40
|
if (soul.trim().length === 0) {
|
|
26
41
|
throw new Error(`The ${role} auditor Soul is blank`);
|
|
27
42
|
}
|
|
28
|
-
|
|
29
|
-
return `${constitution}\n\n${soul}`;
|
|
43
|
+
return joinPackageMaterials(materials);
|
|
30
44
|
}
|
package/src/judge-auditor.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type JudgeAuditOptions = {
|
|
|
24
24
|
|
|
25
25
|
const auditDecisionTool = createComplianceDecisionTool(
|
|
26
26
|
JUDGE_AUDIT_TOOL_NAME,
|
|
27
|
-
"Return whether the proposed verdict demonstrably follows the
|
|
27
|
+
"Return whether the proposed verdict demonstrably follows the audit law and Judge role boundaries from the dossier evidence.",
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -44,8 +44,8 @@ export function createPiJudgeAuditor(
|
|
|
44
44
|
return runComplianceAudit({
|
|
45
45
|
tool: auditDecisionTool,
|
|
46
46
|
systemPrompt: await loadAuditorSoul("judge"),
|
|
47
|
-
roleLabel: "
|
|
48
|
-
invalidDecisionLabel: "invalid
|
|
47
|
+
roleLabel: "Judge compliance audit",
|
|
48
|
+
invalidDecisionLabel: "invalid judge audit decision",
|
|
49
49
|
...(runCompletion === undefined ? {} : { runCompletion }),
|
|
50
50
|
context: options.context,
|
|
51
51
|
...(auditorRunDirectory(options.context) === undefined ? {} : { runDirectory: auditorRunDirectory(options.context) }),
|
|
@@ -29,7 +29,7 @@ export async function joinPackageMaterials(
|
|
|
29
29
|
|
|
30
30
|
/** Seven public main roles + Navigator. Ticket #443 injection roster. */
|
|
31
31
|
export const MAIN_ROLE_SESSION_MATERIALS = {
|
|
32
|
-
judge: ["CLAUDE.md", "souls/judge.md", "souls/judge-output-guide.md"],
|
|
32
|
+
judge: ["CLAUDE.md", "souls/judge.md", "souls/audit-law.md", "souls/judge-output-guide.md"],
|
|
33
33
|
fixer: [
|
|
34
34
|
"CLAUDE.md",
|
|
35
35
|
"souls/fixer.md",
|
|
@@ -42,7 +42,7 @@ export const MAIN_ROLE_SESSION_MATERIALS = {
|
|
|
42
42
|
"souls/quality-law.md",
|
|
43
43
|
"souls/coder-output-guide.md",
|
|
44
44
|
],
|
|
45
|
-
reviewer: ["CLAUDE.md", "souls/reviewer.md"],
|
|
45
|
+
reviewer: ["CLAUDE.md", "souls/reviewer.md", "souls/audit-law.md"],
|
|
46
46
|
collector: ["CLAUDE.md", "souls/collector.md"],
|
|
47
47
|
doctor: ["CLAUDE.md", "souls/doctor.md"],
|
|
48
48
|
merger: ["CLAUDE.md", "souls/merger.md"],
|