claude-mpm 3.3.0__py3-none-any.whl → 3.4.0__py3-none-any.whl
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.
- claude_mpm/agents/templates/data_engineer.json +1 -1
- claude_mpm/agents/templates/documentation.json +1 -1
- claude_mpm/agents/templates/engineer.json +1 -1
- claude_mpm/agents/templates/ops.json +1 -1
- claude_mpm/agents/templates/pm.json +1 -1
- claude_mpm/agents/templates/qa.json +1 -1
- claude_mpm/agents/templates/research.json +1 -1
- claude_mpm/agents/templates/security.json +1 -1
- claude_mpm/agents/templates/test_integration.json +112 -0
- claude_mpm/agents/templates/version_control.json +1 -1
- claude_mpm/cli/commands/memory.py +749 -26
- claude_mpm/cli/commands/run.py +115 -14
- claude_mpm/cli/parser.py +89 -1
- claude_mpm/constants.py +6 -0
- claude_mpm/core/claude_runner.py +74 -11
- claude_mpm/core/config.py +1 -1
- claude_mpm/core/session_manager.py +46 -0
- claude_mpm/core/simple_runner.py +74 -11
- claude_mpm/hooks/builtin/mpm_command_hook.py +5 -5
- claude_mpm/hooks/claude_hooks/hook_handler.py +213 -30
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh +9 -2
- claude_mpm/hooks/memory_integration_hook.py +51 -5
- claude_mpm/services/__init__.py +23 -5
- claude_mpm/services/agent_memory_manager.py +800 -71
- claude_mpm/services/memory_builder.py +823 -0
- claude_mpm/services/memory_optimizer.py +619 -0
- claude_mpm/services/memory_router.py +445 -0
- claude_mpm/services/project_analyzer.py +771 -0
- claude_mpm/services/socketio_server.py +649 -45
- claude_mpm/services/version_control/git_operations.py +26 -0
- claude_mpm-3.4.0.dist-info/METADATA +183 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/RECORD +36 -52
- claude_mpm/agents/agent-template.yaml +0 -83
- claude_mpm/agents/templates/test-integration-agent.md +0 -34
- claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -6
- claude_mpm/cli/README.md +0 -109
- claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm/core/agent_registry.py.bak +0 -312
- claude_mpm/core/base_service.py.bak +0 -406
- claude_mpm/core/websocket_handler.py +0 -233
- claude_mpm/hooks/README.md +0 -97
- claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
- claude_mpm/schemas/README_SECURITY.md +0 -92
- claude_mpm/schemas/agent_schema.json +0 -395
- claude_mpm/schemas/agent_schema_documentation.md +0 -181
- claude_mpm/schemas/agent_schema_security_notes.md +0 -165
- claude_mpm/schemas/examples/standard_workflow.json +0 -505
- claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
- claude_mpm/schemas/ticket_workflow_schema.json +0 -590
- claude_mpm/services/framework_claude_md_generator/README.md +0 -92
- claude_mpm/services/parent_directory_manager/README.md +0 -83
- claude_mpm/services/version_control/VERSION +0 -1
- claude_mpm/services/websocket_server.py +0 -376
- claude_mpm-3.3.0.dist-info/METADATA +0 -432
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/WHEEL +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/entry_points.txt +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,505 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema_version": "1.0.0",
|
|
3
|
-
"workflow_id": "standard_workflow",
|
|
4
|
-
"workflow_version": "1.0.0",
|
|
5
|
-
"metadata": {
|
|
6
|
-
"name": "Standard Ticket Workflow",
|
|
7
|
-
"description": "Default workflow for general ticket management with clear status-resolution separation",
|
|
8
|
-
"workflow_type": "standard",
|
|
9
|
-
"author": "Claude MPM Team",
|
|
10
|
-
"created_at": "2025-01-28T00:00:00Z",
|
|
11
|
-
"updated_at": "2025-01-28T00:00:00Z",
|
|
12
|
-
"tags": ["default", "general", "support"]
|
|
13
|
-
},
|
|
14
|
-
"status_states": {
|
|
15
|
-
"states": [
|
|
16
|
-
{
|
|
17
|
-
"id": "open",
|
|
18
|
-
"name": "Open",
|
|
19
|
-
"description": "Ticket has been created but not yet assigned or started",
|
|
20
|
-
"category": "initial",
|
|
21
|
-
"is_default": true,
|
|
22
|
-
"color": "#9E9E9E",
|
|
23
|
-
"icon": "circle-o",
|
|
24
|
-
"sla_hours": 24
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"id": "in_progress",
|
|
28
|
-
"name": "In Progress",
|
|
29
|
-
"description": "Ticket is actively being worked on by an assignee",
|
|
30
|
-
"category": "active",
|
|
31
|
-
"color": "#2196F3",
|
|
32
|
-
"icon": "spinner",
|
|
33
|
-
"sla_hours": 48
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "pending",
|
|
37
|
-
"name": "Pending",
|
|
38
|
-
"description": "Ticket is waiting for external input, dependencies, or customer response",
|
|
39
|
-
"category": "waiting",
|
|
40
|
-
"color": "#FF9800",
|
|
41
|
-
"icon": "clock-o"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"id": "resolved",
|
|
45
|
-
"name": "Resolved",
|
|
46
|
-
"description": "Work is complete and solution has been implemented",
|
|
47
|
-
"category": "terminal",
|
|
48
|
-
"color": "#4CAF50",
|
|
49
|
-
"icon": "check-circle"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": "closed",
|
|
53
|
-
"name": "Closed",
|
|
54
|
-
"description": "Ticket is closed and no further action is required",
|
|
55
|
-
"category": "terminal",
|
|
56
|
-
"color": "#607D8B",
|
|
57
|
-
"icon": "archive"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "reopened",
|
|
61
|
-
"name": "Reopened",
|
|
62
|
-
"description": "Previously closed ticket has been reopened for additional work",
|
|
63
|
-
"category": "active",
|
|
64
|
-
"color": "#9C27B0",
|
|
65
|
-
"icon": "refresh"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"id": "on_hold",
|
|
69
|
-
"name": "On Hold",
|
|
70
|
-
"description": "Work is temporarily suspended due to blockers or priorities",
|
|
71
|
-
"category": "waiting",
|
|
72
|
-
"color": "#795548",
|
|
73
|
-
"icon": "pause-circle"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"id": "escalated",
|
|
77
|
-
"name": "Escalated",
|
|
78
|
-
"description": "Ticket has been escalated to higher priority or management attention",
|
|
79
|
-
"category": "active",
|
|
80
|
-
"color": "#F44336",
|
|
81
|
-
"icon": "exclamation-triangle",
|
|
82
|
-
"sla_hours": 4
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"id": "canceled",
|
|
86
|
-
"name": "Canceled",
|
|
87
|
-
"description": "Ticket has been canceled before completion",
|
|
88
|
-
"category": "terminal",
|
|
89
|
-
"color": "#E91E63",
|
|
90
|
-
"icon": "times-circle"
|
|
91
|
-
}
|
|
92
|
-
],
|
|
93
|
-
"default_status": "open"
|
|
94
|
-
},
|
|
95
|
-
"resolution_types": {
|
|
96
|
-
"types": [
|
|
97
|
-
{
|
|
98
|
-
"id": "fixed",
|
|
99
|
-
"name": "Fixed/Resolved",
|
|
100
|
-
"description": "Issue was successfully fixed or request was fulfilled",
|
|
101
|
-
"category": "successful",
|
|
102
|
-
"requires_comment": false,
|
|
103
|
-
"color": "#4CAF50",
|
|
104
|
-
"icon": "check"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"id": "wont_fix",
|
|
108
|
-
"name": "Won't Fix",
|
|
109
|
-
"description": "Deliberate decision made not to address the issue",
|
|
110
|
-
"category": "unsuccessful",
|
|
111
|
-
"requires_comment": true,
|
|
112
|
-
"color": "#F44336",
|
|
113
|
-
"icon": "ban"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"id": "duplicate",
|
|
117
|
-
"name": "Duplicate",
|
|
118
|
-
"description": "Issue is a duplicate of another existing ticket",
|
|
119
|
-
"category": "invalid",
|
|
120
|
-
"requires_comment": true,
|
|
121
|
-
"color": "#9E9E9E",
|
|
122
|
-
"icon": "copy"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"id": "cannot_reproduce",
|
|
126
|
-
"name": "Cannot Reproduce",
|
|
127
|
-
"description": "Issue cannot be reproduced or verified",
|
|
128
|
-
"category": "invalid",
|
|
129
|
-
"requires_comment": true,
|
|
130
|
-
"color": "#FF9800",
|
|
131
|
-
"icon": "question-circle"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"id": "works_as_designed",
|
|
135
|
-
"name": "Works as Designed",
|
|
136
|
-
"description": "Reported behavior is intentional and not a bug",
|
|
137
|
-
"category": "invalid",
|
|
138
|
-
"requires_comment": false,
|
|
139
|
-
"color": "#3F51B5",
|
|
140
|
-
"icon": "info-circle"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"id": "incomplete",
|
|
144
|
-
"name": "Incomplete",
|
|
145
|
-
"description": "Insufficient information provided to proceed",
|
|
146
|
-
"category": "unsuccessful",
|
|
147
|
-
"requires_comment": true,
|
|
148
|
-
"color": "#795548",
|
|
149
|
-
"icon": "file-text-o"
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
"id": "user_error",
|
|
153
|
-
"name": "User Error",
|
|
154
|
-
"description": "Issue was due to user error or misunderstanding",
|
|
155
|
-
"category": "invalid",
|
|
156
|
-
"requires_comment": true,
|
|
157
|
-
"color": "#607D8B",
|
|
158
|
-
"icon": "user-times"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"id": "configuration",
|
|
162
|
-
"name": "Configuration",
|
|
163
|
-
"description": "Issue was resolved through configuration changes only",
|
|
164
|
-
"category": "successful",
|
|
165
|
-
"requires_comment": false,
|
|
166
|
-
"color": "#00BCD4",
|
|
167
|
-
"icon": "cog"
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
"id": "workaround",
|
|
171
|
-
"name": "Workaround",
|
|
172
|
-
"description": "A workaround has been provided as an alternative solution",
|
|
173
|
-
"category": "successful",
|
|
174
|
-
"requires_comment": true,
|
|
175
|
-
"color": "#CDDC39",
|
|
176
|
-
"icon": "lightbulb-o"
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
"id": "documentation",
|
|
180
|
-
"name": "Documentation",
|
|
181
|
-
"description": "Issue was resolved by updating or providing documentation",
|
|
182
|
-
"category": "successful",
|
|
183
|
-
"requires_comment": false,
|
|
184
|
-
"color": "#009688",
|
|
185
|
-
"icon": "book"
|
|
186
|
-
}
|
|
187
|
-
]
|
|
188
|
-
},
|
|
189
|
-
"transitions": {
|
|
190
|
-
"rules": [
|
|
191
|
-
{
|
|
192
|
-
"from_status": "open",
|
|
193
|
-
"to_status": "in_progress",
|
|
194
|
-
"name": "Start Work",
|
|
195
|
-
"description": "Begin working on the ticket",
|
|
196
|
-
"required_fields": ["assignee"],
|
|
197
|
-
"auto_assign": true
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"from_status": "open",
|
|
201
|
-
"to_status": "escalated",
|
|
202
|
-
"name": "Escalate",
|
|
203
|
-
"description": "Escalate ticket for immediate attention",
|
|
204
|
-
"permissions": ["escalate_ticket"]
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"from_status": "open",
|
|
208
|
-
"to_status": "canceled",
|
|
209
|
-
"name": "Cancel",
|
|
210
|
-
"description": "Cancel ticket without starting work",
|
|
211
|
-
"required_fields": ["resolution"]
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
"from_status": "in_progress",
|
|
215
|
-
"to_status": "pending",
|
|
216
|
-
"name": "Wait for Input",
|
|
217
|
-
"description": "Pause work to wait for external input"
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
"from_status": "in_progress",
|
|
221
|
-
"to_status": "on_hold",
|
|
222
|
-
"name": "Put on Hold",
|
|
223
|
-
"description": "Temporarily suspend work"
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
"from_status": "in_progress",
|
|
227
|
-
"to_status": "resolved",
|
|
228
|
-
"name": "Resolve",
|
|
229
|
-
"description": "Mark work as complete",
|
|
230
|
-
"required_fields": ["resolution"]
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
"from_status": "in_progress",
|
|
234
|
-
"to_status": "escalated",
|
|
235
|
-
"name": "Escalate",
|
|
236
|
-
"description": "Escalate active ticket",
|
|
237
|
-
"permissions": ["escalate_ticket"]
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
"from_status": "pending",
|
|
241
|
-
"to_status": "in_progress",
|
|
242
|
-
"name": "Resume Work",
|
|
243
|
-
"description": "Resume work after receiving input"
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
"from_status": "on_hold",
|
|
247
|
-
"to_status": "in_progress",
|
|
248
|
-
"name": "Resume Work",
|
|
249
|
-
"description": "Resume work from hold status"
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
"from_status": "resolved",
|
|
253
|
-
"to_status": "closed",
|
|
254
|
-
"name": "Close",
|
|
255
|
-
"description": "Close resolved ticket"
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
"from_status": "resolved",
|
|
259
|
-
"to_status": "reopened",
|
|
260
|
-
"name": "Reopen",
|
|
261
|
-
"description": "Reopen resolved ticket for additional work"
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
"from_status": "closed",
|
|
265
|
-
"to_status": "reopened",
|
|
266
|
-
"name": "Reopen",
|
|
267
|
-
"description": "Reopen closed ticket",
|
|
268
|
-
"permissions": ["reopen_ticket"]
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
"from_status": "reopened",
|
|
272
|
-
"to_status": "in_progress",
|
|
273
|
-
"name": "Start Rework",
|
|
274
|
-
"description": "Begin working on reopened ticket",
|
|
275
|
-
"required_fields": ["assignee"]
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
"from_status": "escalated",
|
|
279
|
-
"to_status": "in_progress",
|
|
280
|
-
"name": "De-escalate",
|
|
281
|
-
"description": "Return to normal priority",
|
|
282
|
-
"permissions": ["escalate_ticket"]
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
"from_status": "escalated",
|
|
286
|
-
"to_status": "resolved",
|
|
287
|
-
"name": "Resolve",
|
|
288
|
-
"description": "Resolve escalated ticket",
|
|
289
|
-
"required_fields": ["resolution"]
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
"from_status": "*",
|
|
293
|
-
"to_status": "canceled",
|
|
294
|
-
"name": "Force Cancel",
|
|
295
|
-
"description": "Cancel ticket from any state",
|
|
296
|
-
"permissions": ["admin_ticket"],
|
|
297
|
-
"required_fields": ["resolution"]
|
|
298
|
-
}
|
|
299
|
-
],
|
|
300
|
-
"allow_self_transitions": false
|
|
301
|
-
},
|
|
302
|
-
"status_resolution_mapping": {
|
|
303
|
-
"mappings": [
|
|
304
|
-
{
|
|
305
|
-
"status_id": "resolved",
|
|
306
|
-
"allowed_resolutions": [
|
|
307
|
-
"fixed",
|
|
308
|
-
"configuration",
|
|
309
|
-
"workaround",
|
|
310
|
-
"documentation"
|
|
311
|
-
],
|
|
312
|
-
"requires_resolution": true,
|
|
313
|
-
"default_resolution": "fixed"
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"status_id": "closed",
|
|
317
|
-
"allowed_resolutions": [
|
|
318
|
-
"fixed",
|
|
319
|
-
"wont_fix",
|
|
320
|
-
"duplicate",
|
|
321
|
-
"cannot_reproduce",
|
|
322
|
-
"works_as_designed",
|
|
323
|
-
"incomplete",
|
|
324
|
-
"user_error",
|
|
325
|
-
"configuration",
|
|
326
|
-
"workaround",
|
|
327
|
-
"documentation"
|
|
328
|
-
],
|
|
329
|
-
"requires_resolution": true
|
|
330
|
-
},
|
|
331
|
-
{
|
|
332
|
-
"status_id": "canceled",
|
|
333
|
-
"allowed_resolutions": [
|
|
334
|
-
"duplicate",
|
|
335
|
-
"wont_fix",
|
|
336
|
-
"incomplete",
|
|
337
|
-
"user_error",
|
|
338
|
-
"works_as_designed"
|
|
339
|
-
],
|
|
340
|
-
"requires_resolution": true,
|
|
341
|
-
"default_resolution": "wont_fix"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"status_id": "open",
|
|
345
|
-
"allowed_resolutions": [],
|
|
346
|
-
"requires_resolution": false
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
"status_id": "in_progress",
|
|
350
|
-
"allowed_resolutions": [],
|
|
351
|
-
"requires_resolution": false
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
"status_id": "pending",
|
|
355
|
-
"allowed_resolutions": [],
|
|
356
|
-
"requires_resolution": false
|
|
357
|
-
},
|
|
358
|
-
{
|
|
359
|
-
"status_id": "on_hold",
|
|
360
|
-
"allowed_resolutions": [],
|
|
361
|
-
"requires_resolution": false
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
"status_id": "escalated",
|
|
365
|
-
"allowed_resolutions": [],
|
|
366
|
-
"requires_resolution": false
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
"status_id": "reopened",
|
|
370
|
-
"allowed_resolutions": [],
|
|
371
|
-
"requires_resolution": false
|
|
372
|
-
}
|
|
373
|
-
]
|
|
374
|
-
},
|
|
375
|
-
"business_rules": {
|
|
376
|
-
"auto_close": {
|
|
377
|
-
"enabled": true,
|
|
378
|
-
"days_after_resolved": 7,
|
|
379
|
-
"excluded_resolutions": ["workaround"]
|
|
380
|
-
},
|
|
381
|
-
"reopen_rules": {
|
|
382
|
-
"allow_reopen": true,
|
|
383
|
-
"from_statuses": ["resolved", "closed"],
|
|
384
|
-
"max_reopen_count": 3,
|
|
385
|
-
"reopen_window_days": 30
|
|
386
|
-
},
|
|
387
|
-
"escalation_rules": [
|
|
388
|
-
{
|
|
389
|
-
"name": "High Priority SLA",
|
|
390
|
-
"condition": {
|
|
391
|
-
"status": "open",
|
|
392
|
-
"hours_in_status": 4,
|
|
393
|
-
"priority": "high"
|
|
394
|
-
},
|
|
395
|
-
"action": {
|
|
396
|
-
"change_status": "escalated",
|
|
397
|
-
"notify": ["manager", "on_call"]
|
|
398
|
-
}
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
"name": "Critical Priority SLA",
|
|
402
|
-
"condition": {
|
|
403
|
-
"status": "open",
|
|
404
|
-
"hours_in_status": 1,
|
|
405
|
-
"priority": "critical"
|
|
406
|
-
},
|
|
407
|
-
"action": {
|
|
408
|
-
"change_status": "escalated",
|
|
409
|
-
"change_priority": "critical",
|
|
410
|
-
"notify": ["director", "manager", "on_call"]
|
|
411
|
-
}
|
|
412
|
-
},
|
|
413
|
-
{
|
|
414
|
-
"name": "Stale In Progress",
|
|
415
|
-
"condition": {
|
|
416
|
-
"status": "in_progress",
|
|
417
|
-
"hours_in_status": 168
|
|
418
|
-
},
|
|
419
|
-
"action": {
|
|
420
|
-
"notify": ["assignee", "manager"]
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
]
|
|
424
|
-
},
|
|
425
|
-
"ui_configuration": {
|
|
426
|
-
"status_display_order": [
|
|
427
|
-
"open",
|
|
428
|
-
"in_progress",
|
|
429
|
-
"pending",
|
|
430
|
-
"on_hold",
|
|
431
|
-
"escalated",
|
|
432
|
-
"reopened",
|
|
433
|
-
"resolved",
|
|
434
|
-
"closed",
|
|
435
|
-
"canceled"
|
|
436
|
-
],
|
|
437
|
-
"resolution_display_order": [
|
|
438
|
-
"fixed",
|
|
439
|
-
"configuration",
|
|
440
|
-
"workaround",
|
|
441
|
-
"documentation",
|
|
442
|
-
"duplicate",
|
|
443
|
-
"cannot_reproduce",
|
|
444
|
-
"works_as_designed",
|
|
445
|
-
"user_error",
|
|
446
|
-
"incomplete",
|
|
447
|
-
"wont_fix"
|
|
448
|
-
],
|
|
449
|
-
"quick_transitions": [
|
|
450
|
-
{
|
|
451
|
-
"from_status": "open",
|
|
452
|
-
"to_status": "in_progress",
|
|
453
|
-
"button_label": "Start Work",
|
|
454
|
-
"button_style": "primary"
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
"from_status": "in_progress",
|
|
458
|
-
"to_status": "resolved",
|
|
459
|
-
"button_label": "Resolve",
|
|
460
|
-
"button_style": "success"
|
|
461
|
-
},
|
|
462
|
-
{
|
|
463
|
-
"from_status": "in_progress",
|
|
464
|
-
"to_status": "pending",
|
|
465
|
-
"button_label": "Wait for Input",
|
|
466
|
-
"button_style": "warning"
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
"from_status": "resolved",
|
|
470
|
-
"to_status": "closed",
|
|
471
|
-
"button_label": "Close",
|
|
472
|
-
"button_style": "secondary"
|
|
473
|
-
},
|
|
474
|
-
{
|
|
475
|
-
"from_status": "resolved",
|
|
476
|
-
"to_status": "reopened",
|
|
477
|
-
"button_label": "Reopen",
|
|
478
|
-
"button_style": "danger"
|
|
479
|
-
}
|
|
480
|
-
]
|
|
481
|
-
},
|
|
482
|
-
"metrics": {
|
|
483
|
-
"cycle_time_statuses": {
|
|
484
|
-
"start": ["in_progress", "reopened"],
|
|
485
|
-
"end": ["resolved", "closed", "canceled"]
|
|
486
|
-
},
|
|
487
|
-
"resolution_metrics": [
|
|
488
|
-
{
|
|
489
|
-
"name": "Success Rate",
|
|
490
|
-
"resolution_ids": ["fixed", "configuration", "workaround", "documentation"],
|
|
491
|
-
"metric_type": "success_rate"
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
"name": "Invalid Rate",
|
|
495
|
-
"resolution_ids": ["duplicate", "cannot_reproduce", "works_as_designed", "user_error"],
|
|
496
|
-
"metric_type": "invalid_rate"
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
"name": "Incomplete Rate",
|
|
500
|
-
"resolution_ids": ["incomplete", "wont_fix"],
|
|
501
|
-
"metric_type": "incomplete_rate"
|
|
502
|
-
}
|
|
503
|
-
]
|
|
504
|
-
}
|
|
505
|
-
}
|