@exaudeus/workrail 3.14.0 → 3.16.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/application/services/workflow-service.d.ts +2 -0
- package/dist/application/services/workflow-service.js +3 -0
- package/dist/console/assets/index-BE5PAgPO.js +28 -0
- package/dist/console/assets/index-BZNM03t1.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/env-flags.d.ts +1 -0
- package/dist/env-flags.js +4 -0
- package/dist/infrastructure/session/HttpServer.d.ts +3 -3
- package/dist/infrastructure/session/HttpServer.js +68 -74
- package/dist/infrastructure/storage/caching-workflow-storage.d.ts +2 -0
- package/dist/infrastructure/storage/caching-workflow-storage.js +15 -6
- package/dist/infrastructure/storage/file-workflow-storage.js +3 -4
- package/dist/infrastructure/storage/schema-validating-workflow-storage.js +9 -8
- package/dist/manifest.json +283 -219
- package/dist/mcp/assert-output.d.ts +37 -0
- package/dist/mcp/assert-output.js +52 -0
- package/dist/mcp/boundary-coercion.d.ts +1 -0
- package/dist/mcp/boundary-coercion.js +44 -0
- package/dist/mcp/dev-mode.d.ts +1 -0
- package/dist/mcp/dev-mode.js +4 -0
- package/dist/mcp/handler-factory.js +12 -9
- package/dist/mcp/handlers/session.js +8 -9
- 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/event-builders.d.ts +2 -0
- package/dist/mcp/handlers/v2-advance-core/event-builders.js +6 -6
- package/dist/mcp/handlers/v2-advance-core/index.d.ts +2 -0
- package/dist/mcp/handlers/v2-advance-core/index.js +5 -4
- package/dist/mcp/handlers/v2-advance-core/input-validation.d.ts +2 -0
- package/dist/mcp/handlers/v2-advance-core/input-validation.js +32 -9
- package/dist/mcp/handlers/v2-advance-core/outcome-blocked.d.ts +2 -0
- package/dist/mcp/handlers/v2-advance-core/outcome-blocked.js +2 -2
- package/dist/mcp/handlers/v2-advance-core/outcome-success.d.ts +2 -0
- package/dist/mcp/handlers/v2-advance-core/outcome-success.js +1 -1
- package/dist/mcp/handlers/v2-checkpoint.d.ts +1 -1
- package/dist/mcp/handlers/v2-checkpoint.js +5 -6
- package/dist/mcp/handlers/v2-execution/advance.d.ts +4 -2
- package/dist/mcp/handlers/v2-execution/advance.js +5 -7
- package/dist/mcp/handlers/v2-execution/continue-advance.js +56 -26
- package/dist/mcp/handlers/v2-execution/continue-rehydrate.d.ts +1 -1
- package/dist/mcp/handlers/v2-execution/continue-rehydrate.js +9 -9
- package/dist/mcp/handlers/v2-execution/replay.d.ts +6 -4
- package/dist/mcp/handlers/v2-execution/replay.js +47 -30
- package/dist/mcp/handlers/v2-execution/start.d.ts +3 -3
- package/dist/mcp/handlers/v2-execution/start.js +31 -12
- package/dist/mcp/handlers/v2-execution/workflow-object-cache.d.ts +5 -0
- package/dist/mcp/handlers/v2-execution/workflow-object-cache.js +19 -0
- package/dist/mcp/handlers/v2-execution-helpers.d.ts +1 -0
- package/dist/mcp/handlers/v2-execution-helpers.js +23 -7
- package/dist/mcp/handlers/v2-resume.d.ts +1 -1
- package/dist/mcp/handlers/v2-resume.js +3 -4
- package/dist/mcp/handlers/v2-state-conversion.js +5 -1
- package/dist/mcp/handlers/v2-workflow.d.ts +100 -0
- package/dist/mcp/handlers/v2-workflow.js +155 -31
- package/dist/mcp/handlers/workflow.d.ts +2 -5
- package/dist/mcp/handlers/workflow.js +15 -12
- package/dist/mcp/output-schemas.d.ts +123 -29
- package/dist/mcp/output-schemas.js +36 -18
- package/dist/mcp/server.js +70 -5
- package/dist/mcp/tool-call-timing.d.ts +24 -0
- package/dist/mcp/tool-call-timing.js +85 -0
- package/dist/mcp/tool-descriptions.js +17 -9
- package/dist/mcp/transports/http-entry.js +3 -2
- package/dist/mcp/transports/http-listener.d.ts +1 -0
- package/dist/mcp/transports/http-listener.js +25 -0
- package/dist/mcp/transports/shutdown-hooks.d.ts +4 -1
- package/dist/mcp/transports/shutdown-hooks.js +3 -2
- package/dist/mcp/transports/stdio-entry.js +6 -28
- package/dist/mcp/v2/tools.d.ts +6 -0
- package/dist/mcp/v2/tools.js +2 -0
- package/dist/mcp/v2-response-formatter.js +2 -4
- package/dist/mcp/validation/schema-introspection.d.ts +1 -0
- package/dist/mcp/validation/schema-introspection.js +15 -5
- package/dist/mcp/validation/suggestion-generator.js +2 -2
- package/dist/mcp/workflow-protocol-contracts.js +5 -1
- package/dist/runtime/adapters/node-process-signals.d.ts +1 -0
- package/dist/runtime/adapters/node-process-signals.js +5 -0
- package/dist/runtime/adapters/noop-process-signals.d.ts +1 -0
- package/dist/runtime/adapters/noop-process-signals.js +2 -0
- package/dist/runtime/ports/process-signals.d.ts +1 -0
- package/dist/types/workflow-definition.d.ts +3 -2
- package/dist/types/workflow.d.ts +3 -0
- package/dist/types/workflow.js +35 -26
- package/dist/v2/durable-core/domain/context-template-resolver.js +2 -2
- package/dist/v2/durable-core/domain/function-definition-expander.js +2 -17
- package/dist/v2/durable-core/domain/prompt-renderer.d.ts +1 -0
- package/dist/v2/durable-core/domain/prompt-renderer.js +23 -18
- package/dist/v2/durable-core/domain/recap-recovery.js +23 -16
- package/dist/v2/durable-core/domain/retrieval-contract.js +13 -7
- package/dist/v2/durable-core/session-index.d.ts +22 -0
- package/dist/v2/durable-core/session-index.js +58 -0
- package/dist/v2/durable-core/sorted-event-log.d.ts +6 -0
- package/dist/v2/durable-core/sorted-event-log.js +15 -0
- package/dist/v2/infra/local/fs/index.js +8 -8
- package/dist/v2/infra/local/session-store/index.d.ts +1 -1
- package/dist/v2/infra/local/session-store/index.js +71 -61
- package/dist/v2/infra/local/session-summary-provider/index.js +9 -4
- package/dist/v2/infra/local/snapshot-store/index.js +2 -1
- package/dist/v2/infra/local/workspace-anchor/index.js +4 -1
- package/dist/v2/ports/session-event-log-store.port.d.ts +1 -1
- package/dist/v2/projections/assessment-consequences.d.ts +2 -1
- package/dist/v2/projections/assessment-consequences.js +0 -5
- package/dist/v2/projections/assessments.d.ts +2 -1
- package/dist/v2/projections/assessments.js +2 -4
- package/dist/v2/projections/gaps.d.ts +2 -1
- package/dist/v2/projections/gaps.js +0 -5
- package/dist/v2/projections/preferences.d.ts +2 -1
- package/dist/v2/projections/preferences.js +0 -5
- package/dist/v2/projections/run-context.d.ts +2 -2
- package/dist/v2/projections/run-context.js +0 -5
- package/dist/v2/projections/run-dag.js +7 -1
- package/dist/v2/projections/run-execution-trace.d.ts +8 -0
- package/dist/v2/projections/run-execution-trace.js +124 -0
- package/dist/v2/projections/run-status-signals.d.ts +2 -2
- package/dist/v2/usecases/console-routes.d.ts +3 -1
- package/dist/v2/usecases/console-routes.js +149 -3
- package/dist/v2/usecases/console-service.d.ts +2 -0
- package/dist/v2/usecases/console-service.js +87 -26
- package/dist/v2/usecases/console-types.d.ts +65 -0
- package/dist/v2/usecases/worktree-service.js +87 -8
- package/package.json +7 -6
- package/spec/authoring-spec.json +82 -1
- package/spec/workflow-tags.json +132 -0
- package/spec/workflow.schema.json +21 -11
- package/workflows/adaptive-ticket-creation.json +33 -8
- package/workflows/architecture-scalability-audit.json +50 -9
- package/workflows/bug-investigation.agentic.v2.json +43 -14
- package/workflows/coding-task-workflow-agentic.json +57 -38
- package/workflows/coding-task-workflow-agentic.lean.v2.json +129 -34
- package/workflows/coding-task-workflow-agentic.v2.json +97 -30
- package/workflows/cross-platform-code-conversion.v2.json +175 -48
- package/workflows/document-creation-workflow.json +49 -12
- package/workflows/documentation-update-workflow.json +9 -2
- package/workflows/intelligent-test-case-generation.json +9 -2
- package/workflows/learner-centered-course-workflow.json +273 -266
- package/workflows/mr-review-workflow.agentic.v2.json +88 -14
- package/workflows/personal-learning-materials-creation-branched.json +181 -174
- package/workflows/presentation-creation.json +167 -160
- package/workflows/production-readiness-audit.json +61 -15
- package/workflows/relocation-workflow-us.json +21 -5
- package/workflows/routines/tension-driven-design.json +1 -1
- package/workflows/scoped-documentation-workflow.json +9 -2
- package/workflows/test-artifact-loop-control.json +1 -2
- package/workflows/ui-ux-design-workflow.json +334 -0
- package/workflows/workflow-diagnose-environment.json +7 -1
- package/workflows/workflow-for-workflows.json +514 -484
- package/workflows/workflow-for-workflows.v2.json +55 -11
- package/workflows/wr.discovery.json +118 -29
- package/dist/console/assets/index-DW78t31j.css +0 -1
- package/dist/console/assets/index-EsSXrC_a.js +0 -28
|
@@ -1,165 +1,172 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
2
|
+
"id": "presentation-creation",
|
|
3
|
+
"name": "Presentation Creation Workflow",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Use this to create a compelling presentation. Covers audience analysis, content strategy, slide structure, and delivery preparation. Output works with any presentation tool.",
|
|
6
|
+
"about": "## Presentation Creation Workflow\n\nUse this to build a compelling, audience-specific presentation from scratch -- whether for a conference talk, internal strategy review, client pitch, or team demo. The workflow grounds every content decision in a concrete audience profile, so the result is written for real people in a real context rather than a generic slide deck.\n\n### What it produces\n\n- An audience profile and context map.\n- A content strategy with a single core message, supporting arguments, and a call-to-action.\n- A numbered slide outline with content types and timing estimates.\n- Full slide content and speaker notes for every slide.\n- Backup slides for anticipated deep-dive questions.\n- A delivery preparation plan including practice schedule, Q&A prep, and technical checklist.\n\n### When to use it\n\n- You are building a presentation that needs to persuade, inform, or motivate a specific audience.\n- You want structured help moving from \"I have a topic\" to \"I have a complete, rehearsal-ready deck.\"\n- The presentation has real stakes -- a client pitch, a leadership review, a conference talk.\n\n### When NOT to use it\n\n- You just need to slap a few bullets onto slides quickly -- this workflow is for presentations where quality matters.\n\n### How to get good results\n\n- The more specific you are about your audience, the better the content strategy will be. \"Engineering managers at a Series B fintech\" beats \"technical people.\"\n- The workflow has two confirmation gates: after the audience profile and after the slide outline. Use these to redirect before content gets written.\n- Bring source materials, data, and any existing slides you want to incorporate -- the content development step can ingest these.",
|
|
7
|
+
"examples": [
|
|
8
|
+
"Create a 20-minute conference talk on migrating a monolith to microservices for a senior engineering audience",
|
|
9
|
+
"Build a 10-slide investor pitch deck for our Series A fundraise",
|
|
10
|
+
"Prepare a quarterly product roadmap presentation for internal stakeholders",
|
|
11
|
+
"Create a client workshop deck introducing our platform migration methodology"
|
|
12
|
+
],
|
|
13
|
+
"preconditions": [
|
|
14
|
+
"You have a clear presentation topic or objective.",
|
|
15
|
+
"You know roughly who your audience is.",
|
|
16
|
+
"You have access to any source materials or data you plan to reference."
|
|
17
|
+
],
|
|
18
|
+
"clarificationPrompts": [
|
|
19
|
+
"What is the main objective or key message of your presentation?",
|
|
20
|
+
"Who is your target audience and what is their professional context?"
|
|
21
|
+
],
|
|
22
|
+
"metaGuidance": [
|
|
23
|
+
"Ground every decision in your audience profile. Generic presentations fail because they are not written for anyone specific.",
|
|
24
|
+
"Each step should explicitly reference outputs from the previous step to avoid boilerplate drift.",
|
|
25
|
+
"Prioritize clarity over completeness. A tight presentation that lands one message beats a comprehensive one that loses the audience.",
|
|
26
|
+
"Build in engagement moments throughout, not just at the opening.",
|
|
27
|
+
"Every section should pass the 'so what?' test: if the audience cannot articulate why they should care, cut or reframe.",
|
|
28
|
+
"Always have a clear call-to-action. Tell the audience what you want them to do or believe after your presentation.",
|
|
29
|
+
"Test all technical elements well before your presentation day.",
|
|
30
|
+
"Prepare contingency plans for common problems: technology failures, timing overruns, tough questions."
|
|
31
|
+
],
|
|
32
|
+
"steps": [
|
|
33
|
+
{
|
|
34
|
+
"id": "audience-and-context-analysis",
|
|
35
|
+
"title": "Audience & Context Analysis",
|
|
36
|
+
"promptBlocks": {
|
|
37
|
+
"goal": "Build a concrete audience profile and context map that every downstream step will rely on. Shallow audience analysis is the root cause of generic presentations.",
|
|
38
|
+
"constraints": [
|
|
39
|
+
"Be specific, not categorical. 'Senior engineers at a fintech startup' is useful; 'technical professionals' is not.",
|
|
40
|
+
"Address both explicit needs (what they asked for) and implicit needs (what they actually need to hear).",
|
|
41
|
+
"Consider the broader context: what happens before and after your presentation? What mood will the audience be in?"
|
|
42
|
+
],
|
|
43
|
+
"procedure": [
|
|
44
|
+
"Define the audience: professional background, expertise level, role and seniority mix, and any relevant cultural or organizational context.",
|
|
45
|
+
"Identify audience motivations: what do they want to learn or decide? What pain points or pressures are they carrying into the room?",
|
|
46
|
+
"Analyze the presentation context: event type (conference, internal meeting, client pitch, webinar), setting (in-person, remote, hybrid), time constraints, and follow-up expectations.",
|
|
47
|
+
"Define success: what does a successful outcome look like for both you and the audience? What specific action or belief shift are you aiming for?",
|
|
48
|
+
"Identify risks: what might cause the audience to disengage, push back, or leave confused?"
|
|
49
|
+
],
|
|
50
|
+
"outputRequired": {
|
|
51
|
+
"audienceProfile": "A concise profile covering: demographics and expertise, motivations and pain points, context and setting, success definition, and key engagement risks."
|
|
52
52
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
53
|
+
"verify": [
|
|
54
|
+
"Does every section contain specific, actionable detail rather than generic categories?",
|
|
55
|
+
"Could you use this profile to make a real content decision right now?"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"requireConfirmation": true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "content-strategy",
|
|
62
|
+
"title": "Content Strategy",
|
|
63
|
+
"promptBlocks": {
|
|
64
|
+
"goal": "Define the core message and argument structure that will guide every slide and talking point. Using your audience profile from the previous step, build a content strategy grounded in their specific needs.",
|
|
65
|
+
"constraints": [
|
|
66
|
+
"Start with one core message — a single, memorable sentence. Everything else should support it.",
|
|
67
|
+
"Supporting arguments should directly address the audience motivations and pain points you identified.",
|
|
68
|
+
"The narrative arc should feel natural for this audience in this context — not a generic template unless it actually fits."
|
|
69
|
+
],
|
|
70
|
+
"procedure": [
|
|
71
|
+
"State your core message: one clear, memorable sentence that captures the single most important thing you want the audience to take away.",
|
|
72
|
+
"Define 3-5 supporting arguments that reinforce your core message. For each, identify the key evidence, example, or story you will use.",
|
|
73
|
+
"Design the narrative arc: how will you take the audience from where they are now to where you want them to be? Map the logical and emotional journey.",
|
|
74
|
+
"Plan your engagement hooks: surprising statistics, thought-provoking questions, or moments of genuine interaction that break up information delivery.",
|
|
75
|
+
"Define your call-to-action: what specific thing do you want the audience to do, believe, or decide after your presentation?"
|
|
76
|
+
],
|
|
77
|
+
"outputRequired": {
|
|
78
|
+
"contentStrategy": "Core message (one sentence), supporting arguments with evidence, narrative arc description, engagement hooks, and call-to-action."
|
|
79
79
|
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
"requireConfirmation": true
|
|
80
|
+
"verify": [
|
|
81
|
+
"Does every supporting argument trace back to a specific audience need from your audience profile?",
|
|
82
|
+
"Does the narrative arc feel designed for this audience, or does it feel like a template?"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"requireConfirmation": false
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "slide-structure",
|
|
89
|
+
"title": "Slide Structure & Flow",
|
|
90
|
+
"promptBlocks": {
|
|
91
|
+
"goal": "Turn your content strategy into a numbered slide outline with clear purpose, content type, and rough timing for each slide. This becomes the blueprint for content development.",
|
|
92
|
+
"constraints": [
|
|
93
|
+
"One key idea per slide. If a slide is trying to say two things, split it.",
|
|
94
|
+
"Plan for pacing: balance information-dense slides with breathing room and interaction moments.",
|
|
95
|
+
"Think about how the slides will work if someone reads them later without you — titles should be informative, not just labels."
|
|
96
|
+
],
|
|
97
|
+
"procedure": [
|
|
98
|
+
"Opening (1-3 slides): attention-grabbing hook, context framing, and agenda or roadmap.",
|
|
99
|
+
"Core content blocks: group your supporting arguments into logical sections. For each slide, specify: title, main content type (bullets, chart, image, diagram, quote), and whether it has an interaction moment.",
|
|
100
|
+
"Transitions between major sections: a single bridging slide that signals the shift and re-grounds the audience.",
|
|
101
|
+
"Closing (2-3 slides): synthesis of core message, call-to-action, next steps or contact information.",
|
|
102
|
+
"For each slide, add an estimated time in minutes and mark which slides need significant visual design work."
|
|
103
|
+
],
|
|
104
|
+
"outputRequired": {
|
|
105
|
+
"slideOutline": "A numbered slide outline. Each entry: slide number, title, content type, estimated time, and any special notes."
|
|
107
106
|
},
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
107
|
+
"verify": [
|
|
108
|
+
"Does the outline tell a coherent story from opening to close?",
|
|
109
|
+
"Does the pacing feel right for the stated time budget?",
|
|
110
|
+
"Is there at least one engagement moment in the first third of the presentation?"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"requireConfirmation": true
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "content-development",
|
|
117
|
+
"title": "Content Development",
|
|
118
|
+
"promptBlocks": {
|
|
119
|
+
"goal": "Write the actual presentation content — slide text and speaker notes — following the approved outline. Every piece of content should be grounded in your audience profile and core message.",
|
|
120
|
+
"constraints": [
|
|
121
|
+
"Write for the ear, not the eye. Slide text should be sparse; speaker notes should sound natural when spoken aloud.",
|
|
122
|
+
"Use active voice and concrete language. Replace abstractions with specific examples.",
|
|
123
|
+
"Prepare backup content for questions or extended time: 2-3 extra slides that can be shown if needed."
|
|
124
|
+
],
|
|
125
|
+
"procedure": [
|
|
126
|
+
"For each slide in your outline, write the visible slide content: headline, key bullets or visual description, and any data or quotes.",
|
|
127
|
+
"Write speaker notes for each slide: talking points, transitions to the next slide, and timing cues.",
|
|
128
|
+
"Develop your key stories and examples in full: the narrative, the specific detail that makes it vivid, and the connection back to your core message.",
|
|
129
|
+
"Prepare interaction scripts: questions for audience polls or discussion, expected responses, and how you will synthesize them back into your presentation.",
|
|
130
|
+
"Write backup slides for anticipated deep-dive questions on your most complex or contentious points."
|
|
131
|
+
],
|
|
132
|
+
"outputRequired": {
|
|
133
|
+
"slideContent": "Full slide content and speaker notes for every slide in the outline.",
|
|
134
|
+
"backupSlides": "Backup slides for anticipated deep-dive questions."
|
|
136
135
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
136
|
+
"verify": [
|
|
137
|
+
"Does every slide's content trace back to the core message and the audience's needs?",
|
|
138
|
+
"Do the speaker notes sound like something you would actually say?"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"askForFiles": true,
|
|
142
|
+
"requireConfirmation": false
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "delivery-preparation",
|
|
146
|
+
"title": "Delivery Preparation",
|
|
147
|
+
"promptBlocks": {
|
|
148
|
+
"goal": "Create a delivery preparation plan tailored to your specific presentation context: the format (in-person, remote, recorded), the venue, and your personal readiness.",
|
|
149
|
+
"constraints": [
|
|
150
|
+
"Adapt this plan to the actual delivery context. Remote and in-person presentations have very different risk profiles.",
|
|
151
|
+
"Practice advice should be actionable, not generic. 'Practice out loud three times with slides' is useful; 'be confident' is not.",
|
|
152
|
+
"Q&A preparation matters as much as the main content for high-stakes presentations."
|
|
153
|
+
],
|
|
154
|
+
"procedure": [
|
|
155
|
+
"Define your practice schedule: how many run-throughs you need, at what level of realism (slides only vs. full setup), and target dates.",
|
|
156
|
+
"Set timing benchmarks: target time for each major section with acceptable variance. Identify which sections you can expand or compress if needed.",
|
|
157
|
+
"Prepare for technical setup: what equipment you need, what to test in advance, and what backup plans you have if something fails.",
|
|
158
|
+
"Anticipate the top 5-10 questions you are likely to receive and draft short, confident responses for each.",
|
|
159
|
+
"Plan your post-presentation follow-up: how will you share materials, continue conversations, and measure whether your call-to-action was effective?"
|
|
160
|
+
],
|
|
161
|
+
"outputRequired": {
|
|
162
|
+
"deliveryPlan": "Practice schedule, timing benchmarks, technical setup and backup plans, Q&A preparation, and follow-up plan."
|
|
163
|
+
},
|
|
164
|
+
"verify": [
|
|
165
|
+
"Is this plan specific to your actual delivery context, or would it apply to any presentation?",
|
|
166
|
+
"Have you accounted for the most likely failure modes given your setting?"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"requireConfirmation": false
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "production-readiness-audit",
|
|
3
|
-
"name": "Production Readiness Audit (v2
|
|
3
|
+
"name": "Production Readiness Audit (v2 \u2022 Evidence-Driven Readiness Review)",
|
|
4
4
|
"version": "0.1.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to audit a codebase scope for production readiness. Checks debugging correctness, runtime operability, artifact realism, technical debt, and anything that would prevent honest production deployment.",
|
|
6
|
+
"about": "## Production Readiness Audit\n\nThis workflow performs a structured, evidence-driven audit to answer one question honestly: is this code actually ready for production? It goes beyond style and lint -- it looks for debugging correctness, runtime operability under real conditions, artifact realism (stale code, fake completeness, placeholder behavior), maintainability debt, test and observability gaps, and security or performance risks.\n\n**What it does:**\nThe workflow bounds the audit scope, states a readiness hypothesis, freezes a neutral fact packet, then runs parallel reviewer families -- each specializing in a different readiness dimension. It reconciles contradictions through an evidence loop and produces a final verdict: `ready`, `ready_with_conditions`, `not_ready`, or `inconclusive`.\n\n**When to use it:**\n- Before shipping a new service, feature, or major refactor to production\n- When a codebase has been under rapid development and you want an honest readiness check before a launch deadline\n- When onboarding to a codebase and wanting a structured assessment of its production posture\n- When a post-incident review surfaces questions about whether the system was truly ready\n\n**What it produces:**\nA verdict with a confidence band, a prioritized list of blocker-grade and major findings, debugging leads, runtime and operational risk callouts, artifact-realism concerns (misleading completeness, stale docs, dead paths), a coverage ledger by audit domain, and a remediation order with specific follow-up recommendations.\n\n**How to get good results:**\nProvide a clear scope -- a service name, a module path, or a feature boundary. The narrower and more concrete the scope, the sharper the findings. If \"production-ready\" has a specific meaning for your team (e.g. SLA requirements, specific deployment constraints), mention it. The workflow will try to infer the production bar from repo patterns and context, but explicit criteria improve accuracy.",
|
|
7
|
+
"examples": [
|
|
8
|
+
"Audit the notifications service for production readiness before the Q3 launch",
|
|
9
|
+
"Check if the new checkout flow feature is ready to ship -- focus on runtime operability and error handling",
|
|
10
|
+
"Production readiness review of the auth module after the recent login refactor",
|
|
11
|
+
"Assess whether the data ingestion pipeline is ready for production given the volume targets in the launch brief"
|
|
12
|
+
],
|
|
6
13
|
"recommendedPreferences": {
|
|
7
14
|
"recommendedAutonomy": "guided",
|
|
8
15
|
"recommendedRiskPolicy": "conservative"
|
|
@@ -43,7 +50,10 @@
|
|
|
43
50
|
"goal": "Build the minimum complete understanding needed to audit readiness honestly.",
|
|
44
51
|
"constraints": [
|
|
45
52
|
[
|
|
46
|
-
{
|
|
53
|
+
{
|
|
54
|
+
"kind": "ref",
|
|
55
|
+
"refId": "wr.refs.notes_first_durability"
|
|
56
|
+
}
|
|
47
57
|
],
|
|
48
58
|
"Use tools first. Ask only for true scope or permission gaps you cannot resolve yourself.",
|
|
49
59
|
"Separate in-scope code from adjacent noise before you classify rigor or risk."
|
|
@@ -67,8 +77,14 @@
|
|
|
67
77
|
},
|
|
68
78
|
"requireConfirmation": {
|
|
69
79
|
"or": [
|
|
70
|
-
{
|
|
71
|
-
|
|
80
|
+
{
|
|
81
|
+
"var": "scopeShape",
|
|
82
|
+
"equals": "whole_codebase"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"var": "riskLevel",
|
|
86
|
+
"equals": "High"
|
|
87
|
+
}
|
|
72
88
|
]
|
|
73
89
|
}
|
|
74
90
|
},
|
|
@@ -103,7 +119,10 @@
|
|
|
103
119
|
"goal": "Freeze a neutral readiness fact packet and decide how much reviewer-family parallelism is warranted.",
|
|
104
120
|
"constraints": [
|
|
105
121
|
[
|
|
106
|
-
{
|
|
122
|
+
{
|
|
123
|
+
"kind": "ref",
|
|
124
|
+
"refId": "wr.refs.notes_first_durability"
|
|
125
|
+
}
|
|
107
126
|
],
|
|
108
127
|
"The fact packet is the primary truth for downstream reviewer families.",
|
|
109
128
|
"Keep `readinessHypothesis` as a hypothesis to challenge, not a frame to defend.",
|
|
@@ -131,12 +150,18 @@
|
|
|
131
150
|
"promptFragments": [
|
|
132
151
|
{
|
|
133
152
|
"id": "phase-2-quick",
|
|
134
|
-
"when": {
|
|
153
|
+
"when": {
|
|
154
|
+
"var": "rigorMode",
|
|
155
|
+
"equals": "QUICK"
|
|
156
|
+
},
|
|
135
157
|
"text": "Keep the fact packet compact. QUICK should not manufacture a giant ceremony layer."
|
|
136
158
|
},
|
|
137
159
|
{
|
|
138
160
|
"id": "phase-2-thorough",
|
|
139
|
-
"when": {
|
|
161
|
+
"when": {
|
|
162
|
+
"var": "rigorMode",
|
|
163
|
+
"equals": "THOROUGH"
|
|
164
|
+
},
|
|
140
165
|
"text": "For THOROUGH rigor, make the hidden-risk surfaces explicit: blind spots, fake confidence vectors, and production assumptions that would hurt if wrong."
|
|
141
166
|
}
|
|
142
167
|
],
|
|
@@ -153,10 +178,16 @@
|
|
|
153
178
|
"goal": "Run the selected reviewer families in parallel from the same readiness fact packet, then synthesize their output as evidence rather than conclusions.",
|
|
154
179
|
"constraints": [
|
|
155
180
|
[
|
|
156
|
-
{
|
|
181
|
+
{
|
|
182
|
+
"kind": "ref",
|
|
183
|
+
"refId": "wr.refs.notes_first_durability"
|
|
184
|
+
}
|
|
157
185
|
],
|
|
158
186
|
[
|
|
159
|
-
{
|
|
187
|
+
{
|
|
188
|
+
"kind": "ref",
|
|
189
|
+
"refId": "wr.refs.synthesis_under_disagreement"
|
|
190
|
+
}
|
|
160
191
|
],
|
|
161
192
|
"Each reviewer family must use `readinessFactPacket` as primary truth.",
|
|
162
193
|
"Use `readinessHypothesis` only as comparison context.",
|
|
@@ -203,7 +234,10 @@
|
|
|
203
234
|
"goal": "If contradictions, blind spots, or important coverage gaps remain, run only the smallest targeted follow-up needed.",
|
|
204
235
|
"constraints": [
|
|
205
236
|
[
|
|
206
|
-
{
|
|
237
|
+
{
|
|
238
|
+
"kind": "ref",
|
|
239
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
240
|
+
}
|
|
207
241
|
],
|
|
208
242
|
"Prefer one compact targeted bundle over repeated broad delegation moments.",
|
|
209
243
|
"Do not regather broad context unless a contradiction proves the original fact packet is insufficient.",
|
|
@@ -291,10 +325,16 @@
|
|
|
291
325
|
"goal": "Stress-test the current readiness verdict before final handoff.",
|
|
292
326
|
"constraints": [
|
|
293
327
|
[
|
|
294
|
-
{
|
|
328
|
+
{
|
|
329
|
+
"kind": "ref",
|
|
330
|
+
"refId": "wr.refs.adversarial_challenge_rules"
|
|
331
|
+
}
|
|
295
332
|
],
|
|
296
333
|
[
|
|
297
|
-
{
|
|
334
|
+
{
|
|
335
|
+
"kind": "ref",
|
|
336
|
+
"refId": "wr.refs.synthesis_under_disagreement"
|
|
337
|
+
}
|
|
298
338
|
],
|
|
299
339
|
"Validation output is evidence to synthesize, not automatic authority."
|
|
300
340
|
],
|
|
@@ -319,8 +359,14 @@
|
|
|
319
359
|
},
|
|
320
360
|
"requireConfirmation": {
|
|
321
361
|
"or": [
|
|
322
|
-
{
|
|
323
|
-
|
|
362
|
+
{
|
|
363
|
+
"var": "finalConfidenceBand",
|
|
364
|
+
"equals": "Low"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"var": "finalVerdict",
|
|
368
|
+
"equals": "inconclusive"
|
|
369
|
+
}
|
|
324
370
|
]
|
|
325
371
|
}
|
|
326
372
|
},
|
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
"id": "relocation-workflow-us",
|
|
3
3
|
"name": "US Relocation Decision Workflow (Evidence-Driven • AreaSpec • Ranked Dossier)",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to evaluate US cities or regions for a potential relocation. Discovers your preferences, generates candidate areas, screens them, and produces a ranked dossier with evidence.",
|
|
6
|
+
"about": "## US Relocation Decision Workflow\n\nUse this to evaluate US cities and regions for a potential move. The workflow takes a structured, evidence-driven approach: it starts by calibrating your preferences and dealbreakers, generates a broad diverse pool of candidate areas (including non-obvious ones), screens them systematically, and produces a ranked dossier you can actually act on.\n\n### What it produces\n\n- A `RELOCATION_DOSSIER.md` with your full preference model, screening results, and comparison matrix.\n- Individual per-candidate profiles at `relocation-profiles/<slug>.md` covering housing, cost of living, taxes, safety, climate risk, schools, healthcare, commute, and any other modules you activate.\n- A scored ranking with explainable reasoning and an explicit disclosure of any data gaps.\n- A next-steps plan: visit recommendations, open questions per candidate, and pivot triggers.\n\n### When to use it\n\n- You are seriously considering a US relocation and want a rigorous, evidence-backed shortlist.\n- You want to surface non-obvious candidates you wouldn't have considered on your own.\n- You've been anchoring on a handful of cities and want a structured process to either validate or challenge that.\n\n### How to get good results\n\n- Be honest about dealbreakers upfront -- the workflow builds these into screening and filters candidates early.\n- The MaxDiff weight calibration exercise (offered in Phase 1) is worth doing if you're unsure how to weight competing priorities. It takes 5-10 minutes and produces more reliable weights than guessing.\n- The calibration deck in Phase 1 shows you lifestyle archetypes and asks for reactions -- engage with this seriously. Surprises in your reactions are valuable signal.\n- The workflow activates only the research modules you need. Keep it focused on what actually matters to your household.",
|
|
7
|
+
"examples": [
|
|
8
|
+
"Help me find the best US city to relocate my family, prioritizing top schools, low cost of living, and outdoor access",
|
|
9
|
+
"Evaluate mid-size metros in the Southeast as alternatives to Atlanta for a remote worker with a $400k housing budget",
|
|
10
|
+
"Find the best US cities for a couple relocating from San Francisco who need to stay within a 2-hour flight of NYC",
|
|
11
|
+
"Compare Denver, Austin, and Raleigh as relocation options and surface 5 non-obvious alternatives I haven't considered"
|
|
12
|
+
],
|
|
6
13
|
"recommendedPreferences": {
|
|
7
14
|
"recommendedAutonomy": "guided",
|
|
8
15
|
"recommendedRiskPolicy": "conservative"
|
|
@@ -145,17 +152,26 @@
|
|
|
145
152
|
"promptFragments": [
|
|
146
153
|
{
|
|
147
154
|
"id": "no-red-flags",
|
|
148
|
-
"when": {
|
|
155
|
+
"when": {
|
|
156
|
+
"var": "redFlagCount",
|
|
157
|
+
"equals": 0
|
|
158
|
+
},
|
|
149
159
|
"text": "No red flags were detected. Record redFlagDecision = 'fyi' and redFlagDecisionNotes = 'No red flags detected in baseline due diligence.' Proceed to Phase 5."
|
|
150
160
|
},
|
|
151
161
|
{
|
|
152
162
|
"id": "has-red-flags",
|
|
153
|
-
"when": {
|
|
163
|
+
"when": {
|
|
164
|
+
"var": "redFlagCount",
|
|
165
|
+
"gt": 0
|
|
166
|
+
},
|
|
154
167
|
"text": "Red flags were found. Summarize each: candidate name, category, one-line summary, source. Ask the user to choose exactly one action: (a) promote_to_dealbreakers — update the `dealbreakers` context variable AND the RELOCATION_DOSSIER.md Constraints section with the new/updated dealbreakers, then re-check screenResults for affected candidates; (b) add_weighted_criterion — ask the user how to weight it and which existing weights decrease so the `weights` array still sums to 100; (c) fyi — record the decision and move on. Record redFlagDecision and redFlagDecisionNotes. Append to RELOCATION_DOSSIER.md Red Flag Gate Decisions (append-only)."
|
|
155
168
|
}
|
|
156
169
|
],
|
|
157
170
|
"prompt": "Handle baseline red flags before selecting the shortlist.",
|
|
158
|
-
"requireConfirmation": {
|
|
171
|
+
"requireConfirmation": {
|
|
172
|
+
"var": "redFlagCount",
|
|
173
|
+
"gt": 0
|
|
174
|
+
}
|
|
159
175
|
},
|
|
160
176
|
{
|
|
161
177
|
"id": "phase-5-shortlist",
|
|
@@ -229,4 +245,4 @@
|
|
|
229
245
|
"requireConfirmation": true
|
|
230
246
|
}
|
|
231
247
|
]
|
|
232
|
-
}
|
|
248
|
+
}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{
|
|
42
42
|
"id": "step-generate-candidates",
|
|
43
43
|
"title": "Step 3: Generate Candidates from Tensions",
|
|
44
|
-
"prompt": "Generate design candidates that resolve the identified tensions differently.\n\nMANDATORY candidates:\n1. The simplest possible change that satisfies acceptance criteria. If the problem doesn't need an architectural solution, say so.\n2. Follow the existing repo pattern — adapt what the codebase already does for similar problems. Don't invent when you can adapt.\n\nAdditional candidates (1-2 more):\n- Each must resolve the identified tensions DIFFERENTLY, not just vary surface details\n- Each must be grounded in a real constraint or tradeoff, not an abstract perspective label\n- Consider philosophy conflicts: if the stated philosophy disagrees with repo patterns, one candidate could follow the stated philosophy and another could follow the established pattern\n\nFor each candidate, produce:\n- One-sentence summary of the approach\n- Which tensions it resolves and which it accepts\n- Boundary solved at, and why that boundary is the best fit\n- The specific failure mode you'd watch for\n- How it relates to existing repo patterns (follows / adapts / departs)\n- What you gain and what you give up\n- Impact surface beyond the immediate task\n- Scope judgment: too narrow / best-fit / too broad, with concrete evidence\n- Which philosophy principles it honors and which it conflicts with (by name)\n\nRules:\n- candidates must be genuinely different in shape, not just wording\n- if all candidates converge on the same approach, that's signal — note it honestly rather than manufacturing fake diversity\n- broader scope requires concrete evidence\n- cite specific files or patterns when they materially shape a candidate",
|
|
44
|
+
"prompt": "Generate design candidates that resolve the identified tensions differently.\n\nMANDATORY candidates:\n1. The simplest possible change that satisfies acceptance criteria. If the problem doesn't need an architectural solution, say so.\n2. Follow the existing repo pattern — adapt what the codebase already does for similar problems. Don't invent when you can adapt.\n\nAdditional candidates (1-2 more):\n- Each must resolve the identified tensions DIFFERENTLY, not just vary surface details\n- Each must be grounded in a real constraint or tradeoff, not an abstract perspective label\n- Consider philosophy conflicts: if the stated philosophy disagrees with repo patterns, one candidate could follow the stated philosophy and another could follow the established pattern\n\nFor each candidate, produce:\n- One-sentence summary of the approach\n- Which tensions it resolves and which it accepts\n- Boundary solved at, and why that boundary is the best fit\n- The specific failure mode you'd watch for\n- How it relates to existing repo patterns (follows / adapts / departs)\n- What you gain and what you give up\n- Impact surface beyond the immediate task\n- Scope judgment: too narrow / best-fit / too broad, with concrete evidence\n- Which philosophy principles it honors and which it conflicts with (by name)\n\nRules:\n- candidates must be genuinely different in shape, not just wording\n- if all candidates converge on the same approach, that's signal — note it honestly rather than manufacturing fake diversity\n- broader scope requires concrete evidence\n- cite specific files or patterns when they materially shape a candidate\n- specify each candidate at the level of concrete shape, not concept labels: 'tags' is not a candidate specification; 'per-workflow multi-labels drawn from a closed 9-value enum' is. If you find yourself using a concept label (tags, categories, events, hooks), you have not yet specified the candidate — name the data structure, the vocabulary or value set it uses, who maintains it, and how it is queried",
|
|
45
45
|
"agentRole": "You are generating genuinely diverse design candidates grounded in real tensions.",
|
|
46
46
|
"requireConfirmation": false
|
|
47
47
|
},
|