@exaudeus/workrail 3.13.0 → 3.15.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/dist/application/services/validation-engine.js +4 -9
- package/dist/application/services/workflow-compiler.js +4 -6
- package/dist/console/assets/index-BZYIjrzJ.js +28 -0
- package/dist/console/assets/index-OLCKbDdm.css +1 -0
- package/dist/console/index.html +2 -2
- package/dist/engine/engine-factory.js +2 -2
- package/dist/engine/types.d.ts +1 -1
- package/dist/manifest.json +63 -63
- package/dist/mcp/handlers/shared/request-workflow-reader.d.ts +5 -0
- package/dist/mcp/handlers/shared/request-workflow-reader.js +47 -2
- package/dist/mcp/handlers/v2-advance-core/assessment-consequences.d.ts +1 -1
- package/dist/mcp/handlers/v2-advance-core/assessment-consequences.js +4 -5
- package/dist/mcp/handlers/v2-advance-core/index.js +1 -1
- package/dist/mcp/handlers/v2-advance-core/outcome-blocked.js +1 -1
- package/dist/mcp/handlers/v2-execution/start.d.ts +1 -0
- package/dist/mcp/handlers/v2-execution/start.js +20 -1
- package/dist/mcp/handlers/v2-workflow.d.ts +23 -0
- package/dist/mcp/handlers/v2-workflow.js +177 -10
- package/dist/mcp/output-schemas.d.ts +202 -8
- package/dist/mcp/output-schemas.js +38 -11
- package/dist/mcp/server.js +48 -1
- package/dist/mcp/tool-descriptions.js +17 -9
- package/dist/mcp/v2/tools.d.ts +6 -0
- package/dist/mcp/v2/tools.js +2 -0
- package/dist/mcp/workflow-protocol-contracts.js +5 -1
- package/dist/types/workflow-definition.d.ts +2 -2
- package/dist/v2/infra/local/workspace-anchor/index.js +4 -1
- package/dist/v2/usecases/console-routes.js +49 -1
- package/dist/v2/usecases/console-service.d.ts +1 -0
- package/dist/v2/usecases/console-service.js +4 -1
- package/dist/v2/usecases/console-types.d.ts +12 -0
- package/dist/v2/usecases/worktree-service.js +55 -7
- package/package.json +3 -2
- package/spec/authoring-spec.json +91 -3
- package/spec/workflow-tags.json +132 -0
- package/spec/workflow.schema.json +411 -97
- package/workflows/adaptive-ticket-creation.json +40 -22
- package/workflows/architecture-scalability-audit.json +65 -31
- package/workflows/bug-investigation.agentic.v2.json +36 -14
- package/workflows/coding-task-workflow-agentic.json +50 -38
- package/workflows/coding-task-workflow-agentic.lean.v2.json +124 -37
- package/workflows/coding-task-workflow-agentic.v2.json +90 -30
- package/workflows/cross-platform-code-conversion.v2.json +168 -48
- package/workflows/document-creation-workflow.json +47 -17
- package/workflows/documentation-update-workflow.json +8 -8
- package/workflows/intelligent-test-case-generation.json +2 -2
- package/workflows/learner-centered-course-workflow.json +267 -267
- package/workflows/mr-review-workflow.agentic.v2.json +81 -14
- package/workflows/personal-learning-materials-creation-branched.json +175 -175
- package/workflows/presentation-creation.json +159 -159
- package/workflows/production-readiness-audit.json +54 -15
- package/workflows/relocation-workflow-us.json +44 -35
- package/workflows/routines/tension-driven-design.json +1 -1
- package/workflows/scoped-documentation-workflow.json +25 -25
- package/workflows/test-artifact-loop-control.json +1 -2
- package/workflows/ui-ux-design-workflow.json +327 -0
- package/workflows/workflow-diagnose-environment.json +1 -1
- package/workflows/workflow-for-workflows.json +507 -484
- package/workflows/workflow-for-workflows.v2.json +90 -18
- package/workflows/wr.discovery.json +112 -30
- package/dist/console/assets/index-DW78t31j.css +0 -1
- package/dist/console/assets/index-EsSXrC_a.js +0 -28
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "cross-platform-code-conversion",
|
|
3
3
|
"name": "Cross-Platform Code Conversion",
|
|
4
4
|
"version": "0.1.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to convert code from one platform to another (e.g. Android to iOS, iOS to Web). Triages files by difficulty, parallelizes easy translations, and handles platform-specific design decisions.",
|
|
6
6
|
"recommendedPreferences": {
|
|
7
7
|
"recommendedAutonomy": "guided",
|
|
8
8
|
"recommendedRiskPolicy": "conservative"
|
|
@@ -71,12 +71,15 @@
|
|
|
71
71
|
{
|
|
72
72
|
"id": "phase-1-understand-source",
|
|
73
73
|
"title": "Phase 1: Understand Source Code",
|
|
74
|
-
"prompt": "Read and analyze the source code through a conversion lens
|
|
74
|
+
"prompt": "Read and analyze the source code through a conversion lens \u2014 what will be easy to convert, what will be hard, and why.\n\nMap out:\n- Architecture and module structure\n- Key patterns used (MVI, MVVM, dependency injection, etc.)\n- External dependencies and what they do\n- Entry points and public API surface\n- Platform coupling depth: is the code cleanly layered or is platform-specific code smeared throughout? This directly determines how much falls into easy vs. hard buckets.\n- Concurrency model: Coroutines, Combine, RxJS, async/await? This is often the single hardest mapping decision.\n- DI approach: Dagger/Hilt, Swinject, Koin? DI frameworks rarely map 1:1.\n- Test coverage shape: unit tests on business logic (convert easily), UI tests (likely rewrite), integration tests (depends on infra).\n- Shared code boundaries: is there already a shared/common module that might not need conversion at all?\n- Non-trivial migration boundaries: public APIs, externally consumed module boundaries, and lifecycle/state/concurrency/resource boundaries that callers depend on.\n- Caller-visible guarantees for those boundaries. Examples include lifecycle/ownership, laziness vs eagerness, shared vs per-consumer behavior, cancellation/disposal, ordering/replay/buffering, failure behavior, threading/scheduling, or consistency/transaction guarantees.\n- Adaptation depth: classify whether the migration is `low`, `moderate`, or `high` adaptation based on architectural mismatch, missing target-side equivalents, lifecycle/state/concurrency mismatch, and the amount of adapter or redesign work needed.\n\nIdentify which files define or materially affect those boundaries and which of them will require target-repo integration analysis.\n\nCapture:\n- `sourceArchitecture`\n- `dependencies`\n- `publicApiSurface`\n- `platformCouplingAssessment`\n- `concurrencyModel`\n- `testCoverageShape`\n- `semanticBoundaryCandidates`\n- `boundaryCriticalFiles`\n- `adaptationProfile`",
|
|
75
75
|
"promptFragments": [
|
|
76
76
|
{
|
|
77
77
|
"id": "phase-1-small-light",
|
|
78
|
-
"when": {
|
|
79
|
-
|
|
78
|
+
"when": {
|
|
79
|
+
"var": "conversionComplexity",
|
|
80
|
+
"equals": "Small"
|
|
81
|
+
},
|
|
82
|
+
"text": "For Small conversions, keep this lightweight. A quick read of the files in scope is enough \u2014 don't map the entire architecture. Focus on identifying any platform-specific code that would prevent a straight translation."
|
|
80
83
|
}
|
|
81
84
|
],
|
|
82
85
|
"requireConfirmation": {
|
|
@@ -89,11 +92,17 @@
|
|
|
89
92
|
"title": "Small Conversion Fast Path",
|
|
90
93
|
"runCondition": {
|
|
91
94
|
"and": [
|
|
92
|
-
{
|
|
93
|
-
|
|
95
|
+
{
|
|
96
|
+
"var": "conversionComplexity",
|
|
97
|
+
"equals": "Small"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"var": "adaptationProfile",
|
|
101
|
+
"equals": "low"
|
|
102
|
+
}
|
|
94
103
|
]
|
|
95
104
|
},
|
|
96
|
-
"prompt": "For Small conversions, skip triage and planning
|
|
105
|
+
"prompt": "For Small conversions, skip triage and planning \u2014 just convert.\n\n- Translate the files to the target platform idiomatically\n- Follow target platform naming and structure conventions\n- Map any dependencies to target equivalents\n- Convert tests if they exist\n- Run build or typecheck to verify\n\nIf something turns out harder than expected (deep platform coupling, no clean dependency equivalent, or meaningful architectural mismatch), update `conversionComplexity` to `Medium`, update `adaptationProfile` to `moderate` or `high` based on the newly discovered mismatch, and stop. The full triage and planning pipeline will activate for the remaining work.\n\nCapture:\n- `filesConverted`\n- `buildPassed`\n- `conversionComplexity`\n- `adaptationProfile`",
|
|
97
106
|
"requireConfirmation": false
|
|
98
107
|
},
|
|
99
108
|
{
|
|
@@ -101,11 +110,17 @@
|
|
|
101
110
|
"title": "Phase 2: Triage & Sort",
|
|
102
111
|
"runCondition": {
|
|
103
112
|
"or": [
|
|
104
|
-
{
|
|
105
|
-
|
|
113
|
+
{
|
|
114
|
+
"var": "conversionComplexity",
|
|
115
|
+
"not_equals": "Small"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"var": "adaptationProfile",
|
|
119
|
+
"not_equals": "low"
|
|
120
|
+
}
|
|
106
121
|
]
|
|
107
122
|
},
|
|
108
|
-
"prompt": "Classify every file or module in scope into one of three buckets:\n\n**Bucket A
|
|
123
|
+
"prompt": "Classify every file or module in scope into one of three buckets:\n\n**Bucket A \u2014 Literal translation**: Platform-agnostic business logic, data models, utilities, pure functions. These use no platform-specific APIs or libraries. Conversion is mechanical: translate the language syntax, follow target naming conventions, done. These will be delegated to subagents.\n\n**Bucket B \u2014 Library substitution**: Code that uses platform-specific libraries (networking, persistence, serialization, DI) but follows standard patterns. These need dependency mapping but the structure stays the same.\n\n**Bucket C \u2014 Platform-specific**: Code deeply tied to the platform (UI layer, lifecycle management, concurrency/threading, navigation, platform APIs). These need design decisions about target-platform idioms.\n\nFor each file or module, list:\n- File/module name\n- Bucket (A, B, or C)\n- One-line reason for classification\n- Dependencies it has on other files in scope (so we know conversion order)\n- Whether it is `boundaryCritical` for a non-trivial migration boundary\n- Which semantic boundaries it affects from `semanticBoundaryCandidates`\n- Whether it will require target-repo integration analysis\n\nBoundary-critical files must not be treated as blind mechanical translation just because the syntax looks simple. If a file materially affects a semantic boundary or destination-repo seam, keep it with main-agent review.\n\nSort the work items within each bucket by dependency order (convert dependencies first).\n\nGroup Bucket A files into parallel batches of 3-5 files each. Each batch should contain files with no cross-dependencies so subagents can work independently.\n\nGroup Bucket B and C files into sequential batches by dependency order.\n\nEach batch should have: `name` (short label), `bucket` (A, B, or C), and `files` (list of file paths).\n\nCapture:\n- `bucketABatches` (parallel batches for subagent delegation)\n- `bucketBCBatches` (sequential batches for main agent)\n- `bucketACounts`\n- `bucketBCounts`\n- `bucketCCounts`\n- `boundaryCriticalItems`",
|
|
109
124
|
"requireConfirmation": true
|
|
110
125
|
},
|
|
111
126
|
{
|
|
@@ -113,27 +128,45 @@
|
|
|
113
128
|
"title": "Phase 3a: Semantic Contract Inventory",
|
|
114
129
|
"runCondition": {
|
|
115
130
|
"or": [
|
|
116
|
-
{
|
|
117
|
-
|
|
131
|
+
{
|
|
132
|
+
"var": "conversionComplexity",
|
|
133
|
+
"not_equals": "Small"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"var": "adaptationProfile",
|
|
137
|
+
"not_equals": "low"
|
|
138
|
+
}
|
|
118
139
|
]
|
|
119
140
|
},
|
|
120
141
|
"prompt": "Before planning implementation, create a compact semantic contract inventory for the non-trivial migration boundaries in scope.\n\nFocus on:\n- Public APIs\n- Externally consumed module boundaries\n- Lifecycle/state/concurrency/resource boundaries that callers rely on\n\nFor each boundary, record:\n- `boundary`: short identifier for the surface\n- `sourceSurface`: source API or construct\n- `keyGuarantees`: the caller-visible guarantees that must remain true\n- `targetConstruct`: chosen target type or pattern\n- `status`: `preserved`, `intentionally_changed`, or `uncertain`\n- `rationale`\n- `verificationPlan`\n\nUse examples of semantic dimensions as examples only, not a mandatory checklist: lifecycle/ownership, laziness vs eagerness, shared vs per-consumer behavior, cancellation/disposal, ordering/replay/buffering, failure behavior, threading/scheduling, or consistency/transaction guarantees.\n\nIf a boundary cannot be mapped confidently, mark it `uncertain` rather than guessing.\n\nCapture:\n- `semanticContractInventory`\n- `hasUncertainBoundaries`\n- `hasIntentionalBoundaryChanges`",
|
|
121
142
|
"promptFragments": [
|
|
122
143
|
{
|
|
123
144
|
"id": "phase-3a-medium-focused",
|
|
124
|
-
"when": {
|
|
145
|
+
"when": {
|
|
146
|
+
"var": "conversionComplexity",
|
|
147
|
+
"equals": "Medium"
|
|
148
|
+
},
|
|
125
149
|
"text": "For Medium conversions, inventory only the non-trivial boundaries actually touched by the scoped work. Don't expand this into a whole-system audit."
|
|
126
150
|
},
|
|
127
151
|
{
|
|
128
152
|
"id": "phase-3a-high-adaptation",
|
|
129
|
-
"when": {
|
|
153
|
+
"when": {
|
|
154
|
+
"var": "adaptationProfile",
|
|
155
|
+
"equals": "high"
|
|
156
|
+
},
|
|
130
157
|
"text": "For high-adaptation migrations, cover every touched non-trivial boundary and explicitly call out where the contract is likely to be preserved, intentionally changed, or under architectural pressure."
|
|
131
158
|
}
|
|
132
159
|
],
|
|
133
160
|
"requireConfirmation": {
|
|
134
161
|
"or": [
|
|
135
|
-
{
|
|
136
|
-
|
|
162
|
+
{
|
|
163
|
+
"var": "hasUncertainBoundaries",
|
|
164
|
+
"equals": true
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"var": "hasIntentionalBoundaryChanges",
|
|
168
|
+
"equals": true
|
|
169
|
+
}
|
|
137
170
|
]
|
|
138
171
|
}
|
|
139
172
|
},
|
|
@@ -142,20 +175,32 @@
|
|
|
142
175
|
"title": "Phase 3b: Target Integration Analysis",
|
|
143
176
|
"runCondition": {
|
|
144
177
|
"or": [
|
|
145
|
-
{
|
|
146
|
-
|
|
178
|
+
{
|
|
179
|
+
"var": "conversionComplexity",
|
|
180
|
+
"not_equals": "Small"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"var": "adaptationProfile",
|
|
184
|
+
"not_equals": "low"
|
|
185
|
+
}
|
|
147
186
|
]
|
|
148
187
|
},
|
|
149
188
|
"prompt": "For each touched non-trivial migration boundary, analyze how it should fit into the target repo.\n\nThis step is about destination-repo fit, not source semantic guarantees. `semanticContractInventory` defines what must remain true. This step defines where the migrated boundary belongs and what target seams it must satisfy.\n\nFocus only on touched boundaries, not the whole target repo.\n\nFor each boundary, record:\n- `boundary`\n- `targetArea`: target module/layer/package/file area it belongs in\n- `existingPattern`: nearest relevant target abstraction or convention\n- `integrationPoints`: callers, adapters, DI/state/navigation/lifecycle hooks, persistence/network seams, or other required target touchpoints\n- `constraints`: repo-specific rules this boundary must satisfy\n- `decision`: `reuse_as_is`, `reuse_with_adapter`, `extend_existing`, `introduce_new`, or `defer_pending_decision`\n- `fitAssessment`: why the nearest existing abstraction is appropriate, insufficient, or misleading\n- `integrationRisk`: `low`, `medium`, or `high`\n- `uncertain`: `true` or `false`\n- `evidenceFiles`: concrete target files observed\n- `evidenceSymbols`: concrete target symbols observed\n- `rationale`\n\nUse concrete evidence from the target repo. Existing target code is evidence, not authority.\n\nCapture:\n- `targetIntegrationAnalysis`\n- `hasUncertainIntegrationPoints`",
|
|
150
189
|
"promptFragments": [
|
|
151
190
|
{
|
|
152
191
|
"id": "phase-3b-medium-focused",
|
|
153
|
-
"when": {
|
|
192
|
+
"when": {
|
|
193
|
+
"var": "conversionComplexity",
|
|
194
|
+
"equals": "Medium"
|
|
195
|
+
},
|
|
154
196
|
"text": "For Medium conversions, analyze only the touched boundaries that need real destination-repo decisions. Do not expand this into a broad target-architecture survey."
|
|
155
197
|
},
|
|
156
198
|
{
|
|
157
199
|
"id": "phase-3b-high-adaptation",
|
|
158
|
-
"when": {
|
|
200
|
+
"when": {
|
|
201
|
+
"var": "adaptationProfile",
|
|
202
|
+
"equals": "high"
|
|
203
|
+
},
|
|
159
204
|
"text": "For high-adaptation migrations, compare at least one plausible alternative target area or seam for each important boundary and explain why the chosen fit is still the best one."
|
|
160
205
|
}
|
|
161
206
|
],
|
|
@@ -204,20 +249,32 @@
|
|
|
204
249
|
"title": "Phase 3f: Plan Platform-Specific Conversions",
|
|
205
250
|
"runCondition": {
|
|
206
251
|
"or": [
|
|
207
|
-
{
|
|
208
|
-
|
|
252
|
+
{
|
|
253
|
+
"var": "conversionComplexity",
|
|
254
|
+
"not_equals": "Small"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"var": "adaptationProfile",
|
|
258
|
+
"not_equals": "low"
|
|
259
|
+
}
|
|
209
260
|
]
|
|
210
261
|
},
|
|
211
262
|
"prompt": "For Bucket B and Bucket C items, plan the conversion before writing code.\n\nUse both `semanticContractInventory` and `targetIntegrationAnalysis` as required inputs. If `adaptationProfile` is `high`, also use `architectureAdaptationPlan` as a required input. The implementation plan must preserve boundary contracts and fit the target repo's actual seams.\n\nFor Bucket B (library substitution):\n- Map each source dependency to its target-platform equivalent\n- If no equivalent exists, flag it and propose an alternative\n\nFor Bucket C (platform-specific):\n- Threading/concurrency model mapping\n- UI framework mapping\n- DI framework mapping\n- State management mapping\n- Error handling mapping\n- Navigation patterns\n- Lifecycle management approach\n- Testing framework mapping\n- Target module/layer placement and adapter seams\n\nFor anything with no clean target equivalent, propose an idiomatic solution and explain the tradeoff.\n\nBucket A items don't need a plan. They're mechanical translation handled by subagents.\n\nCapture:\n- `idiomMapping`\n- `dependencyMapping`\n- `tradeoffs`",
|
|
212
263
|
"promptFragments": [
|
|
213
264
|
{
|
|
214
265
|
"id": "phase-3f-medium-focused",
|
|
215
|
-
"when": {
|
|
216
|
-
|
|
266
|
+
"when": {
|
|
267
|
+
"var": "conversionComplexity",
|
|
268
|
+
"equals": "Medium"
|
|
269
|
+
},
|
|
270
|
+
"text": "For Medium conversions, focus the plan on the items that actually need design decisions. Don't exhaustively map every dimension \u2014 only the ones relevant to the files in scope."
|
|
217
271
|
},
|
|
218
272
|
{
|
|
219
273
|
"id": "phase-3f-high-adaptation",
|
|
220
|
-
"when": {
|
|
274
|
+
"when": {
|
|
275
|
+
"var": "adaptationProfile",
|
|
276
|
+
"equals": "high"
|
|
277
|
+
},
|
|
221
278
|
"text": "For high-adaptation migrations, state clearly what is translated directly, what is adapted through seams or adapters, and what is intentionally redesigned."
|
|
222
279
|
}
|
|
223
280
|
],
|
|
@@ -230,11 +287,20 @@
|
|
|
230
287
|
"and": [
|
|
231
288
|
{
|
|
232
289
|
"or": [
|
|
233
|
-
{
|
|
234
|
-
|
|
290
|
+
{
|
|
291
|
+
"var": "conversionComplexity",
|
|
292
|
+
"not_equals": "Small"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"var": "adaptationProfile",
|
|
296
|
+
"not_equals": "low"
|
|
297
|
+
}
|
|
235
298
|
]
|
|
236
299
|
},
|
|
237
|
-
{
|
|
300
|
+
{
|
|
301
|
+
"var": "bucketACounts",
|
|
302
|
+
"not_equals": 0
|
|
303
|
+
}
|
|
238
304
|
]
|
|
239
305
|
},
|
|
240
306
|
"promptBlocks": {
|
|
@@ -270,8 +336,14 @@
|
|
|
270
336
|
"title": "Phase 5: Convert Bucket B & C (Main Agent)",
|
|
271
337
|
"runCondition": {
|
|
272
338
|
"or": [
|
|
273
|
-
{
|
|
274
|
-
|
|
339
|
+
{
|
|
340
|
+
"var": "conversionComplexity",
|
|
341
|
+
"not_equals": "Small"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"var": "adaptationProfile",
|
|
345
|
+
"not_equals": "low"
|
|
346
|
+
}
|
|
275
347
|
]
|
|
276
348
|
},
|
|
277
349
|
"loop": {
|
|
@@ -331,14 +403,38 @@
|
|
|
331
403
|
"title": "Verify Batch",
|
|
332
404
|
"runCondition": {
|
|
333
405
|
"or": [
|
|
334
|
-
{
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
{
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
406
|
+
{
|
|
407
|
+
"var": "bucketDriftDetected",
|
|
408
|
+
"equals": true
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"var": "unexpectedDependency",
|
|
412
|
+
"equals": true
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"var": "buildBroke",
|
|
416
|
+
"equals": true
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"var": "contractDriftDetected",
|
|
420
|
+
"equals": true
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"var": "contractUncertain",
|
|
424
|
+
"equals": true
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"var": "integrationDriftDetected",
|
|
428
|
+
"equals": true
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"var": "integrationUncertain",
|
|
432
|
+
"equals": true
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"var": "architectureDriftDetected",
|
|
436
|
+
"equals": true
|
|
437
|
+
}
|
|
342
438
|
]
|
|
343
439
|
},
|
|
344
440
|
"promptBlocks": {
|
|
@@ -370,9 +466,18 @@
|
|
|
370
466
|
},
|
|
371
467
|
"requireConfirmation": {
|
|
372
468
|
"or": [
|
|
373
|
-
{
|
|
374
|
-
|
|
375
|
-
|
|
469
|
+
{
|
|
470
|
+
"var": "contractUncertain",
|
|
471
|
+
"equals": true
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"var": "integrationUncertain",
|
|
475
|
+
"equals": true
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"var": "architectureDriftDetected",
|
|
479
|
+
"equals": true
|
|
480
|
+
}
|
|
376
481
|
]
|
|
377
482
|
}
|
|
378
483
|
}
|
|
@@ -384,8 +489,14 @@
|
|
|
384
489
|
"title": "Phase 6: Final Verification",
|
|
385
490
|
"runCondition": {
|
|
386
491
|
"or": [
|
|
387
|
-
{
|
|
388
|
-
|
|
492
|
+
{
|
|
493
|
+
"var": "conversionComplexity",
|
|
494
|
+
"not_equals": "Small"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"var": "adaptationProfile",
|
|
498
|
+
"not_equals": "low"
|
|
499
|
+
}
|
|
389
500
|
]
|
|
390
501
|
},
|
|
391
502
|
"loop": {
|
|
@@ -401,7 +512,7 @@
|
|
|
401
512
|
{
|
|
402
513
|
"id": "phase-6a-full-build",
|
|
403
514
|
"title": "Full Build and Integration Check",
|
|
404
|
-
"prompt": "Run a full build or typecheck on the entire converted codebase
|
|
515
|
+
"prompt": "Run a full build or typecheck on the entire converted codebase \u2014 both subagent-converted and main-agent-converted code together.\n\nCheck for:\n- Build/compile errors from cross-batch integration issues\n- Inconsistencies between subagent output and main agent output (naming, patterns)\n- Non-idiomatic patterns that slipped through\n- Missing error handling at module boundaries\n- Threading or concurrency issues across modules\n- Broken public API contracts\n- Contract inventory drift: every row in `semanticContractInventory` is still accounted for, no `uncertain` rows remain, preserved contracts still look preserved, and intentional changes are still justified\n- Target integration drift: code landed in the intended target layer/module, reuse/adaptation decisions still fit the observed target seams, and no unresolved target integration uncertainties remain\n- High-adaptation architecture drift: if `adaptationProfile` is `high`, the final code still matches `architectureAdaptationPlan` and any deviations are explicit and justified\n\nFix each issue. If a fix is a band-aid over a deeper mapping problem, go back and fix the mapping.\n\nCapture:\n- `fullBuildPassed`\n- `integrationIssues`\n- `issuesFixed`",
|
|
405
516
|
"requireConfirmation": false
|
|
406
517
|
},
|
|
407
518
|
{
|
|
@@ -422,15 +533,24 @@
|
|
|
422
533
|
"promptFragments": [
|
|
423
534
|
{
|
|
424
535
|
"id": "phase-7-small-summary",
|
|
425
|
-
"when": {
|
|
426
|
-
|
|
536
|
+
"when": {
|
|
537
|
+
"var": "conversionComplexity",
|
|
538
|
+
"equals": "Small"
|
|
539
|
+
},
|
|
540
|
+
"text": "For Small conversions, keep the summary brief \u2014 just list what was converted, build status, and any issues."
|
|
427
541
|
},
|
|
428
542
|
{
|
|
429
543
|
"id": "phase-7-full-summary",
|
|
430
544
|
"when": {
|
|
431
545
|
"or": [
|
|
432
|
-
{
|
|
433
|
-
|
|
546
|
+
{
|
|
547
|
+
"var": "conversionComplexity",
|
|
548
|
+
"not_equals": "Small"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"var": "adaptationProfile",
|
|
552
|
+
"not_equals": "low"
|
|
553
|
+
}
|
|
434
554
|
]
|
|
435
555
|
},
|
|
436
556
|
"text": "Also include: bucket breakdown (A/B/C counts), delegation results (how many files delegated, subagent quality, any reclassified), key idiom mapping decisions, dependency substitutions, notable preserved contracts, notable target integration decisions, any intentional semantic changes, the selected adaptation approach, any architecture adaptation choices, and any boundaries needing manual review."
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "document-creation-workflow",
|
|
3
3
|
"name": "Document Creation Workflow",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to create broad or comprehensive documentation spanning multiple components or systems \u2014 project READMEs, complete API docs, user guides, or technical specifications.",
|
|
6
6
|
"preconditions": [
|
|
7
7
|
"User has a clear idea of the document type and purpose.",
|
|
8
8
|
"Relevant project files or information are available for reference.",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"metaGuidance": [
|
|
13
13
|
"NOTES-FIRST DURABILITY: use output.notesMarkdown as the primary durable record. Do NOT create CONTEXT.md, doc_spec.md, or content_plan.md as workflow memory.",
|
|
14
14
|
"DISCOVER BEFORE ASKING: use tools to explore the project before asking clarification questions. Only ask what tools cannot answer.",
|
|
15
|
-
"COMPLEXITY DRIVES BRANCHING: docComplexity=Simple uses the fast path; Standard/Complex uses the full path. If complexity changes during work, note it in notesMarkdown and adapt
|
|
15
|
+
"COMPLEXITY DRIVES BRANCHING: docComplexity=Simple uses the fast path; Standard/Complex uses the full path. If complexity changes during work, note it in notesMarkdown and adapt \u2014 no retriage ceremony needed.",
|
|
16
16
|
"CONTENT-FIRST: the deliverable is the document, not planning artifacts. Keep planning proportional to scope.",
|
|
17
|
-
"EVIDENCE-BASED QUALITY: each quality dimension in the review step requires a one-sentence evidence statement and a pass or needs-work verdict
|
|
17
|
+
"EVIDENCE-BASED QUALITY: each quality dimension in the review step requires a one-sentence evidence statement and a pass or needs-work verdict \u2014 not a numeric score."
|
|
18
18
|
],
|
|
19
19
|
"steps": [
|
|
20
20
|
{
|
|
@@ -31,11 +31,17 @@
|
|
|
31
31
|
"title": "Phase 1: Project Analysis",
|
|
32
32
|
"runCondition": {
|
|
33
33
|
"or": [
|
|
34
|
-
{
|
|
35
|
-
|
|
34
|
+
{
|
|
35
|
+
"var": "docComplexity",
|
|
36
|
+
"equals": "Standard"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"var": "docComplexity",
|
|
40
|
+
"equals": "Complex"
|
|
41
|
+
}
|
|
36
42
|
]
|
|
37
43
|
},
|
|
38
|
-
"prompt": "Analyze the project to inform documentation strategy. Limit this analysis to 1500 words; prioritize documentation-relevant insights.\n\nCover:\n1. **Existing documentation landscape**
|
|
44
|
+
"prompt": "Analyze the project to inform documentation strategy. Limit this analysis to 1500 words; prioritize documentation-relevant insights.\n\nCover:\n1. **Existing documentation landscape** \u2014 current docs, style patterns, gaps\n2. **Project architecture** \u2014 key components relevant to this document\n3. **User or developer workflows** \u2014 how documentation fits into user journeys\n4. **Technical constraints** \u2014 APIs, systems, integrations to document\n5. **Style conventions** \u2014 terminology, formatting, naming patterns to follow\n6. **Audience** \u2014 who will use this documentation and what they need to accomplish\n\nNote any complexity indicators that might warrant reclassifying `docComplexity` upward.",
|
|
39
45
|
"requireConfirmation": false
|
|
40
46
|
},
|
|
41
47
|
{
|
|
@@ -43,8 +49,14 @@
|
|
|
43
49
|
"title": "Phase 2: Targeted Requirements",
|
|
44
50
|
"runCondition": {
|
|
45
51
|
"or": [
|
|
46
|
-
{
|
|
47
|
-
|
|
52
|
+
{
|
|
53
|
+
"var": "docComplexity",
|
|
54
|
+
"equals": "Standard"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"var": "docComplexity",
|
|
58
|
+
"equals": "Complex"
|
|
59
|
+
}
|
|
48
60
|
]
|
|
49
61
|
},
|
|
50
62
|
"prompt": "Based on your project analysis, ask 2 to 4 targeted questions that you genuinely cannot answer from the codebase or project files.\n\nFocus on clarifications that materially affect content or structure:\n- Specific scope boundaries (what to include or exclude)\n- Audience-specific requirements not evident from the code\n- Constraints, templates, or organizational standards to follow\n- Integration requirements with existing documentation systems\n\nDo not ask questions the analysis already answered.",
|
|
@@ -55,15 +67,24 @@
|
|
|
55
67
|
"title": "Phase 3: Content Plan",
|
|
56
68
|
"runCondition": {
|
|
57
69
|
"or": [
|
|
58
|
-
{
|
|
59
|
-
|
|
70
|
+
{
|
|
71
|
+
"var": "docComplexity",
|
|
72
|
+
"equals": "Standard"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"var": "docComplexity",
|
|
76
|
+
"equals": "Complex"
|
|
77
|
+
}
|
|
60
78
|
]
|
|
61
79
|
},
|
|
62
|
-
"prompt": "Create a content plan for this documentation in your notes.\n\nThe plan should cover:\n1. Document purpose and success criteria\n2. Target audience and their primary goals\n3. Section outline with one-line descriptions\n4. Writing strategy
|
|
80
|
+
"prompt": "Create a content plan for this documentation in your notes.\n\nThe plan should cover:\n1. Document purpose and success criteria\n2. Target audience and their primary goals\n3. Section outline with one-line descriptions\n4. Writing strategy \u2014 tone, technical depth, key terminology\n5. Visual elements or code examples needed\n\nKeep the plan proportional to scope. The goal is a clear outline to execute against, not a heavyweight specification.",
|
|
63
81
|
"promptFragments": [
|
|
64
82
|
{
|
|
65
83
|
"id": "phase-3-plan-complex",
|
|
66
|
-
"when": {
|
|
84
|
+
"when": {
|
|
85
|
+
"var": "docComplexity",
|
|
86
|
+
"equals": "Complex"
|
|
87
|
+
},
|
|
67
88
|
"text": "For Complex documentation, also include: integration strategy (how this doc connects to the existing documentation ecosystem), maintenance ownership, and any stakeholder review requirements."
|
|
68
89
|
}
|
|
69
90
|
],
|
|
@@ -80,16 +101,25 @@
|
|
|
80
101
|
"title": "Phase 5: Quality Review",
|
|
81
102
|
"runCondition": {
|
|
82
103
|
"or": [
|
|
83
|
-
{
|
|
84
|
-
|
|
104
|
+
{
|
|
105
|
+
"var": "docComplexity",
|
|
106
|
+
"equals": "Standard"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"var": "docComplexity",
|
|
110
|
+
"equals": "Complex"
|
|
111
|
+
}
|
|
85
112
|
]
|
|
86
113
|
},
|
|
87
|
-
"prompt": "Review the documentation you just wrote using this rubric. For each dimension, provide a one-sentence evidence statement and a verdict of `pass` or `needs-work`.\n\n1. **Accuracy**
|
|
114
|
+
"prompt": "Review the documentation you just wrote using this rubric. For each dimension, provide a one-sentence evidence statement and a verdict of `pass` or `needs-work`.\n\n1. **Accuracy** \u2014 Does the content correctly describe the actual project or system? *(Evidence: cite one verified fact.)*\n2. **Completeness** \u2014 Does it cover all planned sections? *(Evidence: list planned vs completed sections.)*\n3. **Audience fit** \u2014 Is the technical depth right for the target reader? *(Evidence: identify one audience-appropriate choice made.)*\n4. **Usability** \u2014 Could a reader actually accomplish their goal using this doc? *(Evidence: trace one user journey through the doc.)*\n5. **Consistency** \u2014 Does it match project conventions for style, terminology, and format? *(Evidence: cite one convention followed.)*\n\nIf any dimension is `needs-work`, fix the issue immediately and re-assert the dimension as `pass` in your notes before continuing.",
|
|
88
115
|
"promptFragments": [
|
|
89
116
|
{
|
|
90
117
|
"id": "phase-5-quality-review-complex",
|
|
91
|
-
"when": {
|
|
92
|
-
|
|
118
|
+
"when": {
|
|
119
|
+
"var": "docComplexity",
|
|
120
|
+
"equals": "Complex"
|
|
121
|
+
},
|
|
122
|
+
"text": "Also review a sixth dimension:\n6. **Integration coherence** \u2014 Does the doc integrate correctly with the existing documentation ecosystem? *(Evidence: describe how it cross-links or relates to existing docs.)*"
|
|
93
123
|
}
|
|
94
124
|
],
|
|
95
125
|
"requireConfirmation": false
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "documentation-update-workflow",
|
|
3
3
|
"name": "Documentation Update & Maintenance Workflow",
|
|
4
4
|
"version": "2.0.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to update and maintain existing documentation. Uses git history to detect staleness, maps sections to current code, and refreshes outdated content while preserving what's still accurate.",
|
|
6
6
|
"preconditions": [
|
|
7
7
|
"Target documentation files are accessible",
|
|
8
8
|
"Agent has git access to the repository containing both docs and code",
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
"GIT-EVIDENCE-FIRST: staleness judgment must be grounded in actual git log output. Do not assert a doc is stale based on reading it alone. Run git log; record commit SHAs and messages as evidence.",
|
|
15
15
|
"PRESERVATION-FIRST: keep accurate, well-written content unchanged. Only update what is demonstrably stale or incorrect. Targeted updates are better than wholesale rewrites.",
|
|
16
16
|
"VERIFY AGAINST CODE: all updated technical content must be checked against current codebase state. Code examples and API references must match what is actually in the code today.",
|
|
17
|
-
"DEGRADE AND DISCLOSE: if git history is unavailable or shallow for some paths, classify staleness as medium and note what evidence is missing. Never block
|
|
17
|
+
"DEGRADE AND DISCLOSE: if git history is unavailable or shallow for some paths, classify staleness as medium and note what evidence is missing. Never block \u2014 proceed with what is available.",
|
|
18
18
|
"SELF-EXECUTE: explore first with tools. Ask the user only what you genuinely cannot determine from the codebase and git history. The one real confirmation gate is the update plan before executing edits.",
|
|
19
|
-
"LOOP DISCIPLINE: the update loop runs without per-section gates
|
|
19
|
+
"LOOP DISCIPLINE: the update loop runs without per-section gates \u2014 the plan was approved in phase-2. Only pause if a section requires changes beyond what the approved plan covers; note the deviation and ask."
|
|
20
20
|
],
|
|
21
21
|
"steps": [
|
|
22
22
|
{
|
|
23
23
|
"id": "phase-0-assess",
|
|
24
24
|
"title": "Phase 0: Assess Documentation & Establish Git Baseline",
|
|
25
|
-
"prompt": "Locate the target documentation and establish an evidence-based staleness assessment before you decide anything.\n\n**Step 1: Locate and inventory target docs**\n- Identify all documentation files in scope\n- Note file formats, structure, and rough section organization\n- Infer the code paths these docs reference (scopePaths)\n\n**Step 2: Git baseline**\n- Run `git log -1 <docPath>` for each target doc to get the last commit SHA and date\n- Run `git log <lastCommitSha>..HEAD -- <scopePaths>` to get all code changes since the doc was last updated\n- For each commit, classify impact: API/breaking (new exports, changed interfaces, removed functions), behavioral (changed logic), config (schema/option changes), or minor (refactor, rename, test-only)\n\n**Step 3: Staleness classification (rubric-based)**\n\nScore these three dimensions:\n- **Impact**: any API/breaking changes? any behavioral or config changes?\n- **Volume**: how many commits changed the relevant scope since last doc update?\n- **Age**: how many days since the doc was last committed?\n\nDerive `stalenessLevel`:\n- `high`: any API/breaking impact, OR volume > 5 commits AND age > 90 days\n- `medium`: volume > 2 commits, OR age > 60 days, OR behavioral/config changes present\n- `low`: few changes, nothing impacting documented behavior, age < 60 days\n- If git history is unavailable: `medium`
|
|
25
|
+
"prompt": "Locate the target documentation and establish an evidence-based staleness assessment before you decide anything.\n\n**Step 1: Locate and inventory target docs**\n- Identify all documentation files in scope\n- Note file formats, structure, and rough section organization\n- Infer the code paths these docs reference (scopePaths)\n\n**Step 2: Git baseline**\n- Run `git log -1 <docPath>` for each target doc to get the last commit SHA and date\n- Run `git log <lastCommitSha>..HEAD -- <scopePaths>` to get all code changes since the doc was last updated\n- For each commit, classify impact: API/breaking (new exports, changed interfaces, removed functions), behavioral (changed logic), config (schema/option changes), or minor (refactor, rename, test-only)\n\n**Step 3: Staleness classification (rubric-based)**\n\nScore these three dimensions:\n- **Impact**: any API/breaking changes? any behavioral or config changes?\n- **Volume**: how many commits changed the relevant scope since last doc update?\n- **Age**: how many days since the doc was last committed?\n\nDerive `stalenessLevel`:\n- `high`: any API/breaking impact, OR volume > 5 commits AND age > 90 days\n- `medium`: volume > 2 commits, OR age > 60 days, OR behavioral/config changes present\n- `low`: few changes, nothing impacting documented behavior, age < 60 days\n- If git history is unavailable: `medium` \u2014 note what is missing\n\nDerive `updateUrgency`:\n- `high` staleness \u2192 `immediate`\n- `medium` staleness \u2192 `scheduled`\n- `low` staleness \u2192 `monitor` \u2014 if user did not request a forced update, document why and offer to exit\n\n**Capture:**\n- `targetDocPaths`, `scopePaths`\n- `gitLastDocCommitSha`, `gitLastDocCommitDate`\n- `stalenessLevel`, `updateUrgency`\n- `gitChangeSummary` \u2014 prose summary of what changed and why it matters for the docs",
|
|
26
26
|
"requireConfirmation": {
|
|
27
27
|
"var": "updateUrgency",
|
|
28
28
|
"equals": "monitor"
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
{
|
|
32
32
|
"id": "phase-1-analyze",
|
|
33
33
|
"title": "Phase 1: Section-by-Section Gap Analysis",
|
|
34
|
-
"prompt": "Now map each documentation section to current code and classify what needs to change.\n\nFor each section in the target docs:\n1. **Map to code**
|
|
34
|
+
"prompt": "Now map each documentation section to current code and classify what needs to change.\n\nFor each section in the target docs:\n1. **Map to code** \u2014 which files, functions, APIs, or behaviors does this section describe?\n2. **Assess accuracy** \u2014 does the current code match what the section says? Check API signatures, config options, behavioral descriptions, examples, and file paths.\n3. **Classify the section action**:\n - `preserve` \u2014 still accurate, well-written; keep unchanged\n - `update` \u2014 needs correction or expansion; note specifically what changed\n - `remove` \u2014 describes something that no longer exists\n\n4. **Assign update type** for sections marked `update`:\n - `corrective` \u2014 fix inaccurate information\n - `additive` \u2014 add missing coverage for new features\n - `expansive` \u2014 expand thin explanations\n - `reductive` \u2014 remove deprecated or removed content\n - `structural` \u2014 reorganize while preserving content\n\n5. **Assign priority** for sections marked `update`:\n - `critical` \u2014 inaccurate content that would cause errors or confusion for users\n - `important` \u2014 missing or outdated content for significant features or workflows\n - `beneficial` \u2014 improvements that add value but aren't blocking\n\n**Capture:**\n- `sectionInventory` \u2014 list of all sections with: sectionId, action (preserve/update/remove), updateType, priority, and a one-line reason\n\nEvery section must be classified before moving on.",
|
|
35
35
|
"requireConfirmation": false
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"id": "phase-2-plan",
|
|
39
39
|
"title": "Phase 2: Update Plan",
|
|
40
|
-
"prompt": "Build the ordered update plan based on the section inventory, then confirm it with me before you start editing anything.\n\nFrom `sectionInventory`, create `updatePlan` as an ordered list:\n1. All `critical` updates first\n2. `important` updates next\n3. `beneficial` updates last (may defer if scope is large)\n\nFor each entry in the plan:\n- Section name and location\n- Update type (corrective / additive / expansive / reductive / structural)\n- Specific description of what to change and why\n- What content to preserve unchanged\n\nAlso note:\n- Total sections to update vs total sections to preserve\n- Any `remove` entries that need explicit deletion\n- Any sections that are `beneficial` you recommend deferring\n\n**This step requires confirmation**
|
|
40
|
+
"prompt": "Build the ordered update plan based on the section inventory, then confirm it with me before you start editing anything.\n\nFrom `sectionInventory`, create `updatePlan` as an ordered list:\n1. All `critical` updates first\n2. `important` updates next\n3. `beneficial` updates last (may defer if scope is large)\n\nFor each entry in the plan:\n- Section name and location\n- Update type (corrective / additive / expansive / reductive / structural)\n- Specific description of what to change and why\n- What content to preserve unchanged\n\nAlso note:\n- Total sections to update vs total sections to preserve\n- Any `remove` entries that need explicit deletion\n- Any sections that are `beneficial` you recommend deferring\n\n**This step requires confirmation** \u2014 I need to review the plan before you make edits to the documentation files.\n\n**Capture:**\n- `updatePlan` \u2014 ordered list as described above\n- `sectionsRemaining` \u2014 total count of sections to update (for loop tracking)",
|
|
41
41
|
"requireConfirmation": true
|
|
42
42
|
},
|
|
43
43
|
{
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
{
|
|
70
70
|
"id": "verify-section",
|
|
71
71
|
"title": "Verify the Updated Section",
|
|
72
|
-
"prompt": "Verify that the update to `currentSection` is correct before moving on.\n\nCheck:\n1. **Technical accuracy**
|
|
72
|
+
"prompt": "Verify that the update to `currentSection` is correct before moving on.\n\nCheck:\n1. **Technical accuracy** \u2014 does every technical claim match the current codebase? Check the code directly if needed.\n2. **Code examples** \u2014 are all code blocks in this section syntactically valid and behaviorally correct against current APIs?\n3. **Preservation** \u2014 what did you keep unchanged? Confirm the preserved content is still present and intact.\n4. **Cross-references** \u2014 are any internal links pointing to or from this section still working?\n\nDecrement `sectionsRemaining` by 1.\n\nRecord findings in notes: what you changed, what you preserved, any issues found.\n\n**Capture:** updated `sectionsRemaining`",
|
|
73
73
|
"requireConfirmation": false
|
|
74
74
|
},
|
|
75
75
|
{
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
{
|
|
88
88
|
"id": "phase-4-validate",
|
|
89
89
|
"title": "Phase 4: End-to-End Validation",
|
|
90
|
-
"prompt": "Read through all updated documentation as a fresh reader and validate it as a whole.\n\n1. **End-to-end consistency**
|
|
90
|
+
"prompt": "Read through all updated documentation as a fresh reader and validate it as a whole.\n\n1. **End-to-end consistency** \u2014 read the docs in order. Is terminology consistent? Does the logical flow make sense? Do sections refer to each other correctly?\n\n2. **Technical accuracy pass** \u2014 for any section you feel uncertain about, verify it against current code now. If verification reveals a remaining inaccuracy, note it explicitly: what is wrong, where it is, and what the correct information should be. Do not silently pass a section you are unsure about.\n\n3. **User journey test** \u2014 walk through the key documented workflows from start to finish using only the documentation. Do setup instructions work? Are the most important use cases covered correctly?\n\n4. **Navigation and structure** \u2014 are all cross-references working? Is the table of contents (if present) accurate? Can a user find what they need?\n\n5. **Completeness check** \u2014 look back at the original gap analysis. Were all critical and important updates completed? Note explicitly if any were deferred.\n\nDocument what you found: any remaining issues, any sections that still need work, and your overall assessment of the documentation quality after the update.",
|
|
91
91
|
"requireConfirmation": false
|
|
92
92
|
},
|
|
93
93
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "intelligent-test-case-generation",
|
|
3
3
|
"name": "Test Case Generation from Tickets",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to generate integration and end-to-end test cases from ticket requirements. Reads the ticket, traces affected code paths, identifies boundary conditions, and produces developer-readable test case descriptions.",
|
|
6
6
|
"preconditions": [
|
|
7
7
|
"User provides a ticket (title, description, acceptance criteria) in any standard format.",
|
|
8
8
|
"Agent has read access to the codebase for tracing affected paths and finding existing test patterns.",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"var": "ambiguities",
|
|
32
32
|
"not_equals": []
|
|
33
33
|
},
|
|
34
|
-
"prompt": "Before generating test scenarios, resolve the ambiguities you found.\n\nFor each ambiguity in `ambiguities`:\n1. State what is unclear and why it matters for test design\n2. Propose the most reasonable interpretation based on context\n3. Ask me to confirm, adjust, or provide the missing information\n\nKeep questions targeted. If the ticket, codebase, or docs can answer the question, answer it yourself first.\n\nIf the user's response significantly changes the scope or adds new acceptance criteria, revisit Phase 1 scenario identification before continuing
|
|
34
|
+
"prompt": "Before generating test scenarios, resolve the ambiguities you found.\n\nFor each ambiguity in `ambiguities`:\n1. State what is unclear and why it matters for test design\n2. Propose the most reasonable interpretation based on context\n3. Ask me to confirm, adjust, or provide the missing information\n\nKeep questions targeted. If the ticket, codebase, or docs can answer the question, answer it yourself first.\n\nIf the user's response significantly changes the scope or adds new acceptance criteria, revisit Phase 1 scenario identification before continuing \u2014 do not carry stale scenarios forward.\n\nCapture:\n- `resolvedAmbiguities` -- list of ambiguities with chosen interpretation\n- `openAmbiguities` -- ambiguities the user still needs to resolve (initialize as empty)",
|
|
35
35
|
"requireConfirmation": true
|
|
36
36
|
},
|
|
37
37
|
{
|