@lmctl-ai/lmctl 0.1.11 → 0.1.12
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/dist/cli/index.js +188 -185
- package/package.json +1 -1
- package/workflows/index.jsonl +1 -0
- package/workflows/research.compound.json +120 -0
package/package.json
CHANGED
package/workflows/index.jsonl
CHANGED
|
@@ -11,5 +11,6 @@
|
|
|
11
11
|
{"name":"pr-followup-v2","file":"pr-followup-v2.compound.json","description":"Follows up on pull-request feedback, applies needed changes, verifies them, and reports whether the PR is ready."}
|
|
12
12
|
{"name":"provider-probe","file":"provider-probe.compound.json","description":"Checks whether configured AI providers and team members can respond successfully in the current environment."}
|
|
13
13
|
{"name":"qa-suite","file":"qa-suite.compound.json","description":"Runs project QA chapters, interprets failures, creates project issues for failing chapters, and reports the open issue count."}
|
|
14
|
+
{"name":"research","file":"research.compound.json","description":"Fans a research question out to three researchers in parallel, then has Lead consolidate one final answer."}
|
|
14
15
|
{"name":"spec-driven-task","file":"spec-driven-task.compound.json","description":"Turns a written task specification into project changes through agent implementation, review, and verification."}
|
|
15
16
|
{"name":"triage-v2","file":"triage-v2.compound.json","description":"Triages incoming issues, filters duplicates or unclear reports, assesses fixability, and produces candidate work items."}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "lmctl/v3",
|
|
3
|
+
"definition_schema_version": 3,
|
|
4
|
+
"name": "research",
|
|
5
|
+
"version": 1,
|
|
6
|
+
"description": "Fans a research question out to three researchers in parallel, then has Lead consolidate one final answer.",
|
|
7
|
+
"estimated_duration_ms": 120000,
|
|
8
|
+
"errors": {
|
|
9
|
+
"on_unhandled_failure": {
|
|
10
|
+
"attention_kind": "workflow_failed",
|
|
11
|
+
"severity": "error",
|
|
12
|
+
"capture_evidence": true
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"inputs": [
|
|
16
|
+
{
|
|
17
|
+
"name": "research_question",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"required": true,
|
|
20
|
+
"description": "Research question to answer."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "output_path",
|
|
24
|
+
"type": "string",
|
|
25
|
+
"required": false,
|
|
26
|
+
"description": "Optional markdown path for the consolidated answer."
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"outputs": [
|
|
30
|
+
{
|
|
31
|
+
"name": "answer",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"source_step_id": "s-research-consolidate-8f31",
|
|
34
|
+
"source_field": "consolidated_output",
|
|
35
|
+
"description": "Consolidated answer from Lead."
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"steps": [
|
|
39
|
+
{
|
|
40
|
+
"id": "s-research-consolidate-8f31",
|
|
41
|
+
"name": "research",
|
|
42
|
+
"type": "lmctl/consolidate",
|
|
43
|
+
"typeVersion": 1,
|
|
44
|
+
"estimated_duration_ms": 120000,
|
|
45
|
+
"parameters": {
|
|
46
|
+
"research_artifact_prefix": "research"
|
|
47
|
+
},
|
|
48
|
+
"members": {
|
|
49
|
+
"researchers": [
|
|
50
|
+
{
|
|
51
|
+
"team": "default",
|
|
52
|
+
"alias": "Researcher1",
|
|
53
|
+
"topic": "Evidence and primary facts",
|
|
54
|
+
"prompt_template": "Research the question independently. Focus on concrete facts, primary evidence, and what is known versus unknown.\n\nQuestion: {{job_payload.research_question}}"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"team": "default",
|
|
58
|
+
"alias": "Researcher2",
|
|
59
|
+
"topic": "Contradictions and caveats",
|
|
60
|
+
"prompt_template": "Research the same question from a second angle. Look for contradictions, caveats, weak assumptions, and source-quality concerns.\n\nQuestion: {{job_payload.research_question}}"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"team": "default",
|
|
64
|
+
"alias": "Researcher3",
|
|
65
|
+
"topic": "Implications and next steps",
|
|
66
|
+
"prompt_template": "Research the same question with emphasis on practical implications, open questions, and recommended next checks.\n\nQuestion: {{job_payload.research_question}}"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"consolidator": {
|
|
70
|
+
"team": "default",
|
|
71
|
+
"alias": "Lead",
|
|
72
|
+
"prompt_template": "Consolidate the three research notes into one clear answer. Preserve important caveats, call out uncertainty, and avoid unsupported claims.\n\nQuestion: {{job_payload.research_question}}\n\nIf job_payload.output_path is set, write the final markdown answer there.\n\nEnd with exactly:\nSTANCE: ok"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "s-terminal-done-c4d8",
|
|
78
|
+
"name": "terminal:done",
|
|
79
|
+
"type": "lmctl/terminal",
|
|
80
|
+
"typeVersion": 1,
|
|
81
|
+
"parameters": {
|
|
82
|
+
"name": "done",
|
|
83
|
+
"kind": "success"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "s-terminal-aborted-f07c",
|
|
88
|
+
"name": "terminal:aborted",
|
|
89
|
+
"type": "lmctl/terminal",
|
|
90
|
+
"typeVersion": 1,
|
|
91
|
+
"parameters": {
|
|
92
|
+
"name": "aborted",
|
|
93
|
+
"kind": "failure"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"connections": {
|
|
98
|
+
"s-research-consolidate-8f31": {
|
|
99
|
+
"ok": [
|
|
100
|
+
[
|
|
101
|
+
{
|
|
102
|
+
"step_id": "s-terminal-done-c4d8",
|
|
103
|
+
"type": "main",
|
|
104
|
+
"index": 0
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
],
|
|
108
|
+
"error": [
|
|
109
|
+
[
|
|
110
|
+
{
|
|
111
|
+
"step_id": "s-terminal-aborted-f07c",
|
|
112
|
+
"type": "main",
|
|
113
|
+
"index": 0
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"entry_step_id": "s-research-consolidate-8f31"
|
|
120
|
+
}
|