jev-recipes 0.2.0 → 0.3.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 (400) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/README.md +62 -89
  3. package/dist/catalog/generated/details/action-scope.json +43 -0
  4. package/dist/catalog/generated/details/answer-consistency.json +46 -0
  5. package/dist/catalog/generated/details/answer-coverage.json +66 -0
  6. package/dist/catalog/generated/details/answer-invalidation.json +43 -0
  7. package/dist/catalog/generated/details/answer-relevance.json +45 -0
  8. package/dist/catalog/generated/details/answerability.json +55 -0
  9. package/dist/catalog/generated/details/argument-fit.json +41 -0
  10. package/dist/catalog/generated/details/attempted-step.json +39 -0
  11. package/dist/catalog/generated/details/audience-fit.json +45 -0
  12. package/dist/catalog/generated/details/cache-match.json +41 -0
  13. package/dist/catalog/generated/details/cancellation-check.json +40 -0
  14. package/dist/catalog/generated/details/certainty-match.json +45 -0
  15. package/dist/catalog/generated/details/change-meaning.json +43 -0
  16. package/dist/catalog/generated/details/citation-match.json +64 -0
  17. package/dist/catalog/generated/details/citation-needed.json +39 -0
  18. package/dist/catalog/generated/details/clarify.json +64 -0
  19. package/dist/catalog/generated/details/confirmation-match.json +40 -0
  20. package/dist/catalog/generated/details/context-role.json +45 -0
  21. package/dist/catalog/generated/details/correction-target.json +68 -0
  22. package/dist/catalog/generated/details/document-role.json +68 -0
  23. package/dist/catalog/generated/details/draft-compare.json +44 -0
  24. package/dist/catalog/generated/details/evidence-conflict.json +46 -0
  25. package/dist/catalog/generated/details/evidence-novelty.json +55 -0
  26. package/dist/catalog/generated/details/fact-stability.json +39 -0
  27. package/dist/catalog/generated/details/failure-kind.json +68 -0
  28. package/dist/catalog/generated/details/feedback-kind.json +69 -0
  29. package/dist/catalog/generated/details/field-select.json +68 -0
  30. package/dist/catalog/generated/details/followup-link.json +68 -0
  31. package/dist/catalog/generated/details/freshness-needed.json +38 -0
  32. package/dist/catalog/generated/details/frustration-signal.json +39 -0
  33. package/dist/catalog/generated/details/handoff.json +75 -0
  34. package/dist/catalog/generated/details/incident-match.json +68 -0
  35. package/dist/catalog/generated/details/instruction-fit.json +40 -0
  36. package/dist/catalog/generated/details/intent-change.json +43 -0
  37. package/dist/catalog/generated/details/issue-impact.json +42 -0
  38. package/dist/catalog/generated/details/memory-relation.json +46 -0
  39. package/dist/catalog/generated/details/memory-scope.json +42 -0
  40. package/dist/catalog/generated/details/memory-value.json +46 -0
  41. package/dist/catalog/generated/details/passage-duplicate.json +42 -0
  42. package/dist/catalog/generated/details/preference-kind.json +45 -0
  43. package/dist/catalog/generated/details/promise-check.json +42 -0
  44. package/dist/catalog/generated/details/query-equivalence.json +43 -0
  45. package/dist/catalog/generated/details/query-specificity.json +39 -0
  46. package/dist/catalog/generated/details/reference-resolve.json +69 -0
  47. package/dist/catalog/generated/details/repeated-attempt.json +43 -0
  48. package/dist/catalog/generated/details/reply-template-match.json +68 -0
  49. package/dist/catalog/generated/details/rerank.json +55 -0
  50. package/dist/catalog/generated/details/resolution-check.json +40 -0
  51. package/dist/catalog/generated/details/response-needed.json +42 -0
  52. package/dist/catalog/generated/details/result-outcome.json +42 -0
  53. package/dist/catalog/generated/details/result-usefulness.json +45 -0
  54. package/dist/catalog/generated/details/retrieval-needed.json +39 -0
  55. package/dist/catalog/generated/details/route.json +51 -0
  56. package/dist/catalog/generated/details/source-applicability.json +39 -0
  57. package/dist/catalog/generated/details/step-complete.json +39 -0
  58. package/dist/catalog/generated/details/step-progress.json +43 -0
  59. package/dist/catalog/generated/details/summary-coverage.json +66 -0
  60. package/dist/catalog/generated/details/ticket-match.json +43 -0
  61. package/dist/catalog/generated/details/tone-check.json +63 -0
  62. package/dist/catalog/generated/details/tool-fit.json +40 -0
  63. package/dist/catalog/generated/details/topic-shift.json +43 -0
  64. package/dist/catalog/generated/details/troubleshooting-fit.json +40 -0
  65. package/dist/catalog/generated/details/turn-intent.json +69 -0
  66. package/dist/catalog/generated/details/urgency-signal.json +39 -0
  67. package/dist/catalog/generated/details/verify.json +66 -0
  68. package/dist/catalog/generated/details/workaround-fit.json +40 -0
  69. package/dist/catalog/generated/loaders.d.ts +3 -0
  70. package/dist/catalog/generated/loaders.js +68 -0
  71. package/dist/catalog/generated/metadata.d.ts +2 -0
  72. package/dist/catalog/generated/metadata.js +1115 -0
  73. package/dist/catalog/generated/names.d.ts +1 -0
  74. package/dist/catalog/generated/names.js +69 -0
  75. package/dist/catalog/index.d.ts +9 -1764
  76. package/dist/catalog/index.js +8 -24
  77. package/dist/catalog/runner.d.ts +4 -0
  78. package/dist/catalog/runner.js +5 -0
  79. package/dist/catalog/schema.d.ts +51 -50
  80. package/dist/catalog/schema.js +2 -2
  81. package/dist/catalog/search.d.ts +3 -0
  82. package/dist/catalog/search.js +60 -0
  83. package/dist/cli/index.js +17 -8
  84. package/dist/cli/schema.d.ts +151 -167
  85. package/dist/cli/schema.js +37 -4
  86. package/dist/recipes/action-scope/schema.d.ts +3 -3
  87. package/dist/recipes/answer-consistency/schema.d.ts +3 -3
  88. package/dist/recipes/answer-coverage/schema.d.ts +6 -6
  89. package/dist/recipes/answerability/schema.d.ts +6 -6
  90. package/dist/recipes/cancellation-check/schema.d.ts +3 -3
  91. package/dist/recipes/certainty-match/schema.d.ts +3 -3
  92. package/dist/recipes/citation-needed/schema.d.ts +3 -3
  93. package/dist/recipes/clarify/schema.d.ts +3 -3
  94. package/dist/recipes/document-role/schema.d.ts +6 -6
  95. package/dist/recipes/evidence-conflict/schema.d.ts +3 -3
  96. package/dist/recipes/feedback-kind/schema.d.ts +3 -3
  97. package/dist/recipes/freshness-needed/schema.d.ts +3 -3
  98. package/dist/recipes/handoff/schema.d.ts +3 -3
  99. package/dist/recipes/passage-duplicate/schema.d.ts +3 -3
  100. package/dist/recipes/preference-kind/schema.d.ts +3 -3
  101. package/dist/recipes/promise-check/schema.d.ts +3 -3
  102. package/dist/recipes/query-equivalence/schema.d.ts +3 -3
  103. package/dist/recipes/result-outcome/schema.d.ts +3 -3
  104. package/dist/recipes/retrieval-needed/schema.d.ts +3 -3
  105. package/dist/recipes/step-progress/schema.d.ts +3 -3
  106. package/dist/recipes/summary-coverage/schema.d.ts +3 -3
  107. package/dist/recipes/ticket-match/schema.d.ts +3 -3
  108. package/dist/recipes/turn-intent/schema.d.ts +12 -12
  109. package/dist/src/index.d.ts +117 -117
  110. package/dist/src/index.js +51 -50
  111. package/dist/src/schema.d.ts +5 -0
  112. package/dist/src/schema.js +2 -0
  113. package/package.json +200 -191
  114. package/dist/catalog/groups/answers.d.ts +0 -565
  115. package/dist/catalog/groups/answers.js +0 -82
  116. package/dist/catalog/groups/conversation.d.ts +0 -608
  117. package/dist/catalog/groups/conversation.js +0 -90
  118. package/dist/catalog/groups/knowledge.d.ts +0 -522
  119. package/dist/catalog/groups/knowledge.js +0 -82
  120. package/dist/catalog/groups/retrieval.d.ts +0 -664
  121. package/dist/catalog/groups/retrieval.js +0 -106
  122. package/dist/catalog/groups/support.d.ts +0 -522
  123. package/dist/catalog/groups/support.js +0 -82
  124. package/dist/catalog/groups/workflow.d.ts +0 -623
  125. package/dist/catalog/groups/workflow.js +0 -98
  126. package/dist/catalog/recipes.d.ts +0 -3488
  127. package/dist/catalog/recipes.js +0 -14
  128. package/dist/examples/support/index.d.ts +0 -1
  129. package/dist/examples/support/index.js +0 -37
  130. package/dist/examples/support/schema.d.ts +0 -566
  131. package/dist/examples/support/schema.js +0 -76
  132. package/dist/examples/support/workflow.d.ts +0 -3
  133. package/dist/examples/support/workflow.js +0 -85
  134. package/dist/recipes/action-scope/metadata.d.ts +0 -8
  135. package/dist/recipes/action-scope/metadata.js +0 -10
  136. package/dist/recipes/answer-consistency/metadata.d.ts +0 -8
  137. package/dist/recipes/answer-consistency/metadata.js +0 -10
  138. package/dist/recipes/answer-coverage/metadata.d.ts +0 -8
  139. package/dist/recipes/answer-coverage/metadata.js +0 -11
  140. package/dist/recipes/answer-invalidation/metadata.d.ts +0 -8
  141. package/dist/recipes/answer-invalidation/metadata.js +0 -10
  142. package/dist/recipes/answer-relevance/metadata.d.ts +0 -8
  143. package/dist/recipes/answer-relevance/metadata.js +0 -10
  144. package/dist/recipes/answerability/metadata.d.ts +0 -8
  145. package/dist/recipes/answerability/metadata.js +0 -11
  146. package/dist/recipes/argument-fit/metadata.d.ts +0 -8
  147. package/dist/recipes/argument-fit/metadata.js +0 -10
  148. package/dist/recipes/attempted-step/metadata.d.ts +0 -8
  149. package/dist/recipes/attempted-step/metadata.js +0 -10
  150. package/dist/recipes/audience-fit/metadata.d.ts +0 -8
  151. package/dist/recipes/audience-fit/metadata.js +0 -10
  152. package/dist/recipes/cache-match/metadata.d.ts +0 -8
  153. package/dist/recipes/cache-match/metadata.js +0 -10
  154. package/dist/recipes/cancellation-check/metadata.d.ts +0 -8
  155. package/dist/recipes/cancellation-check/metadata.js +0 -10
  156. package/dist/recipes/certainty-match/metadata.d.ts +0 -8
  157. package/dist/recipes/certainty-match/metadata.js +0 -10
  158. package/dist/recipes/change-meaning/metadata.d.ts +0 -8
  159. package/dist/recipes/change-meaning/metadata.js +0 -10
  160. package/dist/recipes/citation-match/metadata.d.ts +0 -9
  161. package/dist/recipes/citation-match/metadata.js +0 -12
  162. package/dist/recipes/citation-needed/metadata.d.ts +0 -8
  163. package/dist/recipes/citation-needed/metadata.js +0 -10
  164. package/dist/recipes/clarify/metadata.d.ts +0 -8
  165. package/dist/recipes/clarify/metadata.js +0 -11
  166. package/dist/recipes/confirmation-match/metadata.d.ts +0 -8
  167. package/dist/recipes/confirmation-match/metadata.js +0 -10
  168. package/dist/recipes/context-role/metadata.d.ts +0 -8
  169. package/dist/recipes/context-role/metadata.js +0 -10
  170. package/dist/recipes/correction-target/metadata.d.ts +0 -8
  171. package/dist/recipes/correction-target/metadata.js +0 -11
  172. package/dist/recipes/document-role/metadata.d.ts +0 -8
  173. package/dist/recipes/document-role/metadata.js +0 -10
  174. package/dist/recipes/draft-compare/metadata.d.ts +0 -8
  175. package/dist/recipes/draft-compare/metadata.js +0 -10
  176. package/dist/recipes/evidence-conflict/metadata.d.ts +0 -8
  177. package/dist/recipes/evidence-conflict/metadata.js +0 -10
  178. package/dist/recipes/evidence-novelty/metadata.d.ts +0 -8
  179. package/dist/recipes/evidence-novelty/metadata.js +0 -11
  180. package/dist/recipes/fact-stability/metadata.d.ts +0 -8
  181. package/dist/recipes/fact-stability/metadata.js +0 -10
  182. package/dist/recipes/failure-kind/metadata.d.ts +0 -8
  183. package/dist/recipes/failure-kind/metadata.js +0 -11
  184. package/dist/recipes/feedback-kind/metadata.d.ts +0 -8
  185. package/dist/recipes/feedback-kind/metadata.js +0 -10
  186. package/dist/recipes/field-select/metadata.d.ts +0 -8
  187. package/dist/recipes/field-select/metadata.js +0 -11
  188. package/dist/recipes/followup-link/metadata.d.ts +0 -8
  189. package/dist/recipes/followup-link/metadata.js +0 -11
  190. package/dist/recipes/freshness-needed/metadata.d.ts +0 -8
  191. package/dist/recipes/freshness-needed/metadata.js +0 -10
  192. package/dist/recipes/frustration-signal/metadata.d.ts +0 -8
  193. package/dist/recipes/frustration-signal/metadata.js +0 -10
  194. package/dist/recipes/handoff/metadata.d.ts +0 -8
  195. package/dist/recipes/handoff/metadata.js +0 -11
  196. package/dist/recipes/incident-match/metadata.d.ts +0 -8
  197. package/dist/recipes/incident-match/metadata.js +0 -11
  198. package/dist/recipes/instruction-fit/metadata.d.ts +0 -8
  199. package/dist/recipes/instruction-fit/metadata.js +0 -10
  200. package/dist/recipes/intent-change/metadata.d.ts +0 -8
  201. package/dist/recipes/intent-change/metadata.js +0 -10
  202. package/dist/recipes/issue-impact/metadata.d.ts +0 -8
  203. package/dist/recipes/issue-impact/metadata.js +0 -10
  204. package/dist/recipes/memory-relation/metadata.d.ts +0 -8
  205. package/dist/recipes/memory-relation/metadata.js +0 -10
  206. package/dist/recipes/memory-scope/metadata.d.ts +0 -8
  207. package/dist/recipes/memory-scope/metadata.js +0 -10
  208. package/dist/recipes/memory-value/metadata.d.ts +0 -8
  209. package/dist/recipes/memory-value/metadata.js +0 -10
  210. package/dist/recipes/passage-duplicate/metadata.d.ts +0 -8
  211. package/dist/recipes/passage-duplicate/metadata.js +0 -10
  212. package/dist/recipes/preference-kind/metadata.d.ts +0 -8
  213. package/dist/recipes/preference-kind/metadata.js +0 -10
  214. package/dist/recipes/promise-check/metadata.d.ts +0 -8
  215. package/dist/recipes/promise-check/metadata.js +0 -10
  216. package/dist/recipes/query-equivalence/metadata.d.ts +0 -8
  217. package/dist/recipes/query-equivalence/metadata.js +0 -10
  218. package/dist/recipes/query-specificity/metadata.d.ts +0 -8
  219. package/dist/recipes/query-specificity/metadata.js +0 -10
  220. package/dist/recipes/reference-resolve/metadata.d.ts +0 -8
  221. package/dist/recipes/reference-resolve/metadata.js +0 -11
  222. package/dist/recipes/repeated-attempt/metadata.d.ts +0 -8
  223. package/dist/recipes/repeated-attempt/metadata.js +0 -10
  224. package/dist/recipes/reply-template-match/metadata.d.ts +0 -8
  225. package/dist/recipes/reply-template-match/metadata.js +0 -11
  226. package/dist/recipes/rerank/metadata.d.ts +0 -8
  227. package/dist/recipes/rerank/metadata.js +0 -11
  228. package/dist/recipes/resolution-check/metadata.d.ts +0 -8
  229. package/dist/recipes/resolution-check/metadata.js +0 -10
  230. package/dist/recipes/response-needed/metadata.d.ts +0 -8
  231. package/dist/recipes/response-needed/metadata.js +0 -10
  232. package/dist/recipes/result-outcome/metadata.d.ts +0 -8
  233. package/dist/recipes/result-outcome/metadata.js +0 -10
  234. package/dist/recipes/result-usefulness/metadata.d.ts +0 -8
  235. package/dist/recipes/result-usefulness/metadata.js +0 -10
  236. package/dist/recipes/retrieval-needed/metadata.d.ts +0 -8
  237. package/dist/recipes/retrieval-needed/metadata.js +0 -10
  238. package/dist/recipes/route/metadata.d.ts +0 -8
  239. package/dist/recipes/route/metadata.js +0 -11
  240. package/dist/recipes/source-applicability/metadata.d.ts +0 -8
  241. package/dist/recipes/source-applicability/metadata.js +0 -10
  242. package/dist/recipes/step-complete/metadata.d.ts +0 -8
  243. package/dist/recipes/step-complete/metadata.js +0 -10
  244. package/dist/recipes/step-progress/metadata.d.ts +0 -8
  245. package/dist/recipes/step-progress/metadata.js +0 -10
  246. package/dist/recipes/summary-coverage/metadata.d.ts +0 -8
  247. package/dist/recipes/summary-coverage/metadata.js +0 -11
  248. package/dist/recipes/ticket-match/metadata.d.ts +0 -8
  249. package/dist/recipes/ticket-match/metadata.js +0 -10
  250. package/dist/recipes/tone-check/metadata.d.ts +0 -8
  251. package/dist/recipes/tone-check/metadata.js +0 -11
  252. package/dist/recipes/tool-fit/metadata.d.ts +0 -8
  253. package/dist/recipes/tool-fit/metadata.js +0 -10
  254. package/dist/recipes/topic-shift/metadata.d.ts +0 -8
  255. package/dist/recipes/topic-shift/metadata.js +0 -10
  256. package/dist/recipes/troubleshooting-fit/metadata.d.ts +0 -8
  257. package/dist/recipes/troubleshooting-fit/metadata.js +0 -10
  258. package/dist/recipes/turn-intent/metadata.d.ts +0 -8
  259. package/dist/recipes/turn-intent/metadata.js +0 -10
  260. package/dist/recipes/urgency-signal/metadata.d.ts +0 -8
  261. package/dist/recipes/urgency-signal/metadata.js +0 -10
  262. package/dist/recipes/verify/metadata.d.ts +0 -8
  263. package/dist/recipes/verify/metadata.js +0 -11
  264. package/dist/recipes/workaround-fit/metadata.d.ts +0 -8
  265. package/dist/recipes/workaround-fit/metadata.js +0 -10
  266. package/examples/support/README.md +0 -60
  267. package/examples/support/demo.json +0 -156
  268. package/recipes/README.md +0 -128
  269. package/recipes/action-scope/README.md +0 -49
  270. package/recipes/answer-consistency/README.md +0 -50
  271. package/recipes/answer-coverage/README.md +0 -60
  272. package/recipes/answer-invalidation/README.md +0 -50
  273. package/recipes/answer-relevance/README.md +0 -49
  274. package/recipes/answerability/README.md +0 -54
  275. package/recipes/argument-fit/README.md +0 -51
  276. package/recipes/attempted-step/README.md +0 -48
  277. package/recipes/audience-fit/README.md +0 -50
  278. package/recipes/cache-match/README.md +0 -51
  279. package/recipes/cancellation-check/README.md +0 -50
  280. package/recipes/certainty-match/README.md +0 -49
  281. package/recipes/change-meaning/README.md +0 -49
  282. package/recipes/citation-match/README.md +0 -51
  283. package/recipes/citation-needed/README.md +0 -49
  284. package/recipes/clarify/README.md +0 -61
  285. package/recipes/confirmation-match/README.md +0 -49
  286. package/recipes/context-role/README.md +0 -49
  287. package/recipes/correction-target/README.md +0 -52
  288. package/recipes/document-role/README.md +0 -51
  289. package/recipes/draft-compare/README.md +0 -54
  290. package/recipes/evidence-conflict/README.md +0 -51
  291. package/recipes/evidence-novelty/README.md +0 -56
  292. package/recipes/fact-stability/README.md +0 -47
  293. package/recipes/failure-kind/README.md +0 -52
  294. package/recipes/feedback-kind/README.md +0 -51
  295. package/recipes/field-select/README.md +0 -53
  296. package/recipes/followup-link/README.md +0 -52
  297. package/recipes/freshness-needed/README.md +0 -46
  298. package/recipes/frustration-signal/README.md +0 -47
  299. package/recipes/handoff/README.md +0 -56
  300. package/recipes/incident-match/README.md +0 -52
  301. package/recipes/instruction-fit/README.md +0 -49
  302. package/recipes/intent-change/README.md +0 -50
  303. package/recipes/issue-impact/README.md +0 -48
  304. package/recipes/memory-relation/README.md +0 -52
  305. package/recipes/memory-scope/README.md +0 -50
  306. package/recipes/memory-value/README.md +0 -50
  307. package/recipes/passage-duplicate/README.md +0 -49
  308. package/recipes/preference-kind/README.md +0 -48
  309. package/recipes/promise-check/README.md +0 -48
  310. package/recipes/query-equivalence/README.md +0 -50
  311. package/recipes/query-specificity/README.md +0 -47
  312. package/recipes/reference-resolve/README.md +0 -54
  313. package/recipes/repeated-attempt/README.md +0 -50
  314. package/recipes/reply-template-match/README.md +0 -52
  315. package/recipes/rerank/README.md +0 -55
  316. package/recipes/resolution-check/README.md +0 -49
  317. package/recipes/response-needed/README.md +0 -48
  318. package/recipes/result-outcome/README.md +0 -49
  319. package/recipes/result-usefulness/README.md +0 -49
  320. package/recipes/retrieval-needed/README.md +0 -48
  321. package/recipes/route/README.md +0 -47
  322. package/recipes/source-applicability/README.md +0 -48
  323. package/recipes/step-complete/README.md +0 -48
  324. package/recipes/step-progress/README.md +0 -51
  325. package/recipes/summary-coverage/README.md +0 -60
  326. package/recipes/ticket-match/README.md +0 -50
  327. package/recipes/tone-check/README.md +0 -55
  328. package/recipes/tool-fit/README.md +0 -49
  329. package/recipes/topic-shift/README.md +0 -50
  330. package/recipes/troubleshooting-fit/README.md +0 -49
  331. package/recipes/turn-intent/README.md +0 -52
  332. package/recipes/urgency-signal/README.md +0 -47
  333. package/recipes/verify/README.md +0 -54
  334. package/recipes/workaround-fit/README.md +0 -50
  335. /package/{recipes → dist/recipes}/action-scope/demo.json +0 -0
  336. /package/{recipes → dist/recipes}/answer-consistency/demo.json +0 -0
  337. /package/{recipes → dist/recipes}/answer-coverage/demo.json +0 -0
  338. /package/{recipes → dist/recipes}/answer-invalidation/demo.json +0 -0
  339. /package/{recipes → dist/recipes}/answer-relevance/demo.json +0 -0
  340. /package/{recipes → dist/recipes}/answerability/demo.json +0 -0
  341. /package/{recipes → dist/recipes}/argument-fit/demo.json +0 -0
  342. /package/{recipes → dist/recipes}/attempted-step/demo.json +0 -0
  343. /package/{recipes → dist/recipes}/audience-fit/demo.json +0 -0
  344. /package/{recipes → dist/recipes}/cache-match/demo.json +0 -0
  345. /package/{recipes → dist/recipes}/cancellation-check/demo.json +0 -0
  346. /package/{recipes → dist/recipes}/certainty-match/demo.json +0 -0
  347. /package/{recipes → dist/recipes}/change-meaning/demo.json +0 -0
  348. /package/{recipes → dist/recipes}/citation-match/demo.json +0 -0
  349. /package/{recipes → dist/recipes}/citation-needed/demo.json +0 -0
  350. /package/{recipes → dist/recipes}/clarify/demo.json +0 -0
  351. /package/{recipes → dist/recipes}/confirmation-match/demo.json +0 -0
  352. /package/{recipes → dist/recipes}/context-role/demo.json +0 -0
  353. /package/{recipes → dist/recipes}/correction-target/demo.json +0 -0
  354. /package/{recipes → dist/recipes}/document-role/demo.json +0 -0
  355. /package/{recipes → dist/recipes}/draft-compare/demo.json +0 -0
  356. /package/{recipes → dist/recipes}/evidence-conflict/demo.json +0 -0
  357. /package/{recipes → dist/recipes}/evidence-novelty/demo.json +0 -0
  358. /package/{recipes → dist/recipes}/fact-stability/demo.json +0 -0
  359. /package/{recipes → dist/recipes}/failure-kind/demo.json +0 -0
  360. /package/{recipes → dist/recipes}/feedback-kind/demo.json +0 -0
  361. /package/{recipes → dist/recipes}/field-select/demo.json +0 -0
  362. /package/{recipes → dist/recipes}/followup-link/demo.json +0 -0
  363. /package/{recipes → dist/recipes}/freshness-needed/demo.json +0 -0
  364. /package/{recipes → dist/recipes}/frustration-signal/demo.json +0 -0
  365. /package/{recipes → dist/recipes}/handoff/demo.json +0 -0
  366. /package/{recipes → dist/recipes}/incident-match/demo.json +0 -0
  367. /package/{recipes → dist/recipes}/instruction-fit/demo.json +0 -0
  368. /package/{recipes → dist/recipes}/intent-change/demo.json +0 -0
  369. /package/{recipes → dist/recipes}/issue-impact/demo.json +0 -0
  370. /package/{recipes → dist/recipes}/memory-relation/demo.json +0 -0
  371. /package/{recipes → dist/recipes}/memory-scope/demo.json +0 -0
  372. /package/{recipes → dist/recipes}/memory-value/demo.json +0 -0
  373. /package/{recipes → dist/recipes}/passage-duplicate/demo.json +0 -0
  374. /package/{recipes → dist/recipes}/preference-kind/demo.json +0 -0
  375. /package/{recipes → dist/recipes}/promise-check/demo.json +0 -0
  376. /package/{recipes → dist/recipes}/query-equivalence/demo.json +0 -0
  377. /package/{recipes → dist/recipes}/query-specificity/demo.json +0 -0
  378. /package/{recipes → dist/recipes}/reference-resolve/demo.json +0 -0
  379. /package/{recipes → dist/recipes}/repeated-attempt/demo.json +0 -0
  380. /package/{recipes → dist/recipes}/reply-template-match/demo.json +0 -0
  381. /package/{recipes → dist/recipes}/rerank/demo.json +0 -0
  382. /package/{recipes → dist/recipes}/resolution-check/demo.json +0 -0
  383. /package/{recipes → dist/recipes}/response-needed/demo.json +0 -0
  384. /package/{recipes → dist/recipes}/result-outcome/demo.json +0 -0
  385. /package/{recipes → dist/recipes}/result-usefulness/demo.json +0 -0
  386. /package/{recipes → dist/recipes}/retrieval-needed/demo.json +0 -0
  387. /package/{recipes → dist/recipes}/route/demo.json +0 -0
  388. /package/{recipes → dist/recipes}/source-applicability/demo.json +0 -0
  389. /package/{recipes → dist/recipes}/step-complete/demo.json +0 -0
  390. /package/{recipes → dist/recipes}/step-progress/demo.json +0 -0
  391. /package/{recipes → dist/recipes}/summary-coverage/demo.json +0 -0
  392. /package/{recipes → dist/recipes}/ticket-match/demo.json +0 -0
  393. /package/{recipes → dist/recipes}/tone-check/demo.json +0 -0
  394. /package/{recipes → dist/recipes}/tool-fit/demo.json +0 -0
  395. /package/{recipes → dist/recipes}/topic-shift/demo.json +0 -0
  396. /package/{recipes → dist/recipes}/troubleshooting-fit/demo.json +0 -0
  397. /package/{recipes → dist/recipes}/turn-intent/demo.json +0 -0
  398. /package/{recipes → dist/recipes}/urgency-signal/demo.json +0 -0
  399. /package/{recipes → dist/recipes}/verify/demo.json +0 -0
  400. /package/{recipes → dist/recipes}/workaround-fit/demo.json +0 -0
@@ -0,0 +1,1115 @@
1
+ export const recipeMetadata = [
2
+ {
3
+ id: 'action-scope',
4
+ title: 'Check proposed action scope',
5
+ description: 'Is proposedAction within the work requested in request and constraints?',
6
+ category: 'workflow',
7
+ tags: ['workflow', 'action', 'scope'],
8
+ limitations: [
9
+ 'Assesses semantic scope only. User authorization and access controls must be enforced by the application.',
10
+ ],
11
+ useWhen: 'You need to check whether a proposed action stays within the requested work and constraints.',
12
+ related: [
13
+ {
14
+ id: 'instruction-fit',
15
+ reason: 'Use instruction-fit to decide whether a particular instruction applies.',
16
+ },
17
+ ],
18
+ },
19
+ {
20
+ id: 'answer-consistency',
21
+ title: 'Check answer consistency',
22
+ description: 'Do firstStatement and secondStatement make compatible claims about the same subject and circumstances?',
23
+ category: 'answer-quality',
24
+ tags: ['answer-quality', 'answer', 'consistency', 'rag', 'evidence'],
25
+ limitations: [
26
+ 'Checks semantic consistency between two statements. Exact numeric and date comparisons belong in code.',
27
+ ],
28
+ useWhen: 'You need to check whether two statements agree under the same conditions.',
29
+ related: [
30
+ {
31
+ id: 'verify',
32
+ reason: 'Use verify to assess a claim against evidence rather than another statement.',
33
+ },
34
+ ],
35
+ },
36
+ {
37
+ id: 'answer-coverage',
38
+ title: 'Check answer coverage',
39
+ description: 'Check whether a draft answers each supplied question.',
40
+ category: 'answer-quality',
41
+ tags: ['answer-quality', 'answer', 'coverage', 'rag', 'evidence'],
42
+ limitations: [
43
+ 'Checks supplied question IDs only. It does not extract questions or verify the draft against sources.',
44
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
45
+ ],
46
+ useWhen: 'You have a draft and need to check whether it answers each supplied question.',
47
+ related: [
48
+ {
49
+ id: 'answer-relevance',
50
+ reason: 'Use answer-relevance to assess how directly the draft addresses the overall request.',
51
+ },
52
+ ],
53
+ },
54
+ {
55
+ id: 'answer-invalidation',
56
+ title: 'Check an answer after a source change',
57
+ description: 'Does updatedEvidence still support the entire claim that was based on previousEvidence?',
58
+ category: 'knowledge',
59
+ tags: ['knowledge', 'answer', 'invalidation'],
60
+ limitations: [
61
+ 'Assesses one supplied claim and source revision. It does not monitor changes, compare release dates, or invalidate a cache automatically.',
62
+ ],
63
+ useWhen: 'You need to check whether updated evidence still supports a previously supported claim.',
64
+ related: [
65
+ {
66
+ id: 'cache-match',
67
+ reason: 'Use cache-match to check reuse for a new question when evidence has not changed.',
68
+ },
69
+ ],
70
+ },
71
+ {
72
+ id: 'answer-relevance',
73
+ title: 'Check answer relevance',
74
+ description: 'How directly does draft address request?',
75
+ category: 'answer-quality',
76
+ tags: ['answer-quality', 'answer', 'relevance', 'rag', 'evidence'],
77
+ limitations: [
78
+ 'Relevance does not establish correctness or complete coverage. Use answer-coverage and verify for those decisions.',
79
+ ],
80
+ useWhen: 'You need to check whether a draft stays relevant to the request.',
81
+ related: [
82
+ {
83
+ id: 'answer-coverage',
84
+ reason: 'Use answer-coverage to check separate question parts individually.',
85
+ },
86
+ ],
87
+ },
88
+ {
89
+ id: 'answerability',
90
+ title: 'Check answerability',
91
+ description: 'Decide whether supplied evidence can answer an entire question.',
92
+ category: 'retrieval',
93
+ tags: ['rag', 'abstention', 'evidence'],
94
+ limitations: [
95
+ 'Does not generate an answer or establish source truth.',
96
+ 'Provide 1 to 50 evidence passages with unique IDs; handle empty retrieval in application code.',
97
+ ],
98
+ useWhen: 'You need to know if you have enough evidence and can answer a question.',
99
+ related: [
100
+ {
101
+ id: 'answer-coverage',
102
+ reason: 'Use answer-coverage after drafting to check whether each question was addressed.',
103
+ },
104
+ ],
105
+ },
106
+ {
107
+ id: 'argument-fit',
108
+ title: 'Check argument meaning',
109
+ description: 'Does proposedValue for argument express the intended value in request and context?',
110
+ category: 'workflow',
111
+ tags: ['workflow', 'argument', 'fit'],
112
+ limitations: [
113
+ 'Does not validate schemas, compare identifiers, or enforce authorization. Check those deterministically before acting.',
114
+ ],
115
+ useWhen: 'You need to check whether a proposed argument value matches the user request.',
116
+ related: [
117
+ {
118
+ id: 'tool-fit',
119
+ reason: 'Use tool-fit to check the tool capability before choosing its arguments.',
120
+ },
121
+ ],
122
+ },
123
+ {
124
+ id: 'attempted-step',
125
+ title: 'Check a previously attempted step',
126
+ description: 'Does conversation establish whether the customer already performed step?',
127
+ category: 'support',
128
+ tags: ['support', 'attempted', 'step'],
129
+ limitations: [
130
+ 'Interprets reports of an attempt. It does not verify that the step was completed correctly or repeat the action.',
131
+ ],
132
+ useWhen: 'You need to know whether a customer already tried a troubleshooting step.',
133
+ related: [
134
+ {
135
+ id: 'troubleshooting-fit',
136
+ reason: 'Use troubleshooting-fit to check whether the procedure fits the symptoms.',
137
+ },
138
+ ],
139
+ },
140
+ {
141
+ id: 'audience-fit',
142
+ title: 'Check audience fit',
143
+ description: 'Does the level of explanation in document fit the knowledge and needs explicitly described in audience?',
144
+ category: 'knowledge',
145
+ tags: ['knowledge', 'audience', 'fit'],
146
+ limitations: [
147
+ 'Uses only the supplied audience description. It does not infer ability from identity or rewrite the document.',
148
+ ],
149
+ useWhen: 'You need to check whether a document suits the stated audience knowledge and needs.',
150
+ related: [
151
+ { id: 'tone-check', reason: 'Use tone-check to evaluate specific writing criteria.' },
152
+ ],
153
+ },
154
+ {
155
+ id: 'cache-match',
156
+ title: 'Check a cached answer',
157
+ description: 'Does cachedAnswer address question with the same relevant meaning and conditions as originalQuestion?',
158
+ category: 'retrieval',
159
+ tags: ['retrieval', 'cache', 'match', 'rag', 'evidence'],
160
+ limitations: [
161
+ 'Enforce tenant, permissions, version, and freshness checks in code before calling. A semantic match does not verify the cached answer.',
162
+ ],
163
+ useWhen: 'You want to know whether a saved answer applies to a new question.',
164
+ related: [
165
+ {
166
+ id: 'query-equivalence',
167
+ reason: 'Use query-equivalence to compare questions without assessing a saved answer.',
168
+ },
169
+ ],
170
+ },
171
+ {
172
+ id: 'cancellation-check',
173
+ title: 'Check cancellation intent',
174
+ description: 'Does message ask to cancel, pause, or continue task?',
175
+ category: 'conversation',
176
+ tags: ['conversation', 'cancellation', 'check'],
177
+ limitations: [
178
+ 'Does not stop running work or infer permission to continue from silence. The caller applies the decision.',
179
+ ],
180
+ useWhen: 'You need to detect whether a message asks to stop, pause, or continue a task.',
181
+ related: [
182
+ {
183
+ id: 'intent-change',
184
+ reason: 'Use intent-change to assess broader changes to the current goal.',
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ id: 'certainty-match',
190
+ title: 'Check certainty wording',
191
+ description: 'Does the certainty expressed in draft match assessment?',
192
+ category: 'answer-quality',
193
+ tags: ['answer-quality', 'certainty', 'match', 'rag', 'evidence'],
194
+ limitations: [
195
+ 'Compares wording with a supplied assessment. It does not calibrate probabilities or establish the assessment itself.',
196
+ ],
197
+ useWhen: 'You want the wording of a draft to reflect the certainty of an assessment.',
198
+ related: [
199
+ { id: 'tone-check', reason: 'Use tone-check to evaluate other explicit writing criteria.' },
200
+ ],
201
+ },
202
+ {
203
+ id: 'change-meaning',
204
+ title: 'Assess a text revision',
205
+ description: 'Does the revision from before to after change material meaning, conditions, or obligations?',
206
+ category: 'knowledge',
207
+ tags: ['knowledge', 'change', 'meaning'],
208
+ limitations: [
209
+ 'Compares supplied passages. It does not parse a repository diff or perform exact numeric and date comparisons.',
210
+ ],
211
+ useWhen: 'You need to know whether a revision changes material meaning or obligations.',
212
+ related: [
213
+ {
214
+ id: 'answer-invalidation',
215
+ reason: 'Use answer-invalidation to assess how changed evidence affects a saved claim.',
216
+ },
217
+ ],
218
+ },
219
+ {
220
+ id: 'citation-match',
221
+ title: 'Match claims to citations',
222
+ description: 'Find supplied passages that independently support an entire claim.',
223
+ category: 'answer-quality',
224
+ tags: ['answer-quality', 'citation', 'match', 'rag', 'evidence'],
225
+ limitations: [
226
+ 'Returns passages that independently support the entire claim. Joint support across several individually incomplete passages is not assessed.',
227
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
228
+ ],
229
+ uses: ['verify'],
230
+ useWhen: 'You want to find which supplied passages support an entire claim.',
231
+ related: [
232
+ { id: 'verify', reason: 'Use verify when each claim already has its own paired evidence.' },
233
+ ],
234
+ },
235
+ {
236
+ id: 'citation-needed',
237
+ title: 'Check citation requirements',
238
+ description: 'Do citationRules require evidence for statement?',
239
+ category: 'answer-quality',
240
+ tags: ['answer-quality', 'citation', 'needed', 'rag', 'evidence'],
241
+ limitations: [
242
+ 'Assesses a supplied citation policy; does not find sources or determine whether a statement is true.',
243
+ ],
244
+ useWhen: 'You need to decide whether a statement requires a citation under your rules.',
245
+ related: [
246
+ {
247
+ id: 'citation-match',
248
+ reason: 'Use citation-match to find supporting passages once a citation is needed.',
249
+ },
250
+ ],
251
+ },
252
+ {
253
+ id: 'clarify',
254
+ title: 'Check required information',
255
+ description: 'Identify missing or ambiguous information before proceeding.',
256
+ category: 'conversation',
257
+ tags: ['requirements', 'ambiguity', 'clarification'],
258
+ limitations: [
259
+ 'Checks only the requirements you supply; does not generate follow-up questions.',
260
+ 'Provide 1 to 50 requirements with unique IDs.',
261
+ ],
262
+ useWhen: 'You need to check for missing or ambiguous requirements before proceeding.',
263
+ related: [
264
+ {
265
+ id: 'query-specificity',
266
+ reason: 'Use query-specificity to assess how focused the question is, without a requirements list.',
267
+ },
268
+ ],
269
+ },
270
+ {
271
+ id: 'confirmation-match',
272
+ title: 'Interpret a confirmation',
273
+ description: 'Does response clearly agree to or reject this exact proposal?',
274
+ category: 'conversation',
275
+ tags: ['conversation', 'confirmation', 'match'],
276
+ limitations: [
277
+ 'Interprets language only. Approval identity, authority, scope, expiration, and action permissions remain application checks.',
278
+ ],
279
+ useWhen: 'You need to know whether a response accepts or rejects an exact proposal.',
280
+ related: [
281
+ {
282
+ id: 'cancellation-check',
283
+ reason: 'Use cancellation-check to assess instructions to stop or pause a task.',
284
+ },
285
+ ],
286
+ },
287
+ {
288
+ id: 'context-role',
289
+ title: 'Identify a passage role',
290
+ description: 'What role does passage play in answering question?',
291
+ category: 'retrieval',
292
+ tags: ['retrieval', 'context', 'role', 'rag', 'evidence'],
293
+ limitations: [
294
+ 'Classifies a passage contribution. It does not rank sources or prove the answer is supported.',
295
+ ],
296
+ useWhen: 'You want to identify the role a passage plays in answering a question.',
297
+ related: [{ id: 'rerank', reason: 'Use rerank to select and order passages by relevance.' }],
298
+ },
299
+ {
300
+ id: 'correction-target',
301
+ title: 'Locate a correction target',
302
+ description: 'Which supplied field or statement is message correcting?',
303
+ category: 'conversation',
304
+ tags: ['conversation', 'correction', 'target'],
305
+ limitations: [
306
+ 'Selects one correction target. It does not extract a replacement value or update a record.',
307
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
308
+ ],
309
+ useWhen: 'You need to identify which supplied field or statement a message corrects.',
310
+ related: [
311
+ {
312
+ id: 'reference-resolve',
313
+ reason: 'Use reference-resolve for references that are not corrections.',
314
+ },
315
+ ],
316
+ },
317
+ {
318
+ id: 'document-role',
319
+ title: 'Identify document purpose',
320
+ description: 'What is the primary purpose of document?',
321
+ category: 'knowledge',
322
+ tags: ['knowledge', 'document', 'role'],
323
+ limitations: [
324
+ 'Returns one primary role from the supplied text. It does not read files, split mixed documents, or create an index.',
325
+ ],
326
+ useWhen: 'You need to identify the primary purpose of a document.',
327
+ related: [
328
+ {
329
+ id: 'context-role',
330
+ reason: 'Use context-role to assess how a passage relates to a specific question.',
331
+ },
332
+ ],
333
+ },
334
+ {
335
+ id: 'draft-compare',
336
+ title: 'Compare two drafts',
337
+ description: 'Which draft better satisfies request under rubric?',
338
+ category: 'answer-quality',
339
+ tags: ['answer-quality', 'draft', 'compare', 'rag', 'evidence'],
340
+ limitations: [
341
+ 'Makes a relative judgment against your rubric. A preferred draft can still contain unsupported facts.',
342
+ ],
343
+ useWhen: 'You have two drafts and want to choose the better fit for a request and rubric.',
344
+ related: [
345
+ {
346
+ id: 'tone-check',
347
+ reason: 'Use tone-check to evaluate each writing criterion for one draft.',
348
+ },
349
+ ],
350
+ },
351
+ {
352
+ id: 'evidence-conflict',
353
+ title: 'Compare evidence for conflicts',
354
+ description: 'Do firstPassage and secondPassage give incompatible evidence relevant to question under the same conditions?',
355
+ category: 'retrieval',
356
+ tags: ['retrieval', 'evidence', 'conflict', 'rag'],
357
+ limitations: [
358
+ 'Does not decide which source is authoritative. Exact numbers, timestamps, and version ordering should be compared in code.',
359
+ ],
360
+ useWhen: 'You have two passages and need to check for conflicting evidence about a question.',
361
+ related: [
362
+ {
363
+ id: 'answer-consistency',
364
+ reason: 'Use answer-consistency to compare two statements directly.',
365
+ },
366
+ ],
367
+ },
368
+ {
369
+ id: 'evidence-novelty',
370
+ title: 'Check new evidence',
371
+ description: 'Does passage add material information relevant to question beyond existingEvidence?',
372
+ category: 'retrieval',
373
+ tags: ['retrieval', 'evidence', 'novelty', 'rag'],
374
+ limitations: [
375
+ 'Assesses novelty within the supplied set. It does not establish correctness or decide when retrieval must stop.',
376
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
377
+ ],
378
+ useWhen: 'You need to decide whether a new passage adds useful information to existing evidence.',
379
+ related: [
380
+ {
381
+ id: 'passage-duplicate',
382
+ reason: 'Use passage-duplicate to compare overlap between two passages.',
383
+ },
384
+ ],
385
+ },
386
+ {
387
+ id: 'fact-stability',
388
+ title: 'Assess fact stability',
389
+ description: 'Is fact about an enduring or historical attribute, or a state that is expected to change?',
390
+ category: 'memory',
391
+ tags: ['memory', 'fact', 'stability'],
392
+ limitations: [
393
+ 'Does not establish truth, expiration times, or freshness. Refresh policies and timestamp comparisons belong in code.',
394
+ ],
395
+ useWhen: 'You need to assess whether a fact is enduring or likely to change over time.',
396
+ related: [
397
+ {
398
+ id: 'freshness-needed',
399
+ reason: 'Use freshness-needed to decide whether a question needs current information.',
400
+ },
401
+ ],
402
+ },
403
+ {
404
+ id: 'failure-kind',
405
+ title: 'Classify a described failure',
406
+ description: 'Which supplied category best describes the observed failure?',
407
+ category: 'workflow',
408
+ tags: ['workflow', 'failure', 'kind'],
409
+ limitations: [
410
+ 'Maps text to your categories. Use structured error codes first; this recipe does not diagnose a root cause or initiate retries.',
411
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
412
+ ],
413
+ useWhen: 'You need to assign an observed failure to one of your supplied categories.',
414
+ related: [
415
+ {
416
+ id: 'result-outcome',
417
+ reason: 'Use result-outcome when first determining what a result reports.',
418
+ },
419
+ ],
420
+ },
421
+ {
422
+ id: 'feedback-kind',
423
+ title: 'Classify customer feedback',
424
+ description: 'What is the primary kind of feedback in message?',
425
+ category: 'support',
426
+ tags: ['support', 'feedback', 'kind'],
427
+ limitations: [
428
+ 'Returns one primary category. It does not create a ticket, extract multiple issues, or set a priority.',
429
+ ],
430
+ useWhen: 'You need to classify the kind of feedback expressed in a message.',
431
+ related: [
432
+ {
433
+ id: 'turn-intent',
434
+ reason: 'Use turn-intent for the broader purpose of a conversational turn.',
435
+ },
436
+ ],
437
+ },
438
+ {
439
+ id: 'field-select',
440
+ title: 'Select a field value',
441
+ description: 'Which supplied candidate is the value of field in document?',
442
+ category: 'knowledge',
443
+ tags: ['knowledge', 'field', 'select'],
444
+ limitations: [
445
+ 'Chooses among caller-supplied candidates. Extract candidates with a parser or generator first; validate exact formats and identifiers in code.',
446
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
447
+ ],
448
+ useWhen: 'You need to select which supplied candidate expresses a field value in a document.',
449
+ related: [
450
+ {
451
+ id: 'reference-resolve',
452
+ reason: 'Use reference-resolve to identify what a conversational reference points to.',
453
+ },
454
+ ],
455
+ },
456
+ {
457
+ id: 'followup-link',
458
+ title: 'Link a follow-up request',
459
+ description: 'Which supplied earlier request does message follow up on?',
460
+ category: 'conversation',
461
+ tags: ['conversation', 'followup', 'link'],
462
+ limitations: [
463
+ 'Selects from the supplied earlier requests. Supply enough conversation context to resolve references.',
464
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
465
+ ],
466
+ useWhen: 'You need to connect a follow-up message to one of the earlier requests.',
467
+ related: [
468
+ {
469
+ id: 'reference-resolve',
470
+ reason: 'Use reference-resolve to identify a referenced item rather than an earlier request.',
471
+ },
472
+ ],
473
+ },
474
+ {
475
+ id: 'freshness-needed',
476
+ title: 'Check information freshness needs',
477
+ description: 'Does question require a current or time-specific state that can change, or stable conceptual knowledge?',
478
+ category: 'retrieval',
479
+ tags: ['retrieval', 'freshness', 'needed', 'rag', 'evidence'],
480
+ limitations: [
481
+ 'Does not check timestamps, determine whether a source is up to date, or retrieve current information.',
482
+ ],
483
+ useWhen: 'You need to know whether a question depends on current or changing information.',
484
+ related: [
485
+ {
486
+ id: 'fact-stability',
487
+ reason: 'Use fact-stability to assess a particular fact rather than a question.',
488
+ },
489
+ ],
490
+ },
491
+ {
492
+ id: 'frustration-signal',
493
+ title: 'Detect expressed frustration',
494
+ description: 'Does message express frustration or dissatisfaction in its wording?',
495
+ category: 'support',
496
+ tags: ['support', 'frustration', 'signal'],
497
+ limitations: [
498
+ 'Classifies expressed language only. It does not diagnose emotions or determine customer importance or entitlement.',
499
+ ],
500
+ useWhen: 'You need to detect frustration or dissatisfaction expressed in a message.',
501
+ related: [
502
+ {
503
+ id: 'urgency-signal',
504
+ reason: 'Use urgency-signal to detect an explicit request for urgent attention.',
505
+ },
506
+ ],
507
+ },
508
+ {
509
+ id: 'handoff',
510
+ title: 'Check handoff rules',
511
+ description: 'Decide whether a request matches your human escalation rules.',
512
+ category: 'workflow',
513
+ tags: ['escalation', 'support', 'human'],
514
+ limitations: [
515
+ 'Does not contact a person, execute actions, or enforce permissions.',
516
+ 'Provide 1 to 50 rules with unique IDs; uncertain rules require review unless another rule confidently matches.',
517
+ ],
518
+ useWhen: 'You need to decide whether your escalation rules call for a human.',
519
+ related: [
520
+ { id: 'route', reason: 'Use route to choose a handler when escalation is not the decision.' },
521
+ ],
522
+ },
523
+ {
524
+ id: 'incident-match',
525
+ title: 'Match a known incident',
526
+ description: 'Which supplied incident is supported as a match for ticket?',
527
+ category: 'support',
528
+ tags: ['support', 'incident', 'match'],
529
+ limitations: [
530
+ 'Matches only incidents supplied by the caller. Filter incident status, dates, affected regions, and exact versions in code first.',
531
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
532
+ ],
533
+ useWhen: 'You need to connect a support ticket to a supplied known incident.',
534
+ related: [{ id: 'ticket-match', reason: 'Use ticket-match to compare two tickets directly.' }],
535
+ },
536
+ {
537
+ id: 'instruction-fit',
538
+ title: 'Check instruction applicability',
539
+ description: 'Does the explicit scope of instruction cover task and context?',
540
+ category: 'workflow',
541
+ tags: ['workflow', 'instruction', 'fit'],
542
+ limitations: [
543
+ 'Checks semantic applicability. Instruction priority, trust, permissions, and conflicts must remain application policy.',
544
+ ],
545
+ useWhen: 'You need to check whether an instruction applies to the current task and context.',
546
+ related: [
547
+ {
548
+ id: 'action-scope',
549
+ reason: 'Use action-scope to check the boundaries of a proposed action.',
550
+ },
551
+ ],
552
+ },
553
+ {
554
+ id: 'intent-change',
555
+ title: 'Detect a change of intent',
556
+ description: 'How does message change currentGoal?',
557
+ category: 'conversation',
558
+ tags: ['conversation', 'intent', 'change'],
559
+ limitations: [
560
+ 'Classifies a goal change. It does not rewrite the goal, alter a task queue, or measure exact requested limits.',
561
+ ],
562
+ useWhen: 'You need to check whether a new message changes the current task or goal.',
563
+ related: [
564
+ {
565
+ id: 'cancellation-check',
566
+ reason: 'Use cancellation-check for the narrower question of stopping, pausing, or continuing.',
567
+ },
568
+ ],
569
+ },
570
+ {
571
+ id: 'issue-impact',
572
+ title: 'Assess reported issue impact',
573
+ description: 'What practical impact does message explicitly describe?',
574
+ category: 'support',
575
+ tags: ['support', 'issue', 'impact'],
576
+ limitations: [
577
+ 'Assesses reported impact, not verified system severity. Service commitments and escalation thresholds remain application rules.',
578
+ ],
579
+ useWhen: 'You need to assess the practical impact explicitly described in a support message.',
580
+ related: [
581
+ {
582
+ id: 'urgency-signal',
583
+ reason: 'Use urgency-signal to detect requests for immediate attention.',
584
+ },
585
+ ],
586
+ },
587
+ {
588
+ id: 'memory-relation',
589
+ title: 'Compare a new fact with memory',
590
+ description: 'How does newFact relate to existingMemory?',
591
+ category: 'memory',
592
+ tags: ['memory', 'relation'],
593
+ limitations: [
594
+ 'Compares two supplied facts. It does not select a memory to overwrite or resolve conflicts by timestamp alone.',
595
+ ],
596
+ useWhen: 'You need to compare a new fact with an existing memory for agreement or change.',
597
+ related: [
598
+ {
599
+ id: 'memory-value',
600
+ reason: 'Use memory-value to assess usefulness before deciding how to store a fact.',
601
+ },
602
+ ],
603
+ },
604
+ {
605
+ id: 'memory-scope',
606
+ title: 'Identify memory scope',
607
+ description: 'What is the narrowest explicitly supported scope of fact in context?',
608
+ category: 'memory',
609
+ tags: ['memory', 'scope'],
610
+ limitations: [
611
+ 'Identifies semantic scope. It does not identify a storage tenant, establish consent, or persist a memory.',
612
+ ],
613
+ useWhen: 'You need to identify the narrowest supported scope of a fact or preference.',
614
+ related: [
615
+ {
616
+ id: 'preference-kind',
617
+ reason: 'Use preference-kind to distinguish ongoing preferences from temporary instructions.',
618
+ },
619
+ ],
620
+ },
621
+ {
622
+ id: 'memory-value',
623
+ title: 'Assess a candidate memory',
624
+ description: 'How useful is fact for future work under purpose?',
625
+ category: 'memory',
626
+ tags: ['memory', 'value'],
627
+ limitations: [
628
+ 'Assesses usefulness only. Storage consent, sensitive-data policy, retention, and deletion must be enforced separately.',
629
+ ],
630
+ useWhen: 'You need to assess whether a candidate fact is useful to remember for a stated purpose.',
631
+ related: [
632
+ { id: 'memory-scope', reason: 'Use memory-scope to determine where a fact applies.' },
633
+ ],
634
+ },
635
+ {
636
+ id: 'passage-duplicate',
637
+ title: 'Compare passages for duplication',
638
+ description: 'How much material information do firstPassage and secondPassage share?',
639
+ category: 'retrieval',
640
+ tags: ['retrieval', 'passage', 'duplicate', 'rag', 'evidence'],
641
+ limitations: [
642
+ 'Compares a supplied pair. It does not search a corpus, cluster documents, or remove content.',
643
+ ],
644
+ useWhen: 'You want to detect duplicate or overlapping information in two passages.',
645
+ related: [
646
+ {
647
+ id: 'evidence-novelty',
648
+ reason: 'Use evidence-novelty to compare a passage with the evidence already collected.',
649
+ },
650
+ ],
651
+ },
652
+ {
653
+ id: 'preference-kind',
654
+ title: 'Identify a stated preference',
655
+ description: 'Does statement express an ongoing preference, a factual assertion, or a temporary request?',
656
+ category: 'memory',
657
+ tags: ['memory', 'preference', 'kind'],
658
+ limitations: [
659
+ 'Classifies a statement. It does not infer unexpressed preferences or grant permission to store personal information.',
660
+ ],
661
+ useWhen: 'You need to distinguish an ongoing preference from a fact or temporary request.',
662
+ related: [
663
+ {
664
+ id: 'memory-scope',
665
+ reason: 'Use memory-scope to identify the supported scope of that preference.',
666
+ },
667
+ ],
668
+ },
669
+ {
670
+ id: 'promise-check',
671
+ title: 'Check reply commitments',
672
+ description: 'Does reply promise actions or outcomes beyond allowedCommitments?',
673
+ category: 'answer-quality',
674
+ tags: ['answer-quality', 'promise', 'check', 'rag', 'evidence'],
675
+ limitations: [
676
+ 'Reviews expressed promises. It does not approve refunds, establish contractual obligations, or execute actions.',
677
+ ],
678
+ useWhen: 'You need to catch commitments in a reply that exceed what is allowed.',
679
+ related: [
680
+ {
681
+ id: 'action-scope',
682
+ reason: 'Use action-scope to check a proposed action against the requested work.',
683
+ },
684
+ ],
685
+ },
686
+ {
687
+ id: 'query-equivalence',
688
+ title: 'Compare question meaning',
689
+ description: 'Do firstQuestion and secondQuestion request the same information under the same stated conditions?',
690
+ category: 'retrieval',
691
+ tags: ['retrieval', 'query', 'equivalence', 'rag', 'evidence'],
692
+ limitations: [
693
+ 'Compares supplied questions. It does not rewrite them or establish that an existing answer is still valid.',
694
+ ],
695
+ useWhen: 'You need to check whether two questions ask for the same information.',
696
+ related: [
697
+ {
698
+ id: 'cache-match',
699
+ reason: 'Use cache-match when deciding whether an existing answer can be reused.',
700
+ },
701
+ ],
702
+ },
703
+ {
704
+ id: 'query-specificity',
705
+ title: 'Check question specificity',
706
+ description: 'Does question, interpreted with context, identify a focused information need?',
707
+ category: 'retrieval',
708
+ tags: ['retrieval', 'query', 'specificity', 'rag', 'evidence'],
709
+ limitations: [
710
+ 'Assesses focus only. Use clarify when the application has explicit required fields to check.',
711
+ ],
712
+ useWhen: 'You need to know whether a question identifies a focused information need.',
713
+ related: [
714
+ {
715
+ id: 'clarify',
716
+ reason: 'Use clarify to check named requirements for missing or ambiguous information.',
717
+ },
718
+ ],
719
+ },
720
+ {
721
+ id: 'reference-resolve',
722
+ title: 'Resolve a reference',
723
+ description: 'Which supplied candidate does reference refer to in message and context?',
724
+ category: 'conversation',
725
+ tags: ['conversation', 'reference', 'resolve'],
726
+ limitations: [
727
+ 'Resolves a supplied reference among candidates. It does not extract references, verify identity, or authorize changes.',
728
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
729
+ ],
730
+ useWhen: 'You need to resolve a phrase such as this one to a supplied candidate.',
731
+ related: [
732
+ {
733
+ id: 'correction-target',
734
+ reason: 'Use correction-target when the message corrects a particular field or statement.',
735
+ },
736
+ ],
737
+ },
738
+ {
739
+ id: 'repeated-attempt',
740
+ title: 'Compare attempted approaches',
741
+ description: 'Does proposedAttempt use essentially the same approach as previousAttempt for objective?',
742
+ category: 'workflow',
743
+ tags: ['workflow', 'repeated', 'attempt'],
744
+ limitations: [
745
+ 'Compares two attempts only. Counting repeats, deciding whether a retry is justified, and stopping loops belong in application code.',
746
+ ],
747
+ useWhen: 'You need to detect whether a proposed retry repeats an earlier approach.',
748
+ related: [
749
+ {
750
+ id: 'step-progress',
751
+ reason: 'Use step-progress to assess what an attempted step actually changed.',
752
+ },
753
+ ],
754
+ },
755
+ {
756
+ id: 'reply-template-match',
757
+ title: 'Select a reply template',
758
+ description: 'Which supplied approved template applies to request and context?',
759
+ category: 'support',
760
+ tags: ['support', 'reply', 'template', 'match'],
761
+ limitations: [
762
+ 'Selects a supplied template. It does not fill placeholders, approve its content, personalize it, or send a response.',
763
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
764
+ ],
765
+ useWhen: 'You want to select a supplied approved reply template for a request.',
766
+ related: [
767
+ { id: 'route', reason: 'Use route to select a handler rather than a response template.' },
768
+ ],
769
+ },
770
+ {
771
+ id: 'rerank',
772
+ title: 'Rerank evidence',
773
+ description: 'Select candidate passages by relevance to a query.',
774
+ category: 'retrieval',
775
+ tags: ['rag', 'search', 'relevance'],
776
+ limitations: [
777
+ 'Does not retrieve documents or establish source truth.',
778
+ 'Provide 1 to 100 items with unique IDs.',
779
+ ],
780
+ useWhen: 'You have retrieved passages and want the most relevant evidence for a question.',
781
+ related: [
782
+ {
783
+ id: 'answerability',
784
+ reason: 'Use answerability to check whether the selected evidence is enough to answer.',
785
+ },
786
+ ],
787
+ },
788
+ {
789
+ id: 'resolution-check',
790
+ title: 'Check reported resolution',
791
+ description: 'Does message establish that the customer reports issue as resolved?',
792
+ category: 'conversation',
793
+ tags: ['conversation', 'resolution', 'check'],
794
+ limitations: [
795
+ 'Interprets the customer report. It does not verify the system state, close a ticket, or treat courtesy alone as resolution.',
796
+ ],
797
+ useWhen: 'You need to know whether the customer reports that an issue is resolved.',
798
+ related: [
799
+ {
800
+ id: 'step-complete',
801
+ reason: 'Use step-complete to assess evidence against a supplied completion condition.',
802
+ },
803
+ ],
804
+ },
805
+ {
806
+ id: 'response-needed',
807
+ title: 'Check whether a reply is needed',
808
+ description: 'Does message require a substantive reply in context?',
809
+ category: 'conversation',
810
+ tags: ['conversation', 'response', 'needed'],
811
+ limitations: [
812
+ 'Assesses conversational need. Channel-specific response obligations and customer service policies remain application rules.',
813
+ ],
814
+ useWhen: 'You need to decide whether a message calls for a substantive reply.',
815
+ related: [
816
+ {
817
+ id: 'turn-intent',
818
+ reason: 'Use turn-intent to classify the message purpose in more detail.',
819
+ },
820
+ ],
821
+ },
822
+ {
823
+ id: 'result-outcome',
824
+ title: 'Interpret a reported tool outcome',
825
+ description: 'What outcome does result report for task?',
826
+ category: 'workflow',
827
+ tags: ['workflow', 'result', 'outcome'],
828
+ limitations: [
829
+ 'Interprets a report; it does not independently confirm an external action occurred. Prefer structured result fields when available.',
830
+ ],
831
+ useWhen: 'You need to classify what a tool result reports happened during a task.',
832
+ related: [
833
+ {
834
+ id: 'step-progress',
835
+ reason: 'Use step-progress to compare an observation with the previous state.',
836
+ },
837
+ ],
838
+ },
839
+ {
840
+ id: 'result-usefulness',
841
+ title: 'Check tool result usefulness',
842
+ description: 'Does result provide information useful for task?',
843
+ category: 'workflow',
844
+ tags: ['workflow', 'result', 'usefulness'],
845
+ limitations: [
846
+ 'Assesses response content, not transport success or source truth. Handle empty bodies and status codes in code.',
847
+ ],
848
+ useWhen: 'You need to assess whether a tool result provides useful information for a task.',
849
+ related: [
850
+ {
851
+ id: 'result-outcome',
852
+ reason: 'Use result-outcome to classify the reported outcome rather than its usefulness.',
853
+ },
854
+ ],
855
+ },
856
+ {
857
+ id: 'retrieval-needed',
858
+ title: 'Check whether retrieval is needed',
859
+ description: 'Does request require facts beyond context?',
860
+ category: 'retrieval',
861
+ tags: ['retrieval', 'needed', 'rag', 'evidence'],
862
+ limitations: [
863
+ 'Assesses information needs without searching. A no-retrieval decision does not establish source truth.',
864
+ ],
865
+ useWhen: 'You need to decide whether answering requires facts beyond the current context.',
866
+ related: [
867
+ {
868
+ id: 'freshness-needed',
869
+ reason: 'Use freshness-needed to check whether those facts must be current.',
870
+ },
871
+ ],
872
+ },
873
+ {
874
+ id: 'route',
875
+ title: 'Route a request',
876
+ description: 'Choose a named handler or return a review decision.',
877
+ category: 'workflow',
878
+ tags: ['routing', 'intent', 'dispatch'],
879
+ limitations: [
880
+ 'Does not execute handlers or enforce access control.',
881
+ 'Provide 1 to 254 routes; __review__ is reserved.',
882
+ ],
883
+ useWhen: 'You need to send a request to the right handler, team, or department.',
884
+ related: [
885
+ {
886
+ id: 'turn-intent',
887
+ reason: 'Use turn-intent to identify what a message is doing before choosing a handler.',
888
+ },
889
+ ],
890
+ },
891
+ {
892
+ id: 'source-applicability',
893
+ title: 'Check source applicability',
894
+ description: 'Does the scope described in passage apply to scenario?',
895
+ category: 'retrieval',
896
+ tags: ['retrieval', 'source', 'applicability', 'rag', 'evidence'],
897
+ limitations: [
898
+ 'Assesses semantic scope. Enforce tenant, access, exact version, and region constraints in application code.',
899
+ ],
900
+ useWhen: 'You need to check whether the conditions and scope of a source fit a scenario.',
901
+ related: [
902
+ {
903
+ id: 'evidence-conflict',
904
+ reason: 'Use evidence-conflict to compare two applicable sources for disagreement.',
905
+ },
906
+ ],
907
+ },
908
+ {
909
+ id: 'step-complete',
910
+ title: 'Check one completion condition',
911
+ description: 'Does evidence establish that condition has been met?',
912
+ category: 'workflow',
913
+ tags: ['workflow', 'step', 'complete'],
914
+ limitations: [
915
+ 'Assesses supplied evidence for one condition. Use exact system state checks when the condition can be determined in code.',
916
+ ],
917
+ useWhen: 'You need to check whether supplied evidence establishes a completion condition.',
918
+ related: [
919
+ {
920
+ id: 'result-outcome',
921
+ reason: 'Use result-outcome to interpret a tool result before checking completion.',
922
+ },
923
+ ],
924
+ },
925
+ {
926
+ id: 'step-progress',
927
+ title: 'Check step progress',
928
+ description: 'How does observation change progress toward objective relative to previousState?',
929
+ category: 'workflow',
930
+ tags: ['workflow', 'step', 'progress'],
931
+ limitations: [
932
+ 'Compares one observation with a supplied prior state. It does not measure elapsed time or schedule the next step.',
933
+ ],
934
+ useWhen: 'You need to compare a new observation with the previous state of a task.',
935
+ related: [
936
+ {
937
+ id: 'step-complete',
938
+ reason: 'Use step-complete to check whether the completion condition has been met.',
939
+ },
940
+ ],
941
+ },
942
+ {
943
+ id: 'summary-coverage',
944
+ title: 'Check summary coverage',
945
+ description: 'Check whether a summary preserves each supplied point.',
946
+ category: 'answer-quality',
947
+ tags: ['answer-quality', 'summary', 'coverage', 'rag', 'evidence'],
948
+ limitations: [
949
+ 'Checks the points you supply. It does not select important points from a transcript or detect unrelated invented statements.',
950
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
951
+ ],
952
+ useWhen: 'You need to check whether a summary preserves each important source point.',
953
+ related: [
954
+ {
955
+ id: 'answer-coverage',
956
+ reason: 'Use answer-coverage when the checklist contains questions to answer.',
957
+ },
958
+ ],
959
+ },
960
+ {
961
+ id: 'ticket-match',
962
+ title: 'Compare support tickets',
963
+ description: 'Do firstTicket and secondTicket describe the same underlying reported issue?',
964
+ category: 'support',
965
+ tags: ['support', 'ticket', 'match'],
966
+ limitations: [
967
+ 'Does not merge tickets or establish a shared root cause from similar symptoms alone. Compare exact identifiers in code.',
968
+ ],
969
+ useWhen: 'You want to check whether two tickets describe the same underlying issue.',
970
+ related: [
971
+ {
972
+ id: 'incident-match',
973
+ reason: 'Use incident-match to select a known incident for one ticket.',
974
+ },
975
+ ],
976
+ },
977
+ {
978
+ id: 'tone-check',
979
+ title: 'Check writing criteria',
980
+ description: 'Check a draft against each supplied writing criterion.',
981
+ category: 'answer-quality',
982
+ tags: ['answer-quality', 'tone', 'check', 'rag', 'evidence'],
983
+ limitations: [
984
+ 'Checks supplied writing criteria. It does not rewrite text, determine factual accuracy, or check exact character counts.',
985
+ 'Supply 1 to 50 items per list, each with a unique non-empty ID and non-empty text.',
986
+ ],
987
+ useWhen: 'You want to check a draft against a supplied set of writing criteria.',
988
+ related: [
989
+ {
990
+ id: 'draft-compare',
991
+ reason: 'Use draft-compare to choose between two drafts under a rubric.',
992
+ },
993
+ ],
994
+ },
995
+ {
996
+ id: 'tool-fit',
997
+ title: 'Check a tool fit',
998
+ description: 'Can the capabilities explicitly described in tool perform task?',
999
+ category: 'workflow',
1000
+ tags: ['workflow', 'tool', 'fit'],
1001
+ limitations: [
1002
+ 'Assesses a supplied capability description. It does not discover tools, validate credentials, or grant permission.',
1003
+ ],
1004
+ useWhen: 'You need to check whether a tool has the stated capability to perform a task.',
1005
+ related: [
1006
+ {
1007
+ id: 'argument-fit',
1008
+ reason: 'Use argument-fit to validate the meaning of a proposed tool argument.',
1009
+ },
1010
+ ],
1011
+ },
1012
+ {
1013
+ id: 'topic-shift',
1014
+ title: 'Detect a topic shift',
1015
+ description: 'Does message stay with currentTopic, introduce a different topic, or contain both?',
1016
+ category: 'conversation',
1017
+ tags: ['conversation', 'topic', 'shift'],
1018
+ limitations: [
1019
+ 'Compares one message with a supplied topic. It does not generate topic labels or split conversation threads.',
1020
+ ],
1021
+ useWhen: 'You need to detect whether a message moves away from the current topic.',
1022
+ related: [
1023
+ {
1024
+ id: 'intent-change',
1025
+ reason: 'Use intent-change when the important question is whether the goal changed.',
1026
+ },
1027
+ ],
1028
+ },
1029
+ {
1030
+ id: 'troubleshooting-fit',
1031
+ title: 'Check troubleshooting applicability',
1032
+ description: 'Does procedure address symptoms under the described circumstances?',
1033
+ category: 'support',
1034
+ tags: ['support', 'troubleshooting', 'fit'],
1035
+ limitations: [
1036
+ 'Assesses a supplied procedure; it does not diagnose a root cause, generate steps, or execute them.',
1037
+ ],
1038
+ useWhen: 'You need to choose whether a procedure fits the reported symptoms and circumstances.',
1039
+ related: [
1040
+ {
1041
+ id: 'attempted-step',
1042
+ reason: 'Use attempted-step to check whether that procedure has already been tried.',
1043
+ },
1044
+ ],
1045
+ },
1046
+ {
1047
+ id: 'turn-intent',
1048
+ title: 'Identify a conversation turn',
1049
+ description: 'What is the primary communicative purpose of message in context?',
1050
+ category: 'conversation',
1051
+ tags: ['conversation', 'turn', 'intent'],
1052
+ limitations: [
1053
+ 'Returns the primary purpose only. It does not split a message into separate requests or execute instructions.',
1054
+ ],
1055
+ useWhen: 'You need to classify a message as a request, answer, correction, cancellation, or acknowledgment.',
1056
+ related: [
1057
+ {
1058
+ id: 'intent-change',
1059
+ reason: 'Use intent-change to assess how the message changes an existing goal.',
1060
+ },
1061
+ ],
1062
+ },
1063
+ {
1064
+ id: 'urgency-signal',
1065
+ title: 'Detect an explicit urgency request',
1066
+ description: 'Does message explicitly request urgent attention?',
1067
+ category: 'support',
1068
+ tags: ['support', 'urgency', 'signal'],
1069
+ limitations: [
1070
+ 'Detects an expressed urgency request. Compute deadline proximity and apply incident or service priority rules in code.',
1071
+ ],
1072
+ useWhen: 'You need to detect whether a message explicitly asks for urgent attention.',
1073
+ related: [
1074
+ {
1075
+ id: 'issue-impact',
1076
+ reason: 'Use issue-impact to assess the reported practical consequences.',
1077
+ },
1078
+ ],
1079
+ },
1080
+ {
1081
+ id: 'verify',
1082
+ title: 'Verify claims',
1083
+ description: 'Check each supplied claim against its paired evidence.',
1084
+ category: 'retrieval',
1085
+ tags: ['rag', 'grounding', 'claims'],
1086
+ limitations: [
1087
+ 'Checks only supplied claims; does not establish source truth or completeness.',
1088
+ 'Provide 1 to 100 claims with unique IDs.',
1089
+ ],
1090
+ useWhen: 'You need to know whether a claim is supported by its supplied evidence.',
1091
+ related: [
1092
+ {
1093
+ id: 'citation-match',
1094
+ reason: 'Use citation-match to select which passages support one claim.',
1095
+ },
1096
+ ],
1097
+ },
1098
+ {
1099
+ id: 'workaround-fit',
1100
+ title: 'Check workaround fit',
1101
+ description: 'Can workaround address issue without violating constraints?',
1102
+ category: 'support',
1103
+ tags: ['support', 'workaround', 'fit'],
1104
+ limitations: [
1105
+ 'Assesses described compatibility. It does not establish operational safety, execute a workaround, or grant access.',
1106
+ ],
1107
+ useWhen: 'You need to check whether a workaround addresses an issue within the stated constraints.',
1108
+ related: [
1109
+ {
1110
+ id: 'troubleshooting-fit',
1111
+ reason: 'Use troubleshooting-fit to assess a diagnostic procedure rather than a workaround.',
1112
+ },
1113
+ ],
1114
+ },
1115
+ ];