strikethroo 3.14.3 → 3.16.0
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/README.md +52 -31
- package/dist/__tests__/fixtures/review-gate.d.ts +59 -0
- package/dist/__tests__/fixtures/review-gate.d.ts.map +1 -0
- package/dist/__tests__/fixtures/review-gate.js +150 -0
- package/dist/__tests__/fixtures/review-gate.js.map +1 -0
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/export-profile.d.ts +50 -0
- package/dist/export-profile.d.ts.map +1 -0
- package/dist/export-profile.js +321 -0
- package/dist/export-profile.js.map +1 -0
- package/dist/harnesses/registry.d.ts +4 -2
- package/dist/harnesses/registry.d.ts.map +1 -1
- package/dist/harnesses/registry.js +4 -2
- package/dist/harnesses/registry.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -3
- package/dist/index.js.map +1 -1
- package/dist/profiles.d.ts +163 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +561 -0
- package/dist/profiles.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -1
- package/dist/types.js.map +1 -1
- package/dist-web/assets/{arc-CsLKjSmD.js → arc-DMHUv2NY.js} +1 -1
- package/dist-web/assets/{architectureDiagram-3BPJPVTR-CUdI2ZME.js → architectureDiagram-3BPJPVTR-CeAAqVS4.js} +1 -1
- package/dist-web/assets/{blockDiagram-GPEHLZMM-BzGl3sJ5.js → blockDiagram-GPEHLZMM-Hns_u_jz.js} +1 -1
- package/dist-web/assets/{c4Diagram-AAUBKEIU-B9BcD268.js → c4Diagram-AAUBKEIU-BH3RLVAi.js} +1 -1
- package/dist-web/assets/channel-Dk0dEQIT.js +1 -0
- package/dist-web/assets/{chunk-2J33WTMH-jrfdvIhS.js → chunk-2J33WTMH-h6Ws9VXu.js} +1 -1
- package/dist-web/assets/{chunk-4BX2VUAB-BppnV9t3.js → chunk-4BX2VUAB-BSBeNNnS.js} +1 -1
- package/dist-web/assets/{chunk-55IACEB6-Dgig1qV7.js → chunk-55IACEB6-BmUY060b.js} +1 -1
- package/dist-web/assets/{chunk-727SXJPM-CssKzpPg.js → chunk-727SXJPM-CmemMVvQ.js} +1 -1
- package/dist-web/assets/{chunk-AQP2D5EJ-DWYbdfaL.js → chunk-AQP2D5EJ-LQpUb_FL.js} +1 -1
- package/dist-web/assets/{chunk-FMBD7UC4-Cbt7Dqxf.js → chunk-FMBD7UC4-wk7OYcdf.js} +1 -1
- package/dist-web/assets/{chunk-ND2GUHAM-2W-YdHxx.js → chunk-ND2GUHAM-O3K3rkHW.js} +1 -1
- package/dist-web/assets/{chunk-QZHKN3VN-BSLdTa36.js → chunk-QZHKN3VN-CvppUbp9.js} +1 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK-gqDJqcDV.js +1 -0
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-gqDJqcDV.js +1 -0
- package/dist-web/assets/{cose-bilkent-S5V4N54A-D0_MX2M6.js → cose-bilkent-S5V4N54A-Cf1nQ4V_.js} +1 -1
- package/dist-web/assets/{dagre-BM42HDAG-DGXkicI6.js → dagre-BM42HDAG-YyP7mwPP.js} +1 -1
- package/dist-web/assets/{diagram-2AECGRRQ-DMfWZxh-.js → diagram-2AECGRRQ-BmAtTKkQ.js} +1 -1
- package/dist-web/assets/{diagram-5GNKFQAL-IChrzosS.js → diagram-5GNKFQAL-Bem8_DUK.js} +1 -1
- package/dist-web/assets/{diagram-KO2AKTUF-C7IVA_Py.js → diagram-KO2AKTUF-0gNyY9-f.js} +1 -1
- package/dist-web/assets/{diagram-LMA3HP47-UQXc1x2n.js → diagram-LMA3HP47-CJJh_IUU.js} +1 -1
- package/dist-web/assets/{diagram-OG6HWLK6-Z69O_NXy.js → diagram-OG6HWLK6-DJcCho7F.js} +1 -1
- package/dist-web/assets/{erDiagram-TEJ5UH35-xrgfPZU-.js → erDiagram-TEJ5UH35-D-TI_EbX.js} +1 -1
- package/dist-web/assets/{flowDiagram-I6XJVG4X-Co-y5e2I.js → flowDiagram-I6XJVG4X-BUrB4EYN.js} +1 -1
- package/dist-web/assets/{ganttDiagram-6RSMTGT7-C9TOh3M1.js → ganttDiagram-6RSMTGT7-C9_ItheP.js} +1 -1
- package/dist-web/assets/{gitGraphDiagram-PVQCEYII-iBpK83U-.js → gitGraphDiagram-PVQCEYII-DYQEmll0.js} +1 -1
- package/dist-web/assets/{index-DaaOiRou.js → index-DULKNhw0.js} +4 -4
- package/dist-web/assets/{index-6RY653Ds.js → index-X-a-o-AT.js} +1 -1
- package/dist-web/assets/{index-D4y2EDE-.js → index-mEUl0sqe.js} +1 -1
- package/dist-web/assets/{infoDiagram-5YYISTIA-C-_CUdyF.js → infoDiagram-5YYISTIA-B06Tp7cb.js} +1 -1
- package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-zPkWZ6FX.js → ishikawaDiagram-YF4QCWOH-DY9iP3P6.js} +1 -1
- package/dist-web/assets/{journeyDiagram-JHISSGLW-CsTWcFHo.js → journeyDiagram-JHISSGLW-Bk4MV49m.js} +1 -1
- package/dist-web/assets/{kanban-definition-UN3LZRKU-CCsrhCu2.js → kanban-definition-UN3LZRKU-B9-wsNt9.js} +1 -1
- package/dist-web/assets/{linear-DlkSJnhW.js → linear-DEY9HwQB.js} +1 -1
- package/dist-web/assets/{mermaid.core-BM7nlTu6.js → mermaid.core-Cn0e4l6V.js} +4 -4
- package/dist-web/assets/{mindmap-definition-RKZ34NQL-C5tQ7zJH.js → mindmap-definition-RKZ34NQL-pN4Q2WNG.js} +1 -1
- package/dist-web/assets/{pieDiagram-4H26LBE5-CsK9eMOa.js → pieDiagram-4H26LBE5-DTkPv6S2.js} +1 -1
- package/dist-web/assets/{quadrantDiagram-W4KKPZXB-CsUwvpcD.js → quadrantDiagram-W4KKPZXB-BS9LhTv0.js} +1 -1
- package/dist-web/assets/{requirementDiagram-4Y6WPE33-CzQDuhAP.js → requirementDiagram-4Y6WPE33-BlSOLsQe.js} +1 -1
- package/dist-web/assets/{sankeyDiagram-5OEKKPKP-BTa3-BBs.js → sankeyDiagram-5OEKKPKP-B1xl-B1U.js} +1 -1
- package/dist-web/assets/{sequenceDiagram-3UESZ5HK-CPPduAn5.js → sequenceDiagram-3UESZ5HK-BoiYrW_0.js} +1 -1
- package/dist-web/assets/{stateDiagram-AJRCARHV-T5j3NpOr.js → stateDiagram-AJRCARHV-BxvfZYDK.js} +1 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-XGZY1tGg.js +1 -0
- package/dist-web/assets/{timeline-definition-PNZ67QCA-BG2gG3_T.js → timeline-definition-PNZ67QCA-CUEbrRkc.js} +1 -1
- package/dist-web/assets/{vennDiagram-CIIHVFJN-B3LyjiD_.js → vennDiagram-CIIHVFJN-CgQiBucH.js} +1 -1
- package/dist-web/assets/{wardley-L42UT6IY-CTsJTFG9.js → wardley-L42UT6IY-BsGW6T55.js} +1 -1
- package/dist-web/assets/{wardleyDiagram-YWT4CUSO-cmPISkrt.js → wardleyDiagram-YWT4CUSO-Cq3RMp6B.js} +1 -1
- package/dist-web/assets/{xychartDiagram-2RQKCTM6-BWy_dUgl.js → xychartDiagram-2RQKCTM6-WaoV-V3f.js} +1 -1
- package/dist-web/index.html +1 -1
- package/package.json +3 -3
- package/templates/harness/skills/st-code-review/SKILL.md +309 -0
- package/templates/harness/skills/st-code-review/scripts/code-review.cjs +1539 -0
- package/templates/harness/skills/st-code-review/scripts/find-strikethroo-root.cjs +116 -0
- package/templates/harness/skills/st-code-review/scripts/validate-plan-blueprint.cjs +429 -0
- package/templates/harness/skills/st-execute-blueprint/SKILL.md +48 -1
- package/templates/harness/skills/st-execute-blueprint/scripts/capture-base-commit.cjs +325 -0
- package/templates/harness/skills/st-execute-blueprint/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/harness/skills/st-execute-task/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/harness/skills/st-full-workflow/SKILL.md +48 -1
- package/templates/harness/skills/st-full-workflow/scripts/capture-base-commit.cjs +325 -0
- package/templates/harness/skills/st-full-workflow/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/strikethroo/config/hooks/CODE_REVIEW.md +60 -0
- package/templates/strikethroo/config/schemas/self-review-v2.xsd +437 -0
- package/dist-web/assets/channel-CN9J8c_F.js +0 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK-DHR8VHf9.js +0 -1
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-DHR8VHf9.js +0 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-CXpXsXHt.js +0 -1
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema
|
|
3
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
4
|
+
xmlns:sr="urn:self-review:v2"
|
|
5
|
+
targetNamespace="urn:self-review:v2"
|
|
6
|
+
elementFormDefault="qualified"
|
|
7
|
+
>
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
self-review XML Schema v2
|
|
11
|
+
=========================
|
|
12
|
+
Defines the output format for the self-review application.
|
|
13
|
+
This schema is designed to be both machine-validated and
|
|
14
|
+
fed to an LLM so it can understand the structure of review feedback.
|
|
15
|
+
|
|
16
|
+
Key concepts:
|
|
17
|
+
- A <review> contains one <file> per file in the diff.
|
|
18
|
+
- A <file> contains zero or more <comment> elements.
|
|
19
|
+
- A <comment> with no line attributes is a file-level comment.
|
|
20
|
+
- A <comment> with old-line-start/old-line-end refers to lines
|
|
21
|
+
in the pre-change version of the file (typically deleted lines).
|
|
22
|
+
- A <comment> with new-line-start/new-line-end refers to lines
|
|
23
|
+
in the post-change version of the file (added or context lines).
|
|
24
|
+
- Exactly one pair (old-line-* or new-line-*) should be present
|
|
25
|
+
for line-level comments. This constraint cannot be expressed in
|
|
26
|
+
XSD 1.0 and is enforced by the application.
|
|
27
|
+
|
|
28
|
+
Changes from v1:
|
|
29
|
+
- <comment> gained two optional attributes, severity and confidence,
|
|
30
|
+
so an automated consumer can threshold on findings instead of
|
|
31
|
+
applying all of them or none of them. See CommentType.
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
<!-- ===== Root element ===== -->
|
|
35
|
+
|
|
36
|
+
<xs:element name="review" type="sr:ReviewType">
|
|
37
|
+
<xs:annotation>
|
|
38
|
+
<xs:documentation>
|
|
39
|
+
Root element of a self-review output file. Contains one file element
|
|
40
|
+
per file in the git diff, including files with no comments.
|
|
41
|
+
</xs:documentation>
|
|
42
|
+
</xs:annotation>
|
|
43
|
+
</xs:element>
|
|
44
|
+
|
|
45
|
+
<!-- ===== Complex types ===== -->
|
|
46
|
+
|
|
47
|
+
<xs:complexType name="ReviewType">
|
|
48
|
+
<xs:sequence>
|
|
49
|
+
<xs:element name="file" type="sr:FileType" minOccurs="0" maxOccurs="unbounded" />
|
|
50
|
+
</xs:sequence>
|
|
51
|
+
<xs:attribute name="timestamp" type="xs:dateTime" use="required">
|
|
52
|
+
<xs:annotation>
|
|
53
|
+
<xs:documentation>
|
|
54
|
+
ISO 8601 timestamp of when the review was completed (window closed).
|
|
55
|
+
</xs:documentation>
|
|
56
|
+
</xs:annotation>
|
|
57
|
+
</xs:attribute>
|
|
58
|
+
<xs:attribute name="git-diff-args" type="xs:string" use="optional">
|
|
59
|
+
<xs:annotation>
|
|
60
|
+
<xs:documentation>
|
|
61
|
+
The git diff arguments that were passed to self-review on the CLI.
|
|
62
|
+
Example: "--staged", "main..feature-branch", "HEAD~3".
|
|
63
|
+
Present only when reviewing a git diff.
|
|
64
|
+
</xs:documentation>
|
|
65
|
+
</xs:annotation>
|
|
66
|
+
</xs:attribute>
|
|
67
|
+
<xs:attribute name="repository" type="xs:string" use="optional">
|
|
68
|
+
<xs:annotation>
|
|
69
|
+
<xs:documentation>
|
|
70
|
+
Absolute path to the repository root where self-review was invoked.
|
|
71
|
+
Present only when reviewing a git diff.
|
|
72
|
+
</xs:documentation>
|
|
73
|
+
</xs:annotation>
|
|
74
|
+
</xs:attribute>
|
|
75
|
+
<xs:attribute name="source-path" type="xs:string" use="optional">
|
|
76
|
+
<xs:annotation>
|
|
77
|
+
<xs:documentation>
|
|
78
|
+
Absolute path to the directory being reviewed.
|
|
79
|
+
Present only when reviewing a directory (non-git mode).
|
|
80
|
+
</xs:documentation>
|
|
81
|
+
</xs:annotation>
|
|
82
|
+
</xs:attribute>
|
|
83
|
+
</xs:complexType>
|
|
84
|
+
|
|
85
|
+
<xs:complexType name="FileType">
|
|
86
|
+
<xs:annotation>
|
|
87
|
+
<xs:documentation>
|
|
88
|
+
Represents a single file in the diff. Files with no comments
|
|
89
|
+
appear as empty elements. The path is relative to the repository root.
|
|
90
|
+
</xs:documentation>
|
|
91
|
+
</xs:annotation>
|
|
92
|
+
<xs:sequence>
|
|
93
|
+
<xs:element name="comment" type="sr:CommentType" minOccurs="0" maxOccurs="unbounded" />
|
|
94
|
+
</xs:sequence>
|
|
95
|
+
<xs:attribute name="path" type="xs:string" use="required">
|
|
96
|
+
<xs:annotation>
|
|
97
|
+
<xs:documentation>
|
|
98
|
+
File path relative to the repository root. For renamed files,
|
|
99
|
+
this is the new path.
|
|
100
|
+
</xs:documentation>
|
|
101
|
+
</xs:annotation>
|
|
102
|
+
</xs:attribute>
|
|
103
|
+
<xs:attribute name="change-type" type="sr:ChangeTypeEnum" use="required">
|
|
104
|
+
<xs:annotation>
|
|
105
|
+
<xs:documentation>
|
|
106
|
+
The type of change: added, modified, deleted, or renamed.
|
|
107
|
+
</xs:documentation>
|
|
108
|
+
</xs:annotation>
|
|
109
|
+
</xs:attribute>
|
|
110
|
+
<xs:attribute name="viewed" type="xs:boolean" use="required">
|
|
111
|
+
<xs:annotation>
|
|
112
|
+
<xs:documentation>
|
|
113
|
+
Whether the reviewer marked this file as reviewed.
|
|
114
|
+
true = the reviewer looked at this file.
|
|
115
|
+
false = the reviewer did not mark this file as viewed.
|
|
116
|
+
This helps an AI agent distinguish "reviewed with no comments"
|
|
117
|
+
from "not yet reviewed."
|
|
118
|
+
</xs:documentation>
|
|
119
|
+
</xs:annotation>
|
|
120
|
+
</xs:attribute>
|
|
121
|
+
</xs:complexType>
|
|
122
|
+
|
|
123
|
+
<xs:complexType name="CommentType">
|
|
124
|
+
<xs:annotation>
|
|
125
|
+
<xs:documentation>
|
|
126
|
+
A review comment. Three forms:
|
|
127
|
+
|
|
128
|
+
1. File-level comment: no line attributes present.
|
|
129
|
+
Applies to the file as a whole.
|
|
130
|
+
|
|
131
|
+
2. Comment on new/added/context lines: new-line-start and
|
|
132
|
+
new-line-end are present. These reference line numbers in the
|
|
133
|
+
post-change version of the file.
|
|
134
|
+
|
|
135
|
+
3. Comment on old/deleted lines: old-line-start and old-line-end
|
|
136
|
+
are present. These reference line numbers in the pre-change
|
|
137
|
+
version of the file.
|
|
138
|
+
|
|
139
|
+
For single-line comments, start and end are equal.
|
|
140
|
+
Exactly one pair (old or new) should be present for line-level
|
|
141
|
+
comments. Both pairs absent = file-level comment.
|
|
142
|
+
|
|
143
|
+
The category child says what kind of finding this is. The severity
|
|
144
|
+
and confidence attributes say how much weight to put on it: severity
|
|
145
|
+
is how consequential the finding is if it is real, confidence is how
|
|
146
|
+
sure the author is that it is real. They are independent, and an
|
|
147
|
+
automated consumer is expected to threshold on both.
|
|
148
|
+
</xs:documentation>
|
|
149
|
+
</xs:annotation>
|
|
150
|
+
<xs:sequence>
|
|
151
|
+
<xs:element name="body" type="xs:string">
|
|
152
|
+
<xs:annotation>
|
|
153
|
+
<xs:documentation>
|
|
154
|
+
The comment text. May contain markdown formatting.
|
|
155
|
+
</xs:documentation>
|
|
156
|
+
</xs:annotation>
|
|
157
|
+
</xs:element>
|
|
158
|
+
<xs:element name="category" type="xs:string">
|
|
159
|
+
<xs:annotation>
|
|
160
|
+
<xs:documentation>
|
|
161
|
+
Required category tag for this comment (e.g., "bug", "style",
|
|
162
|
+
"nit", "question", "security"). Categories are defined in the
|
|
163
|
+
project-level .self-review.yaml configuration. Every comment
|
|
164
|
+
must have a category to help AI agents prioritize and triage
|
|
165
|
+
feedback.
|
|
166
|
+
</xs:documentation>
|
|
167
|
+
</xs:annotation>
|
|
168
|
+
</xs:element>
|
|
169
|
+
<xs:element name="suggestion" type="sr:SuggestionType" minOccurs="0">
|
|
170
|
+
<xs:annotation>
|
|
171
|
+
<xs:documentation>
|
|
172
|
+
Optional code replacement proposal. When present, the AI agent
|
|
173
|
+
should replace the original-code with the proposed-code at the
|
|
174
|
+
referenced line range.
|
|
175
|
+
</xs:documentation>
|
|
176
|
+
</xs:annotation>
|
|
177
|
+
</xs:element>
|
|
178
|
+
<xs:element name="attachment" type="sr:AttachmentType" minOccurs="0" maxOccurs="unbounded">
|
|
179
|
+
<xs:annotation>
|
|
180
|
+
<xs:documentation>
|
|
181
|
+
Optional image attachment. The path attribute references an image file
|
|
182
|
+
stored in the .self-review-assets/ directory alongside the XML output.
|
|
183
|
+
</xs:documentation>
|
|
184
|
+
</xs:annotation>
|
|
185
|
+
</xs:element>
|
|
186
|
+
</xs:sequence>
|
|
187
|
+
<xs:attribute name="old-line-start" type="xs:positiveInteger" use="optional">
|
|
188
|
+
<xs:annotation>
|
|
189
|
+
<xs:documentation>
|
|
190
|
+
Start line number in the pre-change (old) version of the file.
|
|
191
|
+
Use for comments on deleted lines.
|
|
192
|
+
</xs:documentation>
|
|
193
|
+
</xs:annotation>
|
|
194
|
+
</xs:attribute>
|
|
195
|
+
<xs:attribute name="old-line-end" type="xs:positiveInteger" use="optional">
|
|
196
|
+
<xs:annotation>
|
|
197
|
+
<xs:documentation>
|
|
198
|
+
End line number (inclusive) in the pre-change (old) version.
|
|
199
|
+
Must be >= old-line-start when both are present.
|
|
200
|
+
</xs:documentation>
|
|
201
|
+
</xs:annotation>
|
|
202
|
+
</xs:attribute>
|
|
203
|
+
<xs:attribute name="new-line-start" type="xs:positiveInteger" use="optional">
|
|
204
|
+
<xs:annotation>
|
|
205
|
+
<xs:documentation>
|
|
206
|
+
Start line number in the post-change (new) version of the file.
|
|
207
|
+
Use for comments on added or context (unchanged) lines.
|
|
208
|
+
</xs:documentation>
|
|
209
|
+
</xs:annotation>
|
|
210
|
+
</xs:attribute>
|
|
211
|
+
<xs:attribute name="new-line-end" type="xs:positiveInteger" use="optional">
|
|
212
|
+
<xs:annotation>
|
|
213
|
+
<xs:documentation>
|
|
214
|
+
End line number (inclusive) in the post-change (new) version.
|
|
215
|
+
Must be >= new-line-start when both are present.
|
|
216
|
+
</xs:documentation>
|
|
217
|
+
</xs:annotation>
|
|
218
|
+
</xs:attribute>
|
|
219
|
+
<xs:attribute name="author" type="xs:string" use="optional">
|
|
220
|
+
<xs:annotation>
|
|
221
|
+
<xs:documentation>
|
|
222
|
+
The author of this comment. When present, indicates the comment
|
|
223
|
+
was generated by a bot or LLM (e.g., "Claude Sonnet 4.6").
|
|
224
|
+
When absent, the comment is assumed to be authored by the human
|
|
225
|
+
reviewer.
|
|
226
|
+
</xs:documentation>
|
|
227
|
+
</xs:annotation>
|
|
228
|
+
</xs:attribute>
|
|
229
|
+
<xs:attribute name="severity" type="sr:SeverityEnum" use="optional">
|
|
230
|
+
<xs:annotation>
|
|
231
|
+
<xs:documentation>
|
|
232
|
+
How consequential this finding is if it turns out to be real.
|
|
233
|
+
Judge the impact of the problem, not how confident you are that
|
|
234
|
+
the problem exists, and not how much work the fix is.
|
|
235
|
+
|
|
236
|
+
This attribute has no schema default on purpose. When it is
|
|
237
|
+
absent, a consumer must treat the comment as falling below any
|
|
238
|
+
severity floor it applies, i.e. absent never satisfies a
|
|
239
|
+
threshold. Comments written by a human in the self-review UI
|
|
240
|
+
normally carry no severity.
|
|
241
|
+
</xs:documentation>
|
|
242
|
+
</xs:annotation>
|
|
243
|
+
</xs:attribute>
|
|
244
|
+
<xs:attribute name="confidence" type="sr:ConfidenceEnum" use="optional">
|
|
245
|
+
<xs:annotation>
|
|
246
|
+
<xs:documentation>
|
|
247
|
+
How sure the author is that this finding is real, i.e. that it
|
|
248
|
+
describes an actual defect in the code as written rather than a
|
|
249
|
+
hypothetical one.
|
|
250
|
+
|
|
251
|
+
Confidence is about the evidence, not about how strongly the
|
|
252
|
+
comment is worded. A finding whose argument depends on a
|
|
253
|
+
constraint that is not visible in the diff, on a caller that was
|
|
254
|
+
not read, or on a failure scenario that was imagined rather than
|
|
255
|
+
traced, is low confidence however plausible its prose sounds.
|
|
256
|
+
LLM reviewers systematically overstate certainty here; a
|
|
257
|
+
consumer thresholding on this attribute is relying on it being
|
|
258
|
+
lowered honestly.
|
|
259
|
+
|
|
260
|
+
This attribute has no schema default on purpose. When it is
|
|
261
|
+
absent, a consumer must treat the comment as falling below any
|
|
262
|
+
confidence floor it applies, i.e. absent never satisfies a
|
|
263
|
+
threshold.
|
|
264
|
+
</xs:documentation>
|
|
265
|
+
</xs:annotation>
|
|
266
|
+
</xs:attribute>
|
|
267
|
+
</xs:complexType>
|
|
268
|
+
|
|
269
|
+
<xs:complexType name="SuggestionType">
|
|
270
|
+
<xs:annotation>
|
|
271
|
+
<xs:documentation>
|
|
272
|
+
A code replacement proposal. The original-code is the literal text
|
|
273
|
+
currently at the referenced lines. The proposed-code is what the
|
|
274
|
+
reviewer suggests it should be replaced with. The AI agent can apply
|
|
275
|
+
this by performing a text substitution.
|
|
276
|
+
</xs:documentation>
|
|
277
|
+
</xs:annotation>
|
|
278
|
+
<xs:sequence>
|
|
279
|
+
<xs:element name="original-code" type="xs:string">
|
|
280
|
+
<xs:annotation>
|
|
281
|
+
<xs:documentation>
|
|
282
|
+
The existing code at the referenced line range, copied verbatim
|
|
283
|
+
from the diff. Used by the AI agent to locate the replacement
|
|
284
|
+
target via text matching.
|
|
285
|
+
</xs:documentation>
|
|
286
|
+
</xs:annotation>
|
|
287
|
+
</xs:element>
|
|
288
|
+
<xs:element name="proposed-code" type="xs:string">
|
|
289
|
+
<xs:annotation>
|
|
290
|
+
<xs:documentation>
|
|
291
|
+
The replacement code proposed by the reviewer. The AI agent
|
|
292
|
+
should substitute original-code with this text.
|
|
293
|
+
</xs:documentation>
|
|
294
|
+
</xs:annotation>
|
|
295
|
+
</xs:element>
|
|
296
|
+
</xs:sequence>
|
|
297
|
+
</xs:complexType>
|
|
298
|
+
|
|
299
|
+
<xs:complexType name="AttachmentType">
|
|
300
|
+
<xs:annotation>
|
|
301
|
+
<xs:documentation>
|
|
302
|
+
Reference to an image file attached to a review comment. The file is stored
|
|
303
|
+
alongside the XML output in the .self-review-assets/ directory.
|
|
304
|
+
</xs:documentation>
|
|
305
|
+
</xs:annotation>
|
|
306
|
+
<xs:attribute name="path" type="xs:string" use="required">
|
|
307
|
+
<xs:annotation>
|
|
308
|
+
<xs:documentation>Relative path from the XML file to the image file.</xs:documentation>
|
|
309
|
+
</xs:annotation>
|
|
310
|
+
</xs:attribute>
|
|
311
|
+
<xs:attribute name="media-type" type="xs:string" use="required">
|
|
312
|
+
<xs:annotation>
|
|
313
|
+
<xs:documentation>MIME type of the image (e.g., image/png, image/jpeg).</xs:documentation>
|
|
314
|
+
</xs:annotation>
|
|
315
|
+
</xs:attribute>
|
|
316
|
+
</xs:complexType>
|
|
317
|
+
|
|
318
|
+
<!-- ===== Simple types ===== -->
|
|
319
|
+
|
|
320
|
+
<xs:simpleType name="ChangeTypeEnum">
|
|
321
|
+
<xs:annotation>
|
|
322
|
+
<xs:documentation>
|
|
323
|
+
The type of change a file underwent in the diff.
|
|
324
|
+
</xs:documentation>
|
|
325
|
+
</xs:annotation>
|
|
326
|
+
<xs:restriction base="xs:string">
|
|
327
|
+
<xs:enumeration value="added">
|
|
328
|
+
<xs:annotation>
|
|
329
|
+
<xs:documentation>New file that did not exist before.</xs:documentation>
|
|
330
|
+
</xs:annotation>
|
|
331
|
+
</xs:enumeration>
|
|
332
|
+
<xs:enumeration value="modified">
|
|
333
|
+
<xs:annotation>
|
|
334
|
+
<xs:documentation>Existing file with content changes.</xs:documentation>
|
|
335
|
+
</xs:annotation>
|
|
336
|
+
</xs:enumeration>
|
|
337
|
+
<xs:enumeration value="deleted">
|
|
338
|
+
<xs:annotation>
|
|
339
|
+
<xs:documentation>File was removed.</xs:documentation>
|
|
340
|
+
</xs:annotation>
|
|
341
|
+
</xs:enumeration>
|
|
342
|
+
<xs:enumeration value="renamed">
|
|
343
|
+
<xs:annotation>
|
|
344
|
+
<xs:documentation>File was moved or renamed, with or without content changes.</xs:documentation>
|
|
345
|
+
</xs:annotation>
|
|
346
|
+
</xs:enumeration>
|
|
347
|
+
</xs:restriction>
|
|
348
|
+
</xs:simpleType>
|
|
349
|
+
|
|
350
|
+
<xs:simpleType name="SeverityEnum">
|
|
351
|
+
<xs:annotation>
|
|
352
|
+
<xs:documentation>
|
|
353
|
+
How consequential a finding is if it is real. Ordered from most to
|
|
354
|
+
least consequential: critical, major, minor, info.
|
|
355
|
+
</xs:documentation>
|
|
356
|
+
</xs:annotation>
|
|
357
|
+
<xs:restriction base="xs:string">
|
|
358
|
+
<xs:enumeration value="critical">
|
|
359
|
+
<xs:annotation>
|
|
360
|
+
<xs:documentation>
|
|
361
|
+
Causes data loss, a security hole, or a crash or corruption on a
|
|
362
|
+
path that real usage reaches. Shipping this is not acceptable.
|
|
363
|
+
</xs:documentation>
|
|
364
|
+
</xs:annotation>
|
|
365
|
+
</xs:enumeration>
|
|
366
|
+
<xs:enumeration value="major">
|
|
367
|
+
<xs:annotation>
|
|
368
|
+
<xs:documentation>
|
|
369
|
+
Produces wrong behaviour, or breaks a documented contract, on a
|
|
370
|
+
path that real usage reaches. The code does not do what it is
|
|
371
|
+
supposed to do, but nothing is destroyed and there is no security
|
|
372
|
+
impact.
|
|
373
|
+
</xs:documentation>
|
|
374
|
+
</xs:annotation>
|
|
375
|
+
</xs:enumeration>
|
|
376
|
+
<xs:enumeration value="minor">
|
|
377
|
+
<xs:annotation>
|
|
378
|
+
<xs:documentation>
|
|
379
|
+
Real but bounded: a mishandled edge case that is unlikely to be
|
|
380
|
+
hit, a missing test, a leak of something cheap, or a maintenance
|
|
381
|
+
hazard that will cost time later. Behaviour is correct today.
|
|
382
|
+
</xs:documentation>
|
|
383
|
+
</xs:annotation>
|
|
384
|
+
</xs:enumeration>
|
|
385
|
+
<xs:enumeration value="info">
|
|
386
|
+
<xs:annotation>
|
|
387
|
+
<xs:documentation>
|
|
388
|
+
No defect. Style, naming, phrasing, a question for the author, or
|
|
389
|
+
a note recorded for context. Nothing is wrong if this is never
|
|
390
|
+
acted on.
|
|
391
|
+
</xs:documentation>
|
|
392
|
+
</xs:annotation>
|
|
393
|
+
</xs:enumeration>
|
|
394
|
+
</xs:restriction>
|
|
395
|
+
</xs:simpleType>
|
|
396
|
+
|
|
397
|
+
<xs:simpleType name="ConfidenceEnum">
|
|
398
|
+
<xs:annotation>
|
|
399
|
+
<xs:documentation>
|
|
400
|
+
How sure the author is that a finding is real. Ordered from most to
|
|
401
|
+
least sure: high, medium, low.
|
|
402
|
+
</xs:documentation>
|
|
403
|
+
</xs:annotation>
|
|
404
|
+
<xs:restriction base="xs:string">
|
|
405
|
+
<xs:enumeration value="high">
|
|
406
|
+
<xs:annotation>
|
|
407
|
+
<xs:documentation>
|
|
408
|
+
The evidence is in the code that was read. The failure can be
|
|
409
|
+
traced from the diff itself, and no assumption about unseen code,
|
|
410
|
+
unseen callers, or unstated requirements is needed to reach it.
|
|
411
|
+
</xs:documentation>
|
|
412
|
+
</xs:annotation>
|
|
413
|
+
</xs:enumeration>
|
|
414
|
+
<xs:enumeration value="medium">
|
|
415
|
+
<xs:annotation>
|
|
416
|
+
<xs:documentation>
|
|
417
|
+
Likely real, but it rests on one assumption that was not verified,
|
|
418
|
+
such as how a caller behaves, what a dependency guarantees, or
|
|
419
|
+
what the intended requirement was. Stating that assumption in the
|
|
420
|
+
body is expected at this level.
|
|
421
|
+
</xs:documentation>
|
|
422
|
+
</xs:annotation>
|
|
423
|
+
</xs:enumeration>
|
|
424
|
+
<xs:enumeration value="low">
|
|
425
|
+
<xs:annotation>
|
|
426
|
+
<xs:documentation>
|
|
427
|
+
Speculative. The failure scenario was imagined rather than traced,
|
|
428
|
+
or the finding depends on a constraint the author invented, or the
|
|
429
|
+
author could not tell intent from the code. Worth a human's eyes,
|
|
430
|
+
not worth acting on unattended.
|
|
431
|
+
</xs:documentation>
|
|
432
|
+
</xs:annotation>
|
|
433
|
+
</xs:enumeration>
|
|
434
|
+
</xs:restriction>
|
|
435
|
+
</xs:simpleType>
|
|
436
|
+
|
|
437
|
+
</xs:schema>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./mermaid.core-BM7nlTu6.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as e,C as t}from"./chunk-727SXJPM-CssKzpPg.js";import{b as i}from"./mermaid.core-BM7nlTu6.js";import"./chunk-FMBD7UC4-Cbt7Dqxf.js";import"./chunk-ND2GUHAM-2W-YdHxx.js";import"./chunk-55IACEB6-Dgig1qV7.js";import"./chunk-2J33WTMH-jrfdvIhS.js";import"./index-DaaOiRou.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as e,C as t}from"./chunk-727SXJPM-CssKzpPg.js";import{b as i}from"./mermaid.core-BM7nlTu6.js";import"./chunk-FMBD7UC4-Cbt7Dqxf.js";import"./chunk-ND2GUHAM-2W-YdHxx.js";import"./chunk-55IACEB6-Dgig1qV7.js";import"./chunk-2J33WTMH-jrfdvIhS.js";import"./index-DaaOiRou.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as e,a as r,s as a,S as s}from"./chunk-AQP2D5EJ-DWYbdfaL.js";import{b as i}from"./mermaid.core-BM7nlTu6.js";import"./chunk-55IACEB6-Dgig1qV7.js";import"./chunk-2J33WTMH-jrfdvIhS.js";import"./index-DaaOiRou.js";var u={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram};
|