@exaudeus/workrail 3.40.0 → 3.42.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 (105) hide show
  1. package/dist/cli/commands/init.js +0 -3
  2. package/dist/cli-worktrain.js +48 -11
  3. package/dist/cli.js +0 -18
  4. package/dist/config/app-config.d.ts +0 -16
  5. package/dist/config/app-config.js +0 -14
  6. package/dist/config/config-file.js +0 -3
  7. package/dist/console-ui/assets/index-DGj8EsFR.css +1 -0
  8. package/dist/console-ui/assets/index-DwfWMKvv.js +28 -0
  9. package/dist/console-ui/index.html +2 -2
  10. package/dist/context-assembly/deps.d.ts +8 -0
  11. package/dist/context-assembly/deps.js +2 -0
  12. package/dist/context-assembly/index.d.ts +6 -0
  13. package/dist/context-assembly/index.js +50 -0
  14. package/dist/context-assembly/infra.d.ts +3 -0
  15. package/dist/context-assembly/infra.js +154 -0
  16. package/dist/context-assembly/types.d.ts +30 -0
  17. package/dist/context-assembly/types.js +2 -0
  18. package/dist/coordinators/pr-review.d.ts +20 -1
  19. package/dist/coordinators/pr-review.js +189 -4
  20. package/dist/daemon/daemon-events.d.ts +9 -1
  21. package/dist/daemon/soul-template.d.ts +2 -2
  22. package/dist/daemon/soul-template.js +11 -1
  23. package/dist/daemon/workflow-runner.d.ts +14 -1
  24. package/dist/daemon/workflow-runner.js +406 -25
  25. package/dist/di/container.js +1 -25
  26. package/dist/di/tokens.d.ts +0 -3
  27. package/dist/di/tokens.js +0 -3
  28. package/dist/domain/execution/state.d.ts +6 -6
  29. package/dist/engine/engine-factory.js +0 -1
  30. package/dist/infrastructure/console-defaults.d.ts +1 -0
  31. package/dist/infrastructure/console-defaults.js +4 -0
  32. package/dist/infrastructure/session/index.d.ts +0 -1
  33. package/dist/infrastructure/session/index.js +1 -3
  34. package/dist/manifest.json +138 -122
  35. package/dist/mcp/handlers/session.d.ts +1 -0
  36. package/dist/mcp/handlers/session.js +61 -13
  37. package/dist/mcp/handlers/v2-workflow.d.ts +2 -2
  38. package/dist/mcp/output-schemas.d.ts +234 -234
  39. package/dist/mcp/server.js +1 -18
  40. package/dist/mcp/tools.d.ts +2 -2
  41. package/dist/mcp/transports/http-entry.js +0 -2
  42. package/dist/mcp/transports/stdio-entry.js +1 -2
  43. package/dist/mcp/types.d.ts +0 -2
  44. package/dist/mcp/v2/tools.d.ts +24 -24
  45. package/dist/trigger/daemon-console.d.ts +2 -0
  46. package/dist/trigger/daemon-console.js +1 -1
  47. package/dist/trigger/trigger-listener.d.ts +2 -0
  48. package/dist/trigger/trigger-listener.js +3 -1
  49. package/dist/trigger/trigger-router.d.ts +4 -3
  50. package/dist/trigger/trigger-router.js +4 -3
  51. package/dist/trigger/trigger-store.js +17 -4
  52. package/dist/v2/durable-core/schemas/artifacts/assessment.d.ts +2 -2
  53. package/dist/v2/durable-core/schemas/artifacts/coordinator-signal.d.ts +2 -2
  54. package/dist/v2/durable-core/schemas/artifacts/loop-control.d.ts +6 -6
  55. package/dist/v2/durable-core/schemas/artifacts/review-verdict.d.ts +6 -6
  56. package/dist/v2/durable-core/schemas/compiled-workflow/index.d.ts +56 -56
  57. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts +83 -83
  58. package/dist/v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts +1024 -1024
  59. package/dist/v2/durable-core/schemas/export-bundle/index.d.ts +2336 -2336
  60. package/dist/v2/durable-core/schemas/session/dag-topology.d.ts +6 -6
  61. package/dist/v2/durable-core/schemas/session/events.d.ts +339 -339
  62. package/dist/v2/durable-core/schemas/session/gaps.d.ts +30 -30
  63. package/dist/v2/durable-core/schemas/session/manifest.d.ts +6 -6
  64. package/dist/v2/durable-core/schemas/session/outputs.d.ts +8 -8
  65. package/dist/v2/durable-core/schemas/session/validation-event.d.ts +3 -3
  66. package/dist/v2/usecases/console-routes.d.ts +2 -1
  67. package/dist/v2/usecases/console-routes.js +29 -5
  68. package/dist/v2/usecases/console-service.js +14 -0
  69. package/dist/v2/usecases/console-types.d.ts +1 -0
  70. package/docs/authoring.md +16 -16
  71. package/docs/design/context-assembly-design-candidates.md +199 -0
  72. package/docs/design/context-assembly-implementation-plan.md +211 -0
  73. package/docs/design/context-assembly-review-findings.md +112 -0
  74. package/docs/design/coordinator-message-queue-drain-plan.md +241 -0
  75. package/docs/design/coordinator-message-queue-drain-review.md +120 -0
  76. package/docs/design/coordinator-message-queue-drain.md +289 -0
  77. package/docs/design/shaping-workflow-external-research.md +119 -0
  78. package/docs/discovery/late-bound-goals-impl-plan.md +147 -0
  79. package/docs/discovery/late-bound-goals-review.md +82 -0
  80. package/docs/discovery/late-bound-goals.md +118 -0
  81. package/docs/discovery/steer-endpoint-design-candidates.md +288 -0
  82. package/docs/discovery/steer-endpoint-design-review-findings.md +104 -0
  83. package/docs/discovery/steer-endpoint-implementation-plan.md +284 -0
  84. package/docs/ideas/backlog.md +356 -0
  85. package/docs/ideas/design-candidates-console-session-tree-impl.md +64 -0
  86. package/docs/ideas/design-candidates-session-tree-view.md +196 -0
  87. package/docs/ideas/design-review-findings-console-session-tree-impl.md +75 -0
  88. package/docs/ideas/design-review-findings-session-tree-view.md +88 -0
  89. package/docs/ideas/implementation_plan_session_tree_view.md +238 -0
  90. package/package.json +2 -1
  91. package/spec/authoring-spec.json +16 -16
  92. package/spec/shape.schema.json +178 -0
  93. package/spec/workflow-tags.json +232 -47
  94. package/workflows/coding-task-workflow-agentic.json +491 -480
  95. package/workflows/wr.shaping.json +182 -0
  96. package/dist/console-ui/assets/index-8dh0Psu-.css +0 -1
  97. package/dist/console-ui/assets/index-CXWCAonr.js +0 -28
  98. package/dist/infrastructure/session/DashboardHeartbeat.d.ts +0 -8
  99. package/dist/infrastructure/session/DashboardHeartbeat.js +0 -39
  100. package/dist/infrastructure/session/DashboardLockRelease.d.ts +0 -2
  101. package/dist/infrastructure/session/DashboardLockRelease.js +0 -29
  102. package/dist/infrastructure/session/HttpServer.d.ts +0 -60
  103. package/dist/infrastructure/session/HttpServer.js +0 -912
  104. package/workflows/coding-task-workflow-agentic.lean.v2.json +0 -648
  105. package/workflows/coding-task-workflow-agentic.v2.json +0 -324
@@ -0,0 +1,178 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://workrail.dev/spec/shape.schema.json",
4
+ "$comment": "Future target: when wr.shaping produces structured output, this schema defines its shape. For now the workflow writes pitch.md only.",
5
+ "title": "WorkRail Shape",
6
+ "description": "Aspirational output schema for wr.shaping -- not yet produced by the workflow. Current output is pitch.md.",
7
+ "type": "object",
8
+ "required": ["shaping_run_id", "frame", "solution", "context_pack", "acceptance_criteria", "rabbit_holes", "no_gos", "assumptions_log", "decomposition", "pitch_md", "build_readiness_score"],
9
+ "additionalProperties": false,
10
+ "properties": {
11
+ "shaping_run_id": { "type": "string", "description": "UUID for this shaping run" },
12
+ "workflow_version": { "type": "string" },
13
+ "frame": {
14
+ "type": "object",
15
+ "required": ["problem_story_md", "appetite"],
16
+ "properties": {
17
+ "problem_story_md": { "type": "string", "minLength": 20, "description": "Specific story: When [person] [situation], they need [job], but today [what fails]" },
18
+ "appetite": {
19
+ "type": "object",
20
+ "required": ["sizing_bucket"],
21
+ "properties": {
22
+ "sizing_bucket": { "type": "string", "enum": ["xs", "s", "m", "l", "xl"] },
23
+ "calendar_days": { "type": "number" },
24
+ "token_budget_est": { "type": "number" },
25
+ "agent_turns_est": { "type": "number" },
26
+ "files_touched_est": { "type": "number" }
27
+ }
28
+ },
29
+ "forces": {
30
+ "type": "object",
31
+ "properties": {
32
+ "push": { "type": "array", "items": { "type": "string" } },
33
+ "pull": { "type": "array", "items": { "type": "string" } },
34
+ "anxiety": { "type": "array", "items": { "type": "string" } },
35
+ "habit": { "type": "array", "items": { "type": "string" } }
36
+ }
37
+ }
38
+ }
39
+ },
40
+ "solution": {
41
+ "type": "object",
42
+ "required": ["breadboard_md", "elements"],
43
+ "properties": {
44
+ "breadboard_md": { "type": "string" },
45
+ "elements": {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "object",
49
+ "required": ["name", "description", "classification"],
50
+ "properties": {
51
+ "name": { "type": "string" },
52
+ "description": { "type": "string" },
53
+ "classification": { "type": "string", "enum": ["interface", "invariant", "exclusion"] }
54
+ }
55
+ }
56
+ },
57
+ "rationale_md": { "type": "string" },
58
+ "alternatives_considered": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "properties": {
63
+ "sketch": { "type": "string" },
64
+ "rejected_because": { "type": "string" }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ },
70
+ "context_pack": {
71
+ "type": "object",
72
+ "required": ["touch_globs", "do_not_touch_globs"],
73
+ "properties": {
74
+ "touch_globs": { "type": "array", "items": { "type": "string" } },
75
+ "do_not_touch_globs": { "type": "array", "items": { "type": "string" } },
76
+ "reuse_utilities": {
77
+ "type": "array",
78
+ "items": {
79
+ "type": "object",
80
+ "required": ["path", "symbol", "reason_to_reuse"],
81
+ "properties": {
82
+ "path": { "type": "string" },
83
+ "symbol": { "type": "string" },
84
+ "signature": { "type": "string" },
85
+ "reason_to_reuse": { "type": "string" }
86
+ }
87
+ }
88
+ },
89
+ "conventions_md": { "type": "string" },
90
+ "related_prior_art": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "object",
94
+ "properties": {
95
+ "path_or_pr": { "type": "string" },
96
+ "relevance": { "type": "string" }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "acceptance_criteria": {
103
+ "type": "object",
104
+ "required": ["gherkin", "verification_commands"],
105
+ "properties": {
106
+ "gherkin": { "type": "string" },
107
+ "verification_commands": { "type": "array", "items": { "type": "string" } },
108
+ "example_map": { "type": "object" }
109
+ }
110
+ },
111
+ "rabbit_holes": {
112
+ "type": "array",
113
+ "items": {
114
+ "type": "object",
115
+ "required": ["risk", "severity", "mitigation"],
116
+ "properties": {
117
+ "risk": { "type": "string" },
118
+ "severity": { "type": "string", "enum": ["low", "medium", "critical"] },
119
+ "mitigation": { "type": "string" },
120
+ "patch_applied": { "type": "boolean" }
121
+ }
122
+ }
123
+ },
124
+ "no_gos": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
125
+ "assumptions_log": {
126
+ "type": "array",
127
+ "items": {
128
+ "type": "object",
129
+ "required": ["step", "assumption", "confidence"],
130
+ "properties": {
131
+ "step": { "type": "string" },
132
+ "assumption": { "type": "string" },
133
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
134
+ "rationale": { "type": "string" }
135
+ }
136
+ }
137
+ },
138
+ "decomposition": {
139
+ "type": "object",
140
+ "required": ["walking_skeleton", "atomic_subtasks"],
141
+ "properties": {
142
+ "walking_skeleton": {
143
+ "type": "object",
144
+ "properties": {
145
+ "description": { "type": "string" },
146
+ "files": { "type": "array", "items": { "type": "string" } }
147
+ }
148
+ },
149
+ "atomic_subtasks": {
150
+ "type": "array",
151
+ "minItems": 1,
152
+ "maxItems": 8,
153
+ "items": {
154
+ "type": "object",
155
+ "required": ["id", "title"],
156
+ "properties": {
157
+ "id": { "type": "string" },
158
+ "title": { "type": "string" },
159
+ "depends_on": { "type": "array", "items": { "type": "string" } },
160
+ "est_context_window": { "type": "string" },
161
+ "acceptance_scenario_refs": { "type": "array", "items": { "type": "string" } }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ },
167
+ "pitch_md": { "type": "string", "minLength": 100 },
168
+ "pitch_structured": { "type": "object" },
169
+ "build_readiness_score": {
170
+ "type": "object",
171
+ "required": ["rubric_pass_count", "critical_blockers"],
172
+ "properties": {
173
+ "rubric_pass_count": { "type": "integer", "minimum": 0, "maximum": 5 },
174
+ "critical_blockers": { "type": "integer", "minimum": 0 }
175
+ }
176
+ }
177
+ }
178
+ }
@@ -10,7 +10,10 @@
10
10
  "refactoring or improving existing code",
11
11
  "converting code between platforms or languages"
12
12
  ],
13
- "examples": ["coding-task-workflow-agentic", "cross-platform-code-conversion"]
13
+ "examples": [
14
+ "coding-task-workflow-agentic",
15
+ "cross-platform-code-conversion"
16
+ ]
14
17
  },
15
18
  {
16
19
  "id": "review_audit",
@@ -20,7 +23,10 @@
20
23
  "auditing a service for production readiness",
21
24
  "checking architecture for scalability issues"
22
25
  ],
23
- "examples": ["mr-review-workflow-agentic", "production-readiness-audit"]
26
+ "examples": [
27
+ "mr-review-workflow-agentic",
28
+ "production-readiness-audit"
29
+ ]
24
30
  },
25
31
  {
26
32
  "id": "investigation",
@@ -29,7 +35,10 @@
29
35
  "diagnosing a bug or unexpected behavior in code",
30
36
  "diagnosing tool, environment, or MCP server issues"
31
37
  ],
32
- "examples": ["bug-investigation-agentic", "workflow-diagnose-environment"]
38
+ "examples": [
39
+ "bug-investigation-agentic",
40
+ "workflow-diagnose-environment"
41
+ ]
33
42
  },
34
43
  {
35
44
  "id": "design",
@@ -37,9 +46,14 @@
37
46
  "when": [
38
47
  "designing a UI or UX feature from scratch",
39
48
  "exploring and thinking through a problem or decision",
40
- "generating and comparing design candidates"
49
+ "generating and comparing design candidates",
50
+ "shaping a fuzzy problem into a bounded, implementation-ready pitch before coding begins"
41
51
  ],
42
- "examples": ["ui-ux-design-workflow", "wr.discovery"]
52
+ "examples": [
53
+ "ui-ux-design-workflow",
54
+ "wr.discovery",
55
+ "wr.shaping"
56
+ ]
43
57
  },
44
58
  {
45
59
  "id": "documentation",
@@ -49,7 +63,10 @@
49
63
  "updating or maintaining existing documentation",
50
64
  "writing documentation for a single bounded component or concept"
51
65
  ],
52
- "examples": ["document-creation-workflow", "documentation-update-workflow"]
66
+ "examples": [
67
+ "document-creation-workflow",
68
+ "documentation-update-workflow"
69
+ ]
53
70
  },
54
71
  {
55
72
  "id": "tickets",
@@ -59,7 +76,10 @@
59
76
  "grooming and refining a backlog",
60
77
  "generating test cases from ticket requirements"
61
78
  ],
62
- "examples": ["adaptive-ticket-creation", "ticket-grooming"]
79
+ "examples": [
80
+ "adaptive-ticket-creation",
81
+ "ticket-grooming"
82
+ ]
63
83
  },
64
84
  {
65
85
  "id": "learning",
@@ -69,7 +89,10 @@
69
89
  "designing a presentation",
70
90
  "making a major personal decision like where to relocate"
71
91
  ],
72
- "examples": ["personal-learning-materials-creation-branched", "presentation-creation"]
92
+ "examples": [
93
+ "personal-learning-materials-creation-branched",
94
+ "presentation-creation"
95
+ ]
73
96
  },
74
97
  {
75
98
  "id": "routines",
@@ -80,7 +103,10 @@
80
103
  "running a hypothesis challenge or adversarial review",
81
104
  "running a final verification pass"
82
105
  ],
83
- "examples": ["routine-context-gathering", "routine-hypothesis-challenge"]
106
+ "examples": [
107
+ "routine-context-gathering",
108
+ "routine-hypothesis-challenge"
109
+ ]
84
110
  },
85
111
  {
86
112
  "id": "authoring",
@@ -89,45 +115,204 @@
89
115
  "creating a new WorkRail workflow from scratch",
90
116
  "modernizing or updating an existing workflow"
91
117
  ],
92
- "examples": ["workflow-for-workflows"]
118
+ "examples": [
119
+ "workflow-for-workflows"
120
+ ]
93
121
  }
94
122
  ],
95
123
  "workflows": {
96
- "adaptive-ticket-creation": { "tags": ["tickets"] },
97
- "architecture-scalability-audit": { "tags": ["review_audit"] },
98
- "bug-investigation-agentic": { "tags": ["investigation"] },
99
- "coding-task-workflow-agentic": { "tags": ["coding"] },
100
- "cross-platform-code-conversion": { "tags": ["coding"] },
101
- "document-creation-workflow": { "tags": ["documentation"] },
102
- "documentation-update-workflow": { "tags": ["documentation"] },
103
- "intelligent-test-case-generation": { "tags": ["tickets", "coding"] },
104
- "mr-review-workflow-agentic": { "tags": ["review_audit"] },
105
- "personal-learning-course-design": { "tags": ["learning"] },
106
- "personal-learning-materials-creation-branched": { "tags": ["learning"] },
107
- "presentation-creation": { "tags": ["learning"] },
108
- "production-readiness-audit": { "tags": ["review_audit"] },
109
- "relocation-workflow-us": { "tags": ["learning"] },
110
- "routine-context-gathering": { "tags": ["routines"] },
111
- "routine-design-review": { "tags": ["routines"] },
112
- "routine-execution-simulation": { "tags": ["routines"] },
113
- "routine-feature-implementation": { "tags": ["routines", "coding"] },
114
- "routine-final-verification": { "tags": ["routines"] },
115
- "routine-hypothesis-challenge": { "tags": ["routines"] },
116
- "routine-ideation": { "tags": ["routines"] },
117
- "routine-parallel-work-partitioning": { "tags": ["routines"] },
118
- "routine-philosophy-alignment": { "tags": ["routines"] },
119
- "routine-plan-analysis": { "tags": ["routines"] },
120
- "routine-plan-generation": { "tags": ["routines"] },
121
- "routine-tension-driven-design": { "tags": ["routines"] },
122
- "scoped-documentation-workflow": { "tags": ["documentation"] },
123
- "ticket-grooming": { "tags": ["tickets"] },
124
- "ui-ux-design-workflow": { "tags": ["design"] },
125
- "workflow-diagnose-environment": { "tags": ["investigation"] },
126
- "workflow-for-workflows": { "tags": ["authoring"] },
127
- "wr.discovery": { "tags": ["design", "investigation"] },
128
- "classify-task-workflow": { "tags": ["routines", "coding"] },
129
- "test-artifact-loop-control": { "tags": ["coding"], "hidden": true },
130
- "test-session-persistence": { "tags": ["coding"], "hidden": true },
131
- "test-missing-context": { "tags": ["coding"], "hidden": true }
124
+ "adaptive-ticket-creation": {
125
+ "tags": [
126
+ "tickets"
127
+ ]
128
+ },
129
+ "architecture-scalability-audit": {
130
+ "tags": [
131
+ "review_audit"
132
+ ]
133
+ },
134
+ "bug-investigation-agentic": {
135
+ "tags": [
136
+ "investigation"
137
+ ]
138
+ },
139
+ "coding-task-workflow-agentic": {
140
+ "tags": [
141
+ "coding"
142
+ ]
143
+ },
144
+ "cross-platform-code-conversion": {
145
+ "tags": [
146
+ "coding"
147
+ ]
148
+ },
149
+ "document-creation-workflow": {
150
+ "tags": [
151
+ "documentation"
152
+ ]
153
+ },
154
+ "documentation-update-workflow": {
155
+ "tags": [
156
+ "documentation"
157
+ ]
158
+ },
159
+ "intelligent-test-case-generation": {
160
+ "tags": [
161
+ "tickets",
162
+ "coding"
163
+ ]
164
+ },
165
+ "mr-review-workflow-agentic": {
166
+ "tags": [
167
+ "review_audit"
168
+ ]
169
+ },
170
+ "personal-learning-course-design": {
171
+ "tags": [
172
+ "learning"
173
+ ]
174
+ },
175
+ "personal-learning-materials-creation-branched": {
176
+ "tags": [
177
+ "learning"
178
+ ]
179
+ },
180
+ "presentation-creation": {
181
+ "tags": [
182
+ "learning"
183
+ ]
184
+ },
185
+ "production-readiness-audit": {
186
+ "tags": [
187
+ "review_audit"
188
+ ]
189
+ },
190
+ "relocation-workflow-us": {
191
+ "tags": [
192
+ "learning"
193
+ ]
194
+ },
195
+ "routine-context-gathering": {
196
+ "tags": [
197
+ "routines"
198
+ ]
199
+ },
200
+ "routine-design-review": {
201
+ "tags": [
202
+ "routines"
203
+ ]
204
+ },
205
+ "routine-execution-simulation": {
206
+ "tags": [
207
+ "routines"
208
+ ]
209
+ },
210
+ "routine-feature-implementation": {
211
+ "tags": [
212
+ "routines",
213
+ "coding"
214
+ ]
215
+ },
216
+ "routine-final-verification": {
217
+ "tags": [
218
+ "routines"
219
+ ]
220
+ },
221
+ "routine-hypothesis-challenge": {
222
+ "tags": [
223
+ "routines"
224
+ ]
225
+ },
226
+ "routine-ideation": {
227
+ "tags": [
228
+ "routines"
229
+ ]
230
+ },
231
+ "routine-parallel-work-partitioning": {
232
+ "tags": [
233
+ "routines"
234
+ ]
235
+ },
236
+ "routine-philosophy-alignment": {
237
+ "tags": [
238
+ "routines"
239
+ ]
240
+ },
241
+ "routine-plan-analysis": {
242
+ "tags": [
243
+ "routines"
244
+ ]
245
+ },
246
+ "routine-plan-generation": {
247
+ "tags": [
248
+ "routines"
249
+ ]
250
+ },
251
+ "routine-tension-driven-design": {
252
+ "tags": [
253
+ "routines"
254
+ ]
255
+ },
256
+ "scoped-documentation-workflow": {
257
+ "tags": [
258
+ "documentation"
259
+ ]
260
+ },
261
+ "ticket-grooming": {
262
+ "tags": [
263
+ "tickets"
264
+ ]
265
+ },
266
+ "ui-ux-design-workflow": {
267
+ "tags": [
268
+ "design"
269
+ ]
270
+ },
271
+ "workflow-diagnose-environment": {
272
+ "tags": [
273
+ "investigation"
274
+ ]
275
+ },
276
+ "workflow-for-workflows": {
277
+ "tags": [
278
+ "authoring"
279
+ ]
280
+ },
281
+ "wr.discovery": {
282
+ "tags": [
283
+ "design",
284
+ "investigation"
285
+ ]
286
+ },
287
+ "classify-task-workflow": {
288
+ "tags": [
289
+ "routines",
290
+ "coding"
291
+ ]
292
+ },
293
+ "test-artifact-loop-control": {
294
+ "tags": [
295
+ "coding"
296
+ ],
297
+ "hidden": true
298
+ },
299
+ "test-session-persistence": {
300
+ "tags": [
301
+ "coding"
302
+ ],
303
+ "hidden": true
304
+ },
305
+ "test-missing-context": {
306
+ "tags": [
307
+ "coding"
308
+ ],
309
+ "hidden": true
310
+ },
311
+ "wr.shaping": {
312
+ "tags": [
313
+ "design",
314
+ "tickets"
315
+ ]
316
+ }
132
317
  }
133
- }
318
+ }