kibi-cli 0.16.1 → 0.18.1

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.
Files changed (229) hide show
  1. package/dist/cli-json-command.d.ts.map +1 -1
  2. package/dist/cli-json-command.js +87 -11
  3. package/dist/cli-register-maintenance.d.ts.map +1 -1
  4. package/dist/cli-register-maintenance.js +8 -0
  5. package/dist/cli-register-reporting.d.ts.map +1 -1
  6. package/dist/cli-register-reporting.js +5 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +2 -1
  9. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  10. package/dist/commands/aggregated-checks.js +1 -0
  11. package/dist/commands/check.d.ts.map +1 -1
  12. package/dist/commands/check.js +1 -1
  13. package/dist/commands/coverage.d.ts +5 -0
  14. package/dist/commands/coverage.d.ts.map +1 -1
  15. package/dist/commands/coverage.js +5 -0
  16. package/dist/commands/discovery-table.d.ts.map +1 -1
  17. package/dist/commands/discovery-table.js +96 -5
  18. package/dist/commands/sync/cache.d.ts +2 -0
  19. package/dist/commands/sync/cache.d.ts.map +1 -1
  20. package/dist/commands/sync/cache.js +8 -0
  21. package/dist/commands/sync/manifest.d.ts +12 -1
  22. package/dist/commands/sync/manifest.d.ts.map +1 -1
  23. package/dist/commands/sync/manifest.js +22 -5
  24. package/dist/commands/sync/persistence.d.ts.map +1 -1
  25. package/dist/commands/sync/persistence.js +76 -2
  26. package/dist/commands/sync.d.ts.map +1 -1
  27. package/dist/commands/sync.js +72 -15
  28. package/dist/commands/usage-metrics.d.ts +66 -2
  29. package/dist/commands/usage-metrics.d.ts.map +1 -1
  30. package/dist/commands/usage-metrics.js +34 -24
  31. package/dist/commands/usage-remediation.d.ts +9 -0
  32. package/dist/commands/usage-remediation.d.ts.map +1 -0
  33. package/dist/commands/usage-remediation.js +52 -0
  34. package/dist/extractors/markdown.d.ts +17 -1
  35. package/dist/extractors/markdown.d.ts.map +1 -1
  36. package/dist/extractors/markdown.js +81 -2
  37. package/dist/logic/ir.d.ts +112 -0
  38. package/dist/logic/ir.d.ts.map +1 -0
  39. package/dist/logic/ir.js +729 -0
  40. package/dist/operations/modeling/logic-modeling.d.ts +22 -0
  41. package/dist/operations/modeling/logic-modeling.d.ts.map +1 -0
  42. package/dist/operations/modeling/logic-modeling.js +120 -0
  43. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  44. package/dist/operations/modeling/model-requirement.js +83 -2
  45. package/dist/operations/modeling/predicate-applyplan.d.ts +1 -1
  46. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  47. package/dist/operations/modeling/predicate-applyplan.js +29 -4
  48. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  49. package/dist/operations/modeling/predicate-inference.js +3 -0
  50. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  51. package/dist/operations/modeling/predicate-loader.js +7 -1
  52. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  53. package/dist/operations/modeling/predicate-ranker.js +40 -2
  54. package/dist/operations/modeling/predicate-types.d.ts +12 -1
  55. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  56. package/dist/operations/modeling/requirement-types.d.ts +12 -0
  57. package/dist/operations/modeling/requirement-types.d.ts.map +1 -1
  58. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  59. package/dist/operations/modeling/suggest-predicates.js +35 -11
  60. package/dist/operations/mutation/audit.js +1 -1
  61. package/dist/operations/mutation/contradictions.d.ts +1 -1
  62. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  63. package/dist/operations/mutation/contradictions.js +23 -18
  64. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  65. package/dist/operations/mutation/relationships.js +8 -0
  66. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  67. package/dist/operations/mutation/serialization.js +6 -0
  68. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  69. package/dist/operations/mutation/strict-fact.js +68 -3
  70. package/dist/operations/mutation/upsert.d.ts +3 -1
  71. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  72. package/dist/operations/mutation/upsert.js +51 -12
  73. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  74. package/dist/operations/mutation/validate-upsert.js +18 -2
  75. package/dist/operations/mutation/validation.d.ts.map +1 -1
  76. package/dist/operations/mutation/validation.js +8 -0
  77. package/dist/operations/semantic-advisor/analysis-receipt.d.ts +2 -2
  78. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  79. package/dist/operations/semantic-advisor/analysis-receipt.js +30 -16
  80. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -1
  81. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  82. package/dist/operations/semantic-advisor/analyze-prose.js +464 -27
  83. package/dist/operations/semantic-advisor/clauses.d.ts +1 -0
  84. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  85. package/dist/operations/semantic-advisor/clauses.js +7 -7
  86. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts +18 -0
  87. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -0
  88. package/dist/operations/semantic-advisor/ingestion-boundary.js +167 -0
  89. package/dist/operations/semantic-advisor/observation-plan.d.ts.map +1 -1
  90. package/dist/operations/semantic-advisor/observation-plan.js +15 -3
  91. package/dist/operations/semantic-advisor/shared.d.ts +9 -0
  92. package/dist/operations/semantic-advisor/shared.d.ts.map +1 -1
  93. package/dist/operations/semantic-advisor/shared.js +38 -4
  94. package/dist/operations/semantic-advisor/types.d.ts +66 -1
  95. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  96. package/dist/prolog/codec.d.ts.map +1 -1
  97. package/dist/prolog/codec.js +19 -2
  98. package/dist/prolog.d.ts +6 -0
  99. package/dist/prolog.d.ts.map +1 -1
  100. package/dist/prolog.js +247 -63
  101. package/dist/public/diagnostic-usage.d.ts +17 -0
  102. package/dist/public/diagnostic-usage.d.ts.map +1 -0
  103. package/dist/public/diagnostic-usage.js +152 -0
  104. package/dist/public/distribution-parity.d.ts +90 -0
  105. package/dist/public/distribution-parity.d.ts.map +1 -0
  106. package/dist/public/distribution-parity.js +367 -0
  107. package/dist/public/impact/full-kb-quality.d.ts +2 -0
  108. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  109. package/dist/public/impact/full-kb-quality.js +53 -1
  110. package/dist/public/impact-diagnostics.d.ts +2 -0
  111. package/dist/public/impact-diagnostics.d.ts.map +1 -1
  112. package/dist/public/impact-diagnostics.js +1 -0
  113. package/dist/public/operations/catalog.d.ts +235 -11
  114. package/dist/public/operations/catalog.d.ts.map +1 -1
  115. package/dist/public/operations/check-executor.d.ts.map +1 -1
  116. package/dist/public/operations/check-executor.js +4 -0
  117. package/dist/public/operations/discovery-executors.d.ts +6 -0
  118. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  119. package/dist/public/operations/discovery-executors.js +18 -2
  120. package/dist/public/operations/index.d.ts +5 -0
  121. package/dist/public/operations/index.d.ts.map +1 -1
  122. package/dist/public/operations/index.js +5 -0
  123. package/dist/public/operations/legacy-migration-plan.d.ts +113 -0
  124. package/dist/public/operations/legacy-migration-plan.d.ts.map +1 -0
  125. package/dist/public/operations/legacy-migration-plan.js +409 -0
  126. package/dist/public/operations/node-ports.d.ts.map +1 -1
  127. package/dist/public/operations/node-ports.js +90 -0
  128. package/dist/public/operations/repair-plan.d.ts +184 -0
  129. package/dist/public/operations/repair-plan.d.ts.map +1 -0
  130. package/dist/public/operations/repair-plan.js +397 -0
  131. package/dist/public/operations/runtime-types.d.ts +7 -0
  132. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  133. package/dist/public/operations/specs/check.d.ts +3 -3
  134. package/dist/public/operations/specs/check.d.ts.map +1 -1
  135. package/dist/public/operations/specs/check.js +5 -2
  136. package/dist/public/operations/specs/discovery.d.ts +1 -1
  137. package/dist/public/operations/specs/discovery.js +1 -1
  138. package/dist/public/operations/specs/modeling.d.ts +35 -1
  139. package/dist/public/operations/specs/modeling.d.ts.map +1 -1
  140. package/dist/public/operations/specs/modeling.js +32 -1
  141. package/dist/public/operations/specs/mutation-schemas.d.ts +133 -3
  142. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  143. package/dist/public/operations/specs/mutation-schemas.js +67 -1
  144. package/dist/public/operations/specs/reporting.d.ts +42 -1
  145. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  146. package/dist/public/operations/specs/reporting.js +70 -6
  147. package/dist/public/operations/specs/semantic.d.ts +30 -2
  148. package/dist/public/operations/specs/semantic.d.ts.map +1 -1
  149. package/dist/public/operations/specs/semantic.js +35 -3
  150. package/dist/public/operations/specs/upsert.d.ts +133 -3
  151. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  152. package/dist/public/operations/workspace-snapshot.d.ts +10 -0
  153. package/dist/public/operations/workspace-snapshot.d.ts.map +1 -0
  154. package/dist/public/operations/workspace-snapshot.js +20 -0
  155. package/dist/public/schemas/entity.d.ts.map +1 -1
  156. package/dist/public/schemas/entity.js +332 -0
  157. package/dist/public/schemas/relationship.d.ts.map +1 -1
  158. package/dist/public/schemas/relationship.js +1 -0
  159. package/dist/public/skills/kibi-traceability/SKILL.md +7 -1
  160. package/dist/public/skills/kibi-usage/SKILL.md +44 -12
  161. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +12 -2
  162. package/dist/public/skills/kibi-usage/resources/logic-ir.md +43 -0
  163. package/dist/public/skills/kibi-usage/resources/operation-access.md +19 -19
  164. package/dist/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
  165. package/dist/public/skills/kibi-usage/resources/workflows.md +40 -8
  166. package/dist/public/symbol-granularity.d.ts +9 -0
  167. package/dist/public/symbol-granularity.d.ts.map +1 -1
  168. package/dist/public/symbol-granularity.js +16 -0
  169. package/dist/public/telemetry-acceptance.d.ts +89 -0
  170. package/dist/public/telemetry-acceptance.d.ts.map +1 -0
  171. package/dist/public/telemetry-acceptance.js +597 -0
  172. package/dist/public/telemetry-remediation.d.ts +33 -0
  173. package/dist/public/telemetry-remediation.d.ts.map +1 -0
  174. package/dist/public/telemetry-remediation.js +257 -0
  175. package/dist/public/verification-receipt.d.ts +75 -0
  176. package/dist/public/verification-receipt.d.ts.map +1 -0
  177. package/dist/public/verification-receipt.js +129 -0
  178. package/dist/schemas/entity.schema.json +401 -4
  179. package/dist/traceability/staged-diagnostics.d.ts +1 -1
  180. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  181. package/dist/traceability/staged-diagnostics.js +17 -10
  182. package/dist/traceability/staged-impact-contract.js +1 -1
  183. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  184. package/dist/traceability/staged-symbols-manifest.js +28 -10
  185. package/dist/traceability/temp-kb.d.ts.map +1 -1
  186. package/dist/traceability/temp-kb.js +49 -3
  187. package/dist/types/entities.d.ts +1 -0
  188. package/dist/types/entities.d.ts.map +1 -1
  189. package/dist/types/relationships.d.ts +1 -1
  190. package/dist/types/relationships.d.ts.map +1 -1
  191. package/dist/utils/rule-registry.d.ts +2 -0
  192. package/dist/utils/rule-registry.d.ts.map +1 -1
  193. package/dist/utils/rule-registry.js +18 -0
  194. package/dist/utils/schema-version.d.ts +1 -1
  195. package/dist/utils/schema-version.js +1 -1
  196. package/package.json +34 -2
  197. package/src/public/diagnostic-usage.ts +206 -0
  198. package/src/public/distribution-parity.ts +580 -0
  199. package/src/public/impact/full-kb-quality.ts +74 -1
  200. package/src/public/impact-diagnostics.ts +16 -0
  201. package/src/public/operations/check-executor.ts +4 -0
  202. package/src/public/operations/discovery-executors.ts +24 -2
  203. package/src/public/operations/index.ts +5 -0
  204. package/src/public/operations/legacy-migration-plan.ts +688 -0
  205. package/src/public/operations/node-ports.ts +109 -0
  206. package/src/public/operations/repair-plan.ts +562 -0
  207. package/src/public/operations/runtime-types.ts +8 -0
  208. package/src/public/operations/specs/check.ts +5 -2
  209. package/src/public/operations/specs/discovery.ts +1 -1
  210. package/src/public/operations/specs/modeling.ts +39 -1
  211. package/src/public/operations/specs/mutation-schemas.ts +77 -1
  212. package/src/public/operations/specs/reporting.ts +91 -6
  213. package/src/public/operations/specs/semantic.ts +42 -3
  214. package/src/public/operations/workspace-snapshot.ts +28 -0
  215. package/src/public/schemas/entity.ts +340 -1
  216. package/src/public/schemas/relationship.ts +1 -0
  217. package/src/public/skills/kibi-traceability/SKILL.md +7 -1
  218. package/src/public/skills/kibi-usage/SKILL.md +44 -12
  219. package/src/public/skills/kibi-usage/resources/fact-lanes.md +12 -2
  220. package/src/public/skills/kibi-usage/resources/logic-ir.md +43 -0
  221. package/src/public/skills/kibi-usage/resources/operation-access.md +19 -19
  222. package/src/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
  223. package/src/public/skills/kibi-usage/resources/workflows.md +40 -8
  224. package/src/public/symbol-granularity.ts +25 -0
  225. package/src/public/telemetry-acceptance.ts +859 -0
  226. package/src/public/telemetry-remediation.ts +462 -0
  227. package/src/public/verification-receipt.ts +170 -0
  228. package/src/schemas/entity.schema.json +401 -4
  229. package/src/schemas/relationship.schema.json +1 -0
@@ -2,6 +2,209 @@
2
2
  "$id": "entity.schema.json",
3
3
  "title": "Entity",
4
4
  "type": "object",
5
+ "$defs": {
6
+ "logicTerm": {
7
+ "oneOf": [
8
+ {
9
+ "type": "object",
10
+ "required": ["kind", "name", "type"],
11
+ "properties": {
12
+ "kind": { "const": "var" },
13
+ "name": { "type": "string", "pattern": "^[A-Z][A-Za-z0-9_]*$" },
14
+ "type": { "type": "string", "pattern": "^[a-z][a-z0-9_:.\\/-]*$" }
15
+ },
16
+ "additionalProperties": false
17
+ },
18
+ {
19
+ "type": "object",
20
+ "required": ["kind", "value"],
21
+ "properties": {
22
+ "kind": { "const": "const" },
23
+ "value": { "type": "string", "minLength": 1 },
24
+ "type": { "type": "string", "pattern": "^[a-z][a-z0-9_:.\\/-]*$" }
25
+ },
26
+ "additionalProperties": false
27
+ },
28
+ {
29
+ "type": "object",
30
+ "required": ["kind", "value"],
31
+ "properties": {
32
+ "kind": { "const": "number" },
33
+ "value": { "type": "number" },
34
+ "unit": { "type": "string", "pattern": "^[a-z][a-z0-9_:.\\/-]*$" }
35
+ },
36
+ "additionalProperties": false
37
+ },
38
+ {
39
+ "type": "object",
40
+ "required": ["kind", "value", "unit"],
41
+ "properties": {
42
+ "kind": { "const": "duration" },
43
+ "value": { "type": "number", "minimum": 0 },
44
+ "unit": {
45
+ "type": "string",
46
+ "enum": ["ms", "s", "m", "h", "d", "w"]
47
+ }
48
+ },
49
+ "additionalProperties": false
50
+ },
51
+ {
52
+ "type": "object",
53
+ "required": ["kind", "value"],
54
+ "properties": {
55
+ "kind": { "const": "timestamp" },
56
+ "value": { "type": "string" }
57
+ },
58
+ "additionalProperties": false
59
+ },
60
+ {
61
+ "type": "object",
62
+ "required": ["kind", "start", "end"],
63
+ "properties": {
64
+ "kind": { "const": "interval" },
65
+ "start": { "type": "string" },
66
+ "end": { "type": "string" }
67
+ },
68
+ "additionalProperties": false
69
+ }
70
+ ]
71
+ },
72
+ "logicAtom": {
73
+ "type": "object",
74
+ "required": ["kind", "name", "args"],
75
+ "properties": {
76
+ "kind": { "const": "atom" },
77
+ "namespace": { "type": "string", "pattern": "^[a-z][a-z0-9_:.\\/-]*$" },
78
+ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_:.\\/-]*$" },
79
+ "args": {
80
+ "type": "array",
81
+ "maxItems": 8,
82
+ "items": { "$ref": "#/$defs/logicTerm" }
83
+ },
84
+ "polarity": { "enum": ["positive", "negative"] },
85
+ "closedWorld": { "type": "boolean" }
86
+ },
87
+ "additionalProperties": false
88
+ },
89
+ "logicExpression": {
90
+ "oneOf": [
91
+ { "$ref": "#/$defs/logicAtom" },
92
+ {
93
+ "type": "object",
94
+ "required": ["kind", "items"],
95
+ "properties": {
96
+ "kind": { "enum": ["all", "any"] },
97
+ "items": {
98
+ "type": "array",
99
+ "minItems": 1,
100
+ "maxItems": 32,
101
+ "items": { "$ref": "#/$defs/logicExpression" }
102
+ }
103
+ },
104
+ "additionalProperties": false
105
+ },
106
+ {
107
+ "type": "object",
108
+ "required": ["kind", "item"],
109
+ "properties": {
110
+ "kind": { "const": "not" },
111
+ "item": { "$ref": "#/$defs/logicAtom" }
112
+ },
113
+ "additionalProperties": false
114
+ },
115
+ {
116
+ "type": "object",
117
+ "required": ["kind", "operator", "left", "right"],
118
+ "properties": {
119
+ "kind": { "const": "compare" },
120
+ "operator": { "enum": ["eq", "neq", "lt", "lte", "gt", "gte"] },
121
+ "left": { "$ref": "#/$defs/logicTerm" },
122
+ "right": { "$ref": "#/$defs/logicTerm" }
123
+ },
124
+ "additionalProperties": false
125
+ },
126
+ {
127
+ "type": "object",
128
+ "required": ["kind", "atom", "operator", "value"],
129
+ "properties": {
130
+ "kind": { "const": "count" },
131
+ "atom": { "$ref": "#/$defs/logicAtom" },
132
+ "operator": { "enum": ["eq", "neq", "lt", "lte", "gt", "gte"] },
133
+ "value": { "type": "integer", "minimum": 0 }
134
+ },
135
+ "additionalProperties": false
136
+ },
137
+ {
138
+ "type": "object",
139
+ "required": ["kind", "relation", "left", "right"],
140
+ "properties": {
141
+ "kind": { "const": "temporal" },
142
+ "relation": {
143
+ "enum": [
144
+ "before",
145
+ "after",
146
+ "during",
147
+ "overlaps",
148
+ "starts",
149
+ "finishes"
150
+ ]
151
+ },
152
+ "left": { "$ref": "#/$defs/logicTerm" },
153
+ "right": { "$ref": "#/$defs/logicTerm" }
154
+ },
155
+ "additionalProperties": false
156
+ }
157
+ ]
158
+ },
159
+ "logicRule": {
160
+ "type": "object",
161
+ "required": ["version", "kind", "modality"],
162
+ "properties": {
163
+ "version": { "const": "kibi.logic.v1" },
164
+ "kind": { "enum": ["atom", "rule", "constraint"] },
165
+ "modality": {
166
+ "enum": ["assert", "deny", "oblige", "permit", "forbid"]
167
+ },
168
+ "head": { "$ref": "#/$defs/logicAtom" },
169
+ "body": { "$ref": "#/$defs/logicExpression" },
170
+ "variables": {
171
+ "type": "array",
172
+ "maxItems": 32,
173
+ "items": {
174
+ "type": "object",
175
+ "required": ["name", "type"],
176
+ "properties": {
177
+ "name": { "type": "string", "pattern": "^[A-Z][A-Za-z0-9_]*$" },
178
+ "type": {
179
+ "type": "string",
180
+ "pattern": "^[a-z][a-z0-9_:.\\/-]*$"
181
+ },
182
+ "quantifier": { "enum": ["forall", "exists"] }
183
+ },
184
+ "additionalProperties": false
185
+ }
186
+ },
187
+ "exceptions": {
188
+ "type": "array",
189
+ "maxItems": 16,
190
+ "items": { "$ref": "#/$defs/logicExpression" }
191
+ },
192
+ "scope": {
193
+ "type": "object",
194
+ "properties": {
195
+ "authority": { "type": "string" },
196
+ "name": { "type": "string" },
197
+ "tags": { "type": "array", "items": { "type": "string" } }
198
+ },
199
+ "additionalProperties": false
200
+ },
201
+ "validFrom": { "type": "string" },
202
+ "validTo": { "type": "string" },
203
+ "ruleSchemaId": { "type": "string", "minLength": 1 }
204
+ },
205
+ "additionalProperties": false
206
+ }
207
+ },
5
208
  "properties": {
6
209
  "id": { "type": "string" },
7
210
  "title": { "type": "string" },
@@ -38,12 +241,80 @@
38
241
  "severity": { "type": "string" },
39
242
  "links": { "type": "array", "items": { "type": "string" } },
40
243
  "text_ref": { "type": "string" },
244
+ "semantic_text": {
245
+ "type": "string",
246
+ "description": "Requirement-only authored prose whose exact UTF-8 bytes anchor the semantic inventory without replacing text_ref evidence."
247
+ },
41
248
  "logic_claims": {
42
249
  "type": "array",
43
250
  "minItems": 1,
44
251
  "uniqueItems": true,
45
252
  "items": { "type": "string", "pattern": "^CLAIM-[A-F0-9]{16}$" }
46
253
  },
254
+ "semantic_clauses": {
255
+ "type": "array",
256
+ "minItems": 1,
257
+ "items": { "type": "string", "minLength": 1 }
258
+ },
259
+ "semantic_inventory_version": {
260
+ "type": "string",
261
+ "const": "kibi.semantic-inventory.v1"
262
+ },
263
+ "semantic_source_field": {
264
+ "type": "string",
265
+ "enum": ["semantic_text", "text_ref", "title"]
266
+ },
267
+ "semantic_source_hash": {
268
+ "type": "string",
269
+ "pattern": "^[a-f0-9]{64}$"
270
+ },
271
+ "semantic_inventory": {
272
+ "type": "array",
273
+ "items": {
274
+ "type": "object",
275
+ "required": ["claim_key", "claim_text", "role", "status", "span"],
276
+ "properties": {
277
+ "claim_key": { "type": "string", "pattern": "^CLAIM-[A-F0-9]{16}$" },
278
+ "claim_text": { "type": "string", "minLength": 1 },
279
+ "role": {
280
+ "type": "string",
281
+ "enum": [
282
+ "normative",
283
+ "definition",
284
+ "descriptive",
285
+ "condition",
286
+ "exception",
287
+ "rationale",
288
+ "example",
289
+ "subjective"
290
+ ]
291
+ },
292
+ "status": {
293
+ "type": "string",
294
+ "enum": [
295
+ "modeled",
296
+ "ambiguous",
297
+ "ontology_gap",
298
+ "nonlogical",
299
+ "missing"
300
+ ]
301
+ },
302
+ "span": {
303
+ "type": "object",
304
+ "required": ["start", "end"],
305
+ "properties": {
306
+ "start": { "type": "integer", "minimum": 0 },
307
+ "end": { "type": "integer", "minimum": 0 }
308
+ },
309
+ "additionalProperties": false
310
+ },
311
+ "semantic_key": { "type": "string" },
312
+ "payload_hash": { "type": "string" },
313
+ "reason": { "type": "string" }
314
+ },
315
+ "additionalProperties": false
316
+ }
317
+ },
47
318
  "sourceFile": { "type": "string" },
48
319
  "granularity_reason": {
49
320
  "type": "string",
@@ -73,6 +344,63 @@
73
344
  "type": "string",
74
345
  "enum": ["internal", "consumer"]
75
346
  },
347
+ "verification_receipts": {
348
+ "type": "array",
349
+ "maxItems": 50,
350
+ "items": {
351
+ "type": "object",
352
+ "required": [
353
+ "version",
354
+ "receipt_id",
355
+ "test_id",
356
+ "runner",
357
+ "command",
358
+ "scope",
359
+ "outcome",
360
+ "code_snapshot",
361
+ "environment_hash",
362
+ "started_at",
363
+ "finished_at",
364
+ "artifact_digest"
365
+ ],
366
+ "properties": {
367
+ "version": {
368
+ "type": "string",
369
+ "const": "kibi.verification-receipt.v1"
370
+ },
371
+ "receipt_id": {
372
+ "type": "string",
373
+ "pattern": "^VR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$"
374
+ },
375
+ "test_id": { "type": "string", "minLength": 1 },
376
+ "runner": { "type": "string", "minLength": 1 },
377
+ "command": { "type": "string", "minLength": 1 },
378
+ "scope": {
379
+ "type": "string",
380
+ "enum": ["unit", "integration", "end_to_end"]
381
+ },
382
+ "outcome": {
383
+ "type": "string",
384
+ "enum": ["passed", "failed", "errored", "cancelled", "skipped"]
385
+ },
386
+ "code_snapshot": {
387
+ "type": "string",
388
+ "pattern": "^[a-f0-9]{64}$"
389
+ },
390
+ "environment_hash": {
391
+ "type": "string",
392
+ "pattern": "^[a-f0-9]{64}$"
393
+ },
394
+ "started_at": { "type": "string", "minLength": 1 },
395
+ "finished_at": { "type": "string", "minLength": 1 },
396
+ "artifact_digest": {
397
+ "type": "string",
398
+ "pattern": "^[a-f0-9]{64}$"
399
+ }
400
+ },
401
+ "additionalProperties": false
402
+ }
403
+ },
76
404
  "type": {
77
405
  "type": "string",
78
406
  "enum": [
@@ -94,7 +422,9 @@
94
422
  "observation",
95
423
  "meta",
96
424
  "predicate_schema",
97
- "predicate"
425
+ "predicate",
426
+ "rule_schema",
427
+ "rule"
98
428
  ]
99
429
  },
100
430
  "subject_key": { "type": "string" },
@@ -134,7 +464,14 @@
134
464
  },
135
465
  "aliases": { "type": "array", "items": { "type": "string" } },
136
466
  "examples": { "type": "array", "items": { "type": "string" } },
137
- "predicate_args": { "type": "array", "items": { "type": "string" } }
467
+ "predicate_args": { "type": "array", "items": { "type": "string" } },
468
+ "rule_ir": { "$ref": "#/$defs/logicRule" },
469
+ "rule_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
470
+ "rule_schema_id": { "type": "string", "minLength": 1 },
471
+ "rule_name": { "type": "string", "minLength": 1 },
472
+ "semantic_key": { "type": "string", "pattern": "^SEM-[A-F0-9]{24}$" },
473
+ "claim_span_start": { "type": "integer", "minimum": 0 },
474
+ "claim_span_end": { "type": "integer", "minimum": 0 }
138
475
  },
139
476
  "required": [
140
477
  "id",
@@ -168,11 +505,46 @@
168
505
  "not": {
169
506
  "anyOf": [
170
507
  { "required": ["verification_scope"] },
171
- { "required": ["verification_perspective"] }
508
+ { "required": ["verification_perspective"] },
509
+ { "required": ["verification_receipts"] }
172
510
  ]
173
511
  }
174
512
  }
175
513
  },
514
+ {
515
+ "if": { "required": ["verification_receipts"] },
516
+ "then": { "required": ["verification_scope"] }
517
+ },
518
+ {
519
+ "if": {
520
+ "properties": {
521
+ "type": { "const": "fact" },
522
+ "fact_kind": { "const": "rule_schema" }
523
+ },
524
+ "required": ["type", "fact_kind"]
525
+ },
526
+ "then": {
527
+ "required": ["rule_name", "argument_names", "argument_types"]
528
+ }
529
+ },
530
+ {
531
+ "if": {
532
+ "properties": {
533
+ "type": { "const": "fact" },
534
+ "fact_kind": { "const": "rule" }
535
+ },
536
+ "required": ["type", "fact_kind"]
537
+ },
538
+ "then": {
539
+ "required": [
540
+ "rule_ir",
541
+ "rule_hash",
542
+ "rule_schema_id",
543
+ "rule_name",
544
+ "semantic_key"
545
+ ]
546
+ }
547
+ },
176
548
  {
177
549
  "if": {
178
550
  "properties": { "type": { "const": "fact" } }
@@ -207,7 +579,32 @@
207
579
  { "required": ["argument_descriptions"] },
208
580
  { "required": ["aliases"] },
209
581
  { "required": ["examples"] },
210
- { "required": ["predicate_args"] }
582
+ { "required": ["predicate_args"] },
583
+ { "required": ["rule_ir"] },
584
+ { "required": ["rule_hash"] },
585
+ { "required": ["rule_schema_id"] },
586
+ { "required": ["rule_name"] },
587
+ { "required": ["semantic_key"] },
588
+ { "required": ["claim_span_start"] },
589
+ { "required": ["claim_span_end"] }
590
+ ]
591
+ }
592
+ }
593
+ },
594
+ {
595
+ "if": {
596
+ "properties": { "type": { "const": "req" } }
597
+ },
598
+ "then": {},
599
+ "else": {
600
+ "not": {
601
+ "anyOf": [
602
+ { "required": ["semantic_inventory"] },
603
+ { "required": ["semantic_clauses"] },
604
+ { "required": ["semantic_text"] },
605
+ { "required": ["semantic_inventory_version"] },
606
+ { "required": ["semantic_source_field"] },
607
+ { "required": ["semantic_source_hash"] }
211
608
  ]
212
609
  }
213
610
  }
@@ -21,5 +21,5 @@ export interface KibiImpactDiagnostic extends QualityDiagnostic {
21
21
  * files and manifest freshness. It only evaluates explicit predicates recorded in
22
22
  * `KibiImpactEvidence`.
23
23
  */
24
- export declare function collectStagedKibiDiagnostics(evidence: KibiImpactEvidence): KibiImpactDiagnostic[];
24
+ export declare function collectStagedKibiDiagnostics(evidence: KibiImpactEvidence, symbolsManifestPath?: string): KibiImpactDiagnostic[];
25
25
  //# sourceMappingURL=staged-diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staged-diagnostics.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAIL,KAAK,kBAAkB,EAIxB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAC9B,8BAA8B,GAC9B,wBAAwB,GACxB,8BAA8B,GAC9B,+BAA+B,GAC/B,iCAAiC,GACjC,oCAAoC,GACpC,gCAAgC,GAChC,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,yBAAyB,GACzB,wCAAwC,CAAC;AAE7C,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,uDAAuD;IACvD,EAAE,EAAE,sBAAsB,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxC,iEAAiE;IACjE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,gDAAgD;IAChD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AA4DD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,GAC3B,oBAAoB,EAAE,CAoCxB"}
1
+ {"version":3,"file":"staged-diagnostics.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAGL,KAAK,kBAAkB,EAIxB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,MAAM,sBAAsB,GAC9B,8BAA8B,GAC9B,wBAAwB,GACxB,8BAA8B,GAC9B,+BAA+B,GAC/B,iCAAiC,GACjC,oCAAoC,GACpC,gCAAgC,GAChC,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,yBAAyB,GACzB,wCAAwC,CAAC;AAE7C,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,uDAAuD;IACvD,EAAE,EAAE,sBAAsB,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxC,iEAAiE;IACjE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,gDAAgD;IAChD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAgED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,EAC5B,mBAAmB,GAAE,MAAmC,GACvD,oBAAoB,EAAE,CA8CxB"}
@@ -1,8 +1,14 @@
1
- import { KIBI_STAGED_IMPACT_EVIDENCE_DOC, KIBI_SYMBOLS_MANIFEST_PATH, KIBI_SYMBOL_COORDINATES_PATH, getBehaviorSourcePaths, getMissingBehaviorSourcePaths, hasOverrideRationale, } from "./evidence-model.js";
1
+ import * as path from "node:path";
2
+ import { KIBI_STAGED_IMPACT_EVIDENCE_DOC, KIBI_SYMBOLS_MANIFEST_PATH, getBehaviorSourcePaths, getMissingBehaviorSourcePaths, hasOverrideRationale, } from "./evidence-model.js";
3
+ function deriveCoordinatesPath(symbolsManifestPath) {
4
+ return path
5
+ .join(path.dirname(symbolsManifestPath), "symbol-coordinates.yaml")
6
+ .replace(/\\/g, "/");
7
+ }
2
8
  function formatFileList(paths) {
3
9
  return paths.join(", ");
4
10
  }
5
- function createMissingEvidenceDiagnostic(paths) {
11
+ function createMissingEvidenceDiagnostic(paths, symbolsManifestPath, coordinatesPath) {
6
12
  return {
7
13
  id: "kibi_impact_evidence_missing",
8
14
  severity: "error",
@@ -11,19 +17,19 @@ function createMissingEvidenceDiagnostic(paths) {
11
17
  files: [...paths],
12
18
  docs: [KIBI_STAGED_IMPACT_EVIDENCE_DOC],
13
19
  message: `Behavior-changing staged files are missing staged Kibi impact evidence (see ${KIBI_STAGED_IMPACT_EVIDENCE_DOC}): ${formatFileList(paths)}`,
14
- suggestion: `Query Kibi via MCP before deciding. MCP writes update KB state but do not stage tracked evidence; also stage requirement/scenario/test/fact/symbol markdown, authored ${KIBI_SYMBOLS_MANIFEST_PATH} metadata, or refreshed ${KIBI_SYMBOL_COORDINATES_PATH}. Re-run kibi check --staged after staging tracked evidence.`,
20
+ suggestion: `Query Kibi via MCP before deciding. MCP writes update KB state but do not stage tracked evidence; also stage requirement/scenario/test/fact/symbol markdown, authored ${symbolsManifestPath} metadata, or refreshed ${coordinatesPath}. Re-run kibi check --staged after staging tracked evidence.`,
15
21
  };
16
22
  }
17
- function createSymbolsManifestStaleDiagnostic(paths) {
23
+ function createSymbolsManifestStaleDiagnostic(paths, symbolsManifestPath, coordinatesPath) {
18
24
  return {
19
25
  id: "symbols_manifest_stale",
20
26
  severity: "error",
21
27
  blocking: true,
22
28
  category: "symbol",
23
- files: [KIBI_SYMBOL_COORDINATES_PATH, ...paths],
29
+ files: [coordinatesPath, ...paths],
24
30
  docs: [KIBI_STAGED_IMPACT_EVIDENCE_DOC],
25
- message: `${KIBI_SYMBOL_COORDINATES_PATH} is stale or missing for staged source files: ${formatFileList(paths)}`,
26
- suggestion: `Run kibi sync --refresh-symbol-coordinates && git add ${KIBI_SYMBOL_COORDINATES_PATH} ${KIBI_SYMBOLS_MANIFEST_PATH}, then re-run kibi check --staged.`,
31
+ message: `${coordinatesPath} is stale or missing for staged source files: ${formatFileList(paths)}`,
32
+ suggestion: `Run kibi sync --refresh-symbol-coordinates && git add ${coordinatesPath} ${symbolsManifestPath}, then re-run kibi check --staged.`,
27
33
  };
28
34
  }
29
35
  function createMissingOverrideRationaleDiagnostic(evidence) {
@@ -49,8 +55,9 @@ function createMissingOverrideRationaleDiagnostic(evidence) {
49
55
  * files and manifest freshness. It only evaluates explicit predicates recorded in
50
56
  * `KibiImpactEvidence`.
51
57
  */
52
- export function collectStagedKibiDiagnostics(evidence) {
58
+ export function collectStagedKibiDiagnostics(evidence, symbolsManifestPath = KIBI_SYMBOLS_MANIFEST_PATH) {
53
59
  const diagnostics = [];
60
+ const coordinatesPath = evidence.symbolsManifest.path || deriveCoordinatesPath(symbolsManifestPath);
54
61
  if (evidence.mode.kind === "no_impact_override" &&
55
62
  !hasOverrideRationale(evidence)) {
56
63
  diagnostics.push(createMissingOverrideRationaleDiagnostic(evidence));
@@ -58,11 +65,11 @@ export function collectStagedKibiDiagnostics(evidence) {
58
65
  if ((evidence.symbolsManifest.state === "stale" ||
59
66
  evidence.symbolsManifest.state === "missing") &&
60
67
  evidence.symbolsManifest.sourcePaths.length > 0) {
61
- diagnostics.push(createSymbolsManifestStaleDiagnostic([...evidence.symbolsManifest.sourcePaths].sort()));
68
+ diagnostics.push(createSymbolsManifestStaleDiagnostic([...evidence.symbolsManifest.sourcePaths].sort(), symbolsManifestPath, coordinatesPath));
62
69
  }
63
70
  const missingBehaviorPaths = getMissingBehaviorSourcePaths(evidence);
64
71
  if (missingBehaviorPaths.length > 0) {
65
- diagnostics.push(createMissingEvidenceDiagnostic(missingBehaviorPaths));
72
+ diagnostics.push(createMissingEvidenceDiagnostic(missingBehaviorPaths, symbolsManifestPath, coordinatesPath));
66
73
  }
67
74
  if (evidence.mode.kind === "no_impact_override" &&
68
75
  evidence.mode.override.sourcePaths.length === 0 &&
@@ -48,7 +48,7 @@ export const KIBI_IMPACT_DIAGNOSTICS = {
48
48
  id: "kibi_impact_evidence_missing",
49
49
  title: "Behavior edit requires staged Kibi impact evidence",
50
50
  resolution: [
51
- "Query Kibi via MCP first: use kb_search for discovery, then kb_query for exact follow-up.",
51
+ "Query Kibi via visible MCP tools or the trusted project-local CLI (peer surfaces): use kb_search for discovery, then kb_query for exact follow-up.",
52
52
  "MCP writes update KB state but do not stage tracked evidence; also stage related KB entity markdown, authored documentation/symbols.yaml metadata, or refreshed documentation/symbol-coordinates.yaml.",
53
53
  "Re-run or let the hook run kibi check --staged.",
54
54
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"staged-symbols-manifest.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-symbols-manifest.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+BlD,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA2TD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,+BAA+B,CAmFlC;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE;IACpE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,qCAAqC,CAmExC"}
1
+ {"version":3,"file":"staged-symbols-manifest.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-symbols-manifest.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0ClD,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAkTD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,+BAA+B,CAgGlC;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE;IACpE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,qCAAqC,CAmExC"}
@@ -3,7 +3,18 @@ import * as path from "node:path";
3
3
  import { extractManifestSymbolRecordsString, } from "../extractors/manifest.js";
4
4
  import { mergeCoordinatesWithManifest, readCoordinateArtifact, } from "../extractors/symbol-coordinates.js";
5
5
  import { analyzeSourceText } from "../extractors/symbols-coordinator.js";
6
+ import { isCoarseGranularityReason } from "../public/symbol-granularity.js";
6
7
  import { resolveSymbolsManifestPaths } from "../utils/manifest-paths.js";
8
+ /**
9
+ * True when a manifest record documents coarse file/module-level coverage using
10
+ * a canonical granularity reason that legitimately carries no generated
11
+ * per-symbol coordinates. Such records do not participate in coordinate
12
+ * freshness comparison. `legacy-link` records remain coordinate-bearing, and
13
+ * unknown or malformed reasons cannot bypass freshness checks.
14
+ */
15
+ function isDocumentedCoarseRecord(record) {
16
+ return isCoarseGranularityReason(record.granularity_reason);
17
+ }
7
18
  function toRepoRelativePath(absoluteOrRelativePath) {
8
19
  if (!path.isAbsolute(absoluteOrRelativePath)) {
9
20
  return absoluteOrRelativePath.replace(/\\/g, "/");
@@ -97,15 +108,10 @@ function normalizeRelationships(relationships) {
97
108
  })
98
109
  .sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)));
99
110
  }
100
- function normalizeManifestSymbolsForSourceFile(records, sourceFile, expectedTitles) {
111
+ function normalizeManifestSymbolsForSourceFile(records, sourceFile) {
101
112
  return records
102
113
  .filter((record) => {
103
- const title = typeof record.title === "string" ? record.title : null;
104
- const isDocumentedModuleSymbol = typeof record.granularity_reason === "string" &&
105
- record.granularity_reason.length > 0;
106
- if (title !== null &&
107
- isDocumentedModuleSymbol &&
108
- !expectedTitles.has(title)) {
114
+ if (isDocumentedCoarseRecord(record)) {
109
115
  return false;
110
116
  }
111
117
  const recordSource = typeof record.sourceFile === "string"
@@ -234,9 +240,21 @@ export function assessStagedSymbolsManifest(options) {
234
240
  const requiredRefreshPaths = [];
235
241
  const freshPaths = new Set();
236
242
  for (const sourceFile of sourceFiles) {
243
+ const manifestRecordsForFile = (stagedManifestRecords ?? []).filter((record) => {
244
+ const recordSource = typeof record.sourceFile === "string"
245
+ ? record.sourceFile
246
+ : typeof record.source === "string"
247
+ ? record.source
248
+ : null;
249
+ return recordSource === sourceFile.path;
250
+ });
251
+ const coarseCovered = manifestRecordsForFile.length > 0 &&
252
+ manifestRecordsForFile.every(isDocumentedCoarseRecord);
253
+ if (coarseCovered) {
254
+ continue;
255
+ }
237
256
  const expectedSymbols = normalizeExpectedSymbolsForStagedFile(sourceFile);
238
- const expectedTitles = new Set(expectedSymbols.map((symbol) => symbol.title));
239
- const baselineSymbols = normalizeManifestSymbolsForSourceFile(baselineMergedRecords, sourceFile.path, expectedTitles);
257
+ const baselineSymbols = normalizeManifestSymbolsForSourceFile(baselineMergedRecords, sourceFile.path);
240
258
  if (signaturesEqual(expectedSymbols, baselineSymbols)) {
241
259
  continue;
242
260
  }
@@ -244,7 +262,7 @@ export function assessStagedSymbolsManifest(options) {
244
262
  if (!stagedCoordinatesFile || stagedCoordinateArtifact === null) {
245
263
  continue;
246
264
  }
247
- const stagedSymbols = normalizeManifestSymbolsForSourceFile(stagedMergedRecords, sourceFile.path, expectedTitles);
265
+ const stagedSymbols = normalizeManifestSymbolsForSourceFile(stagedMergedRecords, sourceFile.path);
248
266
  if (signaturesEqual(expectedSymbols, stagedSymbols)) {
249
267
  freshPaths.add(sourceFile.path);
250
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"temp-kb.d.ts","sourceRoot":"","sources":["../../src/traceability/temp-kb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,GACpD,IAAI,CAEN;AAuLD,iBAAe,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6C7E;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAkBrE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BlE"}
1
+ {"version":3,"file":"temp-kb.d.ts","sourceRoot":"","sources":["../../src/traceability/temp-kb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,GACpD,IAAI,CAEN;AAoPD,iBAAe,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6C7E;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAkBrE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BlE"}