@akagilnc/pi-workflow-roles 0.1.5885 → 0.1.5894
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 +10 -10
- package/dist/countersign-role.js +2 -4
- package/dist/headless-host/production-host.js +10 -10
- package/dist/migrate-book-topology.js +10 -10
- package/dist/notary-contracts.js +2 -2
- package/dist/package-contracts/fixer-output.js +1 -1
- package/dist/packaged-role-registry.js +1 -1
- package/dist/public-cli/main.js +10 -10
- package/dist/review-submission.js +7 -7
- package/dist/role-submission-declarations.js +4 -4
- package/package.json +1 -1
- package/souls/countersign.md +1 -1
- package/souls/fixer-output-guide.md +1 -1
- package/souls/fixer.md +3 -2
- package/src/countersign-role.ts +2 -4
- package/src/notary-contracts.ts +2 -2
- package/src/package-contracts/fixer-output.ts +1 -1
- package/src/packaged-role-registry.ts +1 -1
- package/src/review-submission.ts +7 -7
- package/src/role-submission-declarations.ts +4 -4
|
@@ -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,
|
|
1701
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
1702
1702
|
var init_review_submission = __esm({
|
|
1703
1703
|
"src/review-submission.ts"() {
|
|
1704
1704
|
"use strict";
|
|
@@ -1736,7 +1736,7 @@ var init_review_submission = __esm({
|
|
|
1736
1736
|
{ additionalProperties: true }
|
|
1737
1737
|
)
|
|
1738
1738
|
);
|
|
1739
|
-
|
|
1739
|
+
notaryClauseItemSchema = Type5.Object(
|
|
1740
1740
|
{
|
|
1741
1741
|
clause: Type5.String({
|
|
1742
1742
|
description: "\u7968\u9762\u6761\u6B3E\u539F\u6587\uFF08\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\uFF1B\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09"
|
|
@@ -1750,15 +1750,15 @@ var init_review_submission = __esm({
|
|
|
1750
1750
|
},
|
|
1751
1751
|
{ additionalProperties: true }
|
|
1752
1752
|
);
|
|
1753
|
-
|
|
1753
|
+
notaryClausesField = Type5.Array(notaryClauseItemSchema, {
|
|
1754
1754
|
description: "\u7968\u9762\u9010\u6761\u6838\u65E8\u8868\uFF1A\u6BCF\u6761\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\u7684\u539F\u6587\u3001\u965B\u4E0B\u539F\u8BDD uuid\u3001\u63A8\u5BFC\u3002\u65E0\u539F\u8BDD\u5219 ownerUuid \u4E3A null\u3002"
|
|
1755
1755
|
});
|
|
1756
|
-
|
|
1756
|
+
notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
1757
1757
|
Type5.Object(
|
|
1758
1758
|
{
|
|
1759
1759
|
status: reviewStatusField,
|
|
1760
1760
|
...reviewNarrativeFields,
|
|
1761
|
-
clauses:
|
|
1761
|
+
clauses: notaryClausesField
|
|
1762
1762
|
},
|
|
1763
1763
|
{ additionalProperties: true }
|
|
1764
1764
|
)
|
|
@@ -1867,7 +1867,7 @@ var init_fixer_output = __esm({
|
|
|
1867
1867
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
1868
1868
|
}),
|
|
1869
1869
|
classResults: Type8.Unknown({
|
|
1870
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
1870
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5220\u5E76\u7C7B\u5199 files\uFF08\u672C\u7968\u8D77\u70B9\u5230 HEAD \u7684 git diff --name-status \u91CC\u6BCF\u4E2A\u6587\u4EF6\u4E00\u884C { file, hits: \u8BE5\u7C7B\u5728\u6B64\u6587\u4EF6\u7684\u547D\u4E2D path:line \u5217\u8868\uFF0C\u6CA1\u6709\u4E3A\u7A7A, outcome: \u5DF2\u4FEE | \u65E0\uFF1A\u6BD4\u5BF9\u4E86\u54EA\u51E0\u5904\u3001\u4E3A\u4EC0\u4E48\u4E0D\u7B97 | \u672A\u4FEE\uFF1A\u7406\u7531 }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
1871
1871
|
}),
|
|
1872
1872
|
diffItems: diffItemsField,
|
|
1873
1873
|
testEvidence: Type8.Unknown({
|
|
@@ -2808,7 +2808,7 @@ var init_packaged_role_registry = __esm({
|
|
|
2808
2808
|
activationStage: "load-and-install",
|
|
2809
2809
|
receiptStatusKey: "status",
|
|
2810
2810
|
// #924: 公用《票面法》三席同装
|
|
2811
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
2811
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
2812
2812
|
},
|
|
2813
2813
|
{
|
|
2814
2814
|
role: "secretariat",
|
|
@@ -3206,13 +3206,13 @@ var init_role_submission_declarations = __esm({
|
|
|
3206
3206
|
label: "\u7B26\u5B9D\u90CE\u8F93\u51FA",
|
|
3207
3207
|
description: "\u63D0\u4EA4\u5F15\u6587\u4FDD\u771F\u4E0E\u7968\u9762\u5BF9\u9F50\u7684 converged/continue/escalate \u51B3\u8BAE\uFF08\u542B\u9010\u6761\u6838\u65E8 clauses\uFF09\u3002",
|
|
3208
3208
|
promptSnippet: "\u63D0\u4EA4\u7B26\u5B9D\u90CE\u51B3\u8BAE",
|
|
3209
|
-
parameters:
|
|
3209
|
+
parameters: notaryReviewSubmissionSchema
|
|
3210
3210
|
},
|
|
3211
3211
|
countersign: {
|
|
3212
3212
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
3213
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\
|
|
3213
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
3214
3214
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
3215
|
-
parameters:
|
|
3215
|
+
parameters: reviewSubmissionSchema
|
|
3216
3216
|
},
|
|
3217
3217
|
secretariat: {
|
|
3218
3218
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
package/dist/countersign-role.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { reviewSubmissionSchema } from "./review-submission.js";
|
|
2
2
|
import { roleSubmissionDeclaration } from "./role-submission-declarations.js";
|
|
3
3
|
import { COUNTERSIGN_OUTPUT_TOOL_NAME, validateRecordedCountersignOutput, } from "./countersign-contracts.js";
|
|
4
4
|
export { COUNTERSIGN_OUTPUT_TOOL_NAME } from "./countersign-contracts.js";
|
|
@@ -6,10 +6,8 @@ export { COUNTERSIGN_OUTPUT_TOOL_NAME } from "./countersign-contracts.js";
|
|
|
6
6
|
// no code branches on their length or nested presence. `status` alone is the
|
|
7
7
|
// machine discriminator the queue reads.
|
|
8
8
|
// #1055: the three-state field is an enum+required host generation constraint.
|
|
9
|
-
// #1195: clauses is generation-required on this seat; package execute still does
|
|
10
|
-
// not reject a missing table (ADR 0055).
|
|
11
9
|
/** 给事中票庭审读五问的交卷形状(ADR 0074);形状指引,非 schema 闸。 */
|
|
12
|
-
export const countersignVerdictSchema =
|
|
10
|
+
export const countersignVerdictSchema = reviewSubmissionSchema;
|
|
13
11
|
/**
|
|
14
12
|
* 决定工具规格。生命周期装配(注册、activate、prompt 注入、singleton 检查、
|
|
15
13
|
* terminate)归注册信封 owner——src/role-runtime.ts(ADR 0018 / #572 R2 判词)。
|
|
@@ -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,
|
|
500
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
501
501
|
var init_review_submission = __esm({
|
|
502
502
|
"src/review-submission.ts"() {
|
|
503
503
|
"use strict";
|
|
@@ -535,7 +535,7 @@ var init_review_submission = __esm({
|
|
|
535
535
|
{ additionalProperties: true }
|
|
536
536
|
)
|
|
537
537
|
);
|
|
538
|
-
|
|
538
|
+
notaryClauseItemSchema = Type2.Object(
|
|
539
539
|
{
|
|
540
540
|
clause: Type2.String({
|
|
541
541
|
description: "\u7968\u9762\u6761\u6B3E\u539F\u6587\uFF08\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\uFF1B\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09"
|
|
@@ -549,15 +549,15 @@ var init_review_submission = __esm({
|
|
|
549
549
|
},
|
|
550
550
|
{ additionalProperties: true }
|
|
551
551
|
);
|
|
552
|
-
|
|
552
|
+
notaryClausesField = Type2.Array(notaryClauseItemSchema, {
|
|
553
553
|
description: "\u7968\u9762\u9010\u6761\u6838\u65E8\u8868\uFF1A\u6BCF\u6761\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\u7684\u539F\u6587\u3001\u965B\u4E0B\u539F\u8BDD uuid\u3001\u63A8\u5BFC\u3002\u65E0\u539F\u8BDD\u5219 ownerUuid \u4E3A null\u3002"
|
|
554
554
|
});
|
|
555
|
-
|
|
555
|
+
notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
556
556
|
Type2.Object(
|
|
557
557
|
{
|
|
558
558
|
status: reviewStatusField,
|
|
559
559
|
...reviewNarrativeFields,
|
|
560
|
-
clauses:
|
|
560
|
+
clauses: notaryClausesField
|
|
561
561
|
},
|
|
562
562
|
{ additionalProperties: true }
|
|
563
563
|
)
|
|
@@ -823,7 +823,7 @@ var init_fixer_output = __esm({
|
|
|
823
823
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
824
824
|
}),
|
|
825
825
|
classResults: Type8.Unknown({
|
|
826
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
826
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5220\u5E76\u7C7B\u5199 files\uFF08\u672C\u7968\u8D77\u70B9\u5230 HEAD \u7684 git diff --name-status \u91CC\u6BCF\u4E2A\u6587\u4EF6\u4E00\u884C { file, hits: \u8BE5\u7C7B\u5728\u6B64\u6587\u4EF6\u7684\u547D\u4E2D path:line \u5217\u8868\uFF0C\u6CA1\u6709\u4E3A\u7A7A, outcome: \u5DF2\u4FEE | \u65E0\uFF1A\u6BD4\u5BF9\u4E86\u54EA\u51E0\u5904\u3001\u4E3A\u4EC0\u4E48\u4E0D\u7B97 | \u672A\u4FEE\uFF1A\u7406\u7531 }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
827
827
|
}),
|
|
828
828
|
diffItems: diffItemsField,
|
|
829
829
|
testEvidence: Type8.Unknown({
|
|
@@ -2678,7 +2678,7 @@ var init_packaged_role_registry = __esm({
|
|
|
2678
2678
|
activationStage: "load-and-install",
|
|
2679
2679
|
receiptStatusKey: "status",
|
|
2680
2680
|
// #924: 公用《票面法》三席同装
|
|
2681
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
2681
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
2682
2682
|
},
|
|
2683
2683
|
{
|
|
2684
2684
|
role: "secretariat",
|
|
@@ -4469,13 +4469,13 @@ var init_role_submission_declarations = __esm({
|
|
|
4469
4469
|
label: "\u7B26\u5B9D\u90CE\u8F93\u51FA",
|
|
4470
4470
|
description: "\u63D0\u4EA4\u5F15\u6587\u4FDD\u771F\u4E0E\u7968\u9762\u5BF9\u9F50\u7684 converged/continue/escalate \u51B3\u8BAE\uFF08\u542B\u9010\u6761\u6838\u65E8 clauses\uFF09\u3002",
|
|
4471
4471
|
promptSnippet: "\u63D0\u4EA4\u7B26\u5B9D\u90CE\u51B3\u8BAE",
|
|
4472
|
-
parameters:
|
|
4472
|
+
parameters: notaryReviewSubmissionSchema
|
|
4473
4473
|
},
|
|
4474
4474
|
countersign: {
|
|
4475
4475
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
4476
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\
|
|
4476
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
4477
4477
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
4478
|
-
parameters:
|
|
4478
|
+
parameters: reviewSubmissionSchema
|
|
4479
4479
|
},
|
|
4480
4480
|
secretariat: {
|
|
4481
4481
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
|
@@ -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,
|
|
8726
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
8727
8727
|
var init_review_submission = __esm({
|
|
8728
8728
|
"src/review-submission.ts"() {
|
|
8729
8729
|
"use strict";
|
|
@@ -8762,7 +8762,7 @@ var init_review_submission = __esm({
|
|
|
8762
8762
|
{ additionalProperties: true }
|
|
8763
8763
|
)
|
|
8764
8764
|
);
|
|
8765
|
-
|
|
8765
|
+
notaryClauseItemSchema = typebox_exports.Object(
|
|
8766
8766
|
{
|
|
8767
8767
|
clause: typebox_exports.String({
|
|
8768
8768
|
description: "\u7968\u9762\u6761\u6B3E\u539F\u6587\uFF08\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\uFF1B\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09"
|
|
@@ -8776,15 +8776,15 @@ var init_review_submission = __esm({
|
|
|
8776
8776
|
},
|
|
8777
8777
|
{ additionalProperties: true }
|
|
8778
8778
|
);
|
|
8779
|
-
|
|
8779
|
+
notaryClausesField = typebox_exports.Array(notaryClauseItemSchema, {
|
|
8780
8780
|
description: "\u7968\u9762\u9010\u6761\u6838\u65E8\u8868\uFF1A\u6BCF\u6761\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\u7684\u539F\u6587\u3001\u965B\u4E0B\u539F\u8BDD uuid\u3001\u63A8\u5BFC\u3002\u65E0\u539F\u8BDD\u5219 ownerUuid \u4E3A null\u3002"
|
|
8781
8781
|
});
|
|
8782
|
-
|
|
8782
|
+
notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
8783
8783
|
typebox_exports.Object(
|
|
8784
8784
|
{
|
|
8785
8785
|
status: reviewStatusField,
|
|
8786
8786
|
...reviewNarrativeFields,
|
|
8787
|
-
clauses:
|
|
8787
|
+
clauses: notaryClausesField
|
|
8788
8788
|
},
|
|
8789
8789
|
{ additionalProperties: true }
|
|
8790
8790
|
)
|
|
@@ -8890,7 +8890,7 @@ var init_fixer_output = __esm({
|
|
|
8890
8890
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
8891
8891
|
}),
|
|
8892
8892
|
classResults: typebox_exports.Unknown({
|
|
8893
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
8893
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5220\u5E76\u7C7B\u5199 files\uFF08\u672C\u7968\u8D77\u70B9\u5230 HEAD \u7684 git diff --name-status \u91CC\u6BCF\u4E2A\u6587\u4EF6\u4E00\u884C { file, hits: \u8BE5\u7C7B\u5728\u6B64\u6587\u4EF6\u7684\u547D\u4E2D path:line \u5217\u8868\uFF0C\u6CA1\u6709\u4E3A\u7A7A, outcome: \u5DF2\u4FEE | \u65E0\uFF1A\u6BD4\u5BF9\u4E86\u54EA\u51E0\u5904\u3001\u4E3A\u4EC0\u4E48\u4E0D\u7B97 | \u672A\u4FEE\uFF1A\u7406\u7531 }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
8894
8894
|
}),
|
|
8895
8895
|
diffItems: diffItemsField,
|
|
8896
8896
|
testEvidence: typebox_exports.Unknown({
|
|
@@ -9538,7 +9538,7 @@ var init_packaged_role_registry = __esm({
|
|
|
9538
9538
|
activationStage: "load-and-install",
|
|
9539
9539
|
receiptStatusKey: "status",
|
|
9540
9540
|
// #924: 公用《票面法》三席同装
|
|
9541
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
9541
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
9542
9542
|
},
|
|
9543
9543
|
{
|
|
9544
9544
|
role: "secretariat",
|
|
@@ -9824,13 +9824,13 @@ var init_role_submission_declarations = __esm({
|
|
|
9824
9824
|
label: "\u7B26\u5B9D\u90CE\u8F93\u51FA",
|
|
9825
9825
|
description: "\u63D0\u4EA4\u5F15\u6587\u4FDD\u771F\u4E0E\u7968\u9762\u5BF9\u9F50\u7684 converged/continue/escalate \u51B3\u8BAE\uFF08\u542B\u9010\u6761\u6838\u65E8 clauses\uFF09\u3002",
|
|
9826
9826
|
promptSnippet: "\u63D0\u4EA4\u7B26\u5B9D\u90CE\u51B3\u8BAE",
|
|
9827
|
-
parameters:
|
|
9827
|
+
parameters: notaryReviewSubmissionSchema
|
|
9828
9828
|
},
|
|
9829
9829
|
countersign: {
|
|
9830
9830
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
9831
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\
|
|
9831
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
9832
9832
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
9833
|
-
parameters:
|
|
9833
|
+
parameters: reviewSubmissionSchema
|
|
9834
9834
|
},
|
|
9835
9835
|
secretariat: {
|
|
9836
9836
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
package/dist/notary-contracts.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { REVIEW_SUBMISSION_OUTPUT_TOOL_NAME,
|
|
1
|
+
import { REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, notaryReviewSubmissionSchema } from "./review-submission.js";
|
|
2
2
|
import { isRecord } from "./unknown-value.js";
|
|
3
3
|
const NOTARY_OUTPUT_TOOL_NAME = REVIEW_SUBMISSION_OUTPUT_TOOL_NAME;
|
|
4
4
|
const NOTARY_SOURCE_RUN_FLAG = {
|
|
@@ -15,7 +15,7 @@ const NOTARY_TICKET_FLAG = {
|
|
|
15
15
|
type: "string"
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
-
const notaryOutputSchema =
|
|
18
|
+
const notaryOutputSchema = notaryReviewSubmissionSchema;
|
|
19
19
|
function projectLawfulNotaryOutput(value) {
|
|
20
20
|
return isRecord(value) ? value : void 0;
|
|
21
21
|
}
|
|
@@ -18,7 +18,7 @@ const fixerOutputObject = Type.Object({
|
|
|
18
18
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
19
19
|
}),
|
|
20
20
|
classResults: Type.Unknown({
|
|
21
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
21
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5220\u5E76\u7C7B\u5199 files\uFF08\u672C\u7968\u8D77\u70B9\u5230 HEAD \u7684 git diff --name-status \u91CC\u6BCF\u4E2A\u6587\u4EF6\u4E00\u884C { file, hits: \u8BE5\u7C7B\u5728\u6B64\u6587\u4EF6\u7684\u547D\u4E2D path:line \u5217\u8868\uFF0C\u6CA1\u6709\u4E3A\u7A7A, outcome: \u5DF2\u4FEE | \u65E0\uFF1A\u6BD4\u5BF9\u4E86\u54EA\u51E0\u5904\u3001\u4E3A\u4EC0\u4E48\u4E0D\u7B97 | \u672A\u4FEE\uFF1A\u7406\u7531 }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
22
22
|
}),
|
|
23
23
|
diffItems: diffItemsField,
|
|
24
24
|
testEvidence: Type.Unknown({
|
|
@@ -294,7 +294,7 @@ const PUBLIC_ROLE_RECORDS = [
|
|
|
294
294
|
activationStage: "load-and-install",
|
|
295
295
|
receiptStatusKey: "status",
|
|
296
296
|
// #924: 公用《票面法》三席同装
|
|
297
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
297
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
298
298
|
},
|
|
299
299
|
{
|
|
300
300
|
role: "secretariat",
|
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,
|
|
9216
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, inspectorSubmissionSchema;
|
|
9217
9217
|
var init_review_submission = __esm({
|
|
9218
9218
|
"src/review-submission.ts"() {
|
|
9219
9219
|
"use strict";
|
|
@@ -9252,7 +9252,7 @@ var init_review_submission = __esm({
|
|
|
9252
9252
|
{ additionalProperties: true }
|
|
9253
9253
|
)
|
|
9254
9254
|
);
|
|
9255
|
-
|
|
9255
|
+
notaryClauseItemSchema = typebox_exports.Object(
|
|
9256
9256
|
{
|
|
9257
9257
|
clause: typebox_exports.String({
|
|
9258
9258
|
description: "\u7968\u9762\u6761\u6B3E\u539F\u6587\uFF08\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\uFF1B\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09"
|
|
@@ -9266,15 +9266,15 @@ var init_review_submission = __esm({
|
|
|
9266
9266
|
},
|
|
9267
9267
|
{ additionalProperties: true }
|
|
9268
9268
|
);
|
|
9269
|
-
|
|
9269
|
+
notaryClausesField = typebox_exports.Array(notaryClauseItemSchema, {
|
|
9270
9270
|
description: "\u7968\u9762\u9010\u6761\u6838\u65E8\u8868\uFF1A\u6BCF\u6761\u6539\u53D8\u5B9E\u9645\u884C\u4E3A\u7684\u6761\u6B3E\u7684\u539F\u6587\u3001\u965B\u4E0B\u539F\u8BDD uuid\u3001\u63A8\u5BFC\u3002\u65E0\u539F\u8BDD\u5219 ownerUuid \u4E3A null\u3002"
|
|
9271
9271
|
});
|
|
9272
|
-
|
|
9272
|
+
notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
9273
9273
|
typebox_exports.Object(
|
|
9274
9274
|
{
|
|
9275
9275
|
status: reviewStatusField,
|
|
9276
9276
|
...reviewNarrativeFields,
|
|
9277
|
-
clauses:
|
|
9277
|
+
clauses: notaryClausesField
|
|
9278
9278
|
},
|
|
9279
9279
|
{ additionalProperties: true }
|
|
9280
9280
|
)
|
|
@@ -9380,7 +9380,7 @@ var init_fixer_output = __esm({
|
|
|
9380
9380
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
9381
9381
|
}),
|
|
9382
9382
|
classResults: typebox_exports.Unknown({
|
|
9383
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
9383
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5220\u5E76\u7C7B\u5199 files\uFF08\u672C\u7968\u8D77\u70B9\u5230 HEAD \u7684 git diff --name-status \u91CC\u6BCF\u4E2A\u6587\u4EF6\u4E00\u884C { file, hits: \u8BE5\u7C7B\u5728\u6B64\u6587\u4EF6\u7684\u547D\u4E2D path:line \u5217\u8868\uFF0C\u6CA1\u6709\u4E3A\u7A7A, outcome: \u5DF2\u4FEE | \u65E0\uFF1A\u6BD4\u5BF9\u4E86\u54EA\u51E0\u5904\u3001\u4E3A\u4EC0\u4E48\u4E0D\u7B97 | \u672A\u4FEE\uFF1A\u7406\u7531 }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
9384
9384
|
}),
|
|
9385
9385
|
diffItems: diffItemsField,
|
|
9386
9386
|
testEvidence: typebox_exports.Unknown({
|
|
@@ -10184,7 +10184,7 @@ var init_packaged_role_registry = __esm({
|
|
|
10184
10184
|
activationStage: "load-and-install",
|
|
10185
10185
|
receiptStatusKey: "status",
|
|
10186
10186
|
// #924: 公用《票面法》三席同装
|
|
10187
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
10187
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"]
|
|
10188
10188
|
},
|
|
10189
10189
|
{
|
|
10190
10190
|
role: "secretariat",
|
|
@@ -11569,13 +11569,13 @@ var init_role_submission_declarations = __esm({
|
|
|
11569
11569
|
label: "\u7B26\u5B9D\u90CE\u8F93\u51FA",
|
|
11570
11570
|
description: "\u63D0\u4EA4\u5F15\u6587\u4FDD\u771F\u4E0E\u7968\u9762\u5BF9\u9F50\u7684 converged/continue/escalate \u51B3\u8BAE\uFF08\u542B\u9010\u6761\u6838\u65E8 clauses\uFF09\u3002",
|
|
11571
11571
|
promptSnippet: "\u63D0\u4EA4\u7B26\u5B9D\u90CE\u51B3\u8BAE",
|
|
11572
|
-
parameters:
|
|
11572
|
+
parameters: notaryReviewSubmissionSchema
|
|
11573
11573
|
},
|
|
11574
11574
|
countersign: {
|
|
11575
11575
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
11576
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\
|
|
11576
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
11577
11577
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
11578
|
-
parameters:
|
|
11578
|
+
parameters: reviewSubmissionSchema
|
|
11579
11579
|
},
|
|
11580
11580
|
secretariat: {
|
|
11581
11581
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
|
@@ -35,11 +35,11 @@ export const reviewSubmissionSchema = withTerminatingOutputDeclarations(Type.Obj
|
|
|
35
35
|
...reviewNarrativeFields,
|
|
36
36
|
}, { additionalProperties: true }));
|
|
37
37
|
/**
|
|
38
|
-
* #1195
|
|
38
|
+
* #1195 notary clause row: original ticket text, owner uuid (or null),
|
|
39
39
|
* and one-line derivation. Dual readings of runner context live in derivation.
|
|
40
|
-
* Generation-required on
|
|
40
|
+
* Generation-required on notary only; package still records as-is.
|
|
41
41
|
*/
|
|
42
|
-
export const
|
|
42
|
+
export const notaryClauseItemSchema = Type.Object({
|
|
43
43
|
clause: Type.String({
|
|
44
44
|
description: "票面条款原文(改变实际行为的条款;不合并、不改写)",
|
|
45
45
|
}),
|
|
@@ -50,17 +50,17 @@ export const courtClauseItemSchema = Type.Object({
|
|
|
50
50
|
description: "一句推导:从原话哪个意思到该条款。用作上下文的 runner 句先写至少两种读法,再写票面取哪种;写不出第二种才记无歧义",
|
|
51
51
|
}),
|
|
52
52
|
}, { additionalProperties: true });
|
|
53
|
-
export const
|
|
53
|
+
export const notaryClausesField = Type.Array(notaryClauseItemSchema, {
|
|
54
54
|
description: "票面逐条核旨表:每条改变实际行为的条款的原文、陛下原话 uuid、推导。无原话则 ownerUuid 为 null。",
|
|
55
55
|
});
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* Notary generation schema (#1195): shared review face plus
|
|
58
58
|
* required top-level clauses. Package execute does not reject a missing table.
|
|
59
59
|
*/
|
|
60
|
-
export const
|
|
60
|
+
export const notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(Type.Object({
|
|
61
61
|
status: reviewStatusField,
|
|
62
62
|
...reviewNarrativeFields,
|
|
63
|
-
clauses:
|
|
63
|
+
clauses: notaryClausesField,
|
|
64
64
|
}, { additionalProperties: true }));
|
|
65
65
|
/** Inspector whole-ticket complexity row: one quality-law deletion clause, answered for the whole ticket. */
|
|
66
66
|
export const ticketComplexityRowSchema = Type.Object({
|
|
@@ -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 {
|
|
8
|
+
import { notaryReviewSubmissionSchema, 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";
|
|
@@ -63,13 +63,13 @@ const SUBMISSION_FACE = {
|
|
|
63
63
|
label: "符宝郎输出",
|
|
64
64
|
description: "提交引文保真与票面对齐的 converged/continue/escalate 决议(含逐条核旨 clauses)。",
|
|
65
65
|
promptSnippet: "提交符宝郎决议",
|
|
66
|
-
parameters:
|
|
66
|
+
parameters: notaryReviewSubmissionSchema,
|
|
67
67
|
},
|
|
68
68
|
countersign: {
|
|
69
69
|
label: "给事中输出",
|
|
70
|
-
description: "
|
|
70
|
+
description: "给事中决议。",
|
|
71
71
|
promptSnippet: "给事中决议",
|
|
72
|
-
parameters:
|
|
72
|
+
parameters: reviewSubmissionSchema,
|
|
73
73
|
},
|
|
74
74
|
secretariat: {
|
|
75
75
|
label: "中书省输出",
|
package/package.json
CHANGED
package/souls/countersign.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
起居录不全的,可以自行寻找陛下原话,不因起居录没有就忽略真实对话记录
|
|
11
11
|
|
|
12
12
|
2 第二法源立法:
|
|
13
|
-
适用 ADR——由你自行检索,按票面触及的席位、接缝、术语在 docs/adr 与 CONTEXT.md
|
|
13
|
+
适用 ADR——由你自行检索,按票面触及的席位、接缝、术语在 docs/adr 与 CONTEXT.md 查全,票面引没引都算——并逐条列出其决定;设计法、质量法、审刑院法典;派单文--调用者输入的prompt
|
|
14
14
|
|
|
15
15
|
3 第二法源合法性检查:判断第二法源 以及 输入的 prompt等 对比第一法源是否有超出,不足,曲解。如有,除非有陛下原话批准,否则直接封驳 要求改正或陛下批准。
|
|
16
16
|
4 派单文 是否要求了范围,是否给了你清单,是否让你不全量重审,以及是否有任何违反你Soul规定的。如果有,直接封驳,拿不准的直接上呈。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# 修内司输出指南
|
|
2
2
|
|
|
3
3
|
提交前缀见仓内 CLAUDE.md「Commit 前缀」。不 amend、不 rewrite、不 push 见 souls/fixer.md。
|
|
4
|
-
交卷回执:逐 finding 报处置。classResults 每类的 hits 或
|
|
4
|
+
交卷回执:逐 finding 报处置。classResults 每类的 hits、cases 或 files 是扫类、复扫的逐项表;diffItems 是交卷前自审的逐项表。证据引用口径见仓内 CLAUDE.md「锚定宪法」。
|
|
5
5
|
新造通用件的回执口径见 souls/quality-law.md「生态里已有的不自己造」。
|
package/souls/fixer.md
CHANGED
|
@@ -6,12 +6,13 @@ apply 按顺序执行:
|
|
|
6
6
|
1. 立法:读 全局宪法,仓内宪法,票面。
|
|
7
7
|
2. 核对:开工核对见 souls/quality-law.md。
|
|
8
8
|
3. 归类:读完全部 finding,沿用已有裁决类别,明确各类错误与正确行为。
|
|
9
|
-
4.
|
|
9
|
+
4. 扫类:每类先写一句错误形状,再判这一类按什么认,三种各用一张表,记进交卷 classResults 该类,不合并、不省略:
|
|
10
10
|
- 按代码形状认(同一种写法出现在多处:别名、写口、调用点):按形状写搜索命令并真跑,命令原样记进 search,输出里的每一个命中逐行记进 hits(where 写 path:line)。判词点名处必须出现在 hits 里;不在,说明命令写窄了,改命令重跑。
|
|
11
11
|
- 按情形认(同一段代码,对象先经历了不同的事,行为就不同):把对象在出错之前可能经历的状态组合逐个列进 cases,一种经历一行,写明从真实入口怎么走到它;每一行修改前先走一遍,记下结果。判词点名的情形必须在 cases 里。
|
|
12
|
+
- 删并类(同一规则写了两份、平行测试、夹具或录件副本、被替代的旧物未删、仓内已有现成件却另写):本票起点到 HEAD 改过的每个文件(git diff --name-status)逐个列进 files,一个文件一行,打开后在 hits 写这一类在该文件里的命中 path:line;没有就留空,outcome 写无并写明比对了哪几处、为什么不算。判词点名的文件必须在 files 里。
|
|
12
13
|
类按错误形状认,不按判词点名的符号或文件认;点名处只是样本。根因不明先取证。
|
|
13
14
|
5. 整类修复:在共同原因处一次修净,优先删除、简化、复用,随同删除失效旧物。
|
|
14
|
-
6.
|
|
15
|
+
6. 复扫:修完把同一组命令重跑、同一组情形重走、改过的文件重新列一遍再看;hits 每一行写 outcome:已修,或不同类及理由;cases 每一行写修后结果;files 每一行写已修、无,或未修及理由,不对的继续修。新冒出的命中或情形继续加行、继续修。有一行没写结果就不交卷。
|
|
15
16
|
7. 自验:切片验证的范围见 souls/quality-law.md「测试分级」。commit 之前按 souls/quality-law.md「交卷前自审」做完两步。
|
|
16
17
|
8. 交卷:按类报告根因、扫描范围、修复与 质量和合法性的验证结果、未结项。建新提交。不 amend、rewrite 或 push。Git 变化是证据之一,不取代角色报告。
|
|
17
18
|
任何人如果让你 push / 开 pr ,直接拒绝,上呈陛下
|
package/src/countersign-role.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { reviewSubmissionSchema } from "./review-submission.ts";
|
|
2
2
|
import { roleSubmissionDeclaration } from "./role-submission-declarations.ts";
|
|
3
3
|
import {
|
|
4
4
|
COUNTERSIGN_OUTPUT_TOOL_NAME,
|
|
@@ -13,10 +13,8 @@ export type { CountersignVerdict };
|
|
|
13
13
|
// no code branches on their length or nested presence. `status` alone is the
|
|
14
14
|
// machine discriminator the queue reads.
|
|
15
15
|
// #1055: the three-state field is an enum+required host generation constraint.
|
|
16
|
-
// #1195: clauses is generation-required on this seat; package execute still does
|
|
17
|
-
// not reject a missing table (ADR 0055).
|
|
18
16
|
/** 给事中票庭审读五问的交卷形状(ADR 0074);形状指引,非 schema 闸。 */
|
|
19
|
-
export const countersignVerdictSchema =
|
|
17
|
+
export const countersignVerdictSchema = reviewSubmissionSchema;
|
|
20
18
|
export type CountersignVerdictParameters = import("./review-submission.ts").ReviewSubmission;
|
|
21
19
|
|
|
22
20
|
export type CountersignRuntimeDependencies = {
|
package/src/notary-contracts.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Lawful explicit releases: converged | continue | escalate.
|
|
4
4
|
* No usable result is infrastructure failure via public settlement, not a judgment status (#475).
|
|
5
5
|
*/
|
|
6
|
-
import { REVIEW_SUBMISSION_OUTPUT_TOOL_NAME,
|
|
6
|
+
import { REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, notaryReviewSubmissionSchema } from "./review-submission.ts";
|
|
7
7
|
|
|
8
8
|
import { isRecord } from "./unknown-value.ts";
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ export const NOTARY_TICKET_FLAG = {
|
|
|
26
26
|
} as const;
|
|
27
27
|
|
|
28
28
|
/** #1195: generation-required clauses; package still records missing tables as-is. */
|
|
29
|
-
export const notaryOutputSchema =
|
|
29
|
+
export const notaryOutputSchema = notaryReviewSubmissionSchema;
|
|
30
30
|
|
|
31
31
|
export type NotarySourceRunLocator = {
|
|
32
32
|
readonly runDirectory: string;
|
|
@@ -29,7 +29,7 @@ const fixerOutputObject = Type.Object({
|
|
|
29
29
|
}),
|
|
30
30
|
classResults: Type.Unknown({
|
|
31
31
|
description:
|
|
32
|
-
"各类 class 结算,原样留存。每类写 name、shape(错误形状一句)。按代码形状认的类写 search(实际跑的搜索命令,原样)、hits(命令输出的每个命中一行 { where: path:line, outcome: 已修 | 不同类:理由 });按情形认的类写 cases(每种前序经历一行 { case: 对象先经历了什么, entry: 从真实入口怎么走到它, before: 修前结果, after: 修后结果 })。完成项的 disposition 为 completed,可写 commitSha。拒绝项的 disposition 为 refused,可写 remainingScope、blocker。",
|
|
32
|
+
"各类 class 结算,原样留存。每类写 name、shape(错误形状一句)。按代码形状认的类写 search(实际跑的搜索命令,原样)、hits(命令输出的每个命中一行 { where: path:line, outcome: 已修 | 不同类:理由 });按情形认的类写 cases(每种前序经历一行 { case: 对象先经历了什么, entry: 从真实入口怎么走到它, before: 修前结果, after: 修后结果 })。删并类写 files(本票起点到 HEAD 的 git diff --name-status 里每个文件一行 { file, hits: 该类在此文件的命中 path:line 列表,没有为空, outcome: 已修 | 无:比对了哪几处、为什么不算 | 未修:理由 })。完成项的 disposition 为 completed,可写 commitSha。拒绝项的 disposition 为 refused,可写 remainingScope、blocker。",
|
|
33
33
|
}),
|
|
34
34
|
diffItems: diffItemsField,
|
|
35
35
|
testEvidence: Type.Unknown({
|
|
@@ -321,7 +321,7 @@ export const PUBLIC_ROLE_RECORDS = [
|
|
|
321
321
|
activationStage: "load-and-install",
|
|
322
322
|
receiptStatusKey: "status",
|
|
323
323
|
// #924: 公用《票面法》三席同装
|
|
324
|
-
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"],
|
|
324
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md", "souls/design-law.md", "souls/audit-law.md", "souls/quality-law.md", "resources/countersign-ticket-issue.md", "docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md"],
|
|
325
325
|
},
|
|
326
326
|
{
|
|
327
327
|
role: "secretariat",
|
package/src/review-submission.ts
CHANGED
|
@@ -51,11 +51,11 @@ export const reviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
|
51
51
|
);
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
* #1195
|
|
54
|
+
* #1195 notary clause row: original ticket text, owner uuid (or null),
|
|
55
55
|
* and one-line derivation. Dual readings of runner context live in derivation.
|
|
56
|
-
* Generation-required on
|
|
56
|
+
* Generation-required on notary only; package still records as-is.
|
|
57
57
|
*/
|
|
58
|
-
export const
|
|
58
|
+
export const notaryClauseItemSchema = Type.Object(
|
|
59
59
|
{
|
|
60
60
|
clause: Type.String({
|
|
61
61
|
description: "票面条款原文(改变实际行为的条款;不合并、不改写)",
|
|
@@ -71,21 +71,21 @@ export const courtClauseItemSchema = Type.Object(
|
|
|
71
71
|
{ additionalProperties: true },
|
|
72
72
|
);
|
|
73
73
|
|
|
74
|
-
export const
|
|
74
|
+
export const notaryClausesField = Type.Array(notaryClauseItemSchema, {
|
|
75
75
|
description:
|
|
76
76
|
"票面逐条核旨表:每条改变实际行为的条款的原文、陛下原话 uuid、推导。无原话则 ownerUuid 为 null。",
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
|
-
*
|
|
80
|
+
* Notary generation schema (#1195): shared review face plus
|
|
81
81
|
* required top-level clauses. Package execute does not reject a missing table.
|
|
82
82
|
*/
|
|
83
|
-
export const
|
|
83
|
+
export const notaryReviewSubmissionSchema = withTerminatingOutputDeclarations(
|
|
84
84
|
Type.Object(
|
|
85
85
|
{
|
|
86
86
|
status: reviewStatusField,
|
|
87
87
|
...reviewNarrativeFields,
|
|
88
|
-
clauses:
|
|
88
|
+
clauses: notaryClausesField,
|
|
89
89
|
},
|
|
90
90
|
{ additionalProperties: true },
|
|
91
91
|
),
|
|
@@ -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 {
|
|
8
|
+
import { notaryReviewSubmissionSchema, 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";
|
|
@@ -75,13 +75,13 @@ const SUBMISSION_FACE = {
|
|
|
75
75
|
label: "符宝郎输出",
|
|
76
76
|
description: "提交引文保真与票面对齐的 converged/continue/escalate 决议(含逐条核旨 clauses)。",
|
|
77
77
|
promptSnippet: "提交符宝郎决议",
|
|
78
|
-
parameters:
|
|
78
|
+
parameters: notaryReviewSubmissionSchema,
|
|
79
79
|
},
|
|
80
80
|
countersign: {
|
|
81
81
|
label: "给事中输出",
|
|
82
|
-
description: "
|
|
82
|
+
description: "给事中决议。",
|
|
83
83
|
promptSnippet: "给事中决议",
|
|
84
|
-
parameters:
|
|
84
|
+
parameters: reviewSubmissionSchema,
|
|
85
85
|
},
|
|
86
86
|
secretariat: {
|
|
87
87
|
label: "中书省输出",
|