@akagilnc/pi-workflow-roles 0.1.5877 → 0.1.5882
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/dist/acp-host/production-host.js +23 -2
- package/dist/headless-host/production-host.js +23 -2
- package/dist/inspector-role.js +2 -2
- package/dist/migrate-book-topology.js +23 -2
- package/dist/public-cli/main.js +23 -2
- package/dist/review-submission.js +15 -0
- package/dist/role-submission-declarations.js +2 -2
- package/package.json +1 -1
- package/souls/countersign.md +8 -9
- package/souls/inspector.md +2 -0
- package/src/inspector-role.ts +2 -2
- package/src/review-submission.ts +26 -0
- package/src/role-submission-declarations.ts +2 -2
|
@@ -1698,7 +1698,7 @@ var init_navigator_output = __esm({
|
|
|
1698
1698
|
|
|
1699
1699
|
// src/review-submission.ts
|
|
1700
1700
|
import { Type as Type5 } from "typebox";
|
|
1701
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema;
|
|
1701
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
1702
1702
|
var init_review_submission = __esm({
|
|
1703
1703
|
"src/review-submission.ts"() {
|
|
1704
1704
|
"use strict";
|
|
@@ -1763,6 +1763,27 @@ var init_review_submission = __esm({
|
|
|
1763
1763
|
{ additionalProperties: true }
|
|
1764
1764
|
)
|
|
1765
1765
|
);
|
|
1766
|
+
ticketComplexityRowSchema = Type5.Object(
|
|
1767
|
+
{
|
|
1768
|
+
class: Type5.String({ description: "\u7167\u6284\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u90A3\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587" }),
|
|
1769
|
+
hits: Type5.Array(Type5.String(), {
|
|
1770
|
+
description: "\u672C\u7968\u51C0\u589E\u91CC\u547D\u4E2D\u8FD9\u4E00\u53E5\u7684\u6BCF\u4E00\u5904 path:line\uFF0C\u5E76\u5199\u5220\u5230\u54EA\u3001\u5E76\u5230\u54EA\uFF1B\u6253\u5F00\u770B\u8FC7\u624D\u7B97\u3002\u4E00\u5904\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\u7B54\u6CD5"
|
|
1771
|
+
})
|
|
1772
|
+
},
|
|
1773
|
+
{ additionalProperties: true }
|
|
1774
|
+
);
|
|
1775
|
+
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
1776
|
+
Type5.Object(
|
|
1777
|
+
{
|
|
1778
|
+
status: reviewStatusField,
|
|
1779
|
+
...reviewNarrativeFields,
|
|
1780
|
+
ticketComplexity: Type5.Array(ticketComplexityRowSchema, {
|
|
1781
|
+
description: "\u6574\u7968\u590D\u6742\u5EA6\uFF1A\u672C\u7968\u8D77\u70B9\uFF08\u672C\u5206\u652F\u4E0E\u5BB6\u65CF\u5206\u652F\u6216\u76EE\u6807\u5206\u652F\u7684 git merge-base\uFF09\u5230 HEAD \u7684\u751F\u4EA7\u4E0E\u6D4B\u8BD5\u51C0\u589E\uFF0C\u5BF9\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u6BCF\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587\u5404\u7B54\u4E00\u884C\u3002\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\u6539\u52A8\u4E5F\u7B97\u5728\u5185\u3002"
|
|
1782
|
+
})
|
|
1783
|
+
},
|
|
1784
|
+
{ additionalProperties: true }
|
|
1785
|
+
)
|
|
1786
|
+
);
|
|
1766
1787
|
}
|
|
1767
1788
|
});
|
|
1768
1789
|
|
|
@@ -3203,7 +3224,7 @@ var init_role_submission_declarations = __esm({
|
|
|
3203
3224
|
label: "\u53F0\u9662\u8F93\u51FA",
|
|
3204
3225
|
description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
|
|
3205
3226
|
promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
|
|
3206
|
-
parameters:
|
|
3227
|
+
parameters: inspectorSubmissionSchema
|
|
3207
3228
|
},
|
|
3208
3229
|
gatekeeper: {
|
|
3209
3230
|
label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
|
|
@@ -497,7 +497,7 @@ var init_terminating_infrastructure = __esm({
|
|
|
497
497
|
|
|
498
498
|
// src/review-submission.ts
|
|
499
499
|
import { Type as Type2 } from "typebox";
|
|
500
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema;
|
|
500
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
501
501
|
var init_review_submission = __esm({
|
|
502
502
|
"src/review-submission.ts"() {
|
|
503
503
|
"use strict";
|
|
@@ -562,6 +562,27 @@ var init_review_submission = __esm({
|
|
|
562
562
|
{ additionalProperties: true }
|
|
563
563
|
)
|
|
564
564
|
);
|
|
565
|
+
ticketComplexityRowSchema = Type2.Object(
|
|
566
|
+
{
|
|
567
|
+
class: Type2.String({ description: "\u7167\u6284\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u90A3\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587" }),
|
|
568
|
+
hits: Type2.Array(Type2.String(), {
|
|
569
|
+
description: "\u672C\u7968\u51C0\u589E\u91CC\u547D\u4E2D\u8FD9\u4E00\u53E5\u7684\u6BCF\u4E00\u5904 path:line\uFF0C\u5E76\u5199\u5220\u5230\u54EA\u3001\u5E76\u5230\u54EA\uFF1B\u6253\u5F00\u770B\u8FC7\u624D\u7B97\u3002\u4E00\u5904\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\u7B54\u6CD5"
|
|
570
|
+
})
|
|
571
|
+
},
|
|
572
|
+
{ additionalProperties: true }
|
|
573
|
+
);
|
|
574
|
+
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
575
|
+
Type2.Object(
|
|
576
|
+
{
|
|
577
|
+
status: reviewStatusField,
|
|
578
|
+
...reviewNarrativeFields,
|
|
579
|
+
ticketComplexity: Type2.Array(ticketComplexityRowSchema, {
|
|
580
|
+
description: "\u6574\u7968\u590D\u6742\u5EA6\uFF1A\u672C\u7968\u8D77\u70B9\uFF08\u672C\u5206\u652F\u4E0E\u5BB6\u65CF\u5206\u652F\u6216\u76EE\u6807\u5206\u652F\u7684 git merge-base\uFF09\u5230 HEAD \u7684\u751F\u4EA7\u4E0E\u6D4B\u8BD5\u51C0\u589E\uFF0C\u5BF9\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u6BCF\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587\u5404\u7B54\u4E00\u884C\u3002\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\u6539\u52A8\u4E5F\u7B97\u5728\u5185\u3002"
|
|
581
|
+
})
|
|
582
|
+
},
|
|
583
|
+
{ additionalProperties: true }
|
|
584
|
+
)
|
|
585
|
+
);
|
|
565
586
|
}
|
|
566
587
|
});
|
|
567
588
|
|
|
@@ -4466,7 +4487,7 @@ var init_role_submission_declarations = __esm({
|
|
|
4466
4487
|
label: "\u53F0\u9662\u8F93\u51FA",
|
|
4467
4488
|
description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
|
|
4468
4489
|
promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
|
|
4469
|
-
parameters:
|
|
4490
|
+
parameters: inspectorSubmissionSchema
|
|
4470
4491
|
},
|
|
4471
4492
|
gatekeeper: {
|
|
4472
4493
|
label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
|
package/dist/inspector-role.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { inspectorSubmissionSchema } from "./review-submission.js";
|
|
2
2
|
import { roleSubmissionDeclaration } from "./role-submission-declarations.js";
|
|
3
3
|
import { INSPECTOR_OUTPUT_TOOL_NAME, validateRecordedInspectorOutput, } from "./inspector-contracts.js";
|
|
4
4
|
export { INSPECTOR_OUTPUT_TOOL_NAME, };
|
|
5
5
|
export { INSPECTOR_OUTPUT_TOOL_NAME as INSPECTOR_OUTPUT_TOOL };
|
|
6
6
|
export { validateRecordedInspectorOutput };
|
|
7
7
|
/** 台院事后察举交卷形状。 */
|
|
8
|
-
export const inspectorOutputSchema =
|
|
8
|
+
export const inspectorOutputSchema = inspectorSubmissionSchema;
|
|
9
9
|
/**
|
|
10
10
|
* 决定工具规格。生命周期装配归注册信封 owner——src/role-runtime.ts(ADR 0018)。
|
|
11
11
|
*/
|
|
@@ -8723,7 +8723,7 @@ var init_navigator_output = __esm({
|
|
|
8723
8723
|
});
|
|
8724
8724
|
|
|
8725
8725
|
// src/review-submission.ts
|
|
8726
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema;
|
|
8726
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
8727
8727
|
var init_review_submission = __esm({
|
|
8728
8728
|
"src/review-submission.ts"() {
|
|
8729
8729
|
"use strict";
|
|
@@ -8789,6 +8789,27 @@ var init_review_submission = __esm({
|
|
|
8789
8789
|
{ additionalProperties: true }
|
|
8790
8790
|
)
|
|
8791
8791
|
);
|
|
8792
|
+
ticketComplexityRowSchema = typebox_exports.Object(
|
|
8793
|
+
{
|
|
8794
|
+
class: typebox_exports.String({ description: "\u7167\u6284\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u90A3\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587" }),
|
|
8795
|
+
hits: typebox_exports.Array(typebox_exports.String(), {
|
|
8796
|
+
description: "\u672C\u7968\u51C0\u589E\u91CC\u547D\u4E2D\u8FD9\u4E00\u53E5\u7684\u6BCF\u4E00\u5904 path:line\uFF0C\u5E76\u5199\u5220\u5230\u54EA\u3001\u5E76\u5230\u54EA\uFF1B\u6253\u5F00\u770B\u8FC7\u624D\u7B97\u3002\u4E00\u5904\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\u7B54\u6CD5"
|
|
8797
|
+
})
|
|
8798
|
+
},
|
|
8799
|
+
{ additionalProperties: true }
|
|
8800
|
+
);
|
|
8801
|
+
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
8802
|
+
typebox_exports.Object(
|
|
8803
|
+
{
|
|
8804
|
+
status: reviewStatusField,
|
|
8805
|
+
...reviewNarrativeFields,
|
|
8806
|
+
ticketComplexity: typebox_exports.Array(ticketComplexityRowSchema, {
|
|
8807
|
+
description: "\u6574\u7968\u590D\u6742\u5EA6\uFF1A\u672C\u7968\u8D77\u70B9\uFF08\u672C\u5206\u652F\u4E0E\u5BB6\u65CF\u5206\u652F\u6216\u76EE\u6807\u5206\u652F\u7684 git merge-base\uFF09\u5230 HEAD \u7684\u751F\u4EA7\u4E0E\u6D4B\u8BD5\u51C0\u589E\uFF0C\u5BF9\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u6BCF\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587\u5404\u7B54\u4E00\u884C\u3002\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\u6539\u52A8\u4E5F\u7B97\u5728\u5185\u3002"
|
|
8808
|
+
})
|
|
8809
|
+
},
|
|
8810
|
+
{ additionalProperties: true }
|
|
8811
|
+
)
|
|
8812
|
+
);
|
|
8792
8813
|
}
|
|
8793
8814
|
});
|
|
8794
8815
|
|
|
@@ -9821,7 +9842,7 @@ var init_role_submission_declarations = __esm({
|
|
|
9821
9842
|
label: "\u53F0\u9662\u8F93\u51FA",
|
|
9822
9843
|
description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
|
|
9823
9844
|
promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
|
|
9824
|
-
parameters:
|
|
9845
|
+
parameters: inspectorSubmissionSchema
|
|
9825
9846
|
},
|
|
9826
9847
|
gatekeeper: {
|
|
9827
9848
|
label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
|
package/dist/public-cli/main.js
CHANGED
|
@@ -9213,7 +9213,7 @@ var init_navigator_output = __esm({
|
|
|
9213
9213
|
});
|
|
9214
9214
|
|
|
9215
9215
|
// src/review-submission.ts
|
|
9216
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema;
|
|
9216
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, courtClauseItemSchema, courtClausesField, courtReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
9217
9217
|
var init_review_submission = __esm({
|
|
9218
9218
|
"src/review-submission.ts"() {
|
|
9219
9219
|
"use strict";
|
|
@@ -9279,6 +9279,27 @@ var init_review_submission = __esm({
|
|
|
9279
9279
|
{ additionalProperties: true }
|
|
9280
9280
|
)
|
|
9281
9281
|
);
|
|
9282
|
+
ticketComplexityRowSchema = typebox_exports.Object(
|
|
9283
|
+
{
|
|
9284
|
+
class: typebox_exports.String({ description: "\u7167\u6284\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u90A3\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587" }),
|
|
9285
|
+
hits: typebox_exports.Array(typebox_exports.String(), {
|
|
9286
|
+
description: "\u672C\u7968\u51C0\u589E\u91CC\u547D\u4E2D\u8FD9\u4E00\u53E5\u7684\u6BCF\u4E00\u5904 path:line\uFF0C\u5E76\u5199\u5220\u5230\u54EA\u3001\u5E76\u5230\u54EA\uFF1B\u6253\u5F00\u770B\u8FC7\u624D\u7B97\u3002\u4E00\u5904\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\u7B54\u6CD5"
|
|
9287
|
+
})
|
|
9288
|
+
},
|
|
9289
|
+
{ additionalProperties: true }
|
|
9290
|
+
);
|
|
9291
|
+
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
9292
|
+
typebox_exports.Object(
|
|
9293
|
+
{
|
|
9294
|
+
status: reviewStatusField,
|
|
9295
|
+
...reviewNarrativeFields,
|
|
9296
|
+
ticketComplexity: typebox_exports.Array(ticketComplexityRowSchema, {
|
|
9297
|
+
description: "\u6574\u7968\u590D\u6742\u5EA6\uFF1A\u672C\u7968\u8D77\u70B9\uFF08\u672C\u5206\u652F\u4E0E\u5BB6\u65CF\u5206\u652F\u6216\u76EE\u6807\u5206\u652F\u7684 git merge-base\uFF09\u5230 HEAD \u7684\u751F\u4EA7\u4E0E\u6D4B\u8BD5\u51C0\u589E\uFF0C\u5BF9\u300A\u8D28\u91CF\u6CD5\u300B\u91CC\u6BCF\u4E00\u53E5\u8981\u6C42\u5220\u9664\u3001\u5408\u5E76\u3001\u590D\u7528\u6216\u4E0D\u53E6\u5199\u7684\u6761\u6587\u5404\u7B54\u4E00\u884C\u3002\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\u6539\u52A8\u4E5F\u7B97\u5728\u5185\u3002"
|
|
9298
|
+
})
|
|
9299
|
+
},
|
|
9300
|
+
{ additionalProperties: true }
|
|
9301
|
+
)
|
|
9302
|
+
);
|
|
9282
9303
|
}
|
|
9283
9304
|
});
|
|
9284
9305
|
|
|
@@ -11566,7 +11587,7 @@ var init_role_submission_declarations = __esm({
|
|
|
11566
11587
|
label: "\u53F0\u9662\u8F93\u51FA",
|
|
11567
11588
|
description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
|
|
11568
11589
|
promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
|
|
11569
|
-
parameters:
|
|
11590
|
+
parameters: inspectorSubmissionSchema
|
|
11570
11591
|
},
|
|
11571
11592
|
gatekeeper: {
|
|
11572
11593
|
label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
|
|
@@ -62,3 +62,18 @@ export const courtReviewSubmissionSchema = withTerminatingOutputDeclarations(Typ
|
|
|
62
62
|
...reviewNarrativeFields,
|
|
63
63
|
clauses: courtClausesField,
|
|
64
64
|
}, { additionalProperties: true }));
|
|
65
|
+
/** Inspector whole-ticket complexity row: one quality-law deletion clause, answered for the whole ticket. */
|
|
66
|
+
export const ticketComplexityRowSchema = Type.Object({
|
|
67
|
+
class: Type.String({ description: "照抄《质量法》里那一句要求删除、合并、复用或不另写的条文" }),
|
|
68
|
+
hits: Type.Array(Type.String(), {
|
|
69
|
+
description: "本票净增里命中这一句的每一处 path:line,并写删到哪、并到哪;打开看过才算。一处没有为空数组,没有第三种答法",
|
|
70
|
+
}),
|
|
71
|
+
}, { additionalProperties: true });
|
|
72
|
+
/** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
|
|
73
|
+
export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(Type.Object({
|
|
74
|
+
status: reviewStatusField,
|
|
75
|
+
...reviewNarrativeFields,
|
|
76
|
+
ticketComplexity: Type.Array(ticketComplexityRowSchema, {
|
|
77
|
+
description: "整票复杂度:本票起点(本分支与家族分支或目标分支的 git merge-base)到 HEAD 的生产与测试净增,对《质量法》里每一句要求删除、合并、复用或不另写的条文各答一行。前几轮已署过的改动也算在内。",
|
|
78
|
+
}),
|
|
79
|
+
}, { additionalProperties: true }));
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Execute lives in filed-submission.ts.
|
|
6
6
|
*/
|
|
7
7
|
import { packagedRoleOutputTool } from "./packaged-role-registry.js";
|
|
8
|
-
import { courtReviewSubmissionSchema, reviewSubmissionSchema } from "./review-submission.js";
|
|
8
|
+
import { courtReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.js";
|
|
9
9
|
import { collectorOutputArgsSchema } from "./collector-tool-schemas.js";
|
|
10
10
|
import { diaristOutputSchema } from "./diarist-contracts.js";
|
|
11
11
|
import { doctorSubmissionSchema, DOCTOR_OUTPUT_TOOL_DESCRIPTION } from "./doctor-contracts.js";
|
|
@@ -87,7 +87,7 @@ const SUBMISSION_FACE = {
|
|
|
87
87
|
label: "台院输出",
|
|
88
88
|
description: "台院终局回执,状态为 converged、continue 或 escalate。",
|
|
89
89
|
promptSnippet: "台院终局回执",
|
|
90
|
-
parameters:
|
|
90
|
+
parameters: inspectorSubmissionSchema,
|
|
91
91
|
},
|
|
92
92
|
gatekeeper: {
|
|
93
93
|
label: "门下省决议",
|
package/package.json
CHANGED
package/souls/countersign.md
CHANGED
|
@@ -15,14 +15,13 @@
|
|
|
15
15
|
3 第二法源合法性检查:判断第二法源 以及 输入的 prompt等 对比第一法源是否有超出,不足,曲解。如有,除非有陛下原话批准,否则直接封驳 要求改正或陛下批准。
|
|
16
16
|
4 派单文 是否要求了范围,是否给了你清单,是否让你不全量重审,以及是否有任何违反你Soul规定的。如果有,直接封驳,拿不准的直接上呈。
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
此步不成立即封驳,不必再走后三步。
|
|
18
|
+
**二、设计合法。** 陛下原话是第一法源的一部分:读它是为了知道哪些事已经拍定,条款逐条对原话的核销归符宝郎,本席不做。本步审的是设计答案的来路:
|
|
19
|
+
- 中书省问了而由宰相作答、没等陛下拍的每一题(中书省回执里有答案、未上呈的题),其答案须能从适用法(第一、第二法源)或已定事项(父票、前票里陛下拍定的,和中书省问答里陛下拍定并写进票面的;宰相自己的答案不算)推出来;判词里写出这条推导。推不出的,该题宰相答不了,改标陛下题,上呈,附原题原选项;不得以「合理」「承接设计」「现状如此」顶替推导。
|
|
20
|
+
- 中书省在题里否决某个做法的(「旧模型,不选」之类),否决须引法或已定事项;引不出的,该做法并列呈陛下。
|
|
21
|
+
- 对于修复票,判断根因是什么、证据在哪;对于设计票,判断设计能否从法推出,以及因果链本身站不站得住。
|
|
22
|
+
此步不成立即封驳或上呈,不必再走后三步。
|
|
24
23
|
|
|
25
|
-
**三、相抵**
|
|
24
|
+
**三、相抵** 票面、相关票与在飞分支,与法源和已定事项有无抵触。在飞分支里已做出来的东西与已定事项相抵的,是相抵,不是现状。票面自相抵同为相抵。
|
|
26
25
|
|
|
27
26
|
**四、缺失** 法源要求的,票面有没有漏:适用法只查两类:票面与某条 ADR 决定相抵的,和把某条决定留给别的票承接的,票面须写明该条与「由 #x 承接」;这两类之外的 ADR 没引不算缺失,不得为此封驳;验收面须覆盖票面每条主张;票面里每一条行为都须答得出《送庭前三问》第一问:起、停、续、终、接各归谁没写的行为,即缺失;前置产物、决定、答复须在;承重主张的源头不存在、不支持、已过时,同为缺失。缺失列表在能力范围内一次扫完,尽量避免因缺失导致多轮往返。
|
|
28
27
|
|
|
@@ -34,8 +33,8 @@
|
|
|
34
33
|
|
|
35
34
|
五步是审读,五问是裁决口径,对应关系固定,不重做:
|
|
36
35
|
1. 票面是否符合既定制度——由「相抵」答;
|
|
37
|
-
2.
|
|
38
|
-
3.
|
|
36
|
+
2. 设计是否合法——由「设计合法」答:宰相可答之题的答案可从法或已定事项推出,否决有出处;
|
|
37
|
+
3. 文书是否与法一致——由「缺失」「擅加」答:无夹带、无缺口;条款与陛下原话的对应归符宝郎;
|
|
39
38
|
4. 是否存在必须退回重议的问题;
|
|
40
39
|
5. 是否已具备正式发布与执行资格。
|
|
41
40
|
|
package/souls/inspector.md
CHANGED
package/src/inspector-role.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Static } from "typebox";
|
|
2
|
-
import {
|
|
2
|
+
import { inspectorSubmissionSchema } from "./review-submission.ts";
|
|
3
3
|
import { roleSubmissionDeclaration } from "./role-submission-declarations.ts";
|
|
4
4
|
import {
|
|
5
5
|
INSPECTOR_OUTPUT_TOOL_NAME,
|
|
@@ -15,7 +15,7 @@ export type { InspectorOutput };
|
|
|
15
15
|
export { validateRecordedInspectorOutput };
|
|
16
16
|
|
|
17
17
|
/** 台院事后察举交卷形状。 */
|
|
18
|
-
export const inspectorOutputSchema =
|
|
18
|
+
export const inspectorOutputSchema = inspectorSubmissionSchema;
|
|
19
19
|
|
|
20
20
|
export type InspectorOutputParameters = Static<typeof inspectorOutputSchema>;
|
|
21
21
|
|
package/src/review-submission.ts
CHANGED
|
@@ -91,4 +91,30 @@ export const courtReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
|
91
91
|
),
|
|
92
92
|
);
|
|
93
93
|
|
|
94
|
+
/** Inspector whole-ticket complexity row: one quality-law deletion clause, answered for the whole ticket. */
|
|
95
|
+
export const ticketComplexityRowSchema = Type.Object(
|
|
96
|
+
{
|
|
97
|
+
class: Type.String({ description: "照抄《质量法》里那一句要求删除、合并、复用或不另写的条文" }),
|
|
98
|
+
hits: Type.Array(Type.String(), {
|
|
99
|
+
description: "本票净增里命中这一句的每一处 path:line,并写删到哪、并到哪;打开看过才算。一处没有为空数组,没有第三种答法",
|
|
100
|
+
}),
|
|
101
|
+
},
|
|
102
|
+
{ additionalProperties: true },
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
/** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
|
|
106
|
+
export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
107
|
+
Type.Object(
|
|
108
|
+
{
|
|
109
|
+
status: reviewStatusField,
|
|
110
|
+
...reviewNarrativeFields,
|
|
111
|
+
ticketComplexity: Type.Array(ticketComplexityRowSchema, {
|
|
112
|
+
description:
|
|
113
|
+
"整票复杂度:本票起点(本分支与家族分支或目标分支的 git merge-base)到 HEAD 的生产与测试净增,对《质量法》里每一句要求删除、合并、复用或不另写的条文各答一行。前几轮已署过的改动也算在内。",
|
|
114
|
+
}),
|
|
115
|
+
},
|
|
116
|
+
{ additionalProperties: true },
|
|
117
|
+
),
|
|
118
|
+
);
|
|
119
|
+
|
|
94
120
|
export type ReviewSubmission = { readonly status?: unknown; readonly [key: string]: unknown };
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Execute lives in filed-submission.ts.
|
|
6
6
|
*/
|
|
7
7
|
import { packagedRoleOutputTool, type PackagedRole } from "./packaged-role-registry.ts";
|
|
8
|
-
import { courtReviewSubmissionSchema, reviewSubmissionSchema } from "./review-submission.ts";
|
|
8
|
+
import { courtReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.ts";
|
|
9
9
|
import { collectorOutputArgsSchema } from "./collector-tool-schemas.ts";
|
|
10
10
|
import { diaristOutputSchema } from "./diarist-contracts.ts";
|
|
11
11
|
import { doctorSubmissionSchema, DOCTOR_OUTPUT_TOOL_DESCRIPTION } from "./doctor-contracts.ts";
|
|
@@ -99,7 +99,7 @@ const SUBMISSION_FACE = {
|
|
|
99
99
|
label: "台院输出",
|
|
100
100
|
description: "台院终局回执,状态为 converged、continue 或 escalate。",
|
|
101
101
|
promptSnippet: "台院终局回执",
|
|
102
|
-
parameters:
|
|
102
|
+
parameters: inspectorSubmissionSchema,
|
|
103
103
|
},
|
|
104
104
|
gatekeeper: {
|
|
105
105
|
label: "门下省决议",
|