@akagilnc/pi-workflow-roles 0.1.5880 → 0.1.5885

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,33 @@ 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
+ checked: Type5.String({
1773
+ description: "\u4E3A\u8FD9\u4E00\u6761\u6253\u5F00\u6BD4\u5BF9\u8FC7\u7684\u51E0\u5904 path:line\uFF1Ahits \u4E3A\u7A7A\u65F6\u5199\u6BCF\u5904\u4E3A\u4EC0\u4E48\u4E0D\u7B97\uFF0C\u4E0D\u80FD\u53EA\u5199\u672A\u53D1\u73B0\uFF1B\u6709\u547D\u4E2D\u65F6\u5199\u6BD4\u5BF9\u4E86\u54EA\u4E9B\u5730\u65B9\u3001\u547D\u4E2D\u5728\u54EA\u627E\u5230"
1774
+ })
1775
+ },
1776
+ { additionalProperties: true }
1777
+ );
1778
+ inspectorSubmissionSchema = withTerminatingOutputDeclarations(
1779
+ Type5.Object(
1780
+ {
1781
+ status: reviewStatusField,
1782
+ ...reviewNarrativeFields,
1783
+ suspect: Type5.String({
1784
+ description: "\u6574\u7968\u91CC\u6700\u53EF\u7591\u3001\u6700\u50CF\u80FD\u5220\u80FD\u5E76\u7684\u4E00\u5904 path:line\uFF0C\u4EE5\u53CA\u4E3A\u4EC0\u4E48\u7559\u7740\uFF1B\u8BF4\u4E0D\u6E05\u5C31\u8BE5\u8FDB hits"
1785
+ }),
1786
+ ticketComplexity: Type5.Array(ticketComplexityRowSchema, {
1787
+ 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"
1788
+ })
1789
+ },
1790
+ { additionalProperties: true }
1791
+ )
1792
+ );
1766
1793
  }
1767
1794
  });
1768
1795
 
@@ -3203,7 +3230,7 @@ var init_role_submission_declarations = __esm({
3203
3230
  label: "\u53F0\u9662\u8F93\u51FA",
3204
3231
  description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
3205
3232
  promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
3206
- parameters: reviewSubmissionSchema
3233
+ parameters: inspectorSubmissionSchema
3207
3234
  },
3208
3235
  gatekeeper: {
3209
3236
  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,33 @@ 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
+ checked: Type2.String({
572
+ description: "\u4E3A\u8FD9\u4E00\u6761\u6253\u5F00\u6BD4\u5BF9\u8FC7\u7684\u51E0\u5904 path:line\uFF1Ahits \u4E3A\u7A7A\u65F6\u5199\u6BCF\u5904\u4E3A\u4EC0\u4E48\u4E0D\u7B97\uFF0C\u4E0D\u80FD\u53EA\u5199\u672A\u53D1\u73B0\uFF1B\u6709\u547D\u4E2D\u65F6\u5199\u6BD4\u5BF9\u4E86\u54EA\u4E9B\u5730\u65B9\u3001\u547D\u4E2D\u5728\u54EA\u627E\u5230"
573
+ })
574
+ },
575
+ { additionalProperties: true }
576
+ );
577
+ inspectorSubmissionSchema = withTerminatingOutputDeclarations(
578
+ Type2.Object(
579
+ {
580
+ status: reviewStatusField,
581
+ ...reviewNarrativeFields,
582
+ suspect: Type2.String({
583
+ description: "\u6574\u7968\u91CC\u6700\u53EF\u7591\u3001\u6700\u50CF\u80FD\u5220\u80FD\u5E76\u7684\u4E00\u5904 path:line\uFF0C\u4EE5\u53CA\u4E3A\u4EC0\u4E48\u7559\u7740\uFF1B\u8BF4\u4E0D\u6E05\u5C31\u8BE5\u8FDB hits"
584
+ }),
585
+ ticketComplexity: Type2.Array(ticketComplexityRowSchema, {
586
+ 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"
587
+ })
588
+ },
589
+ { additionalProperties: true }
590
+ )
591
+ );
565
592
  }
566
593
  });
567
594
 
@@ -4466,7 +4493,7 @@ var init_role_submission_declarations = __esm({
4466
4493
  label: "\u53F0\u9662\u8F93\u51FA",
4467
4494
  description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
4468
4495
  promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
4469
- parameters: reviewSubmissionSchema
4496
+ parameters: inspectorSubmissionSchema
4470
4497
  },
4471
4498
  gatekeeper: {
4472
4499
  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,33 @@ 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
+ checked: typebox_exports.String({
8799
+ description: "\u4E3A\u8FD9\u4E00\u6761\u6253\u5F00\u6BD4\u5BF9\u8FC7\u7684\u51E0\u5904 path:line\uFF1Ahits \u4E3A\u7A7A\u65F6\u5199\u6BCF\u5904\u4E3A\u4EC0\u4E48\u4E0D\u7B97\uFF0C\u4E0D\u80FD\u53EA\u5199\u672A\u53D1\u73B0\uFF1B\u6709\u547D\u4E2D\u65F6\u5199\u6BD4\u5BF9\u4E86\u54EA\u4E9B\u5730\u65B9\u3001\u547D\u4E2D\u5728\u54EA\u627E\u5230"
8800
+ })
8801
+ },
8802
+ { additionalProperties: true }
8803
+ );
8804
+ inspectorSubmissionSchema = withTerminatingOutputDeclarations(
8805
+ typebox_exports.Object(
8806
+ {
8807
+ status: reviewStatusField,
8808
+ ...reviewNarrativeFields,
8809
+ suspect: typebox_exports.String({
8810
+ description: "\u6574\u7968\u91CC\u6700\u53EF\u7591\u3001\u6700\u50CF\u80FD\u5220\u80FD\u5E76\u7684\u4E00\u5904 path:line\uFF0C\u4EE5\u53CA\u4E3A\u4EC0\u4E48\u7559\u7740\uFF1B\u8BF4\u4E0D\u6E05\u5C31\u8BE5\u8FDB hits"
8811
+ }),
8812
+ ticketComplexity: typebox_exports.Array(ticketComplexityRowSchema, {
8813
+ 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"
8814
+ })
8815
+ },
8816
+ { additionalProperties: true }
8817
+ )
8818
+ );
8792
8819
  }
8793
8820
  });
8794
8821
 
@@ -9821,7 +9848,7 @@ var init_role_submission_declarations = __esm({
9821
9848
  label: "\u53F0\u9662\u8F93\u51FA",
9822
9849
  description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
9823
9850
  promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
9824
- parameters: reviewSubmissionSchema
9851
+ parameters: inspectorSubmissionSchema
9825
9852
  },
9826
9853
  gatekeeper: {
9827
9854
  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,33 @@ 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
+ checked: typebox_exports.String({
9289
+ description: "\u4E3A\u8FD9\u4E00\u6761\u6253\u5F00\u6BD4\u5BF9\u8FC7\u7684\u51E0\u5904 path:line\uFF1Ahits \u4E3A\u7A7A\u65F6\u5199\u6BCF\u5904\u4E3A\u4EC0\u4E48\u4E0D\u7B97\uFF0C\u4E0D\u80FD\u53EA\u5199\u672A\u53D1\u73B0\uFF1B\u6709\u547D\u4E2D\u65F6\u5199\u6BD4\u5BF9\u4E86\u54EA\u4E9B\u5730\u65B9\u3001\u547D\u4E2D\u5728\u54EA\u627E\u5230"
9290
+ })
9291
+ },
9292
+ { additionalProperties: true }
9293
+ );
9294
+ inspectorSubmissionSchema = withTerminatingOutputDeclarations(
9295
+ typebox_exports.Object(
9296
+ {
9297
+ status: reviewStatusField,
9298
+ ...reviewNarrativeFields,
9299
+ suspect: typebox_exports.String({
9300
+ description: "\u6574\u7968\u91CC\u6700\u53EF\u7591\u3001\u6700\u50CF\u80FD\u5220\u80FD\u5E76\u7684\u4E00\u5904 path:line\uFF0C\u4EE5\u53CA\u4E3A\u4EC0\u4E48\u7559\u7740\uFF1B\u8BF4\u4E0D\u6E05\u5C31\u8BE5\u8FDB hits"
9301
+ }),
9302
+ ticketComplexity: typebox_exports.Array(ticketComplexityRowSchema, {
9303
+ 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"
9304
+ })
9305
+ },
9306
+ { additionalProperties: true }
9307
+ )
9308
+ );
9282
9309
  }
9283
9310
  });
9284
9311
 
@@ -11566,7 +11593,7 @@ var init_role_submission_declarations = __esm({
11566
11593
  label: "\u53F0\u9662\u8F93\u51FA",
11567
11594
  description: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267\uFF0C\u72B6\u6001\u4E3A converged\u3001continue \u6216 escalate\u3002",
11568
11595
  promptSnippet: "\u53F0\u9662\u7EC8\u5C40\u56DE\u6267",
11569
- parameters: reviewSubmissionSchema
11596
+ parameters: inspectorSubmissionSchema
11570
11597
  },
11571
11598
  gatekeeper: {
11572
11599
  label: "\u95E8\u4E0B\u7701\u51B3\u8BAE",
@@ -62,3 +62,24 @@ 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
+ checked: Type.String({
72
+ description: "为这一条打开比对过的几处 path:line:hits 为空时写每处为什么不算,不能只写未发现;有命中时写比对了哪些地方、命中在哪找到",
73
+ }),
74
+ }, { additionalProperties: true });
75
+ /** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
76
+ export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(Type.Object({
77
+ status: reviewStatusField,
78
+ ...reviewNarrativeFields,
79
+ suspect: Type.String({
80
+ description: "整票里最可疑、最像能删能并的一处 path:line,以及为什么留着;说不清就该进 hits",
81
+ }),
82
+ ticketComplexity: Type.Array(ticketComplexityRowSchema, {
83
+ description: "整票复杂度:本票起点(本分支与家族分支或目标分支的 git merge-base)到 HEAD 的生产与测试净增,对《质量法》里每一句要求删除、合并、复用或不另写的条文各答一行。前几轮已署过的改动也算在内。",
84
+ }),
85
+ }, { 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.5885",
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 逐条答。有一条命中就封驳;封驳按那句条文写类、列全命中处,不用某一处实例的说法。答无也要拿出比对过的地方:写明为这一条打开比对了哪几处、为什么不算。再从整票里挑出最可疑的一处写进 suspect,说清为什么留着;说不清就是命中。
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,36 @@ 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
+ checked: Type.String({
102
+ description: "为这一条打开比对过的几处 path:line:hits 为空时写每处为什么不算,不能只写未发现;有命中时写比对了哪些地方、命中在哪找到",
103
+ }),
104
+ },
105
+ { additionalProperties: true },
106
+ );
107
+
108
+ /** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
109
+ export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(
110
+ Type.Object(
111
+ {
112
+ status: reviewStatusField,
113
+ ...reviewNarrativeFields,
114
+ suspect: Type.String({
115
+ description: "整票里最可疑、最像能删能并的一处 path:line,以及为什么留着;说不清就该进 hits",
116
+ }),
117
+ ticketComplexity: Type.Array(ticketComplexityRowSchema, {
118
+ description:
119
+ "整票复杂度:本票起点(本分支与家族分支或目标分支的 git merge-base)到 HEAD 的生产与测试净增,对《质量法》里每一句要求删除、合并、复用或不另写的条文各答一行。前几轮已署过的改动也算在内。",
120
+ }),
121
+ },
122
+ { additionalProperties: true },
123
+ ),
124
+ );
125
+
94
126
  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: "门下省决议",