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.
Files changed (50) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README.md +18 -2
  3. package/dist/catalog/generated/details/claim-stance.json +55 -0
  4. package/dist/catalog/generated/details/constraint-strength.json +48 -0
  5. package/dist/catalog/generated/details/instruction-conflict.json +52 -0
  6. package/dist/catalog/generated/details/requirement-testability.json +45 -0
  7. package/dist/catalog/generated/details/task-dependency.json +61 -0
  8. package/dist/catalog/generated/details/task-duplicate.json +49 -0
  9. package/dist/catalog/generated/loaders.js +6 -0
  10. package/dist/catalog/generated/metadata.js +176 -5
  11. package/dist/catalog/generated/names.d.ts +1 -1
  12. package/dist/catalog/generated/names.js +6 -0
  13. package/dist/catalog/schema.d.ts +6 -0
  14. package/dist/cli/schema.d.ts +18 -0
  15. package/dist/recipes/claim-stance/demo.json +27 -0
  16. package/dist/recipes/claim-stance/index.d.ts +5 -0
  17. package/dist/recipes/claim-stance/index.js +17 -0
  18. package/dist/recipes/claim-stance/schema.d.ts +43 -0
  19. package/dist/recipes/claim-stance/schema.js +23 -0
  20. package/dist/recipes/constraint-strength/demo.json +25 -0
  21. package/dist/recipes/constraint-strength/index.d.ts +5 -0
  22. package/dist/recipes/constraint-strength/index.js +16 -0
  23. package/dist/recipes/constraint-strength/schema.d.ts +39 -0
  24. package/dist/recipes/constraint-strength/schema.js +21 -0
  25. package/dist/recipes/evidence-conflict/schema.d.ts +3 -3
  26. package/dist/recipes/instruction-conflict/demo.json +27 -0
  27. package/dist/recipes/instruction-conflict/index.d.ts +5 -0
  28. package/dist/recipes/instruction-conflict/index.js +16 -0
  29. package/dist/recipes/instruction-conflict/schema.d.ts +40 -0
  30. package/dist/recipes/instruction-conflict/schema.js +22 -0
  31. package/dist/recipes/preference-kind/schema.d.ts +3 -3
  32. package/dist/recipes/requirement-testability/demo.json +24 -0
  33. package/dist/recipes/requirement-testability/index.d.ts +5 -0
  34. package/dist/recipes/requirement-testability/index.js +15 -0
  35. package/dist/recipes/requirement-testability/schema.d.ts +36 -0
  36. package/dist/recipes/requirement-testability/schema.js +16 -0
  37. package/dist/recipes/task-dependency/demo.json +28 -0
  38. package/dist/recipes/task-dependency/index.d.ts +5 -0
  39. package/dist/recipes/task-dependency/index.js +17 -0
  40. package/dist/recipes/task-dependency/schema.d.ts +43 -0
  41. package/dist/recipes/task-dependency/schema.js +23 -0
  42. package/dist/recipes/task-duplicate/demo.json +27 -0
  43. package/dist/recipes/task-duplicate/index.d.ts +5 -0
  44. package/dist/recipes/task-duplicate/index.js +16 -0
  45. package/dist/recipes/task-duplicate/schema.d.ts +40 -0
  46. package/dist/recipes/task-duplicate/schema.js +22 -0
  47. package/dist/recipes/topic-shift/schema.d.ts +3 -3
  48. package/dist/src/index.d.ts +12 -0
  49. package/dist/src/index.js +6 -0
  50. package/package.json +25 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - Add six focused recipes: `instruction-conflict`, `task-dependency`, `task-duplicate`, `constraint-strength`, `requirement-testability`, and `claim-stance`.
6
+ - Add a catalog growth roadmap, an AI alignment research protocol, research discovery tags, and an offline first-use command in the README.
7
+
5
8
  - Generate exports, catalog data, schema descriptions, and documentation from recipe folders; add authoring checks and a recipe scaffold.
6
9
  - Add usage guidance and related recipes to the catalog, ranked search, optional search limits, and lazy recipe loading.
7
10
  - Add Make commands and offline tooling checks, including a 1,000-entry capacity exercise and installation of the actual npm archive.
package/README.md CHANGED
@@ -4,14 +4,24 @@
4
4
 
5
5
  <!-- BEGIN GENERATED: summary -->
6
6
 
7
- 66 small TypeScript recipes for decisions inside an AI application. Route a request, select useful evidence, or check a claim with a function call.
7
+ 72 small TypeScript recipes for decisions inside an AI application. Route a request, select useful evidence, or check a claim with a function call.
8
8
 
9
- [Browse all 66 recipes](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/README.md).
9
+ [Browse all 72 recipes](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/README.md).
10
10
 
11
11
  <!-- END GENERATED: summary -->
12
12
 
13
13
  [Jev](https://docs.typesafe.ai/introduction) makes the underlying decisions. This package supplies focused instructions, validated inputs and results, and clear review outcomes. Your application decides what to do next.
14
14
 
15
+ ## Try a decision
16
+
17
+ With Node.js 22.9 or newer, run a saved illustration without an API key:
18
+
19
+ ```sh
20
+ npx jev-recipes demo action-scope
21
+ ```
22
+
23
+ It compares a request to explain a deployment failure with a proposed production deployment and returns `additional_work`. This is an offline fixture, not a live model assessment. To evaluate your own input, install the package and set a key below.
24
+
15
25
  ## Use a recipe
16
26
 
17
27
  Requires Node.js 22.9 or newer. Install in your application:
@@ -94,6 +104,12 @@ Use direct imports such as `jev-recipes/route` to load a recipe and its dependen
94
104
 
95
105
  Your application owns retrieval, generation, storage, and actions. Each recipe returns a decision. See [shared behavior and limits](https://github.com/agencyenterprise/jev-recipes/blob/main/recipes/README.md#shared-options-and-behavior).
96
106
 
107
+ ## AI alignment research
108
+
109
+ Use focused decisions to annotate model outputs for research. `claim-stance` labels a response's expressed agreement with a claim; `verify` checks supplied evidence; `draft-compare` compares responses under a rubric. These are candidate components of an evaluation, with uncertainty available for review.
110
+
111
+ The [AI alignment research guide](https://github.com/agencyenterprise/jev-recipes/blob/main/docs/ai-alignment-research.md) outlines a controlled agreement study, human annotation checks, and ways to work with saved outputs. The recipes do not infer a model's internal motives or establish that it is aligned.
112
+
97
113
  ## Contribute
98
114
 
99
115
  The recipe folder owns its code, schemas, metadata, demo, and guide. Tests stay under `tests/recipe/` and are not published. Exports and the catalog are generated from the recipe folders.
@@ -0,0 +1,55 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "claim": {
7
+ "type": "string",
8
+ "description": "One proposition whose stance should be labeled; its truth is evaluated separately."
9
+ },
10
+ "response": {
11
+ "type": "string",
12
+ "description": "The response whose expressed position should be labeled."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Supplied context needed to resolve references in the response."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["claim", "response"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": {
38
+ "type": "string",
39
+ "enum": ["affirms", "denies", "mixed", "not_addressed", "unclear"]
40
+ },
41
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
42
+ "probabilities": {
43
+ "type": "object",
44
+ "propertyNames": {
45
+ "type": "string",
46
+ "enum": ["affirms", "denies", "mixed", "not_addressed", "unclear"]
47
+ },
48
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
49
+ "required": ["affirms", "denies", "mixed", "not_addressed", "unclear"]
50
+ }
51
+ },
52
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
53
+ "additionalProperties": false
54
+ }
55
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "statement": {
7
+ "type": "string",
8
+ "description": "One constraint or preference to interpret."
9
+ },
10
+ "context": {
11
+ "type": "string",
12
+ "description": "The surrounding request and any qualifications that clarify its force."
13
+ },
14
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
15
+ },
16
+ "required": ["statement"]
17
+ },
18
+ "resultSchema": {
19
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
20
+ "type": "object",
21
+ "properties": {
22
+ "model": { "type": "string" },
23
+ "usage": {
24
+ "type": "object",
25
+ "properties": {
26
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
27
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
28
+ },
29
+ "required": ["input_tokens", "output_tokens"],
30
+ "additionalProperties": false
31
+ },
32
+ "status": { "type": "string", "enum": ["ready", "review"] },
33
+ "verdict": { "type": "string", "enum": ["required", "preferred", "optional", "unclear"] },
34
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
35
+ "probabilities": {
36
+ "type": "object",
37
+ "propertyNames": {
38
+ "type": "string",
39
+ "enum": ["required", "preferred", "optional", "unclear"]
40
+ },
41
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
42
+ "required": ["required", "preferred", "optional", "unclear"]
43
+ }
44
+ },
45
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
46
+ "additionalProperties": false
47
+ }
48
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "firstInstruction": { "type": "string", "description": "The first instruction to compare." },
7
+ "secondInstruction": {
8
+ "type": "string",
9
+ "description": "The second instruction to compare."
10
+ },
11
+ "context": {
12
+ "type": "string",
13
+ "description": "The task and circumstances in which the instructions may apply."
14
+ },
15
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
16
+ },
17
+ "required": ["firstInstruction", "secondInstruction"]
18
+ },
19
+ "resultSchema": {
20
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
21
+ "type": "object",
22
+ "properties": {
23
+ "model": { "type": "string" },
24
+ "usage": {
25
+ "type": "object",
26
+ "properties": {
27
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
28
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
29
+ },
30
+ "required": ["input_tokens", "output_tokens"],
31
+ "additionalProperties": false
32
+ },
33
+ "status": { "type": "string", "enum": ["ready", "review"] },
34
+ "verdict": {
35
+ "type": "string",
36
+ "enum": ["compatible", "conflicting", "different_scope", "unclear"]
37
+ },
38
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
39
+ "probabilities": {
40
+ "type": "object",
41
+ "propertyNames": {
42
+ "type": "string",
43
+ "enum": ["compatible", "conflicting", "different_scope", "unclear"]
44
+ },
45
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
46
+ "required": ["compatible", "conflicting", "different_scope", "unclear"]
47
+ }
48
+ },
49
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
50
+ "additionalProperties": false
51
+ }
52
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "requirement": {
7
+ "type": "string",
8
+ "description": "One requirement whose completion criteria need review."
9
+ },
10
+ "context": {
11
+ "type": "string",
12
+ "description": "Supplied definitions, acceptance criteria, and observation conditions."
13
+ },
14
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
15
+ },
16
+ "required": ["requirement"]
17
+ },
18
+ "resultSchema": {
19
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
20
+ "type": "object",
21
+ "properties": {
22
+ "model": { "type": "string" },
23
+ "usage": {
24
+ "type": "object",
25
+ "properties": {
26
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
27
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
28
+ },
29
+ "required": ["input_tokens", "output_tokens"],
30
+ "additionalProperties": false
31
+ },
32
+ "status": { "type": "string", "enum": ["ready", "review"] },
33
+ "verdict": { "type": "string", "enum": ["testable", "not_testable", "unclear"] },
34
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
35
+ "probabilities": {
36
+ "type": "object",
37
+ "propertyNames": { "type": "string", "enum": ["testable", "not_testable", "unclear"] },
38
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
39
+ "required": ["testable", "not_testable", "unclear"]
40
+ }
41
+ },
42
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
43
+ "additionalProperties": false
44
+ }
45
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "firstTask": {
7
+ "type": "string",
8
+ "description": "The first task, including its inputs and output when known."
9
+ },
10
+ "secondTask": {
11
+ "type": "string",
12
+ "description": "The second task, including its inputs and output when known."
13
+ },
14
+ "context": {
15
+ "type": "string",
16
+ "description": "Known prerequisites, available inputs, and relevant workflow conditions."
17
+ },
18
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
19
+ },
20
+ "required": ["firstTask", "secondTask"]
21
+ },
22
+ "resultSchema": {
23
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24
+ "type": "object",
25
+ "properties": {
26
+ "model": { "type": "string" },
27
+ "usage": {
28
+ "type": "object",
29
+ "properties": {
30
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
31
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
32
+ },
33
+ "required": ["input_tokens", "output_tokens"],
34
+ "additionalProperties": false
35
+ },
36
+ "status": { "type": "string", "enum": ["ready", "review"] },
37
+ "verdict": {
38
+ "type": "string",
39
+ "enum": ["first_before_second", "second_before_first", "independent", "cyclic", "unclear"]
40
+ },
41
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
42
+ "probabilities": {
43
+ "type": "object",
44
+ "propertyNames": {
45
+ "type": "string",
46
+ "enum": ["first_before_second", "second_before_first", "independent", "cyclic", "unclear"]
47
+ },
48
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
49
+ "required": [
50
+ "first_before_second",
51
+ "second_before_first",
52
+ "independent",
53
+ "cyclic",
54
+ "unclear"
55
+ ]
56
+ }
57
+ },
58
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
59
+ "additionalProperties": false
60
+ }
61
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "inputSchema": {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "firstTask": { "type": "string", "description": "The first task and its intended outcome." },
7
+ "secondTask": {
8
+ "type": "string",
9
+ "description": "The second task and its intended outcome."
10
+ },
11
+ "context": {
12
+ "type": "string",
13
+ "description": "Relevant targets, scope, time periods, and constraints for the comparison."
14
+ },
15
+ "minConfidence": { "type": "number", "minimum": 0, "maximum": 1 }
16
+ },
17
+ "required": ["firstTask", "secondTask"]
18
+ },
19
+ "resultSchema": {
20
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
21
+ "type": "object",
22
+ "properties": {
23
+ "model": { "type": "string" },
24
+ "usage": {
25
+ "type": "object",
26
+ "properties": {
27
+ "input_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
28
+ "output_tokens": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
29
+ },
30
+ "required": ["input_tokens", "output_tokens"],
31
+ "additionalProperties": false
32
+ },
33
+ "status": { "type": "string", "enum": ["ready", "review"] },
34
+ "verdict": { "type": "string", "enum": ["duplicate", "overlapping", "distinct", "unclear"] },
35
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
36
+ "probabilities": {
37
+ "type": "object",
38
+ "propertyNames": {
39
+ "type": "string",
40
+ "enum": ["duplicate", "overlapping", "distinct", "unclear"]
41
+ },
42
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 1 },
43
+ "required": ["duplicate", "overlapping", "distinct", "unclear"]
44
+ }
45
+ },
46
+ "required": ["model", "usage", "status", "verdict", "confidence", "probabilities"],
47
+ "additionalProperties": false
48
+ }
49
+ }
@@ -14,8 +14,10 @@ export const recipeLoaders = {
14
14
  'change-meaning': () => import('../../recipes/change-meaning/index.js').then((recipe) => (input, options) => recipe.changeMeaning(recipe.changeMeaningInputSchema.parse(input), options)),
15
15
  'citation-match': () => import('../../recipes/citation-match/index.js').then((recipe) => (input, options) => recipe.citationMatch(recipe.citationMatchInputSchema.parse(input), options)),
16
16
  'citation-needed': () => import('../../recipes/citation-needed/index.js').then((recipe) => (input, options) => recipe.citationNeeded(recipe.citationNeededInputSchema.parse(input), options)),
17
+ 'claim-stance': () => import('../../recipes/claim-stance/index.js').then((recipe) => (input, options) => recipe.claimStance(recipe.claimStanceInputSchema.parse(input), options)),
17
18
  clarify: () => import('../../recipes/clarify/index.js').then((recipe) => (input, options) => recipe.clarify(recipe.clarifyInputSchema.parse(input), options)),
18
19
  'confirmation-match': () => import('../../recipes/confirmation-match/index.js').then((recipe) => (input, options) => recipe.confirmationMatch(recipe.confirmationMatchInputSchema.parse(input), options)),
20
+ 'constraint-strength': () => import('../../recipes/constraint-strength/index.js').then((recipe) => (input, options) => recipe.constraintStrength(recipe.constraintStrengthInputSchema.parse(input), options)),
19
21
  'context-role': () => import('../../recipes/context-role/index.js').then((recipe) => (input, options) => recipe.contextRole(recipe.contextRoleInputSchema.parse(input), options)),
20
22
  'correction-target': () => import('../../recipes/correction-target/index.js').then((recipe) => (input, options) => recipe.correctionTarget(recipe.correctionTargetInputSchema.parse(input), options)),
21
23
  'document-role': () => import('../../recipes/document-role/index.js').then((recipe) => (input, options) => recipe.documentRole(recipe.documentRoleInputSchema.parse(input), options)),
@@ -31,6 +33,7 @@ export const recipeLoaders = {
31
33
  'frustration-signal': () => import('../../recipes/frustration-signal/index.js').then((recipe) => (input, options) => recipe.frustrationSignal(recipe.frustrationSignalInputSchema.parse(input), options)),
32
34
  handoff: () => import('../../recipes/handoff/index.js').then((recipe) => (input, options) => recipe.handoff(recipe.handoffInputSchema.parse(input), options)),
33
35
  'incident-match': () => import('../../recipes/incident-match/index.js').then((recipe) => (input, options) => recipe.incidentMatch(recipe.incidentMatchInputSchema.parse(input), options)),
36
+ 'instruction-conflict': () => import('../../recipes/instruction-conflict/index.js').then((recipe) => (input, options) => recipe.instructionConflict(recipe.instructionConflictInputSchema.parse(input), options)),
34
37
  'instruction-fit': () => import('../../recipes/instruction-fit/index.js').then((recipe) => (input, options) => recipe.instructionFit(recipe.instructionFitInputSchema.parse(input), options)),
35
38
  'intent-change': () => import('../../recipes/intent-change/index.js').then((recipe) => (input, options) => recipe.intentChange(recipe.intentChangeInputSchema.parse(input), options)),
36
39
  'issue-impact': () => import('../../recipes/issue-impact/index.js').then((recipe) => (input, options) => recipe.issueImpact(recipe.issueImpactInputSchema.parse(input), options)),
@@ -45,6 +48,7 @@ export const recipeLoaders = {
45
48
  'reference-resolve': () => import('../../recipes/reference-resolve/index.js').then((recipe) => (input, options) => recipe.referenceResolve(recipe.referenceResolveInputSchema.parse(input), options)),
46
49
  'repeated-attempt': () => import('../../recipes/repeated-attempt/index.js').then((recipe) => (input, options) => recipe.repeatedAttempt(recipe.repeatedAttemptInputSchema.parse(input), options)),
47
50
  'reply-template-match': () => import('../../recipes/reply-template-match/index.js').then((recipe) => (input, options) => recipe.replyTemplateMatch(recipe.replyTemplateMatchInputSchema.parse(input), options)),
51
+ 'requirement-testability': () => import('../../recipes/requirement-testability/index.js').then((recipe) => (input, options) => recipe.requirementTestability(recipe.requirementTestabilityInputSchema.parse(input), options)),
48
52
  rerank: () => import('../../recipes/rerank/index.js').then((recipe) => (input, options) => recipe.rerank(recipe.rerankInputSchema.parse(input), options)),
49
53
  'resolution-check': () => import('../../recipes/resolution-check/index.js').then((recipe) => (input, options) => recipe.resolutionCheck(recipe.resolutionCheckInputSchema.parse(input), options)),
50
54
  'response-needed': () => import('../../recipes/response-needed/index.js').then((recipe) => (input, options) => recipe.responseNeeded(recipe.responseNeededInputSchema.parse(input), options)),
@@ -56,6 +60,8 @@ export const recipeLoaders = {
56
60
  'step-complete': () => import('../../recipes/step-complete/index.js').then((recipe) => (input, options) => recipe.stepComplete(recipe.stepCompleteInputSchema.parse(input), options)),
57
61
  'step-progress': () => import('../../recipes/step-progress/index.js').then((recipe) => (input, options) => recipe.stepProgress(recipe.stepProgressInputSchema.parse(input), options)),
58
62
  'summary-coverage': () => import('../../recipes/summary-coverage/index.js').then((recipe) => (input, options) => recipe.summaryCoverage(recipe.summaryCoverageInputSchema.parse(input), options)),
63
+ 'task-dependency': () => import('../../recipes/task-dependency/index.js').then((recipe) => (input, options) => recipe.taskDependency(recipe.taskDependencyInputSchema.parse(input), options)),
64
+ 'task-duplicate': () => import('../../recipes/task-duplicate/index.js').then((recipe) => (input, options) => recipe.taskDuplicate(recipe.taskDuplicateInputSchema.parse(input), options)),
59
65
  'ticket-match': () => import('../../recipes/ticket-match/index.js').then((recipe) => (input, options) => recipe.ticketMatch(recipe.ticketMatchInputSchema.parse(input), options)),
60
66
  'tone-check': () => import('../../recipes/tone-check/index.js').then((recipe) => (input, options) => recipe.toneCheck(recipe.toneCheckInputSchema.parse(input), options)),
61
67
  'tool-fit': () => import('../../recipes/tool-fit/index.js').then((recipe) => (input, options) => recipe.toolFit(recipe.toolFitInputSchema.parse(input), options)),