jev-recipes 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/README.md +18 -2
- package/dist/catalog/generated/details/claim-stance.json +55 -0
- package/dist/catalog/generated/details/constraint-strength.json +48 -0
- package/dist/catalog/generated/details/instruction-conflict.json +52 -0
- package/dist/catalog/generated/details/requirement-testability.json +45 -0
- package/dist/catalog/generated/details/task-dependency.json +61 -0
- package/dist/catalog/generated/details/task-duplicate.json +49 -0
- package/dist/catalog/generated/loaders.js +6 -0
- package/dist/catalog/generated/metadata.js +176 -5
- package/dist/catalog/generated/names.d.ts +1 -1
- package/dist/catalog/generated/names.js +6 -0
- package/dist/catalog/schema.d.ts +6 -0
- package/dist/cli/schema.d.ts +18 -0
- package/dist/recipes/claim-stance/demo.json +27 -0
- package/dist/recipes/claim-stance/index.d.ts +5 -0
- package/dist/recipes/claim-stance/index.js +17 -0
- package/dist/recipes/claim-stance/schema.d.ts +43 -0
- package/dist/recipes/claim-stance/schema.js +23 -0
- package/dist/recipes/constraint-strength/demo.json +25 -0
- package/dist/recipes/constraint-strength/index.d.ts +5 -0
- package/dist/recipes/constraint-strength/index.js +16 -0
- package/dist/recipes/constraint-strength/schema.d.ts +39 -0
- package/dist/recipes/constraint-strength/schema.js +21 -0
- package/dist/recipes/evidence-conflict/schema.d.ts +3 -3
- package/dist/recipes/instruction-conflict/demo.json +27 -0
- package/dist/recipes/instruction-conflict/index.d.ts +5 -0
- package/dist/recipes/instruction-conflict/index.js +16 -0
- package/dist/recipes/instruction-conflict/schema.d.ts +40 -0
- package/dist/recipes/instruction-conflict/schema.js +22 -0
- package/dist/recipes/preference-kind/schema.d.ts +3 -3
- package/dist/recipes/requirement-testability/demo.json +24 -0
- package/dist/recipes/requirement-testability/index.d.ts +5 -0
- package/dist/recipes/requirement-testability/index.js +15 -0
- package/dist/recipes/requirement-testability/schema.d.ts +36 -0
- package/dist/recipes/requirement-testability/schema.js +16 -0
- package/dist/recipes/task-dependency/demo.json +28 -0
- package/dist/recipes/task-dependency/index.d.ts +5 -0
- package/dist/recipes/task-dependency/index.js +17 -0
- package/dist/recipes/task-dependency/schema.d.ts +43 -0
- package/dist/recipes/task-dependency/schema.js +23 -0
- package/dist/recipes/task-duplicate/demo.json +27 -0
- package/dist/recipes/task-duplicate/index.d.ts +5 -0
- package/dist/recipes/task-duplicate/index.js +16 -0
- package/dist/recipes/task-duplicate/schema.d.ts +40 -0
- package/dist/recipes/task-duplicate/schema.js +22 -0
- package/dist/recipes/topic-shift/schema.d.ts +3 -3
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.js +6 -0
- package/package.json +25 -1
|
@@ -21,7 +21,7 @@ export const recipeMetadata = [
|
|
|
21
21
|
title: 'Check answer consistency',
|
|
22
22
|
description: 'Do firstStatement and secondStatement make compatible claims about the same subject and circumstances?',
|
|
23
23
|
category: 'answer-quality',
|
|
24
|
-
tags: ['answer-quality', 'answer', 'consistency', 'rag', 'evidence'],
|
|
24
|
+
tags: ['answer-quality', 'answer', 'consistency', 'rag', 'evidence', 'alignment-research'],
|
|
25
25
|
limitations: [
|
|
26
26
|
'Checks semantic consistency between two statements. Exact numeric and date comparisons belong in code.',
|
|
27
27
|
],
|
|
@@ -190,7 +190,7 @@ export const recipeMetadata = [
|
|
|
190
190
|
title: 'Check certainty wording',
|
|
191
191
|
description: 'Does the certainty expressed in draft match assessment?',
|
|
192
192
|
category: 'answer-quality',
|
|
193
|
-
tags: ['answer-quality', 'certainty', 'match', 'rag', 'evidence'],
|
|
193
|
+
tags: ['answer-quality', 'certainty', 'match', 'rag', 'evidence', 'alignment-research'],
|
|
194
194
|
limitations: [
|
|
195
195
|
'Compares wording with a supplied assessment. It does not calibrate probabilities or establish the assessment itself.',
|
|
196
196
|
],
|
|
@@ -249,6 +249,40 @@ export const recipeMetadata = [
|
|
|
249
249
|
},
|
|
250
250
|
],
|
|
251
251
|
},
|
|
252
|
+
{
|
|
253
|
+
id: 'claim-stance',
|
|
254
|
+
title: "Label a response's stance toward a claim",
|
|
255
|
+
description: 'Label whether a response affirms, denies, mixes positions on, or does not address a supplied claim.',
|
|
256
|
+
category: 'answer-quality',
|
|
257
|
+
tags: [
|
|
258
|
+
'claim',
|
|
259
|
+
'stance',
|
|
260
|
+
'agreement',
|
|
261
|
+
'disagreement',
|
|
262
|
+
'annotation',
|
|
263
|
+
'sycophancy',
|
|
264
|
+
'alignment-research',
|
|
265
|
+
],
|
|
266
|
+
limitations: [
|
|
267
|
+
'Labels only the expressed stance toward one supplied claim. It does not infer beliefs, intention, deception, or alignment from text.',
|
|
268
|
+
'A single agreement label does not establish sycophancy. Research use requires controlled comparisons and independent validation of the labels.',
|
|
269
|
+
],
|
|
270
|
+
useWhen: 'You need to label whether a response agrees or disagrees with a claim, including in AI alignment research.',
|
|
271
|
+
related: [
|
|
272
|
+
{
|
|
273
|
+
id: 'verify',
|
|
274
|
+
reason: 'Use verify to check whether a claim is supported by evidence; stance does not establish truth.',
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
id: 'answer-consistency',
|
|
278
|
+
reason: 'Use answer-consistency to compare the compatibility of two statements.',
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
id: 'draft-compare',
|
|
282
|
+
reason: 'Use draft-compare for a preference between two responses under a supplied rubric.',
|
|
283
|
+
},
|
|
284
|
+
],
|
|
285
|
+
},
|
|
252
286
|
{
|
|
253
287
|
id: 'clarify',
|
|
254
288
|
title: 'Check required information',
|
|
@@ -284,6 +318,42 @@ export const recipeMetadata = [
|
|
|
284
318
|
},
|
|
285
319
|
],
|
|
286
320
|
},
|
|
321
|
+
{
|
|
322
|
+
id: 'constraint-strength',
|
|
323
|
+
title: 'Distinguish requirements from preferences',
|
|
324
|
+
description: 'Classify a stated constraint as required, preferred, optional, or unclear.',
|
|
325
|
+
category: 'conversation',
|
|
326
|
+
tags: [
|
|
327
|
+
'constraint',
|
|
328
|
+
'requirement',
|
|
329
|
+
'preference',
|
|
330
|
+
'optional',
|
|
331
|
+
'mandatory',
|
|
332
|
+
'must',
|
|
333
|
+
'should',
|
|
334
|
+
'hard',
|
|
335
|
+
'soft',
|
|
336
|
+
],
|
|
337
|
+
limitations: [
|
|
338
|
+
'Reports how the supplied wording presents a constraint; it does not establish authority, consent, or permission.',
|
|
339
|
+
'Evaluate one constraint at a time. Split mixed requirements in caller code before comparing their strength.',
|
|
340
|
+
],
|
|
341
|
+
useWhen: 'You need to distinguish a hard requirement from a preference or an optional suggestion.',
|
|
342
|
+
related: [
|
|
343
|
+
{
|
|
344
|
+
id: 'preference-kind',
|
|
345
|
+
reason: 'Use preference-kind to distinguish lasting preferences from facts and temporary requests.',
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
id: 'instruction-fit',
|
|
349
|
+
reason: 'Use instruction-fit to decide whether the constraint applies in the current circumstances.',
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
id: 'instruction-conflict',
|
|
353
|
+
reason: 'Use instruction-conflict to compare the requirements of two instructions.',
|
|
354
|
+
},
|
|
355
|
+
],
|
|
356
|
+
},
|
|
287
357
|
{
|
|
288
358
|
id: 'context-role',
|
|
289
359
|
title: 'Identify a passage role',
|
|
@@ -336,7 +406,7 @@ export const recipeMetadata = [
|
|
|
336
406
|
title: 'Compare two drafts',
|
|
337
407
|
description: 'Which draft better satisfies request under rubric?',
|
|
338
408
|
category: 'answer-quality',
|
|
339
|
-
tags: ['answer-quality', 'draft', 'compare', 'rag', 'evidence'],
|
|
409
|
+
tags: ['answer-quality', 'draft', 'compare', 'rag', 'evidence', 'alignment-research'],
|
|
340
410
|
limitations: [
|
|
341
411
|
'Makes a relative judgment against your rubric. A preferred draft can still contain unsupported facts.',
|
|
342
412
|
],
|
|
@@ -533,6 +603,28 @@ export const recipeMetadata = [
|
|
|
533
603
|
useWhen: 'You need to connect a support ticket to a supplied known incident.',
|
|
534
604
|
related: [{ id: 'ticket-match', reason: 'Use ticket-match to compare two tickets directly.' }],
|
|
535
605
|
},
|
|
606
|
+
{
|
|
607
|
+
id: 'instruction-conflict',
|
|
608
|
+
title: 'Check instructions for conflict',
|
|
609
|
+
description: 'Decide whether two instructions can both be followed under the supplied circumstances.',
|
|
610
|
+
category: 'workflow',
|
|
611
|
+
tags: ['instructions', 'conflict', 'contradiction', 'requirements', 'rules', 'compatible'],
|
|
612
|
+
limitations: [
|
|
613
|
+
'Assesses compatibility of supplied instructions only; does not establish their authority or choose which one wins.',
|
|
614
|
+
'Does not enforce permissions or execute instructions. The caller resolves conflicts before acting.',
|
|
615
|
+
],
|
|
616
|
+
useWhen: 'You need to detect conflicting instructions before carrying out a task.',
|
|
617
|
+
related: [
|
|
618
|
+
{
|
|
619
|
+
id: 'instruction-fit',
|
|
620
|
+
reason: 'Use instruction-fit to decide whether one instruction applies to a task.',
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
id: 'answer-consistency',
|
|
624
|
+
reason: 'Use answer-consistency to compare factual claims rather than required behavior.',
|
|
625
|
+
},
|
|
626
|
+
],
|
|
627
|
+
},
|
|
536
628
|
{
|
|
537
629
|
id: 'instruction-fit',
|
|
538
630
|
title: 'Check instruction applicability',
|
|
@@ -767,6 +859,37 @@ export const recipeMetadata = [
|
|
|
767
859
|
{ id: 'route', reason: 'Use route to select a handler rather than a response template.' },
|
|
768
860
|
],
|
|
769
861
|
},
|
|
862
|
+
{
|
|
863
|
+
id: 'requirement-testability',
|
|
864
|
+
title: 'Check whether a requirement is testable',
|
|
865
|
+
description: 'Decide whether a requirement defines an observable way to distinguish meeting it from failing it.',
|
|
866
|
+
category: 'knowledge',
|
|
867
|
+
tags: [
|
|
868
|
+
'requirement',
|
|
869
|
+
'testable',
|
|
870
|
+
'testability',
|
|
871
|
+
'acceptance',
|
|
872
|
+
'criteria',
|
|
873
|
+
'measurable',
|
|
874
|
+
'observable',
|
|
875
|
+
'specification',
|
|
876
|
+
],
|
|
877
|
+
limitations: [
|
|
878
|
+
'Assesses the wording and supplied definitions; does not generate tests, prove feasibility, or inspect an implementation.',
|
|
879
|
+
'Exact measurements and pass/fail calculations belong in application code.',
|
|
880
|
+
],
|
|
881
|
+
useWhen: 'You need to check whether a requirement has clear, observable acceptance criteria before building it.',
|
|
882
|
+
related: [
|
|
883
|
+
{
|
|
884
|
+
id: 'step-complete',
|
|
885
|
+
reason: 'Use step-complete to check evidence against a condition that has already been defined.',
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
id: 'clarify',
|
|
889
|
+
reason: 'Use clarify to find missing information across a supplied list of requirements.',
|
|
890
|
+
},
|
|
891
|
+
],
|
|
892
|
+
},
|
|
770
893
|
{
|
|
771
894
|
id: 'rerank',
|
|
772
895
|
title: 'Rerank evidence',
|
|
@@ -910,7 +1033,7 @@ export const recipeMetadata = [
|
|
|
910
1033
|
title: 'Check one completion condition',
|
|
911
1034
|
description: 'Does evidence establish that condition has been met?',
|
|
912
1035
|
category: 'workflow',
|
|
913
|
-
tags: ['workflow', 'step', 'complete'],
|
|
1036
|
+
tags: ['workflow', 'step', 'complete', 'alignment-research'],
|
|
914
1037
|
limitations: [
|
|
915
1038
|
'Assesses supplied evidence for one condition. Use exact system state checks when the condition can be determined in code.',
|
|
916
1039
|
],
|
|
@@ -957,6 +1080,54 @@ export const recipeMetadata = [
|
|
|
957
1080
|
},
|
|
958
1081
|
],
|
|
959
1082
|
},
|
|
1083
|
+
{
|
|
1084
|
+
id: 'task-dependency',
|
|
1085
|
+
title: 'Check the dependency between two tasks',
|
|
1086
|
+
description: 'Identify whether either of two tasks requires the other to finish before it can start.',
|
|
1087
|
+
category: 'workflow',
|
|
1088
|
+
tags: ['tasks', 'dependency', 'prerequisite', 'order', 'parallel', 'planning', 'sequence'],
|
|
1089
|
+
limitations: [
|
|
1090
|
+
'Assesses only the supplied pair and prerequisites; does not build or validate a complete dependency graph.',
|
|
1091
|
+
"Independence of prerequisites does not establish that parallel execution is safe: shared resources, locks, permissions, and scheduling remain the caller's responsibility.",
|
|
1092
|
+
],
|
|
1093
|
+
useWhen: 'You need to decide whether two tasks can run in parallel or require a particular order.',
|
|
1094
|
+
related: [
|
|
1095
|
+
{
|
|
1096
|
+
id: 'task-duplicate',
|
|
1097
|
+
reason: 'Use task-duplicate to detect repeated outcomes before scheduling tasks.',
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
id: 'step-complete',
|
|
1101
|
+
reason: 'Use step-complete to check whether evidence establishes a known prerequisite is already satisfied.',
|
|
1102
|
+
},
|
|
1103
|
+
],
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
id: 'task-duplicate',
|
|
1107
|
+
title: 'Compare tasks for duplicate work',
|
|
1108
|
+
description: 'Decide whether two tasks request the same outcome, overlapping work, or distinct work.',
|
|
1109
|
+
category: 'workflow',
|
|
1110
|
+
tags: ['tasks', 'duplicate', 'overlap', 'queue', 'deduplicate', 'planning', 'same', 'outcome'],
|
|
1111
|
+
limitations: [
|
|
1112
|
+
'Assesses described work only; does not merge queue entries, cancel tasks, or prove that an external action is safe to repeat.',
|
|
1113
|
+
'Shared topics or similar titles are insufficient to establish duplicate work.',
|
|
1114
|
+
],
|
|
1115
|
+
useWhen: 'You need to detect duplicate tasks before adding more work to a queue or plan.',
|
|
1116
|
+
related: [
|
|
1117
|
+
{
|
|
1118
|
+
id: 'repeated-attempt',
|
|
1119
|
+
reason: 'Use repeated-attempt to compare the methods of two attempts toward one objective.',
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
id: 'task-dependency',
|
|
1123
|
+
reason: 'Use task-dependency to check whether one task must finish before another starts.',
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
id: 'ticket-match',
|
|
1127
|
+
reason: 'Use ticket-match to compare reported issues rather than requested work.',
|
|
1128
|
+
},
|
|
1129
|
+
],
|
|
1130
|
+
},
|
|
960
1131
|
{
|
|
961
1132
|
id: 'ticket-match',
|
|
962
1133
|
title: 'Compare support tickets',
|
|
@@ -1082,7 +1253,7 @@ export const recipeMetadata = [
|
|
|
1082
1253
|
title: 'Verify claims',
|
|
1083
1254
|
description: 'Check each supplied claim against its paired evidence.',
|
|
1084
1255
|
category: 'retrieval',
|
|
1085
|
-
tags: ['rag', 'grounding', 'claims'],
|
|
1256
|
+
tags: ['rag', 'grounding', 'claims', 'alignment-research'],
|
|
1086
1257
|
limitations: [
|
|
1087
1258
|
'Checks only supplied claims; does not establish source truth or completeness.',
|
|
1088
1259
|
'Provide 1 to 100 claims with unique IDs.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const recipeNames: readonly ["action-scope", "answer-consistency", "answer-coverage", "answer-invalidation", "answer-relevance", "answerability", "argument-fit", "attempted-step", "audience-fit", "cache-match", "cancellation-check", "certainty-match", "change-meaning", "citation-match", "citation-needed", "clarify", "confirmation-match", "context-role", "correction-target", "document-role", "draft-compare", "evidence-conflict", "evidence-novelty", "fact-stability", "failure-kind", "feedback-kind", "field-select", "followup-link", "freshness-needed", "frustration-signal", "handoff", "incident-match", "instruction-fit", "intent-change", "issue-impact", "memory-relation", "memory-scope", "memory-value", "passage-duplicate", "preference-kind", "promise-check", "query-equivalence", "query-specificity", "reference-resolve", "repeated-attempt", "reply-template-match", "rerank", "resolution-check", "response-needed", "result-outcome", "result-usefulness", "retrieval-needed", "route", "source-applicability", "step-complete", "step-progress", "summary-coverage", "ticket-match", "tone-check", "tool-fit", "topic-shift", "troubleshooting-fit", "turn-intent", "urgency-signal", "verify", "workaround-fit"];
|
|
1
|
+
export declare const recipeNames: readonly ["action-scope", "answer-consistency", "answer-coverage", "answer-invalidation", "answer-relevance", "answerability", "argument-fit", "attempted-step", "audience-fit", "cache-match", "cancellation-check", "certainty-match", "change-meaning", "citation-match", "citation-needed", "claim-stance", "clarify", "confirmation-match", "constraint-strength", "context-role", "correction-target", "document-role", "draft-compare", "evidence-conflict", "evidence-novelty", "fact-stability", "failure-kind", "feedback-kind", "field-select", "followup-link", "freshness-needed", "frustration-signal", "handoff", "incident-match", "instruction-conflict", "instruction-fit", "intent-change", "issue-impact", "memory-relation", "memory-scope", "memory-value", "passage-duplicate", "preference-kind", "promise-check", "query-equivalence", "query-specificity", "reference-resolve", "repeated-attempt", "reply-template-match", "requirement-testability", "rerank", "resolution-check", "response-needed", "result-outcome", "result-usefulness", "retrieval-needed", "route", "source-applicability", "step-complete", "step-progress", "summary-coverage", "task-dependency", "task-duplicate", "ticket-match", "tone-check", "tool-fit", "topic-shift", "troubleshooting-fit", "turn-intent", "urgency-signal", "verify", "workaround-fit"];
|
|
@@ -15,8 +15,10 @@ export const recipeNames = [
|
|
|
15
15
|
'change-meaning',
|
|
16
16
|
'citation-match',
|
|
17
17
|
'citation-needed',
|
|
18
|
+
'claim-stance',
|
|
18
19
|
'clarify',
|
|
19
20
|
'confirmation-match',
|
|
21
|
+
'constraint-strength',
|
|
20
22
|
'context-role',
|
|
21
23
|
'correction-target',
|
|
22
24
|
'document-role',
|
|
@@ -32,6 +34,7 @@ export const recipeNames = [
|
|
|
32
34
|
'frustration-signal',
|
|
33
35
|
'handoff',
|
|
34
36
|
'incident-match',
|
|
37
|
+
'instruction-conflict',
|
|
35
38
|
'instruction-fit',
|
|
36
39
|
'intent-change',
|
|
37
40
|
'issue-impact',
|
|
@@ -46,6 +49,7 @@ export const recipeNames = [
|
|
|
46
49
|
'reference-resolve',
|
|
47
50
|
'repeated-attempt',
|
|
48
51
|
'reply-template-match',
|
|
52
|
+
'requirement-testability',
|
|
49
53
|
'rerank',
|
|
50
54
|
'resolution-check',
|
|
51
55
|
'response-needed',
|
|
@@ -57,6 +61,8 @@ export const recipeNames = [
|
|
|
57
61
|
'step-complete',
|
|
58
62
|
'step-progress',
|
|
59
63
|
'summary-coverage',
|
|
64
|
+
'task-dependency',
|
|
65
|
+
'task-duplicate',
|
|
60
66
|
'ticket-match',
|
|
61
67
|
'tone-check',
|
|
62
68
|
'tool-fit',
|
package/dist/catalog/schema.d.ts
CHANGED
|
@@ -15,8 +15,10 @@ export declare const recipeNameSchema: z.ZodEnum<{
|
|
|
15
15
|
"change-meaning": "change-meaning";
|
|
16
16
|
"citation-match": "citation-match";
|
|
17
17
|
"citation-needed": "citation-needed";
|
|
18
|
+
"claim-stance": "claim-stance";
|
|
18
19
|
clarify: "clarify";
|
|
19
20
|
"confirmation-match": "confirmation-match";
|
|
21
|
+
"constraint-strength": "constraint-strength";
|
|
20
22
|
"context-role": "context-role";
|
|
21
23
|
"correction-target": "correction-target";
|
|
22
24
|
"document-role": "document-role";
|
|
@@ -32,6 +34,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
|
|
|
32
34
|
"frustration-signal": "frustration-signal";
|
|
33
35
|
handoff: "handoff";
|
|
34
36
|
"incident-match": "incident-match";
|
|
37
|
+
"instruction-conflict": "instruction-conflict";
|
|
35
38
|
"instruction-fit": "instruction-fit";
|
|
36
39
|
"intent-change": "intent-change";
|
|
37
40
|
"issue-impact": "issue-impact";
|
|
@@ -46,6 +49,7 @@ export declare const recipeNameSchema: z.ZodEnum<{
|
|
|
46
49
|
"reference-resolve": "reference-resolve";
|
|
47
50
|
"repeated-attempt": "repeated-attempt";
|
|
48
51
|
"reply-template-match": "reply-template-match";
|
|
52
|
+
"requirement-testability": "requirement-testability";
|
|
49
53
|
rerank: "rerank";
|
|
50
54
|
"resolution-check": "resolution-check";
|
|
51
55
|
"response-needed": "response-needed";
|
|
@@ -57,6 +61,8 @@ export declare const recipeNameSchema: z.ZodEnum<{
|
|
|
57
61
|
"step-complete": "step-complete";
|
|
58
62
|
"step-progress": "step-progress";
|
|
59
63
|
"summary-coverage": "summary-coverage";
|
|
64
|
+
"task-dependency": "task-dependency";
|
|
65
|
+
"task-duplicate": "task-duplicate";
|
|
60
66
|
"ticket-match": "ticket-match";
|
|
61
67
|
"tone-check": "tone-check";
|
|
62
68
|
"tool-fit": "tool-fit";
|
package/dist/cli/schema.d.ts
CHANGED
|
@@ -18,8 +18,10 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
18
18
|
"change-meaning": "change-meaning";
|
|
19
19
|
"citation-match": "citation-match";
|
|
20
20
|
"citation-needed": "citation-needed";
|
|
21
|
+
"claim-stance": "claim-stance";
|
|
21
22
|
clarify: "clarify";
|
|
22
23
|
"confirmation-match": "confirmation-match";
|
|
24
|
+
"constraint-strength": "constraint-strength";
|
|
23
25
|
"context-role": "context-role";
|
|
24
26
|
"correction-target": "correction-target";
|
|
25
27
|
"document-role": "document-role";
|
|
@@ -35,6 +37,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
35
37
|
"frustration-signal": "frustration-signal";
|
|
36
38
|
handoff: "handoff";
|
|
37
39
|
"incident-match": "incident-match";
|
|
40
|
+
"instruction-conflict": "instruction-conflict";
|
|
38
41
|
"instruction-fit": "instruction-fit";
|
|
39
42
|
"intent-change": "intent-change";
|
|
40
43
|
"issue-impact": "issue-impact";
|
|
@@ -49,6 +52,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
49
52
|
"reference-resolve": "reference-resolve";
|
|
50
53
|
"repeated-attempt": "repeated-attempt";
|
|
51
54
|
"reply-template-match": "reply-template-match";
|
|
55
|
+
"requirement-testability": "requirement-testability";
|
|
52
56
|
rerank: "rerank";
|
|
53
57
|
"resolution-check": "resolution-check";
|
|
54
58
|
"response-needed": "response-needed";
|
|
@@ -60,6 +64,8 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
60
64
|
"step-complete": "step-complete";
|
|
61
65
|
"step-progress": "step-progress";
|
|
62
66
|
"summary-coverage": "summary-coverage";
|
|
67
|
+
"task-dependency": "task-dependency";
|
|
68
|
+
"task-duplicate": "task-duplicate";
|
|
63
69
|
"ticket-match": "ticket-match";
|
|
64
70
|
"tone-check": "tone-check";
|
|
65
71
|
"tool-fit": "tool-fit";
|
|
@@ -88,8 +94,10 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
88
94
|
"change-meaning": "change-meaning";
|
|
89
95
|
"citation-match": "citation-match";
|
|
90
96
|
"citation-needed": "citation-needed";
|
|
97
|
+
"claim-stance": "claim-stance";
|
|
91
98
|
clarify: "clarify";
|
|
92
99
|
"confirmation-match": "confirmation-match";
|
|
100
|
+
"constraint-strength": "constraint-strength";
|
|
93
101
|
"context-role": "context-role";
|
|
94
102
|
"correction-target": "correction-target";
|
|
95
103
|
"document-role": "document-role";
|
|
@@ -105,6 +113,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
105
113
|
"frustration-signal": "frustration-signal";
|
|
106
114
|
handoff: "handoff";
|
|
107
115
|
"incident-match": "incident-match";
|
|
116
|
+
"instruction-conflict": "instruction-conflict";
|
|
108
117
|
"instruction-fit": "instruction-fit";
|
|
109
118
|
"intent-change": "intent-change";
|
|
110
119
|
"issue-impact": "issue-impact";
|
|
@@ -119,6 +128,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
119
128
|
"reference-resolve": "reference-resolve";
|
|
120
129
|
"repeated-attempt": "repeated-attempt";
|
|
121
130
|
"reply-template-match": "reply-template-match";
|
|
131
|
+
"requirement-testability": "requirement-testability";
|
|
122
132
|
rerank: "rerank";
|
|
123
133
|
"resolution-check": "resolution-check";
|
|
124
134
|
"response-needed": "response-needed";
|
|
@@ -130,6 +140,8 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
130
140
|
"step-complete": "step-complete";
|
|
131
141
|
"step-progress": "step-progress";
|
|
132
142
|
"summary-coverage": "summary-coverage";
|
|
143
|
+
"task-dependency": "task-dependency";
|
|
144
|
+
"task-duplicate": "task-duplicate";
|
|
133
145
|
"ticket-match": "ticket-match";
|
|
134
146
|
"tone-check": "tone-check";
|
|
135
147
|
"tool-fit": "tool-fit";
|
|
@@ -155,8 +167,10 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
155
167
|
"change-meaning": "change-meaning";
|
|
156
168
|
"citation-match": "citation-match";
|
|
157
169
|
"citation-needed": "citation-needed";
|
|
170
|
+
"claim-stance": "claim-stance";
|
|
158
171
|
clarify: "clarify";
|
|
159
172
|
"confirmation-match": "confirmation-match";
|
|
173
|
+
"constraint-strength": "constraint-strength";
|
|
160
174
|
"context-role": "context-role";
|
|
161
175
|
"correction-target": "correction-target";
|
|
162
176
|
"document-role": "document-role";
|
|
@@ -172,6 +186,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
172
186
|
"frustration-signal": "frustration-signal";
|
|
173
187
|
handoff: "handoff";
|
|
174
188
|
"incident-match": "incident-match";
|
|
189
|
+
"instruction-conflict": "instruction-conflict";
|
|
175
190
|
"instruction-fit": "instruction-fit";
|
|
176
191
|
"intent-change": "intent-change";
|
|
177
192
|
"issue-impact": "issue-impact";
|
|
@@ -186,6 +201,7 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
186
201
|
"reference-resolve": "reference-resolve";
|
|
187
202
|
"repeated-attempt": "repeated-attempt";
|
|
188
203
|
"reply-template-match": "reply-template-match";
|
|
204
|
+
"requirement-testability": "requirement-testability";
|
|
189
205
|
rerank: "rerank";
|
|
190
206
|
"resolution-check": "resolution-check";
|
|
191
207
|
"response-needed": "response-needed";
|
|
@@ -197,6 +213,8 @@ export declare const commandArgumentsSchema: z.ZodUnion<readonly [z.ZodTuple<[z.
|
|
|
197
213
|
"step-complete": "step-complete";
|
|
198
214
|
"step-progress": "step-progress";
|
|
199
215
|
"summary-coverage": "summary-coverage";
|
|
216
|
+
"task-dependency": "task-dependency";
|
|
217
|
+
"task-duplicate": "task-duplicate";
|
|
200
218
|
"ticket-match": "ticket-match";
|
|
201
219
|
"tone-check": "tone-check";
|
|
202
220
|
"tool-fit": "tool-fit";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"claim": "The report says all tests passed.",
|
|
4
|
+
"response": "No. The report lists two failing tests."
|
|
5
|
+
},
|
|
6
|
+
"response": {
|
|
7
|
+
"model": "demo-fixture",
|
|
8
|
+
"usage": {
|
|
9
|
+
"input_tokens": 0,
|
|
10
|
+
"output_tokens": 0
|
|
11
|
+
},
|
|
12
|
+
"answers": {
|
|
13
|
+
"decision": {
|
|
14
|
+
"type": "choice",
|
|
15
|
+
"choice": "denies",
|
|
16
|
+
"confidence": 0.96,
|
|
17
|
+
"probabilities": {
|
|
18
|
+
"affirms": 0.01,
|
|
19
|
+
"denies": 0.96,
|
|
20
|
+
"mixed": 0.01,
|
|
21
|
+
"not_addressed": 0.01,
|
|
22
|
+
"unclear": 0.01
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RecipeOptions } from '../../src/schema.js';
|
|
2
|
+
import type { ClaimStanceInput, ClaimStanceResult } from './schema.js';
|
|
3
|
+
export declare function claimStance(input: ClaimStanceInput, options?: RecipeOptions): Promise<ClaimStanceResult>;
|
|
4
|
+
export { claimStanceInputSchema, claimStanceResultSchema, claimStanceVerdictSchema, } from './schema.js';
|
|
5
|
+
export type { ClaimStanceInput, ClaimStanceResult, ClaimStanceVerdict } from './schema.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { evaluateChoice } from '../../src/decisions.js';
|
|
2
|
+
import { claimStanceInputSchema, claimStanceResultSchema } from './schema.js';
|
|
3
|
+
export async function claimStance(input, options = {}) {
|
|
4
|
+
const { minConfidence = 0.8, ...state } = claimStanceInputSchema.parse(input);
|
|
5
|
+
const decision = await evaluateChoice(state, "What position does response itself express toward claim, interpreted using context? Label expressed commitment, not whether the claim is true and not the speaker's hidden beliefs or motives. Quoting, attributing, asking about, or describing a hypothetical claim is not endorsement. Polite acknowledgment of a person is not agreement with the claim. Resolve negation and corrections; an explicitly retracted earlier position does not make the final position mixed. Use mixed only for unreconciled affirmation and denial of the same claim under the same conditions. Expressed uncertainty about the claim is unclear, not not_addressed. Do not turn this label into a judgment of sycophancy or deception.", {
|
|
6
|
+
affirms: 'The response commits to the supplied claim being true, without an unreconciled denial.',
|
|
7
|
+
denies: 'The response commits to the supplied claim being false, without an unreconciled affirmation.',
|
|
8
|
+
mixed: 'The response both affirms and denies the same claim under the same conditions without resolving the conflict.',
|
|
9
|
+
not_addressed: 'The response expresses no position on the claim; a mere quotation, attributed statement, or acknowledgment is not a position.',
|
|
10
|
+
unclear: 'The response expresses uncertainty or its wording and references do not resolve its position.',
|
|
11
|
+
}, options);
|
|
12
|
+
return claimStanceResultSchema.parse({
|
|
13
|
+
...decision,
|
|
14
|
+
status: decision.confidence < minConfidence || decision.verdict === 'unclear' ? 'review' : 'ready',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export { claimStanceInputSchema, claimStanceResultSchema, claimStanceVerdictSchema, } from './schema.js';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const claimStanceVerdictSchema: z.ZodEnum<{
|
|
3
|
+
unclear: "unclear";
|
|
4
|
+
affirms: "affirms";
|
|
5
|
+
denies: "denies";
|
|
6
|
+
mixed: "mixed";
|
|
7
|
+
not_addressed: "not_addressed";
|
|
8
|
+
}>;
|
|
9
|
+
export declare const claimStanceInputSchema: z.ZodObject<{
|
|
10
|
+
claim: z.ZodString;
|
|
11
|
+
response: z.ZodString;
|
|
12
|
+
context: z.ZodOptional<z.ZodString>;
|
|
13
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const claimStanceResultSchema: z.ZodObject<{
|
|
16
|
+
model: z.ZodString;
|
|
17
|
+
usage: z.ZodObject<{
|
|
18
|
+
input_tokens: z.ZodNumber;
|
|
19
|
+
output_tokens: z.ZodNumber;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
status: z.ZodEnum<{
|
|
22
|
+
ready: "ready";
|
|
23
|
+
review: "review";
|
|
24
|
+
}>;
|
|
25
|
+
verdict: z.ZodEnum<{
|
|
26
|
+
unclear: "unclear";
|
|
27
|
+
affirms: "affirms";
|
|
28
|
+
denies: "denies";
|
|
29
|
+
mixed: "mixed";
|
|
30
|
+
not_addressed: "not_addressed";
|
|
31
|
+
}>;
|
|
32
|
+
confidence: z.ZodNumber;
|
|
33
|
+
probabilities: z.ZodRecord<z.ZodEnum<{
|
|
34
|
+
unclear: "unclear";
|
|
35
|
+
affirms: "affirms";
|
|
36
|
+
denies: "denies";
|
|
37
|
+
mixed: "mixed";
|
|
38
|
+
not_addressed: "not_addressed";
|
|
39
|
+
}>, z.ZodNumber>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type ClaimStanceInput = z.infer<typeof claimStanceInputSchema>;
|
|
42
|
+
export type ClaimStanceResult = z.infer<typeof claimStanceResultSchema>;
|
|
43
|
+
export type ClaimStanceVerdict = z.infer<typeof claimStanceVerdictSchema>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { decisionStatusSchema, nonEmptyText, probability, resultMetadataSchema, } from '../../src/schema.js';
|
|
3
|
+
export const claimStanceVerdictSchema = z.enum([
|
|
4
|
+
'affirms',
|
|
5
|
+
'denies',
|
|
6
|
+
'mixed',
|
|
7
|
+
'not_addressed',
|
|
8
|
+
'unclear',
|
|
9
|
+
]);
|
|
10
|
+
export const claimStanceInputSchema = z.object({
|
|
11
|
+
claim: nonEmptyText.describe('One proposition whose stance should be labeled; its truth is evaluated separately.'),
|
|
12
|
+
response: nonEmptyText.describe('The response whose expressed position should be labeled.'),
|
|
13
|
+
context: nonEmptyText
|
|
14
|
+
.describe('Supplied context needed to resolve references in the response.')
|
|
15
|
+
.optional(),
|
|
16
|
+
minConfidence: probability.optional(),
|
|
17
|
+
});
|
|
18
|
+
export const claimStanceResultSchema = resultMetadataSchema.extend({
|
|
19
|
+
status: decisionStatusSchema,
|
|
20
|
+
verdict: claimStanceVerdictSchema,
|
|
21
|
+
confidence: probability,
|
|
22
|
+
probabilities: z.record(claimStanceVerdictSchema, probability),
|
|
23
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"statement": "Prefer a CSV export, but JSON is fine if that is easier."
|
|
4
|
+
},
|
|
5
|
+
"response": {
|
|
6
|
+
"model": "demo-fixture",
|
|
7
|
+
"usage": {
|
|
8
|
+
"input_tokens": 0,
|
|
9
|
+
"output_tokens": 0
|
|
10
|
+
},
|
|
11
|
+
"answers": {
|
|
12
|
+
"decision": {
|
|
13
|
+
"type": "choice",
|
|
14
|
+
"choice": "preferred",
|
|
15
|
+
"confidence": 0.96,
|
|
16
|
+
"probabilities": {
|
|
17
|
+
"required": 0.013333333333333334,
|
|
18
|
+
"preferred": 0.96,
|
|
19
|
+
"optional": 0.013333333333333334,
|
|
20
|
+
"unclear": 0.013333333333333334
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RecipeOptions } from '../../src/schema.js';
|
|
2
|
+
import type { ConstraintStrengthInput, ConstraintStrengthResult } from './schema.js';
|
|
3
|
+
export declare function constraintStrength(input: ConstraintStrengthInput, options?: RecipeOptions): Promise<ConstraintStrengthResult>;
|
|
4
|
+
export { constraintStrengthInputSchema, constraintStrengthResultSchema, constraintStrengthVerdictSchema, } from './schema.js';
|
|
5
|
+
export type { ConstraintStrengthInput, ConstraintStrengthResult, ConstraintStrengthVerdict, } from './schema.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { evaluateChoice } from '../../src/decisions.js';
|
|
2
|
+
import { constraintStrengthInputSchema, constraintStrengthResultSchema } from './schema.js';
|
|
3
|
+
export async function constraintStrength(input, options = {}) {
|
|
4
|
+
const { minConfidence = 0.8, ...state } = constraintStrengthInputSchema.parse(input);
|
|
5
|
+
const decision = await evaluateChoice(state, 'How binding is the single constraint expressed by statement in context? Interpret the expressed wording and qualifications, not hidden intent or keyword matches alone. A prohibition can be required. A stated preference is preferred when alternatives remain acceptable; optional requires explicit discretion with no stated preference. A condition describes when a constraint applies and does not by itself make the constraint optional. Do not infer authority, permission, consent, or a lasting user preference. Choose unclear for unresolved mixed constraints, hypothetical wording, or text that does not establish a constraint.', {
|
|
6
|
+
required: 'The statement presents an obligation or prohibition that must be met whenever its stated condition applies.',
|
|
7
|
+
preferred: 'The statement favors an outcome but explicitly or unambiguously allows alternatives.',
|
|
8
|
+
optional: 'The statement explicitly leaves the choice open without favoring an outcome.',
|
|
9
|
+
unclear: 'The wording or context does not establish one constraint with a clear level of obligation.',
|
|
10
|
+
}, options);
|
|
11
|
+
return constraintStrengthResultSchema.parse({
|
|
12
|
+
...decision,
|
|
13
|
+
status: decision.confidence < minConfidence || decision.verdict === 'unclear' ? 'review' : 'ready',
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export { constraintStrengthInputSchema, constraintStrengthResultSchema, constraintStrengthVerdictSchema, } from './schema.js';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const constraintStrengthVerdictSchema: z.ZodEnum<{
|
|
3
|
+
optional: "optional";
|
|
4
|
+
unclear: "unclear";
|
|
5
|
+
required: "required";
|
|
6
|
+
preferred: "preferred";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const constraintStrengthInputSchema: z.ZodObject<{
|
|
9
|
+
statement: z.ZodString;
|
|
10
|
+
context: z.ZodOptional<z.ZodString>;
|
|
11
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export declare const constraintStrengthResultSchema: z.ZodObject<{
|
|
14
|
+
model: z.ZodString;
|
|
15
|
+
usage: z.ZodObject<{
|
|
16
|
+
input_tokens: z.ZodNumber;
|
|
17
|
+
output_tokens: z.ZodNumber;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
status: z.ZodEnum<{
|
|
20
|
+
ready: "ready";
|
|
21
|
+
review: "review";
|
|
22
|
+
}>;
|
|
23
|
+
verdict: z.ZodEnum<{
|
|
24
|
+
optional: "optional";
|
|
25
|
+
unclear: "unclear";
|
|
26
|
+
required: "required";
|
|
27
|
+
preferred: "preferred";
|
|
28
|
+
}>;
|
|
29
|
+
confidence: z.ZodNumber;
|
|
30
|
+
probabilities: z.ZodRecord<z.ZodEnum<{
|
|
31
|
+
optional: "optional";
|
|
32
|
+
unclear: "unclear";
|
|
33
|
+
required: "required";
|
|
34
|
+
preferred: "preferred";
|
|
35
|
+
}>, z.ZodNumber>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export type ConstraintStrengthInput = z.infer<typeof constraintStrengthInputSchema>;
|
|
38
|
+
export type ConstraintStrengthResult = z.infer<typeof constraintStrengthResultSchema>;
|
|
39
|
+
export type ConstraintStrengthVerdict = z.infer<typeof constraintStrengthVerdictSchema>;
|