@akagilnc/pi-workflow-roles 0.1.5880 → 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.
@@ -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: reviewSubmissionSchema
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: reviewSubmissionSchema
4490
+ parameters: inspectorSubmissionSchema
4470
4491
  },
4471
4492
  gatekeeper: {
4472
4493
  label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
@@ -1,11 +1,11 @@
1
- import { reviewSubmissionSchema } from "./review-submission.js";
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 = reviewSubmissionSchema;
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: reviewSubmissionSchema
9845
+ parameters: inspectorSubmissionSchema
9825
9846
  },
9826
9847
  gatekeeper: {
9827
9848
  label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
@@ -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: reviewSubmissionSchema
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: reviewSubmissionSchema,
90
+ parameters: inspectorSubmissionSchema,
91
91
  },
92
92
  gatekeeper: {
93
93
  label: "门下省决议",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akagilnc/pi-workflow-roles",
3
- "version": "0.1.5880",
3
+ "version": "0.1.5882",
4
4
  "description": "Soul-bound workflow roles for Pi",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -8,6 +8,8 @@
8
8
 
9
9
  正确性由真实调用追到外部结果,核对正常、边界、失败路径及跨层传递;要求与改动双向对表。测试审查须辨识指标合格而契约失效的反例。
10
10
 
11
+ 本腿判完,再审整票:本票从起点到 HEAD 的生产与测试净增,还剩哪些能删、能合并,按 ticketComplexity 逐条答。有一条命中就封驳;封驳按那句条文写类、列全命中处,不用某一处实例的说法。
12
+
11
13
  取证与同类复核依《审法》;复杂度、测试质量与成本依《质量法》。
12
14
 
13
15
  封驳写清现象,原因,具体问题。根因不明先指诊断。
@@ -1,5 +1,5 @@
1
1
  import type { Static } from "typebox";
2
- import { reviewSubmissionSchema } from "./review-submission.ts";
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 = reviewSubmissionSchema;
18
+ export const inspectorOutputSchema = inspectorSubmissionSchema;
19
19
 
20
20
  export type InspectorOutputParameters = Static<typeof inspectorOutputSchema>;
21
21
 
@@ -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: reviewSubmissionSchema,
102
+ parameters: inspectorSubmissionSchema,
103
103
  },
104
104
  gatekeeper: {
105
105
  label: "门下省决议",