@leclabs/agent-flow-navigator-mcp 1.0.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/README.md +260 -0
- package/catalog/workflows/agile-task.json +130 -0
- package/catalog/workflows/bug-fix.json +153 -0
- package/catalog/workflows/context-optimization.json +130 -0
- package/catalog/workflows/feature-development.json +225 -0
- package/catalog/workflows/quick-task.json +115 -0
- package/catalog/workflows/test-coverage.json +153 -0
- package/catalog/workflows/ui-reconstruction.json +241 -0
- package/catalog.js +64 -0
- package/copier.js +179 -0
- package/diagram.js +146 -0
- package/dialog.js +63 -0
- package/engine.js +467 -0
- package/index.js +378 -0
- package/package.json +49 -0
- package/store.js +90 -0
- package/types.d.ts +133 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "feature-development",
|
|
3
|
+
"name": "Feature Development",
|
|
4
|
+
"description": "End-to-end workflow for building features from GitHub issues or requirements. Includes planning, implementation, testing, and PR creation.",
|
|
5
|
+
"nodes": {
|
|
6
|
+
"start": {
|
|
7
|
+
"type": "start",
|
|
8
|
+
"name": "Start",
|
|
9
|
+
"description": "Feature development begins"
|
|
10
|
+
},
|
|
11
|
+
"parse_requirements": {
|
|
12
|
+
"type": "task",
|
|
13
|
+
"name": "Parse Requirements",
|
|
14
|
+
"description": "Extract acceptance criteria and requirements from the issue or request",
|
|
15
|
+
"agent": "Planner",
|
|
16
|
+
"stage": "planning"
|
|
17
|
+
},
|
|
18
|
+
"explore_codebase": {
|
|
19
|
+
"type": "task",
|
|
20
|
+
"name": "Explore Codebase",
|
|
21
|
+
"description": "Find relevant files, understand patterns, identify where changes are needed",
|
|
22
|
+
"agent": "Planner",
|
|
23
|
+
"stage": "planning"
|
|
24
|
+
},
|
|
25
|
+
"create_plan": {
|
|
26
|
+
"type": "task",
|
|
27
|
+
"name": "Create Plan",
|
|
28
|
+
"description": "Write implementation plan with specific files and changes needed",
|
|
29
|
+
"agent": "Planner",
|
|
30
|
+
"stage": "planning"
|
|
31
|
+
},
|
|
32
|
+
"plan_review": {
|
|
33
|
+
"type": "gate",
|
|
34
|
+
"name": "Review Plan",
|
|
35
|
+
"description": "Verify plan is complete and feasible",
|
|
36
|
+
"agent": "Reviewer",
|
|
37
|
+
"stage": "planning",
|
|
38
|
+
"maxRetries": 2,
|
|
39
|
+
"config": {
|
|
40
|
+
"scrutinyLevel": 2
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"implement": {
|
|
44
|
+
"type": "task",
|
|
45
|
+
"name": "Implement",
|
|
46
|
+
"description": "Write the code following the plan",
|
|
47
|
+
"agent": "Developer",
|
|
48
|
+
"stage": "development"
|
|
49
|
+
},
|
|
50
|
+
"write_tests": {
|
|
51
|
+
"type": "task",
|
|
52
|
+
"name": "Write Tests",
|
|
53
|
+
"description": "Add unit and integration tests for the new feature",
|
|
54
|
+
"agent": "Tester",
|
|
55
|
+
"stage": "development"
|
|
56
|
+
},
|
|
57
|
+
"run_tests": {
|
|
58
|
+
"type": "task",
|
|
59
|
+
"name": "Run Tests",
|
|
60
|
+
"description": "Execute test suite and verify all tests pass",
|
|
61
|
+
"agent": "Tester",
|
|
62
|
+
"stage": "verification",
|
|
63
|
+
"maxRetries": 3
|
|
64
|
+
},
|
|
65
|
+
"code_review": {
|
|
66
|
+
"type": "gate",
|
|
67
|
+
"name": "Code Review",
|
|
68
|
+
"description": "Review code quality, patterns, and correctness",
|
|
69
|
+
"agent": "Reviewer",
|
|
70
|
+
"stage": "verification",
|
|
71
|
+
"maxRetries": 2,
|
|
72
|
+
"config": {
|
|
73
|
+
"scrutinyLevel": 3
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"lint_format": {
|
|
77
|
+
"type": "gate",
|
|
78
|
+
"name": "Lint & Format",
|
|
79
|
+
"description": "Run lint and format checks. Auto-fix issues where possible.",
|
|
80
|
+
"agent": "Developer",
|
|
81
|
+
"stage": "delivery",
|
|
82
|
+
"maxRetries": 3
|
|
83
|
+
},
|
|
84
|
+
"commit": {
|
|
85
|
+
"type": "task",
|
|
86
|
+
"name": "Commit Changes",
|
|
87
|
+
"description": "Commit all changes with a descriptive message summarizing the work done",
|
|
88
|
+
"agent": "Developer",
|
|
89
|
+
"stage": "delivery"
|
|
90
|
+
},
|
|
91
|
+
"create_pr": {
|
|
92
|
+
"type": "task",
|
|
93
|
+
"name": "Create PR",
|
|
94
|
+
"description": "Create pull request with summary and test plan",
|
|
95
|
+
"agent": "Developer",
|
|
96
|
+
"stage": "delivery"
|
|
97
|
+
},
|
|
98
|
+
"end_success": {
|
|
99
|
+
"type": "end",
|
|
100
|
+
"result": "success",
|
|
101
|
+
"name": "Complete",
|
|
102
|
+
"description": "Feature delivered successfully"
|
|
103
|
+
},
|
|
104
|
+
"hitl_plan_failed": {
|
|
105
|
+
"type": "end",
|
|
106
|
+
"result": "blocked",
|
|
107
|
+
"escalation": "hitl",
|
|
108
|
+
"name": "Plan Needs Help",
|
|
109
|
+
"description": "Planning phase needs human input"
|
|
110
|
+
},
|
|
111
|
+
"hitl_impl_failed": {
|
|
112
|
+
"type": "end",
|
|
113
|
+
"result": "blocked",
|
|
114
|
+
"escalation": "hitl",
|
|
115
|
+
"name": "Implementation Blocked",
|
|
116
|
+
"description": "Implementation needs human intervention"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"edges": [
|
|
120
|
+
{
|
|
121
|
+
"from": "start",
|
|
122
|
+
"to": "parse_requirements"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"from": "parse_requirements",
|
|
126
|
+
"to": "explore_codebase"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"from": "explore_codebase",
|
|
130
|
+
"to": "create_plan"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"from": "create_plan",
|
|
134
|
+
"to": "plan_review"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"from": "plan_review",
|
|
138
|
+
"to": "create_plan",
|
|
139
|
+
"on": "failed",
|
|
140
|
+
"label": "Revise plan based on feedback"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"from": "plan_review",
|
|
144
|
+
"to": "hitl_plan_failed",
|
|
145
|
+
"on": "failed",
|
|
146
|
+
"label": "Planning exhausted retries"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"from": "plan_review",
|
|
150
|
+
"to": "implement",
|
|
151
|
+
"on": "passed",
|
|
152
|
+
"label": "Plan approved, begin implementation"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"from": "implement",
|
|
156
|
+
"to": "write_tests"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"from": "write_tests",
|
|
160
|
+
"to": "run_tests"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"from": "run_tests",
|
|
164
|
+
"to": "implement",
|
|
165
|
+
"on": "failed",
|
|
166
|
+
"label": "Fix failing tests"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"from": "run_tests",
|
|
170
|
+
"to": "hitl_impl_failed",
|
|
171
|
+
"on": "failed",
|
|
172
|
+
"label": "Tests keep failing"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"from": "run_tests",
|
|
176
|
+
"to": "code_review",
|
|
177
|
+
"on": "passed",
|
|
178
|
+
"label": "Tests pass, ready for review"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"from": "code_review",
|
|
182
|
+
"to": "implement",
|
|
183
|
+
"on": "failed",
|
|
184
|
+
"label": "Address review feedback"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"from": "code_review",
|
|
188
|
+
"to": "hitl_impl_failed",
|
|
189
|
+
"on": "failed",
|
|
190
|
+
"label": "Review issues persist"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"from": "code_review",
|
|
194
|
+
"to": "lint_format",
|
|
195
|
+
"on": "passed",
|
|
196
|
+
"label": "Code approved, run lint checks"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"from": "lint_format",
|
|
200
|
+
"to": "commit",
|
|
201
|
+
"on": "passed",
|
|
202
|
+
"label": "Lint passes, commit changes"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"from": "lint_format",
|
|
206
|
+
"to": "implement",
|
|
207
|
+
"on": "failed",
|
|
208
|
+
"label": "Fix lint/format issues"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"from": "lint_format",
|
|
212
|
+
"to": "hitl_impl_failed",
|
|
213
|
+
"on": "failed",
|
|
214
|
+
"label": "Lint issues persist"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"from": "commit",
|
|
218
|
+
"to": "create_pr"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"from": "create_pr",
|
|
222
|
+
"to": "end_success"
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "quick-task",
|
|
3
|
+
"name": "Quick Task",
|
|
4
|
+
"description": "Minimal workflow for small, straightforward tasks. Understand, execute, verify - no formal review gates.",
|
|
5
|
+
"nodes": {
|
|
6
|
+
"start": {
|
|
7
|
+
"type": "start",
|
|
8
|
+
"name": "Start",
|
|
9
|
+
"description": "Quick task begins"
|
|
10
|
+
},
|
|
11
|
+
"understand": {
|
|
12
|
+
"type": "task",
|
|
13
|
+
"name": "Understand",
|
|
14
|
+
"description": "Clarify what needs to be done and identify the approach",
|
|
15
|
+
"agent": "Developer",
|
|
16
|
+
"stage": "planning"
|
|
17
|
+
},
|
|
18
|
+
"execute": {
|
|
19
|
+
"type": "task",
|
|
20
|
+
"name": "Execute",
|
|
21
|
+
"description": "Make the changes or complete the work",
|
|
22
|
+
"agent": "Developer",
|
|
23
|
+
"stage": "development"
|
|
24
|
+
},
|
|
25
|
+
"verify": {
|
|
26
|
+
"type": "task",
|
|
27
|
+
"name": "Verify",
|
|
28
|
+
"description": "Confirm the work is correct and complete",
|
|
29
|
+
"agent": "Developer",
|
|
30
|
+
"stage": "verification",
|
|
31
|
+
"maxRetries": 1
|
|
32
|
+
},
|
|
33
|
+
"lint_format": {
|
|
34
|
+
"type": "gate",
|
|
35
|
+
"name": "Lint & Format",
|
|
36
|
+
"description": "Run lint and format checks. Auto-fix issues where possible.",
|
|
37
|
+
"agent": "Developer",
|
|
38
|
+
"stage": "delivery",
|
|
39
|
+
"maxRetries": 3
|
|
40
|
+
},
|
|
41
|
+
"commit": {
|
|
42
|
+
"type": "task",
|
|
43
|
+
"name": "Commit Changes",
|
|
44
|
+
"description": "Commit all changes with a descriptive message",
|
|
45
|
+
"agent": "Developer",
|
|
46
|
+
"stage": "delivery"
|
|
47
|
+
},
|
|
48
|
+
"end_success": {
|
|
49
|
+
"type": "end",
|
|
50
|
+
"result": "success",
|
|
51
|
+
"name": "Done",
|
|
52
|
+
"description": "Task completed"
|
|
53
|
+
},
|
|
54
|
+
"hitl_blocked": {
|
|
55
|
+
"type": "end",
|
|
56
|
+
"result": "blocked",
|
|
57
|
+
"escalation": "hitl",
|
|
58
|
+
"name": "Blocked",
|
|
59
|
+
"description": "Task needs help"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"edges": [
|
|
63
|
+
{
|
|
64
|
+
"from": "start",
|
|
65
|
+
"to": "understand"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"from": "understand",
|
|
69
|
+
"to": "execute"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"from": "execute",
|
|
73
|
+
"to": "verify"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"from": "verify",
|
|
77
|
+
"to": "lint_format",
|
|
78
|
+
"on": "passed"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"from": "verify",
|
|
82
|
+
"to": "execute",
|
|
83
|
+
"on": "failed",
|
|
84
|
+
"label": "Fix issues and try again"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"from": "verify",
|
|
88
|
+
"to": "hitl_blocked",
|
|
89
|
+
"on": "failed",
|
|
90
|
+
"label": "Needs human help"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"from": "lint_format",
|
|
94
|
+
"to": "commit",
|
|
95
|
+
"on": "passed",
|
|
96
|
+
"label": "Lint passes, commit changes"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"from": "lint_format",
|
|
100
|
+
"to": "execute",
|
|
101
|
+
"on": "failed",
|
|
102
|
+
"label": "Fix lint/format issues"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"from": "lint_format",
|
|
106
|
+
"to": "hitl_blocked",
|
|
107
|
+
"on": "failed",
|
|
108
|
+
"label": "Lint issues persist"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"from": "commit",
|
|
112
|
+
"to": "end_success"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "test-coverage",
|
|
3
|
+
"name": "Test Coverage",
|
|
4
|
+
"description": "Analyze test coverage gaps and write tests to improve coverage.",
|
|
5
|
+
"nodes": {
|
|
6
|
+
"start": {
|
|
7
|
+
"type": "start",
|
|
8
|
+
"name": "Start",
|
|
9
|
+
"description": "Begin test coverage analysis"
|
|
10
|
+
},
|
|
11
|
+
"analyze_coverage": {
|
|
12
|
+
"type": "task",
|
|
13
|
+
"name": "Analyze Coverage",
|
|
14
|
+
"description": "Run coverage tools and identify untested code paths",
|
|
15
|
+
"agent": "Tester",
|
|
16
|
+
"stage": "analysis"
|
|
17
|
+
},
|
|
18
|
+
"identify_gaps": {
|
|
19
|
+
"type": "task",
|
|
20
|
+
"name": "Identify Gaps",
|
|
21
|
+
"description": "Prioritize coverage gaps by risk and importance",
|
|
22
|
+
"agent": "Planner",
|
|
23
|
+
"stage": "analysis"
|
|
24
|
+
},
|
|
25
|
+
"write_tests": {
|
|
26
|
+
"type": "task",
|
|
27
|
+
"name": "Write Tests",
|
|
28
|
+
"description": "Write tests for identified gaps",
|
|
29
|
+
"agent": "Tester",
|
|
30
|
+
"stage": "development"
|
|
31
|
+
},
|
|
32
|
+
"run_tests": {
|
|
33
|
+
"type": "task",
|
|
34
|
+
"name": "Run Tests",
|
|
35
|
+
"description": "Execute test suite and verify new tests pass",
|
|
36
|
+
"agent": "Tester",
|
|
37
|
+
"stage": "verification",
|
|
38
|
+
"maxRetries": 2
|
|
39
|
+
},
|
|
40
|
+
"review": {
|
|
41
|
+
"type": "gate",
|
|
42
|
+
"name": "Review",
|
|
43
|
+
"description": "Review test quality and coverage improvement",
|
|
44
|
+
"agent": "Reviewer",
|
|
45
|
+
"stage": "verification",
|
|
46
|
+
"maxRetries": 1,
|
|
47
|
+
"config": {
|
|
48
|
+
"scrutinyLevel": 2
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"lint_format": {
|
|
52
|
+
"type": "gate",
|
|
53
|
+
"name": "Lint & Format",
|
|
54
|
+
"description": "Run lint and format checks. Auto-fix issues where possible.",
|
|
55
|
+
"agent": "Developer",
|
|
56
|
+
"stage": "delivery",
|
|
57
|
+
"maxRetries": 3
|
|
58
|
+
},
|
|
59
|
+
"commit": {
|
|
60
|
+
"type": "task",
|
|
61
|
+
"name": "Commit Tests",
|
|
62
|
+
"description": "Commit new tests with coverage metrics",
|
|
63
|
+
"agent": "Developer",
|
|
64
|
+
"stage": "delivery"
|
|
65
|
+
},
|
|
66
|
+
"end_success": {
|
|
67
|
+
"type": "end",
|
|
68
|
+
"result": "success",
|
|
69
|
+
"name": "Complete",
|
|
70
|
+
"description": "Coverage improved successfully"
|
|
71
|
+
},
|
|
72
|
+
"hitl_failed": {
|
|
73
|
+
"type": "end",
|
|
74
|
+
"result": "blocked",
|
|
75
|
+
"escalation": "hitl",
|
|
76
|
+
"name": "Needs Help",
|
|
77
|
+
"description": "Coverage goals not achievable without guidance"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"edges": [
|
|
81
|
+
{
|
|
82
|
+
"from": "start",
|
|
83
|
+
"to": "analyze_coverage"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"from": "analyze_coverage",
|
|
87
|
+
"to": "identify_gaps"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"from": "identify_gaps",
|
|
91
|
+
"to": "write_tests"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"from": "write_tests",
|
|
95
|
+
"to": "run_tests"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"from": "run_tests",
|
|
99
|
+
"to": "write_tests",
|
|
100
|
+
"on": "failed",
|
|
101
|
+
"label": "Fix failing tests"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"from": "run_tests",
|
|
105
|
+
"to": "hitl_failed",
|
|
106
|
+
"on": "failed",
|
|
107
|
+
"label": "Tests keep failing"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"from": "run_tests",
|
|
111
|
+
"to": "review",
|
|
112
|
+
"on": "passed"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"from": "review",
|
|
116
|
+
"to": "write_tests",
|
|
117
|
+
"on": "failed",
|
|
118
|
+
"label": "Improve test quality"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"from": "review",
|
|
122
|
+
"to": "hitl_failed",
|
|
123
|
+
"on": "failed"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"from": "review",
|
|
127
|
+
"to": "lint_format",
|
|
128
|
+
"on": "passed"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"from": "lint_format",
|
|
132
|
+
"to": "commit",
|
|
133
|
+
"on": "passed",
|
|
134
|
+
"label": "Lint passes, commit changes"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"from": "lint_format",
|
|
138
|
+
"to": "write_tests",
|
|
139
|
+
"on": "failed",
|
|
140
|
+
"label": "Fix lint/format issues"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"from": "lint_format",
|
|
144
|
+
"to": "hitl_failed",
|
|
145
|
+
"on": "failed",
|
|
146
|
+
"label": "Lint issues persist"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"from": "commit",
|
|
150
|
+
"to": "end_success"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|