@milehimikey/em 1.7.1 → 1.8.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.
Files changed (112) hide show
  1. package/.claude/skills/event-modeling/SKILL.md +92 -65
  2. package/.claude/skills/event-modeling/reference/conform.md +45 -20
  3. package/.claude/skills/event-modeling/reference/em-dsl.md +120 -55
  4. package/.claude/skills/event-modeling/reference/extract.md +5 -4
  5. package/.claude/skills/event-modeling/reference/implement.md +34 -22
  6. package/.claude/skills/event-modeling/templates/model-readme.md +8 -5
  7. package/.claude/skills/event-modeling/templates/slice.md +19 -5
  8. package/README.md +6 -4
  9. package/dist/catalog/docJoin.d.ts +28 -3
  10. package/dist/catalog/docJoin.js +82 -13
  11. package/dist/catalog/docJoin.js.map +1 -1
  12. package/dist/catalog/docModelConsistencyValidate.d.ts +8 -0
  13. package/dist/catalog/docModelConsistencyValidate.js +335 -0
  14. package/dist/catalog/docModelConsistencyValidate.js.map +1 -0
  15. package/dist/catalog/noteBindingValidate.d.ts +8 -0
  16. package/dist/catalog/noteBindingValidate.js +133 -0
  17. package/dist/catalog/noteBindingValidate.js.map +1 -0
  18. package/dist/catalog/pages.js +3 -3
  19. package/dist/catalog/pages.js.map +1 -1
  20. package/dist/catalog/sliceDoc.d.ts +14 -0
  21. package/dist/catalog/sliceDoc.js +22 -0
  22. package/dist/catalog/sliceDoc.js.map +1 -1
  23. package/dist/catalog/sliceReadyValidate.d.ts +18 -0
  24. package/dist/catalog/sliceReadyValidate.js +25 -1
  25. package/dist/catalog/sliceReadyValidate.js.map +1 -1
  26. package/dist/cli/agentsMd.d.ts +15 -0
  27. package/dist/cli/agentsMd.js +72 -0
  28. package/dist/cli/agentsMd.js.map +1 -0
  29. package/dist/cli/conformScope.d.ts +86 -0
  30. package/dist/cli/conformScope.js +156 -0
  31. package/dist/cli/conformScope.js.map +1 -0
  32. package/dist/cli/contract.d.ts +7 -0
  33. package/dist/cli/contract.js +27 -0
  34. package/dist/cli/contract.js.map +1 -0
  35. package/dist/cli/coverage.d.ts +69 -0
  36. package/dist/cli/coverage.js +157 -0
  37. package/dist/cli/coverage.js.map +1 -0
  38. package/dist/cli/markImplemented.d.ts +34 -0
  39. package/dist/cli/markImplemented.js +180 -0
  40. package/dist/cli/markImplemented.js.map +1 -0
  41. package/dist/cli/migrateReactionShape.d.ts +62 -0
  42. package/dist/cli/migrateReactionShape.js +283 -0
  43. package/dist/cli/migrateReactionShape.js.map +1 -0
  44. package/dist/cli/sliceIndex.d.ts +49 -0
  45. package/dist/cli/sliceIndex.js +115 -0
  46. package/dist/cli/sliceIndex.js.map +1 -0
  47. package/dist/cli/sliceNew.d.ts +18 -0
  48. package/dist/cli/sliceNew.js +53 -0
  49. package/dist/cli/sliceNew.js.map +1 -0
  50. package/dist/cli/stateFile.d.ts +74 -0
  51. package/dist/cli/stateFile.js +191 -0
  52. package/dist/cli/stateFile.js.map +1 -0
  53. package/dist/cli.js +535 -43
  54. package/dist/cli.js.map +1 -1
  55. package/dist/emit/coverageJson.d.ts +8 -0
  56. package/dist/emit/coverageJson.js +30 -0
  57. package/dist/emit/coverageJson.js.map +1 -0
  58. package/dist/emit/dot.js +41 -10
  59. package/dist/emit/dot.js.map +1 -1
  60. package/dist/emit/json.d.ts +72 -4
  61. package/dist/emit/json.js +73 -4
  62. package/dist/emit/json.js.map +1 -1
  63. package/dist/emit/validateJson.d.ts +52 -0
  64. package/dist/emit/validateJson.js +120 -0
  65. package/dist/emit/validateJson.js.map +1 -0
  66. package/dist/mcp/main.d.ts +2 -0
  67. package/dist/mcp/main.js +20 -0
  68. package/dist/mcp/main.js.map +1 -0
  69. package/dist/mcp/server.d.ts +11 -0
  70. package/dist/mcp/server.js +260 -0
  71. package/dist/mcp/server.js.map +1 -0
  72. package/dist/model/model.d.ts +30 -1
  73. package/dist/model/model.js +26 -0
  74. package/dist/model/model.js.map +1 -1
  75. package/dist/model/rules.d.ts +114 -0
  76. package/dist/model/rules.js +116 -4
  77. package/dist/model/rules.js.map +1 -1
  78. package/dist/model/validate.js +83 -7
  79. package/dist/model/validate.js.map +1 -1
  80. package/dist/parser/ast.d.ts +41 -0
  81. package/dist/parser/lexer.d.ts +16 -0
  82. package/dist/parser/lexer.js +44 -2
  83. package/dist/parser/lexer.js.map +1 -1
  84. package/dist/parser/parser.js +340 -20
  85. package/dist/parser/parser.js.map +1 -1
  86. package/dist/render/drawNotes.js +8 -1
  87. package/dist/render/drawNotes.js.map +1 -1
  88. package/dist/render/render.js +85 -17
  89. package/dist/render/render.js.map +1 -1
  90. package/dist/render/serve.d.ts +4 -0
  91. package/dist/render/serve.js +23 -227
  92. package/dist/render/serve.js.map +1 -1
  93. package/dist/render/sliceStatus.d.ts +1 -1
  94. package/dist/render/sliceStatus.js +35 -6
  95. package/dist/render/sliceStatus.js.map +1 -1
  96. package/dist/render/viewerHtml.d.ts +1 -0
  97. package/dist/render/viewerHtml.js +5 -0
  98. package/dist/render/viewerHtml.js.map +1 -0
  99. package/dist/render/watch.d.ts +10 -0
  100. package/dist/render/watch.js +29 -0
  101. package/dist/render/watch.js.map +1 -1
  102. package/dist/templates.d.ts +19 -0
  103. package/dist/templates.js +169 -0
  104. package/dist/templates.js.map +1 -1
  105. package/dist/util/markers.d.ts +13 -0
  106. package/dist/util/markers.js +30 -0
  107. package/dist/util/markers.js.map +1 -0
  108. package/dist/util/walkDir.d.ts +10 -1
  109. package/dist/util/walkDir.js +11 -7
  110. package/dist/util/walkDir.js.map +1 -1
  111. package/package.json +12 -3
  112. package/.claude/skills/event-modeling/templates/live.html +0 -105
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@ export interface RuleDef {
5
5
  title: string;
6
6
  /** Static, generation-ready fix hint (e.g. "Split them into separate slices."). */
7
7
  fix: string;
8
+ /** Fixed-vocabulary string for a `.event-modeling.md` Usage log line (docs/usage-data.md) —
9
+ * lowercase, terse, log-line-friendly. Deliberately not required to match `title` verbatim:
10
+ * these strings predate `title` in several cases and are load-bearing in already-committed
11
+ * usage-log lines, so changing one silently splits one count into two in the aggregation
12
+ * recipe (docs/usage-data.md). Never reword an existing value for that reason. */
13
+ usageCategory: string;
8
14
  /** docs/validation.md H3 anchor this rule nests under, when one exists and covers >1 rule. */
9
15
  docAnchor?: string;
10
16
  /** True for the 4 `--slice-ready`-only codes (src/catalog/sliceReadyValidate.ts, MIL-87). */
@@ -15,201 +21,306 @@ export declare const RULES: {
15
21
  readonly severity: "error";
16
22
  readonly title: "Band collision";
17
23
  readonly fix: "Split the colliding elements into separate slices.";
24
+ readonly usageCategory: "same-band collision";
18
25
  };
19
26
  readonly "ui-shares-slice-with-automation": {
20
27
  readonly severity: "warning";
21
28
  readonly title: "`ui` shares slice with a reaction";
22
29
  readonly fix: "Move the `ui` to the slice that displays the read model, or drop it.";
30
+ readonly usageCategory: "ui shares slice with reaction";
23
31
  };
24
32
  readonly "both-ends-of-a-flow/command-no-event": {
25
33
  readonly severity: "warning";
26
34
  readonly title: "Command without event";
27
35
  readonly fix: "Add the event this command records.";
36
+ readonly usageCategory: "command produces no event";
28
37
  readonly docAnchor: "both-ends-of-a-flow";
29
38
  };
30
39
  readonly "view-no-source": {
31
40
  readonly severity: "warning";
32
41
  readonly title: "Read model without source";
33
42
  readonly fix: "Add `from \"Event\"`, or place the view in a slice with an event.";
43
+ readonly usageCategory: "read model has no source";
34
44
  };
35
45
  readonly "view-from-unresolved": {
36
46
  readonly severity: "error";
37
47
  readonly title: "Unknown event source";
38
48
  readonly fix: "Fix the `from` reference to name an existing event.";
49
+ readonly usageCategory: "view references unknown event";
39
50
  };
40
51
  readonly "view-from-future-event": {
41
52
  readonly severity: "error";
42
53
  readonly title: "Backward timeline (view reads a future event)";
43
54
  readonly fix: "Move the source to a later `view X again` instance.";
55
+ readonly usageCategory: "event feeds earlier view instance";
44
56
  };
45
57
  readonly "fields-completeness/view-field-no-source": {
46
58
  readonly severity: "warning";
47
59
  readonly title: "View field with no source";
48
60
  readonly fix: "Add the field to a source event, or remove it from the view.";
61
+ readonly usageCategory: "view field no source";
49
62
  readonly docAnchor: "fields-completeness";
50
63
  };
51
64
  readonly "fields-completeness/event-field-no-source": {
52
65
  readonly severity: "warning";
53
66
  readonly title: "Event field not from a command";
54
67
  readonly fix: "Add the field to a command in the slice, or remove it from the event.";
68
+ readonly usageCategory: "event field not provided by command";
55
69
  readonly docAnchor: "fields-completeness";
56
70
  };
57
71
  readonly "reaction-from-unresolved": {
58
72
  readonly severity: "error";
59
73
  readonly title: "Unknown read-model source";
60
74
  readonly fix: "Project the event into a view first, or fix the `from` reference.";
75
+ readonly usageCategory: "reaction references unknown read model";
61
76
  };
62
77
  readonly "reaction-from-future-view": {
63
78
  readonly severity: "error";
64
79
  readonly title: "Backward timeline (reaction reads a future view)";
65
80
  readonly fix: "Declare the view in or before the reaction's slice.";
81
+ readonly usageCategory: "reaction reads view before it exists";
66
82
  };
67
83
  readonly "view-again-without-earlier": {
68
84
  readonly severity: "error";
69
85
  readonly title: "`again` without an earlier declaration";
70
86
  readonly fix: "Declare the view plainly the first time it appears.";
87
+ readonly usageCategory: "view again with no earlier declaration";
71
88
  };
72
89
  readonly "both-ends-of-a-flow/command-untriggered": {
73
90
  readonly severity: "warning";
74
91
  readonly title: "Command with no trigger";
75
92
  readonly fix: "Add a `ui` or the reaction that issues it, both in this slice.";
93
+ readonly usageCategory: "command nothing triggers";
76
94
  readonly docAnchor: "both-ends-of-a-flow";
77
95
  };
78
96
  readonly "both-ends-of-a-flow/reaction-no-command": {
79
97
  readonly severity: "warning";
80
98
  readonly title: "Reaction with no command";
81
99
  readonly fix: "Add the command it triggers, in this slice, or an explicit arrow to one.";
100
+ readonly usageCategory: "reaction triggers no command";
82
101
  readonly docAnchor: "both-ends-of-a-flow";
83
102
  };
84
103
  readonly "both-ends-of-a-flow/view-unconsumed": {
85
104
  readonly severity: "warning";
86
105
  readonly title: "Read model with no consumer";
87
106
  readonly fix: "Add a `ui` or reaction that consumes it, or drop this instance.";
107
+ readonly usageCategory: "read model has no consumer";
88
108
  readonly docAnchor: "both-ends-of-a-flow";
89
109
  };
90
110
  readonly "both-ends-of-a-flow/event-unread": {
91
111
  readonly severity: "warning";
92
112
  readonly title: "Event nobody reads";
93
113
  readonly fix: "Project it into a view, or reconsider recording it.";
114
+ readonly usageCategory: "event not read by any read model";
94
115
  readonly docAnchor: "both-ends-of-a-flow";
95
116
  };
96
117
  readonly "both-ends-of-a-flow/event-unproduced": {
97
118
  readonly severity: "warning";
98
119
  readonly title: "Event with no producing command";
99
120
  readonly fix: "Add the command that records it, or an explicit arrow from one.";
121
+ readonly usageCategory: "event has no producing command";
100
122
  readonly docAnchor: "both-ends-of-a-flow";
101
123
  };
102
124
  readonly "both-ends-of-a-flow/ui-unbacked": {
103
125
  readonly severity: "warning";
104
126
  readonly title: "`ui` with no read model or command";
105
127
  readonly fix: "Add a `view` it displays, or the command it triggers.";
128
+ readonly usageCategory: "ui with no view or command";
106
129
  readonly docAnchor: "both-ends-of-a-flow";
107
130
  };
108
131
  readonly "arrow-backward": {
109
132
  readonly severity: "error";
110
133
  readonly title: "Backward arrow";
111
134
  readonly fix: "Restructure so the target comes later.";
135
+ readonly usageCategory: "arrow points backward";
112
136
  };
113
137
  readonly "connection-legality/illegal-pair": {
114
138
  readonly severity: "error";
115
139
  readonly title: "Illegal connection";
116
140
  readonly fix: "Only ui→command→event→view→ui and view→reaction→command are legal — the message names the missing step.";
141
+ readonly usageCategory: "illegal connection";
117
142
  readonly docAnchor: "connection-legality";
118
143
  };
119
144
  readonly "arrow-unresolved-source": {
120
145
  readonly severity: "error";
121
146
  readonly title: "Arrow source unresolved";
122
147
  readonly fix: "Fix the arrow's source name.";
148
+ readonly usageCategory: "arrow endpoint unresolved";
123
149
  };
124
150
  readonly "arrow-unresolved-target": {
125
151
  readonly severity: "error";
126
152
  readonly title: "Arrow target unresolved";
127
153
  readonly fix: "Fix the arrow's target name.";
154
+ readonly usageCategory: "arrow endpoint unresolved";
128
155
  };
129
156
  readonly "open-issue": {
130
157
  readonly severity: "warning";
131
158
  readonly title: "Open issue";
132
159
  readonly fix: "Resolve the question, then remove the `issue` clause.";
160
+ readonly usageCategory: "open issue";
133
161
  };
134
162
  readonly "duplicate-name": {
135
163
  readonly severity: "warning";
136
164
  readonly title: "Duplicate name";
137
165
  readonly fix: "Rename one of the duplicates.";
166
+ readonly usageCategory: "duplicate name referenced";
138
167
  };
139
168
  readonly "translation-name-collision": {
140
169
  readonly severity: "warning";
141
170
  readonly title: "Translation name reused for different producers";
142
171
  readonly fix: "Use a distinct name per producer to avoid confusion.";
172
+ readonly usageCategory: "translation name collision";
143
173
  };
144
174
  readonly "duplicate-type-name": {
145
175
  readonly severity: "warning";
146
176
  readonly title: "Duplicate type name";
147
177
  readonly fix: "Rename one of the duplicate `type` declarations.";
178
+ readonly usageCategory: "duplicate type name";
179
+ };
180
+ readonly "tag-composite-unknown-field": {
181
+ readonly severity: "error";
182
+ readonly title: "Composite tag names an unknown field";
183
+ readonly fix: "Fix the field name, or add it to the event's fields.";
184
+ readonly usageCategory: "composite tag references unknown field";
185
+ };
186
+ readonly "tag-duplicate-key": {
187
+ readonly severity: "error";
188
+ readonly title: "Duplicate tag key";
189
+ readonly fix: "Rename one of the tags so every key on the event is unique.";
190
+ readonly usageCategory: "duplicate tag key";
148
191
  };
149
192
  readonly "type-cycle": {
150
193
  readonly severity: "error";
151
194
  readonly title: "Cyclic type reference";
152
195
  readonly fix: "Break the cycle, or route the self/mutual reference through an array.";
196
+ readonly usageCategory: "type cycle";
153
197
  };
154
198
  readonly "lineage-ref-malformed": {
155
199
  readonly severity: "error";
156
200
  readonly title: "Malformed lineage ref";
157
201
  readonly fix: "Fix the value to `<slice-key>@v<N>`, or remove it.";
202
+ readonly usageCategory: "lineage ref malformed";
158
203
  readonly docAnchor: "lineage";
159
204
  };
160
205
  readonly "lineage-ref-cycle": {
161
206
  readonly severity: "error";
162
207
  readonly title: "Lineage cycle";
163
208
  readonly fix: "Break the cycle — a slice can't be its own ancestor.";
209
+ readonly usageCategory: "lineage ref cycle";
164
210
  readonly docAnchor: "lineage";
165
211
  };
166
212
  readonly "lineage-forward-dangling": {
167
213
  readonly severity: "error";
168
214
  readonly title: "Dangling forward lineage ref";
169
215
  readonly fix: "Fix the key, or remove the stale successor.";
216
+ readonly usageCategory: "lineage forward dangling";
170
217
  readonly docAnchor: "lineage";
171
218
  };
172
219
  readonly "lineage-version-impossible": {
173
220
  readonly severity: "error";
174
221
  readonly title: "Impossible lineage version";
175
222
  readonly fix: "Fix the referenced version, or ratify the target slice first.";
223
+ readonly usageCategory: "lineage version impossible";
176
224
  readonly docAnchor: "lineage";
177
225
  };
178
226
  readonly "frontmatter-coherence-implemented-without-link": {
179
227
  readonly severity: "warning";
180
228
  readonly title: "Implemented without a link";
181
229
  readonly fix: "Add `implementedIn` once the slice ships.";
230
+ readonly usageCategory: "implemented without link";
182
231
  readonly docAnchor: "frontmatter-coherence";
183
232
  };
184
233
  readonly "binding-missing-file": {
185
234
  readonly severity: "warning";
186
235
  readonly title: "Doc binding points at a missing file";
187
236
  readonly fix: "Create the slice doc, or fix the `note` path.";
237
+ readonly usageCategory: "doc binding points at missing file";
188
238
  };
189
239
  readonly "frontmatter-invalid": {
190
240
  readonly severity: "warning";
191
241
  readonly title: "Invalid or missing frontmatter";
192
242
  readonly fix: "Add the required frontmatter keys, or add a frontmatter block.";
243
+ readonly usageCategory: "invalid or missing frontmatter";
244
+ };
245
+ readonly "note-binding-extra": {
246
+ readonly severity: "warning";
247
+ readonly title: "Extra doc-binding note, ignored";
248
+ readonly fix: "Remove the note, or point it at the slice's actual bound doc.";
249
+ readonly usageCategory: "extra doc-binding note ignored";
250
+ readonly docAnchor: "note-binding-mismatch";
251
+ };
252
+ readonly "note-binding-dangling": {
253
+ readonly severity: "warning";
254
+ readonly title: "Dangling cross-slice note";
255
+ readonly fix: "Create the doc at that path, or fix/remove the note.";
256
+ readonly usageCategory: "cross-slice note points nowhere";
257
+ readonly docAnchor: "note-binding-mismatch";
258
+ };
259
+ readonly "note-binding-unusable": {
260
+ readonly severity: "warning";
261
+ readonly title: "Cross-slice note to a doc with unusable frontmatter";
262
+ readonly fix: "Fix that doc's frontmatter, or fix/remove the note.";
263
+ readonly usageCategory: "cross-slice note targets unusable doc";
264
+ readonly docAnchor: "note-binding-mismatch";
265
+ };
266
+ readonly "note-binding-unratified": {
267
+ readonly severity: "warning";
268
+ readonly title: "Unratified cross-slice note";
269
+ readonly fix: "Add `covers: <this-slice-key>` to that doc's frontmatter, or correct the note's path.";
270
+ readonly usageCategory: "cross-slice note not ratified by target doc";
271
+ readonly docAnchor: "note-binding-mismatch";
272
+ };
273
+ readonly "doc-model-pattern-mismatch": {
274
+ readonly severity: "warning";
275
+ readonly title: "Doc/model pattern mismatch";
276
+ readonly fix: "Fix the doc's `pattern:` frontmatter to match the model, or restructure the slice to match the doc.";
277
+ readonly usageCategory: "doc pattern disagrees with model";
278
+ readonly docAnchor: "doc-model-consistency";
279
+ };
280
+ readonly "doc-model-element-not-in-model": {
281
+ readonly severity: "warning";
282
+ readonly title: "Doc names an element the model doesn't have";
283
+ readonly fix: "Add the element to the model, or fix/remove it in the doc.";
284
+ readonly usageCategory: "doc element missing from model";
285
+ readonly docAnchor: "doc-model-consistency";
286
+ };
287
+ readonly "doc-model-element-not-in-doc": {
288
+ readonly severity: "warning";
289
+ readonly title: "Model element the doc doesn't mention";
290
+ readonly fix: "Add the matching marker to the doc, or remove the element from the model.";
291
+ readonly usageCategory: "model element missing from doc";
292
+ readonly docAnchor: "doc-model-consistency";
293
+ };
294
+ readonly "doc-model-field-mismatch": {
295
+ readonly severity: "warning";
296
+ readonly title: "Doc/model field mismatch";
297
+ readonly fix: "Reconcile the field table with the model's fields — names and types.";
298
+ readonly usageCategory: "doc field table disagrees with model";
299
+ readonly docAnchor: "doc-model-consistency";
193
300
  };
194
301
  readonly "duplicate-slice-name": {
195
302
  readonly severity: "warning";
196
303
  readonly title: "Duplicate slice name";
197
304
  readonly fix: "Rename the slice so its export key is unique.";
305
+ readonly usageCategory: "duplicate slice name";
198
306
  };
199
307
  readonly "duplicate-element-ref": {
200
308
  readonly severity: "warning";
201
309
  readonly title: "Duplicate element ref";
202
310
  readonly fix: "Rename the element so its export ref is unique.";
311
+ readonly usageCategory: "duplicate element ref";
203
312
  };
204
313
  readonly "duplicate-type-ref": {
205
314
  readonly severity: "warning";
206
315
  readonly title: "Duplicate type ref";
207
316
  readonly fix: "Rename the type so its export ref is unique.";
317
+ readonly usageCategory: "duplicate type ref";
208
318
  };
209
319
  readonly "slice-ready-unknown-slice": {
210
320
  readonly severity: "error";
211
321
  readonly title: "Unknown --slice-ready key";
212
322
  readonly fix: "Pass a valid export key that exists in this model.";
323
+ readonly usageCategory: "slice-ready key does not exist";
213
324
  readonly docAnchor: "slice-readiness";
214
325
  readonly optIn: true;
215
326
  };
@@ -217,6 +328,7 @@ export declare const RULES: {
217
328
  readonly severity: "warning";
218
329
  readonly title: "No doc bound";
219
330
  readonly fix: "Bind a slice doc via `note \"slices/<key>.md\"`.";
331
+ readonly usageCategory: "slice-ready slice has no doc bound";
220
332
  readonly docAnchor: "slice-readiness";
221
333
  readonly optIn: true;
222
334
  };
@@ -224,6 +336,7 @@ export declare const RULES: {
224
336
  readonly severity: "warning";
225
337
  readonly title: "Not ready-to-implement";
226
338
  readonly fix: "Set `status: ready-to-implement`.";
339
+ readonly usageCategory: "slice-ready slice not ready-to-implement";
227
340
  readonly docAnchor: "slice-readiness";
228
341
  readonly optIn: true;
229
342
  };
@@ -231,6 +344,7 @@ export declare const RULES: {
231
344
  readonly severity: "warning";
232
345
  readonly title: "Unchecked Open Questions";
233
346
  readonly fix: "Check off the remaining Open Questions.";
347
+ readonly usageCategory: "slice-ready slice has unchecked open questions";
234
348
  readonly docAnchor: "slice-readiness";
235
349
  readonly optIn: true;
236
350
  };